[pyferret] 93/110: Upstream 7.1.1.beta

Alastair McKinstry mckinstry at moszumanska.debian.org
Fri Jul 28 08:42:19 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 6255173dc9fef0880eafb958031f61f009398e93
Author: Alastair McKinstry <mckinstry at debian.org>
Date:   Sun Jun 25 11:03:48 2017 +0100

    Upstream 7.1.1.beta
---
 Makefile                                           |    41 +-
 README.md                                          |    96 +
 ...ret_mac.txt => README_pyferret_mac_homebrew.txt |    35 +-
 bench/492C19881104.nc                              |   Bin 0 -> 138052 bytes
 bench/Makefile                                     |     4 +-
 bench/TEST_SCRIPTS                                 |    23 +
 bench/TRASH_FILES                                  |     8 +
 bench/aggT_5d1.nc                                  |   Bin 0 -> 6112 bytes
 bench/aggT_5d2.nc                                  |   Bin 0 -> 4504 bytes
 bench/ansley_official.rhel5_32_err                 |  2388 +-
 bench/ansley_official.rhel5_32_log                 | 24107 ++++++++++++------
 bench/ansley_official.rhel6-64_err                 |  2391 +-
 bench/ansley_official.rhel6-64_log                 | 24627 +++++++++++++------
 bench/ansley_official.x86_64-linux_log             | 11857 +++++----
 bench/bench_v5d.jnl                                |    19 -
 bench/bn710_bug_fixes.jnl                          |   120 +
 bench/bn720_bug_fixes.jnl                          |    34 +
 bench/bn_1d_gather.jnl                             |     8 +
 bench/bn_agg_member_syntax.jnl                     |    75 +
 bench/bn_aggregate_f.jnl                           |     1 +
 bench/bn_aggregate_t.jnl                           |    14 +-
 bench/bn_aggregate_tef.jnl                         |    17 +-
 bench/bn_aggregate_u.jnl                           |   202 +
 bench/bn_all.jnl                                   |   603 +-
 bench/bn_all_ef.jnl                                |     5 +-
 bench/bn_attributes.jnl                            |     6 +
 bench/bn_auto_tprec.jnl                            |     6 +-
 bench/bn_ave_of_ave.jnl                            |    34 +
 bench/bn_cache_management.jnl                      |   130 +
 bench/bn_cdf_errmsg.jnl                            |     7 +-
 bench/bn_climatology_attr.jnl                      |    16 +
 bench/bn_compressed_gather.jnl                     |   217 +
 bench/bn_compressed_gather.sub                     |    42 +
 bench/bn_contourcolor.jnl                          |     6 +-
 bench/bn_define_axes.jnl                           |     8 +-
 bench/bn_delim_datetime.jnl                        |    72 +
 bench/bn_delimited_read.jnl                        |     2 +
 bench/bn_delimited_read_2.dat                      |     4 +-
 bench/bn_dods_strides.jnl                          |    59 +-
 bench/bn_dynamic_gather.jnl                        |    98 +
 bench/bn_dynamic_gather.sub                        |   198 +
 bench/bn_ef_external_functions.jnl                 |    10 +-
 bench/bn_ef_v5d_strings.jnl                        |    35 -
 bench/bn_encode_url.jnl                            |    14 +-
 bench/bn_ez.jnl                                    |     4 +
 bench/bn_ez_noupcase.jnl                           |    27 +
 bench/bn_gather_4d_ave.jnl                         |    50 +
 bench/bn_gather_4d_din.jnl                         |    32 +
 bench/bn_gather_4d_var.jnl                         |    73 +
 bench/bn_gif.jnl                                   |     3 +
 bench/bn_hovmuller_overlays.jnl                    |    27 +-
 bench/bn_inf2missing.jnl                           |    11 +
 bench/bn_inner.jnl                                 |   114 +
 bench/bn_let_remote.jnl                            |    25 +-
 bench/bn_output.jnl                                |     8 +-
 bench/bn_plot_vs_with_time.jnl                     |    67 +
 bench/bn_ps.jnl                                    |     1 +
 bench/bn_reset.jnl                                 |    12 +
 bench/bn_spawn_fail.jnl                            |    11 +
 bench/bn_spawn_size.jnl                            |    45 +-
 bench/bn_stat_precision.jnl                        |    27 +
 bench/bn_test_opendap.jnl                          |     2 +-
 bench/bn_transp_choose.jnl                         |    22 +
 bench/bn_transpose.jnl                             |    68 +-
 bench/bn_true_monthly.jnl                          |   164 +
 bench/bn_unquoted_args.jnl                         |     8 +-
 bench/bn_xml_output.jnl                            |    11 +-
 bench/bug2445.nc                                   |   Bin 0 -> 716 bytes
 bench/ddsg_socat3.jnl                              |   240 +
 bench/delim_datetime.csv                           |     8 +
 bench/delim_yyyy.csv                               |     8 +
 bench/err540_strides_rev.jnl                       |     6 +-
 bench/err570_dods_url_label.jnl                    |    10 +-
 bench/err62_axis_stride_off.jnl                    |     1 +
 bench/err682_xact_high_prec.jnl                    |     9 +-
 bench/err684_FillValue_xml.jnl                     |     2 +-
 bench/err686_cancel_invalid_var.jnl                |     2 +
 bench/err696_mem_err_report.jnl                    |    15 +-
 bench/err696_multiple_slashes.jnl                  |     4 +-
 bench/err700_aggT_5d.jnl                           |    21 +
 bench/err700_aggregate_from_fmrc.jnl               |    18 +
 bench/err700_aggt_dup_grids.jnl                    |    31 +
 bench/err700_attribute_parsing.jnl                 |    24 +
 bench/err700_ax_horiz.jnl                          |    26 +
 bench/err700_axis_dates.jnl                        |    48 +
 bench/err700_clim_attr_expression.jnl              |    22 +
 bench/err700_coords.jnl                            |    24 +
 bench/err700_coords.nc                             |   Bin 0 -> 1400 bytes
 bench/err700_decimate.jnl                          |    10 +
 bench/err700_define_1pt_axis.jnl                   |    17 +
 bench/err700_fmrcdiag.jnl                          |    35 +
 bench/err700_inherit_all.jnl                       |    25 +
 bench/err700_key.jnl                               |     6 +
 bench/err700_legend_labels.jnl                     |    68 +
 bench/err700_lev_del_symb.jnl                      |    32 +
 bench/err700_levels_one_level.jnl                  |    18 +
 bench/err700_list_comma.jnl                        |    46 +
 bench/err700_modulo.jnl                            |    65 +
 bench/err700_reg_axis_check.jnl                    |    15 +
 bench/err700_ribbon_vlog.jnl                       |    19 +
 bench/err700_samplexy_subspan_modulo.jnl           |    64 +
 bench/err700_save_mod_att.jnl                      |    68 +
 bench/err700_shade_singlecell.jnl                  |    34 +
 bench/err700_time_overlay.jnl                      |    20 +
 bench/err700_timegrat.jnl                          |    28 +
 bench/err700_unclosed_if.jnl                       |     7 +
 bench/err700_vs_data.nc                            |   Bin 0 -> 1204 bytes
 bench/err700_vs_plot_axes.jnl                      |    10 +
 bench/err71_err_attrib_overrun.jnl                 |    41 +
 bench/err71_plotvs_mode_label.jnl                  |    78 +
 bench/err71_prec_return.jnl                        |    15 +
 bench/err71_save_bounds.jnl                        |     9 +
 bench/err71_save_rigid.jnl                         |    27 +
 bench/err71_set_redirect.jnl                       |    19 +
 bench/err71_user_var_attrib.jnl                    |    10 +
 bench/err71_uvar_strides.jnl                       |    14 +
 bench/err71_vs_constant.jnl                        |    36 +
 bench/forecast24.nc                                |   Bin 0 -> 18452 bytes
 bench/forecast25.nc                                |   Bin 0 -> 18436 bytes
 bench/forecast26.nc                                |   Bin 0 -> 18436 bytes
 bench/forecast27.nc                                |   Bin 0 -> 18452 bytes
 bench/modax.nc                                     |   Bin 0 -> 3524 bytes
 bench/no_miss_att.nc                               |   Bin 0 -> 392 bytes
 bench/run_all                                      |    11 +-
 bench/test_results/axticlabel.pdf                  |   Bin 7176 -> 7161 bytes
 bench/test_results/bn_axis_vs.gif                  |   Bin 0 -> 4559 bytes
 bench/test_results/bn_axis_vs.png                  |   Bin 0 -> 33774 bytes
 bench/test_results/bn_contour_conset.gif           |   Bin 17361 -> 17361 bytes
 bench/test_results/bn_contour_conset.png           |   Bin 148655 -> 148548 bytes
 bench/test_results/bn_hovmuller_overlays.gif       |   Bin 51773 -> 51920 bytes
 bench/test_results/bn_hovmuller_overlays.pdf       |   Bin 114913 -> 0 bytes
 bench/test_results/bn_hovmuller_overlays.png       |   Bin 0 -> 198152 bytes
 bench/test_results/bn_inf2missing.pdf              |   Bin 0 -> 7913 bytes
 bench/test_results/bn_labels_on_taxis.gif          |   Bin 34740 -> 35123 bytes
 bench/test_results/bn_labels_on_taxis.pdf          |   Bin 69827 -> 69653 bytes
 bench/test_results/bn_ribbon_vlog.gif              |   Bin 0 -> 12580 bytes
 bench/test_results/bn_ribbon_vlog.png              |   Bin 0 -> 86991 bytes
 bench/test_results/bn_subspan_mod_strides.gif      |   Bin 24039 -> 24061 bytes
 bench/test_results/bn_subspan_mod_strides.png      |   Bin 65121 -> 65674 bytes
 bench/test_results/bn_vs_const_value.gif           |   Bin 0 -> 7729 bytes
 bench/test_results/bn_vs_const_value.png           |   Bin 0 -> 40943 bytes
 bench/test_results/bnplot.pdf                      |   Bin 171724 -> 171689 bytes
 bench/test_results/bnplot.png                      |   Bin 128925 -> 0 bytes
 bench/test_results/bnplot_1.png                    |   Bin 290307 -> 290217 bytes
 bench/test_results/bnplot_2.gif                    |   Bin 55964 -> 56113 bytes
 bench/test_results/bnplot_2.png                    |   Bin 558523 -> 559130 bytes
 bench/test_results/bnplot_3.gif                    |   Bin 27755 -> 27755 bytes
 bench/test_results/bnplot_3.png                    |   Bin 229820 -> 229947 bytes
 bench/test_results/{bnplot_4.ps => bnplot_4.eps}   |   291 +-
 bench/test_results/bnplot_4.pdf                    |   Bin 327451 -> 327422 bytes
 bench/test_results/bnplot_4.ps                     |   206 +-
 bench/test_results/closed_lev.pdf                  |   Bin 36870 -> 36861 bytes
 bench/test_results/contourcolor_blue.pdf           |   Bin 22745 -> 22729 bytes
 bench/test_results/contourcolor_green.pdf          |   Bin 22502 -> 22454 bytes
 bench/test_results/contourcolor_puce.pdf           |   Bin 22554 -> 22508 bytes
 bench/test_results/dashbug.gif                     |   Bin 7161 -> 7117 bytes
 bench/test_results/dashbug.pdf                     |   Bin 10065 -> 10045 bytes
 bench/test_results/degC_axlab.pdf                  |   Bin 6866 -> 6863 bytes
 bench/test_results/dots.pdf                        |   Bin 5210 -> 5198 bytes
 bench/test_results/err700_key.gif                  |   Bin 0 -> 32596 bytes
 bench/test_results/err700_key.png                  |   Bin 0 -> 52225 bytes
 bench/test_results/ferret_run_tests_err            |  1585 +-
 bench/test_results/ferret_run_tests_log            | 24102 ++++++++++++------
 bench/test_results/ferret_run_tests_ncdump         |   825 +-
 bench/test_results/forecast_actual.gif             |   Bin 0 -> 15839 bytes
 bench/test_results/forecast_actual.png             |   Bin 0 -> 52099 bytes
 bench/test_results/forecast_diagview.gif           |   Bin 0 -> 14385 bytes
 bench/test_results/forecast_diagview.png           |   Bin 0 -> 67022 bytes
 bench/test_results/forecast_leadview.gif           |   Bin 0 -> 12293 bytes
 bench/test_results/forecast_leadview.png           |   Bin 0 -> 59737 bytes
 bench/test_results/gif_dashbug.gif                 |   Bin 1621 -> 1625 bytes
 bench/test_results/gif_dashbug.png                 |   Bin 6690 -> 6704 bytes
 bench/test_results/graticules.pdf                  |   Bin 18563 -> 18575 bytes
 bench/test_results/legend_1d_plots.gif             |   Bin 0 -> 10422 bytes
 bench/test_results/legend_1d_plots.png             |   Bin 0 -> 95837 bytes
 bench/test_results/levels_one_level.gif            |   Bin 0 -> 17452 bytes
 bench/test_results/levels_one_level.png            |   Bin 0 -> 81296 bytes
 bench/test_results/linecolors.pdf                  |   Bin 16519 -> 16518 bytes
 bench/test_results/lon_lat_label_controls.gif      |   Bin 0 -> 7538 bytes
 bench/test_results/lon_lat_label_controls.png      |   Bin 0 -> 57284 bytes
 bench/test_results/multi_line_labels.pdf           |   Bin 31263 -> 31259 bytes
 bench/test_results/outline_poly.pdf                |   Bin 8606 -> 8604 bytes
 bench/test_results/polygon_plot.pdf                |   Bin 12271 -> 12269 bytes
 bench/test_results/pyferret_run_tests_err          |  1622 +-
 bench/test_results/pyferret_run_tests_log          | 24428 ++++++++++++------
 bench/test_results/pyferret_run_tests_ncdump       |   826 +-
 bench/test_results/startup_tests2.pdf              |   Bin 8923 -> 8938 bytes
 bench/test_results/testbackground.gif              |   Bin 46738 -> 46738 bytes
 bench/test_results/testbackground.png              |   Bin 52303 -> 52180 bytes
 bench/test_results/testfermethods_contour.pdf      |   Bin 26777 -> 23231 bytes
 bench/test_results/testfermethods_fill.pdf         |   Bin 75925 -> 72362 bytes
 bench/test_results/testfermethods_lineplot.pdf     |   Bin 18652 -> 14684 bytes
 bench/test_results/testfermethods_pointplot.pdf    |   Bin 18990 -> 15019 bytes
 bench/test_results/testfermethods_shade.pdf        |   Bin 20431 -> 16768 bytes
 bench/test_results/testferpyvar.pdf                |   Bin 24189 -> 19342 bytes
 bench/test_results/timetics.pdf                    |   Bin 14977 -> 15037 bytes
 bench/test_results/timetics2.pdf                   |   Bin 27680 -> 27708 bytes
 bench/test_results/vec_curv2.pdf                   |   Bin 28940 -> 28929 bytes
 bench/test_results/viewaxes.pdf                    |   Bin 8105 -> 8098 bytes
 bench/testferaggdset.py                            |    68 +-
 bench/testferaxis.py                               |   235 +-
 bench/testferdset.py                               |    70 +-
 bench/testfergrid.py                               |    81 +-
 bench/testfermethods.py                            |    46 +-
 bench/testferpyvar.py                              |    38 +-
 bench/testferregion.py                             |    43 +-
 bench/testfervar.py                                |   150 +-
 bench/testgetstrdata.py                            |    28 +-
 bench/unclosed_if.sub                              |     7 +
 bin/Finstall                                       |    96 +-
 bin/ferret_paths_template.csh                      |     4 +-
 bin/ferret_paths_template.sh                       |     4 +-
 bin/make_dist_tar                                  |     6 +-
 bin/make_source_tar                                |     6 +-
 bin/pyferret_template                              |     8 +-
 external_functions/ef_utility/site_specific.mk     |    14 +-
 external_functions/pyef/template.py                |     3 +-
 fer/Makefile                                       |    43 +-
 fer/ccr/EF_InternalUtil.c                          |   343 +-
 fer/ccr/SOURCE_FILES                               |    11 +-
 fer/ccr/add_c_pointer.c                            |    64 -
 fer/ccr/batch_graphics.c                           |    19 +-
 fer/ccr/binaryRead.c                               |    18 +-
 fer/ccr/binaryRead.h                               |    12 -
 fer/ccr/c_dncase.c                                 |     9 +-
 fer/ccr/c_strcat.c                                 |    10 +-
 fer/ccr/c_strcmp.c                                 |     6 +-
 fer/ccr/c_strfloat.c                               |     5 +-
 fer/ccr/c_strindex.c                               |     6 +-
 fer/ccr/c_strlen.c                                 |     5 +-
 fer/ccr/c_strrindex.c                              |     6 +-
 fer/ccr/c_substr.c                                 |    15 +-
 fer/ccr/c_upcase.c                                 |     9 +-
 fer/ccr/cache_full_array.c                         |     7 +-
 fer/ccr/check_nan_data_sub.c                       |     6 +-
 fer/ccr/compare_c_strings.c                        |     5 +-
 fer/ccr/copy_c_string.c                            |     9 +-
 fer/ccr/create_utf8_string.c                       |     4 +-
 fer/ccr/{set_nan.c => dynmemUtil.c}                |    88 +-
 fer/ccr/ferret_dispatch_c.c                        |    42 +-
 fer/ccr/ferret_query.c                             |   155 -
 fer/ccr/free_c_pointer.c                           |     7 +-
 fer/ccr/free_c_string_array.c                      |     7 +-
 fer/ccr/free_cached_full_array.c                   |     7 +-
 fer/ccr/free_dyn_mem.c                             |    19 +
 fer/ccr/{free_c_pointer.c => get_c_pointer.c}      |    25 +-
 fer/ccr/get_c_string.c                             |     6 +-
 fer/ccr/get_c_string_len.c                         |     4 +-
 fer/ccr/get_max_c_string_len.c                     |     5 +-
 fer/ccr/get_mr_mem.c                               |    39 +
 fer/ccr/get_offset_c_string.c                      |     7 +-
 fer/ccr/get_offset_c_string_len.c                  |     5 +-
 fer/ccr/get_sys_cmnd.c                             |    57 +-
 fer/ccr/get_ws_mem.c                               |    39 +
 fer/ccr/init_c_string_array.c                      |     7 +-
 fer/ccr/linux_routines_c.c                         |     3 +-
 fer/ccr/list.c                                     |    23 +-
 fer/ccr/nullify_mr.c                               |    26 +
 fer/ccr/nullify_ws.c                               |    25 +
 fer/ccr/perl_read.c                                |    23 -
 fer/ccr/recover_cached_2d_array_point.c            |    10 +-
 fer/ccr/recover_cached_full_array.c                |     5 +-
 fer/ccr/replace_bad_data_sub.c                     |     3 +-
 fer/ccr/replaceable_bad_flags.c                    |     5 +-
 fer/ccr/run_thredds_browser.c                      |     9 +-
 fer/ccr/run_thredds_browser.h                      |    21 -
 fer/ccr/save_c_string.c                            |    13 +-
 fer/ccr/set_nan.c                                  |    32 +-
 fer/ccr/set_null_c_string.c                        |     8 +-
 fer/ccr/set_null_c_string_array.c                  |     9 +-
 fer/ccr/text_to_utf8.c                             |     6 +-
 fer/ccr/utf8str.h                                  |     5 -
 fer/ccr/write_dods.c                               |    23 +-
 fer/ccr/xfer_c_ptrs.c                              |    15 +-
 fer/cferbind/Makefile                              |    17 +-
 fer/cferbind/cairoCFerBind_createWindow.c          |     7 +-
 fer/cferbind/cairoCFerBind_drawText.c              |     2 +-
 fer/cferbind/cairoCFerBind_saveWindow.c            |    16 +
 fer/cferbind/cairoCFerBind_textSize.c              |     2 +-
 fer/cferbind/cferbind.h                            |     4 +-
 fer/cferbind/cferbind_createWindow.c               |     5 +-
 fer/cferbind/pyqtcairoCFerBind_createWindow.c      |     2 +-
 fer/common/EF_Util.h                               |     6 +-
 fer/common/dsimple.h                               |    53 -
 fer/common/errmsg.parm                             |     8 +-
 fer/common/ferret.h                                |   125 +-
 fer/common/ferret.parm                             |    26 +-
 fer/common/ferret_query.parm                       |    17 -
 fer/common/ferret_shared_buffer.h                  |    22 +-
 fer/common/fgrdel.cmn                              |     6 +-
 fer/common/grid_chg_fcns.parm                      |     8 +-
 fer/common/interp_stack.parm                       |    25 +-
 fer/common/slash.parm                              |     3 +
 fer/common/xcommand.cmn                            |     5 +-
 fer/common/xgrid_chg_fcns.cmn                      |     9 +-
 fer/common/xplot_setup.cmn                         |     6 +-
 fer/common/xprog_state.cmn                         |    12 +-
 fer/common/xvariables.cmn                          |   151 +-
 fer/ctx/SOURCE_FILES                               |     2 +
 fer/{stk/explicit_uvar.F => ctx/cgrid_size8.F}     |    27 +-
 fer/{stk/explicit_uvar.F => ctx/cgrid_uvar_size.F} |    39 +-
 fer/ctx/get_auto_aux_vars.F                        |    34 +-
 fer/ctx/known_data_type.F                          |     8 +-
 fer/ctx/parse_var_name.F                           |    23 +-
 fer/ctx/pseudo_var_context.F                       |     8 +-
 fer/dat/xcommand_data.F                            |    42 +-
 fer/dat/xgfdl_error_text_data.F                    |     3 +
 fer/dat/xgrid_chg_fcns_data.F                      |   167 +-
 fer/dat/xprog_state_data.F                         |     9 +-
 fer/dat/xrevision_data.F                           |     8 +-
 fer/dat/xvariables_data.F                          |    12 +-
 fer/doo/SOURCE_FILES                               |     7 +
 fer/doo/days_from_day0.F                           |    13 +-
 fer/doo/dd1step.F                                  |     5 +-
 fer/doo/dd2step.F                                  |     4 +-
 fer/doo/diag_op.F                                  |    58 +-
 fer/doo/do_4d_ave.F                                |    10 +-
 fer/doo/do_4d_int_def.F                            |    11 +-
 fer/doo/do_4d_std.F                                |    13 +-
 fer/doo/do_4d_sum.F                                |     8 +-
 fer/doo/do_4d_trans.F                              |   163 +-
 fer/doo/do_4d_var.F                                |    11 +-
 fer/doo/do_4d_wgt.F                                |     7 +-
 fer/doo/do_aux_var_regrid.F                        |     3 +-
 fer/doo/do_aux_var_regrid_1d.F                     |    18 +-
 fer/doo/do_aux_var_regrid_1d_t.F                   |    26 +-
 fer/doo/do_aux_var_regrid_2d_tf.F                  |    16 +-
 fer/doo/do_ave_int.F                               |   104 +-
 fer/doo/do_average.F                               |     9 +-
 fer/doo/do_external_gc_fcn.F                       |    47 +-
 fer/doo/do_int_indef_sub.F                         |     5 +-
 fer/doo/do_integ_def.F                             |     9 +-
 fer/doo/do_internal_gc_fcn.F                       |    22 +-
 fer/doo/do_max.F                                   |   160 +-
 fer/doo/{do_max.F => do_max_sub.F}                 |   109 +-
 fer/doo/do_min.F                                   |   158 +-
 fer/doo/{do_min.F => do_min_sub.F}                 |   109 +-
 fer/doo/do_points.F                                |    27 +-
 fer/doo/do_stddev.F                                |     9 +-
 fer/doo/do_sum.F                                   |   163 +-
 fer/doo/{do_sum.F => do_sum_sub.F}                 |   102 +-
 fer/doo/do_var_sub.F                               |   424 +-
 fer/doo/do_variance.F                              |    10 +-
 fer/doo/do_wgt.F                                   |     5 +-
 fer/doo/do_xylin_regrid.F                          |     8 +
 fer/doo/{do_4d_ave.F => finalize_ave_int.F}        |    57 +-
 .../fill_memory.F => doo/finalize_sums_counts.F}   |    39 +-
 fer/doo/{do_4d_ave.F => finalize_variance.F}       |    57 +-
 fer/{stk/is_constant.F => doo/trans_finalize.F}    |    99 +-
 fer/doo/xylin_regrid.F                             |    16 +-
 fer/ef_utility/ef_get_date_tstep.F                 |     5 +-
 fer/ef_utility/ef_get_one_val.c                    |     7 +-
 fer/ef_utility/ef_get_one_val_sub.F                |     5 +-
 fer/efi/SOURCE_FILES                               |    21 +-
 fer/efi/curv_to_rect.F                             |     2 +-
 fer/efi/expndi_by_m_counts.F                       |     4 +-
 fer/efi/expndi_by_z_counts.F                       |     4 +-
 fer/efi/expndi_id_by_z_counts.F                    |     6 +-
 fer/efi/expndi_to_et.F                             |   303 +
 fer/efi/innerproduct_e.F                           |   175 +
 fer/efi/innerproduct_f.F                           |   176 +
 fer/efi/innerproduct_t.F                           |   175 +
 fer/efi/innerproduct_x.F                           |   175 +
 fer/efi/innerproduct_y.F                           |   174 +
 fer/efi/innerproduct_z.F                           |   175 +
 fer/efi/{minmax.F => minmax_fcn.F}                 |     4 +-
 fer/efi/samplexy.F                                 |   159 +-
 fer/efi/samplexy_closest.F                         |   268 +-
 fer/efi/samplexyt.F                                |   302 +-
 fer/efi/samplexyt_nrst.F                           |   304 +-
 fer/efi/separate.F                                 |    42 +-
 fer/efi/separate_str.F                             |    45 +-
 fer/efi/str_noblanks.F                             |   212 +
 fer/efi/str_replace.F                              |   256 +
 fer/efi/transpose_ef.F                             |   196 +
 fer/efi/transpose_te.F                             |   197 +
 fer/efi/transpose_tf.F                             |   197 +
 fer/efi/transpose_xe.F                             |   197 +
 fer/efi/transpose_xf.F                             |   198 +
 fer/efi/transpose_xt.F                             |   121 +-
 fer/efi/transpose_xy.F                             |   123 +-
 fer/efi/transpose_xz.F                             |   121 +-
 fer/efi/transpose_ye.F                             |   199 +
 fer/efi/transpose_yf.F                             |   197 +
 fer/efi/transpose_yt.F                             |   120 +-
 fer/efi/transpose_yz.F                             |   121 +-
 fer/efi/transpose_ze.F                             |   197 +
 fer/efi/transpose_zf.F                             |   200 +
 fer/efi/transpose_zt.F                             |   122 +-
 fer/efi/ycat.F                                     |     2 +-
 fer/efn/SOURCE_FILES                               |     2 +-
 fer/efn/efcn_get_workspace_addr.F                  |    29 -
 fer/efn/efcn_rqst_mr_ptrs.F                        |    37 +
 fer/fmt/SOURCE_FILES                               |     5 +-
 fer/fmt/ax_title.F                                 |     6 +-
 fer/fmt/compound_title.F                           |     8 +-
 fer/fmt/date_prec.F                                |     6 +
 fer/fmt/full_var_title.F                           |     9 +-
 fer/{gnl/finalize.F => fmt/geog_label_vs.F}        |    66 +-
 fer/{stk/explicit_uvar.F => fmt/lefint8.F}         |    34 +-
 fer/fmt/replace_deq.F                              |    20 +-
 fer/fmt/var_title_only.F                           |   167 +
 fer/fmt/var_trans.F                                |    15 +-
 fer/gnl/SOURCE_FILES                               |     7 +-
 fer/gnl/build_t_agg_axis.F                         |   231 +-
 fer/gnl/cancel_data_set.F                          |     4 +-
 fer/gnl/cdf_list.F                                 |    15 +-
 fer/gnl/check_memory.F                             |    96 +-
 fer/gnl/create_agg_dset.F                          |    17 +-
 fer/gnl/ctrl_c.F                                   |   115 +-
 fer/gnl/define_ef_aggregate_grid.F                 |    14 +-
 fer/gnl/define_u_aggregate_var.F                   |   224 +
 fer/gnl/delete_one_line.F                          |    92 -
 fer/gnl/edit_attribute.F                           |    19 +-
 fer/gnl/equal_type.F                               |   137 -
 fer/gnl/errmsg.F                                   |     8 +-
 fer/gnl/fill_fmrc_time_gaps.F                      |     4 +-
 fer/gnl/finalize.F                                 |     6 +-
 fer/gnl/float2string_for_xml.F                     |     2 +-
 fer/gnl/get_fer_command.F                          |    50 +-
 fer/gnl/get_mode_arg.F                             |    14 +-
 fer/gnl/init_ef_aggregate_dset.F                   |     6 +-
 fer/gnl/init_memory.F                              |    56 +-
 fer/gnl/init_t_aggregate_dset.F                    |     1 +
 ...ef_aggregate_dset.F => init_u_aggregate_dset.F} |   267 +-
 fer/gnl/is_agg_member.F                            |     5 +-
 fer/gnl/line_facts.F                               |    28 +-
 fer/gnl/line_facts_xml.F                           |     5 +-
 fer/gnl/list_cmnd_data.F                           |   102 +-
 fer/gnl/list_multi.F                               |     8 +-
 fer/gnl/list_multi_sub.F                           |    31 +-
 fer/gnl/ok_as_agg_var.F                            |     4 +-
 fer/gnl/parse_command.F                            |     8 +-
 fer/gnl/repl_exprns.F                              |    76 +-
 fer/gnl/sample.F                                   |   321 -
 fer/gnl/sample_sub.F                               |   346 -
 fer/gnl/sanity_check_memory.F                      |   376 +
 fer/gnl/set_var.F                                  |     3 +
 fer/gnl/show_1_function.F                          |    16 +-
 fer/gnl/show_1_mr.F                                |    46 +-
 fer/gnl/show_1_uvar_xml.F                          |    23 +-
 fer/gnl/show_data.F                                |    17 +-
 fer/gnl/show_data_files.F                          |    22 +-
 fer/gnl/show_data_set_vars.F                       |    96 +-
 fer/gnl/show_data_set_vars_xml.F                   |    68 +-
 fer/gnl/show_dyn_grids.F                           |    24 +-
 fer/gnl/show_grid.F                                |    19 +-
 fer/gnl/show_line_coords.F                         |    59 +-
 fer/gnl/show_line_xml.F                            |     8 +-
 .../explicit_uvar.F => gnl/show_mem_usage_line.F}  |    40 +-
 fer/gnl/show_region.F                              |     2 +
 fer/gnl/special_symbol.F                           |    70 +-
 fer/gnl/translate_limit.F                          |    10 +-
 fer/gnl/var_stat.F                                 |    34 +-
 fer/grdel/Makefile                                 |    15 +-
 fer/grdel/draw.c                                   |    31 +-
 fer/grdel/fgd_gopwk.F                              |    14 +-
 fer/grdel/fgd_set_unmapped_default.F               |     8 +-
 fer/grdel/grdel.h                                  |    10 +-
 fer/grdel/window.c                                 |    51 +-
 fer/ino/SOURCE_FILES                               |     1 -
 fer/ino/cdf_prep_cache.F                           |     8 +-
 fer/ino/find_dset_number.F                         |    53 +-
 fer/ino/init_ez_dset.F                             |     4 +-
 fer/ino/read_binary.F                              |    32 +-
 fer/ino/read_delimited.F                           |    58 +-
 fer/ino/read_ez.F                                  |    66 +-
 fer/ino/read_perl.F                                |   246 -
 fer/ino/read_remote.F                              |    15 +-
 fer/ino/read_tm.F                                  |    22 +-
 fer/mem/SOURCE_FILES                               |    21 +-
 fer/mem/assign_temp_var.F                          |    10 +-
 fer/mem/assign_variable.F                          |    27 +-
 fer/mem/{fill_memory.F => create_dyn_wrkspc.F}     |    42 +-
 fer/mem/create_mem_var.F                           |    71 +-
 ...{create_mem_var.F => create_mem_var_w_buffer.F} |    56 +-
 fer/mem/create_permutation.F                       |    39 +-
 fer/mem/create_temp_mem_var.F                      |    35 +-
 fer/mem/deallo_uvar_grids.F                        |    72 +-
 fer/mem/delete_mrs_in_progress.F                   |    20 +-
 fer/mem/delete_variable.F                          |    68 +-
 fer/mem/{fill_memory.F => dynmem_mrlist_c.F}       |    33 +-
 fer/mem/fill_memory.F                              |    16 +-
 fer/mem/find_mem_var.F                             |    37 +-
 fer/mem/find_mem_var_incl_c_cache.F                |     5 +-
 fer/mem/find_mr_slot.F                             |    30 +-
 fer/mem/find_var_name.F                            |     2 +
 fer/mem/free_memory.F                              |   144 -
 fer/mem/{release_work_spc.F => free_mr_dynmem.F}   |    28 +-
 fer/mem/{mr_available.F => free_ws_dynmem.F}       |    42 +-
 fer/mem/{mr_not_in_use.F => get_dyn_work_space.F}  |    50 +-
 fer/mem/get_memory.F                               |   158 -
 fer/mem/get_mr_dynmem.F                            |   122 +
 fer/mem/get_work_mr.F                              |    40 +-
 fer/mem/{find_mr_slot.F => get_ws_dynmem.F}        |    73 +-
 fer/mem/{find_mr_slot.F => hook_mr_slot.F}         |    28 +-
 fer/mem/{release_work_spc.F => mr2freelist.F}      |    26 +-
 fer/mem/mr_available.F                             |     9 +-
 fer/mem/mr_in_use.F                                |    13 +-
 fer/mem/mr_not_in_use.F                            |    40 +-
 fer/mem/new_mr_w_edges.F                           |     7 +-
 ...{get_work_spc.F => purge_all_uvars_except_ex.F} |    64 +-
 fer/mem/re_assign_variable.F                       |    11 +-
 ...release_work_spc.F => release_dyn_work_space.F} |    20 +-
 fer/mem/show_aborted_mem_state.F                   |   120 +
 fer/mem/{release_work_spc.F => store_mr_ptr.F}     |    31 +-
 fer/mem/{release_work_spc.F => store_nul_mr_ptr.F} |    31 +-
 fer/mem/{release_work_spc.F => store_nul_ws_ptr.F} |    31 +-
 fer/mem/{release_work_spc.F => store_ws_ptr.F}     |    31 +-
 fer/plt/SOURCE_FILES                               |     2 -
 fer/plt/axis_ends.F                                |    50 +-
 fer/plt/axis_format.F                              |     6 +-
 fer/plt/disp_data_set_up.F                         |    43 +-
 fer/plt/disp_set_up.F                              |   146 +-
 fer/plt/get_frame_size.F                           |    99 -
 fer/plt/get_view_size.F                            |     7 +-
 fer/plt/get_window_pixels.F                        |   115 -
 fer/plt/internal_whoi_date.F                       |     5 +
 fer/plt/line_plot_labels.F                         |    95 +-
 fer/plt/plot_set_up.F                              |   511 +-
 fer/plt/polygon_set_up.F                           |   105 +-
 fer/plt/put_annotation.F                           |     2 +-
 fer/plt/save_frame.F                               |    29 +-
 fer/plt/set_pytext_group.F                         |    65 +-
 fer/plt/set_window.F                               |    26 +-
 fer/plt/start_pplus.F                              |     3 +
 fer/plt/taxis_style.F                              |    15 +-
 fer/plt/whoi_date.F                                |     6 +
 fer/pyf/check_line_subset.F                        |     2 +-
 fer/pyf/check_time_line_subset.F                   |     2 +-
 fer/pyf/get_data_array_params.F                    |    16 +-
 fer/pyf/get_str_data_array_params.F                |    15 +-
 fer/rpn/alg_id.F                                   |     7 +-
 fer/rpn/break_up_expr.F                            |    21 +-
 fer/rpn/init_uvar.F                                |     8 +-
 fer/rpn/init_uvar_sub.F                            |    24 +-
 fer/rpn/not_rpn.F                                  |     2 +
 fer/rpn/ok_juxtapo.F                               |     4 +-
 fer/rpn/prcd.F                                     |     2 +
 fer/rpn/rpn.F                                      |     5 +-
 fer/special/SOURCE_FILES                           |     1 -
 fer/special/ferret_dispatch.F                      |    45 +-
 fer/special/ferret_query_f.F                       |   535 -
 fer/stk/SOURCE_FILES                               |     6 +-
 fer/stk/crawl_dependencies.F                       |     6 +-
 fer/stk/{is_dummy.F => define_next_chunk_cx.F}     |    57 +-
 fer/stk/diagnostic_out.F                           |    17 +-
 fer/stk/eval_expr.F                                |    12 +-
 fer/stk/exit_dependency_mode.F                     |     3 +-
 fer/stk/explicit_uvar.F                            |     5 +-
 fer/stk/get_cmnd_data.F                            |     5 +-
 fer/stk/get_prot_cmnd_data.F                       |    63 +-
 fer/stk/init_dependencies.F                        |    10 +-
 fer/stk/interp_context.F                           |     6 +-
 fer/stk/interp_stack.F                             |   191 +-
 fer/stk/is_aggregate_gather.F                      |     7 +-
 fer/stk/is_aggregate_grid.F                        |   286 -
 fer/stk/is_algebra.F                               |    55 +-
 fer/stk/is_attrib_val.F                            |    76 +-
 fer/stk/is_auxvar_regrid.F                         |    25 +-
 fer/stk/is_const_var.F                             |     7 +-
 fer/stk/is_constant.F                              |     5 +-
 fer/stk/is_counter_var.F                           |     5 +-
 fer/stk/is_dependencies.F                          |    17 +-
 fer/stk/is_do_gc_fcn.F                             |   165 +-
 fer/stk/is_do_op.F                                 |    39 +-
 fer/stk/is_dummy.F                                 |     6 +-
 fer/stk/is_gather.F                                |    14 +-
 fer/stk/is_modulo.F                                |    18 +-
 fer/stk/is_pseudo.F                                |    22 +-
 fer/stk/is_pystat_var.F                            |    21 +-
 fer/stk/is_read.F                                  |    15 +-
 fer/stk/is_read_remote.F                           |     5 +-
 fer/stk/is_reconcile.F                             |     3 +-
 fer/stk/is_regrid.F                                |    97 +-
 fer/stk/is_reverse.F                               |     9 +-
 fer/stk/is_sample.F                                |    21 +-
 fer/stk/is_string.F                                |     5 +-
 fer/stk/is_strip.F                                 |   150 +-
 fer/stk/is_subspan_fill.F                          |    12 +-
 fer/stk/is_trans.F                                 |   213 +-
 fer/stk/{is_gather.F => is_union_member.F}         |    86 +-
 fer/stk/is_uvar_grid.F                             |    81 +-
 fer/stk/its_auto_curvi.F                           |    11 +-
 fer/stk/known_grid.F                               |     5 +-
 fer/stk/make_pseudo_var.F                          |    30 +-
 fer/stk/pass_ambig_lims.F                          |    14 +-
 fer/stk/{is_dummy.F => potent_ax_lims.F}           |    60 +-
 fer/stk/setup_gather.F                             |   518 +
 fer/stk/setup_sample.F                             |    17 +-
 fer/stk/trans_init_value.F                         |   126 +
 fer/utl/SOURCE_FILES                               |    14 +
 fer/utl/acts_like_fvar.F                           |     2 +
 fer/utl/box_size.F                                 |    12 +-
 fer/utl/calendar_axis.F                            |    53 +-
 fer/{stk/exit_dependency_mode.F => utl/dir_line.F} |    31 +-
 fmt/src/tm_close_set.F => fer/utl/four_d_grid.F    |    25 +-
 fer/utl/gcf_get_alt_fcn_dir_arg.F                  |    22 +
 fer/utl/gcf_impose_axes.F                          |     4 +-
 fer/utl/gcf_impose_result_lims.F                   |    17 +-
 .../utl/gcf_set_abstract_axis.F                    |    22 +-
 ...r_grid_list_len.F => gcf_set_alt_fcn_for_dir.F} |    66 +-
 .../utl/gcf_set_normal_axis.F                      |    21 +-
 fer/utl/get_dependency_status.F                    |    10 +-
 fer/utl/get_saved_uvar_aux_info.F                  |    12 +-
 ...et_saved_uvar_grid.F => get_saved_uvar_dtype.F} |    23 +-
 fer/utl/get_saved_uvar_grid.F                      |    16 +-
 fer/utl/get_saved_uvar_grid_list_len.F             |     3 +-
 fer/utl/grid_world_extremes.F                      |     5 +-
 fer/utl/igrid.F                                    |     4 +-
 fer/utl/inherit_attrs.F                            |    34 +-
 fer/utl/isubscr_cx.F                               |    18 +-
 fer/utl/isubscript.F                               |     8 +-
 fer/utl/{itsa_gcvar.F => itsa_dcvar.F}             |    15 +-
 fer/utl/{itsa_gcvar.F => itsa_dirc_fcn.F}          |    27 +-
 fer/utl/itsa_gcvar.F                               |     9 +-
 fer/utl/itsa_pure_sum_var.F                        |     4 +-
 .../get_pix.F => fer/utl/itsa_truemonth_axis.F     |    34 +-
 fer/{ccr/sizeof_pointer.c => utl/return_one_val.F} |    27 +-
 fer/utl/save_uvar_aux_info.F                       |     4 +-
 fer/utl/secs_to_tstep.F                            |    10 +-
 fer/utl/short_mod_copy.F                           |    11 +-
 fer/utl/shrink_for_modulo.F                        |    48 +
 fer/utl/ss_neighbors.F                             |     7 +-
 fer/utl/store_sys_strings.F                        |    23 +-
 fer/utl/tdest_world_init.F                         |     5 +-
 fer/{gnl/finalize.F => utl/tplot_axis_ends.F}      |    91 +-
 fer/utl/tstep_to_date.F                            |     8 +-
 fer/utl/tstep_to_secs.F                            |    11 +-
 fer/{gnl => utl}/warn_occasionally.F               |     0
 fer/xeq/xeq_cancel.F                               |    32 +-
 fer/xeq/xeq_contour.F                              |    28 +-
 fer/xeq/xeq_define.F                               |   589 +-
 fer/xeq/xeq_frame.F                                |     2 +-
 fer/xeq/xeq_list.F                                 |    75 +-
 fer/xeq/xeq_load.F                                 |    14 +-
 fer/xeq/xeq_plot.F                                 |    29 +-
 fer/xeq/xeq_polygon.F                              |    27 +-
 fer/xeq/xeq_set.F                                  |   124 +-
 fer/xeq/xeq_shade.F                                |    28 +-
 fer/xeq/xeq_show.F                                 |   170 +-
 fer/xeq/xeq_spawn.F                                |    31 +-
 fer/xeq/xeq_stat.F                                 |    24 +-
 fer/xeq/xeq_user_command.F                         |   103 -
 fer/xeq/xeq_vector.F                               |    27 +-
 fer/xeq/xeq_wire.F                                 |    27 +-
 ferretmagic.py                                     |   479 -
 fmt/cmn/NCF_Util.h                                 |    18 +-
 fmt/cmn/descript.def                               |     2 +-
 fmt/cmn/ez_delimited_read.h                        |    30 +-
 fmt/cmn/ez_lib.parm                                |    10 +-
 fmt/cmn/tmap_dims.parm                             |    31 +-
 fmt/cmn/tmap_dset.parm                             |     7 +-
 fmt/cmn/xstep_files.cmn_text                       |     3 +-
 fmt/cmn/xunits.cmn_text                            |    28 +-
 fmt/src/NCF_Util.c                                 |  6110 ++---
 fmt/src/SOURCE_FILES                               |    11 +
 fmt/src/cd_axis_name.F                             |     5 +-
 fmt/src/cd_axis_outname.F                          |     4 +-
 .../src/cd_axname_to_write.F                       |    95 +-
 fmt/src/cd_get_1_axis.F                            |   335 +-
 fmt/src/cd_get_1_dep_var.F                         |     2 +-
 fmt/src/cd_get_generic_grids.F                     |    16 +-
 fmt/src/cd_get_t0.F                                |    14 +-
 fmt/src/{tm_warn_subspan.F => cd_get_time_units.F} |    87 +-
 fmt/src/cd_get_var_info.F                          |     9 +-
 fmt/src/cd_make_fmrc_axes.F                        |    43 +-
 fmt/src/cd_make_fmrc_fcal_axis.F                   |     7 +-
 fmt/src/cd_make_var.F                              |    20 +-
 fmt/src/cd_quik_ncopen.F                           |    39 +-
 fmt/src/cd_scan_vars.F                             |    18 +-
 fmt/src/cd_write_axis.F                            |   147 +-
 fmt/src/cd_write_grid.F                            |     4 +-
 fmt/src/cd_write_var.F                             |    69 +-
 fmt/src/ez_count_dset.F                            |     6 +-
 fmt/src/ez_delimited_read.c                        |   307 +-
 fmt/src/ez_init_dset.F                             |    34 +-
 fmt/src/ez_mod_dset.F                              |     3 +-
 fmt/src/ez_mod_vars.F                              |     3 +-
 fmt/src/ez_read.F                                  |     5 +-
 fmt/src/mc_init_dset.F                             |     2 +-
 fmt/src/mc_read.F                                  |    54 +-
 fmt/src/string_array_clear.c                       |     2 +-
 .../is_read_remote.F => fmt/src/tm_adjust_bounds.F |    86 +-
 fmt/src/tm_axis_direction.F                        |     8 +-
 fmt/src/tm_axis_recursive.F                        |     6 +-
 fmt/src/tm_break_fmt_date.F                        |     6 +-
 fmt/src/tm_check_bnds_centered.F                   |     3 +
 fmt/src/tm_check_coords.F                          |   280 +
 fmt/src/tm_check_monthly_axis.F                    |   180 +
 fmt/src/tm_close_set.F                             |    13 +-
 fmt/src/tm_close_set_cond_deallo.F                 |    11 +-
 fmt/src/tm_errmsg.F                                |     6 +-
 fmt/src/tm_exit.F                                  |     3 +-
 fmt/src/tm_exp_code.F                              |     3 +-
 fmt/src/tm_fmt.F                                   |    41 +-
 fmt/src/tm_fmt_user.F                              |    30 +-
 .../mr_available.F => fmt/src/tm_fpeq_eps_sngl.F   |    46 +-
 fmt/src/tm_friendly_read.F                         |     2 +-
 fmt/src/tm_ftoc_readline.c                         |    14 +-
 fmt/src/tm_get_like_dyn_line.F                     |     9 +-
 fmt/src/tm_init_dset.F                             |    17 +-
 fmt/src/tm_its_subspan_modulo.F                    |     7 +-
 .../{tm_rm_tmp_line.F => tm_make_new_dyn_grid.F}   |    49 +-
 .../src/tm_month_time_factor.F                     |    61 +-
 fmt/src/tm_path_list.F                             |     7 +-
 fmt/src/tm_rm_tmp_line.F                           |     2 +-
 fmt/src/tm_secs_to_date.F                          |   255 +-
 fmt/src/{tm_secs_to_date.F => tm_secs_to_ymdhms.F} |    82 +-
 fmt/src/tm_subsc.F                                 |    35 +-
 fmt/src/tm_tcoord_trumonth.F                       |   225 +
 fmt/src/{tm_rm_tmp_line.F => tm_units_cal.F}       |    68 +-
 fmt/src/tm_warn_subspan.F                          |     0
 fmt/src/tm_world.F                                 |    22 +-
 fmt/src/tm_world_ax.F                              |   125 +-
 fmt/src/tm_world_recur.c                           |     8 +
 fmt/src/tm_ww_ax_1_n.F                             |     6 +
 fmt/src/tm_ww_axlims.F                             |     6 +
 fmt/src/xdset_info_data.F                          |     6 +-
 fmt/src/xez_info_data.F                            |     3 +
 fmt/src/xgt_grid_data.F                            |    19 +-
 fmt/src/xstep_files_data.F                         |     3 +-
 fmt/src/xunits_data.F                              |    52 +-
 gcircle.py                                         |   100 +-
 jnls/contrib/barbs_metvec_demo.jnl                 |    82 +
 jnls/contrib/earth_distance.jnl                    |    48 +
 .../contrib/eqn_of_state_from_theta_JMFWG_2006.jnl |   162 +
 jnls/contrib/metvec.jnl                            |    72 +
 jnls/examples/annotate_demo.jnl                    |     2 +
 jnls/examples/dsg_checker.jnl                      |   242 +
 jnls/examples/image_to_kml.jnl                     |    10 +-
 jnls/examples/land_detail_demo.jnl                 |     2 +-
 jnls/examples/mp_stereo_demo.jnl                   |     2 +-
 jnls/go/plot_swath.jnl                             |     8 +-
 jnls/go/wv5d_append.jnl                            |    12 +-
 palettes/gray_pale.spk                             |     2 +
 palettes/inferno.spk                               |   104 +
 palettes/magma.spk                                 |   104 +
 palettes/plasma.spk                                |   104 +
 palettes/rnb_no_purple.spk                         |     5 +
 palettes/viridis.spk                               |   105 +
 platform_specific.mk.i386-linux                    |    20 +-
 platform_specific.mk.i386-linux-gnu                |    22 +-
 platform_specific.mk.intel-mac                     |    22 +-
 platform_specific.mk.x86_64-linux                  |    23 +-
 platform_specific.mk.x86_64-linux-gnu              |    22 +-
 ppl/complot/symbel_hershey.F                       |     0
 ppl/complot/symwid.F                               |     0
 ppl/plot/box.F                                     |     3 +-
 ppl/plot/daxis.F                                   |    14 +-
 ppl/plot/daxis2.F                                  |     2 +-
 ppl/plot/linfit.F                                  |    18 +-
 ppl/plot/pltit.F                                   |    18 +-
 ppl/plot/pplcmd_f.F                                |     4 +-
 ppl/plot/pplldx.F                                  |    27 +-
 ppl/plot/ppllist.F                                 |    32 +-
 ppl/plot/prmtiv.F                                  |     4 +-
 ppl/plot/setax.F                                   |     6 +-
 ppl/plot/size2.F                                   |     4 +-
 ppl/plotlib/taxis.F                                |    17 +-
 ppl/plotlib/taxis0.F                               |    19 +-
 ppl/plotlib/taxis1.F                               |    11 +-
 ppl/plotlib/taxis3.F                               |    24 +-
 ppl/plotlib/taxis4.F                               |   306 +-
 ppl/plotlib/tayis.F                                |    14 +-
 ppl/plotlib/tayis0.F                               |    15 +-
 ppl/plotlib/tayis1.F                               |    11 +-
 ppl/plotlib/tayis3.F                               |    25 +-
 ppl/plotlib/tayis4.F                               |   376 +-
 ppl/plotlib/xaxis1.F                               |    32 +-
 ppl/plotlib/xaxis2.F                               |    13 +-
 ppl/plotlib/yaxis1.F                               |    35 +-
 ppl/plotlib/yaxis2.F                               |    12 +-
 ppl/pplepic/epictrd.F                              |     2 +-
 ppl/pplepic/epicvar.F                              |    20 +-
 ppl/tmap_inc/gkscm2.cmn                            |     4 +-
 ppl/tmapadds/SOURCE_FILES                          |     2 -
 ppl/tmapadds/compute_mnstd.F                       |    18 +-
 ppl/tmapadds/key.F                                 |   152 +-
 ppl/tmapadds/set_window_size.F                     |    70 -
 ppl/tmapadds/setlab_syms.F                         |    11 +-
 ppl/tmapadds/shade_sub.F                           |     7 +-
 pviewmod/__init__.py                               |    38 +-
 pviewmod/cmndhelperpq.py                           |    37 +-
 pviewmod/pipedimagerpq.py                          |   278 +-
 pviewmod/pipedviewerpq.py                          |   325 +-
 pviewmod/pyferretbindings.py                       |   102 +-
 pviewmod/scaledialogpq.py                          |   103 +-
 pyfermod/__init__.py                               |   227 +-
 pyfermod/copy_pystat_data.c                        |    25 +-
 pyfermod/datamethods.py                            |    59 +-
 pyfermod/decref_pyobj.c                            |     3 +-
 pyfermod/eofanal/eofanalysis.py                    |    94 +-
 pyfermod/eofanal/eofanalysistests.py               |     4 +-
 pyfermod/eofanal/eofdatapiece.py                   |    38 +-
 pyfermod/eofanal/eofdatasum.py                     |    39 +-
 pyfermod/feraggdset.py                             |   107 +-
 pyfermod/feraxis.py                                |     4 +-
 pyfermod/ferdset.py                                |    35 +-
 pyfermod/ferfmrcdset.py                            |    48 +
 pyfermod/ferfmrcvar.py                             |    74 +
 pyfermod/fergrid.py                                |    10 +-
 pyfermod/fermethods.py                             |    63 +-
 pyfermod/fershp/__init__.py                        |    12 +-
 pyfermod/fershp/mapprj.py                          |     4 +-
 pyfermod/fershp/shapefile_readxy.py                |    16 +-
 pyfermod/fershp/shapefile_readxyval.py             |    16 +-
 pyfermod/fershp/shapefile_readxyz.py               |     6 +-
 pyfermod/fershp/shapefile_readxyzval.py            |    12 +-
 pyfermod/fershp/shapefile_writeval.py              |    14 +-
 pyfermod/fershp/shapefile_writexyval.py            |    12 +-
 pyfermod/fershp/shapefile_writexyzval.py           |    16 +-
 pyfermod/fervar.py                                 |    18 +-
 pyfermod/filenamecompleter.py                      |    28 +-
 pyfermod/graphbind/__init__.py                     |    13 +-
 pyfermod/graphbind/abstractpyferretbindings.py     |    12 +-
 pyfermod/libpyferret.c                             |   795 +-
 pyfermod/pyefcn_compute.c                          |   192 +-
 pyfermod/pyefcn_custom_axes.c                      |    12 +-
 pyfermod/pyefcn_get_error.c                        |     5 +
 pyfermod/pyefcn_init.c                             |    74 +-
 pyfermod/pyefcn_result_limits.c                    |    12 +-
 pyfermod/pyefmethods.py                            |     2 +-
 pyfermod/pyferret.h                                |    57 +-
 pyfermod/regrid/curv2rect.py                       |     8 +-
 pyfermod/regrid/curv3srect.py                      |     6 +-
 pyfermod/regrid/regrid2dexample.py                 |    74 +-
 pyfermod/regrid/regrid2dexample2.py                |    34 +-
 pyfermod/regrid/regrid2dtests.py                   |    51 +-
 pyfermod/regrid/regrid3d.py                        |    66 +-
 pyfermod/regrid/regrid3dexample.py                 |    72 +-
 pyfermod/regrid/regrid3dtests.py                   |    83 +-
 pyfermod/regrid/regridtests.py                     |    18 +-
 pyfermod/set_memory.c                              |    14 +-
 pyfermod/stats/__init__.py                         |   286 +-
 pyfermod/stats/create_stats_funcs.sh               |     6 +-
 pyfermod/stats/stats_cdf.py                        |    11 +-
 pyfermod/stats/stats_chisquare.py                  |    17 +-
 pyfermod/stats/stats_fit.py                        |    11 +-
 pyfermod/stats/stats_helper.py                     |    25 +-
 pyfermod/stats/stats_histogram.py                  |     7 +-
 pyfermod/stats/stats_isf.py                        |    11 +-
 pyfermod/stats/stats_kstest1.py                    |    21 +-
 pyfermod/stats/stats_kstest2.py                    |    13 +-
 pyfermod/stats/stats_linregress.py                 |     7 +-
 pyfermod/stats/stats_norm_pdf.py                   |    17 +-
 pyfermod/stats/stats_pdf.py                        |    11 +-
 pyfermod/stats/stats_pearsonr.py                   |     9 +-
 pyfermod/stats/stats_percentilesofscores.py        |    13 +-
 pyfermod/stats/stats_pmf.py                        |    11 +-
 pyfermod/stats/stats_ppf.py                        |    11 +-
 pyfermod/stats/stats_probplotvals.py               |    25 +-
 pyfermod/stats/stats_rvs.py                        |    13 +-
 pyfermod/stats/stats_scoresatpercentiles.py        |    13 +-
 pyfermod/stats/stats_sf.py                         |    11 +-
 pyfermod/stats/stats_spearmanr.py                  |     9 +-
 pyfermod/stats/stats_stats.py                      |     9 +-
 pyfermod/stats/stats_ttest1.py                     |    13 +-
 pyfermod/stats/stats_ttest2ind.py                  |    17 +-
 pyfermod/stats/stats_ttest2rel.py                  |    11 +-
 pyfermod/stats/stats_zscore.py                     |    13 +-
 setup.py                                           |    88 +-
 site_specific.mk                                   |    90 +-
 863 files changed, 109784 insertions(+), 54225 deletions(-)

diff --git a/Makefile b/Makefile
index ae87863..dd39492 100644
--- a/Makefile
+++ b/Makefile
@@ -42,18 +42,33 @@ debug :
 	$(MAKE) externals_debug
 	$(MAKE) -C $(DIR_PREFIX)/bin/build_fonts/unix
 
+## The following defines VERBOSEDEBUG used by fer/grdel, which causes it
+## to create a pyferretdebug.log file with all the graphics commands issued
+.PHONY : verbosedebug
+verbosedebug :
+	mkdir -p $(DIR_PREFIX)/lib
+	$(MAKE) -C $(DIR_PREFIX)/fer verbosedebug
+	$(MAKE) -C $(DIR_PREFIX)/threddsBrowser
+	$(MAKE) pymod_debug_build
+	$(MAKE) pymod_debug_install
+	$(MAKE) externals_debug
+	$(MAKE) -C $(DIR_PREFIX)/bin/build_fonts/unix
+
 ## The following does an optimized build of libpyferret.so
 .PHONY : pymod_optimized_build
 pymod_optimized_build :
 	rm -fr $(DIR_PREFIX)/build $(DIR_PREFIX)/install
 	( cd $(DIR_PREFIX) ; \
 	  export CC=$(CC) ; \
-	  export CFLAGS="$(CFLAGS) -O" ; \
+	  export CFLAGS="$(CFLAGS) -DNDEBUG -O" ; \
 	  export BUILDTYPE=$(BUILDTYPE) ; \
 	  export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \
 	  export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \
+	  export PANGO_LIBDIR=$(PANGO_LIBDIR) ; \
 	  export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \
+	  export COMPRESS_LIB=$(COMPRESS_LIB) ; \
 	  export NETCDF4_LIBDIR=$(NETCDF4_LIBDIR) ; \
+	  export IS_LINUX_SYSTEM=$(IS_LINUX_SYSTEM) ; \
 	  $(PYTHON_EXE) setup.py --quiet build )
 
 ## The following installs libpyferret.so and optimized 
@@ -63,12 +78,15 @@ pymod_optimized_install :
 	rm -fr $(DIR_PREFIX)/install
 	( cd $(DIR_PREFIX) ; \
 	  export CC=$(CC) ; \
-	  export CFLAGS="$(CFLAGS) -O" ; \
+	  export CFLAGS="$(CFLAGS) -DNDEBUG -O" ; \
 	  export BUILDTYPE=$(BUILDTYPE) ; \
 	  export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \
 	  export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \
+	  export PANGO_LIBDIR=$(PANGO_LIBDIR) ; \
 	  export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \
+	  export COMPRESS_LIB=$(COMPRESS_LIB) ; \
 	  export NETCDF4_LIBDIR=$(NETCDF4_LIBDIR) ; \
+	  export IS_LINUX_SYSTEM=$(IS_LINUX_SYSTEM) ; \
 	  $(PYTHON_EXE) setup.py --quiet install -O2 --prefix=$(DIR_PREFIX)/install )
 
 .PHONY : externals_optimized
@@ -81,12 +99,15 @@ pymod_debug_build :
 	rm -fr $(DIR_PREFIX)/build $(DIR_PREFIX)/install
 	( cd $(DIR_PREFIX) ; \
 	  export CC=$(CC) ; \
-	  export CFLAGS="$(CFLAGS) -O0 -g" ; \
+	  export CFLAGS="$(CFLAGS) -UNDEBUG -O0 -g" ; \
 	  export BUILDTYPE=$(BUILDTYPE) ; \
 	  export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \
 	  export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \
+	  export PANGO_LIBDIR=$(PANGO_LIBDIR) ; \
 	  export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \
+	  export COMPRESS_LIB=$(COMPRESS_LIB) ; \
 	  export NETCDF4_LIBDIR=$(NETCDF4_LIBDIR) ; \
+	  export IS_LINUX_SYSTEM=$(IS_LINUX_SYSTEM) ; \
 	  $(PYTHON_EXE) setup.py build -g )
 
 ## The following installs libpyferret.so and unoptimized
@@ -96,13 +117,16 @@ pymod_debug_install :
 	rm -fr $(DIR_PREFIX)/install
 	( cd $(DIR_PREFIX) ; \
 	  export CC=$(CC) ; \
-	  export CFLAGS="$(CFLAGS) -O0 -g" ; \
+	  export CFLAGS="$(CFLAGS) -UNDEBUG -O0 -g" ; \
 	  export BUILDTYPE=$(BUILDTYPE) ; \
 	  export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \
 	  export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \
+	  export PANGO_LIBDIR=$(PANGO_LIBDIR) ; \
 	  export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \
+	  export COMPRESS_LIB=$(COMPRESS_LIB) ; \
 	  export NETCDF4_LIBDIR=$(NETCDF4_LIBDIR) ; \
-	  $(PYTHON_EXE) setup.py install -O0 --prefix=$(DIR_PREFIX)/install )
+	  export IS_LINUX_SYSTEM=$(IS_LINUX_SYSTEM) ; \
+	  $(PYTHON_EXE) setup.py --quiet install -O0 --prefix=$(DIR_PREFIX)/install )
 
 .PHONY : externals_debug
 externals_debug :
@@ -115,8 +139,8 @@ clean :
 	$(MAKE) -C $(DIR_PREFIX)/bin/build_fonts/unix clean
 	$(MAKE) -C $(DIR_PREFIX)/external_functions clean
 	rm -fr $(DIR_PREFIX)/install $(DIR_PREFIX)/build ferret.jnl*
-	find $(DIR_PREFIX)/pviewmod -name '*.py[co]' -exec rm -f {} ';'
-	find $(DIR_PREFIX)/pyfermod -name '*.py[co]' -exec rm -f {} ';'
+	find $(DIR_PREFIX)/pviewmod -name '*.py[co]' -delete
+	find $(DIR_PREFIX)/pyfermod -name '*.py[co]' -delete
 	$(MAKE) -C $(DIR_PREFIX)/threddsBrowser clean
 	$(MAKE) -C $(DIR_PREFIX)/fer clean
 	rm -fr $(DIR_PREFIX)/lib
@@ -145,8 +169,11 @@ update :
 	  export BUILDTYPE=$(BUILDTYPE) ; \
 	  export CAIRO_LIBDIR=$(CAIRO_LIBDIR) ; \
 	  export PIXMAN_LIBDIR=$(PIXMAN_LIBDIR) ; \
+	  export PANGO_LIBDIR=$(PANGO_LIBDIR) ; \
 	  export HDF5_LIBDIR=$(HDF5_LIBDIR) ; \
+	  export COMPRESS_LIB=$(COMPRESS_LIB) ; \
 	  export NETCDF4_LIBDIR=$(NETCDF4_LIBDIR) ; \
+	  export IS_LINUX_SYSTEM=$(IS_LINUX_SYSTEM) ; \
 	  $(PYTHON_EXE) setup.py --quiet install -O2 --prefix=$(INSTALL_FER_DIR) )
 
 ## Execute the RUN_TESTS.sh tests
diff --git a/README.md b/README.md
index 07f5580..9662547 100644
--- a/README.md
+++ b/README.md
@@ -3,3 +3,99 @@ The PyFerret Python module from NOAA/PMEL.
 This repository is regularly synchronized with PyFerret repository at PMEL
 (the pyferret branch of the ferret project in the TMAP SVN repository at PMEL)
 using git-svn.
+
+## Jupyter / iPython notebook
+
+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)
+
+## Anaconda Installation - Linux, OS X, and Windows 10/bash
+
+Download and install [miniconda](http://conda.pydata.org/miniconda.html) for your system. 
+Note that Windows 10 bash must use the Linux version! 
+The Python version in miniconda does not matter; 
+`pyferret` only uses `Python 2.7` and will install it in the `pyferret` environment.
+
+Execute the following command on the terminal to install `pyferret` as well as 
+`ferret_datasets` (the default Ferret/PyFerret datasets) into conda:
+```shell
+conda create -n FERRET -c conda-forge pyferret ferret_datasets --yes
+```
+
+To start using `pyferret`, execute the following command:
+```shell
+source activate FERRET
+```
+
+Once you are done working with `pyferret` you can leave this environment, 
+if you wish, with the command:
+```shell
+source deactivate FERRET
+```
+
+In the commands above, `FERRET` is the environment name where `pyferret` is installed. 
+You can change that to any name you like but we do not recommend installing `pyferret` 
+in the root environment of miniconda. 
+The main reason is to take advantage of the `activate/deactivate` script that will set 
+up all the variables that `pyferret` needs. 
+(You can test whether the `pyferret` environment is activated by issuing the command 
+`echo $FER_DATA` and see if it returns a directory name.)
+
+## Installation from prebuilt tar.gz file
+
+The following packages are needed to run PyFerret on Ubuntu:
+ * `python-numpy`
+ * `python-scipy` (optional but highly recommended)
+ * `python-pyshp` (or use `pip install pyshp`; for shapefile functions; optional)
+ * `libgfortran` (should be installed with python-scipy installation)
+ * `default-jre` (or `default-jdk`; for ThreddsBrowser; optional)
+
+The following packages are also needed but should already be installed:
+ * `python-qt4` (Python bindings for Qt4)
+ * `libcurl3` or `libcurl4-openssl-dev` (for the libcurl.so.4 library)
+ * `libpangocairo` (for the pango and pango-cairo text processing libraries)
+
+If you do not already have them, the Ferret standard datasets can be obtained 
+from the [FerretDatasets github site](https://github.com/NOAA-PMEL/FerretDatasets)
+The contents can be put extracted/cloned to whatever location desired.
+
+Extract the PyFerret tar.gz file in the desired location.
+Starting with PyFerret v7, there is only one tar.gz file which 
+extracts all its contents to a subdirectory that it creates
+(as apposed to Ferret which has separate `fer_environment` and 
+`fer_executables` tar.gz files that extract into the current directory).
+If desired, at this time you can change the name of this subdirectory 
+that was created.
+
+Move into this PyFerret installation directory and run the `bin/Finstall`
+script to create the `ferret_paths.sh`, `ferret_paths.csh`, and `pyferret`
+scripts.  The value of `FER_DIR`, the Ferret/PyFerret installation directory,
+should be this installation directory, which can be specified as `.` (a period) 
+which means the current directory.
+(If `FER_DIR` is already defined for another Ferret/PyFerret installation,
+you will need to tell the script to use a new value.)
+For `FER_DSETS`, the Ferret standard datasets, specify the directory 
+containing these datasets (which you may have created from the FerretDatasets
+github site mentioned above).
+
+To run PyFerret, you first need to set the Ferret environment variables.
+This can be done by executing either `. ferret_paths.sh` (for Bourne-type shells; 
+e.g., bash) or `source ferret_paths.csh` (for C-type shells; e.g. tcsh).
+* Note: the pyferret script has recently been updated to automatically set 
+  the Ferret environment variables, if not already defined, using the appropriate 
+  `ferret_paths` script.
+
+For more information on using PyFerret, see the Ferret and PyFerret documentation under 
+[http://ferret.pmel.noaa.gov/Ferret/documentation/](http://ferret.pmel.noaa.gov/Ferret/documentation/)
+Information about the Ferret email users group, and archives of past discussions
+from the group (which should be searched prior to sending a question to the email 
+users group) can be found at 
+[http://ferret.pmel.noaa.gov/Ferret/email-users-group](http://ferret.pmel.noaa.gov/Ferret/email-users-group)
+
+
+## Building PyFerret from source
+
+To build PyFerret from source code, please see the `Building PyFerret` instructions at
+[http://ferret.pmel.noaa.gov/Ferret/documentation/pyferret/build-install/](http://ferret.pmel.noaa.gov/Ferret/documentation/pyferret/build-install/)
+
diff --git a/README_build_pyferret_mac.txt b/README_pyferret_mac_homebrew.txt
similarity index 77%
rename from README_build_pyferret_mac.txt
rename to README_pyferret_mac_homebrew.txt
index 9cda130..5ff5730 100644
--- a/README_build_pyferret_mac.txt
+++ b/README_pyferret_mac_homebrew.txt
@@ -1,8 +1,41 @@
-Instructions for build PyFerret on Mac OSX using homebrew.
+Information related to using and building PyFerret on Mac OS X using homebrew to install required packages.
+
 If you do not have homebrew install, run the following at a command prompt (terminal window).
     /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
 See http://brew.sh/ for more information on using homebrew.
 
+** Using PyFerret on Mac OS X using homebrew. **
+
+At this time you will need to install the gcc package to provide the gcc libraries used by PyFerret.
+You will also need to install the homebrew package for PyQt4 (pyqt).  I have always first installed
+the homebrew Python2.7 package (python), but I am not sure if this is required or not, 
+or the pyqt may require it and install it automatically.  Finally, install numpy 
+(and scipy and pyshp, while you are at it, althought not required) 
+using pip install from the python package.
+
+brew install gcc
+brew install python
+brew install pyqt
+pip install numpy
+pip install scipy
+pip install pyshp
+
+Download the MacOSX prebuilt tar.gz file and extract its contents.  
+(For PyFerret, there is only one tar.gz file containing the "environment" 
+and "executable" files that are packaged separately in Ferret.)  
+
+If you do not already have the default Ferret datasets, also download 
+and extract the contents of that tar.gz file.
+
+Run the bin/Finstall script that is found under the PyFerret installation directory.
+This script will ask for the PyFerret installation directory name, the default
+Ferret datasets name, the directory in which to create the ferret_paths scripts,
+and the python to use.  (The directories can all be relative path names.)
+The appropriate ferret_paths script must to "sourced" before running PyFerret.
+("source ferret_paths.csh" for C-shell users, ". ferret_paths.sh" for Bourne-shell users.)
+
+** Building PyFerret on Mac OS X using homebrew. **
+
 You will want to have the bin subdirectory of the homebrew package installation directory 
 (/usr/local/bin is the default) at the start of your path :
 
diff --git a/bench/492C19881104.nc b/bench/492C19881104.nc
new file mode 100644
index 0000000..ee7335b
Binary files /dev/null and b/bench/492C19881104.nc differ
diff --git a/bench/Makefile b/bench/Makefile
index 88e8351..bb799b4 100644
--- a/bench/Makefile
+++ b/bench/Makefile
@@ -15,7 +15,7 @@ run_tests:
 	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'
-	@for img in *.pdf *.png ; \
+	- at for img in *.pdf *.png ; \
 	do \
 	    diff -q $$img test_results/$$img ; \
 	done
@@ -27,7 +27,7 @@ run_tests:
 .PHONY: clean
 clean:
 	rm -f all_*_ncdump all_*_err all_*_log
-	rm -f *.plt* *.gif* *.ps* *.png* *.pdf* ferret.jnl*
+	rm -f *.plt* *.gif* *.ps* *.eps* *.png* *.pdf* 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/TEST_SCRIPTS b/bench/TEST_SCRIPTS
index 9baf004..439db0d 100644
--- a/bench/TEST_SCRIPTS
+++ b/bench/TEST_SCRIPTS
@@ -260,14 +260,37 @@ 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, bn_all_ef, and bn_startupfile at end
+!
 bn_gif.jnl
 bn_ps.jnl
 bn_all_ef.jnl
 bn_startupfile.jnl
+!
+! Test SOCAT decimation script (not part of normal benchmark tests)
+!
+err700_decimate.jnl
 ! PyFerret-only Ferret scripts
 bn_outline_poly.jnl
 bn_contourcolor.jnl
+bn_inf2missing.jnl
 ! PyFerret-only Python scripts
 testgetstrdata.py
 testferregion.py
diff --git a/bench/TRASH_FILES b/bench/TRASH_FILES
index f3d4e47..ae1ce72 100644
--- a/bench/TRASH_FILES
+++ b/bench/TRASH_FILES
@@ -3,12 +3,14 @@
 11a.dat
 1a.dat
 3a.dat
+492C19881104_dec.nc
 5a.dat
 7a.dat
 9a.dat
 a1.nc
 a2.nc
 aa.nc
+abc.dat
 abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.gif
 abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.png
 a.gif
@@ -21,8 +23,13 @@ append_to_this.nc
 asc.nc
 a.txt
 b1566.jnl
+b1.nc
+b2.nc
 b.jnl
 b.nc
+bn_dynamic_gather_0.out
+bn_dynamic_gather_30.out
+bn_dynamic_gather_60.out
 bn_test_stream.jnl
 c1.nc
 c2.nc
@@ -144,6 +151,7 @@ test0p.cdf
 test_100x100.nc
 test2.cdf
 test_abs.cdf
+test_auto_cache.out
 test.cdf
 test.dat
 test_fil0.cdf
diff --git a/bench/aggT_5d1.nc b/bench/aggT_5d1.nc
new file mode 100644
index 0000000..046e7a3
Binary files /dev/null and b/bench/aggT_5d1.nc differ
diff --git a/bench/aggT_5d2.nc b/bench/aggT_5d2.nc
new file mode 100644
index 0000000..0fbc581
Binary files /dev/null and b/bench/aggT_5d2.nc differ
diff --git a/bench/ansley_official.rhel5_32_err b/bench/ansley_official.rhel5_32_err
index b79efea..3cb47b0 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 121894588 May 11 15:36 /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
 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: updates including subspan modulo fixes
+Note: with CANCEL MODE STUPID in bn_reset
 ncdump output will be in all_ncdump.out, and appended to this log file 
 ***** Restricting Ferret paths to bench directory *****
 FER_DAT=.
@@ -20,9 +20,12 @@ 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 Wed May 11 16:10:59 PDT 2016
+Beginning at Tue Apr 11 16:46:42 PDT 2017
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_syntax
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
         SET EXPRESSION has not been given or implied
  **ERROR: unknown command qualifier: notaqualifier
 MESSAGE/CONTINUE/notaqualifier
@@ -32,6 +35,8 @@ that
 \! ignore (err cuz bang gets escaped)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dollar
  **ERROR: invalid command: Value needed for argument 3 in command
           GO bn_dollar hello
 message/cont $3
@@ -82,6 +87,8 @@ say ($100)
 say ($10)0
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_grave
  **ERROR: command syntax: unpaired grave accents: message/continue "2+2=`2+2"
 message/continue "2+2=`2+2"
  **ERROR: variable unknown or not in data set: GARBAGE
@@ -124,6 +131,8 @@ MESSAGE/CONTINUE `sst,return=Xsize`
 MESSAGE/CONTINUE `sst,return=trash`
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_letd
  **ERROR: unknown data set: NOEXIST
 DEFINE VARIABLE/d=noexist a = b
  **ERROR: variable unknown or not in data set: AIRT[D=GT4D011]
@@ -134,6 +143,8 @@ can var
  LISTing to file v1file.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_if
  **ERROR: invalid command: ENDIF can only be used in an IF clause
 ENDIF
  **ERROR: command syntax: ELIF cannot be used in single line IF
@@ -142,16 +153,18 @@ IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
  **ERROR: command syntax: Trash after ENDIF
           IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
 IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
-           *** NOTE: Unclosed IF statement ... assuming ENDIF
+           *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./bn_if.sub
  **ERROR: invalid command: ELSE can only be used between IF and ENDIF
 else
  **ERROR: invalid command: ENDIF can only be used in an IF clause
 endif
  **ERROR: invalid command: ELIF can only be used between IF and ENDIF
 elif
-           *** NOTE: Unclosed IF statement ... assuming ENDIF
+           *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./bn_if.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_expressions
  **ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
 LIST/ORDER=X  IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
@@ -163,6 +176,8 @@ DEFINE VARIABLE A = IF I LT 5 THEN I ELSE -9
 load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_geometry
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -174,6 +189,8 @@ load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
 LIST X[I=1:5] - X[I=6:9]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_output
  LISTing to file WV.J34K56L7
  LISTing to file test.dat
  LISTing to file test.dat
@@ -182,14 +199,22 @@ LIST X[I=1:5] - X[I=6:9]
 LIST/FILE=test.gt/FORMAT=TMAP/L=1:3 v,v^0.5
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_in_plane
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_compress
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_interpolate
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regrid
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis XFINE
@@ -199,9 +224,13 @@ Replacing definition of axis YCOARSE
 Replacing definition of grid G24
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ez
  LISTing to file test.unf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot
  **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
@@ -264,6 +293,8 @@ cont/over/i=1:10/thick=4 i
 cont/over/i=1:10/sigdig=-1 i
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_curv
 Replacing definition of axis LON_FIELD_I_AXIS
 Replacing definition of axis LON_FIELD_J_AXIS
 Replacing definition of axis LAT_FIELD_I_AXIS
@@ -281,6 +312,8 @@ shade/nolabel sst, x_page[j=1:12], y_page
 shade/nolabel sst, x_page[j=1:12], y_page
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_symbols
  **ERROR: command syntax: illegal name: TEST*
 define symbol test* = hello
  **ERROR: invalid command: Value needed for argument 5 in command
@@ -300,8 +333,12 @@ message/continue ($t2"|solong>really hello|bye|")
            *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_comma_delimited
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dynamic_grids
  **ERROR: unknown defining grid: GX=NOEXIST
 list temp[gx=noexist]
  **ERROR: command syntax: P=NOEXIST
@@ -344,12 +381,8 @@ list tu
 list tu
  **ERROR: regridding: Axis orientation not matching request:GX=PSYU
 list tu
- Cached data cleared from memory
- **ERROR: request exceeds memory setting: 50 Mwords were requested.
+ **ERROR: request exceeds memory setting
 list temp[gz=z999999,z=5:15]
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
- Cached data cleared from memory
            *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
            *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
            *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
@@ -372,6 +405,8 @@ list a
 list a
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cdf
  LISTing to file test0a.cdf
  LISTing to file test0b.cdf
  LISTing to file test0c.cdf
@@ -485,12 +520,16 @@ list/format=cdf/l=13/append/file=test_abs.cdf l1
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regrid_transforms
  **ERROR: regridding: G=W - more than 1 target grid
 load temp[g=u,g=w]
  **ERROR: unknown defining grid: G=X --> g=user-or-pseudo-var not allowed
 load temp[g=x]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_limits
  **ERROR: command syntax: xlimits
 plot/xlimits i
  **ERROR: command syntax: xlimits= i
@@ -509,8 +548,12 @@ plot/xlimits=1:2: i
 plot/xlimits=5:5 i
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_movie
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ez_order
  LISTing to file test_perm10.dat
  LISTing to file test_perm24.dat
  LISTing to file test_perm48.dat
@@ -523,10 +566,16 @@ Replacing definition of grid G24
  LISTing to file test_stream.unf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_user
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_stream
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_mc
  **TMAP ERR: Attempt to access unsupported feature
              Descriptor requests delta of 0, please use 1
              Data set: ./coads_clim_bad_delta.des
@@ -539,72 +588,81 @@ set data coads_clim_step_order.des
 list sst
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_negative_t
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_xact_regrid
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_gc_functions
 Replacing definition of axis TIME
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn491_bug_fixes.jnl
  LISTing to file test.cdf
  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
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  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
  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
- Cached data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_odd_variable_name
  **ERROR: command syntax: v2-and-minus
           - before and is illegal
 list v2-and-minus
- **ERROR: dimensions improperly specified: 99999999 words were requested.
+ **ERROR: illegal limits: Limits must be provided for pseudo-variable.
 list x
-           *** NOTE: Check for unspecified limits on an ABSTRACT axis
-           *** NOTE: Use the SHOW GRID command to see the axes
- **ERROR: dimensions improperly specified: 99999999 words were requested.
+ **ERROR: illegal limits: Limits must be provided for pseudo-variable.
 list i
-           *** NOTE: Check for unspecified limits on an ABSTRACT axis
-           *** NOTE: Use the SHOW GRID command to see the axes
  **ERROR: command syntax: v2-and-minus[i=5:15 at ddc]
           - before and is illegal
 list v2-and-minus[i=5:15 at ddc]
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_test_stream
  LISTing to file permutedBinaryTest.dat
  LISTing to file junk.dat
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
 Replacing definition of axis TAX
- **ERROR: request exceeds memory setting: 48000 Mwords were requested.
+ **ERROR: request exceeds memory setting
 load num
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
 Replacing definition of axis TAX
- **ERROR: request exceeds memory setting: 2000 Mwords were requested.
+ **ERROR: request exceeds memory setting
 load num
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
@@ -621,6 +679,8 @@ SET DATA/EZ/var=num/order=vxyzt/grid=mygrid junk.dat
 SET DATA/EZ/var=num/type=i3/grid=mygrid/form=stream junk.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_define_axes
 Replacing definition of axis XAX
 Replacing definition of axis XAX
 Replacing definition of axis XAX
@@ -663,13 +723,8 @@ Replacing definition of axis XAX
 Replacing definition of axis XAX
            *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
-           *** NOTE: Axis has repeated values -- micro-adjusting ...
- **ERROR: improper grid or axis definition: unrepairable repeated axis coords
-define axis/from/x/name=xax {6,6}
-           *** NOTE: Axis has repeated values -- micro-adjusting ...
- **ERROR: improper grid or axis definition: unrepairable repeated axis coords
-define axis/from/x/name=xax/edges {6,6}
-           *** NOTE: Axis has repeated values -- micro-adjusting ...
+Replacing definition of axis XAX
+Replacing definition of axis XAX
  **ERROR: improper grid or axis definition: unrepairable repeated axis coords
 define axis/from/x/name=xax/edges {6,6,6}
            *** NOTE: Axis has repeated values -- micro-adjusting ...
@@ -681,47 +736,68 @@ Replacing definition of axis XAX2
 Replacing definition of axis XAX2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_pattern
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_polygon
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn500_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TCAL
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file out.cdf
  LISTing to file out.cdf
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: command syntax: noname(i)
           unknown function "noname"
 stat i, noname(i)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_sample
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -760,6 +836,8 @@ stat i, noname(i)
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_strides_revs_perms
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -780,6 +858,8 @@ LIST/i=2:4:2 VAR
            *** NOTE: Stride value not a factor of axis length
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_non_COARDS_netCDF
            *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
            *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
@@ -787,9 +867,13 @@ LIST/i=2:4:2 VAR
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cache_hits
 Replacing definition of grid GX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regrid_to_user
 Replacing definition of axis YAX
 Replacing definition of grid GG2
  **ERROR: unknown defining grid: G=NO_EXIST
@@ -801,6 +885,8 @@ Replacing definition of axis Y2
 Replacing definition of grid MYGRID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_calendar
 Replacing definition of axis TDAYS
 Replacing definition of axis TDAYS
 Replacing definition of axis TDAYS
@@ -809,16 +895,6 @@ Replacing definition of axis TWEEKS
 Replacing definition of axis TWEEKS
 Replacing definition of axis TWEEKS
  LISTing to file calsst.cdf
-           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
-Replacing definition of grid TGRID
-Replacing definition of axis TDAYS
-Replacing definition of grid TGRID
-           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- **ERROR: command syntax: dash=(1., 2.)
-          DASH[=(dn1,up1,dn2,up2)] takes 4 arguments or no argument
-plot/dash=(1., 2.)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
 
 Bailing out of external function "ffta":
 	 Time axis must be a regular axis
@@ -831,29 +907,50 @@ Bailing out of external function "eof_stat":
 
 Bailing out of external function "eof_tfunc":
 	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
+Replacing definition of grid TGRID
+Replacing definition of axis TDAYS
+Replacing definition of grid TGRID
+           *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dash_dot
+ **ERROR: command syntax: dash=(1., 2.)
+          DASH[=(dn1,up1,dn2,up2)] takes 4 arguments or no argument
+plot/dash=(1., 2.)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
  **ERROR: value out of legal range: dash=(-1., 2., 3., 4.)
           DASH arguments must be positive
 plot/dash=(-1., 2., 3., 4.)/i=1:1000 sin(62.8*(i+20) )
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_flowlines
  Using every   2th vector in the Y direction
  Using every   2th vector in the Y direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  Using every   2th vector in the X direction
  Using every   2th vector in the Y direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_logaxes
 Replacing definition of axis DLOG
 Replacing definition of axis DLOG
  **ERROR: value out of legal range: Limits for log axis negative or too small: -9.00 : 0.00
 plot/hlog fcn
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_internal_external_functions
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis DAYT
 Replacing definition of grid TGRID
  **ERROR: error in external function
@@ -861,6 +958,7 @@ LIST vw_fft
 Replacing definition of grid TGRID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis X10
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -870,33 +968,47 @@ Replacing definition of axis X10
            *** NOTE: Axis is in use by grid G10X5
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis XAXS
+Replacing definition of axis YAXS
+Replacing definition of axis ZAXS
+Replacing definition of axis TAXS
+Replacing definition of grid MYGRD
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: illegal limits: VWND does not contain L=102:150
           Data are available in L =    1:60
 list tsorted_indices, tsorted_wnd
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: error in external function
 list/l=1:2 eofxyfcn
  **ERROR: error in external function
@@ -905,10 +1017,13 @@ list/i=1:3/j=1:3 eofstat
 list/i=1:2 eoftime
  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
  **ERROR: command syntax: strindex("Ferret is fun for the whole family - real family fun")
           The strindex function has an incorrect number of arguments
 list strindex("Ferret is fun for the whole family - real family fun")
@@ -926,16 +1041,23 @@ list substring("Have you fed your ferret today")
 list strcat ("All work and no play")
  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
  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
+Starting test: bn_modulo_strides
  LISTing to file test_modulo.cdf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -945,6 +1067,8 @@ list strcat ("All work and no play")
            *** NOTE: Stride value not a factor of axis length
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_viewports
 Re-defining viewport MID
 Re-defining viewport MID2
 Re-defining viewport LLAX
@@ -953,6 +1077,8 @@ Re-defining viewport ULAX
 Re-defining viewport URAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_strings
  **ERROR: command syntax: "string2"}
 list e
  **ERROR: command syntax: 5, "string2"}
@@ -996,10 +1122,16 @@ list/nohead SIN({"a","b","c"})
 list/nohead MAX("a",{"a","b","c"})
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axcontrol
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_vec_curv
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_delimited_read
 Replacing definition of axis X1
 Replacing definition of grid G1
 Replacing definition of axis TAX
@@ -1007,34 +1139,42 @@ Replacing definition of axis TAX
 Replacing definition of axis Z1
 Replacing definition of grid G1
  **TMAP ERR: syntax error in string
-             Unrecognized field type: D
+             Unrecognized field type: DA2
              Data set: ./bn_delimited_read_date_time.dat
-           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME,DATIME,EDATIME
 SET DATA/FORM=delimited/type="d, da2,date2"  bn_delimited_read_date_time.dat
  **TMAP ERR: syntax error in string
              Unrecognized field type: DATE2
              Data set: ./bn_delimited_read_date_time.dat
-           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME,DATIME,EDATIME
 SET DATA/FORM=delimited/type="da,da, date2"  bn_delimited_read_date_time.dat
  **ERROR: command syntax: ,,:
 SET DATA/EZ/form=delim/delim="/,,,:" bn_delimited_read_date_time.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn541_bug_fixes
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file test_good_order.cdf
  LISTing to file test_bad_order.cdf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis T2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Re-defining viewport LL6
 Re-defining viewport UL6
 Re-defining viewport LM6
@@ -1043,41 +1183,52 @@ Re-defining viewport LR6
 Re-defining viewport UR6
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
 Replacing definition of axis TAX
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file profiles.nc
  LISTing to file profiles.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file test_100x100.nc
- Cached data cleared from memory
- Cached 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
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of grid MYGRID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cancel_axes
  LISTing to file longax.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis has repeated values -- micro-adjusting ...
            *** NOTE: Axis has repeated values -- micro-adjusting ...
            *** NOTE: Axis has repeated values -- micro-adjusting ...
@@ -1090,25 +1241,33 @@ Replacing definition of grid MYGRID
            *** NOTE: Axis has repeated values -- micro-adjusting ...
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: regarding ./test_axes.nc ...
            *** NOTE: Climatological axes test_irreg, test_seas defined
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn542_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
 Replacing definition of axis TAX2
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file string4d.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: regarding ./test_axes.nc ...
            *** NOTE: Climatological axes test_irreg, test_seas defined
            *** NOTE: Not deleted: TEST_IRREG
@@ -1373,8 +1532,11 @@ Replacing definition of axis TAX2
            *** NOTE: Axis is in use by grid GG2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_subspan_modulo
  LISTing to file test_mod.cdf
  LISTing to file test_mod.cdf
  LISTing to file test_mod.cdf
@@ -1400,52 +1562,74 @@ define axis/x=130e:500:10/modulo=360 xsub
            *** NOTE: Stride value not a factor of axis length
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dots
            *** NOTE: /THICKNESS ignored  on /SYMBOL=DOT
            *** NOTE: /SIZE= ignored  on /SYMBOL=DOT
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_lev_symbols
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_mode_logo_lab
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_modulo_attribute
            *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
            *** NOTE: modulo = "j"
            *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
            *** NOTE: modulo = "j"
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn550_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn551_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Re-defining viewport MID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Re-defining viewport MID1
 Re-defining viewport MID2
  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
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  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
+Starting test: bn552_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: value out of legal range: # of contour levels > 500  (3283)
 CONTOUR/L=1/LEV=0.01d sst
  **ERROR: value out of legal range: # of contour levels > 500  (3283)
@@ -1456,18 +1640,22 @@ SHADE/L=1/LEV=0.01d sst
 POLYGON/KEY/LEV=0.01d/coord_ax=Z  PLMxpoly+PLMxpolymark, PLMypoly+PLMypolymark, PLMpolydata
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
            *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
            *** NOTE: A dummy axis of subscripts will be used
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 ls: input.txt: No such file or directory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 Replacing definition of axis YAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
             dsetnum,dsetpath,dsettitle,*size,*start,*end,
             *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
@@ -1476,54 +1664,77 @@ Replacing definition of axis YAX
 MESSAGE/CONTINUE `axy, return=xx`
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
  LISTing to file a.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis YAX
 Replacing definition of axis Z1
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file clim.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+ooooooooooooooooooooooooooooooooooooooooooo
+           *** NOTE: Coordinates missing on axis LONGITUDE at subscript -2033
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: Coordinates missing on axis LATITUDE at subscript -2033
+           *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Axis has repeated values -- micro-adjusting TIME
  **ERROR: illegal limits: "DUMMY" does not exist at T=JAN-1990
           Axis extremes are T=DEC-1997:JAN-1998
 list/t=1-jan-1990 dummy
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_var_scale_off.jnl
  **ERROR: invalid command: Can SET VARIABLE/OFFSET= only with NetCDF datasets
 SET VAR/OFFSET=1 x1
  **ERROR: invalid command: Can SET VARIABLE/SCALEFAC= only with NetCDF datasets
 SET VAR/SCALE=10 x2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_longvarnames.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file longvname.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file longvname.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_shakey.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_eof_4d.jnl
  LISTing to file eofsp.cdf
  LISTing to file eofti.cdf
  LISTing to file eofst.cdf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_abstract_axis_names.jnl
  LISTing to file confuse_xz.nc
  LISTing to file confuse_yz.nc
  LISTing to file confuse_yt.nc
@@ -1534,19 +1745,24 @@ SET VAR/SCALE=10 x2
  LISTing to file confuse_yzt.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_many_polygons.jnl
 Replacing definition of axis YQ
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_fill_irregular.jnl
 Replacing definition of axis TAX
 Replacing definition of axis XAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_xml_output.jnl
  LISTing to file a.nc
  LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 SHO VAR/XML
 SHO VAR/XML
 SHO VAR/XML
@@ -1558,16 +1774,25 @@ SHOW VAR/XML
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_test_nan.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn553_bug_fixes.jnl
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_graticules.jnl
  Using every   5th vector in the X direction
  Using every   3th vector in the Y direction
  Using every   2th vector in the X direction
@@ -1579,6 +1804,8 @@ Replacing definition of axis TAX
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_repeat_range.jnl
  TEMPORARY data cleared from memory
  **ERROR: invalid command: REPEAT/NAME requires /RANGE
 rep/name=a say `a`
@@ -1610,25 +1837,34 @@ repeat/range=3:1:-1/name=a list a
 repeat/range=3:1:-1/name=a list a
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn554_bug_fixes.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: illegal limits: "TEMP" does not exist at T=AUG-1980:JAN-1982
           Axis extremes are T=AUG-1982:JAN-1983
 list/t=1-aug-1980:1-jan-1982/i=92/j=35 temp
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 Replacing definition of axis YAX
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX1
 Replacing definition of axis TAX2
 Replacing definition of axis TAX1
@@ -1637,6 +1873,7 @@ Replacing definition of axis TAX1
 Replacing definition of axis TAX2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1652,29 +1889,39 @@ Replacing definition of grid AGRID
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis X_AX
  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
 Replacing definition of axis TAX
  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
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 Replacing definition of axis YAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_bounds.jnl
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -1704,7 +1951,6 @@ def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,
            *** NOTE: Axis is in use by grid GFORMAT
  LISTing to file a.nc
  LISTing to file a.nc
-           *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
  LISTing to file a.nc
            *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
  LISTing to file a.nc
@@ -1730,11 +1976,15 @@ Replacing definition of axis tax
            *** NOTE: Substituting coordinate midpoints
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_all_leap.jnl
 Replacing definition of grid TGRID
  **ERROR: command syntax: Invalid calendar name. Names are, GREGORIAN, NOLEAP, JULIAN, 360_DAY, ALL_LEAP
 def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_reset_attributes.jnl
            *** NOTE: Units  not recognized: something
            *** NOTE: They will not be convertible:
            *** NOTE: Units  not recognized: something
@@ -1749,89 +1999,122 @@ Replacing definition of axis TAX
 Replacing definition of axis XAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn570_bug_fixes.jnl
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
 Replacing definition of axis TAX
 Replacing definition of axis ZAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
  LISTing to file xlong.nc
  LISTing to file xlongshift.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_modstats.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_mc_vary_scale.jnl
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_nokey.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn580_bug_fixes.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 Replacing definition of axis YAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Re-defining viewport VP_1
  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
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
  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
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 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
 Replacing definition of axis XFINE
 Replacing definition of axis YFINE
  LISTing to file fine.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: illegal limits: One-point independent axis: Requires a /HLIMIT or /VLIMIT specification
 plot/sym/siz=0.3 0*t[gt=vwnd]
  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
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
 Replacing definition of axis TAX
  LISTing to file aa.nc
  LISTing to file cc.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: First argument is a letter of the alphabet
 query/ignore $1%q|a|b|c|d|<First argument is a letter of the alphabet%
  **ERROR: invalid command: Valid value needed for argument $2
@@ -1864,31 +2147,46 @@ message/continue ($t2"|solong>really hello|bye|")
            *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
  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: delta non-positive on X axis of EX#1
 list/l=1/j=40/i=0:300:0 sst
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file 10a.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_inf_levels.jnl
 Replacing definition of axis XQ
 Replacing definition of axis YQ
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regulart.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_labwid.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_redefine_taxis_mc.jnl
 Replacing definition of axis TIME1
            *** NOTE: grid GHB2 used by data set coads_clim
            *** NOTE: Redefinition may alter apparent contents of data set
@@ -1897,6 +2195,8 @@ Replacing definition of axis TIME1
            *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_illegal_axisname.jnl
 Replacing definition of axis COADSX.ILLEGAL
            *** NOTE: grid GEX2 used by data set illeg_axname
            *** NOTE: Redefinition may alter apparent contents of data set
@@ -1909,38 +2209,57 @@ Replacing definition of axis COADSY.ILLEGAL
            *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_exit_script.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_exit_cycle.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_curv_mod.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_shade_keycont.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn581_bug_fixes.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TIME
  LISTing to file a.nc
  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
  LISTing to file longtitle.nc
  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
  LISTing to file longtitle.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  **ERROR: improper grid or axis definition: error in start,end,delta
 DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
@@ -1949,39 +2268,58 @@ DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
 DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
  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
  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
  LISTing to file t0_cdc.nc
  LISTing to file my_cdc_timeaxis.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TGREG
  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
+Starting test: bn_tab_comma_multivar.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_element_functions.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_long_revision_num.jnl
  LISTing to file revision.nc
 
 Bailing out of external function "ffta":
 	 Time axis must be a regular axis
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_window_title.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_last_error.jnl
  **ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
 LIST/ORDER=X  IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
@@ -2002,11 +2340,17 @@ repeat/range=1:3/name=L (use coads_climatology; list/nohead [sst=I=1,j=1])
 LOAD vw_fft
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_deg_min.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dp_readscale.jnl
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_bounds_defineax.jnl
 Replacing definition of axis TAX
 Replacing definition of axis XAX
 Replacing definition of axis ZAX
@@ -2016,6 +2360,8 @@ Replacing definition of axis ZAX
 Replacing definition of axis ZAX2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_attributes.jnl
  **ERROR: invalid command: SHOW ATTRIBUTE given with no argument
 sho att/all
  **ERROR: unknown data set: d=2
@@ -2027,28 +2373,37 @@ sho att salt.nonsense
 sho att/all .
  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
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute temp.pp
            *** NOTE: Changing the length  of attribute temp.pp
            *** NOTE: Changing the value of attribute temp.some_text
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute temp.long_name
            *** NOTE: Changing the value of attribute temp.units
            *** NOTE: Changing the value of attribute temp.missing_value
@@ -2067,8 +2422,10 @@ list coadsx.units
 set att (COADSX81_81).axis = "Z"
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute temp.pp
            *** NOTE: Changing the length  of attribute temp.pp
            *** NOTE: Changing the value of attribute temp.some_text
@@ -2082,21 +2439,25 @@ set att (COADSX81_81).axis = "Z"
            *** NOTE: Changing the value of attribute temp.pp
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file a.nc
 Replacing definition of axis XAX
@@ -2106,14 +2467,17 @@ Replacing definition of axis TAX
 Replacing definition of grid MYGRID
  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
  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
            *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file a.nc
@@ -2126,6 +2490,7 @@ Replacing definition of grid MYGRID
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
            *** NOTE: Changing the value of attribute (COADSX).point_spacing
            *** NOTE: Changing the value of attribute (COADSY).point_spacing
@@ -2143,6 +2508,7 @@ set var/outtype=char broiled
 set var/outtype=garbage broiled
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute (PSXT).units
  LISTing to file a.nc
  LISTing to file a.nc
@@ -2151,17 +2517,21 @@ set var/outtype=garbage broiled
  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
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis X2AX
            *** NOTE: Changing the value of attribute (z4ax).positive
  LISTing to file string4d.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute (TIME7).units
            *** NOTE: Changing the value of attribute (TIME7).units
            *** NOTE: Changing the value of attribute (TIME7).time_origin
@@ -2174,26 +2544,34 @@ Replacing definition of axis TIME
  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 details: 
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_transforms.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_variance.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_linecolors.jnl
            *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
  Using every   3th vector in the X direction
  Using every   4th vector in the Y direction
            *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cdf_errmsg.jnl
  **TMAP ERR: non-existent or not on line
              this_is_not_a_file.nc
 SET DAT/FORM=CDF this_is_not_a_file.nc
  **Internet Data error
+curl error details: 
              NetCDF: file not found (OPeNDAP/netCDF Error code -90)
-             Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf
-SET DAT/FORM=CDF "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
+             Data set: http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf
+SET DAT/FORM=CDF "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
  **Internet Data error
              NetCDF: I/O failure (OPeNDAP/netCDF Error code -68)
              Data set: http://noserver/a/nofile.cdf
@@ -2205,48 +2583,65 @@ SET DAT/FORM=CDF  "http://noserver/a/nofile.cdf"
 SET DAT/FORM=CDF asc.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn600_bug_fixes.jnl
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file err581_subspanx_fill_bug.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XIR
  LISTing to file xyir.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: illegal use of transformation:  not all dimensions present on grid
 shade sst[x=@var,k=@var]
  **ERROR: illegal use of transformation:  not all dimensions present on grid
 shade sst[t=@AVE,Z=@ave]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
  LISTing to file t3file.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file 0000_a.nc
  LISTing to file subdir/a.nc
  LISTing to file subdir/0000_a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TAX
  LISTing to file a.nc
@@ -2255,8 +2650,10 @@ Replacing definition of axis TAX
            *** NOTE: cannot parse "units since date", date= "event"; leaving units string
  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: Invalid I axis limits ignored: TEMP
  **ERROR: dimensions improperly specified: specified data is not a line
@@ -2264,71 +2661,90 @@ Replacing definition of axis tax
 plot/i=100/k=1 temp[x=122.5W]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 Replacing definition of axis XAX
 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
- Cached data cleared from memory
- Cached data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn601_bug_fixes.jnl
  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 b.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file b.nc
  LISTing to file b.nc
-NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
- TAX3_bnds not found. Attempt to append irregular coordinates to NetCDF axis which has no bounds attribute. Write data originally with the /BOUNDS qualifier.
-LIST/FORMAT=CDF/CLOBBER/FILE=b.nc v
  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
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TIME9
            *** NOTE: grid GSQ1 used by data set coads_climatology
            *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TIME
  LISTing to file a.nc
  LISTing to file t2.nc
  LISTing to file t12.nc
  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
  LISTing to file out.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_strides.jnl
  **ERROR: invalid command: it is a child axis already
 set axis/stride=2/offset=1 (AX052)
  **ERROR: invalid command: not a strided axis: COADSX
@@ -2344,32 +2760,50 @@ cancel axis/stride COADSX
 set axis/stride=2 NORMAL
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_lsl_lowpass.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_return_xmod_tmod.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn602_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file noleap.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
            *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file tripolar_missing_lon.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 curl error details: 
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_modnbd.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_fifty_files.jnl
+           *** NOTE: Coordinates missing on axis LONGITUDE at subscript -1187
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: Coordinates missing on axis LATITUDE at subscript -1187
+           *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Axis has repeated values -- micro-adjusting TIME
            *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
            *** NOTE: Substituting coordinate midpoints
@@ -2396,133 +2830,184 @@ curl error details:
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn603_bug_fixes
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_var_name.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_memory_symbol
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- Cached data cleared from memory
- Cached data cleared from memory
- Cached data cleared from memory
- Cached data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn605_bug_fixes
  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
+Starting test: bn608_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file b.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
 Replacing definition of axis XAX
 Replacing definition of axis YAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: "300": Number of contour levels must be between 1 and 250
 SHADE/LEV=300/I=1:100/J=1:100 i+j
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_shade_trim
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_mode_nlevels
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn61_bug_fixes
  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
+Starting test: bn_test_opendap
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn611_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
  LISTing to file a.nc
  LISTing to file b.nc
  LISTing to file b.nc
  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
  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
  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
  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
  LISTing to file z1.nc
  LISTing to file z2.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TIME
 Replacing definition of axis TIME
  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
  LISTing to file b.nc
  LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_no_valid_on_plot
  Using every   5th vector in the X direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_median
 Replacing definition of axis ZAX
  **ERROR: value out of legal range: Median smoother length must be odd
 plot/trans var, var[z=@med:4]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn614_bug_fixes
  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
 Replacing definition of axis TIME
  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
  LISTing to file b.nc
  LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Units on axis "ENS" are not recognized: count
            *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file 1a.dat
  LISTing to file 3a.dat
  LISTing to file 5a.dat
@@ -2531,51 +3016,70 @@ Replacing definition of axis TIME
  LISTing to file 11a.dat
  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
  **ERROR: variable unknown or not in data set: A_REGRID[D=1,GT=B[D=2]@MOD]
 LIST a_regrid[D=1,GT=b[D=2]@MOD]
  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
  LISTing to file dat.dat
  LISTing to file a.nc
  LISTing to file unf.dat
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file lonlat.dat
  LISTing to file lonlat.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  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
 Replacing definition of axis TAX
 Replacing definition of grid GG
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_mode_nodata_lab
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_proleptic_gregorian_calendar
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_string_ngd_nbd
            *** NOTE: @NGD of string variable, counting null strings as missing
            *** NOTE: @NBD of string variable, counting null strings as missing
 Replacing definition of axis XAX
@@ -2603,21 +3107,33 @@ Replacing definition of axis TAX
            *** NOTE: @NGD of string variable, counting null strings as missing
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cat_string
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_sort_strings
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_samplexyt
 Replacing definition of axis X1
 Replacing definition of axis Y1
 Replacing definition of grid G1
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_last_go_file.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cancel_upcase_uservar.jnl
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cdf_keepax.jnl
  LISTing to file test0a.cdf
  LISTing to file test0b.cdf
  LISTing to file test0c.cdf
@@ -2814,69 +3330,102 @@ show grid ijkl
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_keep_axisnames.jnl
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_key_label_minmax.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn62_bug_fixes.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX
 Replacing definition of grid TGRID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_convolve.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_tax_tstep.jnl
  LISTing to file a.nc
 Replacing definition of axis TSEC
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_grads_z.jnl
 Replacing definition of axis CAXIS
            *** NOTE: grid GMY1 used by data set grads_bug_file
            *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_clock_syms
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn63_bug_fixes.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  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
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TAX
            *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
            *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file xz.nc
  TEMPORARY data cleared from memory
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file t_bug.nc
 Replacing definition of axis T_AXIS
  LISTing to file t_bug.nc
@@ -2885,48 +3434,72 @@ NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
 LIST/FORMAT=CDF/FILE=t_bug.nc/APPEND var
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: offset must be greater than or equal to zero
 SET AXIS/STRIDE=12/OFFSET=-1 truemonth
  **ERROR: invalid command: stride must be greater than zero
 SET AXIS/STRIDE=-1/OFFSET=1 truemonth
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_reversed_syms
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_isdepth
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_var_hist_levels.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn64_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX
  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
+Starting test: bn_long_grid_names
  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 YAX
 Replacing definition of grid GG123456789012345678902
  **ERROR: unknown defining grid: G=NO_EXIST12345678901234567890
 load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_xml_repl
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn65_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Units on axis "ENS" are not recognized: count
            *** NOTE: They will not be convertible:
  LISTing to file mypack.nc
@@ -2938,25 +3511,37 @@ load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
            *** NOTE: They will not be convertible:
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_txtype_dmy
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_n_open_dsets_sym
  LISTing to file list_of_numbers.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_multi_decade
 Re-defining viewport V1
 Re-defining viewport V1
 Re-defining viewport V2
@@ -2968,14 +3553,21 @@ Re-defining viewport V7
 Re-defining viewport V8
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_show_xml_file
  LISTing to file b.nc
  LISTing to file dummy.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn66_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_netcdf4
  Restoring default chunk cache settings
  Restoring default chunk cache settings
  PERMANENT data cleared from memory
@@ -3010,6 +3602,8 @@ LIST/FORMAT=CDF/file=nc4_deflate4_t1.nc/clobber/ncformat=4/deflate/shuffle/tchun
 LIST/FORMAT=CDF/file=nc4_deflate4chunktoobig.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_scat2grid_bin.jnl
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
@@ -3018,22 +3612,33 @@ LIST/FORMAT=CDF/file=nc4_deflate4chunktoobig.nc/clobber/ncformat=4/deflate=1/xch
            *** NOTE: Axis is in use by grid G10X5
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_dir_symbols
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn663_bug_fixes
  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
+Starting test: bn_set_axis_regular
 Replacing definition of grid MYGRID
            *** NOTE: Axis reset to be regular (evenly-spaced): MYX
            *** NOTE: Axis is already regular: MYX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_cancel_redirect
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
  
@@ -3089,38 +3694,58 @@ show grid garbage
  Use "GO/HELP filename" to read documentation in  the file to be executed.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_min_max_smoothers
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_vector_symbols
  Using every   8th vector in the X direction
  Using every   7th vector in the Y direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_variance_large
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_labnum_calendar
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn665_bug_fixes
  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
  LISTing to file a.nc
+
+Bailing out of external function "tax_year":
+	 Function not valid for modulo time axis
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_floatstr
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn67_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-
-Bailing out of external function "tax_year":
-	 Function not valid for modulo time axis
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
@@ -3128,19 +3753,26 @@ Replacing definition of axis YAX
 Replacing definition of axis YAX
  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
  LISTing to file aa.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
-set mode desperate   9999999999.000000
+set mode desperate 9999999999.
  **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
 set mode desperate 1234567890123456789
+           *** NOTE: MODE DESPERATE is deprecated. Use MODE FRUGAL
+           *** NOTE: MODE DESPERATE is deprecated. Use MODE FRUGAL
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file g.nc
 Replacing definition of axis YAX_DUP_AXNAMES
  LISTing to file h.nc
@@ -3149,33 +3781,45 @@ Replacing definition of axis YAX_DUP_AXNAMES
  LISTing to file justg.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_NaN_note
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn671_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: error in external function
 list/L=15:20 tax_year(t[gt=tvar],tvar)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file cc.nc
  LISTing to file c1.nc
  TEMPORARY data cleared from memory
@@ -3183,40 +3827,54 @@ list/L=15:20 tax_year(t[gt=tvar],tvar)
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn68_bug_fixes
  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
  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 XAX
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
  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
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: command syntax: illegal name, matches an operator: AND
 DEFINE VARIABLE AND = 5
  **ERROR: command syntax: illegal name, matches an operator: OR
@@ -3239,10 +3897,13 @@ DEFINE VARIABLE IF  = 5
 DEFINE VARIABLE ELSE = 5
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a1.nc
  LISTing to file a2.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ifv
  **ERROR: command syntax: IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
 LIST/ORDER=X  IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333
@@ -3252,6 +3913,8 @@ LIST/ORDER=X  IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333
 DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_randu2_randn2
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
@@ -3261,6 +3924,8 @@ DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
 Replacing definition of axis ZAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_cf
 Replacing definition of axis XAX
  LISTing to file a.nc
 Replacing definition of axis YAX
@@ -3274,6 +3939,8 @@ Replacing definition of axis TAXIS
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_repeated_coords
            *** NOTE: Axis has repeated values -- micro-adjusting TMIN
            *** NOTE: Coordinates out of order or missing on axis TMIN at subscript 4
            *** NOTE: A dummy axis of subscripts will be used
@@ -3281,6 +3948,8 @@ Replacing definition of axis TAXIS
 Replacing definition of axis TNEW
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_xml_header
 
 Bailing out of external function "eofsvd_stat":
 	There are no spatial locations having complete time series.
@@ -3292,6 +3961,8 @@ Bailing out of external function "eofsvd_tfunc":
 	There are no spatial locations having complete time series.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_eof_simple
 Replacing definition of axis YAXIS
 Replacing definition of axis TAXIS
 Replacing definition of axis XAXIS
@@ -3303,10 +3974,16 @@ list eofsvd_space(spacegap)
 list eofsvd_tfunc(spacegap)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_eof_simple2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_interpolate_6d
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regrid_6d
 Replacing definition of grid EVEN
 Replacing definition of grid G1
 Replacing definition of grid G2
@@ -3335,8 +4012,12 @@ Replacing definition of grid G24
 Replacing definition of grid G48
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_syntax_6d
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_expressions_6d
  **ERROR: command syntax: IF _m GT 3 THEN ( IF _m LT 5 THEN _m ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
 LIST/order=e  IF _m GT 3 THEN ( IF _m LT 5 THEN _m ELSE -9 ) ELSE .333
@@ -3348,14 +4029,21 @@ DEFINE VARIABLE A = IF _m LT 5 THEN _m ELSE -9
 load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_direction_fcns_6d
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regrid_transforms_6d
 Replacing definition of grid G5DAY
 Replacing definition of axis FAX4DAY
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_aggregate_e
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
  **ERROR: unknown data set: dset 3
 DEFINE DATA/AGGREGAT/E windy = 1,2,3
            *** NOTE: Variable "UWND" excluded from aggregate: T axis differs among members
@@ -3372,39 +4060,61 @@ DEFINE DATA/AGGREGAT/E windy = 1,2
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: Dataset used in aggregation.  Canceling aggregation, fourfiles
            *** NOTE: Dataset used in aggregation.  Canceling aggregation, some
            *** NOTE: Dataset used in aggregation.  Canceling aggregation, more
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_6d_lab_mode
+           *** NOTE: MODE 6D_lab is deprecated. Leave the mode set; output automatically adjusts to 4D or 6D grids
+           *** NOTE: MODE 6D_lab is deprecated. Leave the mode set; output automatically adjusts to 4D or 6D grids
+           *** NOTE: MODE 6D_lab is deprecated. Leave the mode set; output automatically adjusts to 4D or 6D grids
+           *** NOTE: MODE 6D_lab is deprecated. Leave the mode set; output automatically adjusts to 4D or 6D grids
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn682_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn683_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_outtype
  LISTing to file mytype.nc
  LISTing to file mytype.nc
            *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
@@ -3421,10 +4131,16 @@ DEFINE DATA/AGGREGAT/E windy = 1,2
  LISTing to file mytype.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ribbon_plot
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_descr_4digit
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_outtype
  LISTing to file mytype.nc
  LISTing to file mytype.nc
            *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
@@ -3443,38 +4159,54 @@ LIST/FORMAT=CDF/clobber/file=mytype.nc my_data
  LISTing to file mytype.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_nonmonotonic
  **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonically increasing at index 12
 define axis/t/units=days tax = tvar
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_vec_mod
  Using every   9th vector in the X direction
  Using every   9th vector in the X direction
  Using every   9th vector in the X direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn685_bug_fixes
  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
 Replacing definition of axis TDAY
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file aa.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file aa.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file aa.nc
  LISTing to file aa.nc
@@ -3487,16 +4219,21 @@ NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
  data in attribute _FillValue not representable in output type NC_INT
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: command syntax: .HELLO
 list .hello
  **ERROR: variable unknown or not in data set: A.UNITS
@@ -3511,6 +4248,7 @@ list ..history
 list ..history
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis AXI
 Replacing definition of axis AXI_COARSE
 Replacing definition of axis AXI
@@ -3523,23 +4261,31 @@ Replacing definition of axis AXI
 Replacing definition of axis AXI_COARSE
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
-           *** NOTE: A dummy axis of subscripts will be used
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file sst_new.nc
  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 ZAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dsg_e_x
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_nco_append
  LISTing to file append_to_this.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_nobounds
 Replacing definition of axis XIRREG
  LISTing to file a.nc
  LISTing to file a.nc
@@ -3550,11 +4296,17 @@ Replacing definition of axis XIRREG
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_write_integer_att
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_descriptor_mc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_color_only
            *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
            *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  **ERROR: command syntax: COLOR
@@ -3565,6 +4317,8 @@ plot/i=1:100/over/COLOR 0.6*sin(i/7)
 plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_vtree
 Replacing definition of axis ZAX
            *** NOTE: Variable "FVX" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
@@ -3585,19 +4339,28 @@ Replacing definition of axis Y1
 Replacing definition of axis ZAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn686_bug_fixes
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+           *** NOTE: Changing the type of attribute a.ival
            *** NOTE: Changing the value of attribute a.ival
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **TMAP ERR: non-existent or not on line
              nosuchfile.nc
 SET DAT/FORM=CDF nosuchfile.nc
@@ -3613,29 +4376,43 @@ SET DAT/FORM=CDF snoopy
 SET DAT/FORM=CDF snoopy.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: regarding ./climatological_axes.cdf ...
            *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
  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
+Starting test: bn_long_symnames
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_strdim
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_single_colorlev
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn69_bug_fixes
  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
  LISTing to file a.nc
 Replacing definition of axis XAXIS_TEST
  LISTing to file b.nc
@@ -3650,20 +4427,21 @@ Replacing definition of axis XAXIS_TEST
 LIST/FORMAT=CDF/clobber/keep/file=nc b,a[d=1]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **ERROR: dimensions improperly specified: must be a 2D region
-          shade b
-shade b
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute v1.long_name
            *** NOTE: Changing the value of attribute v1.units
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: attribute undefined or invalid attribute name: temp.noexist[d=levitus_climatology]
           attribute noexist not found for variable TEMP
 show att temp.noexist[d=levitus_climatology]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: illegal new name.  Variable b already defined
 set var/name=b a
  **ERROR: invalid command: illegal new name.  Variable b already defined
@@ -3676,16 +4454,24 @@ set var/name=psi myvar
 set var/name=diff w
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_bad_axis_bounds
            *** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
            *** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
            *** NOTE: Substituting coordinate midpoints
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_enter_exit_GO
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_stddev
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_axis_name
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file b.nc
@@ -3700,16 +4486,74 @@ set axis/name=45 x_in_meters
 set axis/name=.fr x_in_meters
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_let_remote
+           *** 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
+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)"^;};
+           *** 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 = t0112mn1[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]
+ **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
+ **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
+ **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
+list/x=300/y=15 avar
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn691_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: string/numeric data type mix-up. Argument 3 : TAX_DATESTRING
 list tax_datestring (tt[L=3], tt, 5)
  **ERROR: invalid command: string/numeric data type mix-up. Argument 2 : TAX_DATESTRING
 list tax_datestring (tt[L=3], "my_tax", "minutes")
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
            *** NOTE: Substituting coordinate midpoints
            *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
@@ -3718,6 +4562,7 @@ list tax_datestring (tt[L=3], "my_tax", "minutes")
            *** NOTE: Substituting coordinate midpoints
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: command syntax: must be a constant COS(1)
 list {cos(1), sin(0)}
  **ERROR: command syntax: must be a constant 0-180
@@ -3728,43 +4573,52 @@ list {0.1, 0.2, 1./5.}
 list {5*3+1, 2+3}
  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
  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
 Replacing definition of axis TAX
  LISTing to file tval.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file out.xml
  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
- **ERROR: request exceeds memory setting: 4739 Mwords were requested.
+ **ERROR: request exceeds memory setting
 load bigvar
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis LONGTIME
- **ERROR: request exceeds memory setting: 9472 Mwords were requested.
+ **ERROR: request exceeds memory setting
 load bigvar
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
            *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
  LISTing to file aa.nc
@@ -3774,6 +4628,7 @@ load bigvar
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: variable unknown or not in data set: A
 list a
  **ERROR: variable unknown or not in data set: A
@@ -3784,6 +4639,7 @@ list b
 shade a
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: variable unknown or not in data set: A
 list a
  **ERROR: variable unknown or not in data set: A
@@ -3794,39 +4650,58 @@ list b
 shade a
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
 list substring("hello",1,-2)
  **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
 list substring("hello",1,-3)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_append_dsg
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_global_atts
  LISTing to file anew_global.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_conventions_history
  LISTing to file conventions_history.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_center_key_labels
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_wgt_transform
 Replacing definition of axis X2
 Replacing definition of axis Y2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_show_outfile
 Replacing definition of axis ZAX
            *** NOTE: Variable "FVX" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
@@ -3844,69 +4719,110 @@ list e
 list f
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_date1900_array
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_spawn_size
+ LISTing to file bn_spawn_size1.cdf
+ LISTing to file bn_spawn_size2.cdf
+ LISTing to file bn_spawn_size3.cdf
+ LISTing to file bn_spawn_size4.cdf
+ LISTing to file bn_spawn_size5.cdf
+ LISTing to file bn_spawn_size02.dat
+ LISTing to file bn_spawn_size04.dat
+ LISTing to file bn_spawn_size06.dat
+ LISTing to file bn_spawn_size08.dat
+ LISTing to file bn_spawn_size10.dat
+ LISTing to file bn_spawn_size12.dat
+ LISTing to file bn_spawn_size14.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_polygon_log
  **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.850
 poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
  **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.689E-02
 poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn694_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file aa.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TIME
  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
  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
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: unknown data set: BAD_D
 stat/l=1/x=180/y=0 a
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: REPEAT what ?
 repeat/range=1:2/name=row
  **ERROR: invalid command: REPEAT what ?
 repeat/range=1:2/name=row
  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
 Replacing definition of axis XAX
 Replacing definition of axis YAX
  LISTing to file a.nc
@@ -3919,6 +4835,7 @@ Replacing definition of axis TREDEF
            *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: illegal format type - must be "GIF"
           frame/format=hdf/file=a.hdf
 frame/format=hdf/file=a.hdf
@@ -3927,79 +4844,118 @@ frame/format=hdf/file=a.hdf
 frame/file=a.png
  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 FAXIS
 Replacing definition of axis EAXIS
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  TEMPORARY data cleared from memory
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_permute_ascii
 Replacing definition of grid GRID3D
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_lon_lat_time_string
 Replacing definition of axis TAXIS
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_save_justdim
  LISTing to file a.nc
            *** NOTE: Saving E or F axis with time axis uses /RIGID in time
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_time2d
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TAXIS
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_legend_labels
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_DQ
            *** NOTE: Changing the value of attribute foobar.some_text
            *** NOTE: Changing the value of attribute foobar.some_text
 Replacing definition of grid GG
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn695_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_f_tax_fcns
  LISTing to file a.nc
 Replacing definition of axis FSEC
            *** NOTE: grid GSI1 used by data set a
            *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_fmrc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_return_defined
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_can_var_noerr
  **ERROR: variable unknown or not in data set: B
 cancel var b,a
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_annotate
  **ERROR: command syntax: xpos=a2
 annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
  **ERROR: command syntax: ypos=b
@@ -4034,6 +4990,8 @@ def anno/nou/xpos=0/hal=1/val=0 "My Lab"
 def anno/nou/user/xpos=0/ypos=0 "My Lab"
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_auxiliary
 Replacing definition of axis ZAX
  LISTing to file layerz_test_data.txt
  **ERROR: variable unknown or not in data set: (data set ok ?): noexist
@@ -4045,6 +5003,8 @@ Replacing definition of axis xax
 Replacing definition of axis ZAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_ribbon_gaploc
  **ERROR: command syntax: PLOT/VS/RIBBON/GAPLOC plot needs 4 arguments
 plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
  **ERROR: command syntax: PLOT/GAPLOC applies only to PLOT/VS/RIBBON
@@ -4053,16 +5013,24 @@ 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_time_short_axes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_floatstr_extended
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn696_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Units on axis "pfull1_1" are not recognized: hpa
            *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: unknown data set: noexist
 SHOW DATA noexist
  **ERROR: unknown data set: 2
@@ -4071,8 +5039,11 @@ SHOW DATA 2
 SHOW DATA/ATT noexist
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_bin_regrid
 Replacing definition of axis DCOARSE
 Replacing definition of axis IRR
 Replacing definition of axis DCOARSE
@@ -4085,54 +5056,64 @@ Replacing definition of axis DCOARSE
 Replacing definition of axis IRR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn697_bug_fixes
  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
  **TMAP ERR: error in axis attributes
              Calendar definitions on T and F axes must match
              Data file: ./ft_cal_one.nc
 SET DAT/FORM=CDF ft_cal_mixed.nc
  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
 Replacing definition of axis tday
 Replacing definition of axis xax
  LISTing to file myfile.nc
  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
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- Cached data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis LONGTIME
- **ERROR: request exceeds memory setting: 13 Mwords were requested.
+ **ERROR: request exceeds memory setting
 load/l=1:5 bigvar
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
- Cached data cleared from memory
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
            *** NOTE: Not deleted: XAX
            *** NOTE: Axis is in use by grid GFORMAT
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX1
 Replacing definition of axis TAX2
 Replacing definition of axis TAX2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  Using every   4th vector in the Y direction
 Replacing definition of axis xax
 Replacing definition of axis yax
@@ -4140,25 +5121,33 @@ Replacing definition of axis yax
  Using every   4th vector in the Y direction
  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
  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
 Replacing definition of axis F_AX
 Replacing definition of axis AAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis T_AXIS
 Replacing definition of axis T_AXIS
 Replacing definition of axis F_AXIS
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 Replacing definition of axis XAX
 Replacing definition of axis XAX
@@ -4167,28 +5156,49 @@ Replacing definition of axis XAX
 Replacing definition of axis XAX
  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
 Replacing definition of axis XAX
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAXIS
  LISTing to file a.nc
  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
 Replacing definition of axis TAX
  LISTing to file a.nc
            *** NOTE: Not deleted: TAX
            *** NOTE: Axis is in use by grid TGRID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ LISTing to file a.nc
+           *** NOTE: Changing the type of attribute sst.newch
+           *** NOTE: Changing the value of attribute sst.newch
+ 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
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_aggregate_t
 Replacing definition of axis TDAY
  LISTing to file tmp/tagg_reg_1.nc
  LISTing to file tmp/tagg_reg_2.nc
@@ -4204,7 +5214,7 @@ Replacing definition of axis TDAY
  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 (G092)
+           *** NOTE: Axis is in use by grid (G088)
  LISTing to file tmp/tagg_irreg_1.nc
  LISTing to file tmp/tagg_irreg_2.nc
  LISTing to file tmp/tagg_irreg_3.nc
@@ -4218,7 +5228,7 @@ Replacing definition of axis TDAY
 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 (G092)
+           *** NOTE: Axis is in use by grid (G088)
  LISTing to file tmp/tagg_T0varying_1.nc
 Replacing definition of axis TDAY_TVAR
  LISTing to file tmp/tagg_T0varying_2.nc
@@ -4254,7 +5264,7 @@ 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 (G092)
+           *** NOTE: Axis is in use by grid (G088)
  LISTing to file tmp/tagg_single_1.nc
  LISTing to file tmp/tagg_single_2.nc
  LISTing to file tmp/tagg_single_3.nc
@@ -4262,7 +5272,9 @@ Replacing definition of axis TDAY_TVAR
  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 (G092)
+           *** NOTE: Axis is in use by grid (G088)
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
  **ERROR: invalid command: given aggregation dataset name already in use: myagg2
 define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc, tmp/tagg_reg_2.nc
  **TMAP ERR: non-existent or not on line
@@ -4275,9 +5287,16 @@ define data/agg/t myaggbad = tmp/tagg_reg_1.nc, tmp/tagg_no_exist.nc
 DEFINE DATA/AGGREGAT/T myTindepagg = tmp/tagg_reg_no_T.nc
  **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_reg_3.nc
 define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2_overlarge.nc,tmp/tagg_reg_3.nc
+ **TMAP ERR: non-existent or not on line
+             Searched $FER_DESCR and $FER_DATA for 1(.nc ,.cdf,.des). For a Timeseries aggregation, specify the NetCDF file/path names or OPeNDAP dataset names.
+define data/agg/t myagg2num = 1,2
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
  **TMAP ERR: Unknown variable code
              in file tmp/tagg_disjoint_T0varying_4_wrong.nc time axis variable is missing: TDAY_TVAR
 define data/agg/t myagg5_bad = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_4_wrong.nc,tmp/tagg_disjoint_T0varying_5.nc
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
  **ERROR: unknown command: garbage
 garbage command syntax
  **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_single_1.nc
@@ -4286,6 +5305,8 @@ define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_1.nc
 define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc, tmp/tagg_single_5.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_unquoted_args
  LISTing to file tmp/test1.nc
  LISTing to file tmp/test2.nc
  LISTing to file tmp/test3.nc
@@ -4306,6 +5327,8 @@ go/garbage /home/users/ansley/build/linux/FERRET/bench/tmp/testMe.jnl
 go/garbage "/home/users/ansley/build/linux/FERRET/bench/tmp/testMe.jnl"
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_long_lists
  **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 [...]
  **ERROR: variable unknown or not in data set: A
@@ -4316,10 +5339,14 @@ load a
 "/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0020.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0021.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0022.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0023.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr [...]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_show_uvar_grid
 Replacing definition of axis DAYT
 Replacing definition of axis ZAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_aggregate_f
 Replacing definition of axis XAX
 Replacing definition of axis YAX
  LISTing to file tmp/fcst_1.nc
@@ -4340,13 +5367,19 @@ Replacing definition of axis YAX
  LISTing to file tmp/consecutive_month_fcst.nc
 Replacing definition of axis TRUEMONTH
  LISTing to file tmp/irregular_start_time_fcst.nc
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
            *** NOTE: Dataset used in aggregation.  Canceling aggregation, bn_aggregate_f.jnl
            *** NOTE: Dataset used in aggregation.  Canceling aggregation, my_fmrc
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: Ambiguous coordinates on T axis: FCST_2[D=MY_FMRC_LETD_6] - FCST_2[D=MY_FMRC_LETD_1]
  **ERROR: error defining aggregate dataset: some files have duplicate forecast start times
 DEFINE DATA/AGGREGAT/F my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc,tmp/fcst_2.nc,tmp/fcst_3.nc
@@ -4359,177 +5392,8 @@ DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/consecutive_month_fcst.nc")
 DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/irregular_start_time_fcst.nc")
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-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
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_aggregate_tef
            *** 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
@@ -4555,31 +5419,40 @@ DEFINE DATA/AGGREGAT/E bad_ens = te_f01, te_f03, te_f04
 DEFINE DATA/AGGREGAT/F bad_fmrc = tf_e1, tf_e3, tf_e4
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dataset_qualifier
  LISTing to file a.nc
  LISTing to file a.nc
 Replacing definition of axis XAX10
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_speedtest
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_show_noupcase
 Replacing definition of axis tday
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 SHO VAR/XML
 SHO VAR/XML
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_letd_attributes
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_list_clim_axes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_climatology_attr
 Replacing definition of axis tax
  LISTing to file a.nc
  LISTing to file a.nc
@@ -4588,44 +5461,1002 @@ Replacing definition of axis TAX
  LISTing to file a.nc
 Replacing definition of axis TAX
  LISTing to file a.nc
+ LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_along
            *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
            *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
            *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
            *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_show_commands
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_decimate
            *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
            *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
            *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
            *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_auto_tprec
 Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_coordvars_atts
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **ERROR: command syntax: unknown region name: @w
-set region/@w
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn710_bug_fixes
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+           *** NOTE: unrepairable repeated axis coords on axis xax at subscript -4161
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: unrepairable repeated axis coords on axis yax at subscript -4161
+           *** NOTE: A dummy axis of subscripts will be used
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+           *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./unclosed_if.sub
+ 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
+Replacing definition of axis YAXIS
+ LISTing to file a.nc
+Replacing definition of axis TAX
+ 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
+ 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
+Replacing definition of axis TAX
+Replacing definition of axis ZAX
+Replacing definition of axis TAX
+ 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
+Replacing definition of axis TAXIS
+Replacing definition of axis XAXIS
+Replacing definition of axis YAXIS
+Replacing definition of axis TAXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis TAX
+ 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
+ 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
+Replacing definition of axis YAXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis XLON
+Replacing definition of axis YLAT
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis TAX
+ LISTing to file a.nc
+           *** NOTE: Not deleted: TAX
+           *** NOTE: Axis is in use by grid TGRID
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ **TMAP ERR: attribute already defined
+             coordinates for variable ZETA
+             Data set: testdata
+ **TMAP ERR: attribute already defined
+             coordinates for variable U
+             Data set: testdata
+ **TMAP ERR: attribute already defined
+             coordinates for variable V
+             Data set: testdata
+ **TMAP ERR: attribute already defined
+             coordinates for variable TEMP
+             Data set: testdata
+ **TMAP ERR: attribute already defined
+             coordinates for variable SALT
+             Data set: testdata
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+Replacing definition of axis TAX2
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis XLON
+ LISTing to file a1.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
+ LISTing to file a.nc
+           *** NOTE: Requested region on modulo axis XLONN7_141 is larger than modulo length. Modulo attribute not written.
+ 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
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis TDAYS
+Replacing definition of axis YAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ LISTing to file a1.nc
+ LISTing to file a2.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **ERROR: command syntax: writev5d(tr, 0, 0, 0, 0, 0, 0, 0, "vis5d_out.v5d")
-          unknown function "writev5d"
-DEFINE VARIABLE/QUIET vflag = writev5d(tr, 0, 0, 0, 0, 0, 0, 0, "vis5d_out.v5d")
- **ERROR: variable unknown or not in data set: VFLAG
-LOAD/TEMPORARY vflag
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_delim_datetime
+Replacing definition of axis TIMAX
+Replacing definition of axis TIMAX
+Replacing definition of axis TIMAX
+Replacing definition of axis TIMAX
+Replacing definition of axis TIMAX
+ **ERROR: Error reading file: Check Date or Time fields.
+list index,edtim,udtim,udate,edate
+ **ERROR: Error reading file: Check Date or Time fields.
+list index,edtim,udtim,udate,edate
+ **ERROR: Error reading file: Check Date or Time fields.
+list index,edtim,udtim,udate,edate
+ **ERROR: Error reading file: Check Date or Time fields.
+list index,edtim,udtim,udate,edate
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_aggregate_u
+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
+ LISTing to file tmp/uagg_4.nc
+ LISTing to file tmp/uagg_1_t1.nc
+ LISTing to file tmp/uagg_1_t2.nc
+ LISTing to file tmp/uagg_1_t3.nc
+ LISTing to file tmp/uagg_5.nc
+           *** NOTE: Skipping variable SST from set 2, already in the Union dataset.
+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
+ LISTing to file tmp/f01_e2_tu1.nc
+ LISTing to file tmp/f01_e2_tu2.nc
+ LISTing to file tmp/f01_e2_tu3.nc
+ LISTing to file tmp/f02_e1_tu1.nc
+ LISTing to file tmp/f02_e1_tu2.nc
+ LISTing to file tmp/f02_e1_tu3.nc
+ LISTing to file tmp/f02_e2_tu1.nc
+ LISTing to file tmp/f02_e2_tu2.nc
+ LISTing to file tmp/f02_e2_tu3.nc
+ LISTing to file tmp/f03_e1_tu1.nc
+ LISTing to file tmp/f03_e1_tu2.nc
+ LISTing to file tmp/f03_e1_tu3.nc
+ LISTing to file tmp/f03_e2_tu1.nc
+ LISTing to file tmp/f03_e2_tu2.nc
+ LISTing to file tmp/f03_e2_tu3.nc
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: Skipping variable REALIZATION from set 1, already in the Union dataset.
+           *** NOTE: Skipping variable REALIZATION from set 8, already in the Union dataset.
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ez_noupcase
+ LISTing to file abc.dat
+ LISTing to file a.nc
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_spawn_fail
+ls: 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
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ave_of_ave
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_agg_member_syntax
+ **ERROR: unknown data set: D=5.3
+stat/br fcst[d=5.3]
+ **ERROR: unknown data set: D=12.30
+stat/br fcst[d=12.30]
+ **ERROR: unknown data set: D=12.300000
+stat/br fcst[d=12.300000]
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+ **ERROR: unknown data set: D=4.1
+stat/br sst[d=4.1]
+ **ERROR: unknown data set: D=5.30
+stat/br sst[d=5.30]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_true_monthly
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis, T0 not specified. Using start of first year of axis
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis, T0 not specified. Using start of first year of axis
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+ LISTing to file a.nc
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+ LISTing to file a.nc
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+ LISTing to file a.nc
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis, T0 not specified. Using 01-jan-0000
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+ LISTing to file a.nc
+           *** NOTE: True monthly axis
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis, T0 not specified. Using start of first year of axis
+Replacing definition of axis TAXIS
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY specify /UNITS=month or omit /UNITS (MONTH is default)
+define axis/t=1-jan-2010:31-jul-2011:30/t0=1-jan-2000/monthly/units=days taxis
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis: /NPOINTS not allowed. Use /T=lo:hi:del
+define axis/t=1-jan-2010:31-dec-2012:1/t0=1-jan-2000/monthly/npoints=13 taxis
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis delta-t must be 1
+define axis/t=1-jan-2010:31-dec-2012/t0=1-jan-2000/monthly taxis
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis delta-t must be 1
+define axis/t=1-jan-2010:31-dec-2012:2/t0=1-jan-2000/monthly taxis
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis: Definition /FROMDATA not allowed. Use /T=LO:HI:DEL
+define axis/t/t0=1-jan-2000/monthly taxis = {123,124,126}
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis: Definition /FROMDATA not allowed. Use /T=LO:HI:DEL
+define axis/from/t/t0=1-jan-2001/monthly/edges taxis = {5,6,6,6,7}
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis: /BOUNDS not allowed. Use /T=lo:hi:del
+def axis/t/t0=1-jan-2000/monthly/bounds tax={1.2, 2, 3.2, 5, 7, 8.4, 9}, {0.5,1.5, 1.5,2.5, 2.5,3.5, 3.5,6.5, 6.5,7.5, 7.5,8.5, 8.5,9.5}
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis: needs /T=lo:hi:del
+define axis/x=1:5:1/monthly aaxis
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn720_bug_fixes
+ 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
+Replacing definition of axis TAX
+ 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
+ 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
+ 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
+Starting test: bn_compressed_gather
+Replacing definition of axis xax
+Replacing definition of axis yax
+Replacing definition of axis tax
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis xax
+Replacing definition of axis yax
+Replacing definition of axis zax
+Replacing definition of axis tax
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis xax
+Replacing definition of axis tax
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis xax
+Replacing definition of axis zax
+Replacing definition of axis tax
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dynamic_gather
+ **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
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ 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 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
+           *** NOTE: No active redirects to cancel
+ **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
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ 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 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
+ **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
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ 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 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
+ **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
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ 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 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
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_stat_precision
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_vs_with_time
+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
+ 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
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ **ERROR: command syntax: unknown region name: @w
+set region/@w
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- Cached 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
@@ -4668,8 +6499,10 @@ Re-defining viewport UM6
  Using every   2th vector in the Y direction
  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 UL6
 Re-defining viewport UM6
 Re-defining viewport UR6
@@ -4679,11 +6512,14 @@ Replacing definition of axis TDAYS
  Using every   4th vector in the X direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX
  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 XAX
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
@@ -4716,4 +6552,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 Wed May 11 16:14:42 PDT 2016
+Ended at Tue Apr 11 16:55:55 PDT 2017
diff --git a/bench/ansley_official.rhel5_32_log b/bench/ansley_official.rhel5_32_log
index 41b576c..590af43 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 121894588 May 11 15:36 /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
 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: updates including subspan modulo fixes
+Note: with CANCEL MODE STUPID in bn_reset
 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 Wed May 11 16:10:59 PDT 2016
+Beginning at Tue Apr 11 16:46:42 PDT 2017
 ! BN500_ALL.JNL
 ! - run all the benchmark tests
 ! - ordered (more or less) from least to most complex
@@ -136,13 +136,22 @@ Beginning at Wed May 11 16:10:59 PDT 2016
 !       *sh* 3/16 - added bn_plot_along.jnl
 !       *acm*4/16 - added bn_show_commands.jnl
 !       *acm*4/16 - added bn_plot_decimate.jnl
- 
+! V702 *sh 11/16 - added bn_agg_member_syntax.jnl
+! V702 *acm 12/16 - Merge/Reintigrate true-month-axis branch. New test bn_true_monthly.
+!                   and axes that are true-month in other tests are treated as true-month.
+! V702 *acm 12/16 - Remove all references to the long unused and unsupported vis5D function
+! V7023 *acm 1/17 - Back out the changes that automatically detect a true-month axis in
+!                   a netCDF file or from a DEFINE AXIS (when given without /MONTHLY).
+!
 ! Include this statement to compare the outupt of 6D Ferret with
 ! previous 4D benchmark logs.
 ! cancel mode 6d_lab
+! V702 *sh* 3/17 - added dynamic memory benchmarks.  Tweaked a couple of others
  
-GO bn_reset
+GO bn_reset bn_syntax
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_syntax
 GO bn_syntax
 ! bn401_syntax.JNL
 ! - test syntax interpretation of Program FERRET
@@ -167,43 +176,43 @@ SHOW DATA/BRIEF
 SHOW DATA
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
  
 SHOW DATA/VARIABLES
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.8S:51.4N  
  
@@ -212,43 +221,43 @@ SHOW DATA/VARIABLES
 SHOW DATA/FILES
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
  
 SHOW DATA/FULL
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.8S:51.4N  
  
@@ -286,8 +295,8 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./snoopy.dat  (default)
  
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:2       ...       ...       ...
                on grid (G008) with -1.E+34 for missing data
              X=-0.5:1.5  
  
@@ -298,8 +307,8 @@ FILE/TITLE="quick and dirty" snoopy.dat
 SHOW DATA
      currently SET data sets:
     1> ./snoopy.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:2       ...       ...       ...
  
 SET MODE IGNORE_ERROR
 SET DATA/EZ/VAR="P,Q" 1
@@ -426,11 +435,11 @@ region W
 ! SET - SHOW - CANCEL  MODE
 SHOW MODES
       MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
+      DIAGNOSTIC    CANCELED            99
       VERIFY           SET         DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
+      INTERPOLATE   CANCELED
+      IGNORE_ERROR  CANCELED
+      STUPID        CANCELED
       JOURNAL          SET         ferret.jnl
       LONG_LABEL       SET               1
       LATIT_LABEL      SET               1
@@ -440,32 +449,33 @@ SHOW MODES
       F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
+      WAIT          CANCELED
+      DESPERATE     CANCELED       2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      metafile.plt
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
+      METAFILE      CANCELED       metafile.plt
+      PPLLIST       CANCELED       ppllist.out
+      GUI           CANCELED
       LOGO             SET
       LABELS           SET
-      GRATICULE     CANCELLED
+      GRATICULE     CANCELED
       LINECOLORS       SET               6
       UPCASE_OUTPU     SET
       NLEVELS          SET              30
       NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      LAYERZ        CANCELLED
+      SHRINK_YLAB   CANCELED
+      CURVILINEAR   CANCELED
+      LAYERZ        CANCELED
       6D_LAB           SET
+      FRUGAL           SET              30
 SET MODE IGNORE_ERROR
 SHOW MODES
       MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
+      DIAGNOSTIC    CANCELED            99
       VERIFY           SET         DEFAULT
-      INTERPOLATE   CANCELLED
+      INTERPOLATE   CANCELED
       IGNORE_ERROR     SET
-      STUPID        CANCELLED
+      STUPID        CANCELED
       JOURNAL          SET         ferret.jnl
       LONG_LABEL       SET               1
       LATIT_LABEL      SET               1
@@ -475,32 +485,33 @@ SHOW MODES
       F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
+      WAIT          CANCELED
+      DESPERATE     CANCELED       2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      metafile.plt
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
+      METAFILE      CANCELED       metafile.plt
+      PPLLIST       CANCELED       ppllist.out
+      GUI           CANCELED
       LOGO             SET
       LABELS           SET
-      GRATICULE     CANCELLED
+      GRATICULE     CANCELED
       LINECOLORS       SET               6
       UPCASE_OUTPU     SET
       NLEVELS          SET              30
       NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      LAYERZ        CANCELLED
+      SHRINK_YLAB   CANCELED
+      CURVILINEAR   CANCELED
+      LAYERZ        CANCELED
       6D_LAB           SET
+      FRUGAL           SET              30
 CANCEL MODE IGNORE_ERROR
 SHOW MODES
       MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
+      DIAGNOSTIC    CANCELED            99
       VERIFY           SET         DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
+      INTERPOLATE   CANCELED
+      IGNORE_ERROR  CANCELED
+      STUPID        CANCELED
       JOURNAL          SET         ferret.jnl
       LONG_LABEL       SET               1
       LATIT_LABEL      SET               1
@@ -510,27 +521,28 @@ SHOW MODES
       F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
+      WAIT          CANCELED
+      DESPERATE     CANCELED       2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      metafile.plt
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
+      METAFILE      CANCELED       metafile.plt
+      PPLLIST       CANCELED       ppllist.out
+      GUI           CANCELED
       LOGO             SET
       LABELS           SET
-      GRATICULE     CANCELLED
+      GRATICULE     CANCELED
       LINECOLORS       SET               6
       UPCASE_OUTPU     SET
       NLEVELS          SET              30
       NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      LAYERZ        CANCELLED
+      SHRINK_YLAB   CANCELED
+      CURVILINEAR   CANCELED
+      LAYERZ        CANCELED
       6D_LAB           SET
+      FRUGAL           SET              30
 SHOW MODE STUPID
       MODE            STATE        ARGUMENT
-      STUPID        CANCELLED
+      STUPID        CANCELED
 SET MODE STUPID
 SHOW MODE STUPID
       MODE            STATE        ARGUMENT
@@ -538,7 +550,7 @@ SHOW MODE STUPID
 SET MODE/LAST STUPID
 SHOW MODE STUPID
       MODE            STATE        ARGUMENT
-      STUPID        CANCELLED
+      STUPID        CANCELED
  
 ! new modes 5/93
 set mode journal newjournal.jnl
@@ -566,12 +578,12 @@ ppl list plot
 cancel mode journal
 show mode journal
       MODE            STATE        ARGUMENT
-      JOURNAL       CANCELLED      ferret.jnl
+      JOURNAL       CANCELED       ferret.jnl
  
 ! new 1/94  (syntax check also applies to modes journal and ppllist)
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      metafile.plt
+      METAFILE      CANCELED       metafile.plt
 set mode metafile newmetafile1.plt
 show mode metafile
       MODE            STATE        ARGUMENT
@@ -655,8 +667,6 @@ SHOW GRID
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 LIST/I=101:105/J=50/K=1/L=5 SALT
              VARIABLE : (SALINITY(ppt) - 35) /1000 (frac. by wt. less .035)
              FILENAME : gt4d011.cdf
@@ -680,8 +690,6 @@ SHOW GRID
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
- normal    E
- normal    F
 SET GRID/SAVE
 SET GRID ABSTRACT
 SHOW GRID
@@ -693,8 +701,6 @@ SHOW GRID
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
- normal    E
- normal    F
 SHOW GRID/X=180:165W SALT
     GRID PS3DT2
  name       axis              # pts   start                end                 subset
@@ -702,8 +708,6 @@ SHOW GRID/X=180:165W SALT
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
       50>  179.5E                1          179E
@@ -739,56 +743,62 @@ SHOW VARIABLES
  
 ! SHOW MEMORY , LOAD
 SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 5 words
 SHOW MEMORY/TEMPORARY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 5 words
 data loaded without /PERMANENT:
- SALT[D=gt4d011]                   X     mr:3  blk1:1  nblk:1
-  101  /130W          50  /1.3N           1  /0              5  /07-SEP-1982  ...  / ...         ...  / ...
-  105  /125W          50  /1.7N           1  /10             5  /13-SEP-1982  ...  / ...         ...  / ...
+ SALT[D=gt4d011]                   X     mr:3 size:5
+       101/130W               50/1.3N                1/0                   5/07-SEP-1982
+       105/125W               50/1.7N                1/10                  5/13-SEP-1982
  
 SHOW MEMORY/PERMANENT
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 5 words
 data loaded with /PERMANENT:
 SHOW MEMORY/ALL
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 5 words
 all data in memory:
- SALT[D=gt4d011]                   X     mr:3  blk1:1  nblk:1
-  101  /130W          50  /1.3N           1  /0              5  /07-SEP-1982  ...  / ...         ...  / ...
-  105  /125W          50  /1.7N           1  /10             5  /13-SEP-1982  ...  / ...         ...  / ...
+ SALT[D=gt4d011]                   X     mr:3 size:5
+       101/130W               50/1.3N                1/0                   5/07-SEP-1982
+       105/125W               50/1.7N                1/10                  5/13-SEP-1982
  
  
 LET A=i
 LOAD/PERM/I=1:5 A
 SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 15 words
+    Permamnent: 5 words
 SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 12800
- 
-            number of free memory blocks: 1997
-            largest free region: 1997
-            number of free regions: 1
-            free memory table slots: 497
-            number of UN-CACHED variables: 0
-            number of /PERMANENT variables: 1
-            number of blocks used /PERM: 1
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 15 words
+    Permamnent: 5 words
+    Total table slots: 500
+    Free table slots: 497
+    Un-cached variables: 0
+    number of /PERMANENT variables: 1
+    memory used for /PERM: 5
 LOAD/TEMPORARY/I=1:5 A
 SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 10 words
 SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 12800
- 
-            number of free memory blocks: 1998
-            largest free region: 1997
-            number of free regions: 2
-            free memory table slots: 498
-            number of UN-CACHED variables: 0
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 10 words
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
  
 ! REPEAT
 REPEAT/L=1:3 LIST/I=1:6/ORDER=X 1/(I+L)
@@ -1072,8 +1082,10 @@ J1111111112222222222333333333344444444445555555555666666666677777777778888888888
  
 cancel mode metafile      !9/97
  
-GO bn_reset
+GO bn_reset bn_dollar
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dollar
 GO bn_dollar hello    ! test command arg
 ! test this with GO journal hello
  
@@ -1245,8 +1257,10 @@ set mode ignore
 set mode/last ignore
  
 ! added in bn400
-GO bn_reset
+GO bn_reset bn_grave
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_grave
 GO bn_grave
 ! bn420_grave
 ! benchmark to test evaluation of grave accent-enclosed expressions
@@ -1393,17 +1407,17 @@ use coads_climatology
 set mode diagnostic
 let sst2 = sst[l=5:8]
 say `sst, return=size`    ! should only do a GETGRID
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  !-> MESSAGE/CONTINUE 48600
 48600
 say `sst2,return=lend`    ! should inherit L=5:8
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 SST2     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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
+ getgrid SST2     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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  !-> MESSAGE/CONTINUE 8
 8
 set mode/last diagnostic
@@ -1519,42 +1533,42 @@ say `sst[L=1:3 at ave]+sst,return=lsize`
 let a = XSEQUENCE(J[j=1:5])
 set mode diagnostic
 say `a,return=isize`          ! full evaluation occurs
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C01,V08 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C11,V08 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ 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
+ getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C01,V08 C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C11,V08 C: 11 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 (C11,V08 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- -DELETE X        M:  2 dset:   0 I:  160  160  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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: -999 -999  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V08 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C11,V08 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M:  2 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pass #2 (C11,V08 C: 11 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ -DELETE X        M:  2 dset:   0 I:    160    160  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V08 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C11,V08 C: 10 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  J        M:  2 dset:   0 I:   -999   -999  J:    1    5  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 5
 5
 say `a[i=2:3],return=isize`   ! full evaluation is bypassed
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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
- -DELETE J        M:  2 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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: -999 -999  M: -999 -999  N: -999 -999
- found   A        M: 10 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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
+ -DELETE J        M:  2 dset:   0 I:   -999   -999  J:    1    5  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ found   A        M: 10 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 2
 2
 say `a[i=100:200],return=isize`    ! correct starting with Ferret v694 (tkt 2213)
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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: -999 -999  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I:  100  200  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V08 C:  8 dset:   0 I:  100  200  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- found   (C11,V08 M:  5 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -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
+ 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:   -999   -999
+ eval    A        C:  6 dset:   0 I:    100    200  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V08 C:  8 dset:   0 I:    100    200  J: -999 -999  K: -999 -999  L:   -999   -999
+ found   (C11,V08 M:  5 dset:   0 I:   -999   -999  J:    1    5  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 5
 5
 set mode/last diagnostic
@@ -1572,8 +1586,10 @@ set mode/last ignore_errors
  
  
 ! added in bn420
-GO bn_reset
+GO bn_reset bn_letd
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_letd
 GO bn_letd
 ! bn420_letd.jnl
 ! 9/1/95
@@ -1618,8 +1634,8 @@ show var/d=clim_airt_lev
 show data clim_airt_lev
      currently SET data sets:
     1> ./clim_airt_lev.cdf  (default)
- name     title                             I         J         K         L         M         N
- AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12
  ------------------------------
  A[D=clim_airt_lev] = CLIM_AIRT_LEV-SPECIFIC
  
@@ -1699,22 +1715,22 @@ set var/titl=test3 t3[d=snoopy.dat]
 show data
      currently SET data sets:
     1> ./clim_airt_lev.cdf
- name     title                             I         J         K         L         M         N
- AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12
  ------------------------------
  T3[D=clim_airt_lev] = 3
  
     2> ./snoopy.dat  (default)
- name     title                             I         J         K         L         M         N
- T4       test4                            1:2       ...       ...       ...       ...       ...
- T3       test3                            1:2       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ T4       test4                            1:2       ...       ...       ...
+ T3       test3                            1:2       ...       ...       ...
  
 show data/full 1
      currently SET data sets:
     1> ./clim_airt_lev.cdf
  
- name     title                             I         J         K         L         M         N
- AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12
              deg. C on grid GGT1 with -1.E+34 for missing data
              X=130E:70W  Y=30S:50N  
  
@@ -1850,8 +1866,10 @@ list q[d=v12file]
  
  
 ! added in bn430
-GO bn_reset
+GO bn_reset bn_if
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_if
 GO bn_if
 ! bn430_if
 ! 5/6/96
@@ -1945,8 +1963,10 @@ IF yes THEN
   say ---->... now inside of IF clause
 ---->... now inside of IF clause
  
-GO bn_reset
+GO bn_reset bn_expressions
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_expressions
 GO bn_expressions
 ! bn450_expressions.JNL
 ! test all manner of expressions
@@ -2476,8 +2496,10 @@ LIST/L=5:7 TBOXLO, TBOXHI
 6   / 6:  5.500  6.500
 7   / 7:  6.500  7.500
  
-GO bn_reset
+GO bn_reset bn_geometry
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_geometry
 GO bn_geometry
 ! bn200_geometry.JNL
 ! benchmark various geometries for accessing FERRET data
@@ -3060,8 +3082,8 @@ USE gt4d011
 CANCEL MEMORY/ALL
 SET MODE DIAGNOSTIC
 DEFINE REGION/I=101 IPT
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1
 DEFINE REGION/J=46 JPT
 DEFINE REGION/K=1 KPT
 DEFINE REGION/L=1 LPT
@@ -3069,10 +3091,10 @@ DEFINE REGION/I=101:105/J=46:50/K=1:5/L=1:5 R4D
 SET REG R4D
 SET EXPRESSION temp
 LOAD		! load full 4-D region
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  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 PS3DT2          PSXT      PSYT      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
+ reading TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
 GO bn_geometry.sub
 ! BN200_GEOMETRY.SUB
 ! list the variable vtest on variuos geometries
@@ -3082,8 +3104,8 @@ GO bn_geometry.sub
 ! lines of data
 LIST/@JPT/@KPT/@LPT/ORDER=X
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (LONGITUDE)
@@ -3093,11 +3115,11 @@ LIST/@JPT/@KPT/@LPT/ORDER=X
           129.5W 128.5W 127.5W 126.5W 125.5W 
           101    102    103    104    105
           25.78  25.80  25.82  25.80  25.74
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      1
 LIST/@IPT/@KPT/@LPT/ORDER=Y
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (LATITUDE)
@@ -3107,11 +3129,11 @@ LIST/@IPT/@KPT/@LPT/ORDER=Y
            0.17N  0.5N   0.83N  1.17N  1.5N  
            46     47     48     49     50
           25.78  25.90  26.04  26.22  26.42
- -DELETE TEMP     M: 29 dset:   1 I:   46   50  J:  101  101  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:     46     50  J:  101  101  K:    1    1  L:      1      1
 LIST/@IPT/@JPT/@LPT/ORDER=Z
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (DEPTH (m))
@@ -3121,11 +3143,11 @@ LIST/@IPT/@JPT/@LPT/ORDER=Z
            5      15     25     35     45    
             1      2      3      4      5
           25.78  25.67  25.51  25.35  25.16
- -DELETE TEMP     M: 29 dset:   1 I:    1    5  J:  101  101  K:   46   46  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:      1      5  J:  101  101  K:   46   46  L:      1      1
 LIST/@IPT/@JPT/@KPT/ORDER=T
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    1  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (TIME)
@@ -3135,13 +3157,13 @@ LIST/@IPT/@JPT/@KPT/ORDER=T
            1982   1982   1982   1982   1982  
             1      2      3      4      5
           25.78  25.98  26.18  26.39  26.62
- -DELETE TEMP     M: 29 dset:   1 I:    1    5  J:  101  101  K:   46   46  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:      1      5  J:  101  101  K:   46   46  L:      1      1
  
 ! planes of data
 LIST/@KPT/@LPT	!XY
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
@@ -3154,11 +3176,11 @@ LIST/@KPT/@LPT	!XY
  0.83N / 48:  26.04  26.10  26.13  26.11  26.06
  0.5N  / 47:  25.90  25.94  25.96  25.94  25.89
  0.17N / 46:  25.78  25.80  25.82  25.80  25.74
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      1
 LIST/@JPT/@LPT	!XZ
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-DEPTH (m))
@@ -3171,11 +3193,11 @@ LIST/@JPT/@LPT	!XZ
  25    / 3:  25.51  25.53  25.54  25.53  25.48
  35    / 4:  25.35  25.36  25.36  25.34  25.29
  45    / 5:  25.16  25.15  25.12  25.07  25.02
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:    1    5  K:   46   46  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:    1    5  K:   46   46  L:      1      1
 LIST/@JPT/@KPT	!XT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-TIME)
@@ -3188,11 +3210,11 @@ LIST/@JPT/@KPT	!XT
  29-AUG-1982 16 / 3:  26.18  26.13  26.07  26.01  25.97
  04-SEP-1982 18 / 4:  26.39  26.31  26.24  26.18  26.15
  10-SEP-1982 20 / 5:  26.62  26.55  26.47  26.40  26.36
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:    1    5  K:   46   46  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:    1    5  K:   46   46  L:      1      1
 LIST/@IPT/@LPT	!YZ
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LATITUDE-DEPTH (m))
@@ -3205,11 +3227,11 @@ LIST/@IPT/@LPT	!YZ
  25    / 3:  25.51  25.68  25.90  26.12  26.35
  35    / 4:  25.35  25.58  25.86  26.11  26.35
  45    / 5:  25.16  25.41  25.77  26.10  26.35
- -DELETE TEMP     M: 29 dset:   1 I:   46   50  J:    1    5  K:  101  101  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:     46     50  J:    1    5  K:  101  101  L:      1      1
 LIST/@IPT/@KPT	!YT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LATITUDE-TIME)
@@ -3222,11 +3244,11 @@ LIST/@IPT/@KPT	!YT
  29-AUG-1982 16 / 3:  26.18  26.30  26.46  26.65  26.86
  04-SEP-1982 18 / 4:  26.39  26.51  26.67  26.85  27.05
  10-SEP-1982 20 / 5:  26.62  26.72  26.87  27.03  27.17
- -DELETE TEMP     M: 29 dset:   1 I:   46   50  J:    1    5  K:  101  101  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:     46     50  J:    1    5  K:  101  101  L:      1      1
 LIST/@IPT/@JPT	!ZT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (DEPTH (m)-TIME)
@@ -3239,13 +3261,13 @@ LIST/@IPT/@JPT	!ZT
  29-AUG-1982 16 / 3:  26.18  26.08  25.93  25.79  25.60
  04-SEP-1982 18 / 4:  26.39  26.31  26.16  26.04  25.83
  10-SEP-1982 20 / 5:  26.62  26.53  26.36  26.25  26.04
- -DELETE TEMP     M: 29 dset:   1 I:    1    5  J:    1    5  K:  101  101  L:   46   46  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:      1      5  J:    1    5  K:  101  101  L:     46     46
  
 ! cubes of data
 LIST/@LPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-DEPTH (m))
@@ -3282,11 +3304,11 @@ LIST/@LPT
  0.83N / 48:  25.77  25.81  25.82  25.81  25.76
  0.5N  / 47:  25.41  25.43  25.41  25.38  25.32
  0.17N / 46:  25.16  25.15  25.12  25.07  25.02
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      1
 LIST/@KPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-TIME)
@@ -3323,11 +3345,11 @@ LIST/@KPT
  0.83N / 48:  26.87  26.75  26.62  26.54  26.52
  0.5N  / 47:  26.72  26.63  26.52  26.45  26.43
  0.17N / 46:  26.62  26.55  26.47  26.40  26.36
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      1
 LIST/@JPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-DEPTH (m)-TIME)
@@ -3364,11 +3386,11 @@ LIST/@JPT
  25    / 3:  26.36  26.31  26.19  26.08  26.03
  35    / 4:  26.25  26.21  26.09  25.98  25.92
  45    / 5:  26.04  26.01  25.93  25.84  25.77
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:    1    5  K:    1    5  L:   46   46  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:    1    5  K:    1    5  L:     46     46
 LIST/@IPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LATITUDE-DEPTH (m)-TIME)
@@ -3405,12 +3427,12 @@ LIST/@IPT
  25    / 3:  26.36  26.59  26.78  26.95  27.09
  35    / 4:  26.25  26.53  26.78  26.95  27.09
  45    / 5:  26.04  26.32  26.68  26.95  27.09
- -DELETE TEMP     M: 29 dset:   1 I:   46   50  J:    1    5  K:    1    5  L:  101  101  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:     46     50  J:    1    5  K:    1    5  L:    101    101
  
 ! 4D region
 LOAD
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
 SET MODE/LAST DIAGNOSTIC
  
 ! ******** disk-resident file variable ************
@@ -3418,7 +3440,7 @@ USE gt4d011
 CANCEL MEMORY/ALL
 SET MODE DIAGNOSTIC
 DEFINE REGION/I=101 IPT
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1
 DEFINE REGION/J=46 JPT
 DEFINE REGION/K=1 KPT
 DEFINE REGION/L=1 LPT
@@ -3433,11 +3455,11 @@ GO bn_geometry.sub
  
 ! lines of data
 LIST/@JPT/@KPT/@LPT/ORDER=X
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     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 PS3DT2          PSXT      PSYT      PSZT      TIME1
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 31 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      1
+ reading TEMP     M: 31 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (LONGITUDE)
@@ -3449,8 +3471,8 @@ LIST/@JPT/@KPT/@LPT/ORDER=X
           25.78  25.80  25.82  25.80  25.74
 LIST/@IPT/@KPT/@LPT/ORDER=Y
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 29 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      1
+ reading TEMP     M: 29 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (LATITUDE)
@@ -3462,8 +3484,8 @@ LIST/@IPT/@KPT/@LPT/ORDER=Y
           25.78  25.90  26.04  26.22  26.42
 LIST/@IPT/@JPT/@LPT/ORDER=Z
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 28 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      1
+ reading TEMP     M: 28 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (DEPTH (m))
@@ -3475,8 +3497,8 @@ LIST/@IPT/@JPT/@LPT/ORDER=Z
           25.78  25.67  25.51  25.35  25.16
 LIST/@IPT/@JPT/@KPT/ORDER=T
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 27 dset:   1 I:  101  101  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    1  L:      1      5
+ reading TEMP     M: 27 dset:   1 I:    101    101  J:   46   46  K:    1    1  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (TIME)
@@ -3490,8 +3512,8 @@ LIST/@IPT/@JPT/@KPT/ORDER=T
 ! planes of data
 LIST/@KPT/@LPT	!XY
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 26 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      1
+ reading TEMP     M: 26 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
@@ -3506,8 +3528,8 @@ LIST/@KPT/@LPT	!XY
  0.17N / 46:  25.78  25.80  25.82  25.80  25.74
 LIST/@JPT/@LPT	!XZ
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 25 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      1
+ reading TEMP     M: 25 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-DEPTH (m))
@@ -3522,8 +3544,8 @@ LIST/@JPT/@LPT	!XZ
  45    / 5:  25.16  25.15  25.12  25.07  25.02
 LIST/@JPT/@KPT	!XT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 24 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      5
+ reading TEMP     M: 24 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-TIME)
@@ -3538,8 +3560,8 @@ LIST/@JPT/@KPT	!XT
  10-SEP-1982 20 / 5:  26.62  26.55  26.47  26.40  26.36
 LIST/@IPT/@LPT	!YZ
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 23 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      1
+ reading TEMP     M: 23 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LATITUDE-DEPTH (m))
@@ -3554,8 +3576,8 @@ LIST/@IPT/@LPT	!YZ
  45    / 5:  25.16  25.41  25.77  26.10  26.35
 LIST/@IPT/@KPT	!YT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 22 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      5
+ reading TEMP     M: 22 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LATITUDE-TIME)
@@ -3570,8 +3592,8 @@ LIST/@IPT/@KPT	!YT
  10-SEP-1982 20 / 5:  26.62  26.72  26.87  27.03  27.17
 LIST/@IPT/@JPT	!ZT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 21 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      5
+ reading TEMP     M: 21 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (DEPTH (m)-TIME)
@@ -3588,8 +3610,8 @@ LIST/@IPT/@JPT	!ZT
 ! cubes of data
 LIST/@LPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 20 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      1
+ reading TEMP     M: 20 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-DEPTH (m))
@@ -3628,8 +3650,8 @@ LIST/@LPT
  0.17N / 46:  25.16  25.15  25.12  25.07  25.02
 LIST/@KPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 19 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      5
+ reading TEMP     M: 19 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-TIME)
@@ -3668,8 +3690,8 @@ LIST/@KPT
  0.17N / 46:  26.62  26.55  26.47  26.40  26.36
 LIST/@JPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 18 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      5
+ reading TEMP     M: 18 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-DEPTH (m)-TIME)
@@ -3708,8 +3730,8 @@ LIST/@JPT
  45    / 5:  26.04  26.01  25.93  25.84  25.77
 LIST/@IPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 17 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      5
+ reading TEMP     M: 17 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LATITUDE-DEPTH (m)-TIME)
@@ -3749,8 +3771,8 @@ LIST/@IPT
  
 ! 4D region
 LOAD
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 16 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
+ reading TEMP     M: 16 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
 SET MODE/LAST DIAGNOSTIC
  
 ! ******** diagnostic variable ************
@@ -3772,13 +3794,16 @@ SET MODE/LAST IGNORE_ERRORS
  
  
  
-GO bn_reset
-cancel mode verify
 set mode ignore		! needed for AIX   11/94
+GO bn_reset   bn_output
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_output
 GO bn_output
 ! 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)
  
 LET v = 1000*i + 100*j + 10*k + l
 SET REGION/I=1:2/J=3:4/K=5:6/L=7:8
@@ -6751,20 +6776,23 @@ LIST
 2   / 2:  2467.  2.000  4.000  6.000  7.000
 CANCEL LIST/ALL
 SET LIST/FILE=AUTO-X
-LIST/FILE
-LIST/FILE=test.dat
+LIST/CLOBBER/FILE
+LIST/CLOBBER/FILE=test.dat
 LIST/FILE=test.dat/APPEND
-LIST/FILE=test.unf/FORMAT=UNFORMATTED
+LIST/CLOBBER/FILE=test.unf/FORMAT=UNFORMATTED
 ! V6.8 we no longer write this file type
 SET MODE IGNORE
 LIST/FILE=test.gt/FORMAT=TMAP/L=1:3 v,v^0.5
 SET MODE/LAST IGNORE
 CANCEL LIST
+ 
 cancel list/format
 can mode ignore		! needed for AIX
  
-GO bn_reset
+GO bn_reset bn_in_plane
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_in_plane
 GO bn_in_plane
 ! bn200_in_plane.JNL
 ! benchmark various geometries with in-plane transformation applied (@SBX)
@@ -7280,8 +7308,10 @@ LIST/ORDER=T v[t=@sbx,i=@ave,j=@ave,k=@ave]
             2      3      4
          -2.855 -1.567 -0.836
  
-GO bn_reset
+GO bn_reset bn_compress
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_compress
 GO bn_compress
 ! bn200_compress.JNL
 ! benchmark various geometries obtained by compressing FERRET data with @AVE
@@ -7789,8 +7819,10 @@ 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
 ! ****
  
-GO bn_reset
+GO bn_reset bn_interpolate
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_interpolate
 GO bn_interpolate
 ! bn200_interpolate.JNL
 ! benchmark interpolation along various axes
@@ -8187,8 +8219,10 @@ LIST v[@xpt, at ypt, at zpt, at tpt]
              T        : 1.0005 (interpolated)
           1113.00
  
-GO bn_reset
+GO bn_reset bn_regrid
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regrid
 GO bn_regrid
 ! bn200_regrid.JNL
 ! test regridding
@@ -9512,8 +9546,6 @@ show grid/l=1:4 g24 g48
  normal    Y
  normal    Z
  TAX24     TIME               732 r   01-JAN-1980 00:00    01-JAN-1982 00:00
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (HOURS)
        1>  01-JAN-1980 00:00:00  24         31-DEC-1979 12:00:00   87648
@@ -9526,8 +9558,6 @@ show grid/l=1:4 g24 g48
  normal    Y
  normal    Z
  TAX48     TIME               367 r   01-JAN-1980 00:00    02-JAN-1982 00:00
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (HOURS)
        1>  01-JAN-1980 00:00:00  48         31-DEC-1979 00:00:00   525960
@@ -9571,8 +9601,10 @@ list a24[g=g48]-a48
  05-JAN-1980 00 / 3: -438312.
  07-JAN-1980 00 / 4: -438312.
  
-GO bn_reset
+GO bn_reset bn_ez
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ez
 GO bn_ez		! changed from bn200_ez 8/10/95
 ! bn401_ez.JNL
 ! test all manner of accessing non-TMAP data files
@@ -9585,8 +9617,8 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- V1       V1                               1:5       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:5       ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:5.5  
  
@@ -9605,8 +9637,8 @@ LIST V1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:5       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:5       ...       ...       ...
  
  
 ! first 2 values from each line
@@ -9615,11 +9647,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:5       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:5       ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:5.5  
- X2       X2                               1:5       ...       ...       ...       ...       ...
+ X2       X2                               1:5       ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:5.5  
  
@@ -9640,9 +9672,9 @@ LIST X1,X2
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:5       ...       ...       ...       ...       ...
- X2       X2                               1:5       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:5       ...       ...       ...
+ X2       X2                               1:5       ...       ...       ...
  
  
 ! all 6 values on each line
@@ -9651,11 +9683,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:15.5  
  
@@ -9684,9 +9716,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
  
  
 ! all 6 but skip first 2 lines
@@ -9695,11 +9727,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:15.5  
  
@@ -9722,9 +9754,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:9       ...       ...       ...       ...       ...
- X2       X2                               1:9       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:9       ...       ...       ...
+ X2       X2                               1:9       ...       ...       ...
  
  
 ! take 1st and 4th values on each line as X1
@@ -9733,11 +9765,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:15.5  
  
@@ -9757,9 +9789,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:6       ...       ...       ...       ...       ...
- X2       X2                               1:6       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:6       ...       ...       ...
+ X2       X2                               1:6       ...       ...       ...
  
  
 ! specify the format explicitly
@@ -9768,11 +9800,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:15.5  
  
@@ -9795,9 +9827,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:9       ...       ...       ...       ...       ...
- X2       X2                               1:9       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:9       ...       ...       ...
+ X2       X2                               1:9       ...       ...       ...
  
  
 ! specify the format to skip every second line
@@ -9806,11 +9838,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:15.5  
  
@@ -9830,9 +9862,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:6       ...       ...       ...       ...       ...
- X2       X2                               1:6       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:6       ...       ...       ...
+ X2       X2                               1:6       ...       ...       ...
  
  
 ! modify variable title
@@ -9840,9 +9872,9 @@ SET VARIABLE/TITLE="first variable" X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       first variable                   1:6       ...       ...       ...       ...       ...
- X2       X2                               1:6       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       first variable                   1:6       ...       ...       ...
+ X2       X2                               1:6       ...       ...       ...
  
  
 ! read onto a 2D grid
@@ -9853,11 +9885,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:3       1:20480   ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:3       1:20480   ...       ...
                on grid GEZ1 with -1.E+34 for missing data
              X=0.5:3.5  Y=0.5:20481  
- X2       X2                               1:3       1:20480   ...       ...       ...       ...
+ X2       X2                               1:3       1:20480   ...       ...
                on grid GEZ1 with -1.E+34 for missing data
              X=0.5:3.5  Y=0.5:20481  
  
@@ -9878,9 +9910,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:3       1:5       ...       ...       ...       ...
- X2       X2                               1:3       1:5       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:3       1:5       ...       ...
+ X2       X2                               1:3       1:5       ...       ...
  
  
 ! read onto a 4D grid
@@ -9893,11 +9925,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:1       1:3       1:2       1:20480   ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:1       1:3       1:2       1:20480
                on grid GEZ2 with -1.E+34 for missing data
              X=0.5:1.5  Y=0.5:3.5  Z=0.5:2.5  
- X2       X2                               1:1       1:3       1:2       1:20480   ...       ...
+ X2       X2                               1:1       1:3       1:2       1:20480
                on grid GEZ2 with -1.E+34 for missing data
              X=0.5:1.5  Y=0.5:3.5  Z=0.5:2.5  
  
@@ -9920,12 +9952,16 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:1       1:3       1:2       1:2       ...       ...
- X2       X2                               1:1       1:3       1:2       1:2       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:1       1:3       1:2       1:2
+ X2       X2                               1:1       1:3       1:2       1:2
  
  
 ! truncate reading by grid size limit
+! V702: *sh* note that with 3 columns of pairs and a request to read only
+! 8 values total, the final record is incomplete.  These final values
+! **do not get initialized**.  This has been reported in trac #2509
+! The presence of uninitialized values can throw off the formatting of the output
 DEFINE AXIS/X=1:8:1 xez3
 DEFINE GRID/X=XEZ3 GEZ3
 FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ3 EZ.DAT
@@ -9933,11 +9969,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:8       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:8       ...       ...       ...
                on grid GEZ3 with -1.E+34 for missing data
              X=0.5:8.5  
- X2       X2                               1:8       ...       ...       ...       ...       ...
+ X2       X2                               1:8       ...       ...       ...
                on grid GEZ3 with -1.E+34 for missing data
              X=0.5:8.5  
  
@@ -9954,14 +9990,14 @@ LIST X1
  4   / 4:  0.355000
  5   / 5:  0.379000
  6   / 6:  0.393000
- 7   / 7:  0.410000
- 8   / 8:  0.417000
+ 7   / 7:  0.000000
+ 8   / 8:  0.000000
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:8       ...       ...       ...       ...       ...
- X2       X2                               1:8       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:8       ...       ...       ...
+ X2       X2                               1:8       ...       ...       ...
  
  
 ! 8/10/95 -- added tests of unformatted writing and reading
@@ -9969,7 +10005,7 @@ SP rm -f test.unf
 LIST/FILE=test.unf/format=unf/i=1:10 i
 file/form=unf/var=my_var test.unf
 list my_var
-             VARIABLE : MY_VAR
+             VARIABLE : my_var
              FILENAME : test.unf
              SUBSET   : 10 points (X)
  1    /  1:   1.0000
@@ -9992,8 +10028,10 @@ PPL ECHO ON		! added 10/27/93
  
 ! 10/97 *kob* now set mode metafile
 set mode metafile bnplot.plt
-GO bn_reset
+GO bn_reset bn_plot
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot
 GO bn_plot		! upgraded from bn320_plot 10/1/97 *kob*
 ! bn450_plot.JNL - updated 9/97 from bn320_plot.jnl
 ! upgraded from bn320 to provide method for testing batch mode.  Also remove
@@ -10196,9 +10234,11 @@ set mode/last logo
  
 !added in bn450 10/97 *kob*
 ! moved to right after bn450_plot to capture metafiles *kob* 2/98
-GO bn_reset
-cancel mode verify
 ! 2/98 changed bn450_curv to bn491_curv - just some cosmetic changes *kob*
+GO bn_reset bn_curv
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_curv
 GO bn_curv
 cancel mode ignore
 !
@@ -10391,8 +10431,10 @@ SET WINDOW/CLEAR/SIZE=0.2 ! 8/25/92
 ! 10/97 *kob* now cancel mode metafile
 cancel mode metafile
  
-GO bn_reset
+GO bn_reset bn_symbols
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_symbols
 GO bn_symbols	! added 6/22/95
 ! bn420_symbols
 ! benchmark to test machinery of symbol definition and use
@@ -10415,20 +10457,22 @@ show symbols/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.97"
-FERRET_PLATFORM = "Linux 2.6.18-409.el5PAE 32-bit"
+FERRET_VERSION = "7.1"
+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-May-16"
-SESSION_TIME = "16:10"
-SESSION_PID = "27699"
-DELTA_CPU = "8.85265"
-CLOCK_SECS = "11.667"
-CURRENT_DATE = "11-May-16"
-CURRENT_TIME = "16:11:11"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
+PEAK_MEMORY = "0"
+SPAWN_STATUS = "1"
  
 ! define some symbols ... syntax variations
 define symbol s1 = hello
@@ -10444,20 +10488,22 @@ show symbol/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.97"
-FERRET_PLATFORM = "Linux 2.6.18-409.el5PAE 32-bit"
+FERRET_VERSION = "7.1"
+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-May-16"
-SESSION_TIME = "16:10"
-SESSION_PID = "27699"
-DELTA_CPU = "0.002"
-CLOCK_SECS = "11.669"
-CURRENT_DATE = "11-May-16"
-CURRENT_TIME = "16:11:11"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
+PEAK_MEMORY = "0"
+SPAWN_STATUS = "1"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10465,9 +10511,10 @@ NUM = "3"
 T$DOLLAR = "hi"
 T_HELLO = "hi"
 show symbol s*
-SESSION_DATE = "11-May-16"
-SESSION_TIME = "16:10"
-SESSION_PID = "27699"
+SESSION_DATE = "11-Apr-17"
+SESSION_TIME = "16:46"
+SESSION_PID = "10604"
+SPAWN_STATUS = "1"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10477,15 +10524,17 @@ S2 = ""hello""
 ! exercise CANCEL SYMBOL
 cancel symbol s2
 show symbol s*
-SESSION_DATE = "11-May-16"
-SESSION_TIME = "16:10"
-SESSION_PID = "27699"
+SESSION_DATE = "11-Apr-17"
+SESSION_TIME = "16:46"
+SESSION_PID = "10604"
+SPAWN_STATUS = "1"
 S1 = "hello"
 S3 = "hello and goodbye"
 show symbol S*
-SESSION_DATE = "11-May-16"
-SESSION_TIME = "16:10"
-SESSION_PID = "27699"
+SESSION_DATE = "11-Apr-17"
+SESSION_TIME = "16:46"
+SESSION_PID = "10604"
+SPAWN_STATUS = "1"
 S1 = "hello"
 S3 = "hello and goodbye"
 cancel symbol s2	! already deleted
@@ -10519,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/dbg) Ver.6.97"
+LAB1 = "FERRET (beta/debug) Ver.7.1"
 LAB2 = "NOAA/PMEL TMAP"
-LAB3 = "11-MAY-2016 16:11:11"
+LAB3 = "11-APR-2017 16:46:58"
 LABX = "X"
 LAB4 = "Y : 10"
 LABNUM_Y = "4"
@@ -10616,24 +10665,28 @@ show symbols/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.97"
-FERRET_PLATFORM = "Linux 2.6.18-409.el5PAE 32-bit"
+FERRET_VERSION = "7.1"
+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-May-16"
-SESSION_TIME = "16:10"
-SESSION_PID = "27699"
-DELTA_CPU = "0.015997"
-CLOCK_SECS = "11.685"
-CURRENT_DATE = "11-May-16"
-CURRENT_TIME = "16:11:11"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
+PEAK_MEMORY = "201"
+SPAWN_STATUS = "1"
  
  
-GO bn_reset
+GO bn_reset bn_comma_delimited
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_comma_delimited
 GO bn_comma_delimited	! added 10/2/95
 ! bn420_comma_delimited
  
@@ -12107,7 +12160,7 @@ LIST/FORMAT=comma/precision=5/order=x temp
              DEPTH (m): 15
              TIME     : 10-SEP-1982 20:00
    135.5W   ,134.5W   
-row 1,27.335,27.222
+27.335 ,27.222
 LIST/FORMAT=comma/precision=5/order=y temp
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
@@ -12130,7 +12183,7 @@ LIST/FORMAT=comma/precision=5/order=y temp
              DEPTH (m): 15
              TIME     : 10-SEP-1982 20:00
    1.5S   ,1.167S 
-row 1,27.335,27.238
+27.335 ,27.238
 LIST/FORMAT=comma/precision=5/order=x temp
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
@@ -12153,7 +12206,7 @@ LIST/FORMAT=comma/precision=5/order=z temp
              LATITUDE : 1.5S
              TIME     : 10-SEP-1982 20:00
    15      ,25      
-row 1,27.335,27.248
+27.335 ,27.248
 LIST/FORMAT=comma/precision=5/order=x temp
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
@@ -12178,7 +12231,7 @@ LIST/FORMAT=comma/precision=5/order=t temp
              LATITUDE : 1.5S
              DEPTH (m): 15
    10-SEP-1982 20:00,16-SEP-1982 22:00
-row 1,27.335,27.775
+27.335 ,27.775
 LIST/FORMAT=comma/precision=5/order=x temp
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
@@ -12238,8 +12291,8 @@ LIST/FORMAT=comma/precision=9 randu(i)*temp*1e7
              DEPTH (m): 15
              TIME     : 10-SEP-1982 20:00
    135.5W   ,134.5W   
-1.5S,  166750845.,  202088412.
-1.167S,  166162833.,  201366579.
+1.5S,166750845.,202088412.
+1.167S,166162833.,201366579.
  
 ! small number formatting test
 set region/i=95:96/j=41:42/k=2/l=5
@@ -12293,8 +12346,10 @@ LIST/FORMAT=comma/precision=5 10*j+i
 2,21,22,23,24,25
 3,31,32,33,34,35
  
-GO bn_reset
+GO bn_reset bn_dynamic_grids
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dynamic_grids
 GO bn_dynamic_grids	! added 9/27/95, V420 ->V491 4/98
 ! bn420_dynamic_grids
 ! 9/95-9/11/95 - test the creation, destruction, and use of dynamic grids
@@ -12330,10 +12385,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
  
 set mode ignore_errors
@@ -12381,10 +12432,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 list temp[gx=psyu]		! err during get_context_grid - axis mismatch
 show grid/dynamic
@@ -12425,10 +12472,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 let  tu = temp[gx=noexist]
 list tu				! err during get_context_mods
@@ -12472,10 +12515,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 let  tu = temp[gx=psyu]
 list tu				! err during get_context_grid - axis mismatch
@@ -12495,6 +12534,11 @@ let save_mem = ($ferret_memory)
 set mem/siz = 10
  
 list temp[gz=z999999,z=5:15]	! err during regrid
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 10 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 50 (5.E-04%)
+    The size of the requested object was: : 24999975 (250%)
 show grid/dynamic
 Dynamic grids:
     GRID (G004)                          use count:   1
@@ -12503,10 +12547,6 @@ Dynamic grids:
  PSYT      LATITUDE           100 i   28.836S              48.568N
  Z999999   DEPTH (m)       999999 r-  5                    15
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
 set mem/siz=`save_mem`
  !-> set mem/siz=25.6
  
@@ -12519,10 +12559,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 set mode/last ignore
  
@@ -12551,10 +12587,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 list temp[gy=psyu]
              VARIABLE : TEMPERATURE (deg. C)
@@ -12593,13 +12625,10 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 list temp[gx=w]
              VARIABLE : TEMPERATURE (deg. C)
+                        regrid: TEMP
              FILENAME : gtsa056_1.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
              DEPTH (m): 5
@@ -12633,10 +12662,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 list  5 + temp[gx=psxu]
              VARIABLE : 5 + TEMP[GX=PSXU]
@@ -12659,10 +12684,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 let tu = temp[gx=psxu]
 list tu
@@ -12686,10 +12707,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
 show grid tu
     GRID (G004)
  name       axis              # pts   start                end                 subset
@@ -12697,8 +12714,6 @@ show grid tu
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00   full
- normal    E
- normal    F
  
 let tu = temp[gx=psxu] + 5
 list tu
@@ -12722,10 +12737,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
  
 ! implicit grid conformability
@@ -12801,10 +12812,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 ! regridding between grids with mutually exclusive axes
 cancel region
@@ -13013,20 +13020,6 @@ Dynamic grids:
  (AX002)   Y                    3 r   95                   109
  normal    Z
  normal    T
- normal    E
- normal    F
-    GRID (G004)                          use count:   1
- name       axis              # pts   start                end
- (AX009)   X                    7 r   0.1                  9.1
- (AX004)   Y                   10 r   101                  110
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX002)                         use count:   1
-    AXIS (AX009)                         use count:   2
-    AXIS (AX004)                         use count:   1
  
 ! ambiguous coordinate tests
 list/order=x  x[x=0.1:10:1.5] +  x[x=1.1:11:1.5]
@@ -13050,10 +13043,6 @@ Dynamic grids:
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX002)                         use count:   1
  
 ! box size on dynamic axes
 cancel region
@@ -13080,12 +13069,10 @@ show grid/x
  Last successful data access was on grid (G004)
     GRID (G004)
  name       axis              # pts   start                end                 subset
- (AX009)   X                    5 i   1                    6561                4 pts
+ (AX009)   X                    5 i   1                    6561                5 pts
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     280        -59
@@ -13160,10 +13147,6 @@ Dynamic grids:
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX009)                         use count:   1
  
 ! this expression does NOT inherit the X axis -- the result is
 !	i) ambiguous X axis coordinates
@@ -13189,19 +13172,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-    GRID (G004)                          use count:   1
- name       axis              # pts   start                end
- (AX009)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX002)                         use count:   1
-    AXIS (AX009)                         use count:   1
  
 list/j=46:50/l=1/k=1 temp[i=101:120:4]+x[g=temp,i=101:120:4]
              VARIABLE : TEMP[I=101:120:4]+X[G=TEMP,I=101:120:4]
@@ -13273,19 +13243,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-    GRID (G004)                          use count:   1
- name       axis              # pts   start                end
- (AX009)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX002)                         use count:   1
-    AXIS (AX009)                         use count:   1
  
 ! regular dynamic axis
 ! ... by subscript
@@ -13356,19 +13313,6 @@ Dynamic grids:
  (AX002)   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
- normal    E
- normal    F
-    GRID (G004)                          use count:   1
- name       axis              # pts   start                end
- (AX009)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX002)                         use count:   1
-    AXIS (AX009)                         use count:   1
  
 ! ========
 ! 2/96: repeat the very same commands using GX=lo:hi:delta notation
@@ -13534,20 +13478,6 @@ Dynamic grids:
  (AX004)   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
- normal    E
- normal    F
-    GRID (G004)                          use count:   1
- name       axis              # pts   start                end
- (AX009)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX004)                         use count:   1
-    AXIS (AX012)                         use count:   1
-    AXIS (AX009)                         use count:   1
  
 ! the same tests but now on a nested definition
 ! regular dynamic axis
@@ -13719,19 +13649,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-    GRID (G004)                          use count:   1
- name       axis              # pts   start                end
- (AX012)   LONGITUDE            4 r   130W                 121W
- 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
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX004)                         use count:   1
-    AXIS (AX012)                         use count:   1
  
 ! irregular dynamic axis
 ! ... by subscript
@@ -13873,19 +13790,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-    GRID (G004)                          use count:   1
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- (AX009)   LATITUDE             6 r   3.5S                 4N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX012)                         use count:   1
-    AXIS (AX009)                         use count:   1
  
 ! nested modulo (the dynamic axis is **NOT** modulo)
 ! ... by subscript
@@ -14071,19 +13975,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-    GRID (G004)                          use count:   1
- name       axis              # pts   start                end
- (AX004)   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
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX009)                         use count:   1
-    AXIS (AX004)                         use count:   1
  
 ! calendar axes
 list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]   ! 6-day ave
@@ -14131,8 +14022,10 @@ set axis/modulo psxt
  
 set mode/last diag
  
-GO bn_reset
+GO bn_reset bn_cdf
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cdf
 GO bn_cdf
 ! bn320_cdf
 ! benchmark to test netCDF input and output
@@ -14180,8 +14073,8 @@ set data/format=cdf test0a, test0b, test0c, test0d, test0e, test0f, test0g, test
 show data 1
      currently SET data sets:
     1> ./test0a.cdf
- name     title                             I         J         K         L         M         N
- L_       L                                ...       ...       ...       1:500     ...       ...
+ name     title                             I         J         K         L
+ L_       L                                ...       ...       ...       1:500
        (axis ABSTRACT)
  
 show data/br
@@ -14336,78 +14229,78 @@ show data/full
      currently SET data sets:
     1> ./test_abs.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       I                                1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       I                                1:10      ...       ...       ...
                on grid GEU1 with -1.E+34 for missing data
              X=0.5:10.5  
- J1       J                                ...       1:20      ...       ...       ...       ...
+ J1       J                                ...       1:20      ...       ...
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- K1       K                                ...       ...       1:100     ...       ...       ...
+ K1       K                                ...       ...       1:100     ...
                on grid GEU3 with -1.E+34 for missing data
              Z=0.5:100.5  
- L1       L[G=GCENTURY]                    ...       ...       ...       1:12      ...       ...
+ L1       L[G=GCENTURY]                    ...       ...       ...       1:12
                on grid GEU4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:10      ...       ...
+ L2       L                                ...       ...       ...       1:10
                on grid GEU5 with -1.E+34 for missing data
              
- IJ       I+J                              1:10      1:20      ...       ...       ...       ...
+ IJ       I+J                              1:10      1:20      ...       ...
                on grid GEU6 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IK       I+K                              1:10      ...       1:100     ...       ...       ...
+ IK       I+K                              1:10      ...       1:100     ...
                on grid GEU7 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IL       I+L1                             1:10      ...       ...       1:12      ...       ...
+ IL       I+L1                             1:10      ...       ...       1:12
                on grid GEU8 with -1.E+34 for missing data
              X=0.5:10.5  
- JK       J+K                              ...       1:20      1:100     ...       ...       ...
+ JK       J+K                              ...       1:20      1:100     ...
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJK      I+J+K                            1:10      1:20      1:100     ...       ...       ...
+ IJK      I+J+K                            1:10      1:20      1:100     ...
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IKL      I+K+L1                           1:10      ...       1:100     1:12      ...       ...
+ IKL      I+K+L1                           1:10      ...       1:100     1:12
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJL      I+J+L1                           1:10      1:20      ...       1:12      ...       ...
+ IJL      I+J+L1                           1:10      1:20      ...       1:12
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- JKL      J+K+L1                           ...       1:20      1:100     1:12      ...       ...
+ JKL      J+K+L1                           ...       1:20      1:100     1:12
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJKL     I+J+K+L1                         1:10      1:20      1:100     1:12      ...       ...
+ IJKL     I+J+K+L1                         1:10      1:20      1:100     1:12
                on grid GEU14 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IJK2     I+J+K                            ...       1:20      1:100     ...       ...       ...
+ IJK2     I+J+K                            ...       1:20      1:100     ...
        (X=0.5:10.5 at AVE)
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IKL2     I+K+L1                           ...       ...       1:100     1:12      ...       ...
+ IKL2     I+K+L1                           ...       ...       1:100     1:12
        (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
                on grid GEU15 with -1.E+34 for missing data
              Z=0.5:100.5  
- IJL2     I+J+L1                           ...       ...       ...       1:12      ...       ...
+ IJL2     I+J+L1                           ...       ...       ...       1:12
        (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
                on grid GEU4 with -1.E+34 for missing data
              
- JKL2     J+K+L1                           ...       1:20      ...       ...       ...       ...
+ JKL2     J+K+L1                           ...       1:20      ...       ...
        (Z=0.5:100.5 at AV4, T=03-JAN-1902 12:00:08-JAN-1902 12:00 at AV4)
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:12      ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:12
        (X=0.5:10.5)
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:12      ...       ...
+ IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:12
        (Y=0.5:20.5)
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:12      ...       ...
+ IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:12
        (Z=0.5:100.5)
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...
        (T=03-JAN-1902 12:00:08-JAN-1902 12:00)
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
@@ -14422,8 +14315,6 @@ show grid ijkl
  YAX1_20   Y                   20 r   1                    20                  full
  ZAX1_100  Z                  100 r   1                    100                 full
  TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00   full
- normal    E
- normal    F
 cancel data test_abs
  
 ! make the time axis irregular by leaving out l=13
@@ -14433,78 +14324,78 @@ show data/full
      currently SET data sets:
     1> ./test_abs.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       I                                1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       I                                1:10      ...       ...       ...
                on grid GEU1 with -1.E+34 for missing data
              X=0.5:10.5  
- J1       J                                ...       1:20      ...       ...       ...       ...
+ J1       J                                ...       1:20      ...       ...
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- K1       K                                ...       ...       1:100     ...       ...       ...
+ K1       K                                ...       ...       1:100     ...
                on grid GEU3 with -1.E+34 for missing data
              Z=0.5:100.5  
- L1       L[G=GCENTURY]                    ...       ...       ...       1:15      ...       ...
+ L1       L[G=GCENTURY]                    ...       ...       ...       1:15
                on grid GEU4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:10      ...       ...
+ L2       L                                ...       ...       ...       1:10
                on grid GEU5 with -1.E+34 for missing data
              
- IJ       I+J                              1:10      1:20      ...       ...       ...       ...
+ IJ       I+J                              1:10      1:20      ...       ...
                on grid GEU6 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IK       I+K                              1:10      ...       1:100     ...       ...       ...
+ IK       I+K                              1:10      ...       1:100     ...
                on grid GEU7 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IL       I+L1                             1:10      ...       ...       1:15      ...       ...
+ IL       I+L1                             1:10      ...       ...       1:15
                on grid GEU8 with -1.E+34 for missing data
              X=0.5:10.5  
- JK       J+K                              ...       1:20      1:100     ...       ...       ...
+ JK       J+K                              ...       1:20      1:100     ...
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJK      I+J+K                            1:10      1:20      1:100     ...       ...       ...
+ IJK      I+J+K                            1:10      1:20      1:100     ...
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IKL      I+K+L1                           1:10      ...       1:100     1:15      ...       ...
+ IKL      I+K+L1                           1:10      ...       1:100     1:15
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJL      I+J+L1                           1:10      1:20      ...       1:15      ...       ...
+ IJL      I+J+L1                           1:10      1:20      ...       1:15
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- JKL      J+K+L1                           ...       1:20      1:100     1:15      ...       ...
+ JKL      J+K+L1                           ...       1:20      1:100     1:15
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJKL     I+J+K+L1                         1:10      1:20      1:100     1:15      ...       ...
+ IJKL     I+J+K+L1                         1:10      1:20      1:100     1:15
                on grid GEU14 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IJK2     I+J+K                            ...       1:20      1:100     ...       ...       ...
+ IJK2     I+J+K                            ...       1:20      1:100     ...
        (X=0.5:10.5 at AVE)
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IKL2     I+K+L1                           ...       ...       1:100     1:15      ...       ...
+ IKL2     I+K+L1                           ...       ...       1:100     1:15
        (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
                on grid GEU15 with -1.E+34 for missing data
              Z=0.5:100.5  
- IJL2     I+J+L1                           ...       ...       ...       1:15      ...       ...
+ IJL2     I+J+L1                           ...       ...       ...       1:15
        (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
                on grid GEU4 with -1.E+34 for missing data
              
- JKL2     J+K+L1                           ...       1:20      ...       ...       ...       ...
+ JKL2     J+K+L1                           ...       1:20      ...       ...
        (Z=0.5:100.5 at AV4, T=03-JAN-1902 12:00:08-JAN-1902 12:00 at AV4)
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:15      ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:15
        (X=0.5:10.5)
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:15      ...       ...
+ IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:15
        (Y=0.5:20.5)
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:15      ...       ...
+ IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:15
        (Z=0.5:100.5)
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...
        (T=03-JAN-1902 12:00:08-JAN-1902 12:00)
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
@@ -14518,8 +14409,6 @@ show grid ijkl
  YAX1_20   Y                   20 r   1                    20                  full
  ZAX1_100  Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
  
  
 ! list long time series using a rigid (non-record axis) time axis --> FAST
@@ -14553,40 +14442,30 @@ show grid j1 jkl jkl2 iavejkl ijkl
  YAX1_20   Y                   20 r   1                    20                  full
  normal    Z
  normal    T
- normal    E
- normal    F
     GRID GEU13
  name       axis              # pts   start                end                 subset
  normal    X
  YAX1_20   Y                   20 r   1                    20                  full
  ZAX1_100  Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
     GRID GEU2
  name       axis              # pts   start                end                 subset
  normal    X
  YAX1_20   Y                   20 r   1                    20                  full
  normal    Z
  normal    T
- normal    E
- normal    F
     GRID GEU13
  name       axis              # pts   start                end                 subset
  normal    X
  YAX1_20   Y                   20 r   1                    20                  full
  ZAX1_100  Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
     GRID GEU14
  name       axis              # pts   start                end                 subset
  XAX1_10   X                   10 r   1                    10                  full
  YAX1_20   Y                   20 r   1                    20                  full
  ZAX1_100  Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
 cancel data test_abs
  
 ! test TMAP data io
@@ -14670,29 +14549,29 @@ show data/full
      currently SET data sets:
     1> ./gtbc011.cdf
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.84S:51.43N  
  
@@ -14700,67 +14579,67 @@ show data/full
  
     2> ./test_fil0.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...
                on grid PS3DT1_NYZT with -1.E+34 for missing data
              X=130E:140E  
- J1       Y[G=TEMP,J=5:10]                 ...       5:10      ...       ...       ...       ...
+ J1       Y[G=TEMP,J=5:10]                 ...       5:10      ...       ...
                on grid PS3DT1_NXZT with -1.E+34 for missing data
              Y=21.11S:12.52S  
- K1       Z[G=U,K=5:15]                    ...       ...       5:15      ...       ...       ...
+ K1       Z[G=U,K=5:15]                    ...       ...       5:15      ...
                on grid PS3DU1_NXYT with -1.E+34 for missing data
              Z=40:190  
- L1       L[G=U,L=1:3]                     ...       ...       ...       1:3       ...       ...
+ L1       L[G=U,L=1:3]                     ...       ...       ...       1:3
                on grid GRH1 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:2       ...       ...
+ L2       L                                ...       ...       ...       1:2
                on grid GRH2 with -1.E+34 for missing data
              
- IJ       TAUX[L=@AVE]                    69:71      1:100     ...       ...       ...       ...
+ IJ       TAUX[L=@AVE]                    69:71      1:100     ...       ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid PS2DU1_NT with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- IK       I1+K1                            1:10      ...       5:15      ...       ...       ...
+ IK       I1+K1                            1:10      ...       5:15      ...
                on grid G016_NYT with -1.E+34 for missing data
              X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
+ IL       I1+L1                            1:10      ...       ...       1:3
                on grid G016_NYZ with -1.E+34 for missing data
              X=130E:140E  
- JK       J1+K1                            ...       5:10      5:15      ...       ...       ...
+ JK       J1+K1                            ...       5:10      5:15      ...
                on grid G008_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      ...       ...       ...
+ IJK      TEMP[L=@AVE]                    70:72      1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid PS3DT1_NT with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- IKL      TEMP[J=@AVE]                    70:72      ...       1:27      1:3       ...       ...
+ IKL      TEMP[J=@AVE]                    70:72      ...       1:27      1:3
        (Y=30S:50N)
                on grid PS3DT1_NY with -1.E+34 for missing data
              X=161W:158W  Z=0:4149  
- IJL      TEMP[K=@AVE]                    70:72      1:100     ...       1:3       ...       ...
+ IJL      TEMP[K=@AVE]                    70:72      1:100     ...       1:3
        (Z=0:4149)
                on grid PS3DT1_NZ with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  
- JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130E:70W)
                on grid GRH3 with -1.E+34 for missing data
              Y=30S:50N  Z=0:4149  
- IJKL     U                               69:72      1:100     1:27      1:3       ...       ...
+ IJKL     U                               69:72      1:100     1:27      1:3
                on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130.5E:69.5W)
                on grid GRH4 with -1.E+34 for missing data
              Y=28.84S:51.43N  Z=0:4149  
- IJAVEKL  IJKL[J=@AVE]                    69:72      ...       1:27      1:3       ...       ...
+ IJAVEKL  IJKL[J=@AVE]                    69:72      ...       1:27      1:3
        (Y=28.84S:51.43N)
                on grid PS3DU1_NY with -1.E+34 for missing data
              X=161.5W:157.5W  Z=0:4149  
- IJKAVEL  IJKL[K=@AVE]                    69:72      1:100     ...       1:3       ...       ...
+ IJKAVEL  IJKL[K=@AVE]                    69:72      1:100     ...       1:3
        (Z=0:4149)
                on grid PS3DU1_NZ with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  
- IJKLAVE  IJKL[L=@AVE]                    69:72      1:100     1:27      ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                    69:72      1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid PS3DU1_NT with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
@@ -14775,8 +14654,6 @@ show grid ijkl
  PSYU      LATITUDE           100 i   27.672S              50N                 full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
- normal    E
- normal    F
 cancel data test_fil0
 ! 5/99 moved old bn230_cdf.sub3 to bn_cdf.sub4 to stay inline w/ old benchmarks *kob*
 GO bn_cdf.sub4
@@ -14860,29 +14737,29 @@ show data/full
      currently SET data sets:
     1> ./gtbc011.cdf
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.84S:51.43N  
  
@@ -14890,67 +14767,67 @@ show data/full
  
     2> ./test_fil.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...
                on grid GLZ1 with -1.E+34 for missing data
              X=130E:140E  
- J1       Y[G=TEMP,J=5:10]                 ...       1:6       ...       ...       ...       ...
+ J1       Y[G=TEMP,J=5:10]                 ...       1:6       ...       ...
                on grid GLZ2 with -1.E+34 for missing data
              Y=21.11S:12.52S  
- K1       Z[G=U,K=5:15]                    ...       ...       1:11      ...       ...       ...
+ K1       Z[G=U,K=5:15]                    ...       ...       1:11      ...
                on grid GLZ3 with -1.E+34 for missing data
              Z=40:190  
- L1       L[G=U,L=1:3]                     ...       ...       ...       1:3       ...       ...
+ L1       L[G=U,L=1:3]                     ...       ...       ...       1:3
                on grid GLZ4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:2       ...       ...
+ L2       L                                ...       ...       ...       1:2
                on grid GLZ5 with -1.E+34 for missing data
              
- IJ       TAUX[L=@AVE]                     1:3       1:100     ...       ...       ...       ...
+ IJ       TAUX[L=@AVE]                     1:3       1:100     ...       ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid GLZ6 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- IK       I1+K1                            1:10      ...       1:11      ...       ...       ...
+ IK       I1+K1                            1:10      ...       1:11      ...
                on grid GLZ7 with -1.E+34 for missing data
              X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
+ IL       I1+L1                            1:10      ...       ...       1:3
                on grid GLZ8 with -1.E+34 for missing data
              X=130E:140E  
- JK       J1+K1                            ...       1:6       1:11      ...       ...       ...
+ JK       J1+K1                            ...       1:6       1:11      ...
                on grid GLZ9 with -1.E+34 for missing data
              Y=21.11S:12.52S  Z=40:190  
- IJK      TEMP[L=@AVE]                     1:3       1:100     1:27      ...       ...       ...
+ IJK      TEMP[L=@AVE]                     1:3       1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid GLZ10 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- IKL      TEMP[J=@AVE]                     1:3       ...       1:27      1:3       ...       ...
+ IKL      TEMP[J=@AVE]                     1:3       ...       1:27      1:3
        (Y=30S:50N)
                on grid GLZ11 with -1.E+34 for missing data
              X=161W:158W  Z=0:4149  
- IJL      TEMP[K=@AVE]                     1:3       1:100     ...       1:3       ...       ...
+ IJL      TEMP[K=@AVE]                     1:3       1:100     ...       1:3
        (Z=0:4149)
                on grid GLZ12 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  
- JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130E:70W)
                on grid GLZ13 with -1.E+34 for missing data
              Y=30S:50N  Z=0:4149  
- IJKL     U                                1:4       1:100     1:27      1:3       ...       ...
+ IJKL     U                                1:4       1:100     1:27      1:3
                on grid GLZ14 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130.5E:69.5W)
                on grid GLZ15 with -1.E+34 for missing data
              Y=28.84S:51.43N  Z=0:4149  
- IJAVEKL  IJKL[J=@AVE]                     1:4       ...       1:27      1:3       ...       ...
+ IJAVEKL  IJKL[J=@AVE]                     1:4       ...       1:27      1:3
        (Y=28.84S:51.43N)
                on grid GLZ16 with -1.E+34 for missing data
              X=161.5W:157.5W  Z=0:4149  
- IJKAVEL  IJKL[K=@AVE]                     1:4       1:100     ...       1:3       ...       ...
+ IJKAVEL  IJKL[K=@AVE]                     1:4       1:100     ...       1:3
        (Z=0:4149)
                on grid GLZ17 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  
- IJKLAVE  IJKL[L=@AVE]                     1:4       1:100     1:27      ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                     1:4       1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid GLZ18 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
@@ -14965,8 +14842,6 @@ show grid ijkl
  PSYU      LATITUDE           100 i   27.672S              50N                 full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
- normal    E
- normal    F
 cancel data test_fil
 GO bn_cdf_reversed.sub
 ! bn320_cdf_reversed.sub
@@ -14983,15 +14858,15 @@ show data/var
      currently SET data sets:
     1> ./reverse_axes.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...
                on grid GAF1 with -1.E+34 for missing data
              X=129.5E:179.5W  Y=10.5S:10.5N  
- FCN_REV  COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...       ...       ...
+ FCN_REV  COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...
                on grid GAF2 with -1.E+34 for missing data
              X=129.5E:179.5W  Y=10.5S:10.5N  
  FCN_REV_SUB
-          COS(X/10)*SIN(Y/2)               1:51     10:19      ...       ...       ...       ...
+          COS(X/10)*SIN(Y/2)               1:51     10:19      ...       ...
                on grid GREV with -1.E+34 for missing data
              X=129.5E:179.5W  Y=1.5S:8.5N  
  
@@ -15042,8 +14917,10 @@ list/x=180 fcn_rev_sub
  0    / 11:  0.000000
  1S   / 10:  0.316573
  
-GO bn_reset
+GO bn_reset bn_regrid_transforms
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regrid_transforms
 GO bn_regrid_transforms
 ! bn500_regrid_transforms
 ! benchmark to test regridding transformations and syntax
@@ -15074,15 +14951,15 @@ set mode diag
 define axis/t=15-jan-1982:15-mar-1984:120/unit=hour tax5day
 define axis/x=120e:60w:10/unit=degrees xax10
 define grid/like=u/t=tax5day g5day
- getgrid EX#1     C:  6 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ getgrid EX#1     C:  6 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
 define grid/like=u/x=xax10/z=w/t=tax5day g5_10
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  8 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DW11         PSXT1     PSYT      PSZW      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ getgrid EX#1     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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ getgrid EX#1     C:  8 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DW11         PSXT1     PSYT      PSZW      TIME1
  
 set reg/x=130w:125w/y=0:1.5/z=0:15/t=21-JAN-1982:24-jan-1982
 !set reg/i=101:105/j=41:42/k=1:2/l=3:4
@@ -15092,111 +14969,97 @@ use gtsa056_1    	!kob 4/99
 ! deliberate errors
 set mode ignore
 load temp[g=@lin]    ! no target grid specified
- dealloc  dynamic grid PS3DW11         PSXT1     PSYT      PSZW      TIME1     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 PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- reading TEMP     M: 57 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DW11         PSXT1     PSYT      PSZW      TIME1
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
+ reading TEMP     M:120 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
 load temp[gx=@ave]   ! no target grid specified
- dealloc  dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     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 PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- reading TEMP     M: 55 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DT2          PSXT1     PSYT      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 PS3DT2          PSXT1     PSYT      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
+ found   TEMP     M:120 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
 load temp[g=u,g=w]   ! more than 1 target grid
- dealloc  dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     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
+ dealloc  dynamic grid PS3DT2          PSXT1     PSYT      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
 load temp[g=x]       ! g=user-or-pseudo-var not allowed
- getgrid 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 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
 set mode/last ignore
  
 ! valid syntax tests
 load temp
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- reading TEMP     M: 45 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  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 PS3DT2          PSXT1     PSYT      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
+ found   TEMP     M:120 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
 load temp[g=u]
- dealloc  dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DT2          PSXT1     PSYT      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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 43 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ reading TEMP     M:116 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
  regrid XY
- regrid  TEMP     M: 40 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:114 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
 load temp[g=u at lin]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 36 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 34 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ found   TEMP     M:114 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
 load temp[g=u at ave,gy=@asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @AVE
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M: 33 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 31 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 30 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 31 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ found   TEMP     M:116 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
+ regrid  TEMP     M:113 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M:112 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M:113 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
 load temp[g=u at lin,gy=@asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @LIN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M: 31 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 28 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 25 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 28 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ found   TEMP     M:116 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
+ regrid  TEMP     M:113 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M:108 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M:113 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
 load temp[g=u,gx=@ave,gy=@asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @AVE
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M: 28 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 22 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 22 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ found   TEMP     M:112 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
 load temp[gx=u]  		! changed V4.20 --> implicit regrid
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
+ 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
+ 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
- reading TEMP     M: 22 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 16 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M:116 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
+ regrid  TEMP     M:113 dset:   1 I:    100    105  J:   45   50  K:    1    2  L:      3      4
+ dealloc  dynamic grid (G009)          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     NORMAL    NORMAL
- -DELETE TEMP     M: 16 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 16 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 14 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 12 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 11 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2
+ -DELETE TEMP     M:113 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
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ found   TEMP     M:114 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:114 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  
              TEMP[G=U] - TEMP[G=U at AVE,GX=U at LIN,GY=U at LIN,GZ=U at LIN,GT=U at LIN]
              LONGITUDE: 130W to 125W
@@ -15214,23 +15077,18 @@ 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
  Mean    value: 0 (unweighted average)
  Standard deviation: 0
 stat temp[g=u,gx=@ave] - temp[gx=@ave,g=u]    ! == 0
- -DELETE EX#1     M: 10 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M:113 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M: 10 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  7 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 53 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  7 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @AVE
- strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M:  7 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 27 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 24 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 27 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ found   TEMP     M:116 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
+ regrid  TEMP     M:113 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M:107 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M:113 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
+ found   TEMP     M:107 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  
              TEMP[G=U,GX=@AVE] - TEMP[GX=@AVE,G=U]
              LONGITUDE: 130W to 125W
@@ -15250,15 +15108,15 @@ stat temp[g=u,gx=@ave] - temp[gx=@ave,g=u]    ! == 0
  
 ! basic regrid tests
 LIST temp[g=u at ave]
- -DELETE EX#1     M: 27 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M:113 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @AAV
- reading TEMP     M: 27 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ found   TEMP     M:116 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
  regrid XY
- regrid  TEMP     M: 49 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:113 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at AAV, on Y at AAV
              FILENAME : gtsa056_1.cdf
@@ -15292,20 +15150,15 @@ LIST temp[g=u at ave]
  0.33N / 46:  23.5511  23.5410  23.6056  23.8149  24.1179  24.2970
  0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
 LIST temp[g=u,gx=u at ave]	! V4.20 mod
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @AVE
- strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M: 18 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 48 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 23 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 48 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:107 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at AVE, on Y at LIN
              FILENAME : gtsa056_1.cdf
@@ -15339,20 +15192,20 @@ LIST temp[g=u,gx=u at ave]	! V4.20 mod
  0.33N / 46:  23.5511  23.5410  23.6056  23.8149  24.1179  24.2970
  0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
 LIST temp[g=u,gy=u at ave]	! V4.20 mod
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
- reading TEMP     M: 48 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  6 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 39 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  6 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M:116 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
+ regrid  TEMP     M: 90 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M: 85 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M: 90 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at LIN, on Y at AVE
              FILENAME : gtsa056_1.cdf
@@ -15386,18 +15239,15 @@ LIST temp[g=u,gy=u at ave]	! V4.20 mod
  0.33N / 46:  23.5511  23.5410  23.6056  23.8149  24.1179  24.2970
  0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
 LIST temp[g=u,gz=u at ave]	! V4.20 mod
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M:  6 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 15 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:114 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15431,18 +15281,15 @@ LIST temp[g=u,gz=u at ave]	! V4.20 mod
  0.33N / 46:  23.5511  23.5410  23.6056  23.8149  24.1179  24.2970
  0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
 LIST temp[g=u,gt=u at ave]	! V4.20 mod, etc --> many more similar syntax chgs
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 37 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 32 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:114 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15477,14 +15324,11 @@ LIST temp[g=u,gt=u at ave]	! V4.20 mod, etc --> many more similar syntax chgs
  0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
  
 LIST temp[g=u]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 19 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 13 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ found   TEMP     M:114 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15518,16 +15362,16 @@ LIST temp[g=u]
  0.33N / 46:  23.5511  23.5410  23.6056  23.8149  24.1179  24.2970
  0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
 LIST temp[g=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  1 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 26 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  1 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ found   TEMP     M:116 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
+ regrid  TEMP     M: 90 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M: 77 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M: 90 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at ASN, on Y at ASN
              FILENAME : gtsa056_1.cdf
@@ -15561,20 +15405,20 @@ LIST temp[g=u at asn]
  0.33N / 46:  23.5385  23.4834  23.4619  23.5233  23.7598  24.0491
  0     / 45:  23.6210  23.5135  23.4199  23.3768  23.4767  23.6893
 LIST temp[g=u,gx=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M:  1 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 52 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 29 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 52 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M:116 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
+ regrid  TEMP     M: 90 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M: 74 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M: 90 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at ASN, on Y at LIN
              FILENAME : gtsa056_1.cdf
@@ -15608,20 +15452,15 @@ LIST temp[g=u,gx=u at asn]
  0.33N / 46:  23.5668  23.5355  23.5465  23.6647  23.9652  24.2706
  0     / 45:  23.5798  23.4985  23.4409  23.4500  23.6182  23.8692
 LIST temp[g=u,gy=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M: 52 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 20 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 56 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 20 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:108 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at LIN, on Y at ASN
              FILENAME : gtsa056_1.cdf
@@ -15655,18 +15494,15 @@ LIST temp[g=u,gy=u at asn]
  0.33N / 46:  23.5110  23.4726  23.4926  23.6415  23.9044  24.0873
  0     / 45:  23.5673  23.4667  23.3983  23.4267  23.5830  23.7431
 LIST temp[g=u,gz=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 20 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 51 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:114 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15700,18 +15536,15 @@ LIST temp[g=u,gz=u at asn]
  0.33N / 46:  23.5511  23.5410  23.6056  23.8149  24.1179  24.2970
  0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
 LIST temp[g=u,gt=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 44 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 42 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:114 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15747,16 +15580,16 @@ LIST temp[g=u,gt=u at asn]
  
 ! Z and T axes different
 LIST temp[g=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ 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
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- reading TEMP     M: 41 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 38 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 90 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 58 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
  regrid XY
- regrid  TEMP     M: 35 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 38 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 15 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 58 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at AAV, on Y at AAV, on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -15790,19 +15623,19 @@ LIST temp[g=g5day at ave]
  0.33N / 46:  23.5623  23.5678  23.6554  23.8652  24.1261  24.2599
  0     / 45:  23.5376  23.4796  23.4768  23.5746  23.7580  23.8929
 LIST temp[g=g5day,gx=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 35 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  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
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ -DELETE TEMP     M: 15 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> YNTERMED         @LIN
- reading TEMP     M: 35 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 38 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  9 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 38 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 38 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  9 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 90 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 15 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 58 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 15 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 15 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 58 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at AVE, on Y at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -15836,18 +15669,18 @@ LIST temp[g=g5day,gx=g5day at ave]
  0.33N / 46:  23.5565  23.5539  23.6318  23.8486  24.1393  24.2949
  0     / 45:  23.5390  23.4739  23.4601  23.5581  23.7626  23.9173
 LIST temp[g=g5day,gy=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> YNTERMED         @LIN
- reading TEMP     M:  9 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  5 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  8 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  5 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 90 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 58 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M:110 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 58 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 58 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M:110 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at LIN, on Y at AVE, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -15881,16 +15714,16 @@ LIST temp[g=g5day,gy=g5day at ave]
  0.33N / 46:  23.5565  23.5539  23.6318  23.8486  24.1393  24.2949
  0     / 45:  23.5390  23.4739  23.4601  23.5581  23.7626  23.9173
 LIST temp[g=g5day,gz=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
- reading TEMP     M:  5 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 90 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M:110 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
  regrid XY
- regrid  TEMP     M: 47 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 41 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M:110 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY
              FILENAME : gtsa056_1.cdf
@@ -15924,16 +15757,16 @@ LIST temp[g=g5day,gz=g5day at ave]
  0.33N / 46:  23.5565  23.5539  23.6318  23.8486  24.1393  24.2949
  0     / 45:  23.5390  23.4739  23.4601  23.5581  23.7626  23.9173
 LIST temp[g=g5day,gt=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @AVE
- reading TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 17 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 90 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M:110 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
  regrid XY
- regrid  TEMP     M:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 17 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 31 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M:110 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at LIN, on Y at LIN, on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -15968,16 +15801,10 @@ LIST temp[g=g5day,gt=g5day at ave]
  0     / 45:  23.5376  23.4796  23.4768  23.5746  23.7580  23.8929
  
 LIST temp[g=g5day]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @LIN
- strip regrid on T: TEMP --> XNTERMED         @LIN
- reading TEMP     M: 17 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 46 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 50 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 46 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
+ found   TEMP     M: 41 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY
              FILENAME : gtsa056_1.cdf
@@ -16011,18 +15838,18 @@ LIST temp[g=g5day]
  0.33N / 46:  23.5565  23.5539  23.6318  23.8486  24.1393  24.2949
  0     / 45:  23.5390  23.4739  23.4601  23.5581  23.7626  23.9173
 LIST temp[g=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on T: TEMP --> YNTERMED         @ASN
- reading TEMP     M: 46 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 54 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 58 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 54 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 54 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 58 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 90 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M:110 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ regrid  TEMP     M: 98 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M:110 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:110 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 98 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at ASN, on Y at ASN, on T at ASN
              FILENAME : gtsa056_1.cdf
@@ -16056,18 +15883,18 @@ LIST temp[g=g5day at asn]
  0.33N / 46:  23.5242  23.4660  23.4157  23.3749  23.4550  23.7312
  0     / 45:  23.6083  23.5263  23.4345  23.3357  23.3000  23.4491
 LIST temp[g=g5day,gx=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> YNTERMED         @LIN
- reading TEMP     M: 58 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 59 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 60 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 59 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 59 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 60 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 90 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 98 dset:   1 I:    100    105  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 94 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 98 dset:   1 I:    100    105  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 98 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 94 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at ASN, on Y at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16101,18 +15928,18 @@ LIST temp[g=g5day,gx=g5day at asn]
  0.33N / 46:  23.5701  23.5428  23.5650  23.6985  23.9987  24.2798
  0     / 45:  23.5791  23.4988  23.4489  23.4714  23.6448  23.8804
 LIST temp[g=g5day,gy=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on T: TEMP --> YNTERMED         @LIN
- reading TEMP     M: 60 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 61 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 62 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 61 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 61 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 62 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 90 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 94 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3
+ regrid  TEMP     M: 91 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 94 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 94 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 91 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at LIN, on Y at ASN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16146,16 +15973,10 @@ LIST temp[g=g5day,gy=g5day at asn]
  0.33N / 46:  23.5136  23.4812  23.5130  23.6709  23.9254  24.0877
  0     / 45:  23.5643  23.4665  23.4073  23.4453  23.5998  23.7470
 LIST temp[g=g5day,gz=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @LIN
- strip regrid on T: TEMP --> XNTERMED         @LIN
- reading TEMP     M: 62 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 63 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 64 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 63 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
+ found   TEMP     M: 41 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY
              FILENAME : gtsa056_1.cdf
@@ -16189,16 +16010,16 @@ LIST temp[g=g5day,gz=g5day at asn]
  0.33N / 46:  23.5565  23.5539  23.6318  23.8486  24.1393  24.2949
  0     / 45:  23.5390  23.4739  23.4601  23.5581  23.7626  23.9173
 LIST temp[g=g5day,gt=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @ASN
- reading TEMP     M: 63 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 65 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 90 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 91 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
  regrid XY
- regrid  TEMP     M: 66 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 65 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 75 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 91 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at LIN, on Y at LIN, on T at ASN
              FILENAME : gtsa056_1.cdf
@@ -16234,19 +16055,19 @@ LIST temp[g=g5day,gt=g5day at asn]
  
 ! all 4 axes different
 LIST temp[g=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M: 65 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 67 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 68 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 67 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 91 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 68 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 37 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 68 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 67 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 68 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 68 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 37 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at AAV, on Y at AAV, on Z at AVE, on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -16258,22 +16079,22 @@ LIST temp[g=g5_10 at ave]
  20-JAN-1982 00 / 2:  23.8829  23.9742  24.1489  24.3750  24.6256
  25-JAN-1982 00 / 3:  23.8850  23.9834  24.1657  24.3983  24.6503
 LIST temp[g=g5_10,gx=g5_10 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 67 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  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
- eval    EX#1     C:  4 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ -DELETE TEMP     M: 68 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 67 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 68 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 69 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 68 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 68 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 69 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 69 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 68 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 91 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 68 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 37 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 68 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 68 dset:   1 I:     95    106  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 37 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 37 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 68 dset:   1 I:     95    106  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at AVE, on Y at LIN, on Z at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16285,21 +16106,21 @@ LIST temp[g=g5_10,gx=g5_10 at ave]
  20-JAN-1982 00 / 2:  23.8838  23.9752  24.1501  24.3761  24.6265
  25-JAN-1982 00 / 3:  23.8774  23.9728  24.1535  24.3857  24.6381
 LIST temp[g=g5_10,gy=g5_10 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 68 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 70 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 71 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 70 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 70 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 71 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 71 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 70 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 91 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 68 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 20 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 68 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 68 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 20 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 20 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 68 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at AVE, on Z at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16311,19 +16132,19 @@ LIST temp[g=g5_10,gy=g5_10 at ave]
  20-JAN-1982 00 / 2:  23.7487  23.7495  23.8474  24.0089  24.2076
  25-JAN-1982 00 / 3:  23.7491  23.7562  23.8550  24.0158  24.2086
 LIST temp[g=g5_10,gz=g5_10 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 70 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 72 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 73 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 72 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 91 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 68 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 42 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 68 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 72 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 73 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 68 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 42 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at LIN, on Z at AVE, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16335,19 +16156,19 @@ LIST temp[g=g5_10,gz=g5_10 at ave]
  20-JAN-1982 00 / 2:  23.7487  23.7495  23.8474  24.0089  24.2076
  25-JAN-1982 00 / 3:  23.7491  23.7562  23.8550  24.0158  24.2086
 LIST temp[g=g5_10,gt=g5_10 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M: 73 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 74 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 75 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 74 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 91 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 42 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 49 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 42 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 74 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 75 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 42 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 49 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at LIN, on Z at LIN, on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -16360,21 +16181,21 @@ LIST temp[g=g5_10,gt=g5_10 at ave]
  25-JAN-1982 00 / 3:  23.7481  23.7620  23.8678  24.0343  24.2309
  
 LIST temp[g=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M: 75 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 76 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 77 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 76 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 76 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 77 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 77 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 76 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 49 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ regrid  TEMP     M: 28 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ regrid  TEMP     M:118 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 28 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 28 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M:118 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:118 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 28 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at ASN, on Y at ASN, on Z at ASN, on T at ASN
              FILENAME : gtsa056_1.cdf
@@ -16386,21 +16207,21 @@ LIST temp[g=g5_10 at asn]
  20-JAN-1982 00 / 2:  29.5859  29.5797  29.5756  29.5662  29.5590
  25-JAN-1982 00 / 3:  29.5787  29.5737  29.5698  29.5546  29.5421
 LIST temp[g=g5_10,gx=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 76 dset:   1 I:   12   12  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 78 dset:   1 I:   12   12  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 79 dset:   1 I:   12   12  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 78 dset:   1 I:   12   12  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 78 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 79 dset:   1 I:   12   12  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 79 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 78 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 28 dset:   1 I:     12     12  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 83 dset:   1 I:     12     12  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 82 dset:   1 I:     12     12  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 83 dset:   1 I:     12     12  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 83 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 82 dset:   1 I:     12     12  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 82 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 83 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at ASN, on Y at LIN, on Z at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16412,21 +16233,21 @@ LIST temp[g=g5_10,gx=g5_10 at asn]
  20-JAN-1982 00 / 2:  29.5747  29.5654  29.5513  29.5344  29.5265
  25-JAN-1982 00 / 3:  29.5636  29.5536  29.5355  29.5146  29.5054
 LIST temp[g=g5_10,gy=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 78 dset:   1 I:  100  101  J:   45   49  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 80 dset:   1 I:  100  101  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 81 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 80 dset:   1 I:  100  101  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 80 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 81 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 81 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 80 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 91 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 83 dset:   1 I:    100    101  J:   45   49  K:    1    2  L:      2      3
+ regrid  TEMP     M:100 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 83 dset:   1 I:    100    101  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 83 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M:100 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:100 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 83 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at ASN, on Z at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16438,19 +16259,19 @@ LIST temp[g=g5_10,gy=g5_10 at asn]
  20-JAN-1982 00 / 2:  23.7784  23.7190  23.7799  23.9148  24.1031
  25-JAN-1982 00 / 3:  23.7745  23.7236  23.7888  23.9212  24.1104
 LIST temp[g=g5_10,gz=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 80 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 82 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 83 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 82 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 91 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 83 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ regrid  TEMP     M: 79 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 83 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 82 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 83 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 83 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 79 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at LIN, on Z at ASN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16462,19 +16283,19 @@ LIST temp[g=g5_10,gz=g5_10 at asn]
  20-JAN-1982 00 / 2:  23.9612  23.9499  24.0203  24.1507  24.3238
  25-JAN-1982 00 / 3:  23.9591  23.9559  24.0305  24.1636  24.3350
 LIST temp[g=g5_10,gt=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M: 83 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 84 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 85 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 84 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 91 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 79 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 67 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 79 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 84 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 85 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 79 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 67 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at LIN, on Z at LIN, on T at ASN
              FILENAME : gtsa056_1.cdf
@@ -16491,210 +16312,210 @@ SET MODE IGNORE	! V.5 change
 canc reg
 set reg/l=1:3  ! x,y,z unspecified
 load temp
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
- reading TEMP     M: 85 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
+ reading TEMP     M: 67 dset:   1 I:      1    160  J:    5   89  K:    1    2  L:      1      3
 load temp[g=u]
- dealloc  dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DT2          PSXT1     PSYT      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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
  strip regrid on X: TEMP --> PS3DU2           @LIN
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
- reading TEMP     M: 86 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
+ found   TEMP     M: 67 dset:   1 I:      1    160  J:    5   89  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
  regrid XY
- regrid  TEMP     M: 88 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 50 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
 load temp[g=u at lin]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
  strip regrid on X: TEMP --> PS3DU2           @LIN
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
- reading TEMP     M: 89 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
+ found   TEMP     M: 61 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
  regrid XY
- regrid  TEMP     M: 91 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 27 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
  
 load temp[g=u at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
  strip regrid on X: TEMP --> PS3DU2           @AAV
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
- reading TEMP     M: 92 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
+ found   TEMP     M: 38 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
  regrid XY
- regrid  TEMP     M: 94 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 14 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
 load temp[g=u,gx=u at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @AVE
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
  strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M: 95 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 96 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
- regrid  TEMP     M: 98 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 97 dset:   1 I:    1  161  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M: 19 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M: 13 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
+ regrid  TEMP     M: 59 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ -DELETE TEMP     M: 12 dset:   1 I:      1    161  J:    1  100  K:    1    2  L:      1      3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
 load temp[g=u,gy=u at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @LIN
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
  strip regrid on Y: TEMP --> XNTERMED         @AVE
- reading TEMP     M: 97 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 99 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
- regrid  TEMP     M:101 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:100 dset:   1 I:    1  161  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M: 19 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M: 12 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
+ regrid  TEMP     M: 95 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ -DELETE TEMP     M: 18 dset:   1 I:      1    161  J:    1  100  K:    1    2  L:      1      3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  
 load temp[g=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
  strip regrid on X: TEMP --> PS3DU2           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:100 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:102 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:103 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:102 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 19 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M: 18 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ regrid  TEMP     M: 11 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ -DELETE TEMP     M: 18 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3  M: -999 -999  N: -999 -999
 load temp[g=u,gx=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M:102 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:104 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:105 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:104 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M: 19 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M: 18 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ regrid  TEMP     M: 10 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ -DELETE TEMP     M: 18 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
 load temp[g=u,gy=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @LIN
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:104 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:106 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
- regrid  TEMP     M:108 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:107 dset:   1 I:    1  161  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M: 19 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M: 18 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
+ regrid  TEMP     M:  7 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ -DELETE TEMP     M:  8 dset:   1 I:      1    161  J:    1  100  K:    1    2  L:      1      3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  
 canc reg
 use gtsa056_2		!kob 4/99
 set reg/i=101:105/j=41:42  ! z,t unspecified
 load temp[g=u]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
  strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:107 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ reading TEMP     M:  8 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M:109 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:  6 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
  
 load temp[g=u at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
  strip regrid on X: TEMP --> PS3DU1           @AAV
- reading TEMP     M:110 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M:111 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:  2 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
 load temp[g=u,gz=u at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:112 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M:113 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ regrid  TEMP     M:103 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
 load temp[g=u,gt=u at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:114 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M:115 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ regrid  TEMP     M: 97 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  
 load temp[g=u at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:116 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M:117 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M:118 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:117 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
+ regrid  TEMP     M: 88 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ regrid  TEMP     M: 69 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ -DELETE TEMP     M: 88 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168  M: -999 -999  N: -999 -999
 load temp[g=u,gz=u at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:117 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M:119 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ regrid  TEMP     M: 88 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
 load temp[g=u,gt=u at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:120 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M:121 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ regrid  TEMP     M: 64 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
 SET MODE/LAST IGNORE	! V.5 change
  
 ! plot verifications
@@ -16706,266 +16527,250 @@ set window/size=.5/aspect=.4 1
 use gtsa056_1 		!kob 4/99
 set region/x=130E:90W/y=0/z=5/t=21-JAN-1982
 plot temp
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     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 PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    1  140  J:   45   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- reading TEMP     M:122 dset:   1 I:    1  140  J:   45   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:      1    140  J:   45   46  K:    1    1  L:      2      3
+ found   TEMP     M: 19 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 76   complete
 plot/over temp[g=u]
- dealloc  dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT2          PSXT1     PSYT      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 PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M:125 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:126 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
+ found   TEMP     M: 27 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 77   complete
 plot/over temp[g=g5day]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
- reading TEMP     M:130 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:131 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M:102 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      5
+ regrid  TEMP     M: 96 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3
  regrid XY
- regrid  TEMP     M:132 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:131 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ regrid  TEMP     M: 93 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 96 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 78   complete
 plot/over temp[g=g5_10]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  7 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
- strip moduloing TEMP on X axis:     0   141 dset:   1
+ strip moduloing TEMP on X axis:        0      141 dset:   1
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M:135 dset:   1 I:    1  141  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:136 dset:   1 I:    1  141  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:137 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:136 dset:   1 I:    1  141  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   141 dset:   1
+ reading TEMP     M: 60 dset:   1 I:      1    141  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 54 dset:   1 I:      1    141  J:   44   46  K:    1    2  L:      2      3
+ regrid  TEMP     M: 45 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 54 dset:   1 I:      1    141  J:   44   46  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      141 dset:   1
  regrid XY
- regrid  TEMP     M:138 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:136 dset:   1 I:    0  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 43 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 54 dset:   1 I:      0    141  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 79   complete
 plot/over temp[g=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
- strip regrid on X: TEMP --> PS3DU2           @AAV
- reading TEMP     M:141 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:142 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
+ found   TEMP     M: 14 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 80   complete
 plot/over temp[g=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
  strip regrid on X: TEMP --> G5DAY            @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- reading TEMP     M:146 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:147 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 60 dset:   1 I:      1    141  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 62 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3
  regrid XY
- regrid  TEMP     M:148 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:147 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ regrid  TEMP     M: 34 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 62 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 81   complete
 plot/over temp[g=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  7 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AAV
- strip moduloing TEMP on X axis:     0   146 dset:   1
+ strip moduloing TEMP on X axis:        0      146 dset:   1
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M:151 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:152 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:153 dset:   1 I:    1  146  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:152 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   146 dset:   1
+ reading TEMP     M: 66 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 63 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      3
+ regrid  TEMP     M: 48 dset:   1 I:      1    146  J:   44   46  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 63 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      146 dset:   1
  regrid XY
- regrid  TEMP     M:154 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:152 dset:   1 I:    0  146  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 36 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 63 dset:   1 I:      0    146  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 82   complete
 plot/over temp[g=u at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
- strip regrid on X: TEMP --> PS3DU2           @ASN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:157 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:158 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:159 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:158 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
+ found   TEMP     M: 11 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 83   complete
 plot/over temp[g=g5day at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
  strip regrid on X: TEMP --> G5DAY            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on T: TEMP --> YNTERMED         @ASN
- reading TEMP     M:162 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:163 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:164 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:163 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:163 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:164 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ found   TEMP     M: 66 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 70 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ regrid  TEMP     M: 53 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 70 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 70 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 53 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 84   complete
 plot/over temp[g=u,gx=u at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  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
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip moduloing TEMP on X axis:     0   140 dset:   1
- strip regrid on X: TEMP --> PS3DU2           @AVE
- strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M:167 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:168 dset:   1 I:    1  141  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:169 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:168 dset:   1 I:    1  141  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ strip moduloing TEMP on X axis:        0      140 dset:   1
+ found   TEMP     M: 59 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing moduloing TEMP on X axis:        1      140 dset:   1
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 85   complete
 plot/over temp[g=g5day,gx=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
  strip regrid on X: TEMP --> G5DAY            @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> YNTERMED         @LIN
- reading TEMP     M:172 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:173 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:174 dset:   1 I:    1  141  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:173 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:173 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:174 dset:   1 I:    1  141  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ found   TEMP     M: 66 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M:104 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3
+ regrid  TEMP     M: 99 dset:   1 I:      1    141  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M:104 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:104 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 99 dset:   1 I:      1    141  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 86   complete
 plot/over temp[g=g5_10,gx=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  7 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AVE
- strip moduloing TEMP on X axis:     0   146 dset:   1
+ strip moduloing TEMP on X axis:        0      146 dset:   1
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M:177 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:178 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:179 dset:   1 I:    1  146  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:178 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:178 dset:   1 I:    1  146  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:179 dset:   1 I:    1  146  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   146 dset:   1
- regrid  TEMP     M:180 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:179 dset:   1 I:    0  146  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 66 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 71 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      3
+ regrid  TEMP     M: 57 dset:   1 I:      1    146  J:   44   46  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 71 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 71 dset:   1 I:      1    146  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 57 dset:   1 I:      1    146  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      146 dset:   1
+ regrid  TEMP     M: 55 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 57 dset:   1 I:      0    146  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 87   complete
 plot/over temp[g=g5_10 at asn]   ! invalid interpretation of data
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  7 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M:183 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:184 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:185 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:184 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:184 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:185 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:185 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:184 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 66 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 40 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ regrid  TEMP     M: 26 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 40 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 40 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 26 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 26 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 40 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
@@ -16975,221 +16780,205 @@ PPL plot 88   complete
 ! Y axis
 set region/x=180/y=20s:20n/z=5/t=21-JAN-1982
 plot temp
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- reading TEMP     M:188 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:     50     51  J:    5   88  K:    1    1  L:      2      3
+ found   TEMP     M: 19 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 89   complete
 plot/over temp[g=u]
- dealloc  dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT2          PSXT1     PSYT      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 PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M:191 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:192 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ found   TEMP     M: 27 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 90   complete
 plot/over temp[g=g5day]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
- reading TEMP     M:194 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:195 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 51 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      5
+ regrid  TEMP     M: 35 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3
  regrid XY
- regrid  TEMP     M:196 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:195 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 21 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 35 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 91   complete
 plot/over temp[g=g5_10]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M:197 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:198 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:199 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:198 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M:  4 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M:  1 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      3
+ regrid  TEMP     M:122 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3
+ -DELETE TEMP     M:  1 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:198 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:199 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:  1 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:122 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 92   complete
 plot/over temp[g=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @AAV
- reading TEMP     M:201 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:202 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ found   TEMP     M: 14 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 93   complete
 plot/over temp[g=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- reading TEMP     M:204 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:205 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  4 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M: 81 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3
  regrid XY
- regrid  TEMP     M:206 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:205 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 65 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 81 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 94   complete
 plot/over temp[g=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M:207 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:208 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:209 dset:   1 I:   45   56  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:208 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 39 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M: 22 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      3
+ regrid  TEMP     M: 17 dset:   1 I:     45     56  J:    5   89  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 22 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:208 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:209 dset:   1 I:   45   56  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 22 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 17 dset:   1 I:     45     56  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 95   complete
 plot/over temp[g=u at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @ASN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:211 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:212 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:213 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:212 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ found   TEMP     M: 11 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 96   complete
 plot/over temp[g=g5day at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on T: TEMP --> YNTERMED         @ASN
- reading TEMP     M:214 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:215 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:216 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:215 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:215 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:216 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 39 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M:125 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ regrid  TEMP     M:126 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:125 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:125 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:126 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 97   complete
 plot/over temp[g=u,gy=u at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  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
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- strip regrid on Y: TEMP --> XNTERMED         @AVE
- reading TEMP     M:217 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:218 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:219 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:218 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M: 95 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 98   complete
 plot/over temp[g=g5day,gy=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> YNTERMED         @LIN
- reading TEMP     M:220 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:221 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:222 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:221 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:221 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:222 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 39 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M:128 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3
+ regrid  TEMP     M:129 dset:   1 I:     50     51  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:128 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:128 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:129 dset:   1 I:     50     51  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 99   complete
 plot/over temp[g=g5_10,gy=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M:223 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:224 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:225 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:224 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:224 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:225 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:225 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:224 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 39 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M:130 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      3
+ regrid  TEMP     M:131 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3
+ -DELETE TEMP     M:130 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:130 dset:   1 I:     50     51  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:131 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:131 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:130 dset:   1 I:     50     51  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 100  complete
 plot/over temp[g=g5_10 at asn]  ! invalid interpretation of data
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M:227 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:228 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:229 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:228 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:228 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:229 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:229 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:228 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 19 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M:133 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ regrid  TEMP     M:134 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:133 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:133 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:134 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:134 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:133 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
@@ -17199,268 +16988,248 @@ PPL plot 101  complete
 use gtsa056_2	!kob  4/99
 set region/x=180W/y=0/z=5/t=21-JAN-1982:13-JUN-1983
 load temp[i=50:51,j=45:56,k=1:2,l=1:172]  ! preload to save time
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DT1          PSXT1     PSYT      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     1   172 dset:   2
- reading TEMP     M:231 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DT1          PSXT1     PSYT      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing TEMP on T axis:        1      172 dset:   2
+ reading TEMP     M:136 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
 plot temp
- dealloc  dynamic grid PS3DT1          PSXT1     PSYT      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DT1          PSXT1     PSYT      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT1          PSXT1     PSYT      PSZT      TIME1
+ 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 PS3DT1          PSXT1     PSYT      PSZT      TIME1
  strip --> EX#1[Y=0 at ITP,D=2]
  strip --> EX#1[X=180E at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
- reading TEMP     M:233 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
- reading TEMP     M:235 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ eval    EX#1     C:  6 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      3    170
+ found   TEMP     M:137 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
  doing --> TEMP[X=180E at ITP,D=2]
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 102  complete
 plot/over temp[g=u]
- dealloc  dynamic grid PS3DT1          PSXT1     PSYT      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT1          PSXT1     PSYT      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:238 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
+ reading TEMP     M:140 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      3    168
  regrid XY
- regrid  TEMP     M:239 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ regrid  TEMP     M:141 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    168
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:241 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
+ reading TEMP     M:143 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      1      2
  regrid XY
- regrid  TEMP     M:242 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ regrid  TEMP     M:144 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      1      2
+ doing moduloing TEMP on T axis:        1        2 dset:   2
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 103  complete
 plot/over temp[g=g5day]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:244 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:246 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ strip moduloing TEMP on T axis:        2      171 dset:   2
+ reading TEMP     M:146 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
+ regrid  TEMP     M:148 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M:247 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:246 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:149 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:148 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 104  complete
 plot/over temp[g=g5_10]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- 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
+ 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
  strip --> EX#1[Z=5 at ITP,D=2]
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:248 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:250 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:251 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:250 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ strip moduloing TEMP on T axis:        2      171 dset:   2
+ reading TEMP     M:150 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
+ regrid  TEMP     M:152 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    104
+ regrid  TEMP     M:153 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M:152 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:250 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:251 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:152 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:153 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
  doing --> TEMP[Z=5 at ITP,D=2]
 setting up plot
 PPL plot 105  complete
 plot/over temp[g=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @AAV
- reading TEMP     M:253 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
+ found   TEMP     M:151 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    171
  regrid XY
- regrid  TEMP     M:254 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ regrid  TEMP     M:155 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    168
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @AAV
- reading TEMP     M:256 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
+ found   TEMP     M:150 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M:257 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ regrid  TEMP     M:157 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      1      2
+ doing moduloing TEMP on T axis:        1        2 dset:   2
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 106  complete
 plot/over temp[g=g5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAY            @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:259 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:261 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:151 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:159 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M:262 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:261 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:160 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:159 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 107  complete
 plot/over temp[g=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- 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
+ 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
  strip --> EX#1[Z=5 at ITP,D=2]
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10            @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:263 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:265 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:266 dset:   2 I:   45   56  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:265 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ strip moduloing TEMP on T axis:        2      171 dset:   2
+ reading TEMP     M:161 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
+ regrid  TEMP     M:163 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    104
+ regrid  TEMP     M:164 dset:   2 I:     45     56  J:   44   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M:163 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:265 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:266 dset:   2 I:   45   56  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:163 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:164 dset:   2 I:     45     56  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
  doing --> TEMP[Z=5 at ITP,D=2]
 setting up plot
 PPL plot 108  complete
 plot/over temp[g=u at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:268 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M:269 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M:270 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:269 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ found   TEMP     M:162 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:166 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    168
+ regrid  TEMP     M:167 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    168
+ -DELETE TEMP     M:166 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    168  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:271 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid  TEMP     M:272 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid  TEMP     M:273 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:272 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ found   TEMP     M:161 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      1    168
+ regrid  TEMP     M:168 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      1      2
+ regrid  TEMP     M:169 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      1      2
+ -DELETE TEMP     M:168 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      1      2  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on T axis:        1        2 dset:   2
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 109  complete
 plot/over temp[g=g5_10 at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
  strip --> EX#1[Z=5 at ITP,D=2]
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M:274 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:275 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:276 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:275 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:275 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:276 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:276 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:275 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ reading TEMP     M:170 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ regrid  TEMP     M:171 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ regrid  TEMP     M:172 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:171 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:171 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:172 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:172 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:171 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
  doing --> TEMP[Z=5 at ITP,D=2]
 setting up plot
 PPL plot 110  complete
 plot/over temp[g=u,gt=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- strip moduloing TEMP on T axis:     3   170 dset:   2
- strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:278 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:279 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
- strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:281 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:282 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    170
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ found   TEMP     M:142 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    170
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 111  complete
 plot/over temp[g=g5day,gt=g5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @AVE
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:284 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:286 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:162 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:175 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M:287 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:286 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:176 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:175 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 112  complete
 plot/over temp[g=g5_10,gt=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- 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
+ 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
  strip --> EX#1[Z=5 at ITP,D=2]
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:288 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:290 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:291 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:290 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:162 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:177 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    104
+ regrid  TEMP     M:178 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M:177 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:290 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:291 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:177 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:178 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
  doing --> TEMP[Z=5 at ITP,D=2]
 setting up plot
 PPL plot 113  complete
 plot/over temp[g=g5day,gt=g5day at asn]  ! invalid interpretation of data
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @ASN
- reading TEMP     M:293 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:294 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:162 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:180 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M:295 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:294 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:181 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:180 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 114  complete
@@ -17478,24 +17247,24 @@ let a1 = x[gx=x1pt]	! single point
 let a2 = x[gx=x2pt]
  
 list a1[gx=xoffset at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- 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    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          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: A1 --> (G011)           @AVE
- eval    A1       C:  7 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:296 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:298 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ regrid  A1       M:184 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at AVE
              SUBSET   : 7 points (X)
@@ -17507,22 +17276,19 @@ list a1[gx=xoffset at ave]
  6.1 / 6:     ....
  7.1 / 7:     ....
 list a1[gx=xoffset at sum] ! should sum to 5
- -DELETE X        M:296 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:298 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:182 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G011)          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 (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          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: A1 --> (G011)           @SUM
- eval    A1       C:  7 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:299 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -17534,22 +17300,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
- -DELETE X        M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:299 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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 (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          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: A1 --> (G011)           @VAR
- eval    A1       C:  7 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:299 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:300 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : Variance of X[GX=X1PT]
                         regrid: 1 delta on X at VAR
              SUBSET   : 7 points (X)
@@ -17562,26 +17324,25 @@ list a1[gx=xoffset at var] ! should be all missing
  7.1 / 7:....
  
 list a2[gx=xoffset at ave]
- -DELETE X        M:299 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:300 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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 (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @AVE
- eval    A2       C:  7 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:300 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:301 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A2       C:  7 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ allocate dynamic grid (G011)          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 (G011)          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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at AVE
              SUBSET   : 7 points (X)
@@ -17593,22 +17354,19 @@ list a2[gx=xoffset at ave]
  6.1 / 6:  6.00000
  7.1 / 7:     ....
 list a2[gx=xoffset at sum] ! should sum to 5+6=11
- -DELETE X        M:300 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:301 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:184 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G006)          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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @SUM
- eval    A2       C:  7 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:301 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:302 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -17620,22 +17378,18 @@ list a2[gx=xoffset at sum] ! should sum to 5+6=11
  6.1 / 6:  5.40000
  7.1 / 7:     ....
 list a2[gx=xoffset at var]
- -DELETE X        M:301 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:302 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @VAR
- eval    A2       C:  7 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:302 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:303 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : Variance of X[GX=X2PT]
                         regrid: 1 delta on X at VAR
              SUBSET   : 7 points (X)
@@ -17653,47 +17407,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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:303 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:299 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:300 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:301 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:302 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:296 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:297 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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 (G011)          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
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G011)          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: A1 --> (G011)           @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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:297 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:297 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:298 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:297 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:298 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A1       C:  8 dset:   0 I:      1      1  J:    1    1  K: -999 -999  L:   -999   -999
+ allocate dynamic grid (G006)          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 (G010)          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 (G010)          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 (G006)          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 (G011)          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)
@@ -17707,29 +17456,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 (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:297 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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 (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G011)          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: A1 --> (G011)           @SUM
  strip regrid on Y: A1 --> XNTERMED         @SUM
- eval    A1       C:  8 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:297 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:298 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:298 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:297 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:297 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:298 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:297 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G011)          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)
@@ -17743,29 +17484,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 (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:298 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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 (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G011)          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: A1 --> (G011)           @VAR
  strip regrid on Y: A1 --> XNTERMED         @VAR
- eval    A1       C:  8 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:297 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:297 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:298 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:297 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:298 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G011)          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)
@@ -17780,35 +17513,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 (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:297 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G011)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X2PT      Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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 (G011)          NORMAL    Y2PT      NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          NORMAL    Y2PT      NORMAL    NORMAL
+ allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          X2PT      Y2PT      NORMAL    NORMAL
+ allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G006)          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 (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:297 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:298 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:298 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:297 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:297 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:298 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:297 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A2       C:  8 dset:   0 I:      1      2  J:    1    2  K: -999 -999  L:   -999   -999
+ allocate dynamic grid (G010)          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 (G002)          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 (G002)          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 (G010)          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 (G006)          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)
@@ -17822,29 +17555,21 @@ list a2[gx=xoffset at ave, gy=yoffset at ave]
  6.1 / 6:     ....     ....     ....  11.0000  11.1000  12.0000     ....
  7.1 / 7:     ....     ....     ....     ....     ....     ....     ....
 list a2[gx=xoffset at sum, gy=yoffset at sum] ! should sum to 10+11+11+12=44
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:298 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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 (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G006)          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 (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @SUM
  strip regrid on Y: A2 --> XNTERMED         @SUM
- eval    A2       C:  8 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:298 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:297 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:297 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:298 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:298 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:297 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:298 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G006)          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)
@@ -17859,29 +17584,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 (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:297 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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 (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G006)          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 (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @VAR
  strip regrid on Y: A2 --> XNTERMED         @VAR
- eval    A2       C:  8 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:297 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:298 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:298 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:297 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:297 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:298 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:297 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G006)          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)
@@ -17902,37 +17619,33 @@ define axis/x=5:6:1 x2pt
 define axis/x=5:6.5:.5 x4pt
  
 let a1 = x[gx=x1pt]
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:298 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:299 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:300 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:303 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:296 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:301 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:302 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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 (G011)          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
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          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: A1 --> (G011)           @MAX
- eval    A1       C:  7 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:302 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:296 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ regrid  A1       M:183 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -17944,26 +17657,26 @@ list a1[gx=xoffset at max]
  6.1 / 6:     ....
  7.1 / 7:     ....
 list a2[gx=xoffset at max]
- -DELETE X        M:302 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:296 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:185 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G011)          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 (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @MAX
- eval    A2       C:  7 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:296 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:303 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A2       C:  7 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ allocate dynamic grid (G011)          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 (G011)          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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -17975,26 +17688,26 @@ list a2[gx=xoffset at max]
  6.1 / 6:  6.00000
  7.1 / 7:     ....
 list a4[gx=xoffset at max]
- -DELETE X        M:296 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:303 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:183 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G006)          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 (G006)          X4PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          X4PT      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
+ 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: A4 --> (G010)           @MAX
- eval    A4       C:  7 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:303 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A4       M:300 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A4       C:  7 dset:   0 I:      1      4  J: -999 -999  K: -999 -999  L:   -999   -999
+ allocate dynamic grid (G006)          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 (G006)          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 (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -18006,22 +17719,19 @@ list a4[gx=xoffset at max]
  6.1 / 6:  6.50000
  7.1 / 7:     ....
 list a4[gx=xoffset at min]
- -DELETE X        M:303 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A4       M:300 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:182 dset:   0 I:      1      4  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G010)          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 (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G010)          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: A4 --> (G010)           @MIN
- eval    A4       C:  7 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:300 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A4       M:299 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at MIN
              SUBSET   : 7 points (X)
@@ -18033,22 +17743,18 @@ list a4[gx=xoffset at min]
  6.1 / 6:  6.00000
  7.1 / 7:     ....
 list a4[gx=xoffset at sum] ! 5+5.5+6+6.5=23
- -DELETE X        M:300 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A4       M:299 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          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 (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G010)          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: A4 --> (G010)           @SUM
- eval    A4       C:  7 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:299 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A4       M:298 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -18065,26 +17771,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
- -DELETE X        M:299 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A4       M:298 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          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 (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G002)          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 (G002)          X5        NORMAL    NORMAL    NORMAL
  strip regrid on X: A5 --> (G002)           @MAX
- eval    A5       C:  7 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:298 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A5       M:297 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A5       C:  7 dset:   0 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ allocate dynamic grid (G010)          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 (G010)          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 (G002)          X5        NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X5_EDGES]
                         regrid: 1 delta on X at MAX
              SUBSET   : 5 points (X)
@@ -18094,37 +17799,35 @@ list a5[gx=x5 at max]   ! note: top dest axis point, only, looks at point above
  4   / 4:  3.50000
  5   / 5:  5.50000
 let a5 = x[gx=x5_edges, i=3]
- dealloc  dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A5       M:297 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A5       M:299 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:298 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A4       M:296 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A4       M:300 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A4       M:303 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:302 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:301 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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 (G010)          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 (G006)          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 (G011)          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
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G011)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          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 (G011)          X5        NORMAL    NORMAL    NORMAL
  strip regrid on X: A5 --> (G011)           @MAX
- eval    A5       C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:301 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A5       M:303 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ regrid  A5       M:183 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X5_EDGES, I=3]
                         regrid: 1 delta on X at MAX
              SUBSET   : 5 points (X)
@@ -18134,42 +17837,35 @@ list a5[gx=x5 at max]
  4   / 4:     ....
  5   / 5:     ....
 list a5[gx=x5 at max,i=3]
- -DELETE X        M:301 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A5       M:303 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:184 dset:   0 I:      3      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G011)          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 (G011)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          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 (G011)          X5        NORMAL    NORMAL    NORMAL
  strip regrid on X: A5 --> (G011)           @MAX
- eval    A5       C:  7 dset:   0 I:    3    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:303 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A5       M:300 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G011)          X5        NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X5_EDGES, I=3]
                         regrid: 1 delta on X at MAX
              X        : 3
           2.50000
 list a5[gx=x5 at max,i=4]
- -DELETE X        M:303 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A5       M:300 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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 (G011)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          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 (G011)          X5        NORMAL    NORMAL    NORMAL
  strip regrid on X: A5 --> (G011)           @MAX
- eval    A5       C:  7 dset:   0 I:    4    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:300 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ found   A5       M:185 dset:   0 I:      3      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X5_EDGES, I=3]
                         regrid: 1 delta on X at MAX
              X        : 4
@@ -18180,20 +17876,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
- -DELETE X        M:300 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A5       M:296 dset:   0 I:    4    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- eval    ATIME    C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- pseudo  T        M:296 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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 (G011)          NORMAL    NORMAL    NORMAL    TDAY
+ dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY
+ allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY
+ allocate dynamic grid (G011)          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 (G011)          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 (G011)          NORMAL    NORMAL    NORMAL    TDAY
              VARIABLE : T[GT=TDAY]
              SUBSET   : 5 points (TIME)
  01-JAN-1990 00 / 1:  32493.0
@@ -18210,24 +17905,19 @@ show grid
  normal    Y
  normal    Z
  TDAY      TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
- normal    E
- normal    F
 list atime[gt=thour at max]
- -DELETE T        M:296 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- 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 (G006)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
- allocate dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
+ -DELETE T        M:183 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      5
+ dealloc  dynamic grid (G011)          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 (G006)          NORMAL    NORMAL    NORMAL    THOUR
+ dealloc  dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR
+ allocate dynamic grid (G006)          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 (G006)          NORMAL    NORMAL    NORMAL    THOUR
  strip regrid on T: ATIME --> (G006)           @MAX
- eval    ATIME    C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- pseudo  T        M:296 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- regrid  ATIME    M:299 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
+ 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 (G006)          NORMAL    NORMAL    NORMAL    THOUR
              VARIABLE : T[GT=TDAY]
                         regrid: 24 hour on T at MAX
              SUBSET   : 5 points (TIME)
@@ -18245,8 +17935,6 @@ show grid
  normal    Y
  normal    Z
  THOUR     TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
- normal    E
- normal    F
  
 set mode/last diag
  
@@ -18255,9 +17943,11 @@ set mode/last diag
  
  
  
-GO bn_reset		! reordered reset before next test: 2/94
+GO bn_reset bn_axis_limits	! reordered reset before next test: 2/94
 cancel mode verify
-GO bn_axis_limits	! added 10/27/93
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_limits
+GO bn_axis_limits	        ! added 10/27/93
 !bn301_axis_limits.jnl
 ! exercise the new-V301 /XLIMITS and /YLIMITS qualifiers
  
@@ -18409,7 +18099,7 @@ contour/x=160E:160W/t=28000:29000/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=1-
 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)
  
-SET WINDOW/CLEAR/SIZE=0.2 ! added 2/94
+SET WINDOW/CLEAR/SIZE=0.2       ! added 2/94
  
 !GO bn_reset
 !GO bn301_mem_mgmt
@@ -18420,8 +18110,10 @@ MESSAGE/CONTINUE  ***** Its too slow!!!
 MESSAGE/CONTINUE  ***** Remember to run it separately
 ***** Remember to run it separately
  
-GO bn_reset
+GO bn_reset bn_movie
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_movie
 GO bn_movie
 ! bn301_movie.JNL
 ! - test on-HDF movie creation by Program FERRET
@@ -18433,8 +18125,10 @@ GO bn_movie
 exit/script
  
 ! added in bn311
-GO bn_reset
+GO bn_reset bn_ez_order
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ez_order
 GO bn_ez_order	! was bn311 until 9/95
 ! bn420_ez_order
 ! updated from bn311_ez_order 9/95 - improved testing of /FORMAT=STREAM
@@ -18833,7 +18527,7 @@ list v1
 ! *** 2D
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6 test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 points (X-Y)
               1        2     
@@ -18843,7 +18537,7 @@ list v10
  3   / 3:  5.00000  6.00000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6/order=yx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 points (X-Y)
               1        2     
@@ -18853,7 +18547,7 @@ list v10
  3   / 3:  3.00000  6.00000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6yt test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 points (Y-T)
               1        2     
@@ -18863,7 +18557,7 @@ list v10
  3   / 3:  5.00000  6.00000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6yt/order=ty test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 points (Y-T)
               1        2     
@@ -18873,7 +18567,7 @@ list v10
  3   / 3:  3.00000  6.00000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6yt/order=xtyz test_perm48_10.dat
 list v10 ! should be just the same as the last
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 points (Y-T)
               1        2     
@@ -18885,7 +18579,7 @@ list v10 ! should be just the same as the last
 ! *** 3D
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12 test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
               1        2     
@@ -18900,7 +18594,7 @@ list v10
  3   / 3:  11.0000  12.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=xzy test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
               1        2     
@@ -18915,7 +18609,7 @@ list v10
  3   / 3:  11.0000  12.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=yxz test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
               1        2     
@@ -18930,7 +18624,7 @@ list v10
  3   / 3:   9.0000  12.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=yzx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
               1        2     
@@ -18945,7 +18639,7 @@ list v10
  3   / 3:   6.0000  12.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=zxy test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
               1        2     
@@ -18960,7 +18654,7 @@ list v10
  3   / 3:  10.0000  12.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=zyx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
               1        2     
@@ -18976,7 +18670,7 @@ list v10
 ! *** 4D  (incomplete - 24 in all)
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24 test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
               1        2     
@@ -19001,7 +18695,7 @@ list v10
  3   / 3:  23.0000  24.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xytz test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
               1        2     
@@ -19026,7 +18720,7 @@ list v10
  3   / 3:  23.0000  24.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xzyt test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
               1        2     
@@ -19051,7 +18745,7 @@ list v10
  3   / 3:  23.0000  24.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xtyz test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
               1        2     
@@ -19076,7 +18770,7 @@ list v10
  3   / 3:  23.0000  24.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xtzy test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
               1        2     
@@ -19101,7 +18795,7 @@ list v10
  3   / 3:  23.0000  24.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=ytzx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
               1        2     
@@ -19126,7 +18820,7 @@ list v10
  3   / 3:  12.0000  24.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=zytx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
               1        2     
@@ -19151,7 +18845,7 @@ list v10
  3   / 3:  12.0000  24.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=tyzx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
               1        2     
@@ -19176,7 +18870,7 @@ list v10
  3   / 3:  12.0000  24.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=tzyx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
               1        2     
@@ -19217,8 +18911,8 @@ list v1
 show data
      currently SET data sets:
     1> ./test_perm10.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       1:3       1:1       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:2       1:3       1:1       ...
  
  
 file/grid=g24/order=xytz test_perm10.dat
@@ -19240,8 +18934,8 @@ list v1
 show data
      currently SET data sets:
     1> ./test_perm10.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       1:3       1:2       1:1       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:2       1:3       1:2       1:1
  
  
 file/grid=g24/order=xzyt test_perm10.dat
@@ -19263,8 +18957,8 @@ list v1
 show data
      currently SET data sets:
     1> ./test_perm10.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       1:3       1:2       1:1       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:2       1:3       1:2       1:1
  
  
  
@@ -19470,8 +19164,10 @@ sp rm -f test_perm48_10.dat
  
  
 ! added in bn312  6/3/94
-GO bn_reset
+GO bn_reset bn_user
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_user
 ! cancel mode metafile   ! needed temporarily 6/94: PLOT+/XGKS interaction bug
 GO bn_user
 ! bn312_user.jnl
@@ -19490,8 +19186,10 @@ exit/script
 set window 1		! clean up
  
 ! added in bn420  1/96
-GO bn_reset
+GO bn_reset bn_stream
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_stream
 GO bn_stream
 ! bn420_stream.jnl
  
@@ -19505,7 +19203,7 @@ define axis/y=1:5:1 y5
 define grid/x=x10/y=y5 g10x5
 file/var=myvar/grid=g10x5/format=stream stream_data_link.unf
 list myvar
-             VARIABLE : MYVAR
+             VARIABLE : myvar
              FILENAME : stream_data_link.unf
              SUBSET   : 10 by 5 points (X-Y)
               1        2        3        4        5        6        7        8        9       10     
@@ -19526,8 +19224,8 @@ list myv1,myv2
              DATA SET: ./stream_data_link.unf
              X: 0.5 to 10.5
              Y: 0.5 to 2.5
- Column  1: MYV1
- Column  2: MYV2
+ Column  1: MYV1 is myv1
+ Column  2: MYV2 is myv2
               MYV1    MYV2
  ---- J:1 Y:   1
 1    /  1:  11.0000  31.0000
@@ -19555,8 +19253,10 @@ cancel data stream_data_link.unf
  
  
 !added in bn430 9/96 *kob*
-GO bn_reset
+GO bn_reset bn_mc
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_mc
 GO bn_mc
 !bn430_mc.jnl
 ! kob - 9/5/96
@@ -19569,8 +19269,8 @@ CAN MODE VERIFY
      currently SET data sets:
     1> ./coads_clim.des  (default)
      COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6
              Deg C on grid GHB1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -19582,8 +19282,6 @@ CAN MODE VERIFY
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME1     T (hour)             6 r   366                  4018.4              full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO
        1>  366                   730.485    0.7575
@@ -19638,8 +19336,8 @@ CAN MODE VERIFY
      currently SET data sets:
     1> ./coads_clim.des
      COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6
              Deg C on grid GHB1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -19647,8 +19345,8 @@ CAN MODE VERIFY
  
     2> ./coads_clim_irreg.des  (default)
      COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
              Deg C on grid GJR1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -19660,8 +19358,6 @@ CAN MODE VERIFY
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME2     T (hour)             3 i   366                  3287.9              full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO
        1>  366                   730.485    0.7575
@@ -19707,8 +19403,8 @@ CAN MODE VERIFY
      currently SET data sets:
     1> ./coads_clim_missing_step1.des  (default)
      COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
              Deg C on grid GQO1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -19717,8 +19413,8 @@ CAN MODE VERIFY
      currently SET data sets:
     1> ./coads_clim_missing_stepN.des  (default)
      COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
              Deg C on grid GCQ1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -20008,8 +19704,10 @@ CAN MODE VERIFY
  
  
 !added in bn450 10/97 *kob*
-GO bn_reset
+GO bn_reset bn_negative_t
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_negative_t
 GO bn_negative_t
 ! bn450_negative_t - 10/97
  
@@ -21034,8 +20732,10 @@ CANCEL MODE ignore_error
  
  
 !added in bn450 10/97 *kob*
-GO bn_reset
+GO bn_reset bn_xact_regrid
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_xact_regrid
 GO bn_xact_regrid
 ! BN450_xact_regrid.jnl
  
@@ -22435,8 +22135,10 @@ LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
  
 !added in bn450 11/97 *kob*
 ! replace w/ bn500 *kob* 5/99
-GO bn_reset
+GO bn_reset bn_gc_functions
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_gc_functions
 GO bn_gc_functions
 ! bn500_gc_functions.jnl
  
@@ -23026,10 +22728,11 @@ shade/x=0/l=1/ylim=0:200:-20/lev ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[z=0:2
  
 !added in bn491 - originally had this in run_all, but moved it here to
 ! properly echo commands  *kob*
-GO bn_reset
-cancel mode verify
 set mode verify  ! somehow this was off
- 
+GO bn_reset bn491_bug_fixes.jnl
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn491_bug_fixes.jnl
 GO bn491_bug_fixes.jnl
 ! bn491_bug_fixes.jnl
 ! test various fixes that went into version 4.91
@@ -23072,6 +22775,7 @@ message/continue ********File successfully written******
 ! command parser
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err490_command_parser
 ! err490_command_parser.jnl 12/1/98 - reported by billy kessler
  
@@ -23105,6 +22809,7 @@ message/continue ****Variable defined successfully******
 !repeat error
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err490_repeat_first_echo
 ! err490_repeat_first_echo (created later 23/98)
  
@@ -23320,6 +23025,7 @@ list tgap[t=-5:-8 at fav]  ! value at T=-6 should be -6
 ! l=@ave compression failure
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err490_l_ave.jnl
 ! err490_lave.jnl 12/1/97 - *sh* (reported by Weimin Wang)
 ! L=@AVE is failing to compress to a point
@@ -23403,6 +23109,7 @@ quit
 ! neg time axis grid failure
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err490_neg_time_show_grid.jnl
 ! err490_neg_time_show_grid
  
@@ -23417,8 +23124,6 @@ show grid/t=15-JAN-1982:15-JAN-1983 temp
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME4     TIME               168mr   15-JAN-1982 14:00    07-JUN-1983 13:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (hour)
        1>  15-JAN-1982 14:00:00  73         14-JAN-1982 01:30:00    52632
@@ -23547,6 +23252,7 @@ show grid/t=15-JAN-1982:15-JAN-1983 temp
 !explicit limit problem
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_explicit_limits.jnl
 ! err491_explicit_limits
 ! 2/98 *sh*
@@ -23597,6 +23303,7 @@ list timestamp[i=1:1]
 !regridding by association problem  *kob* 4/98
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_asn.jnl
 ! err491_asn.jnl 4/98 *sh* (extracted from bug reported by Jennifer Adams)
 ! Ferret crashes on regridding by association where destination
@@ -23676,6 +23383,7 @@ exit/script
 !double precision attribute problem *kob* 4/98
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_attrib_dp.jnl
 ! err491_attrib_dp.jnl
 ! kob  4/23/98
@@ -23832,8 +23540,10 @@ list elev
  
 ! ******** V500 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_odd_variable_name
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_odd_variable_name
 GO bn_odd_variable_name
 ! make sure memory is limited; otherwise the abstract axis will list
 let save_mem = ($ferret_memory)
@@ -23843,13 +23553,13 @@ use weird_name1.cdf
 sh data
      currently SET data sets:
     1> ./weird_name1.cdf  (default)
- name     title                             I         J         K         L         M         N
- v1       lower case v1                    1:20      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ v1       lower case v1                    1:20      ...       ...       ...
  v2-and-minus
-          SIN(2+I/10)                      1:20      ...       ...       ...       ...       ...
- V1       Upper case V1                    1:20      ...       ...       ...       ...       ...
- I        SIN(4+I/10)                      1:20      ...       ...       ...       ...       ...
- X        SIN(5+I/10)                      1:20      ...       ...       ...       ...       ...
+          SIN(2+I/10)                      1:20      ...       ...       ...
+ V1       Upper case V1                    1:20      ...       ...       ...
+ I        SIN(4+I/10)                      1:20      ...       ...       ...
+ X        SIN(5+I/10)                      1:20      ...       ...       ...
  
 set mode ignore
 list v1
@@ -24125,8 +23835,10 @@ list 'v2-and-minus'[i=5:15 at ddc] ! Now the proper syntax
 set mem /size=`save_mem`
  !-> set mem /size=25.6
  
-GO bn_reset
+GO bn_reset bn_test_stream
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_test_stream
 GO bn_test_stream
  
 canc data/all
@@ -24156,6 +23868,11 @@ def grid/x=xax/y=yax/z=zax/t=tax mygrid
  
 file/format=stream/var=num/grid=mygrid junk.dat
 load num
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 25.6 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 0 (0%)
+    The size of the requested object was: : 24000000000 (93750%)
  
 !
 ! Semilarge grid
@@ -24171,6 +23888,11 @@ def grid/x=xax/y=yax/z=zax/t=tax mygrid
  
 file/format=stream/var=num/grid=mygrid junk.dat
 load num
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 25.6 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 0 (0%)
+    The size of the requested object was: : 1000000000 (3906%)
  
 canc data/all
  
@@ -24213,7 +23935,7 @@ canc mode ignore
 !!OK, load file in 'normal order'
 file/format=str/var=num,num1/grid=mygrid/order=xyztv permutedBinaryTest.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24236,7 +23958,7 @@ list num
  2   / 2:  21.0000  22.0000
  3   / 3:  23.0000  24.0000
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24262,7 +23984,7 @@ list num1
 !! Load file w/o order qualifier (should be same as above)
 file/format=str/var=num,num1/grid=mygrid/order=xyztv permutedBinaryTest.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24285,7 +24007,7 @@ list num
  2   / 2:  21.0000  22.0000
  3   / 3:  23.0000  24.0000
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24312,7 +24034,7 @@ list num1
 !! Permute tzyxv
 file/format=str/var=num,num1/grid=mygrid/order=tzyxv permutedBinaryTest.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24335,7 +24057,7 @@ list num
  2   / 2:   8.0000  20.0000
  3   / 3:  12.0000  24.0000
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24361,7 +24083,7 @@ list num1
 !!Try permuted v
 file/format=str/var=num,num1/grid=mygrid/order=vxyzt permutedBinaryTest.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24384,7 +24106,7 @@ list num
  2   / 2:  41.0000  43.0000
  3   / 3:  45.0000  47.0000
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24411,7 +24133,7 @@ list num1
 !! for big endian architecture)
 file/format=str/var=num,num1/grid=mygrid/type=i1 byte.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : byte.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24436,7 +24158,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=i2/swap short.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : short.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24461,7 +24183,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=i4/swap int.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : int.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24486,7 +24208,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=r4/swap float.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : float.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24511,7 +24233,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=r8/swap double.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : double.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24538,7 +24260,7 @@ list num1
 !! Test swapped
 file/format=str/var=num,num1/grid=mygrid/type=i1 byteSwapped.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : byteSwapped.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24563,7 +24285,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=i2 shortSwapped.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : shortSwapped.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24588,7 +24310,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=i4 intSwapped.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : intSwapped.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24613,7 +24335,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=r4 floatSwapped.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : floatSwapped.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24638,7 +24360,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=r8 doubleSwapped.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : doubleSwapped.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24667,7 +24389,7 @@ list num1
 ! get correct result with /skip=2 (??)
 file/format=str/var=num,num1/grid=mygrid/type=r8/skip=2/swap skip.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : skip.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24694,7 +24416,7 @@ list num1
 ! Try list of types
 file/format=str/var=num,num1/grid=mygrid/type=r8,i1/swap twoType.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : twoType.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24717,7 +24439,7 @@ list num
  2   / 2:  20.0000  21.0000
  3   / 3:  22.0000  23.0000
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : twoType.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24743,7 +24465,7 @@ list num1
 ! Grand finale of xyvzt permutation with r4,i2 types
 file/format=str/var=num,num1/grid=mygrid/type=r4,i2/order=xyvzt/swap finale.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : finale.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24766,7 +24488,7 @@ list num
  2   / 2:  20.0000  21.0000
  3   / 3:  22.0000  23.0000
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : finale.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24789,12 +24511,16 @@ list num1
  2   / 2:  20.0000  21.0000
  3   / 3:  22.0000  23.0000
  
-GO bn_reset
+GO bn_reset bn_define_axes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_define_axes
 GO bn_define_axes
 ! bn_define_axes.jnl
 ! *sh* 5/99
-! *sh* 12/99 - with streamlined syntax
+! *sh* 12/99 -  with streamlined syntax
+! *acm* 12/16 - change to a comment only
+! 1/2017 *acm* changes in output due to backing off auto-detection of truemonth axes, tkt 2497
  
 ! exercise the DEFINE AXIS command
  
@@ -25017,6 +24743,10 @@ T0 = 1-JAN-1990
        2>  04-JAN-1990 12:00:00  3          03-JAN-1990 00:00:00    3.5
  
 ! real monthly calendar
+! (Note: when running pre-true-month Ferret versions, the timestep output from
+! show axis/l below was eliminated by the "clean_draconian" script)
+! 1/17/2017 changes due to backing off auto-detection of truemonth axes, tkt 2497
+ 
 let month = MOD(l-1,12)+1
 let add_year = INT((l-1)/12)
 let tstep = DAYS1900(1980+add_year,month,1)
@@ -25261,10 +24991,13 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! GO bn_external_functions  ! move to tests of shared-obj efs.
  
-GO bn_reset
+GO bn_reset bn_pattern
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_pattern
 GO bn_pattern
 ! pattern_bench.jnl
 ! Quick demo of Ferret pattern feature *jd* 12.18.98
@@ -25310,8 +25043,10 @@ can win 2
 set win 1
 can mode meta
  
-GO bn_reset
+GO bn_reset bn_polygon
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_polygon
 GO bn_polygon
 ! Demo of new POLYGON command
 ! *jd * 3.99
@@ -25333,8 +25068,10 @@ polygon/trans/line=4/over/i=1:100/nolabel xpts+xsqr-.25, ypts+ysqr, x*x/10
  
 can mode meta
  
-GO bn_reset
+GO bn_reset bn500_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn500_bug_fixes
 GO bn500_bug_fixes
 ! bn500_bug_fixes.jnl
 ! test various fixes that went into version 5.00
@@ -25342,6 +25079,7 @@ GO bn500_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_RESHAPE_ctx.jnl
 ! err491_RESHAPE_ctx
  
@@ -25402,61 +25140,36 @@ let out_grid = x[g=gsrc] + y[g=gsrc] + z[gz=zmonth] + t[gt=tyear]
 let out = reshape(src,out_grid)
 list out
              VARIABLE : RESHAPE(SRC,OUT_GRID)
-             SUBSET   : 5 by 12 by 2 points (X-Z-T)
+             SUBSET   : 12 by 2 points (Z-T)
              Y        : 0.5 to 1.5
-                1        2        3        4        5     
-                1        2        3        4        5
- ---- L:1 T:   1951
- 1    /  1:  438289.  438290.  438291.  438292.  438293.
- 2    /  2:  439019.  439020.  439021.  439022.  439023.
- 3    /  3:  439750.  439751.  439752.  439753.  439754.
- 4    /  4:  440480.  440481.  440482.  440483.  440484.
- 5    /  5:  441211.  441212.  441213.  441214.  441215.
- 6    /  6:  441941.  441942.  441943.  441944.  441945.
- 7    /  7:  442672.  442673.  442674.  442675.  442676.
- 8    /  8:  443402.  443403.  443404.  443405.  443406.
- 9    /  9:  444132.  444133.  444134.  444135.  444136.
- 10   / 10:  444863.  444864.  444865.  444866.  444867.
- 11   / 11:  445593.  445594.  445595.  445596.  445597.
- 12   / 12:  446324.  446325.  446326.  446327.  446328.
- ---- L:2 T:   1952
- 1    /  1:  447054.  447055.  447056.  447057.  447058.
- 2    /  2:  447785.  447786.  447787.  447788.  447789.
- 3    /  3:  448515.  448516.  448517.  448518.  448519.
- 4    /  4:  449246.  449247.  449248.  449249.  449250.
- 5    /  5:  449976.  449977.  449978.  449979.  449980.
- 6    /  6:  450706.  450707.  450708.  450709.  450710.
- 7    /  7:  451437.  451438.  451439.  451440.  451441.
- 8    /  8:  452167.  452168.  452169.  452170.  452171.
- 9    /  9:  452898.  452899.  452900.  452901.  452902.
- 10   / 10:  453628.  453629.  453630.  453631.  453632.
- 11   / 11:  454359.  454360.  454361.  454362.  454363.
- 12   / 12:  455089.  455090.  455091.  455092.  455093.
+                 1        2        3        4        5        6        7        8        9       10       11       12     
+                 1        2        3        4        5        6        7        8        9       10       11       12
+ 1951   / 1:  438289.  438290.  438291.  438292.  438293.  439019.  439020.  439021.  439022.  439023.  439750.  439751.
+ 1952   / 2:  439752.  439753.  439754.  440480.  440481.  440482.  440483.  440484.  441211.  441212.  441213.  441214.
  
 ! NOW THE ERROR: L LIMITS PASSED INCORRECTLY(ERRONEOUSLY) TO SRC
 list/l=1 out
              VARIABLE : RESHAPE(SRC,OUT_GRID)
-             SUBSET   : 5 by 12 points (X-Z)
+             SUBSET   : 12 points (Z)
              Y        : 0.5 to 1.5
              T        : 1951
-                1        2        3        4        5     
-                1        2        3        4        5
- 1    /  1:  438289.  438290.  438291.  438292.  438293.
- 2    /  2:  439019.  439020.  439021.  439022.  439023.
- 3    /  3:  439750.  439751.  439752.  439753.  439754.
- 4    /  4:  440480.  440481.  440482.  440483.  440484.
- 5    /  5:  441211.  441212.  441213.  441214.  441215.
- 6    /  6:  441941.  441942.  441943.  441944.  441945.
- 7    /  7:  442672.  442673.  442674.  442675.  442676.
- 8    /  8:  443402.  443403.  443404.  443405.  443406.
- 9    /  9:  444132.  444133.  444134.  444135.  444136.
- 10   / 10:  444863.  444864.  444865.  444866.  444867.
- 11   / 11:  445593.  445594.  445595.  445596.  445597.
- 12   / 12:  446324.  446325.  446326.  446327.  446328.
+ 1    /  1:  438289.
+ 2    /  2:  438290.
+ 3    /  3:  438291.
+ 4    /  4:  438292.
+ 5    /  5:  438293.
+ 6    /  6:  439019.
+ 7    /  7:  439020.
+ 8    /  8:  439021.
+ 9    /  9:  439022.
+ 10   / 10:  439023.
+ 11   / 11:  439750.
+ 12   / 12:  439751.
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_delete_child_var.jnl
 ! err491_delete_child_var.jnl
 ! *sh* 4/99
@@ -25494,6 +25207,7 @@ list  ypolymark	! incorrect values: 10, 20, 30
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_dp_time_write.jnl
 ! err491_dp_time_write.jnl
 ! *sh* 10/98
@@ -25516,6 +25230,7 @@ sp ncdump out.cdf >> all_ncdump.out
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_gmax.jnl
 ! err491_gmax.jnl
 ! 9 Dec. 1998 *sh*
@@ -25532,6 +25247,7 @@ load ts[gt=t24 at max]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_grid_from_name.jnl
 ! err491_grid_from_name.jnl
 ! *sh* 3/99
@@ -25552,12 +25268,11 @@ show grid
  normal    Y
  Z10       Z                   10 r   1                    10                  full
  normal    T
- normal    E
- normal    F
 can mode ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_let_d.jnl
 ! err491_let_d.jnl
 ! *sh* 10/98
@@ -25588,6 +25303,7 @@ stat/i=1:3/j=1:3 a
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_sh_var_templates.jnl
 ! SHOW VARIABLE templates are not robust
  
@@ -25602,6 +25318,7 @@ sho var mld*dec		! works
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_single_char_replace.jnl
 ! err491_single_char_replace.jnl
  
@@ -25620,6 +25337,7 @@ hh
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_spawn_quotes.jnl
 ! err491_spawn_quotes.jnl
  
@@ -25627,10 +25345,11 @@ GO err491_spawn_quotes.jnl
  
 ! this should be a valid command
 SPAWN "date"
-Wed May 11 16:11:23 PDT 2016
+Tue Apr 11 16:47:14 PDT 2017
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_time_regridding.jnl
 ! err491_time_regridding.jnl
 ! from Jon 10/16/98
@@ -25666,6 +25385,7 @@ plot/over bad[t=@sbx:3]
 ! 3/01 *kob* uncomment the below - seems to run on all systems
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_unknown_function.jnl
 ! err491_unknown_function
 ! 3/99 *sh*
@@ -25683,6 +25403,7 @@ can mode ignore
 ! *kob* added 6/11/1999
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err500_IF_THEN_ELSE_quote.jnl
 ! err500_IF_THEN_ELSE_quote.jnl
  
@@ -25696,8 +25417,10 @@ I is too big
  
 ! ******** V510 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_sample
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_sample
 GO bn_sample			! internal (optimized) SAMPLE* functions
 ! bn_sample.jnl
 ! 10/99 *sh*
@@ -25754,45 +25477,41 @@ list SAMPLEI(sst[l=1:3,y=-2:2],{30,40,50})
  1N   / 46:  29.1373  28.9243  28.3264
  1S   / 45:  28.8965  28.8240  28.5357
 SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 12800
- 
-            number of free memory blocks: 1987
-            largest free region: 1984
-            number of free regions: 4
-            free memory table slots: 487
-            number of UN-CACHED variables: 0
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 39 words
+    Current cache: 63 words
+    Total table slots: 500
+    Free table slots: 487
+    Un-cached variables: 0
  
 ! these should break sampling up into separate reads
 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     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     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     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G006)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  7 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    (C09,V02 C: 11 dset:   1 I:   30   30  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading SST      M: 29 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 11 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 25 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 11 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 23 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 31 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE (C01,V02 M: 33 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 27 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ const_v {30,...} M:181 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing sampling tpry on I axis:        1        3 dset:   1
+ eval    (C09,V02 C: 11 dset:   1 I:     30     30  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading SST      M:174 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ eval    (C09,V02 C: 11 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:154 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ eval    (C09,V02 C: 11 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:151 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:175 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE (C01,V02 M:177 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:163 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:181 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST[L=1,Y=-2:2],{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 2 points (LATITUDE)
@@ -25802,32 +25521,32 @@ list/i=2 SAMPLEI(sst[l=1,y=-2:2],{30,40,50})	! only I=2 from result
                 2
  1N   / 46:  28.1992
  1S   / 45:  28.5607
- -DELETE (C01,V02 M: 34 dset:   1 I:    2    2  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE (C01,V02 M:181 dset:   1 I:      2      2  J:   45   46  K: -999 -999  L:      1      1
 cancel memory/all
- -DELETE (C09,V02 M: 21 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 23 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C09,V02 M: 24 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C09,V02 M: 28 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 29 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C01,V02 M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE (C09,V02 M:148 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:151 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE (C09,V02 M:152 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:154 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE (C09,V02 M:173 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:174 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ -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     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     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 (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G006)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 33 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 25 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 23 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 21 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE          M: 28 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M: 29 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 24 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 33 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ reading SST      M:154 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:151 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:148 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE          M:173 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE SST      M:174 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:152 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:177 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25837,30 +25556,30 @@ list/l=1/y=-2:2  SAMPLEI(sst,{30,40,50})
  1N   / 46:  28.2222  28.1992  28.4514
  1S   / 45:  28.1514  28.5607  28.8326
 cancel memory/all
- -DELETE SST      M: 21 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 23 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 29 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M:148 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:151 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ -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     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 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     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    A        C:  9 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 21 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  9 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 28 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  9 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 27 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 23 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 24 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ eval    A        C:  9 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:148 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ eval    A        C:  9 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:173 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ eval    A        C:  9 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:163 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:151 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE SST      M:154 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:152 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:174 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(A  ,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25872,32 +25591,32 @@ list/l=1/y=-2:2  SAMPLEI(a  ,{30,40,50})
  
 ! these should NOT break up the access into chunks
 cancel memory/all
- -DELETE SST      M: 21 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 25 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 27 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 28 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 31 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 33 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 34 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M:148 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE EX#1     M:154 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:163 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:173 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE A        M:175 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -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     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     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  7 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    (C09,V02 C: 11 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 31 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE A        M: 33 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 25 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ const_v {30,...} M:181 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing sampling tpry on I axis:        1        3 dset:   1
+ eval    (C09,V02 C: 11 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:173 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE A        M:175 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE A        M:177 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:154 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:181 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST[I=30:40],{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25907,29 +25626,29 @@ list/l=1/y=-2:2  SAMPLEI(sst[i=30:40],{30,40,50})
  1N   / 46:  28.2222  28.1992     ....
  1S   / 45:  28.1514  28.5607     ....
 let/quiet a = sst[i=30:40]
- -DELETE (C09,V02 M: 27 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE (C01,V02 M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -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 GSQ1            COADSX    COADSY    NORMAL    TIME4
 cancel memory/all
- -DELETE SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M:173 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
 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     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     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 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 28 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    A        C:  9 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE          M: 27 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE          M: 33 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 31 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 28 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ eval    A        C:  9 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:181 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE          M:163 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE          M:177 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:175 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:173 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(A,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25939,23 +25658,23 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  1N   / 46:  28.2222  28.1992     ....
  1S   / 45:  28.1514  28.5607     ....
 cancel memory/all
- -DELETE A        M: 25 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:154 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -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     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 (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30}     M: 34 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     1 dset:   1
- eval    A        C:  9 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 25 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 33 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 27 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30}     M: 34 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        1 dset:   1
+ eval    A        C:  9 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:173 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE A        M:154 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      1  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M:177 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:163 dset:   1 I:      1      1  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30}     M:181 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(A,{30})
              FILENAME : coads_climatology.cdf
              SUBSET   : 2 points (LATITUDE)
@@ -25966,28 +25685,28 @@ list/l=1/y=-2:2  SAMPLEI(a,{30})		! sample at just 1 point
  1N   / 46:  28.2222
  1S   / 45:  28.1514
 cancel memory/all
- -DELETE SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 31 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 33 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M:173 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -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     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 (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     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  7 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C11,V02 C:  9 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- constan cnst     M: 33 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 33 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     1 dset:   1
- eval    A        C: 11 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 28 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 33 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 25 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ eval    (C11,V02 C:  9 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ constan cnst     M:177 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:177 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ doing sampling tpry on I axis:        1        1 dset:   1
+ eval    A        C: 11 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:181 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:173 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      1  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:177 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:154 dset:   1 I:      1      1  J:   45   46  K: -999 -999  L:      1      1
              VARIABLE : SAMPLEI(A,30)
              FILENAME : coads_climatology.cdf
              SUBSET   : 2 points (LATITUDE)
@@ -25998,40 +25717,40 @@ list/l=1/y=-2:2  SAMPLEI(a,30)			! sample at just 1 point
  1N   / 46:  28.2222
  1S   / 45:  28.1514
 cancel memory/all
- -DELETE A        M: 27 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C11,V02 M: 31 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V02 M: 33 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:163 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE (C11,V02 M:175 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE (C01,V02 M:177 dset:   1 I:      1      1  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
 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     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G006)          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
- getgrid A        C:  8 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- 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     NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     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 A        C:  8 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    A        C:  9 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ eval    A        C:  9 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
  strip --> FSST[X=20E:20E(380)@IIN,D=1]
- eval    FSST     C: 12 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    FSST     C: 12 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
  strip --> SST[I=1:180 at FLN:1,D=1]
- strip moduloing SST on X axis:     0   181 dset:   1
- reading SST      M: 27 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing SST on X axis:     1   180 dset:   1
+ strip moduloing SST on X axis:        0      181 dset:   1
+ reading SST      M:163 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ doing moduloing SST on X axis:        1      180 dset:   1
  doing --> SST[I=1:180 at FLN:1,D=1]
  doing --> FSST[X=20E:20E(380)@IIN,D=1]
- -DELETE          M: 31 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE          M: 33 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 23 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE          M:175 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE          M:177 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:151 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:181 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(A,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -26041,38 +25760,36 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  1N   / 46:  182881720.  245818833.  306844239.
  1S   / 45:  183667676.  246892478.  309487473.
 cancel memory/all
- -DELETE FSST     M: 21 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 24 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:    0  181  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 27 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 28 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE FSST     M: 29 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE FSST     M:148 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE A        M:152 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:154 dset:   1 I:      0    181  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:163 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:173 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE FSST     M:174 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE EX#1     M:177 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
  
 ! 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     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 33 dset:   1 I:   30   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:177 dset:   1 I:     30     50  J:   45   45  K: -999 -999  L:      1      1
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 25 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 21 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 34 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 27 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M: 28 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 24 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ found   SST      M:177 dset:   1 I:     30     50  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE SST      M:163 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE SST      M:173 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:154 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:174 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -26084,33 +25801,30 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  2   / 2:  28.5607
  3   / 3:  28.8326
 cancel memory/all
- -DELETE SST      M: 21 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 28 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 33 dset:   1 I:   30   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 34 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 34 dset:   1 I:   30   39  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:177 dset:   1 I:     30     39  J:   45   45  K: -999 -999  L:      1      1
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 33 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 21 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 24 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 27 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 28 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 29 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 33 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ found   SST      M:177 dset:   1 I:     30     39  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:152 dset:   1 I:     40     40  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:148 dset:   1 I:     50     50  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE tpry     M:154 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M:174 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:163 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:173 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -26122,33 +25836,31 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  2   / 2:  28.5607
  3   / 3:  28.8326
 cancel memory/all
- -DELETE SST      M: 21 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 24 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 27 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 28 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 34 dset:   1 I:   30   39  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M:148 dset:   1 I:     50     50  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE SST      M:152 dset:   1 I:     40     40  J:   45   45  K: -999 -999  L:      1      1
+ -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     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 34 dset:   1 I:   30   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:177 dset:   1 I:     30     40  J:   45   45  K: -999 -999  L:      1      1
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 28 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 21 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 29 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 25 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 24 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M: 27 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 33 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 28 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ found   SST      M:177 dset:   1 I:     30     40  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:163 dset:   1 I:     50     50  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE SST      M:148 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE SST      M:152 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:173 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:174 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -26160,33 +25872,30 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  2   / 2:  28.5607
  3   / 3:  28.8326
 cancel memory/all
- -DELETE SST      M: 21 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 27 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 29 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 34 dset:   1 I:   30   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M:152 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
+ -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     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 34 dset:   1 I:   30   41  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:177 dset:   1 I:     30     41  J:   45   45  K: -999 -999  L:      1      1
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 21 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 33 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 24 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 27 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 28 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ found   SST      M:177 dset:   1 I:     30     41  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:148 dset:   1 I:     50     50  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE EX#1     M:174 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M:152 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:173 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:163 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -26254,18 +25963,6 @@ Dynamic grids:
  (AX004)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-    GRID (G006)                          use count:   1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX004)   LATITUDE             5 r   1S                   1N
- normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX004)                         use count:   2
 cancel memory/all
 let/quiet a = sst[l=1,y=1s:1n:.5]
 list SAMPLEI(a,{30,40,50})
@@ -26288,18 +25985,6 @@ Dynamic grids:
  (AX012)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-    GRID (G017)                          use count:   1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX012)   LATITUDE             5 r   1S                   1N
- normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX012)                         use count:   2
  
 ! sampling a pseudo-variable
 list SAMPLEI(X[x=1:12],{3,4,7,15})
@@ -26456,29 +26141,29 @@ 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  (AX004)   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  (AX004)   NORMAL    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 (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     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {31-,48} M: 34 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     7 dset:   1
- eval    (C09,V02 C: 10 dset:   1 I:   31   35  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading SST      M: 29 dset:   1 I:   31   35  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 10 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 24 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 10 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 21 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE Y        M: 31 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
- -DELETE SST      M: 32 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 25 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {31-,48} M: 34 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G017)          NORMAL    (AX004)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ABSTRACT  (AX004)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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
+ 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
+ doing sampling tpry on I axis:        1        7 dset:   1
+ eval    (C09,V02 C: 10 dset:   1 I:     31     35  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading SST      M:157 dset:   1 I:     31     35  J:   48   48  K: -999 -999  L:      1      1
+ eval    (C09,V02 C: 10 dset:   1 I:     37     37  J:   48   48  K: -999 -999  L:      1      1
+ reading SST      M:148 dset:   1 I:     37     37  J:   48   48  K: -999 -999  L:      1      1
+ eval    (C09,V02 C: 10 dset:   1 I:     44     48  J:   48   48  K: -999 -999  L:      1      1
+ reading SST      M:173 dset:   1 I:     44     48  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE (C01,V02 M:161 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:      7      7  M: -999 -999  N: -999 -999
+ -DELETE SST      M:174 dset:   1 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:150 dset:   1 I:      1      7  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE {31,...} M:175 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
              FILENAME : coads_climatology.cdf
              SUBSET   : 7 points (X)
@@ -26496,20 +26181,17 @@ list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
  
 ! test cache hits
 list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48}) !   <-- CACHE HIT FAILS!!!
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {31-,48} M: 34 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     7 dset:   1
- eval    (C09,V02 C: 10 dset:   1 I:   31   35  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading SST      M: 18 dset:   1 I:   31   35  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 10 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 33 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 10 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 16 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE Y        M: 31 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 25 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 28 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {31-,48} M: 34 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        7 dset:   1
+ found   (C09,V02 M:152 dset:   1 I:     31     35  J:   48   48  K: -999 -999  L:      1      1
+ found   (C09,V02 M:146 dset:   1 I:     37     37  J:   48   48  K: -999 -999  L:      1      1
+ found   (C09,V02 M:176 dset:   1 I:     44     48  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE (C01,V02 M:161 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:      7      7  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:150 dset:   1 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:154 dset:   1 I:      1      7  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE {31,...} M:175 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
              FILENAME : coads_climatology.cdf
              SUBSET   : 7 points (X)
@@ -26529,21 +26211,18 @@ let a = SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
 load a
 set mode diagnostic
 list a 			!   <-- CACHE HIT FAILS!!!
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V01 C:  8 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {31-,48} M: 19 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     7 dset:   1
- eval    (C09,V01 C: 12 dset:   1 I:   31   35  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading SST      M: 14 dset:   1 I:   31   35  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V01 C: 12 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 11 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V01 C: 12 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  9 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE Y        M: 31 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
- -DELETE          M: 27 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 12 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {31-,48} M: 19 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V01 C:  8 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ const_v {31,...} M:146 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing sampling tpry on I axis:        1        7 dset:   1
+ found   (C09,V01 M:152 dset:   1 I:     31     35  J:   48   48  K: -999 -999  L:      1      1
+ found   (C09,V01 M:175 dset:   1 I:     37     37  J:   48   48  K: -999 -999  L:      1      1
+ found   (C09,V01 M:154 dset:   1 I:     44     48  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE          M:161 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:      7      7  M: -999 -999  N: -999 -999
+ -DELETE          M:176 dset:   1 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:143 dset:   1 I:      1      7  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE {31,...} M:146 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
              FILENAME : coads_climatology.cdf
              SUBSET   : 7 points (X)
@@ -26561,16 +26240,12 @@ list a 			!   <-- CACHE HIT FAILS!!!
 set mode/last diagnostic
  
 SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 12800
- 
-            number of free memory blocks: 1978
-            largest free region: 1976
-            number of free regions: 3
-            free memory table slots: 478
-            number of UN-CACHED variables: 0
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 38 words
+    Current cache: 50 words
+    Total table slots: 500
+    Free table slots: 490
+    Un-cached variables: 0
  
 ! test SAMPLEJ
 let/quiet a = sst + Z[z=0:500:5]
@@ -26788,8 +26463,10 @@ list SAMPLEL(X[x=110:200:10],{3,4,7})	! normal axis
  3   / 3:........................................
  
  
-GO bn_reset
+GO bn_reset bn_strides_revs_perms
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_strides_revs_perms
 GO bn_strides_revs_perms	! netCDF fancy reads
 ! bn_strides_revs_perms.jnl
 ! *sh* 6/99
@@ -26895,8 +26572,6 @@ show grid xytvar
  YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
  TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
- normal    E
- normal    F
 list xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -26921,8 +26596,6 @@ show grid xytvar
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
- normal    E
- normal    F
 list xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -26947,8 +26620,6 @@ show grid xytvar
  YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
  XLON      T (degrees_east)    40mr   141                  180                 full
- normal    E
- normal    F
 list xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -26973,8 +26644,6 @@ show grid xytvar
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  YLAT      T (degrees_north)   30 r   1                    30                  full
- normal    E
- normal    F
 list xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -27000,8 +26669,6 @@ show grid xytvar
  XLON      Y (degrees_east)    40mr   141                  180                 full
  YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
- normal    E
- normal    F
 list/k=1:2 xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -27027,8 +26694,6 @@ show grid xytvar
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  YLAT      T (degrees_north)   30 r   1                    30                  full
- normal    E
- normal    F
 list xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -27054,8 +26719,6 @@ show grid xytvar
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  YLAT      T (degrees_north)   30 r   1                    30                  full
- normal    E
- normal    F
 show grid var
     GRID GPC1
  name       axis              # pts   start                end                 subset
@@ -27063,8 +26726,6 @@ show grid var
  XAX1_4    Y                    4 r   1                    4                   full
  YAX1_3    Z                    3 r   1                    3                   full
  ZAX1_2    T                    2 r   1                    2                   full
- normal    E
- normal    F
 canc data/all
  
 ! * * * * * STRIDES * * * * *
@@ -27075,28 +26736,28 @@ cancel memory/all
 SHOW DATA
      currently SET data sets:
     1> ./bn_strides.cdf  (default)
- name     title                             I         J         K         L         M         N
- VAR      L*1000 + K*100 + J*10 + I        1:4       1:3       1:2       1:1       ...       ...
- MIDVAR   VAR                              1:9       1:8       1:7       1:6       ...       ...
- BIGVAR   VAR                              1:40      1:30      1:20      1:10      ...       ...
+ name     title                             I         J         K         L
+ VAR      L*1000 + K*100 + J*10 + I        1:4       1:3       1:2       1:1
+ MIDVAR   VAR                              1:9       1:8       1:7       1:6
+ BIGVAR   VAR                              1:40      1:30      1:20      1:10
  UNEVENVAR
-          L*1000 + K*100 + J[GY=YUNEVEN]*  1:10      1:8       1:6       1:4       ...       ...
- XYTVAR   L*1000 + J*10 + I                1:40      1:30      ...       1:20      ...       ...
+          L*1000 + K*100 + J[GY=YUNEVEN]*  1:10      1:8       1:6       1:4
+ XYTVAR   L*1000 + J*10 + I                1:40      1:30      ...       1:20
  
  
 ! 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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    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 (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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 44 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 52 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27115,13 +26776,10 @@ 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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G018)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 52 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27141,23 +26799,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    NORMAL    NORMAL
- -DELETE VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 44 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  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 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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
+ 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
- rdstride VAR      C:  9 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 44 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : VAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
@@ -27173,14 +26830,8 @@ list a
  2   / 2:  1222.00  1224.00
  3   / 3:  1232.00  1234.00
 list a		! from cache ...
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G018)           @XACT
- rdstride VAR      C:  9 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 40 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 52 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
+ found   A        M:179 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
              VARIABLE : VAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
@@ -27198,29 +26849,27 @@ list a		! from cache ...
  
 ! cache hit from full region cache -- bypass use of strides
 cancel memory/all
- -DELETE VAR      M: 40 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 44 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 52 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -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    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 GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- reading VAR      M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
+ reading VAR      M:180 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
 LIST VAR[i=2:4:2]
- dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    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 (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 44 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27237,18 +26886,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    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 (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 44 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27263,26 +26912,26 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.00  1214.00
  3   / 2:  1232.00  1234.00
 CANC MEM/ALL
- -DELETE VAR      M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:170 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
+ -DELETE VAR      M:173 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
+ -DELETE VAR      M:180 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  
 ! 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    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 (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
+ 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
- strip moduloing VAR on X axis:     1    10 dset:   1
- reading VAR      M: 52 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing VAR on X axis:     1     4 dset:   1
- regrid  VAR      M: 40 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -27297,24 +26946,24 @@ LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
  7    / 3:  1113.00
  10   / 4:  1112.00
 cancel axis/modulo XAX1_4
- -DELETE VAR      M: 40 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 43 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 52 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:170 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
+ -DELETE VAR      M:173 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
+ -DELETE VAR      M:180 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  
 ! 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    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 (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 43 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 52 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27329,19 +26978,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    NORMAL    NORMAL
- -DELETE VAR      M: 43 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  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 (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 43 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27358,24 +27007,24 @@ 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    NORMAL    NORMAL
- -DELETE VAR      M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  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 GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
  
 ! averaging causes bypass of strides
 LIST VAR[i=2:4:2 at ave]
- dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    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 (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
+ 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
- reading VAR      M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- regrid  VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X at AVE
              FILENAME : bn_strides.cdf
@@ -27394,25 +27043,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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G018)          (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   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   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 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    3    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- rdstride BIGVAR   C: 10 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 40 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 43 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -27424,26 +27073,26 @@ list/j=1/k=1/l=1 a[i=3:5]
  11   / 3:  1121.00
  16   / 4:  1126.00
  21   / 5:  1131.00
- -DELETE A        M: 44 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -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   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 (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- eval    A        C:  8 dset:   1 I:    3    5  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- rdstride BIGVAR   C: 11 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 39 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 44 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- regrid  A        M: 38 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27460,13 +27109,13 @@ 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   NORMAL    NORMAL
- -DELETE A        M: 38 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  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 GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading UNE-NVAR M: 38 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
+ reading UNE-NVAR M:166 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
              FILENAME : bn_strides.cdf
              SUBSET   : 4 points (X)
@@ -27477,28 +27126,28 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR
              1        2        3        4
           1111.00  1112.00  1113.00  1114.00
 cancel mem/all
- -DELETE UNE-NVAR M: 38 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 39 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 40 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 43 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 44 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M:166 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
+ -DELETE BIGVAR   M:168 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
+ -DELETE BIGVAR   M:170 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
+ -DELETE A        M:173 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
+ -DELETE A        M:179 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
+ -DELETE VAR      M:180 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  
 ! basic strides
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    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 (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 44 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27513,13 +27162,10 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
 ! cache hit after changes to COMPLETE_MISSING_LIMS and FLESH_OUT_AXIS
 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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27533,26 +27179,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 44 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    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 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C: 10 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 44 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : UNEVENVAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 points (X)
@@ -27564,14 +27209,8 @@ list/order=x/j=1/k=1/l=1 a
           1112.00  1114.00
 list/order=x/j=1/k=1/l=1 a		! from cache ...
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G018)           @XACT
- rdstride UNE-NVAR C: 10 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 40 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
+ found   A        M:179 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
              VARIABLE : UNEVENVAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 points (X)
@@ -27584,31 +27223,29 @@ list/order=x/j=1/k=1/l=1 a		! from cache ...
  
 ! cache hit from full region cache -- bypass use of strides
 cancel memory/all
- -DELETE UNE-NVAR M: 40 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 44 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 52 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -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    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 GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading UNE-NVAR M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
+ reading UNE-NVAR M:180 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
 LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    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 (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 44 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27621,19 +27258,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    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 (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 40 dset:   1 I:    1    2  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 44 dset:   1 I:    2    4  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
  doing limits reconciliation on Y axis: UNEVENVAR
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
@@ -27646,28 +27283,28 @@ LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:5:2]
                1
  0.3  / 1:  1112.00
  0.6  / 2:  1114.00
- -DELETE UNE-NVAR M: 44 dset:   1 I:    1    1  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M:179 dset:   1 I:      1      1  J:    1    2  K:    1    1  L:      1      1
 CANC MEM/ALL
- -DELETE UNE-NVAR M: 40 dset:   1 I:    1    2  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M:170 dset:   1 I:      1      2  J:    1    3  K:    1    1  L:      1      1
+ -DELETE UNE-NVAR M:173 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
+ -DELETE UNE-NVAR M:180 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
  
 ! 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    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 (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
+ 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
- strip moduloing UNEVENVAR on X axis:     1    29 dset:   1
- reading UNE-NVAR M: 52 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing UNEVENVAR on X axis:     1    10 dset:   1
- regrid  UNE-NVAR M: 40 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27679,25 +27316,25 @@ LIST/order=x UNEVENVAR[I=1:30:7,j=1,k=1,l=1]    ! 1, 8, 15(5), 22(2)
              1        2        3        4        5
           1111.00  1118.00  1115.00  1112.00  1119.00
 cancel axis/modulo XUNEVEN
- -DELETE UNE-NVAR M: 40 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 43 dset:   1 I:    1   29  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M:170 dset:   1 I:      1      5  J:    1    1  K:    1    1  L:      1      1
+ -DELETE UNE-NVAR M:173 dset:   1 I:      1     29  J:    1    1  K:    1    1  L:      1      1
+ -DELETE UNE-NVAR M:180 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
  
 ! 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    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 (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    2    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
              FILENAME : bn_strides.cdf
@@ -27709,20 +27346,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  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 (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    6  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 52 dset:   1 I:    1    3  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 43 dset:   1 I:    2    6  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
              FILENAME : bn_strides.cdf
@@ -27737,19 +27374,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1    3  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  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 (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- reading UNE-NVAR M: 52 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- regrid  UNE-NVAR M: 43 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X at AVE
              FILENAME : bn_strides.cdf
@@ -27764,20 +27401,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 43 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  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 (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 40 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 43 dset:   1 I:    2    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27794,19 +27431,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 40 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  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 (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- reading UNE-NVAR M: 40 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- regrid  UNE-NVAR M: 43 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X at AVE
              FILENAME : bn_strides.cdf
@@ -27829,19 +27466,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 43 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  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 (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 44 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 43 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27858,19 +27495,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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 44 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  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 (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 43 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 44 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27887,19 +27524,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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 43 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  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 (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 43 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -27916,26 +27553,26 @@ 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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
  canceling dset ./bn_strides.cdf
- -DELETE UNE-NVAR M: 40 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -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
  
 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   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10   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 (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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 40 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 52 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27952,19 +27589,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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 40 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  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 (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 52 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 40 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27981,19 +27618,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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 52 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  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 (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 52 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28010,23 +27647,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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10   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 (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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 52 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 40 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -28043,19 +27680,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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 52 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  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 (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 40 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 52 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -28072,19 +27709,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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 40 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  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 (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 40 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28101,8 +27738,8 @@ 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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
  
 ! now with xytvar
@@ -28110,29 +27747,27 @@ cancel region
 set region/i=1:4/j=1:3/l=1:2
 use bn_strides
 show grid xytvar
- 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 GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ 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 GPC5            XLON      YLAT      NORMAL    TTIME
     GRID GPC5
  name       axis              # pts   start                end                 subset
  XLON      LONGITUDE           40mr   141E                 180E                full
  YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
  TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
- normal    E
- normal    F
 list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     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 (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ 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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
              FILENAME : bn_strides.cdf
@@ -28148,19 +27783,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     NORMAL    NORMAL
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28176,19 +27811,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     NORMAL    NORMAL
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          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)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -28204,35 +27839,33 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
  
 use/order=yx bn_strides
 show grid xytvar
- 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 GPC5            YLAT      XLON      NORMAL    TTIME     NORMAL    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 GPC5            YLAT      XLON      NORMAL    TTIME
     GRID GPC5
  name       axis              # pts   start                end                 subset
  YLAT      X (degrees_north)   30 r   1                    30                  full
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
- normal    E
- normal    F
 list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            YLAT      XLON      NORMAL    TTIME     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 (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ 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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
              FILENAME : bn_strides.cdf
@@ -28248,19 +27881,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     NORMAL    NORMAL
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28276,19 +27909,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     NORMAL    NORMAL
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          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)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -28304,35 +27937,33 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
  
 use/order=tyx bn_strides
 show grid xytvar
- 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 GPC5            TTIME     YLAT      NORMAL    XLON      NORMAL    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 GPC5            TTIME     YLAT      NORMAL    XLON
     GRID GPC5
  name       axis              # pts   start                end                 subset
  TTIME     X (DAYS)            20 r   34319                34338               full
  YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
  XLON      T (degrees_east)    40mr   141                  180                 full
- normal    E
- normal    F
 list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            TTIME     YLAT      NORMAL    XLON      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 (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ 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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28348,19 +27979,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      NORMAL    NORMAL
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
- allocate dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28376,19 +28007,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      NORMAL    NORMAL
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          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)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
              FILENAME : bn_strides.cdf
@@ -28404,35 +28035,33 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
  
 use/order=txy bn_strides
 show grid xytvar
- 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 GPC5            TTIME     XLON      NORMAL    YLAT      NORMAL    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 GPC5            TTIME     XLON      NORMAL    YLAT
     GRID GPC5
  name       axis              # pts   start                end                 subset
  TTIME     X (DAYS)            20 r   34319                34338               full
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  YLAT      T (degrees_north)   30 r   1                    30                  full
- normal    E
- normal    F
 list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            TTIME     XLON      NORMAL    YLAT      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 (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ 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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28448,19 +28077,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      NORMAL    NORMAL
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
- allocate dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28476,19 +28105,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      NORMAL    NORMAL
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          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)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
              FILENAME : bn_strides.cdf
@@ -28504,37 +28133,35 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
  
 ! map into Z instead of T
 use/order=zxy bn_strides
 show grid xytvar
- 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 GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    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 GPC5            TTIME     XLON      YLAT      NORMAL
     GRID GPC5
  name       axis              # pts   start                end                 subset
  TTIME     X (DAYS)            20 r   34319                34338               full
  XLON      Y (degrees_east)    40mr   141                  180                 full
  YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
- normal    E
- normal    F
 list/k=1:2 xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      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 (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ 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
- rdstride XYTVAR   C:  8 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28550,20 +28177,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    NORMAL    NORMAL
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  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 (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
+ 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
- rdstride XYTVAR   C:  8 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28579,19 +28206,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    NORMAL    NORMAL
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  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 (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -28607,8 +28234,8 @@ 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    NORMAL    NORMAL
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
  
  
@@ -28631,17 +28258,17 @@ cancel region; set region/l=1
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    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 (G018)          (AX031)   (AX033)   (AX029)   TAX1_6
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6
+ allocate dynamic grid (G018)          (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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28656,26 +28283,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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6    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 (G018)          (AX033)   (AX031)   (AX032)   TAX1_6
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6
+ allocate dynamic grid (G018)          (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
- 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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M: 52 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28690,26 +28317,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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    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 (G018)          (AX031)   (AX033)   (AX029)   TAX1_6
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6
+ allocate dynamic grid (G018)          (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
- 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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on X axis:     1     5 dset:   1
- -DELETE MIDVAR   M: 52 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28724,24 +28351,24 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
  
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    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 (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7
+ allocate dynamic grid (G018)          (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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 52 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28756,27 +28383,27 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    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 (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7
+ allocate dynamic grid (G018)          (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
- 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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on X axis:     1     5 dset:   1
- -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 52 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28791,24 +28418,24 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
  
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    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 (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7
+ allocate dynamic grid (G018)          (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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28823,26 +28450,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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    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 (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7
+ allocate dynamic grid (G018)          (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
- 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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M: 52 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28857,12 +28484,14 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
  
-GO bn_reset
+GO bn_reset bn_non_COARDS_netCDF	
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_non_COARDS_netCDF
 GO bn_non_COARDS_netCDF		! non-standard netCDF files
 ! bn_non_COARDS_netCDF.jnl
 ! *sh* 3/99
@@ -28875,31 +28504,31 @@ use non_COARDS
 show data
      currently SET data sets:
     1> ./non_COARDS.cdf  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  UNORDERED_AXIS
-          disordered axis                  1:5       ...       ...       ...       ...       ...
+          disordered axis                  1:5       ...       ...       ...
        (invalid coordinate axis)
  GAPPY_AXIS
-          gappy axis                       1:5       ...       ...       ...       ...       ...
+          gappy axis                       1:5       ...       ...       ...
        (invalid coordinate axis)
  SCALAR_VAR
-          a good way to encode model parm  1:1       ...       ...       ...       ...       ...
+          a good way to encode model parm  1:1       ...       ...       ...
  TRUE_SCALAR
-          with no dims at all              ...       ...       ...       ...       ...       ...
+          with no dims at all              ...       ...       ...       ...
  MASKED_SST
-          SST * MP_MASK                    1:180     1:90      ...       1:1       ...       ...
- COADSX   Longitude page positions         1:180     1:90      ...       ...       ...       ...
- COADSY   Latitude page positions          1:180     1:90      ...       ...       ...       ...
+          SST * MP_MASK                    1:180     1:90      ...       1:1
+ COADSX   Longitude page positions         1:180     1:90      ...       ...
+ COADSY   Latitude page positions          1:180     1:90      ...       ...
  HAS_NO_AXIS
-          variable with no axis            1:5       ...       ...       ...       ...       ...
+          variable with no axis            1:5       ...       ...       ...
  HAS_UNORDERED_AXIS
-          variable with disordered axis    1:5       ...       ...       ...       ...       ...
+          variable with disordered axis    1:5       ...       ...       ...
  HAS_GAPPY_AXIS
-          variable with gappy axis         1:5       ...       ...       ...       ...       ...
+          variable with gappy axis         1:5       ...       ...       ...
  HAS_BACKWARDS_AXIS
-          variable with backwards axis     1:5       ...       ...       ...       ...       ...
+          variable with backwards axis     1:5       ...       ...       ...
  USES_BIG_IRREG
-          variable defined on too-long ir  ...       ...       ...       1:200000  ...       ...
+          variable defined on too-long ir  ...       ...       ...       1:200000
  
 show grid/x HAS_NO_AXIS
     GRID GAB7
@@ -28908,8 +28537,6 @@ show grid/x HAS_NO_AXIS
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -28924,8 +28551,6 @@ show grid/x HAS_UNORDERED_AXIS
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -28940,8 +28565,6 @@ show grid/x HAS_GAPPY_AXIS
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -28956,8 +28579,6 @@ show grid/x HAS_BACKWARDS_AXIS
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -28972,8 +28593,6 @@ show grid/x SCALAR_VAR
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -28985,8 +28604,6 @@ show grid/i=1:5 USES_BIG_IRREG
  normal    Y
  normal    Z
  BIG_IRREG T (hours)       200000 i   1                    200000              full
- normal    E
- normal    F
  
 show grid MASKED_SST
     GRID GAB5
@@ -28995,8 +28612,6 @@ show grid MASKED_SST
  COADSY1   LATITUDE            90 r   1N                   90N                 full
  normal    Z
  TIME4     TIME                 1mr   16-JAN 06:00         16-JAN 06:00        full
- normal    E
- normal    F
 show grid COADSX
     GRID GAB6
  name       axis              # pts   start                end                 subset
@@ -29004,8 +28619,6 @@ show grid COADSX
  COADSY1   LATITUDE            90 r   1N                   90N                 full
  normal    Z
  normal    T
- normal    E
- normal    F
 show grid COADSY
     GRID GAB6
  name       axis              # pts   start                end                 subset
@@ -29013,37 +28626,35 @@ show grid COADSY
  COADSY1   LATITUDE            90 r   1N                   90N                 full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 show data
      currently SET data sets:
     1> ./non_COARDS.cdf  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  UNORDERED_AXIS
-          disordered axis                  1:5       ...       ...       ...       ...       ...
+          disordered axis                  1:5       ...       ...       ...
        (invalid coordinate axis)
  GAPPY_AXIS
-          gappy axis                       1:5       ...       ...       ...       ...       ...
+          gappy axis                       1:5       ...       ...       ...
        (invalid coordinate axis)
  SCALAR_VAR
-          a good way to encode model parm  1:1       ...       ...       ...       ...       ...
+          a good way to encode model parm  1:1       ...       ...       ...
  TRUE_SCALAR
-          with no dims at all              ...       ...       ...       ...       ...       ...
+          with no dims at all              ...       ...       ...       ...
  MASKED_SST
-          SST * MP_MASK                    1:180     1:90      ...       1:1       ...       ...
- COADSX   Longitude page positions         1:180     1:90      ...       ...       ...       ...
- COADSY   Latitude page positions          1:180     1:90      ...       ...       ...       ...
+          SST * MP_MASK                    1:180     1:90      ...       1:1
+ COADSX   Longitude page positions         1:180     1:90      ...       ...
+ COADSY   Latitude page positions          1:180     1:90      ...       ...
  HAS_NO_AXIS
-          variable with no axis            1:5       ...       ...       ...       ...       ...
+          variable with no axis            1:5       ...       ...       ...
  HAS_UNORDERED_AXIS
-          variable with disordered axis    1:5       ...       ...       ...       ...       ...
+          variable with disordered axis    1:5       ...       ...       ...
  HAS_GAPPY_AXIS
-          variable with gappy axis         1:5       ...       ...       ...       ...       ...
+          variable with gappy axis         1:5       ...       ...       ...
  HAS_BACKWARDS_AXIS
-          variable with backwards axis     1:5       ...       ...       ...       ...       ...
+          variable with backwards axis     1:5       ...       ...       ...
  USES_BIG_IRREG
-          variable defined on too-long ir  ...       ...       ...       1:200000  ...       ...
+          variable defined on too-long ir  ...       ...       ...       1:200000
  
 list UNORDERED_AXIS
              VARIABLE : disordered axis
@@ -29090,8 +28701,10 @@ list HAS_BACKWARDS_AXIS
  
 ! list/i=1:5 BIG_IRREG
  
-GO bn_reset
+GO bn_reset bn_cache_hits
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cache_hits
 GO bn_cache_hits		! cache hits on unspecified (full) regions
 ! bn_cache_hits.jnl
  
@@ -29113,10 +28726,10 @@ GO bn_cache_hits.sub sst
  
 stat $1
  !-> stat sst
- getgrid EX#1     C:  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     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 52 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ reading SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              LONGITUDE: 20E to 20E(380)
@@ -29134,21 +28747,21 @@ stat $1
  Mean    value: 16.52 (unweighted average)
  Standard deviation: 10.139
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 44 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:179 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1
  !-> stat sst
- -DELETE I        M: 44 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 44 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              LONGITUDE: 20E to 20E(380)
@@ -29169,17 +28782,17 @@ stat $1
 define axis/x=130e:80w:1 xtrop
 stat $1[gx=xtrop]
  !-> stat sst[gx=xtrop]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
+ 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
- reading SST      M: 43 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 40 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -29198,28 +28811,28 @@ stat $1[gx=xtrop]
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 40 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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
+ dealloc  dynamic grid (G002)          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
- 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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 40 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:179 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[gx=xtrop]
  !-> stat sst[gx=xtrop]
- -DELETE I        M: 40 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -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
+ 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
- reading SST      M: 40 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 38 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -29242,21 +28855,21 @@ let $1x = $1[gx=xtrop]
  !-> DEFINE VARIABLE sstx = sst[gx=xtrop]
 stat $1x
  !-> stat sstx
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 38 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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 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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTX     C:  6 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
+ 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
- reading SST      M: 38 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 39 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  
              SST[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -29274,26 +28887,21 @@ stat $1x
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     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
+ dealloc  dynamic grid (G002)          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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 35 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:170 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1x
  !-> stat sstx
- -DELETE I        M: 35 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTX     C:  6 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST --> (G002)           @LIN
- reading SST      M: 35 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 34 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -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
+ 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
  
              SST[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -29312,24 +28920,22 @@ stat $1x
  Standard deviation: 9.8848
  
 define grid/x=xtrop gx
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTX     M: 33 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTX     M: 36 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 34 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 39 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G002)          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
+ -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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     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
+ 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
- reading SST      M: 39 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 34 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -29348,28 +28954,28 @@ stat $1[g=gx]
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 34 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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
+ dealloc  dynamic grid (G002)          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
- 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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 34 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:179 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[g=gx]
  !-> stat sst[g=gx]
- -DELETE I        M: 34 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -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
+ 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
- reading SST      M: 34 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 36 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -29391,19 +28997,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     NORMAL    NORMAL
- -DELETE SST      M: 36 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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 (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
+ 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
- reading SST      M: 36 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid XY
- regrid  SST      M: 33 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X, 1 deg on Y
@@ -29422,29 +29028,29 @@ 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     NORMAL    NORMAL
- -DELETE SST      M: 33 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  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
+ dealloc  dynamic grid (G002)          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
- 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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 33 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:179 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[gx=xtrop,gy=ytrop]
  !-> stat sst[gx=xtrop,gy=ytrop]
- -DELETE I        M: 33 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
+ -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
+ 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
- reading SST      M: 33 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid XY
- regrid  SST      M: 30 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X, 1 deg on Y
@@ -29465,19 +29071,19 @@ 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     NORMAL    NORMAL
- -DELETE SST      M: 30 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- 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     NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
 stat $1[g=gxyt]
  !-> stat sst[g=gxyt]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 30 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid XY
- regrid  SST      M: 29 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST      M:179 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              regrid: GXYT
@@ -29496,23 +29102,20 @@ stat $1[g=gxyt]
  Mean    value: 26.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 26 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:173 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[g=gxyt]
  !-> stat sst[g=gxyt]
- -DELETE I        M: 26 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 26 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST      M: 25 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M:173 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST      M:179 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              regrid: GXYT
@@ -29535,15 +29138,12 @@ let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sstxyt = sst[g=gxyt]
 stat $1xyt
  !-> stat sstxyt
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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 SSTXYT   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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXYT   C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 24 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST      M: 23 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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 SSTXYT   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:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ eval    SSTXYT   C:  6 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST      M:179 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29561,24 +29161,20 @@ stat $1xyt
  Mean    value: 26.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 21 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:170 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xyt
  !-> stat sstxyt
- -DELETE I        M: 21 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXYT   C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 21 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST      M: 20 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SSTXYT   M:173 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29598,20 +29194,16 @@ stat $1xyt
  
 let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sstxyt = sst[g=gxyt]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTXYT   M: 19 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTXYT   M: 22 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ -DELETE SSTXYT   M:173 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
 stat $1xyt
  !-> stat sstxyt
- getgrid 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 SSTXYT   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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXYT   C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 22 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST      M: 19 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  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 SSTXYT   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:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ eval    SSTXYT   C:  6 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST      M:179 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29629,24 +29221,20 @@ stat $1xyt
  Mean    value: 26.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 17 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:170 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xyt
  !-> stat sstxyt
- -DELETE I        M: 17 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXYT   C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 17 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST      M: 16 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SSTXYT   M:173 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29666,13 +29254,14 @@ stat $1xyt
  
 stat $1[x=@ave]
  !-> stat sst[x=@ave]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  strip --> SST[X=20E:20E(380)@AVE,D=1]
- reading SST      M: 14 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  doing --> SST[X=20E:20E(380)@AVE,D=1]
+ final --> SST[X=20E:20E(380)@AVE,D=1]
  
              SEA SURFACE TEMPERATURE
              LONGITUDE: 20E to 20E(380) (averaged)
@@ -29690,23 +29279,21 @@ stat $1[x=@ave]
  Mean    value: 14.429 (unweighted average)
  Standard deviation: 10.445
 CONFUSE	
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 12 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:166 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[x=@ave]
  !-> stat sst[x=@ave]
- -DELETE I        M: 12 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST[X=20E:20E(380)@AVE,D=1]
- reading SST      M: 12 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing --> SST[X=20E:20E(380)@AVE,D=1]
+ -DELETE I        M:166 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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:170 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              LONGITUDE: 20E to 20E(380) (averaged)
@@ -29728,16 +29315,14 @@ let $1xave = $1[x=@ave]
  !-> DEFINE VARIABLE sstxave = sst[x=@ave]
 stat $1xave
  !-> stat sstxave
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 SSTXAVE  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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXAVE  C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST[X=20E:20E(380)@AVE,D=1]
- reading SST      M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing --> SST[X=20E:20E(380)@AVE,D=1]
+ 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
+ getgrid SSTXAVE  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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ eval    SSTXAVE  C:  6 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:170 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SST[X=@AVE]
              LONGITUDE: 20E to 20E(380)
@@ -29755,24 +29340,21 @@ stat $1xave
  Mean    value: 14.429 (unweighted average)
  Standard deviation: 10.445
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  5 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:168 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xave
  !-> stat sstxave
- -DELETE I        M:  5 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXAVE  C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST[X=20E:20E(380)@AVE,D=1]
- reading SST      M:  5 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing --> SST[X=20E:20E(380)@AVE,D=1]
+ -DELETE I        M:168 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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SSTXAVE  M:166 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SST[X=@AVE]
              LONGITUDE: 20E to 20E(380)
@@ -29792,14 +29374,14 @@ stat $1xave
  
 stat $1[x=@sbx]
  !-> stat sst[x=@sbx]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  strip --> SST[X=20E:20E(380)@SBX:3,D=1]
- strip moduloing SST on X axis:     0   181 dset:   1
- reading SST      M:  2 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing SST on X axis:     1   180 dset:   1
+ strip moduloing SST on X axis:        0      181 dset:   1
+ found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ doing moduloing SST on X axis:        1      180 dset:   1
  doing --> SST[X=20E:20E(380)@SBX:3,D=1]
  
              SEA SURFACE TEMPERATURE
@@ -29819,25 +29401,21 @@ stat $1[x=@sbx]
  Mean    value: 16.633 (unweighted average)
  Standard deviation: 10.112
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 46 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:153 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[x=@sbx]
  !-> stat sst[x=@sbx]
- -DELETE I        M: 46 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST[X=20E:20E(380)@SBX:3,D=1]
- strip moduloing SST on X axis:     0   181 dset:   1
- reading SST      M: 46 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing SST on X axis:     1   180 dset:   1
- doing --> SST[X=20E:20E(380)@SBX:3,D=1]
+ -DELETE I        M:153 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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:157 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              box smoothed by 3 pts on X
@@ -29860,18 +29438,14 @@ let $1sbx = $1[x=@sbx]
  !-> DEFINE VARIABLE sstsbx = sst[x=@sbx]
 stat $1sbx
  !-> stat sstsbx
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 SSTSBX   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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTSBX   C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST[X=20E:20E(380)@SBX:3,D=1]
- strip moduloing SST on X axis:     0   181 dset:   1
- reading SST      M: 27 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing SST on X axis:     1   180 dset:   1
- doing --> SST[X=20E:20E(380)@SBX:3,D=1]
+ 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
+ getgrid SSTSBX   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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ eval    SSTSBX   C:  6 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:157 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST[X=@SBX]
              LONGITUDE: 20E to 20E(380)
@@ -29889,26 +29463,21 @@ stat $1sbx
  Mean    value: 16.633 (unweighted average)
  Standard deviation: 10.112
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 55 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:152 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1sbx
  !-> stat sstsbx
- -DELETE I        M: 55 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTSBX   C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST[X=20E:20E(380)@SBX:3,D=1]
- strip moduloing SST on X axis:     0   181 dset:   1
- reading SST      M: 55 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing SST on X axis:     1   180 dset:   1
- doing --> SST[X=20E:20E(380)@SBX:3,D=1]
+ -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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SSTSBX   M:153 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST[X=@SBX]
              LONGITUDE: 20E to 20E(380)
@@ -29936,16 +29505,16 @@ GO bn_cache_hits.sub sst5
  
 stat $1
  !-> stat sst5
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 SST5     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5     C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 48 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 53 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 53 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ getgrid SST5     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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ eval    SST5     C:  6 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:168 dset:   1 I:      0    181  J:    1   90  K: -999 -999  L:      1      1
+ constan cnst     M:152 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:152 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  
              SST+5
              LONGITUDE: 20E to 20E(380)
@@ -29963,24 +29532,21 @@ stat $1
  Mean    value: 21.52 (unweighted average)
  Standard deviation: 10.139
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 53 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:152 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1
  !-> stat sst5
- -DELETE I        M: 53 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5     C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 53 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5     M:151 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST+5
              LONGITUDE: 20E to 20E(380)
@@ -30001,20 +29567,17 @@ stat $1
 define axis/x=130e:80w:1 xtrop
 stat $1[gx=xtrop]
  !-> stat sst5[gx=xtrop]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
+ 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
- eval    SST5     C:  7 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 50 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 42 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 42 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 42 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  
              SST+5
              regrid: 1 deg on X
@@ -30033,31 +29596,28 @@ stat $1[gx=xtrop]
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5     M: 42 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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
+ dealloc  dynamic grid (G002)          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
- 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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 42 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:152 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[gx=xtrop]
  !-> stat sst5[gx=xtrop]
- -DELETE I        M: 42 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -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
+ 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
- eval    SST5     C:  7 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 42 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 45 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 45 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 45 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  
              SST+5
              regrid: 1 deg on X
@@ -30080,24 +29640,21 @@ let $1x = $1[gx=xtrop]
  !-> DEFINE VARIABLE sst5x = sst5[gx=xtrop]
 stat $1x
  !-> stat sst5x
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5     M: 45 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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 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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5X    C:  6 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
+ 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
- eval    SST5     C:  9 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 45 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 58 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 58 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 58 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  
              SST5[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -30115,29 +29672,21 @@ stat $1x
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     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
+ dealloc  dynamic grid (G002)          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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 61 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:148 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1x
  !-> stat sst5x
- -DELETE I        M: 61 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5X    C:  6 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST5 --> (G002)           @LIN
- eval    SST5     C:  9 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 61 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 62 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -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
+ 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
  
              SST5[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -30158,20 +29707,15 @@ stat $1x
 define grid/x=xtrop gx
 stat $1[g=gx]
  !-> stat sst5[g=gx]
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST5 --> (G002)           @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 65 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 66 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
+ 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
+ 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
  
              SST+5
              regrid: 1 deg on X
@@ -30190,30 +29734,25 @@ stat $1[g=gx]
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     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
+ dealloc  dynamic grid (G002)          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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 68 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:148 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[g=gx]
  !-> stat sst5[g=gx]
- -DELETE I        M: 68 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST5 --> (G002)           @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 68 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 69 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 69 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 69 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -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
+ 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
+ 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
  
              SST+5
              regrid: 1 deg on X
@@ -30235,16 +29774,13 @@ 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     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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G002)          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
- eval    SST5     C:  7 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 71 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 72 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 72 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ found   SST5     M:151 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid XY
- regrid  SST5     M: 72 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST5     M:148 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST+5
              regrid: GXYT
@@ -30263,26 +29799,20 @@ stat $1[gx=xtrop,gy=ytrop]
  Mean    value: 31.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 74 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:146 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[gx=xtrop,gy=ytrop]
  !-> stat sst5[gx=xtrop,gy=ytrop]
- -DELETE I        M: 74 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 74 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 75 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 75 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST5     M: 75 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M:146 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5     M:148 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST+5
              regrid: GXYT
@@ -30303,21 +29833,15 @@ stat $1[gx=xtrop,gy=ytrop]
  
 define grid/like=$1/x=xtrop/y=ytrop gxyt
  !-> define grid/like=sst5/x=xtrop/y=ytrop gxyt
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- 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     NORMAL    NORMAL
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ 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
 stat $1[g=gxyt]
  !-> stat sst5[g=gxyt]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 77 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 78 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 78 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST5     M: 78 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5     M:148 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST+5
              regrid: GXYT
@@ -30336,26 +29860,20 @@ stat $1[g=gxyt]
  Mean    value: 31.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 80 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:146 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[g=gxyt]
  !-> stat sst5[g=gxyt]
- -DELETE I        M: 80 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 80 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 81 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 81 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST5     M: 81 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M:146 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5     M:148 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST+5
              regrid: GXYT
@@ -30378,18 +29896,12 @@ let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sst5xyt = sst5[g=gxyt]
 stat $1xyt
  !-> stat sst5xyt
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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 SST5XYT  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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XYT  C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  9 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 83 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 84 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 84 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST5     M: 84 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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 SST5XYT  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:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ eval    SST5XYT  C:  6 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5     M:148 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST5[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -30407,27 +29919,20 @@ stat $1xyt
  Mean    value: 31.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 87 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:143 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xyt
  !-> stat sst5xyt
- -DELETE I        M: 87 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XYT  C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  9 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 87 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 88 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 88 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST5     M: 88 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M:143 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5XYT  M:146 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST5[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -30447,62 +29952,36 @@ stat $1xyt
  
 let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sst5xyt = sst5[g=gxyt]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5XYT  M: 86 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5XYT  M: 90 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5X    M: 60 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5X    M: 64 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5     M: 58 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 62 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 66 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 69 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 31 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 41 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 51 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 57 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 59 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 63 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 67 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 70 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 72 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 73 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 75 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 76 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 78 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 79 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 81 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 82 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 84 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 85 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 88 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 89 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTSBX   M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTSBX   M: 56 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTXAVE  M:  3 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTXAVE  M:  7 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTXYT   M: 15 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTXYT   M: 18 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ -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
+ -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
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ -DELETE SSTSBX   M:153 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ -DELETE SSTXAVE  M:166 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ -DELETE SSTXYT   M:173 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
 stat $1xyt
  !-> stat sst5xyt
- getgrid 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 SST5XYT  C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid SST5     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XYT  C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  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 SST5XYT  C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid SST5     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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ eval    SST5XYT  C:  6 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  9 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 18 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 15 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 15 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    SST5     C:  9 dset:   1 I:     55    131  J:   35   56  K: -999 -999  L:      1      1
+ found   SST      M:168 dset:   1 I:      0    181  J:    1   90  K: -999 -999  L:      1      1
+ constan cnst     M:173 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:173 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  regrid XY
- regrid  SST5     M: 15 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST5     M:173 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST5[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -30520,27 +29999,20 @@ stat $1xyt
  Mean    value: 31.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 56 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:151 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xyt
  !-> stat sst5xyt
- -DELETE I        M: 56 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XYT  C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  9 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 56 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M:  1 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  1 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST5     M:  1 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M:151 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5XYT  M:153 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST5[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -30560,16 +30032,17 @@ stat $1xyt
  
 stat $1[x=@ave]
  !-> stat sst5[x=@ave]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  strip --> SST5[X=20E:20E(380)@AVE,D=1]
- eval    SST5     C:  7 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 85 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 84 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 84 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    SST5     C:  7 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:168 dset:   1 I:      0    181  J:    1   90  K: -999 -999  L:      1      1
+ constan cnst     M:151 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:151 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  doing --> SST5[X=20E:20E(380)@AVE,D=1]
+ final --> SST5[X=20E:20E(380)@AVE,D=1]
  
              SST+5
              LONGITUDE: 20E to 20E(380) (averaged)
@@ -30587,26 +30060,21 @@ stat $1[x=@ave]
  Mean    value: 19.429 (unweighted average)
  Standard deviation: 10.445
 CONFUSE	
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 81 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:152 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[x=@ave]
  !-> stat sst5[x=@ave]
- -DELETE I        M: 81 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST5[X=20E:20E(380)@AVE,D=1]
- eval    SST5     C:  7 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 81 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 79 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 79 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing --> SST5[X=20E:20E(380)@AVE,D=1]
+ -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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5     M:151 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SST+5
              LONGITUDE: 20E to 20E(380) (averaged)
@@ -30628,19 +30096,14 @@ let $1xave = $1[x=@ave]
  !-> DEFINE VARIABLE sst5xave = sst5[x=@ave]
 stat $1xave
  !-> stat sst5xave
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 SST5XAVE 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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XAVE C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST5[X=20E:20E(380)@AVE,D=1]
- eval    SST5     C:  9 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 76 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 75 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 75 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing --> SST5[X=20E:20E(380)@AVE,D=1]
+ 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
+ getgrid SST5XAVE 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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ eval    SST5XAVE C:  6 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5     M:151 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SST5[X=@AVE]
              LONGITUDE: 20E to 20E(380)
@@ -30658,27 +30121,21 @@ stat $1xave
  Mean    value: 19.429 (unweighted average)
  Standard deviation: 10.445
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 70 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:150 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xave
  !-> stat sst5xave
- -DELETE I        M: 70 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XAVE C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST5[X=20E:20E(380)@AVE,D=1]
- eval    SST5     C:  9 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 70 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 67 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 67 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing --> SST5[X=20E:20E(380)@AVE,D=1]
+ -DELETE I        M:150 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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5XAVE M:152 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SST5[X=@AVE]
              LONGITUDE: 20E to 20E(380)
@@ -30698,17 +30155,14 @@ stat $1xave
  
 stat $1[x=@sbx]
  !-> stat sst5[x=@sbx]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  strip --> SST5[X=20E:20E(380)@SBX:3,D=1]
- strip moduloing SST5 on X axis:     0   181 dset:   1
- eval    SST5     C:  9 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 57 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 51 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 51 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing SST5 on X axis:     1   180 dset:   1
+ strip moduloing SST5 on X axis:        0      181 dset:   1
+ found   SST5     M:148 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ doing moduloing SST5 on X axis:        1      180 dset:   1
  doing --> SST5[X=20E:20E(380)@SBX:3,D=1]
  
              SST+5
@@ -30728,28 +30182,21 @@ stat $1[x=@sbx]
  Mean    value: 21.633 (unweighted average)
  Standard deviation: 10.112
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 69 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:143 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[x=@sbx]
  !-> stat sst5[x=@sbx]
- -DELETE I        M: 69 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST5[X=20E:20E(380)@SBX:3,D=1]
- strip moduloing SST5 on X axis:     0   181 dset:   1
- eval    SST5     C:  9 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 69 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing SST5 on X axis:     1   180 dset:   1
- doing --> SST5[X=20E:20E(380)@SBX:3,D=1]
+ -DELETE I        M:143 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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5     M:146 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST+5
              box smoothed by 3 pts on X
@@ -30772,21 +30219,14 @@ let $1sbx = $1[x=@sbx]
  !-> DEFINE VARIABLE sst5sbx = sst5[x=@sbx]
 stat $1sbx
  !-> stat sst5sbx
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 SST5SBX  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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5SBX  C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST5[X=20E:20E(380)@SBX:3,D=1]
- strip moduloing SST5 on X axis:     0   181 dset:   1
- eval    SST5     C: 11 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 64 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 60 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 60 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing SST5 on X axis:     1   180 dset:   1
- doing --> SST5[X=20E:20E(380)@SBX:3,D=1]
+ 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
+ getgrid SST5SBX  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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ eval    SST5SBX  C:  6 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5     M:146 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST5[X=@SBX]
              LONGITUDE: 20E to 20E(380)
@@ -30804,29 +30244,21 @@ stat $1sbx
  Mean    value: 21.633 (unweighted average)
  Standard deviation: 10.112
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 92 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:142 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1sbx
  !-> stat sst5sbx
- -DELETE I        M: 92 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5SBX  C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST5[X=20E:20E(380)@SBX:3,D=1]
- strip moduloing SST5 on X axis:     0   181 dset:   1
- eval    SST5     C: 11 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 92 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 93 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 93 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing SST5 on X axis:     1   180 dset:   1
- doing --> SST5[X=20E:20E(380)@SBX:3,D=1]
+ -DELETE I        M:142 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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5SBX  M:143 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST5[X=@SBX]
              LONGITUDE: 20E to 20E(380)
@@ -30857,25 +30289,24 @@ set mode diag
  
 let a = i[i=1:10]
 say `a,return=isize`     ! no evaluation of a required -- just context
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ 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
+ getgrid A        C:  7 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 A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 97 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pass #2 A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  I        M:142 dset:   0 I:      1     10  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 10
 10
 list/nohead a            ! evaluate it now
- -DELETE I        M: 97 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 97 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M:142 dset:   0 I:      1     10  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
+ found   A        M:177 dset:   0 I:      1     10  J: -999 -999  K: -999 -999  L:   -999   -999
  1    /  1:   1.0000
  2    /  2:   2.0000
  3    /  3:   3.0000
@@ -30888,70 +30319,46 @@ list/nohead a            ! evaluate it now
  10   / 10:  10.0000
  
 let a = XSEQUENCE(j[j=1:5])
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 98 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M: 99 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE I        M: 97 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE SST5SBX  M: 91 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5SBX  M: 96 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5XAVE M: 59 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5XAVE M: 72 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5XYT  M:  3 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5XYT  M: 88 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5     M:  1 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M:  7 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 15 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 31 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 41 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 51 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 58 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 60 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 62 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 63 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 66 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 67 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 73 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 75 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 78 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 79 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 82 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 84 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 86 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 89 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 90 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 93 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 94 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 95 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE A        M:177 dset:   0 I:      1     10  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE SST5SBX  M:143 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ -DELETE SST5XAVE M:152 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ -DELETE SST5XYT  M:153 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ -DELETE SST5     M:146 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ -DELETE SST5     M:148 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ -DELETE SST5     M:150 dset:   1 I:      0    181  J:    1   90  K: -999 -999  L:      1      1
+ -DELETE SST5     M:151 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
+ -DELETE SST5     M:166 dset:   1 I:     55    131  J:   35   56  K: -999 -999  L:      1      1
+ -DELETE SST5     M:173 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
 say `a,return=isize`     ! evaluate it now
- getgrid 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
- getgrid (C01,V11 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C11,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  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 A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C01,V11 C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C11,V11 C: 11 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 (C11,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C11,V11 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M: 95 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pass #2 (C11,V11 C: 11 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V11 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C11,V11 C: 10 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  J        M:173 dset:   0 I:   -999   -999  J:    1    5  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 5
 5
 list/nohead a            ! cache hit
- -DELETE J        M: 95 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C11,V11 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M: 95 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE J        M:173 dset:   0 I:   -999   -999  J:    1    5  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V11 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ found   (C11,V11 M:166 dset:   0 I:   -999   -999  J:    1    5  K: -999 -999  L:   -999   -999
  1   / 1:  1.00000
  2   / 2:  2.00000
  3   / 3:  3.00000
@@ -30959,54 +30366,51 @@ list/nohead a            ! cache hit
  5   / 5:  5.00000
  
 let a = SAMPLEI(I[i=1:100], {8,5,3})
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C11,V11 M: 89 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C11,V11 M: 94 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid YABSTRACT       NORMAL    ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE J        M: 95 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 86 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 93 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 84 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M: 90 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE (C11,V11 M:166 dset:   0 I:   -999   -999  J:    1    5  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid YABSTRACT       NORMAL    ABSTRACT  NORMAL    NORMAL
+ -DELETE (C01,V11 M:151 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE (C01,V11 M:173 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE A        M:148 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE A        M:150 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
 say `a,return=isize`     ! evaluate it now
- getgrid 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
- getgrid (C01,V11 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- 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
+ getgrid 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
+ getgrid (C01,V11 C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {8,5,3}  M: 90 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   0
- eval    (C09,V11 C: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 86 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 93 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE A        M: 84 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 94 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE {8,5,3}  M: 90 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ 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
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V11 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ const_v {8,5,3}  M:150 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing sampling tpry on I axis:        1        3 dset:   0
+ eval    (C09,V11 C: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  I        M:151 dset:   0 I:      1    100  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE (C01,V11 M:173 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE A        M:148 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:146 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE {8,5,3}  M:150 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 3
 3
 list/nohead a            ! cache hit
- -DELETE I        M: 86 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {8,5,3}  M: 86 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   0
- eval    (C09,V11 C: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 89 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 93 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 94 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 79 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE {8,5,3}  M: 86 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M:151 dset:   0 I:      1    100  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V11 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ const_v {8,5,3}  M:151 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing sampling tpry on I axis:        1        3 dset:   0
+ found   (C09,V11 M:166 dset:   0 I:      1    100  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE (C01,V11 M:173 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:146 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:153 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE {8,5,3}  M:151 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  1   / 1:  8.00000
  2   / 2:  5.00000
  3   / 3:  3.00000
@@ -31014,88 +30418,74 @@ list/nohead a            ! cache hit
 spawn rm -f foo.bar*
 spawn touch foo.bar1 foo.bar2 foo.bar3
 let a = SPAWN("ls foo.bar*")
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C09,V11 M: 82 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C09,V11 M: 95 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C01,V11 M: 84 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 94 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 86 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M: 90 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE I        M: 89 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE (C09,V11 M:166 dset:   0 I:      1    100  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE (C01,V11 M:146 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE (C01,V11 M:148 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE A        M:150 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE A        M:151 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
 say `a,return=isize`     ! evaluate it now
- getgrid 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
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- string str      M: 89 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  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 A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ string str      M:151 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 3
 3
 list/nohead a            ! cache hit
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- string str      M: 86 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:150 dset:   0 I:      1      3  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
+ found   A        M:148 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  1   / 1:"foo.bar1"
  2   / 2:"foo.bar2"
  3   / 3:"foo.bar3"
  
 ! RESHAPE, alone, is set to require matched limits in order to make a cache hit
 let a = RESHAPE(I[I=1:3]+10*j[j=1:3], I[i=1:9])
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 90 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M: 94 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE A        M:148 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
 say `a,return=isize`
- getgrid 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
- getgrid (C01,V11 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C31,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  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 A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C01,V11 C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C31,V11 C: 11 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 (C31,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- 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
+ pass #2 (C31,V11 C: 11 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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    NORMAL    NORMAL
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C09,V11 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 94 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- constan cnst     M: 90 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M: 84 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE J        M: 84 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 90 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 95 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE I        M: 94 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C31,V11 C: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 94 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ 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
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V11 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C09,V11 C: 10 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  I        M:148 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ constan cnst     M:150 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  J        M:146 dset:   0 I:   -999   -999  J:    1    3  K: -999 -999  L:   -999   -999
+ -DELETE J        M:146 dset:   0 I:   -999   -999  J:    1    3  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:150 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE tpry     M:166 dset:   0 I:   -999   -999  J:    1    3  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE I        M:148 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C31,V11 C: 11 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  I        M:148 dset:   0 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 9
 9
 list/nohead a            ! no cache hit
- -DELETE I        M: 94 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C09,V11 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 94 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- constan cnst     M: 79 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M: 93 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE J        M: 93 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 79 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 78 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE I        M: 94 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C31,V11 C: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 94 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M:148 dset:   0 I:      1      9  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
+ found   A        M:153 dset:   0 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
  1   / 1:  11.0000
  2   / 2:  12.0000
  3   / 3:  13.0000
@@ -31111,91 +30501,26 @@ set mode/last diag
 ! v5.4 *kob* 10/01 - need to add exit/script - new exit command qualifiers
 EXIT/SCRIPT
  
-GO bn_reset
-cancel mode verify
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C31,V11 M: 78 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C31,V11 M: 95 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C09,V11 M: 79 dset:   0 I:    1    3  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C09,V11 M: 90 dset:   0 I:    1    3  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          ABSTRACT  ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C01,V11 M: 84 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 93 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 75 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M: 82 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE I        M: 94 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+GO bn_reset bn_regrid_to_user
+cancel mode verify
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -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
+ -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
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  canceling dset ./coads_climatology.cdf
- -DELETE SST      M:  2 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  4 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  5 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  8 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  9 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 11 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 12 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 13 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 14 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 16 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 17 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 18 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 19 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 20 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 21 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 22 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 23 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 24 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 27 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 28 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 29 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 30 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 32 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 33 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 34 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 35 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 36 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 37 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 38 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 39 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 40 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 42 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 43 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 44 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 45 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 46 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 47 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 48 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 49 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 50 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 52 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 53 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 54 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 55 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 56 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 57 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 61 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 64 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 65 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 68 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 69 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 70 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 71 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 74 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 76 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 77 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 80 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 81 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 83 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 85 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 87 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 92 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE str      M: 86 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE str      M: 89 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE SST      M:157 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ -DELETE SST      M:168 dset:   1 I:      0    181  J:    1   90  K: -999 -999  L:      1      1
+ -DELETE SST      M:170 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
+ -DELETE SST      M:179 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ -DELETE SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ -DELETE str      M:151 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regrid_to_user
 GO bn_regrid_to_user		! G=user_var and related
 ! bn_regrid_to_user
 ! 8/99 *sh*
@@ -31243,8 +30568,6 @@ show grid
  COADSY    LATITUDE            90 r   89S                  89N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! per axis regrid
 ! 5/01 note: changed from y=0 yo y=5s to accomodate Y-truncated
@@ -31274,8 +30597,6 @@ show grid
  YAX       LATITUDE            81 r   20S                  20N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! combined full grid and per-axis
 list/x=160e/y=5s temp[d=2,k=1,g=gg,gx=a[d=1]]
@@ -31303,8 +30624,6 @@ show grid
  YAX       LATITUDE            81 r   20S                  20N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! pseudo-variable access
 list/i=1:4 i[g=a]		! a is previously loaded
@@ -31344,8 +30663,6 @@ show grid gg1
  COADSY    LATITUDE            90 r   89S                  89N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
 let f = sst[y=20s:20n:.1,d=coads_climatology]
 DEFINE GRID/LIKE=f/x=temp[d=levitus_climatology] gg2
 cancel variable f
@@ -31356,8 +30673,6 @@ show grid gg2
  (AX009)   LATITUDE           401 r   20S                  20N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     no implicit grids
@@ -31379,8 +30694,6 @@ show grid gg2
  YAXLEVITR1_90 LATITUDE        90 r   89.5S                0.5S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     no implicit grids
@@ -31399,8 +30712,6 @@ show grid
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! The SET GRID (default) definition should be protected -- not altered
 load/d=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
@@ -31410,11 +30721,9 @@ show grid
     GRID (G012)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX018)   LATITUDE           201 r   10S                  10N                 200 pts
+ (AX018)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     GRID (G012)                          use count:   1
@@ -31423,20 +30732,6 @@ Dynamic grids:
  (AX018)   LATITUDE           201 r   10S                  10N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-    GRID (G006)                          use count:   1
- name       axis              # pts   start                end
- (AX026)   LONGITUDE          301 r   0E                   30E
- COADSY    LATITUDE            90 r   89S                  89N
- normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX018)                         use count:   1
-    AXIS (AX026)                         use count:   1
-    AXIS (AX009)                         use count:   1
  
 ! deliberate errors
 set mode ignore
@@ -31554,63 +30849,49 @@ SHOW GRID temp[d=2,gx=sst[d=1],y=10s:2s:.2]             ! implicit Y axis
     GRID (G018)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX025)   LATITUDE            41 r   10S                  2S                  40 pts
+ (AX025)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
 SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5"
     GRID (G018)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX018)   LATITUDE            41 r   10S                  2S                  40 pts
+ (AX018)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
 SHOW GRID FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) ! imposed T axis
     GRID (G011)
  name       axis              # pts   start                end                 subset
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
- (AX025)   LATITUDE            41 r   10S                  2S                  40 pts
+ (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)
- normal    E
- normal    F
 SHOW GRID SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])      ! abstract X axis
     GRID (G018)
  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                  40 pts
+ (AX025)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
 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)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX012)   LATITUDE            41 r   10S                  2S                  40 pts
+ (AX012)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
     GRID (G011)
  name       axis              # pts   start                end                 subset
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
- (AX025)   LATITUDE            41 r   10S                  2S                  40 pts
+ (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)
- normal    E
- normal    F
     GRID (G018)
  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                  40 pts
+ (AX025)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
  
 load/x=160e/y=5s temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5
 SHOW GRID
@@ -31619,11 +30900,9 @@ SHOW GRID
     GRID (G018)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX018)   LATITUDE            41 r   10S                  2S                  40 pts
+ (AX018)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
 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)
@@ -31634,8 +30913,6 @@ SHOW GRID
  (AX025)   LATITUDE            41 r   10S                  2S                  full
  normal    Z
  (AX012)   T (CYC/hour)         2 r   0.00034224           0.00068448          full
- normal    E
- normal    F
 list/j=1:5 j
              VARIABLE : J
                         axis (AX025)
@@ -31653,8 +30930,6 @@ SHOW GRID MYGRID
  (AX025)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
- normal    E
- normal    F
 SHOW GRID/DYNAMIC
 Dynamic grids:
     GRID (G011)                          use count:   1
@@ -31663,18 +30938,14 @@ Dynamic grids:
  (AX025)   LATITUDE            41 r   10S                  2S
  normal    Z
  (AX012)   T (CYC/hour)         2 r   0.00034224           0.00068448
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX012)                         use count:   1
-    AXIS (AX025)                         use count:   2
-    AXIS (AX009)                         use count:   1
  
  
 ! ******** V53 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_calendar
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_calendar
 GO bn_calendar
 ! bn_calendar.jnl
 ! Version 5.3
@@ -31816,8 +31087,8 @@ use calsst
 sh data
      currently SET data sets:
     1> ./calsst.cdf  (default)
- name     title                             I         J         K         L         M         N
- NDATA    TEMP[GT=TGRID]                   1:10      1:13      1:1       1:21      ...       ...
+ name     title                             I         J         K         L
+ NDATA    TEMP[GT=TGRID]                   1:10      1:13      1:1       1:21
  
 sh grid ndata
     GRID GSH1
@@ -31826,8 +31097,6 @@ sh grid ndata
  PSYT39_51 LATITUDE            13 i   2.167S               1.833N              full
  PSZT1_1   DEPTH (m)            1 r-  5                    5                   full
  TWEEKS1   TIME                21 r   20-AUG-1982 00:00    07-JAN-1983 00:00   full
- normal    E
- normal    F
 sh axis tweeks
  name       axis              # pts   start                end
  TWEEKS    TIME                21 r   20-AUG-1982 00:00    07-JAN-1983 00:00
@@ -31896,7 +31165,7 @@ list/t="5-dec-1982":"8-dec-1982" ndata
              DEPTH (m): 5
                          132.5W  
                           98
- 05-DEC-1982 00 / 108:     ....
+ 05-DEC-1982 00 / 108:  32.9283
  06-DEC-1982 00 / 109:  32.9340
  07-DEC-1982 00 / 110:  32.9401
  08-DEC-1982 00 / 111:  32.9462
@@ -31959,8 +31228,10 @@ 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).
  
-GO bn_reset
+GO bn_reset bn_dash_dot
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dash_dot
 GO bn_dash_dot
 ! new PLOT/DASH and PLOT/SYMBOL=DOT  qualifiers
 ! *acm* 5/01
@@ -31982,8 +31253,10 @@ 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) )
  
-GO bn_reset
+GO bn_reset bn_flowlines
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_flowlines
 GO bn_flowlines
 ! bn_flowlines.jnl
 ! VECTOR/FLOW
@@ -32004,6 +31277,7 @@ vector/flow/over/len=10  u,v
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 set mode meta flowlines.plt
 can mode logo
  
@@ -32016,6 +31290,7 @@ can mode meta
 ! curvilinear flowline plots
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 use coads_climatology
 go mp_sinusoidal
@@ -32033,8 +31308,10 @@ set mode logo
  
 ! ******** V533 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_logaxes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_logaxes
 GO bn_logaxes
 !  Test the qualifiers /HLOG and /VLOG for setting
 !  log axes.  On a depth axis, inverse log plot.
@@ -32080,8 +31357,10 @@ plot/hlog fcn
  
 ! *kob* same tests for internal external functions but moved out of
 !       the bn_external_function jnl file.
-GO bn_reset
+GO bn_reset bn_internal_external_functions
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_internal_external_functions
 GO bn_internal_external_functions
 ! test internal external functions.  These moved from bn_external_functions
 !  6/01 because on systems w/out external functions support, the internal
@@ -32098,6 +31377,7 @@ GO bn_internal_external_functions
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_fft
 ! Benchmark Ferret script for FFT.  Uses analytic function of time.
  
@@ -32131,8 +31411,6 @@ SH GRID tgrid
  normal    Y
  normal    Z
  DAYT      TIME               365 r   01-JAN-1990 00:00    31-DEC-1990 00:00
- normal    E
- normal    F
 SET GRID tgrid
  
 LET fcn1 = sin(kt*tpts - phase) /2.
@@ -32238,6 +31516,7 @@ CANCEL MODE IGNORE_ERRORS
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_gridding
 ! bench_gridding.jnl
 ! *acm* 8/99
@@ -32435,6 +31714,7 @@ can axis x10
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_scat2grid_test
 ! bn_scat2grid_test.jnl
 ! From JonCallahan's insitu_gaussian_*.jnl
@@ -32505,8 +31785,6 @@ show grid xy_laplace_gridded
  Y_20      LATITUDE            20 r   10N                  20N                 full
  normal    Z
  normal    T
- normal    E
- normal    F
 ! when the result grid axes were extended, the axis coordinates in the following were messed up
 list xy_laplace_gridded
              VARIABLE : SCAT2GRIDLAPLACE_XY(XAX,YAX,O2_UMOL_KG,X[GX=X_20],Y[GY=Y_20],2,2)
@@ -32584,6 +31862,7 @@ can axis x_20
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_scat2grid_gl
 ! bn_scat2grid_gl.jnl
 ! test the scat2gridgauss and scat2gridlaplace functions,
@@ -33111,6 +32390,7 @@ can axis x_15
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_scat2gridlaplace_tarasoff
 ! bn_scat2gridlaplace_tarasoff
 ! check for error reported by Lev Tarasoff 5/10/2006
@@ -33136,8 +32416,6 @@ show grid wgtl
  YLATEF    LATITUDE            73 r   47.25N               83.25N              full
  normal    Z
  normal    T
- normal    E
- normal    F
 load wgtl
 ! shade wgtl ! Result is shifted in X:
 ! data shows up at 70e that should be at 35e
@@ -33214,6 +32492,7 @@ cancel axis ylatef
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_scat2grid_nobs
 ! bn_scat2grid_nobs.jnl
 ! test of scat2grid_nobs functions,
@@ -33517,6 +32796,7 @@ can axis x_15
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_scat2grid_t
 ! bn_scat2grid_t.jnl
 ! test the ave_scat2grid_t and scat2grid_t functions,
@@ -33596,6 +32876,7 @@ can axis t_32
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_transpose
 ! bn_tranpose.jnl
 ! test the transpose functions,
@@ -33956,6 +33237,979 @@ list transpose_zt(myvar)
  2   / 3:  110.000  111.000  112.000  113.000  114.000
  3   / 4:  115.000  116.000  117.000  118.000  119.000
  
+def axis /X=0.0:4.0:1.0/units=degrees_east xaxs
+def axis /Y=0.0:3.0:1.0/units=degrees_north yaxs
+def axis /Z=0.0:1.4:0.2/units=m/depth zaxs
+def axis /T=0.0:6.0:1.0/units=days/t0=1-jan-2001 taxs
+def axis /E=0.0:10.0:5 eaxs
+def axis /F=0.0:100.0:20 faxs
+def grid /X=xaxs /Y=yaxs /Z=zaxs /T=taxs /E=eaxs /F=faxs mygrd
+ 
+set grid mygrd
+let myvar = X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+ 
+ 
+! * * * * Simple XYZTEF examples * * *
+ 
+list/x=1/y=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 3 by 6 points (E-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : JAN-2001
+                0        5       10     
+                1        2        3
+ 0     / 1:  86.0000  91.0000  96.0000
+ 20    / 2:  66.0000  71.0000  76.0000
+ 40    / 3:  46.0000  51.0000  56.0000
+ 60    / 4:  26.0000  31.0000  36.0000
+ 80    / 5:   6.0000  11.0000  16.0000
+ 100   / 6: -14.0000  -9.0000  -4.0000
+list/x=1/y=1/z=1/t=1 transpose_ef(myvar)
+             VARIABLE : TRANSPOSE_EF(MYVAR)
+             SUBSET   : 6 by 3 points (E-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : JAN-2001
+              1        2        3        4        5        6     
+              1        2        3        4        5        6
+ 1   / 1:  86.0000  66.0000  46.0000  26.0000   6.0000 -14.0000
+ 2   / 2:  91.0000  71.0000  51.0000  31.0000  11.0000  -9.0000
+ 3   / 3:  96.0000  76.0000  56.0000  36.0000  16.0000  -4.0000
+ 
+list/e=5/y=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 6 points (LONGITUDE-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             E        : 5
+               0E       1E       2E       3E       4E     
+                1        2        3        4        5
+ 0     / 1:  90.0000  91.0000  92.0000  93.0000  94.0000
+ 20    / 2:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 40    / 3:  50.0000  51.0000  52.0000  53.0000  54.0000
+ 60    / 4:  30.0000  31.0000  32.0000  33.0000  34.0000
+ 80    / 5:  10.0000  11.0000  12.0000  13.0000  14.0000
+ 100   / 6: -10.0000  -9.0000  -8.0000  -7.0000  -6.0000
+list/e=5/y=1/z=1/t=1 transpose_xf(myvar)
+             VARIABLE : TRANSPOSE_XF(MYVAR)
+             SUBSET   : 6 by 5 points (X-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             E        : 5
+              1        2        3        4        5        6     
+              1        2        3        4        5        6
+ 1   / 1:  90.0000  70.0000  50.0000  30.0000  10.0000 -10.0000
+ 2   / 2:  91.0000  71.0000  51.0000  31.0000  11.0000  -9.0000
+ 3   / 3:  92.0000  72.0000  52.0000  32.0000  12.0000  -8.0000
+ 4   / 4:  93.0000  73.0000  53.0000  33.0000  13.0000  -7.0000
+ 5   / 5:  94.0000  74.0000  54.0000  34.0000  14.0000  -6.0000
+list/F=25/y=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 3 points (LONGITUDE-E)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             F        : 20
+              0E       1E       2E       3E       4E     
+               1        2        3        4        5
+ 0    / 1:  65.0000  66.0000  67.0000  68.0000  69.0000
+ 5    / 2:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 10   / 3:  75.0000  76.0000  77.0000  78.0000  79.0000
+list/F=25/y=1/z=1/t=1 transpose_xe(myvar)
+             VARIABLE : TRANSPOSE_XE(MYVAR)
+             SUBSET   : 3 by 5 points (X-E)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             F        : 20
+              1        2        3     
+              1        2        3
+ 1   / 1:  65.0000  70.0000  75.0000
+ 2   / 2:  66.0000  71.0000  76.0000
+ 3   / 3:  67.0000  72.0000  77.0000
+ 4   / 4:  68.0000  73.0000  78.0000
+ 5   / 5:  69.0000  74.0000  79.0000
+ 
+list/e=5/x=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 4 by 6 points (LATITUDE-F)
+             LONGITUDE: 1E
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             E        : 5
+                0       1N       2N       3N     
+                1        2        3        4
+ 0     / 1:   86.000   91.000   96.000  101.000
+ 20    / 2:   66.000   71.000   76.000   81.000
+ 40    / 3:   46.000   51.000   56.000   61.000
+ 60    / 4:   26.000   31.000   36.000   41.000
+ 80    / 5:    6.000   11.000   16.000   21.000
+ 100   / 6:  -14.000   -9.000   -4.000    1.000
+list/e=5/x=1/z=1/t=1 transpose_yf(myvar)
+             VARIABLE : TRANSPOSE_YF(MYVAR)
+             SUBSET   : 6 by 4 points (Y-F)
+             LONGITUDE: 1E
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             E        : 5
+              1        2        3        4        5        6     
+              1        2        3        4        5        6
+ 1   / 1:   86.000   66.000   46.000   26.000    6.000  -14.000
+ 2   / 2:   91.000   71.000   51.000   31.000   11.000   -9.000
+ 3   / 3:   96.000   76.000   56.000   36.000   16.000   -4.000
+ 4   / 4:  101.000   81.000   61.000   41.000   21.000    1.000
+list/F=25/x=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 4 by 3 points (LATITUDE-E)
+             LONGITUDE: 1E
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             F        : 20
+               0       1N       2N       3N     
+               1        2        3        4
+ 0    / 1:  61.0000  66.0000  71.0000  76.0000
+ 5    / 2:  66.0000  71.0000  76.0000  81.0000
+ 10   / 3:  71.0000  76.0000  81.0000  86.0000
+list/F=25/x=1/z=1/t=1 transpose_ye(myvar)
+             VARIABLE : TRANSPOSE_YE(MYVAR)
+             SUBSET   : 3 by 4 points (Y-E)
+             LONGITUDE: 1E
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             F        : 20
+              1        2        3     
+              1        2        3
+ 1   / 1:  61.0000  66.0000  71.0000
+ 2   / 2:  66.0000  71.0000  76.0000
+ 3   / 3:  71.0000  76.0000  81.0000
+ 4   / 4:  76.0000  81.0000  86.0000
+ 
+list/e=5/x=1/y=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 8 by 6 points (DEPTH (m)-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             TIME     : JAN-2001
+             E        : 5
+               0        0.2      0.4      0.6      0.8      1        1.2      1.4    
+                1        2        3        4        5        6        7        8
+ 0     / 1:  71.0000  75.0000  79.0000  83.0000  87.0000  91.0000  95.0000  99.0000
+ 20    / 2:  51.0000  55.0000  59.0000  63.0000  67.0000  71.0000  75.0000  79.0000
+ 40    / 3:  31.0000  35.0000  39.0000  43.0000  47.0000  51.0000  55.0000  59.0000
+ 60    / 4:  11.0000  15.0000  19.0000  23.0000  27.0000  31.0000  35.0000  39.0000
+ 80    / 5:  -9.0000  -5.0000  -1.0000   3.0000   7.0000  11.0000  15.0000  19.0000
+ 100   / 6: -29.0000 -25.0000 -21.0000 -17.0000 -13.0000  -9.0000  -5.0000  -1.0000
+list/e=5/x=1/y=1/t=1 transpose_zf(myvar)
+             VARIABLE : TRANSPOSE_ZF(MYVAR)
+             SUBSET   : 6 by 8 points (Z-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             TIME     : JAN-2001
+             E        : 5
+              1        2        3        4        5        6     
+              1        2        3        4        5        6
+ 1   / 1:  71.0000  51.0000  31.0000  11.0000  -9.0000 -29.0000
+ 2   / 2:  75.0000  55.0000  35.0000  15.0000  -5.0000 -25.0000
+ 3   / 3:  79.0000  59.0000  39.0000  19.0000  -1.0000 -21.0000
+ 4   / 4:  83.0000  63.0000  43.0000  23.0000   3.0000 -17.0000
+ 5   / 5:  87.0000  67.0000  47.0000  27.0000   7.0000 -13.0000
+ 6   / 6:  91.0000  71.0000  51.0000  31.0000  11.0000  -9.0000
+ 7   / 7:  95.0000  75.0000  55.0000  35.0000  15.0000  -5.0000
+ 8   / 8:  99.0000  79.0000  59.0000  39.0000  19.0000  -1.0000
+list/F=25/x=1/y=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 8 by 3 points (DEPTH (m)-E)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             TIME     : JAN-2001
+             F        : 20
+              0        0.2      0.4      0.6      0.8      1        1.2      1.4    
+               1        2        3        4        5        6        7        8
+ 0    / 1:  46.0000  50.0000  54.0000  58.0000  62.0000  66.0000  70.0000  74.0000
+ 5    / 2:  51.0000  55.0000  59.0000  63.0000  67.0000  71.0000  75.0000  79.0000
+ 10   / 3:  56.0000  60.0000  64.0000  68.0000  72.0000  76.0000  80.0000  84.0000
+list/F=25/x=1/y=1/t=1 transpose_ze(myvar)
+             VARIABLE : TRANSPOSE_ZE(MYVAR)
+             SUBSET   : 3 by 8 points (Z-E)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             TIME     : JAN-2001
+             F        : 20
+              1        2        3     
+              1        2        3
+ 1   / 1:  46.0000  51.0000  56.0000
+ 2   / 2:  50.0000  55.0000  60.0000
+ 3   / 3:  54.0000  59.0000  64.0000
+ 4   / 4:  58.0000  63.0000  68.0000
+ 5   / 5:  62.0000  67.0000  72.0000
+ 6   / 6:  66.0000  71.0000  76.0000
+ 7   / 7:  70.0000  75.0000  80.0000
+ 8   / 8:  74.0000  79.0000  84.0000
+ 
+list/e=5/x=1/y=1/z=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 7 by 6 points (TIME-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             E        : 5
+               2001     2001     2001     2001     2001     2001     2001   
+                1        2        3        4        5        6        7
+ 0     / 1:   31.000   91.000  151.000  211.000  271.000  331.000  391.000
+ 20    / 2:   11.000   71.000  131.000  191.000  251.000  311.000  371.000
+ 40    / 3:   -9.000   51.000  111.000  171.000  231.000  291.000  351.000
+ 60    / 4:  -29.000   31.000   91.000  151.000  211.000  271.000  331.000
+ 80    / 5:  -49.000   11.000   71.000  131.000  191.000  251.000  311.000
+ 100   / 6:  -69.000   -9.000   51.000  111.000  171.000  231.000  291.000
+list/e=5/x=1/y=1/z=1 transpose_tf(myvar)
+             VARIABLE : TRANSPOSE_TF(MYVAR)
+             SUBSET   : 6 by 7 points (T-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             E        : 5
+              1        2        3        4        5        6     
+              1        2        3        4        5        6
+ 1   / 1:   31.000   11.000   -9.000  -29.000  -49.000  -69.000
+ 2   / 2:   91.000   71.000   51.000   31.000   11.000   -9.000
+ 3   / 3:  151.000  131.000  111.000   91.000   71.000   51.000
+ 4   / 4:  211.000  191.000  171.000  151.000  131.000  111.000
+ 5   / 5:  271.000  251.000  231.000  211.000  191.000  171.000
+ 6   / 6:  331.000  311.000  291.000  271.000  251.000  231.000
+ 7   / 7:  391.000  371.000  351.000  331.000  311.000  291.000
+list/F=25/x=1/y=1/z=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 7 by 3 points (TIME-E)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             F        : 20
+              2001     2001     2001     2001     2001     2001     2001   
+               1        2        3        4        5        6        7
+ 0    / 1:    6.000   66.000  126.000  186.000  246.000  306.000  366.000
+ 5    / 2:   11.000   71.000  131.000  191.000  251.000  311.000  371.000
+ 10   / 3:   16.000   76.000  136.000  196.000  256.000  316.000  376.000
+list/F=25/x=1/y=1/z=1 transpose_te(myvar)
+             VARIABLE : TRANSPOSE_TE(MYVAR)
+             SUBSET   : 3 by 7 points (T-E)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             F        : 20
+              1        2        3     
+              1        2        3
+ 1   / 1:    6.000   11.000   16.000
+ 2   / 2:   66.000   71.000   76.000
+ 3   / 3:  126.000  131.000  136.000
+ 4   / 4:  186.000  191.000  196.000
+ 5   / 5:  246.000  251.000  256.000
+ 6   / 6:  306.000  311.000  316.000
+ 7   / 7:  366.000  371.000  376.000
+ 
+ 
+! * * * *  XYZTEF examples with another dimension * * *
+ 
+list/y=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 3 by 6 points (LONGITUDE-E-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : JAN-2001
+              0E       1E       2E       3E       4E     
+               1        2        3        4        5
+ ---- N:1 F:   0
+ 0    / 1:  85.0000  86.0000  87.0000  88.0000  89.0000
+ 5    / 2:  90.0000  91.0000  92.0000  93.0000  94.0000
+ 10   / 3:  95.0000  96.0000  97.0000  98.0000  99.0000
+ ---- N:2 F:   20
+ 0    / 1:  65.0000  66.0000  67.0000  68.0000  69.0000
+ 5    / 2:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 10   / 3:  75.0000  76.0000  77.0000  78.0000  79.0000
+ ---- N:3 F:   40
+ 0    / 1:  45.0000  46.0000  47.0000  48.0000  49.0000
+ 5    / 2:  50.0000  51.0000  52.0000  53.0000  54.0000
+ 10   / 3:  55.0000  56.0000  57.0000  58.0000  59.0000
+ ---- N:4 F:   60
+ 0    / 1:  25.0000  26.0000  27.0000  28.0000  29.0000
+ 5    / 2:  30.0000  31.0000  32.0000  33.0000  34.0000
+ 10   / 3:  35.0000  36.0000  37.0000  38.0000  39.0000
+ ---- N:5 F:   80
+ 0    / 1:   5.0000   6.0000   7.0000   8.0000   9.0000
+ 5    / 2:  10.0000  11.0000  12.0000  13.0000  14.0000
+ 10   / 3:  15.0000  16.0000  17.0000  18.0000  19.0000
+ ---- N:6 F:   100
+ 0    / 1: -15.0000 -14.0000 -13.0000 -12.0000 -11.0000
+ 5    / 2: -10.0000  -9.0000  -8.0000  -7.0000  -6.0000
+ 10   / 3:  -5.0000  -4.0000  -3.0000  -2.0000  -1.0000
+list/y=1/z=1/t=1 transpose_ef(myvar)
+             VARIABLE : TRANSPOSE_EF(MYVAR)
+             SUBSET   : 5 by 6 by 3 points (LONGITUDE-E-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             0E       1E       2E       3E       4E     
+              1        2        3        4        5
+ ---- N:1 F:   1
+ 1   / 1:  85.0000  86.0000  87.0000  88.0000  89.0000
+ 2   / 2:  65.0000  66.0000  67.0000  68.0000  69.0000
+ 3   / 3:  45.0000  46.0000  47.0000  48.0000  49.0000
+ 4   / 4:  25.0000  26.0000  27.0000  28.0000  29.0000
+ 5   / 5:   5.0000   6.0000   7.0000   8.0000   9.0000
+ 6   / 6: -15.0000 -14.0000 -13.0000 -12.0000 -11.0000
+ ---- N:2 F:   2
+ 1   / 1:  90.0000  91.0000  92.0000  93.0000  94.0000
+ 2   / 2:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 3   / 3:  50.0000  51.0000  52.0000  53.0000  54.0000
+ 4   / 4:  30.0000  31.0000  32.0000  33.0000  34.0000
+ 5   / 5:  10.0000  11.0000  12.0000  13.0000  14.0000
+ 6   / 6: -10.0000  -9.0000  -8.0000  -7.0000  -6.0000
+ ---- N:3 F:   3
+ 1   / 1:  95.0000  96.0000  97.0000  98.0000  99.0000
+ 2   / 2:  75.0000  76.0000  77.0000  78.0000  79.0000
+ 3   / 3:  55.0000  56.0000  57.0000  58.0000  59.0000
+ 4   / 4:  35.0000  36.0000  37.0000  38.0000  39.0000
+ 5   / 5:  15.0000  16.0000  17.0000  18.0000  19.0000
+ 6   / 6:  -5.0000  -4.0000  -3.0000  -2.0000  -1.0000
+ 
+list/e=5/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 4 by 6 points (LONGITUDE-LATITUDE-F)
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             E        : 5
+              0E       1E       2E       3E       4E     
+               1        2        3        4        5
+ ---- N:1 F:   0
+ 3N   / 4:  100.000  101.000  102.000  103.000  104.000
+ 2N   / 3:   95.000   96.000   97.000   98.000   99.000
+ 1N   / 2:   90.000   91.000   92.000   93.000   94.000
+ 0    / 1:   85.000   86.000   87.000   88.000   89.000
+ ---- N:2 F:   20
+ 3N   / 4:   80.000   81.000   82.000   83.000   84.000
+ 2N   / 3:   75.000   76.000   77.000   78.000   79.000
+ 1N   / 2:   70.000   71.000   72.000   73.000   74.000
+ 0    / 1:   65.000   66.000   67.000   68.000   69.000
+ ---- N:3 F:   40
+ 3N   / 4:   60.000   61.000   62.000   63.000   64.000
+ 2N   / 3:   55.000   56.000   57.000   58.000   59.000
+ 1N   / 2:   50.000   51.000   52.000   53.000   54.000
+ 0    / 1:   45.000   46.000   47.000   48.000   49.000
+ ---- N:4 F:   60
+ 3N   / 4:   40.000   41.000   42.000   43.000   44.000
+ 2N   / 3:   35.000   36.000   37.000   38.000   39.000
+ 1N   / 2:   30.000   31.000   32.000   33.000   34.000
+ 0    / 1:   25.000   26.000   27.000   28.000   29.000
+ ---- N:5 F:   80
+ 3N   / 4:   20.000   21.000   22.000   23.000   24.000
+ 2N   / 3:   15.000   16.000   17.000   18.000   19.000
+ 1N   / 2:   10.000   11.000   12.000   13.000   14.000
+ 0    / 1:    5.000    6.000    7.000    8.000    9.000
+ ---- N:6 F:   100
+ 3N   / 4:    0.000    1.000    2.000    3.000    4.000
+ 2N   / 3:   -5.000   -4.000   -3.000   -2.000   -1.000
+ 1N   / 2:  -10.000   -9.000   -8.000   -7.000   -6.000
+ 0    / 1:  -15.000  -14.000  -13.000  -12.000  -11.000
+list/e=5/z=1/t=1 transpose_xf(myvar)
+             VARIABLE : TRANSPOSE_XF(MYVAR)
+             SUBSET   : 6 by 4 by 5 points (X-LATITUDE-F)
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             E        : 5
+               1        2        3        4        5        6     
+               1        2        3        4        5        6
+ ---- N:1 F:   1
+ 3N   / 4:  100.000   80.000   60.000   40.000   20.000    0.000
+ 2N   / 3:   95.000   75.000   55.000   35.000   15.000   -5.000
+ 1N   / 2:   90.000   70.000   50.000   30.000   10.000  -10.000
+ 0    / 1:   85.000   65.000   45.000   25.000    5.000  -15.000
+ ---- N:2 F:   2
+ 3N   / 4:  101.000   81.000   61.000   41.000   21.000    1.000
+ 2N   / 3:   96.000   76.000   56.000   36.000   16.000   -4.000
+ 1N   / 2:   91.000   71.000   51.000   31.000   11.000   -9.000
+ 0    / 1:   86.000   66.000   46.000   26.000    6.000  -14.000
+ ---- N:3 F:   3
+ 3N   / 4:  102.000   82.000   62.000   42.000   22.000    2.000
+ 2N   / 3:   97.000   77.000   57.000   37.000   17.000   -3.000
+ 1N   / 2:   92.000   72.000   52.000   32.000   12.000   -8.000
+ 0    / 1:   87.000   67.000   47.000   27.000    7.000  -13.000
+ ---- N:4 F:   4
+ 3N   / 4:  103.000   83.000   63.000   43.000   23.000    3.000
+ 2N   / 3:   98.000   78.000   58.000   38.000   18.000   -2.000
+ 1N   / 2:   93.000   73.000   53.000   33.000   13.000   -7.000
+ 0    / 1:   88.000   68.000   48.000   28.000    8.000  -12.000
+ ---- N:5 F:   5
+ 3N   / 4:  104.000   84.000   64.000   44.000   24.000    4.000
+ 2N   / 3:   99.000   79.000   59.000   39.000   19.000   -1.000
+ 1N   / 2:   94.000   74.000   54.000   34.000   14.000   -6.000
+ 0    / 1:   89.000   69.000   49.000   29.000    9.000  -11.000
+list/F=25/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 4 by 3 points (LONGITUDE-LATITUDE-E)
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             F        : 20
+              0E       1E       2E       3E       4E     
+               1        2        3        4        5
+ ---- M:1 E:   0
+ 3N   / 4:  75.0000  76.0000  77.0000  78.0000  79.0000
+ 2N   / 3:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 1N   / 2:  65.0000  66.0000  67.0000  68.0000  69.0000
+ 0    / 1:  60.0000  61.0000  62.0000  63.0000  64.0000
+ ---- M:2 E:   5
+ 3N   / 4:  80.0000  81.0000  82.0000  83.0000  84.0000
+ 2N   / 3:  75.0000  76.0000  77.0000  78.0000  79.0000
+ 1N   / 2:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 0    / 1:  65.0000  66.0000  67.0000  68.0000  69.0000
+ ---- M:3 E:   10
+ 3N   / 4:  85.0000  86.0000  87.0000  88.0000  89.0000
+ 2N   / 3:  80.0000  81.0000  82.0000  83.0000  84.0000
+ 1N   / 2:  75.0000  76.0000  77.0000  78.0000  79.0000
+ 0    / 1:  70.0000  71.0000  72.0000  73.0000  74.0000
+list/F=25/z=1/t=1 transpose_xe(myvar)
+             VARIABLE : TRANSPOSE_XE(MYVAR)
+             SUBSET   : 3 by 4 by 5 points (X-LATITUDE-E)
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             F        : 20
+               1        2        3     
+               1        2        3
+ ---- M:1 E:   1
+ 3N   / 4:  75.0000  80.0000  85.0000
+ 2N   / 3:  70.0000  75.0000  80.0000
+ 1N   / 2:  65.0000  70.0000  75.0000
+ 0    / 1:  60.0000  65.0000  70.0000
+ ---- M:2 E:   2
+ 3N   / 4:  76.0000  81.0000  86.0000
+ 2N   / 3:  71.0000  76.0000  81.0000
+ 1N   / 2:  66.0000  71.0000  76.0000
+ 0    / 1:  61.0000  66.0000  71.0000
+ ---- M:3 E:   3
+ 3N   / 4:  77.0000  82.0000  87.0000
+ 2N   / 3:  72.0000  77.0000  82.0000
+ 1N   / 2:  67.0000  72.0000  77.0000
+ 0    / 1:  62.0000  67.0000  72.0000
+ ---- M:4 E:   4
+ 3N   / 4:  78.0000  83.0000  88.0000
+ 2N   / 3:  73.0000  78.0000  83.0000
+ 1N   / 2:  68.0000  73.0000  78.0000
+ 0    / 1:  63.0000  68.0000  73.0000
+ ---- M:5 E:   5
+ 3N   / 4:  79.0000  84.0000  89.0000
+ 2N   / 3:  74.0000  79.0000  84.0000
+ 1N   / 2:  69.0000  74.0000  79.0000
+ 0    / 1:  64.0000  69.0000  74.0000
+ 
+list/e=5/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 4 by 6 points (LONGITUDE-LATITUDE-F)
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             E        : 5
+              0E       1E       2E       3E       4E     
+               1        2        3        4        5
+ ---- N:1 F:   0
+ 3N   / 4:  100.000  101.000  102.000  103.000  104.000
+ 2N   / 3:   95.000   96.000   97.000   98.000   99.000
+ 1N   / 2:   90.000   91.000   92.000   93.000   94.000
+ 0    / 1:   85.000   86.000   87.000   88.000   89.000
+ ---- N:2 F:   20
+ 3N   / 4:   80.000   81.000   82.000   83.000   84.000
+ 2N   / 3:   75.000   76.000   77.000   78.000   79.000
+ 1N   / 2:   70.000   71.000   72.000   73.000   74.000
+ 0    / 1:   65.000   66.000   67.000   68.000   69.000
+ ---- N:3 F:   40
+ 3N   / 4:   60.000   61.000   62.000   63.000   64.000
+ 2N   / 3:   55.000   56.000   57.000   58.000   59.000
+ 1N   / 2:   50.000   51.000   52.000   53.000   54.000
+ 0    / 1:   45.000   46.000   47.000   48.000   49.000
+ ---- N:4 F:   60
+ 3N   / 4:   40.000   41.000   42.000   43.000   44.000
+ 2N   / 3:   35.000   36.000   37.000   38.000   39.000
+ 1N   / 2:   30.000   31.000   32.000   33.000   34.000
+ 0    / 1:   25.000   26.000   27.000   28.000   29.000
+ ---- N:5 F:   80
+ 3N   / 4:   20.000   21.000   22.000   23.000   24.000
+ 2N   / 3:   15.000   16.000   17.000   18.000   19.000
+ 1N   / 2:   10.000   11.000   12.000   13.000   14.000
+ 0    / 1:    5.000    6.000    7.000    8.000    9.000
+ ---- N:6 F:   100
+ 3N   / 4:    0.000    1.000    2.000    3.000    4.000
+ 2N   / 3:   -5.000   -4.000   -3.000   -2.000   -1.000
+ 1N   / 2:  -10.000   -9.000   -8.000   -7.000   -6.000
+ 0    / 1:  -15.000  -14.000  -13.000  -12.000  -11.000
+list/e=5/z=1/t=1 transpose_yf(myvar)
+             VARIABLE : TRANSPOSE_YF(MYVAR)
+             SUBSET   : 5 by 6 by 4 points (LONGITUDE-Y-F)
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             E        : 5
+             0E       1E       2E       3E       4E     
+              1        2        3        4        5
+ ---- N:1 F:   1
+ 1   / 1:   85.000   86.000   87.000   88.000   89.000
+ 2   / 2:   65.000   66.000   67.000   68.000   69.000
+ 3   / 3:   45.000   46.000   47.000   48.000   49.000
+ 4   / 4:   25.000   26.000   27.000   28.000   29.000
+ 5   / 5:    5.000    6.000    7.000    8.000    9.000
+ 6   / 6:  -15.000  -14.000  -13.000  -12.000  -11.000
+ ---- N:2 F:   2
+ 1   / 1:   90.000   91.000   92.000   93.000   94.000
+ 2   / 2:   70.000   71.000   72.000   73.000   74.000
+ 3   / 3:   50.000   51.000   52.000   53.000   54.000
+ 4   / 4:   30.000   31.000   32.000   33.000   34.000
+ 5   / 5:   10.000   11.000   12.000   13.000   14.000
+ 6   / 6:  -10.000   -9.000   -8.000   -7.000   -6.000
+ ---- N:3 F:   3
+ 1   / 1:   95.000   96.000   97.000   98.000   99.000
+ 2   / 2:   75.000   76.000   77.000   78.000   79.000
+ 3   / 3:   55.000   56.000   57.000   58.000   59.000
+ 4   / 4:   35.000   36.000   37.000   38.000   39.000
+ 5   / 5:   15.000   16.000   17.000   18.000   19.000
+ 6   / 6:   -5.000   -4.000   -3.000   -2.000   -1.000
+ ---- N:4 F:   4
+ 1   / 1:  100.000  101.000  102.000  103.000  104.000
+ 2   / 2:   80.000   81.000   82.000   83.000   84.000
+ 3   / 3:   60.000   61.000   62.000   63.000   64.000
+ 4   / 4:   40.000   41.000   42.000   43.000   44.000
+ 5   / 5:   20.000   21.000   22.000   23.000   24.000
+ 6   / 6:    0.000    1.000    2.000    3.000    4.000
+list/F=25/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 4 by 3 points (LONGITUDE-LATITUDE-E)
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             F        : 20
+              0E       1E       2E       3E       4E     
+               1        2        3        4        5
+ ---- M:1 E:   0
+ 3N   / 4:  75.0000  76.0000  77.0000  78.0000  79.0000
+ 2N   / 3:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 1N   / 2:  65.0000  66.0000  67.0000  68.0000  69.0000
+ 0    / 1:  60.0000  61.0000  62.0000  63.0000  64.0000
+ ---- M:2 E:   5
+ 3N   / 4:  80.0000  81.0000  82.0000  83.0000  84.0000
+ 2N   / 3:  75.0000  76.0000  77.0000  78.0000  79.0000
+ 1N   / 2:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 0    / 1:  65.0000  66.0000  67.0000  68.0000  69.0000
+ ---- M:3 E:   10
+ 3N   / 4:  85.0000  86.0000  87.0000  88.0000  89.0000
+ 2N   / 3:  80.0000  81.0000  82.0000  83.0000  84.0000
+ 1N   / 2:  75.0000  76.0000  77.0000  78.0000  79.0000
+ 0    / 1:  70.0000  71.0000  72.0000  73.0000  74.0000
+list/F=25/z=1/t=1 transpose_ye(myvar)
+             VARIABLE : TRANSPOSE_YE(MYVAR)
+             SUBSET   : 5 by 3 by 4 points (LONGITUDE-Y-E)
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             F        : 20
+             0E       1E       2E       3E       4E     
+              1        2        3        4        5
+ ---- M:1 E:   1
+ 1   / 1:  60.0000  61.0000  62.0000  63.0000  64.0000
+ 2   / 2:  65.0000  66.0000  67.0000  68.0000  69.0000
+ 3   / 3:  70.0000  71.0000  72.0000  73.0000  74.0000
+ ---- M:2 E:   2
+ 1   / 1:  65.0000  66.0000  67.0000  68.0000  69.0000
+ 2   / 2:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 3   / 3:  75.0000  76.0000  77.0000  78.0000  79.0000
+ ---- M:3 E:   3
+ 1   / 1:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 2   / 2:  75.0000  76.0000  77.0000  78.0000  79.0000
+ 3   / 3:  80.0000  81.0000  82.0000  83.0000  84.0000
+ ---- M:4 E:   4
+ 1   / 1:  75.0000  76.0000  77.0000  78.0000  79.0000
+ 2   / 2:  80.0000  81.0000  82.0000  83.0000  84.0000
+ 3   / 3:  85.0000  86.0000  87.0000  88.0000  89.0000
+ 
+list/e=5/y=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 8 by 6 points (LONGITUDE-DEPTH (m)-F)
+             LATITUDE : 1N
+             TIME     : JAN-2001
+             E        : 5
+               0E       1E       2E       3E       4E     
+                1        2        3        4        5
+ ---- N:1 F:   0
+ 0     / 1:   70.000   71.000   72.000   73.000   74.000
+ 0.2   / 2:   74.000   75.000   76.000   77.000   78.000
+ 0.4   / 3:   78.000   79.000   80.000   81.000   82.000
+ 0.6   / 4:   82.000   83.000   84.000   85.000   86.000
+ 0.8   / 5:   86.000   87.000   88.000   89.000   90.000
+ 1     / 6:   90.000   91.000   92.000   93.000   94.000
+ 1.2   / 7:   94.000   95.000   96.000   97.000   98.000
+ 1.4   / 8:   98.000   99.000  100.000  101.000  102.000
+ ---- N:2 F:   20
+ 0     / 1:   50.000   51.000   52.000   53.000   54.000
+ 0.2   / 2:   54.000   55.000   56.000   57.000   58.000
+ 0.4   / 3:   58.000   59.000   60.000   61.000   62.000
+ 0.6   / 4:   62.000   63.000   64.000   65.000   66.000
+ 0.8   / 5:   66.000   67.000   68.000   69.000   70.000
+ 1     / 6:   70.000   71.000   72.000   73.000   74.000
+ 1.2   / 7:   74.000   75.000   76.000   77.000   78.000
+ 1.4   / 8:   78.000   79.000   80.000   81.000   82.000
+ ---- N:3 F:   40
+ 0     / 1:   30.000   31.000   32.000   33.000   34.000
+ 0.2   / 2:   34.000   35.000   36.000   37.000   38.000
+ 0.4   / 3:   38.000   39.000   40.000   41.000   42.000
+ 0.6   / 4:   42.000   43.000   44.000   45.000   46.000
+ 0.8   / 5:   46.000   47.000   48.000   49.000   50.000
+ 1     / 6:   50.000   51.000   52.000   53.000   54.000
+ 1.2   / 7:   54.000   55.000   56.000   57.000   58.000
+ 1.4   / 8:   58.000   59.000   60.000   61.000   62.000
+ ---- N:4 F:   60
+ 0     / 1:   10.000   11.000   12.000   13.000   14.000
+ 0.2   / 2:   14.000   15.000   16.000   17.000   18.000
+ 0.4   / 3:   18.000   19.000   20.000   21.000   22.000
+ 0.6   / 4:   22.000   23.000   24.000   25.000   26.000
+ 0.8   / 5:   26.000   27.000   28.000   29.000   30.000
+ 1     / 6:   30.000   31.000   32.000   33.000   34.000
+ 1.2   / 7:   34.000   35.000   36.000   37.000   38.000
+ 1.4   / 8:   38.000   39.000   40.000   41.000   42.000
+ ---- N:5 F:   80
+ 0     / 1:  -10.000   -9.000   -8.000   -7.000   -6.000
+ 0.2   / 2:   -6.000   -5.000   -4.000   -3.000   -2.000
+ 0.4   / 3:   -2.000   -1.000    0.000    1.000    2.000
+ 0.6   / 4:    2.000    3.000    4.000    5.000    6.000
+ 0.8   / 5:    6.000    7.000    8.000    9.000   10.000
+ 1     / 6:   10.000   11.000   12.000   13.000   14.000
+ 1.2   / 7:   14.000   15.000   16.000   17.000   18.000
+ 1.4   / 8:   18.000   19.000   20.000   21.000   22.000
+ ---- N:6 F:   100
+ 0     / 1:  -30.000  -29.000  -28.000  -27.000  -26.000
+ 0.2   / 2:  -26.000  -25.000  -24.000  -23.000  -22.000
+ 0.4   / 3:  -22.000  -21.000  -20.000  -19.000  -18.000
+ 0.6   / 4:  -18.000  -17.000  -16.000  -15.000  -14.000
+ 0.8   / 5:  -14.000  -13.000  -12.000  -11.000  -10.000
+ 1     / 6:  -10.000   -9.000   -8.000   -7.000   -6.000
+ 1.2   / 7:   -6.000   -5.000   -4.000   -3.000   -2.000
+ 1.4   / 8:   -2.000   -1.000    0.000    1.000    2.000
+list/e=5/y=1/t=1 transpose_zf(myvar)
+             VARIABLE : TRANSPOSE_ZF(MYVAR)
+             SUBSET   : 5 by 6 by 8 points (LONGITUDE-Z-F)
+             LATITUDE : 1N
+             TIME     : JAN-2001
+             E        : 5
+             0E       1E       2E       3E       4E     
+              1        2        3        4        5
+ ---- N:1 F:   1
+ 1   / 1:   70.000   71.000   72.000   73.000   74.000
+ 2   / 2:   50.000   51.000   52.000   53.000   54.000
+ 3   / 3:   30.000   31.000   32.000   33.000   34.000
+ 4   / 4:   10.000   11.000   12.000   13.000   14.000
+ 5   / 5:  -10.000   -9.000   -8.000   -7.000   -6.000
+ 6   / 6:  -30.000  -29.000  -28.000  -27.000  -26.000
+ ---- N:2 F:   2
+ 1   / 1:   74.000   75.000   76.000   77.000   78.000
+ 2   / 2:   54.000   55.000   56.000   57.000   58.000
+ 3   / 3:   34.000   35.000   36.000   37.000   38.000
+ 4   / 4:   14.000   15.000   16.000   17.000   18.000
+ 5   / 5:   -6.000   -5.000   -4.000   -3.000   -2.000
+ 6   / 6:  -26.000  -25.000  -24.000  -23.000  -22.000
+ ---- N:3 F:   3
+ 1   / 1:   78.000   79.000   80.000   81.000   82.000
+ 2   / 2:   58.000   59.000   60.000   61.000   62.000
+ 3   / 3:   38.000   39.000   40.000   41.000   42.000
+ 4   / 4:   18.000   19.000   20.000   21.000   22.000
+ 5   / 5:   -2.000   -1.000    0.000    1.000    2.000
+ 6   / 6:  -22.000  -21.000  -20.000  -19.000  -18.000
+ ---- N:4 F:   4
+ 1   / 1:   82.000   83.000   84.000   85.000   86.000
+ 2   / 2:   62.000   63.000   64.000   65.000   66.000
+ 3   / 3:   42.000   43.000   44.000   45.000   46.000
+ 4   / 4:   22.000   23.000   24.000   25.000   26.000
+ 5   / 5:    2.000    3.000    4.000    5.000    6.000
+ 6   / 6:  -18.000  -17.000  -16.000  -15.000  -14.000
+ ---- N:5 F:   5
+ 1   / 1:   86.000   87.000   88.000   89.000   90.000
+ 2   / 2:   66.000   67.000   68.000   69.000   70.000
+ 3   / 3:   46.000   47.000   48.000   49.000   50.000
+ 4   / 4:   26.000   27.000   28.000   29.000   30.000
+ 5   / 5:    6.000    7.000    8.000    9.000   10.000
+ 6   / 6:  -14.000  -13.000  -12.000  -11.000  -10.000
+ ---- N:6 F:   6
+ 1   / 1:   90.000   91.000   92.000   93.000   94.000
+ 2   / 2:   70.000   71.000   72.000   73.000   74.000
+ 3   / 3:   50.000   51.000   52.000   53.000   54.000
+ 4   / 4:   30.000   31.000   32.000   33.000   34.000
+ 5   / 5:   10.000   11.000   12.000   13.000   14.000
+ 6   / 6:  -10.000   -9.000   -8.000   -7.000   -6.000
+ ---- N:7 F:   7
+ 1   / 1:   94.000   95.000   96.000   97.000   98.000
+ 2   / 2:   74.000   75.000   76.000   77.000   78.000
+ 3   / 3:   54.000   55.000   56.000   57.000   58.000
+ 4   / 4:   34.000   35.000   36.000   37.000   38.000
+ 5   / 5:   14.000   15.000   16.000   17.000   18.000
+ 6   / 6:   -6.000   -5.000   -4.000   -3.000   -2.000
+ ---- N:8 F:   8
+ 1   / 1:   98.000   99.000  100.000  101.000  102.000
+ 2   / 2:   78.000   79.000   80.000   81.000   82.000
+ 3   / 3:   58.000   59.000   60.000   61.000   62.000
+ 4   / 4:   38.000   39.000   40.000   41.000   42.000
+ 5   / 5:   18.000   19.000   20.000   21.000   22.000
+ 6   / 6:   -2.000   -1.000    0.000    1.000    2.000
+list/F=25/y=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 8 by 3 points (LONGITUDE-DEPTH (m)-E)
+             LATITUDE : 1N
+             TIME     : JAN-2001
+             F        : 20
+               0E       1E       2E       3E       4E     
+                1        2        3        4        5
+ ---- M:1 E:   0
+ 0     / 1:  45.0000  46.0000  47.0000  48.0000  49.0000
+ 0.2   / 2:  49.0000  50.0000  51.0000  52.0000  53.0000
+ 0.4   / 3:  53.0000  54.0000  55.0000  56.0000  57.0000
+ 0.6   / 4:  57.0000  58.0000  59.0000  60.0000  61.0000
+ 0.8   / 5:  61.0000  62.0000  63.0000  64.0000  65.0000
+ 1     / 6:  65.0000  66.0000  67.0000  68.0000  69.0000
+ 1.2   / 7:  69.0000  70.0000  71.0000  72.0000  73.0000
+ 1.4   / 8:  73.0000  74.0000  75.0000  76.0000  77.0000
+ ---- M:2 E:   5
+ 0     / 1:  50.0000  51.0000  52.0000  53.0000  54.0000
+ 0.2   / 2:  54.0000  55.0000  56.0000  57.0000  58.0000
+ 0.4   / 3:  58.0000  59.0000  60.0000  61.0000  62.0000
+ 0.6   / 4:  62.0000  63.0000  64.0000  65.0000  66.0000
+ 0.8   / 5:  66.0000  67.0000  68.0000  69.0000  70.0000
+ 1     / 6:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 1.2   / 7:  74.0000  75.0000  76.0000  77.0000  78.0000
+ 1.4   / 8:  78.0000  79.0000  80.0000  81.0000  82.0000
+ ---- M:3 E:   10
+ 0     / 1:  55.0000  56.0000  57.0000  58.0000  59.0000
+ 0.2   / 2:  59.0000  60.0000  61.0000  62.0000  63.0000
+ 0.4   / 3:  63.0000  64.0000  65.0000  66.0000  67.0000
+ 0.6   / 4:  67.0000  68.0000  69.0000  70.0000  71.0000
+ 0.8   / 5:  71.0000  72.0000  73.0000  74.0000  75.0000
+ 1     / 6:  75.0000  76.0000  77.0000  78.0000  79.0000
+ 1.2   / 7:  79.0000  80.0000  81.0000  82.0000  83.0000
+ 1.4   / 8:  83.0000  84.0000  85.0000  86.0000  87.0000
+list/F=25/y=1/t=1 transpose_ze(myvar)
+             VARIABLE : TRANSPOSE_ZE(MYVAR)
+             SUBSET   : 5 by 3 by 8 points (LONGITUDE-Z-E)
+             LATITUDE : 1N
+             TIME     : JAN-2001
+             F        : 20
+             0E       1E       2E       3E       4E     
+              1        2        3        4        5
+ ---- M:1 E:   1
+ 1   / 1:  45.0000  46.0000  47.0000  48.0000  49.0000
+ 2   / 2:  50.0000  51.0000  52.0000  53.0000  54.0000
+ 3   / 3:  55.0000  56.0000  57.0000  58.0000  59.0000
+ ---- M:2 E:   2
+ 1   / 1:  49.0000  50.0000  51.0000  52.0000  53.0000
+ 2   / 2:  54.0000  55.0000  56.0000  57.0000  58.0000
+ 3   / 3:  59.0000  60.0000  61.0000  62.0000  63.0000
+ ---- M:3 E:   3
+ 1   / 1:  53.0000  54.0000  55.0000  56.0000  57.0000
+ 2   / 2:  58.0000  59.0000  60.0000  61.0000  62.0000
+ 3   / 3:  63.0000  64.0000  65.0000  66.0000  67.0000
+ ---- M:4 E:   4
+ 1   / 1:  57.0000  58.0000  59.0000  60.0000  61.0000
+ 2   / 2:  62.0000  63.0000  64.0000  65.0000  66.0000
+ 3   / 3:  67.0000  68.0000  69.0000  70.0000  71.0000
+ ---- M:5 E:   5
+ 1   / 1:  61.0000  62.0000  63.0000  64.0000  65.0000
+ 2   / 2:  66.0000  67.0000  68.0000  69.0000  70.0000
+ 3   / 3:  71.0000  72.0000  73.0000  74.0000  75.0000
+ ---- M:6 E:   6
+ 1   / 1:  65.0000  66.0000  67.0000  68.0000  69.0000
+ 2   / 2:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 3   / 3:  75.0000  76.0000  77.0000  78.0000  79.0000
+ ---- M:7 E:   7
+ 1   / 1:  69.0000  70.0000  71.0000  72.0000  73.0000
+ 2   / 2:  74.0000  75.0000  76.0000  77.0000  78.0000
+ 3   / 3:  79.0000  80.0000  81.0000  82.0000  83.0000
+ ---- M:8 E:   8
+ 1   / 1:  73.0000  74.0000  75.0000  76.0000  77.0000
+ 2   / 2:  78.0000  79.0000  80.0000  81.0000  82.0000
+ 3   / 3:  83.0000  84.0000  85.0000  86.0000  87.0000
+ 
+list/e=5/y=1/z=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 7 by 6 points (LONGITUDE-TIME-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             E        : 5
+                        0E       1E       2E       3E       4E     
+                         1        2        3        4        5
+ ---- N:1 F:   0
+ 01-JAN-2001 00 / 1:   30.000   31.000   32.000   33.000   34.000
+ 02-JAN-2001 00 / 2:   90.000   91.000   92.000   93.000   94.000
+ 03-JAN-2001 00 / 3:  150.000  151.000  152.000  153.000  154.000
+ 04-JAN-2001 00 / 4:  210.000  211.000  212.000  213.000  214.000
+ 05-JAN-2001 00 / 5:  270.000  271.000  272.000  273.000  274.000
+ 06-JAN-2001 00 / 6:  330.000  331.000  332.000  333.000  334.000
+ 07-JAN-2001 00 / 7:  390.000  391.000  392.000  393.000  394.000
+ ---- N:2 F:   20
+ 01-JAN-2001 00 / 1:   10.000   11.000   12.000   13.000   14.000
+ 02-JAN-2001 00 / 2:   70.000   71.000   72.000   73.000   74.000
+ 03-JAN-2001 00 / 3:  130.000  131.000  132.000  133.000  134.000
+ 04-JAN-2001 00 / 4:  190.000  191.000  192.000  193.000  194.000
+ 05-JAN-2001 00 / 5:  250.000  251.000  252.000  253.000  254.000
+ 06-JAN-2001 00 / 6:  310.000  311.000  312.000  313.000  314.000
+ 07-JAN-2001 00 / 7:  370.000  371.000  372.000  373.000  374.000
+ ---- N:3 F:   40
+ 01-JAN-2001 00 / 1:  -10.000   -9.000   -8.000   -7.000   -6.000
+ 02-JAN-2001 00 / 2:   50.000   51.000   52.000   53.000   54.000
+ 03-JAN-2001 00 / 3:  110.000  111.000  112.000  113.000  114.000
+ 04-JAN-2001 00 / 4:  170.000  171.000  172.000  173.000  174.000
+ 05-JAN-2001 00 / 5:  230.000  231.000  232.000  233.000  234.000
+ 06-JAN-2001 00 / 6:  290.000  291.000  292.000  293.000  294.000
+ 07-JAN-2001 00 / 7:  350.000  351.000  352.000  353.000  354.000
+ ---- N:4 F:   60
+ 01-JAN-2001 00 / 1:  -30.000  -29.000  -28.000  -27.000  -26.000
+ 02-JAN-2001 00 / 2:   30.000   31.000   32.000   33.000   34.000
+ 03-JAN-2001 00 / 3:   90.000   91.000   92.000   93.000   94.000
+ 04-JAN-2001 00 / 4:  150.000  151.000  152.000  153.000  154.000
+ 05-JAN-2001 00 / 5:  210.000  211.000  212.000  213.000  214.000
+ 06-JAN-2001 00 / 6:  270.000  271.000  272.000  273.000  274.000
+ 07-JAN-2001 00 / 7:  330.000  331.000  332.000  333.000  334.000
+ ---- N:5 F:   80
+ 01-JAN-2001 00 / 1:  -50.000  -49.000  -48.000  -47.000  -46.000
+ 02-JAN-2001 00 / 2:   10.000   11.000   12.000   13.000   14.000
+ 03-JAN-2001 00 / 3:   70.000   71.000   72.000   73.000   74.000
+ 04-JAN-2001 00 / 4:  130.000  131.000  132.000  133.000  134.000
+ 05-JAN-2001 00 / 5:  190.000  191.000  192.000  193.000  194.000
+ 06-JAN-2001 00 / 6:  250.000  251.000  252.000  253.000  254.000
+ 07-JAN-2001 00 / 7:  310.000  311.000  312.000  313.000  314.000
+ ---- N:6 F:   100
+ 01-JAN-2001 00 / 1:  -70.000  -69.000  -68.000  -67.000  -66.000
+ 02-JAN-2001 00 / 2:  -10.000   -9.000   -8.000   -7.000   -6.000
+ 03-JAN-2001 00 / 3:   50.000   51.000   52.000   53.000   54.000
+ 04-JAN-2001 00 / 4:  110.000  111.000  112.000  113.000  114.000
+ 05-JAN-2001 00 / 5:  170.000  171.000  172.000  173.000  174.000
+ 06-JAN-2001 00 / 6:  230.000  231.000  232.000  233.000  234.000
+ 07-JAN-2001 00 / 7:  290.000  291.000  292.000  293.000  294.000
+list/e=5/y=1/z=1 transpose_tf(myvar)
+             VARIABLE : TRANSPOSE_TF(MYVAR)
+             SUBSET   : 5 by 6 by 7 points (LONGITUDE-T-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             E        : 5
+             0E       1E       2E       3E       4E     
+              1        2        3        4        5
+ ---- N:1 F:   1
+ 1   / 1:   30.000   31.000   32.000   33.000   34.000
+ 2   / 2:   10.000   11.000   12.000   13.000   14.000
+ 3   / 3:  -10.000   -9.000   -8.000   -7.000   -6.000
+ 4   / 4:  -30.000  -29.000  -28.000  -27.000  -26.000
+ 5   / 5:  -50.000  -49.000  -48.000  -47.000  -46.000
+ 6   / 6:  -70.000  -69.000  -68.000  -67.000  -66.000
+ ---- N:2 F:   2
+ 1   / 1:   90.000   91.000   92.000   93.000   94.000
+ 2   / 2:   70.000   71.000   72.000   73.000   74.000
+ 3   / 3:   50.000   51.000   52.000   53.000   54.000
+ 4   / 4:   30.000   31.000   32.000   33.000   34.000
+ 5   / 5:   10.000   11.000   12.000   13.000   14.000
+ 6   / 6:  -10.000   -9.000   -8.000   -7.000   -6.000
+ ---- N:3 F:   3
+ 1   / 1:  150.000  151.000  152.000  153.000  154.000
+ 2   / 2:  130.000  131.000  132.000  133.000  134.000
+ 3   / 3:  110.000  111.000  112.000  113.000  114.000
+ 4   / 4:   90.000   91.000   92.000   93.000   94.000
+ 5   / 5:   70.000   71.000   72.000   73.000   74.000
+ 6   / 6:   50.000   51.000   52.000   53.000   54.000
+ ---- N:4 F:   4
+ 1   / 1:  210.000  211.000  212.000  213.000  214.000
+ 2   / 2:  190.000  191.000  192.000  193.000  194.000
+ 3   / 3:  170.000  171.000  172.000  173.000  174.000
+ 4   / 4:  150.000  151.000  152.000  153.000  154.000
+ 5   / 5:  130.000  131.000  132.000  133.000  134.000
+ 6   / 6:  110.000  111.000  112.000  113.000  114.000
+ ---- N:5 F:   5
+ 1   / 1:  270.000  271.000  272.000  273.000  274.000
+ 2   / 2:  250.000  251.000  252.000  253.000  254.000
+ 3   / 3:  230.000  231.000  232.000  233.000  234.000
+ 4   / 4:  210.000  211.000  212.000  213.000  214.000
+ 5   / 5:  190.000  191.000  192.000  193.000  194.000
+ 6   / 6:  170.000  171.000  172.000  173.000  174.000
+ ---- N:6 F:   6
+ 1   / 1:  330.000  331.000  332.000  333.000  334.000
+ 2   / 2:  310.000  311.000  312.000  313.000  314.000
+ 3   / 3:  290.000  291.000  292.000  293.000  294.000
+ 4   / 4:  270.000  271.000  272.000  273.000  274.000
+ 5   / 5:  250.000  251.000  252.000  253.000  254.000
+ 6   / 6:  230.000  231.000  232.000  233.000  234.000
+ ---- N:7 F:   7
+ 1   / 1:  390.000  391.000  392.000  393.000  394.000
+ 2   / 2:  370.000  371.000  372.000  373.000  374.000
+ 3   / 3:  350.000  351.000  352.000  353.000  354.000
+ 4   / 4:  330.000  331.000  332.000  333.000  334.000
+ 5   / 5:  310.000  311.000  312.000  313.000  314.000
+ 6   / 6:  290.000  291.000  292.000  293.000  294.000
+list/F=25/y=1/z=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 7 by 3 points (LONGITUDE-TIME-E)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             F        : 20
+                        0E       1E       2E       3E       4E     
+                         1        2        3        4        5
+ ---- M:1 E:   0
+ 01-JAN-2001 00 / 1:    5.000    6.000    7.000    8.000    9.000
+ 02-JAN-2001 00 / 2:   65.000   66.000   67.000   68.000   69.000
+ 03-JAN-2001 00 / 3:  125.000  126.000  127.000  128.000  129.000
+ 04-JAN-2001 00 / 4:  185.000  186.000  187.000  188.000  189.000
+ 05-JAN-2001 00 / 5:  245.000  246.000  247.000  248.000  249.000
+ 06-JAN-2001 00 / 6:  305.000  306.000  307.000  308.000  309.000
+ 07-JAN-2001 00 / 7:  365.000  366.000  367.000  368.000  369.000
+ ---- M:2 E:   5
+ 01-JAN-2001 00 / 1:   10.000   11.000   12.000   13.000   14.000
+ 02-JAN-2001 00 / 2:   70.000   71.000   72.000   73.000   74.000
+ 03-JAN-2001 00 / 3:  130.000  131.000  132.000  133.000  134.000
+ 04-JAN-2001 00 / 4:  190.000  191.000  192.000  193.000  194.000
+ 05-JAN-2001 00 / 5:  250.000  251.000  252.000  253.000  254.000
+ 06-JAN-2001 00 / 6:  310.000  311.000  312.000  313.000  314.000
+ 07-JAN-2001 00 / 7:  370.000  371.000  372.000  373.000  374.000
+ ---- M:3 E:   10
+ 01-JAN-2001 00 / 1:   15.000   16.000   17.000   18.000   19.000
+ 02-JAN-2001 00 / 2:   75.000   76.000   77.000   78.000   79.000
+ 03-JAN-2001 00 / 3:  135.000  136.000  137.000  138.000  139.000
+ 04-JAN-2001 00 / 4:  195.000  196.000  197.000  198.000  199.000
+ 05-JAN-2001 00 / 5:  255.000  256.000  257.000  258.000  259.000
+ 06-JAN-2001 00 / 6:  315.000  316.000  317.000  318.000  319.000
+ 07-JAN-2001 00 / 7:  375.000  376.000  377.000  378.000  379.000
+list/F=25/y=1/z=1 transpose_te(myvar)
+             VARIABLE : TRANSPOSE_TE(MYVAR)
+             SUBSET   : 5 by 3 by 7 points (LONGITUDE-T-E)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             F        : 20
+             0E       1E       2E       3E       4E     
+              1        2        3        4        5
+ ---- M:1 E:   1
+ 1   / 1:    5.000    6.000    7.000    8.000    9.000
+ 2   / 2:   10.000   11.000   12.000   13.000   14.000
+ 3   / 3:   15.000   16.000   17.000   18.000   19.000
+ ---- M:2 E:   2
+ 1   / 1:   65.000   66.000   67.000   68.000   69.000
+ 2   / 2:   70.000   71.000   72.000   73.000   74.000
+ 3   / 3:   75.000   76.000   77.000   78.000   79.000
+ ---- M:3 E:   3
+ 1   / 1:  125.000  126.000  127.000  128.000  129.000
+ 2   / 2:  130.000  131.000  132.000  133.000  134.000
+ 3   / 3:  135.000  136.000  137.000  138.000  139.000
+ ---- M:4 E:   4
+ 1   / 1:  185.000  186.000  187.000  188.000  189.000
+ 2   / 2:  190.000  191.000  192.000  193.000  194.000
+ 3   / 3:  195.000  196.000  197.000  198.000  199.000
+ ---- M:5 E:   5
+ 1   / 1:  245.000  246.000  247.000  248.000  249.000
+ 2   / 2:  250.000  251.000  252.000  253.000  254.000
+ 3   / 3:  255.000  256.000  257.000  258.000  259.000
+ ---- M:6 E:   6
+ 1   / 1:  305.000  306.000  307.000  308.000  309.000
+ 2   / 2:  310.000  311.000  312.000  313.000  314.000
+ 3   / 3:  315.000  316.000  317.000  318.000  319.000
+ ---- M:7 E:   7
+ 1   / 1:  365.000  366.000  367.000  368.000  369.000
+ 2   / 2:  370.000  371.000  372.000  373.000  374.000
+ 3   / 3:  375.000  376.000  377.000  378.000  379.000
+ 
 can var /all
 set grid abstract
 can grid mygrd
@@ -33963,10 +34217,12 @@ can axis taxs
 can axis zaxs
 can axis yaxs
 can axis xaxs
- 
+can axis eaxs
+can axis faxs
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_unique_str2int
 ! bn_unique_str2int.jnl
  
@@ -34046,6 +34302,7 @@ list unique_str2int(blist), blist
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_sort
  
  
@@ -34779,6 +35036,7 @@ list my_vwnd
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_eof
 ! Benchmark for EOF functions
 ! Statically linked as of ferret V5.34
@@ -34849,6 +35107,7 @@ exit/script
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_compress_by
 let mask = {1,,1,,1} + 0*L[l=101:102] + 0*K[k=10:11]
 list compressi_by({10,20,30,40,50},mask)
@@ -34886,6 +35145,7 @@ list compressi_by({10,20,30,40,50},mask2)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_compress
  ! NOAA/PMEL TMAP
  ! Program FERRET
@@ -35034,6 +35294,7 @@ list compressk(a[i=91,j=35,l=1])
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bench_internal_string_functions
 ! test internal string functions:
 !       strlen
@@ -35129,6 +35390,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_ef_bench_extrema.jnl
 ! bench_extrema.jnl
 !  benchmark tests for findhi and findlo
@@ -35185,6 +35447,7 @@ list a[i=@ngd]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_ef_err541_date_delim.jnl
 ! err541_date_delim.jnl
 ! Fix errors occurring with delimted reads - four digit years were
@@ -35257,6 +35520,7 @@ if `date_check` then say **** DELIMTED READ DATE CHECK FAILED
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_ef_zaxr_fcns.jnl
 ! bn_ef_zaxr_functions.jnl
 ! 04-apr-05 *acm* move to tests of shared-obj efs.
@@ -35308,6 +35572,7 @@ list ddat_a, ddat_b, ddat_c
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_ef_curv_to_rect.jnl
 ! bn_ef_curv_to_rect.jnl
 ! Test of curvilinear to rectilinear regridding
@@ -35457,6 +35722,7 @@ shade fill_xy(sst[l=1], mask[l=1], 4)
 ! Compare SAMPLEXY and SAMPLEIJ
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_samplexy_sampleij
 ! bn_samplexy_sampleij
  
@@ -35493,8 +35759,10 @@ list/l=1 samplexy(sst,{321,323.5,325}, {1,1,1}), sampleij(sst,{321,323,324.5}, {
  
  
  
-GO bn_reset
+GO bn_reset bn_modulo_strides
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_modulo_strides
 GO bn_modulo_strides
 ! bn_modulo_strides.jnl
 ! 6/01 *sh*
@@ -35514,43 +35782,43 @@ cancel memory/all
 set mode diag
 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 (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    B        C:  6 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    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 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 (G022)          (AX015)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   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 (G022)          (AX015)   NORMAL    NORMAL    NORMAL
  strip regrid on X: A --> (G022)           @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  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:    18    20 dset:   1
- -DELETE A        M:339 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- rdstride A        C: 11 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:     2     2 dset:   1
- -DELETE A        M:339 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  A        M:339 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:332 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ -DELETE A        M:238 dset:   1 I:     18     20  J: -999 -999  K: -999 -999  L:   -999   -999
+ rdstride A        C: 11 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing A on X axis:        2        2 dset:   1
+ -DELETE A        M:238 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ nulrgd  A        M:238 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE A        M:243 dset:   1 I:     18     22  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL
  18   / 1:  18.0000
  20   / 2:  20.0000
  22   / 3:   2.0000
 list/nohead a[i=1:25:3]  ! no strides --> reads full region without strides
- dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    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 (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G022)          (AX015)   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 (G023)          (AX017)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX017)   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 (G023)          (AX017)   NORMAL    NORMAL    NORMAL
  strip regrid on X: A --> (G023)           @XACT
- strip moduloing A on X axis:     1    25 dset:   1
- reading A        M:327 dset:   1 I:    1   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:     1    20 dset:   1
- regrid  A        M:334 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ strip moduloing A on X axis:        1       25 dset:   1
+ reading A        M:241 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:231 dset:   1 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL
  1    / 1:   1.0000
  4    / 2:   4.0000
  7    / 3:   7.0000
@@ -35561,24 +35829,12 @@ list/nohead a[i=1:25:3]  ! no strides --> reads full region without strides
  22   / 8:   2.0000
  25   / 9:   5.0000
 list/nohead b            ! reuse of cached result
- dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M:334 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  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 (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    B        C:  6 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A --> (G022)           @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  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:    18    20 dset:   1
- -DELETE A        M:334 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- rdstride A        C: 11 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:     2     2 dset:   1
- -DELETE A        M:334 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  A        M:334 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:330 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL
+ -DELETE A        M:231 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 (G022)          (AX015)   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:243 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  18   / 1:  18.0000
  20   / 2:  20.0000
  22   / 3:   2.0000
@@ -35779,42 +36035,42 @@ list/nohead a[i=106:145:5]
 !  ***** STRING TESTS *****
 set mode diag
 list/nohead str[i=18:23:2] ! using rdstride
- dealloc  dynamic grid (G023)          (AX028)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M:337 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  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 (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX028)   NORMAL    NORMAL    NORMAL
+ -DELETE A        M:231 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 (G022)          (AX015)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   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 (G022)          (AX015)   NORMAL    NORMAL    NORMAL
  strip regrid on X: STR --> (G022)           @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  M: -999 -999  N: -999 -999
- doing moduloing STR on X axis:    18    20 dset:   1
- -DELETE STR      M:337 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- rdstride STR      C:  9 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing STR on X axis:     2     2 dset:   1
- -DELETE STR      M:337 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  STR      M:337 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE STR      M:325 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ -DELETE STR      M:231 dset:   1 I:     18     20  J: -999 -999  K: -999 -999  L:   -999   -999
+ rdstride STR      C:  9 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing STR on X axis:        2        2 dset:   1
+ -DELETE STR      M:231 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ nulrgd  STR      M:231 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE STR      M:244 dset:   1 I:     18     22  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G022)          (AX015)   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 (G022)          (AX015)   NORMAL    NORMAL    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 (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G022)          (AX015)   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 (G023)          (AX017)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX017)   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 (G023)          (AX017)   NORMAL    NORMAL    NORMAL
  strip regrid on X: STR --> (G023)           @XACT
- strip moduloing STR on X axis:     1    25 dset:   1
- reading STR      M:325 dset:   1 I:    1   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing STR on X axis:     1    20 dset:   1
- regrid  STR      M:322 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ strip moduloing STR on X axis:        1       25 dset:   1
+ reading STR      M:244 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:240 dset:   1 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL
  1    / 1:"a"
  4    / 2:"d"
  7    / 3:"g"
@@ -35889,8 +36145,10 @@ list/nohead str[i=105:145:5]
  
 ! ******** V54 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_axis_viewports
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_viewports
 GO bn_axis_viewports
 ! bn_axis_viewports
 ! *sh* 9/01
@@ -36228,8 +36486,10 @@ ppl list yaxis
          AUTO    NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
          YORG= 1.40E+00  AUTO LABELLING
  
-GO bn_reset
+GO bn_reset bn_strings
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_strings
 GO bn_strings
 ! bn_strings.jnl
  
@@ -36240,7 +36500,7 @@ GO bn_strings
  
 sh mode stupid
       MODE            STATE        ARGUMENT
-      STUPID           SET
+      STUPID        CANCELED
 cancel mode stupid  ! for testing in double precision
  
  
@@ -36364,8 +36624,8 @@ use test_string
 sh dat test_string
      currently SET data sets:
     1> ./test_string.cdf  (default)
- name     title                             I         J         K         L         M         N
- A        {"hello"}                        1:1       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        {"hello"}                        1:1       ...       ...       ...
  
 list a
              VARIABLE : {"hello"}
@@ -36381,8 +36641,8 @@ use test_string
 sh dat test_string
      currently SET data sets:
     1> ./test_string.cdf  (default)
- name     title                             I         J         K         L         M         N
- B        "one line of text"               ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ B        "one line of text"               ...       ...       ...       ...
  
 list b
              VARIABLE : "one line of text"
@@ -36404,11 +36664,11 @@ use test_string.cdf
 show data test_string
      currently SET data sets:
     1> ./test_string.cdf  (default)
- name     title                             I         J         K         L         M         N
- A        {"hello","goodbye", "wave to me  1:3       ...       ...       ...       ...       ...
- B        "one line of text"               ...       ...       ...       ...       ...       ...
- D        {"INITIALIZE", SPAWN:"ls *.str_  1:19      ...       ...       ...       ...       ...
- B2       "two line of text"               ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        {"hello","goodbye", "wave to me  1:3       ...       ...       ...
+ B        "one line of text"               ...       ...       ...       ...
+ D        {"INITIALIZE", SPAWN:"ls *.str_  1:19      ...       ...       ...
+ B2       "two line of text"               ...       ...       ...       ...
  
 list/nohead a
  1   / 1:"hello"     
@@ -36427,8 +36687,8 @@ use test_string
 show data test_string
      currently SET data sets:
     1> ./test_string.cdf  (default)
- name     title                             I         J         K         L         M         N
- D        partial filename list            2:5       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ D        partial filename list            2:5       ...       ...       ...
  
 list d
              VARIABLE : partial filename list
@@ -36527,8 +36787,6 @@ sh grid
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 list/nohead  ysequence({"a","b","c","d","e"})
  1   / 1:"a"
  2   / 2:"b"
@@ -36544,8 +36802,6 @@ sh grid
  ABSTRACT  Y             99999999 r   1                    1.E+08              full
  normal    Z
  normal    T
- normal    E
- normal    F
 list/nohead  zsequence({"a","b","c","d","e"})
  1   / 1:"a"
  2   / 2:"b"
@@ -36561,8 +36817,6 @@ sh grid
  normal    Y
  ABSTRACT  Z             99999999 r   1                    1.E+08              full
  normal    T
- normal    E
- normal    F
 list/nohead  tsequence({"a","b","c","d","e"})
  1   / 1:"a"
  2   / 2:"b"
@@ -36578,8 +36832,6 @@ sh grid
  normal    Y
  normal    Z
  ABSTRACT  T             99999999 r   1                    1.E+08              full
- normal    E
- normal    F
 let a = TSEQUENCE({"a","b","c","d","e"})
 list/l=2:3 a
              VARIABLE : TSEQUENCE({"a","b","c","d","e"})
@@ -36799,8 +37051,10 @@ list a[i=@rsum]
  
 set mode/last stupid
  
-GO bn_reset
+GO bn_reset bn_axcontrol
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axcontrol
 GO bn_axcontrol
  ! NOAA/PMEL TMAP
  ! Program FERRET (alpha)
@@ -36841,8 +37095,10 @@ 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}
  
-GO bn_reset
+GO bn_reset bn_vec_curv
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_vec_curv
 GO bn_vec_curv
 ! bn_vec_curv.jnl
 !
@@ -36915,8 +37171,10 @@ vec/title="Stretched grid" a,b,mxpage,mypage
 can mode meta
 set mode logo
  
-GO bn_reset
+GO bn_reset bn_delimited_read
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_delimited_read
 GO bn_delimited_read
 ! bn_delimited_read.jnl
 ! 10/01 *sh*
@@ -36940,53 +37198,53 @@ show data/var
      currently SET data sets:
     1> ./bn_delimited_read_1.dat  (default)
  
- name     title                             I         J         K         L         M         N
- V1       V1                               1:7       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G023) with -1.E+34 for missing data
              X=0.5:7.5  
- V2       V2                               1:7       ...       ...       ...       ...       ...
+ V2       V2                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G023) with -1.E+34 for missing data
              X=0.5:7.5  
- V3       V3                               1:7       ...       ...       ...       ...       ...
+ V3       V3                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G023) with -1.E+34 for missing data
              X=0.5:7.5  
- V4       V4                               1:7       ...       ...       ...       ...       ...
+ V4       V4                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G023) with -1.E+34 for missing data
              X=0.5:7.5  
- V5       V5                               1:7       ...       ...       ...       ...       ...
+ V5       V5                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G023) with -1.E+34 for missing data
              X=0.5:7.5  
- V6       V6                               1:7       ...       ...       ...       ...       ...
+ V6       V6                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G023) with -1.E+34 for missing data
              X=0.5:7.5  
- V7       V7                               1:7       ...       ...       ...       ...       ...
+ V7       V7                               1:7       ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G023) with -1.E+34 for missing data
              X=0.5:7.5  
- V8       V8                               1:7       ...       ...       ...       ...       ...
+ V8       V8                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G023) with -1.E+34 for missing data
              X=0.5:7.5  
- V9       V9                               1:7       ...       ...       ...       ...       ...
+ V9       V9                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G023) with -1.E+34 for missing data
              X=0.5:7.5  
- V10      V10                              1:7       ...       ...       ...       ...       ...
+ V10      V10                              1:7       ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G023) with -1.E+34 for missing data
@@ -37020,13 +37278,13 @@ file/format=delim/var=a1,a2,a3,a4,a5,a6,a7 bn_delimited_read_1.dat
 list a1,a2,a3,a4,a5,a6,a7
              DATA SET: ./bn_delimited_read_1.dat
              X: 0.5 to 7.5
- Column  1: A1
- Column  2: A2
- Column  3: A3
- Column  4: A4
- Column  5: A5
- Column  6: A6
- Column  7: A7
+ Column  1: A1 is a1
+ Column  2: A2 is a2
+ Column  3: A3 is a3
+ Column  4: A4 is a4
+ Column  5: A5 is a5
+ Column  6: A6 is a6
+ Column  7: A7 is a7
                   A1    A2     A3     A4     A5    A6     A7
 1   / 1: "col1"       "col2" "col3" "col4" "col5" " "      ....
 2   / 2: "one"        " "    "1.1"  "24S"  "130E" " "    10.000
@@ -37088,21 +37346,21 @@ file/format=delim/skip=1/type=text/var=a1,a2,a3,a4,a5 bn_delimited_read_1.dat
 show data
      currently SET data sets:
     1> ./bn_delimited_read_1.dat  (default)
- name     title                             I         J         K         L         M         N
- A1       A1                               1:7       ...       ...       ...       ...       ...
- A2       A2                               1:7       ...       ...       ...       ...       ...
- A3       A3                               1:7       ...       ...       ...       ...       ...
- A4       A4                               1:7       ...       ...       ...       ...       ...
- A5       A5                               1:7       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A1       a1                               1:7       ...       ...       ...
+ A2       a2                               1:7       ...       ...       ...
+ A3       a3                               1:7       ...       ...       ...
+ A4       a4                               1:7       ...       ...       ...
+ A5       a5                               1:7       ...       ...       ...
  
 list a1,a2,a3,a4,a5
              DATA SET: ./bn_delimited_read_1.dat
              X: 0.5 to 6.5
- Column  1: A1
- Column  2: A2
- Column  3: A3
- Column  4: A4
- Column  5: A5
+ Column  1: A1 is a1
+ Column  2: A2 is a2
+ Column  3: A3 is a3
+ Column  4: A4 is a4
+ Column  5: A5 is a5
                   A1   A2   A3    A4    A5
 1   / 1: "one"        " " "1.1" "24S" "130E"
 2   / 2: "two"        " " "2.2" "24N" "130W"
@@ -37183,11 +37441,11 @@ columns/grid=g1/var=c1,c2,c3,c4,c5 bn_delimited_read_1.dat
 list c1,c2,c3,c4,c5
              DATA SET: ./bn_delimited_read_1.dat
              X: 1
- Column  1: C1
- Column  2: C2
- Column  3: C3
- Column  4: C4
- Column  5: C5
+ Column  1: C1 is c1
+ Column  2: C2 is c2
+ Column  3: C3 is c3
+ Column  4: C4 is c4
+ Column  5: C5 is c5
              C1    C2     C3     C4     C5
 I / *:    "col1" "col2" "col3" "col4" "col5"
  
@@ -37196,23 +37454,25 @@ cancel data/all
 ! file using blank as a delimiter
 ! Note record 1 has blanks at end of record
 ! Note record of many blanks sandwiched in as record 2
+! (note prev. to 7/13/2016 the file had incorrect date formats with the year first.
+!  File replaced so it can be read after the fix for ticket 2449.)
 file/form=delimited bn_delimited_read_2.dat
 show data
      currently SET data sets:
     1> ./bn_delimited_read_2.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:3       ...       ...       ...
  
 file/form=delimited/delimiter=" " bn_delimited_read_2.dat
 show data
      currently SET data sets:
     1> ./bn_delimited_read_2.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:3       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V2       V2                               1:3       ...       ...       ...       ...       ...
+ V2       V2                               1:3       ...       ...       ...
        (Time of day)
- V3       V3                               1:3       ...       ...       ...       ...       ...
+ V3       V3                               1:3       ...       ...       ...
        (all values missing)
  
 list v1,v2
@@ -37221,9 +37481,9 @@ list v1,v2
  Column  1: V1 is V1 (days)(Julian days since 1-Jan-1900)
  Column  2: V2 is V2 (hours)(Time of day)
               V1     V2
-1   / 1:  37965.0  12.5833
+1   / 1:  29921.0  12.5833
 2   / 2:     ....     ....
-3   / 3:  39051.0  13.7514
+3   / 3:  -1790.0  13.7514
  
 ! ==========
 ! look at the date/time file
@@ -37255,18 +37515,18 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
- V2       V2                               1:4       ...       ...       ...       ...       ...
- V3       V3                               1:4       ...       ...       ...       ...       ...
- V4       V4                               1:4       ...       ...       ...       ...       ...
- V5       V5                               1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:4       ...       ...       ...
+ V2       V2                               1:4       ...       ...       ...
+ V3       V3                               1:4       ...       ...       ...
+ V4       V4                               1:4       ...       ...       ...
+ V5       V5                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V6       V6                               1:4       ...       ...       ...       ...       ...
+ V6       V6                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V7       V7                               1:4       ...       ...       ...       ...       ...
+ V7       V7                               1:4       ...       ...       ...
        (Time of day)
- V8       V8                               1:4       ...       ...       ...       ...       ...
+ V8       V8                               1:4       ...       ...       ...
        (Time of day)
  
  
@@ -37304,22 +37564,22 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V2       V2                               1:4       ...       ...       ...       ...       ...
+ V2       V2                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V3       V3                               1:4       ...       ...       ...       ...       ...
+ V3       V3                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V4       V4                               1:4       ...       ...       ...       ...       ...
+ V4       V4                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V5       V5                               1:4       ...       ...       ...       ...       ...
+ V5       V5                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V6       V6                               1:4       ...       ...       ...       ...       ...
+ V6       V6                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V7       V7                               1:4       ...       ...       ...       ...       ...
+ V7       V7                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V8       V8                               1:4       ...       ...       ...       ...       ...
+ V8       V8                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
  
  
@@ -37343,22 +37603,22 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:4       ...       ...       ...
        (Time of day)
- V2       V2                               1:4       ...       ...       ...       ...       ...
+ V2       V2                               1:4       ...       ...       ...
        (Time of day)
- V3       V3                               1:4       ...       ...       ...       ...       ...
+ V3       V3                               1:4       ...       ...       ...
        (Time of day)
- V4       V4                               1:4       ...       ...       ...       ...       ...
+ V4       V4                               1:4       ...       ...       ...
        (Time of day)
- V5       V5                               1:4       ...       ...       ...       ...       ...
+ V5       V5                               1:4       ...       ...       ...
        (Time of day)
- V6       V6                               1:4       ...       ...       ...       ...       ...
+ V6       V6                               1:4       ...       ...       ...
        (Time of day)
- V7       V7                               1:4       ...       ...       ...       ...       ...
+ V7       V7                               1:4       ...       ...       ...
        (Time of day)
- V8       V8                               1:4       ...       ...       ...       ...       ...
+ V8       V8                               1:4       ...       ...       ...
        (Time of day)
  
  
@@ -37382,22 +37642,22 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V2       V2                               1:4       ...       ...       ...       ...       ...
+ V2       V2                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V3       V3                               1:4       ...       ...       ...       ...       ...
+ V3       V3                               1:4       ...       ...       ...
        (Time of day)
- V4       V4                               1:4       ...       ...       ...       ...       ...
+ V4       V4                               1:4       ...       ...       ...
        (Time of day)
- V5       V5                               1:4       ...       ...       ...       ...       ...
+ V5       V5                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V6       V6                               1:4       ...       ...       ...       ...       ...
+ V6       V6                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V7       V7                               1:4       ...       ...       ...       ...       ...
+ V7       V7                               1:4       ...       ...       ...
        (Time of day)
- V8       V8                               1:4       ...       ...       ...       ...       ...
+ V8       V8                               1:4       ...       ...       ...
        (Time of day)
  
  
@@ -37417,14 +37677,14 @@ list v1,v3,v5,v7
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V3       V3                               1:4       ...       ...       ...       ...       ...
+ V3       V3                               1:4       ...       ...       ...
        (Time of day)
- V5       V5                               1:4       ...       ...       ...       ...       ...
+ V5       V5                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V7       V7                               1:4       ...       ...       ...       ...       ...
+ V7       V7                               1:4       ...       ...       ...
        (Time of day)
  
  
@@ -37512,364 +37772,364 @@ show data/full
      currently SET data sets:
     1> ./bn_delimited_read_CO2.dat  (default)
  
- name     title                             I         J         K         L         M         N
- V1       V1                               1:20      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:20      ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V2       V2                               1:20      ...       ...       ...       ...       ...
+ V2       V2                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V3       V3                               1:20      ...       ...       ...       ...       ...
+ V3       V3                               1:20      ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V4       V4                               1:20      ...       ...       ...       ...       ...
+ V4       V4                               1:20      ...       ...       ...
        (Julian days since 1-Jan-1900)
             Data type = NUMERIC
             Conversion /TYPE=DATE
              days on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V5       V5                               1:20      ...       ...       ...       ...       ...
+ V5       V5                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V6       V6                               1:20      ...       ...       ...       ...       ...
+ V6       V6                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V7       V7                               1:20      ...       ...       ...       ...       ...
+ V7       V7                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V8       V8                               1:20      ...       ...       ...       ...       ...
+ V8       V8                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V9       V9                               1:20      ...       ...       ...       ...       ...
+ V9       V9                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V10      V10                              1:20      ...       ...       ...       ...       ...
+ V10      V10                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V11      V11                              1:20      ...       ...       ...       ...       ...
+ V11      V11                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V12      V12                              1:20      ...       ...       ...       ...       ...
+ V12      V12                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V13      V13                              1:20      ...       ...       ...       ...       ...
+ V13      V13                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V14      V14                              1:20      ...       ...       ...       ...       ...
+ V14      V14                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V15      V15                              1:20      ...       ...       ...       ...       ...
+ V15      V15                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V16      V16                              1:20      ...       ...       ...       ...       ...
+ V16      V16                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V17      V17                              1:20      ...       ...       ...       ...       ...
+ V17      V17                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V18      V18                              1:20      ...       ...       ...       ...       ...
+ V18      V18                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V19      V19                              1:20      ...       ...       ...       ...       ...
+ V19      V19                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V20      V20                              1:20      ...       ...       ...       ...       ...
+ V20      V20                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V21      V21                              1:20      ...       ...       ...       ...       ...
+ V21      V21                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V22      V22                              1:20      ...       ...       ...       ...       ...
+ V22      V22                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V23      V23                              1:20      ...       ...       ...       ...       ...
+ V23      V23                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V24      V24                              1:20      ...       ...       ...       ...       ...
+ V24      V24                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V25      V25                              1:20      ...       ...       ...       ...       ...
+ V25      V25                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V26      V26                              1:20      ...       ...       ...       ...       ...
+ V26      V26                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V27      V27                              1:20      ...       ...       ...       ...       ...
+ V27      V27                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V28      V28                              1:20      ...       ...       ...       ...       ...
+ V28      V28                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V29      V29                              1:20      ...       ...       ...       ...       ...
+ V29      V29                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V30      V30                              1:20      ...       ...       ...       ...       ...
+ V30      V30                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V31      V31                              1:20      ...       ...       ...       ...       ...
+ V31      V31                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V32      V32                              1:20      ...       ...       ...       ...       ...
+ V32      V32                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V33      V33                              1:20      ...       ...       ...       ...       ...
+ V33      V33                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V34      V34                              1:20      ...       ...       ...       ...       ...
+ V34      V34                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V35      V35                              1:20      ...       ...       ...       ...       ...
+ V35      V35                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V36      V36                              1:20      ...       ...       ...       ...       ...
+ V36      V36                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V37      V37                              1:20      ...       ...       ...       ...       ...
+ V37      V37                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V38      V38                              1:20      ...       ...       ...       ...       ...
+ V38      V38                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V39      V39                              1:20      ...       ...       ...       ...       ...
+ V39      V39                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V40      V40                              1:20      ...       ...       ...       ...       ...
+ V40      V40                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V41      V41                              1:20      ...       ...       ...       ...       ...
+ V41      V41                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V42      V42                              1:20      ...       ...       ...       ...       ...
+ V42      V42                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V43      V43                              1:20      ...       ...       ...       ...       ...
+ V43      V43                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V44      V44                              1:20      ...       ...       ...       ...       ...
+ V44      V44                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V45      V45                              1:20      ...       ...       ...       ...       ...
+ V45      V45                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V46      V46                              1:20      ...       ...       ...       ...       ...
+ V46      V46                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V47      V47                              1:20      ...       ...       ...       ...       ...
+ V47      V47                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V48      V48                              1:20      ...       ...       ...       ...       ...
+ V48      V48                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V49      V49                              1:20      ...       ...       ...       ...       ...
+ V49      V49                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V50      V50                              1:20      ...       ...       ...       ...       ...
+ V50      V50                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V51      V51                              1:20      ...       ...       ...       ...       ...
+ V51      V51                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V52      V52                              1:20      ...       ...       ...       ...       ...
+ V52      V52                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V53      V53                              1:20      ...       ...       ...       ...       ...
+ V53      V53                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V54      V54                              1:20      ...       ...       ...       ...       ...
+ V54      V54                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V55      V55                              1:20      ...       ...       ...       ...       ...
+ V55      V55                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V56      V56                              1:20      ...       ...       ...       ...       ...
+ V56      V56                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V57      V57                              1:20      ...       ...       ...       ...       ...
+ V57      V57                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V58      V58                              1:20      ...       ...       ...       ...       ...
+ V58      V58                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V59      V59                              1:20      ...       ...       ...       ...       ...
+ V59      V59                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V60      V60                              1:20      ...       ...       ...       ...       ...
+ V60      V60                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V61      V61                              1:20      ...       ...       ...       ...       ...
+ V61      V61                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V62      V62                              1:20      ...       ...       ...       ...       ...
+ V62      V62                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V63      V63                              1:20      ...       ...       ...       ...       ...
+ V63      V63                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V64      V64                              1:20      ...       ...       ...       ...       ...
+ V64      V64                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V65      V65                              1:20      ...       ...       ...       ...       ...
+ V65      V65                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V66      V66                              1:20      ...       ...       ...       ...       ...
+ V66      V66                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V67      V67                              1:20      ...       ...       ...       ...       ...
+ V67      V67                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V68      V68                              1:20      ...       ...       ...       ...       ...
+ V68      V68                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V69      V69                              1:20      ...       ...       ...       ...       ...
+ V69      V69                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V70      V70                              1:20      ...       ...       ...       ...       ...
+ V70      V70                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V71      V71                              1:20      ...       ...       ...       ...       ...
+ V71      V71                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V72      V72                              1:20      ...       ...       ...       ...       ...
+ V72      V72                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
@@ -37981,8 +38241,10 @@ cancel mode ignore
  
 ! ******** V5.41 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn541_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn541_bug_fixes
 GO bn541_bug_fixes
 ! bn541_bug_fixes.jnl
 ! test various fixes that went into version 5.41
@@ -37990,6 +38252,7 @@ GO bn541_bug_fixes
 !
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! tics on horiz log axes were wrong; (plot only)
 ! GO bn_reset
@@ -37999,6 +38262,7 @@ cancel mode verify
 !missing vertices in polygon call
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_polymissing
 ! err540_polymissing.jnl
 ! 3/02 *acm*
@@ -38030,6 +38294,7 @@ polygon  xvertex1,yvertex,values
 ! formatting axis label numbers
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_ill_format.jnl
 ! err540_ill_format.jnl
 ! 3/02 *acm*
@@ -38048,6 +38313,7 @@ plot/trans/i=1:100  0.001 - 0.002/ i
 ! variable permutation in netCDF writes
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_write_order
 ! err540_write_order.jnl
 ! *sh* 3/02
@@ -38126,6 +38392,7 @@ sp rm -f test_bad_order.cdf
 !@AVE error when plotting unlike grids together
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_ax_ave
 !err540_ax_ave.jnl
 ! 3/02 *acm
@@ -38142,6 +38409,7 @@ plot/x=140w/y=0/sym/line sst,sst[gt=t2 at ave]
 !Make PPL AXSET settings persist, but not settings made w/ qualifiers /AXES= or /NOAXES
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_axset
 !err540_axset.jnl
 ! 3/02 *acm
@@ -38176,6 +38444,7 @@ PPL axset 1,1,1,1
 !Previously couldn't do PLOT/VS/DASH, but no reason not to allow it.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_vs_dash
 ! PLOT/VS/DASH  previously was not allowed.
  
@@ -38219,6 +38488,7 @@ plot/over/thick/dash/color=blue 50*sin(ypts/3)+700, 30*cos(ypts/3)+800, 20*cos(y
 !overlay on polygon plots
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_poly_overlay
 !overlay on polygon plots
  
@@ -38228,6 +38498,7 @@ shade/over/i=1:2/j=0:2/patt i+j
 !polytube failed on plot/over; go polytube, because YAXIS_MIN, _MAX not defined.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_axis_symbols
 ! err540_axis_symbols.jnl
 ! 3/02 *acm*
@@ -38260,6 +38531,7 @@ XAXIS_MAX = "10.00000"
 !nested repeat loops and parsing parentheses
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_parse_repeat
 ! err540_parse_repeat.jnl
 ! 3/03 *acm
@@ -38305,6 +38577,7 @@ why not
 ! appending a scalar to NetCDF file
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_cd_use_recdim
 ! err540_cd_use_recdim
 ! 3/02 *sh*
@@ -38326,9 +38599,9 @@ use profiles.nc
 sh data
      currently SET data sets:
     1> ./profiles.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     X[GX=XPROFILE] + Y[GY=YLON] + Z  1:50      1:10      1:10      1:10      ...       ...
- MAXPROF  5                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ TEMP     X[GX=XPROFILE] + Y[GY=YLON] + Z  1:50      1:10      1:10      1:10
+ MAXPROF  5                                ...       ...       ...       ...
  
 sp rm -f profiles.nc
  
@@ -38347,6 +38620,7 @@ sp rm -f profiles.nc
 !missing data in xpts,ypts sample points wasnt checked
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_samplexy_missing
 ! err540_samplexy_missing.jnl
 ! 3/03 *acm
@@ -38379,8 +38653,10 @@ list asst
 ! test the fixed delta stride bug
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_strides_rev.jnl
 ! err540_strides_rev.jnl
+! V702: *sh* 2/2017 - modified this bench script
  
 ! reported Feb '02
 ! fixed April 17, '02
@@ -38415,35 +38691,34 @@ cancel var/all
  
 set mode stupid
 set mode diag
-set mem/size=0.05
+! *sh* 2/17 - such a small memory size makes it impossible to succeed
+! with the command under the new dynamic memory management
+!set mem/size=0.05
+set mem/size=1   ! use this larger size, instead
 show mem/free
- Current size of FERRET memory cache: 0.2 MegaWords  (1 word = 8 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 100
- 
-            number of free memory blocks: 2000
-            largest free region: 2000
-            number of free regions: 1
-            free memory table slots: 500
-            number of UN-CACHED variables: 0
+    SET MEMORY/SIZE: 1000000 words
+    Peak demand: 0 words
+    Current cache: 0 words
+    Total table slots: 500
+    Free table slots: 500
+    Un-cached variables: 0
  
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  100  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    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 (G005)          (AX015)   YAX1_100  NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL
+ allocate dynamic grid (G005)          (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
- 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  M: -999 -999  N: -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  M: -999 -999  N: -999 -999
- nulrgd  A        M:  1 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:  2 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : IF I EQ J THEN 1 ELSE A0
                         regrid: 10 delta on X
              FILENAME : test_100x100.nc
@@ -38555,27 +38830,25 @@ show grid
  Last successful data access was on grid (G005)
     GRID (G005)
  name       axis              # pts   start                end                 subset
- (AX015)   X                   10 r   1                    91                  9 pts
+ (AX015)   X                   10 r   1                    91                  10 pts
  YAX1_100  Y                  100 r   1                    100                 full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! 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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    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
- 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  M: -999 -999  N: -999 -999
- doing reversing A on Y axis:     1   100 dset:   1
- -DELETE A        M:  2 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  A        M:  2 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:  3 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ 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
 setting up 2D plot
- -DELETE A        M:  3 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M:247 dset:   1 I:      1     10  J:    1  100  K: -999 -999  L:   -999   -999
 PPL plot 279  complete
 ppl list stats
 
@@ -38809,6 +39082,7 @@ set mem/size=25.6
 ! unknown data type for clauses with constants only
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_data_type.jnl
 ! err540_data_type
 ! 2/19/02 *sh*
@@ -38842,6 +39116,7 @@ plot IF {1,3,5} GE 3 THEN 1  ! data type unknown
 ! gridding scattered points to modulo axis had bug
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_modscat.jnl
 ! test gridding scattered points to modulo axis.
 ! Show Southern hemisphere.
@@ -38865,6 +39140,7 @@ plot/vs/over xpts[i=1:1000]+360, ypts[i=1:1000]
 ! make sure the USE bug reported 5/01 by A Wittenberg is fixed
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_use.jnl
 ! err540_use.jnl
 !
@@ -38895,17 +39171,17 @@ use g.nc
 sh data
      currently SET data sets:
     1> ./f.nc
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        1                                ...       ...       ...       ...
  
     2> ./f2.nc
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
- B        2                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        1                                ...       ...       ...       ...
+ B        2                                ...       ...       ...       ...
  
     3> ./g.nc  (default)
- name     title                             I         J         K         L         M         N
- B        2                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ B        2                                ...       ...       ...       ...
  
 can data/all
  
@@ -38914,19 +39190,19 @@ use f.nc
 sh data
      currently SET data sets:
     1> ./f.nc  (default)
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        1                                ...       ...       ...       ...
  
 use g.nc
 sh data
      currently SET data sets:
     1> ./f.nc
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        1                                ...       ...       ...       ...
  
     2> ./g.nc  (default)
- name     title                             I         J         K         L         M         N
- B        2                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ B        2                                ...       ...       ...       ...
  
 can dat 1
  
@@ -38937,13 +39213,13 @@ use f2.nc
 show dat
      currently SET data sets:
     1> ./f2.nc  (default)
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
- B        2                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        1                                ...       ...       ...       ...
+ B        2                                ...       ...       ...       ...
  
     2> ./g.nc
- name     title                             I         J         K         L         M         N
- B        2                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ B        2                                ...       ...       ...       ...
  
  
 ! This should work
@@ -38954,8 +39230,10 @@ list b[d=1]
  
  
  
-GO bn_reset
+GO bn_reset bn_cancel_axes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cancel_axes
 GO bn_cancel_axes
 ! bn_cancel_axes.jnl
  
@@ -38968,6 +39246,7 @@ set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! longax cancel axis axname
 repeat/k=1:10 go bn_cancel_axes_1.sub
 !-> REPEAT: K=1
@@ -39093,6 +39372,7 @@ can data longax.dat
  
  go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! longax cancel axis/all
  
 ! Note: cancel axes/all tested in err541_cancel_axes.jnl
@@ -39103,6 +39383,7 @@ cancel mode verify
 ! test remaining axes are intact when we cancel one.
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 define axis/x ax1={2,4,5,6,9}
 define axis/x ax2={30,60,90,100}
 sh axis/x ax2
@@ -39206,8 +39487,10 @@ T0 = 01-JAN-0000 00:00:00
  
 ! ******** V5.42 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn542_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn542_bug_fixes
 GO bn542_bug_fixes
 ! bn542_bug_fixes.jnl
 ! test various fixes that went into version 5.42
@@ -39217,6 +39500,7 @@ GO bn542_bug_fixes
 ! Interior tics disappear on FILL plots
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err541_fill_tics
 ! pplus tics bug - pre 5.42, fill plots overlaid interior tics.
  
@@ -39235,6 +39519,7 @@ ppl tics,,.25,,.25,-1,-1
 ! are used rather than date specifications
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err541_non_gregorian
 !From Andrew Wittenberg, non-Gregorian time axis bug 01 Oct 2002
 ! pre-542, second axis has just one point.
@@ -39267,6 +39552,7 @@ CALENDAR = JULIAN
 ! Could not write or read a NetCDF file with a 4-D string variable.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err541_string4d
  ! Write a 4-D NetCDF file with a string variable.
  
@@ -39324,8 +39610,8 @@ use string4d.nc
 sh data
      currently SET data sets:
     1> ./string4d.nc  (default)
- name     title                             I         J         K         L         M         N
- AXY      RESHAPE (A,RVAR)                 1:2       1:3       1:4       1:2       ...       ...
+ name     title                             I         J         K         L
+ AXY      RESHAPE (A,RVAR)                 1:2       1:3       1:4       1:2
  
 list axy
              VARIABLE : RESHAPE (A,RVAR)
@@ -39372,6 +39658,7 @@ list axy
 ! Cancel axis/all did not check whether axes were in use
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err541_cancel_axes
 ! Check that an axis in use cannot be cancelled.
 ! 4/2013 changes for Ferret with climatological axes
@@ -39417,13 +39704,16 @@ show axis test_i*
 ! 5/4/05 *acm* Move to bn_ef_err541_date_delim; pulling all jnls that call shared-obj efs out
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! GO err541_date_delim
  
  
 ! ******** V5.50 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_subspan_modulo
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_subspan_modulo
 GO bn_subspan_modulo
 ! bn_subspan_modulo.jnl
 ! *sh* 11/02
@@ -39719,11 +40009,11 @@ set mode diag
 set mode stupid  ! always re-read and recompute
 lsx $1  ! default avoids void points
  !-> list/order=x vreg
- dealloc  dynamic grid GFJ3            XAX_SUBSPANORMAL    NORMAL    TAX_SUBSPANORMAL    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 GFJ1            XAX_SUBSPANORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VREG     M:  2 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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 GFJ1            XAX_SUBSPANORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VREG     M:247 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : X[GX=XAX_SUBSPAN] -40 + 10
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 6 points (X)
@@ -39733,36 +40023,36 @@ lsx $1  ! default avoids void points
 lsxn/x=100 $1  ! void point above, alone (via "modulo-void-filling")
  !-> list/order=x/nohead/x=100 vreg
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     7     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VREG     M:  5 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing modulo-void-filling VREG on X axis:     6     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        7        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VREG     M:249 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing modulo-void-filling VREG on X axis:        6        6 dset:   1
         ....
 lsxn/x=0 $1 ! void point below, alone (via modulo)
  !-> list/order=x/nohead/x=0 vreg
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    0    0  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VREG on X axis:     0     0 dset:   1
- reading VREG     M:  8 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing VREG on X axis:     6     6 dset:   1
+ eval    EX#1     C:  5 dset:   1 I:      0      0  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing VREG on X axis:        0        0 dset:   1
+ reading VREG     M:229 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing VREG on X axis:        6        6 dset:   1
         ....
 lsxn/x=45:100 $1  ! void above (via subspan-fill)
  !-> list/order=x/nohead/x=45:100 vreg
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     5     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VREG     M:  3 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing modulo-void-filling VREG on X axis:     5     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        5        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      5      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VREG     M:239 dset:   1 I:      5      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing modulo-void-filling VREG on X axis:        5        6 dset:   1
           15.0000  16.0000     ....
 lsxn/x=0:100 $1  ! voids above & below (via modulo)
  !-> list/order=x/nohead/x=0:100 vreg
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     0     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    0    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VREG on X axis:     0     6 dset:   1
- reading VREG     M:  9 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing VREG on X axis:     1     6 dset:   1
- doing modulo-void-filling VREG on X axis:     0     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        0        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing VREG on X axis:        0        6 dset:   1
+ reading VREG     M:248 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing VREG on X axis:        1        6 dset:   1
+ doing modulo-void-filling VREG on X axis:        0        6 dset:   1
              ....  11.0000  12.0000  13.0000  14.0000  15.0000  16.0000     ....
 set mode/last diag
 lsxn/x=50:160 $1  ! modulo above
@@ -40015,39 +40305,39 @@ l200n/order=x $2[l=1,i=0:14]
              ....  11.0000  12.0000  13.0000  14.0000  15.0000  16.0000     ....  11.0000  12.0000  13.0000  14.0000  15.0000  16.0000     ....
 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_SUBSPANORMAL    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)          (AX025)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- dealloc  dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- allocate dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ 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
+ 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
- found   V2D_REG  M: 71 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  V2D_REG  M: 72 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ 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
              ....  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_SUBSPANORMAL    NORMAL
- -DELETE V2D_REG  M: 73 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  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 (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)   NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)   NORMAL    NORMAL
- allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)   NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          (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)
+ 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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  V2D_REG  M: 73 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- -DELETE V2D_REG  M: 74 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)   NORMAL    NORMAL
+ 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)
  16-JAN-0000 / 1:   11.000
  16-MAR-0000 / 2:   71.000
  15-MAY-0000 / 3:  131.000
@@ -40250,11 +40540,11 @@ set mode diag
 set mode stupid  ! always re-read and recompute
 lsx $1  ! default avoids void points
  !-> list/order=x virr
- dealloc  dynamic grid GFJ4            XIRREG_SUBNORMAL    NORMAL    TIRREG_SUBNORMAL    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 GFJ2            XIRREG_SUBNORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VIRR     M: 80 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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 GFJ2            XIRREG_SUBNORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VIRR     M:170 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : X[GX=XIRREG_SUBSPAN] -40 + 10
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 6 points (X)
@@ -40264,36 +40554,36 @@ lsx $1  ! default avoids void points
 lsxn/x=100 $1  ! void point above, alone (via "modulo-void-filling")
  !-> list/order=x/nohead/x=100 virr
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     7     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VIRR     M: 81 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing modulo-void-filling VIRR on X axis:     6     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        7        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VIRR     M:169 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing modulo-void-filling VIRR on X axis:        6        6 dset:   1
         ....
 lsxn/x=0 $1 ! void point below, alone (via modulo)
  !-> list/order=x/nohead/x=0 virr
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    0    0  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VIRR on X axis:     0     0 dset:   1
- reading VIRR     M: 83 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing VIRR on X axis:     6     6 dset:   1
+ eval    EX#1     C:  5 dset:   1 I:      0      0  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing VIRR on X axis:        0        0 dset:   1
+ reading VIRR     M:167 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing VIRR on X axis:        6        6 dset:   1
         ....
 lsxn/x=45:100 $1  ! void above (via subspan-fill)
  !-> list/order=x/nohead/x=45:100 virr
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     5     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VIRR     M: 85 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing modulo-void-filling VIRR on X axis:     5     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        5        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      5      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VIRR     M:165 dset:   1 I:      5      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing modulo-void-filling VIRR on X axis:        5        6 dset:   1
           15.0000  16.0000     ....
 lsxn/x=0:100 $1  ! voids above & below (via modulo)
  !-> list/order=x/nohead/x=0:100 virr
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     0     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    0    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VIRR on X axis:     0     6 dset:   1
- reading VIRR     M: 87 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing VIRR on X axis:     1     6 dset:   1
- doing modulo-void-filling VIRR on X axis:     0     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        0        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing VIRR on X axis:        0        6 dset:   1
+ reading VIRR     M:163 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing VIRR on X axis:        1        6 dset:   1
+ doing modulo-void-filling VIRR on X axis:        0        6 dset:   1
              ....  11.0000  12.0000  12.1000  14.0000  15.0000  16.0000     ....
 set mode/last diag
 lsxn/x=50:160 $1  ! modulo above
@@ -40546,39 +40836,39 @@ l200n/order=x $2[l=1,i=0:14]
              ....  11.0000  12.0000  12.1000  14.0000  15.0000  16.0000     ....  11.0000  12.0000  12.1000  14.0000  15.0000  16.0000     ....
 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_SUBNORMAL    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)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- allocate dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ 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
+ 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
- found   V2D_IRR  M:150 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  V2D_IRR  M:151 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ 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
              ....  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_SUBNORMAL    NORMAL
- -DELETE V2D_IRR  M:152 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  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 (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
- allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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)
+ 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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  V2D_IRR  M:152 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- -DELETE V2D_IRR  M:153 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
+ 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)
  16-JAN-0000 / 1:   11.000
  15-MAR-0000 / 2:   70.249
  15-MAY-0000 / 3:  131.249
@@ -40672,8 +40962,10 @@ list $1_strings[i=1013:1024] 	! via IS_MODULO
  
  
  
-GO bn_reset
+GO bn_reset bn_dots
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dots
 GO bn_dots
 ! PLOT/SYMBOL=DOT  qualifiers
 ! *acm* 12/02
@@ -40695,8 +40987,10 @@ 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)
 set mode logo
  
-GO bn_reset
+GO bn_reset bn_lev_symbols
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_lev_symbols
 GO bn_lev_symbols
 ! Test symbols which capture the latest LEVELS settings
 ! LEV_TEXT  The argument, if any, to the LEV qualifier
@@ -40773,12 +41067,13 @@ LEV_MAX = "33"
 LEV_NUM = "1"
 LEV_DEL = "none"
  
-GO bn_reset
-cancel mode verify
+! GO bn_reset
 ! GO bench_extrema  ! moved to bn_ef_bench_extrema; tests of shared-obj efs.
  
-GO bn_reset
+GO bn_reset bn_mode_logo_lab
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_mode_logo_lab
 GO bn_mode_logo_lab
  
 ! bn_mode_logo_lab.jnl
@@ -40801,12 +41096,12 @@ can mode labels
 can mode logo
 show modes
       MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
+      DIAGNOSTIC    CANCELED            99
       VERIFY           SET         DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
-      JOURNAL       CANCELLED      ferret.jnl
+      INTERPOLATE   CANCELED
+      IGNORE_ERROR  CANCELED
+      STUPID        CANCELED
+      JOURNAL       CANCELED       ferret.jnl
       LONG_LABEL       SET              -4
       LATIT_LABEL      SET              -4
       DEPTH_LABEL      SET              -4
@@ -40815,24 +41110,25 @@ show modes
       F_LABEL          SET         months
       ASCII_FONT       SET
       SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
+      WAIT          CANCELED
+      DESPERATE     CANCELED       2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      dots.plt
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
-      LOGO          CANCELLED
-      LABELS        CANCELLED
-      GRATICULE     CANCELLED
+      METAFILE      CANCELED       dots.plt
+      PPLLIST       CANCELED       ppllist.out
+      GUI           CANCELED
+      LOGO          CANCELED
+      LABELS        CANCELED
+      GRATICULE     CANCELED
       LINECOLORS       SET               6
       UPCASE_OUTPU     SET
       NLEVELS          SET              30
       NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      LAYERZ        CANCELLED
+      SHRINK_YLAB   CANCELED
+      CURVILINEAR   CANCELED
+      LAYERZ        CANCELED
       6D_LAB           SET
+      FRUGAL           SET              30
 contour/i=1:10/j=1:10 i/j
  
 ! restore the labels, logo still gone
@@ -40875,8 +41171,10 @@ cancel view
 set mode logo
 set mode labels
  
-GO bn_reset
+GO bn_reset bn_modulo_attribute
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_modulo_attribute
 GO bn_modulo_attribute
 ! Ferret V5.50 m
  
@@ -40935,8 +41233,10 @@ T0 = 01-JAN-0000 00:00:00
    Axis span (to cell edges) = 1460.97 (modulo length = 8765.82)
  
  
-GO bn_reset
+GO bn_reset bn550_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn550_bug_fixes
 GO bn550_bug_fixes
 ! bn550_bug_fixes.jnl
 ! test various fixes that went into version 5.5
@@ -40946,6 +41246,7 @@ GO bn550_bug_fixes
 ! Polygon/overlay calendar axis bug
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err542_poly_over_calendar
 ! POLY/OVER when data has a non-standard calendar caused
 ! calendar mismatch error, even on a plot with no time axis.
@@ -40957,8 +41258,10 @@ poly/over/color=red/line=2/title="polygon" {220,240,280,250},{-20,70,40,-30}
  
 ! ******** V5.51 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn551_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn551_bug_fixes
 GO bn551_bug_fixes
 ! bn551_bug_fixes.jnl
 ! test various fixes that went into version 5.51
@@ -40970,6 +41273,7 @@ GO bn551_bug_fixes
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_view_axes_fill.jnl
 ! err550_view_axes_fill.jnl
 ! acm 2/5/03
@@ -41059,6 +41363,7 @@ set win/aspect=0.75
 ! defined as a VIEW/AXES viewport.
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_view_axes_position.jnl
 ! err550_view_axes_position.jnl
 ! acm 2/5/03
@@ -41077,6 +41382,7 @@ shade/x=1:10/y=1:10 x-y
 ! SHADE bug: hlimits, vlimits without effect
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_shade_limits.jnl
 ! err550_shade_limits.jnl
 ! acm 2/5/03
@@ -41091,6 +41397,7 @@ set view lower; shade/hlimits=212:324/vlimits=-34:23 sst[l=1]
 ! Redefining an axis with a new calendar definition
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_redefine_calendar_axis.jnl
 ! err550_redefine_calendar_axis.jnl
 ! different calendar axis not recognized as a different specifier,
@@ -41114,6 +41421,7 @@ CALENDAR = JULIAN
 ! Bug in defining axis from an expression.
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_define_axis_expression.jnl
 ! err550_define_axis_expression.jnl
 ! reported by A. Wittenberg.
@@ -41165,6 +41473,7 @@ list x[gx=xax]
 ! Bug in reading seconds from time origin in nc file.
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_nc_seconds.jnl
 ! err550_nc_seconds.jnl
 ! 2/12/03 ACM
@@ -41191,6 +41500,7 @@ list t[gt=height]    ! Seconds should be 36, 37, 38...
 ! Bug in plotting polymarker dots with pen numbers gt 6
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_dots_thickpens.jnl
 ! err550_dots_thickpens.jnl
 ! For pen code higher than 6, get *  rather than dot.
@@ -41329,8 +41639,10 @@ ppl plot
  
 ppl rlabs,4,0
  
-GO bn_reset
+GO bn_reset bn552_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn552_bug_fixes
 GO bn552_bug_fixes
 ! bn552_bug_fixes.jnl
 ! test various fixes that went into version 5.52
@@ -41341,6 +41653,7 @@ GO bn552_bug_fixes
 ! Default behavior (all axes on) was not reset after a plot/set/AXES=
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_axes_set.jnl
 ! Default behavior (all axes on) was not reset after a PLOT/SET/AXES=
  
@@ -41360,6 +41673,7 @@ plot/i=1:100/title="PLOT (no quals); all axes plotted" i*cos(i/12)
 ! test on SHADE and POLYGON plots, and these crashed Ferret.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_num_levels.jnl
 ! Test whether too many levels specified. Previous to v552, no
 ! test was made on SHADE and POLYGON plots, and these crashed Ferret.
@@ -41386,6 +41700,7 @@ SET WIN/CLEAR
 ! Check for invalid value of calendar attribute on reading NetCDF files.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_invalid_calendar.jnl
 ! check on input for invalid calendar name
 ! If file gives calendar attribute with unrecognized name,
@@ -41395,14 +41710,15 @@ set data err_calendar.nc
 sh data
      currently SET data sets:
     1> ./err_calendar.nc  (default)
- name     title                             I         J         K         L         M         N
- TIME     observation time                 ...       ...       ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ TIME     observation time                 ...       ...       ...       1:12
        (invalid coordinate axis)
  
  
 ! String bug fixes *kob*
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_strings.jnl
  
  
@@ -41472,6 +41788,7 @@ list strcmp("b", mystring)
 ! 2-D @AVE bug fix
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_2dave.jnl
 ! Bug in 2-D averaging, if source data thats loaded has a
 ! larger range than the dest data, code didnt check whether
@@ -41501,6 +41818,7 @@ list/l=1/y=20 sst[gx=xax at ave,gy=yax at ave]
 ! RETURN error message, and new var,RETURN=dsettitle  argument
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_return_message.jnl
  ! err551_return_message.jnl
  ! 4/15/03 ACM
@@ -41524,6 +41842,7 @@ SET MODE/LAST IGNORE_ERROR
 !  file/form=stream didnt see file in another directory
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_streamread_directory.jnl
 ! Bug: file/form=stream doesnt see file in another directory
  
@@ -41534,7 +41853,7 @@ def grid/x=xax g
 list/clobber/form=stream/file="a.dat" 1
 file/form=stream/grid=g/var=a "a.dat"
 list a
-             VARIABLE : A
+             VARIABLE : a
              FILENAME : a.dat
              X        : 1
           1.00000
@@ -41544,7 +41863,7 @@ sp mkdir -p subdir
 sp mv a.dat subdir
 file/form=stream/grid=g/var=a "subdir/a.dat"
 list a
-             VARIABLE : A
+             VARIABLE : a
              FILENAME : a.dat
              FILEPATH : subdir/
              X        : 1
@@ -41553,6 +41872,7 @@ list a
 ! GXY=var  regridding syntax, when the variable hasnt been loaded
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_regrid_undef_grid.jnl
 ! err551_regrid_undef_grid.jnl
 ! 5/03 *acm* based on bn_regrid_to_user; more testing of multi-axis GXY=var
@@ -41602,8 +41922,6 @@ show grid
  COADSY    LATITUDE            90 r   89S                  89N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 can data/all
 can var/all
@@ -41690,6 +42008,7 @@ list dzdt_anom
 ! Symbol substituted on each repetition of REPEAT
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_repeat_sym.jnl
  
 ! This had worked, but stopped working in v541
@@ -41717,6 +42036,7 @@ def sym a 0; rep/i=1:3:1 (def sym a `i`; say ($a))
 ! another time axis, some times have missing data
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_modulo_nc_regrid.jnl
 ! data from nc file with time axis having modulo=value, when regridded
 ! to another time axis, some times have missing data
@@ -41778,6 +42098,7 @@ list/l=23:27 vwnd_clim[gt=vwnd[d=1]]
 ! FFT frequency axis not computed accurately enough.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_fft_freqaxis.jnl
  
 DEFINE AXIS/t=1:4998:1 dayt
@@ -41805,6 +42126,7 @@ list `tpts,return=lend`
 ! No error message on request for time on bad time axis
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_no_taxis_errmsg.jnl
 ! The time axis is bad, having repeated values, so an abstract axis is
 ! used by Ferret and the list/t=time should result in an error.
@@ -41816,8 +42138,10 @@ list/t=1-jan-1990 dummy
  
 SET MODE/LAST IGNORE_ERROR
  
-GO bn_reset
+GO bn_reset bn_set_var_scale_off.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_var_scale_off.jnl
 GO bn_set_var_scale_off.jnl
 ! Qualifiers /SCALEFACTOR=  and /OFFSET  for SET VARIABLE.
 ! Only for NetCDF datasets
@@ -41864,8 +42188,10 @@ SET VAR/SCALE=10 x2
  
 SET MODE/LAST IGNORE_ERROR
  
-GO bn_reset
+GO bn_reset bn_longvarnames.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_longvarnames.jnl
 GO bn_longvarnames.jnl
 ! variable names up to 128 characters long
 ! 3/2006 make them 127 to be able to add the null terminator for C strings
@@ -41908,14 +42234,13 @@ SHOW GRID
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
  
  
 ! save to a file a variable that is 128 long
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 LET a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567 = {12,14,20,28,22,10}
 SAVE/CLOBBER/FILE=longvname.nc a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
@@ -41923,6 +42248,7 @@ SAVE/CLOBBER/FILE=longvname.nc a234567890b234567890c234567890d234567890e23456789
 ! read from the file
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 USE longvname
 LIST a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
              VARIABLE : {12,14,20,28,22,10}
@@ -41938,11 +42264,13 @@ LIST a234567890b234567890c234567890d234567890e234567890f234567890g234567890h2345
 ! save a 4-D variable
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 LET a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567 = I[I=1:5] * J[J=1:4] * K[K=1:3] + L[L=1:3]
 SAVE/CLOBBER/FILE=longvname.nc a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 USE longvname.nc
 lIST/I=1/J=2 a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
              VARIABLE : I[I=1:5] * J[J=1:4] * K[K=1:3] + L[L=1:3]
@@ -41968,8 +42296,10 @@ LIST/K=2/L=3 a234567890b234567890c234567890d234567890e234567890f234567890g234567
  3   / 3:   9.0000  15.0000  21.0000  27.0000  33.0000
  4   / 4:  11.0000  19.0000  27.0000  35.0000  43.0000
  
-GO bn_reset
+GO bn_reset bn_shakey.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_shakey.jnl
 GO bn_shakey.jnl
 ! Changes to shade key:
 ! - Default size is a little bigger
@@ -42096,8 +42426,10 @@ ppl list shakey
          X LO     X HI     Y LO     Y HI
          1.20     9.94    -1.40    -1.31
  
-GO bn_reset
+GO bn_reset bn_eof_4d.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_eof_4d.jnl
 GO bn_eof_4d.jnl
 ! bn_eof_4d.jnl
 ! test EOFs on XYZT grids
@@ -42306,8 +42638,10 @@ list/nohead/i=1:5/j=3/k=9 eofst
  
 exit/script
  
-GO bn_reset
+GO bn_reset bn_abstract_axis_names.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_abstract_axis_names.jnl
 GO bn_abstract_axis_names.jnl
 ! bn_abstract_axis_names.jnl
 ! acm 6/12/03
@@ -42372,8 +42706,6 @@ sh grid r
  normal    Y
  XXX       Z                    6 r   -4                   1                   full
  normal    T
- normal    E
- normal    F
 can data 1
  
 use confuse_yz.nc
@@ -42384,8 +42716,6 @@ sh grid s
  THE       Y                    8 r   10                   80                  full
  XXX       Z                    6 r   -4                   1                   full
  normal    T
- normal    E
- normal    F
 can data 1
  
 use confuse_yt.nc
@@ -42396,8 +42726,6 @@ sh grid u
  THE       Y                    8 r   10                   80                  full
  normal    Z
  LONG      T                    7 r   1                    13                  full
- normal    E
- normal    F
 can data 1
  
 use confuse_yzt.nc
@@ -42408,8 +42736,6 @@ sh grid v
  THE       Y                    8 r   10                   80                  full
  XXX       Z                    6 r   -4                   1                   full
  LONG      T                    7 r   1                    13                  full
- normal    E
- normal    F
 can data 1
  
  
@@ -42468,8 +42794,6 @@ sh grid r
  normal    Y
  CCC       Z                    6 r   -4                   1                   full
  normal    T
- normal    E
- normal    F
 can data 1
  
 use confuse_yz.nc
@@ -42480,8 +42804,6 @@ sh grid s
  BBB       Y                    8 r   10                   80                  full
  CCC       Z                    6 r   -4                   1                   full
  normal    T
- normal    E
- normal    F
 can data 1
  
 use confuse_yt.nc
@@ -42492,8 +42814,6 @@ sh grid u
  BBB       Y                    8 r   10                   80                  full
  normal    Z
  DDD       T                    7 r   1                    13                  full
- normal    E
- normal    F
 can data 1
  
 use confuse_yzt.nc
@@ -42504,12 +42824,12 @@ sh grid v
  BBB       Y                    8 r   10                   80                  full
  CCC       Z                    6 r   -4                   1                   full
  DDD       T                    7 r   1                    13                  full
- normal    E
- normal    F
 can data 1
  
-GO bn_reset
+GO bn_reset bn_many_polygons.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_many_polygons.jnl
 GO bn_many_polygons.jnl
 ! testing large number of polygons in a plot.  Map plot has
 ! 130501 polygons; previously we had an upper limit of 100K polygons
@@ -42539,12 +42859,13 @@ 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]
  
-GO bn_reset
-cancel mode verify
+! GO bn_reset
 ! GO bn_zaxr_fcns.jnl ! move to tests of shared-obj efs.
  
-GO bn_reset
+GO bn_reset bn_fill_irregular.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_fill_irregular.jnl
 GO bn_fill_irregular.jnl
 ! FILL on vars with irregular axes
  
@@ -42568,17 +42889,23 @@ use coads_clim_irreg.des
 fill/x=180 sst
  
 ! ******** V5.53 Additions below ***********
-GO bn_reset
+GO bn_reset bn_xml_output.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_xml_output.jnl
 GO 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.
- 
+!
 ! 22-Feb-2005 USE SHO AXIS/XML `temp,return=taxis` instead
 ! of naming the axes; other axes of the same name (e.g. TIME)
 ! may have been defined in other benchmark scrips.
+!
+! 24-Oct-2016 Changes in Ferret, handling of grid and datatype
+! info. Order of listing in xml output, ferret_data_type is listed
+* for all variables
  
 USE levitus_climatology.cdf
  
@@ -42650,6 +42977,7 @@ save/clobber/file=b.nc ddat
 can var/all
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 USE a.nc
 USE b.nc
@@ -42708,12 +43036,12 @@ SHO DATA/VAR/XML 1
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
 <attribute name="long_name" type="char">
    <value><![CDATA[DDAT[D=2,X=@AVE]]]></value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <zaxis>ZAX1_5</zaxis>
@@ -42789,6 +43117,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <zaxis>ZAX1_5</zaxis>
@@ -42802,6 +43133,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="ABSTRACT">
 <axes>
 </axes>
@@ -42814,6 +43148,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <zaxis>ZAX1_5</zaxis>
@@ -42835,6 +43172,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <zaxis>ZAX1_5</zaxis>
@@ -42848,6 +43188,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="ABSTRACT">
 <axes>
 </axes>
@@ -42867,6 +43210,9 @@ SHOW VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="ABSTRACT">
 <axes>
 </axes>
@@ -42893,6 +43239,9 @@ SHOW VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GSI1">
 <axes>
 <taxis>TIME6</taxis>
@@ -42906,6 +43255,9 @@ SHOW VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GSI1">
 <axes>
 <taxis>MONTH_REG</taxis>
@@ -42914,9 +43266,126 @@ SHOW VAR/XML
 </var>
 </global>
  
+! Test getting the data type of a user-defined variable
  
-GO bn_reset
+let/d=a dates = tax_datestring(t[gt=tvar], tvar, "days")
+SHOW VAR/XML dates
+<global>
+<var name="DATES[D=./a.nc]">
+<attribute name="definition" type="char">
+   <value><![CDATA[TAX_DATESTRING(T[GT=TVAR], TVAR, "days")]]></value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[STRING]]></value>
+</attribute>
+<grid name="GSI1">
+<axes>
+<taxis>MONTH_REG</taxis>
+</axes>
+</grid>
+</var>
+</global>
+SHO DATA/VAR/XML 1
+<datasets>
+<dataset name="./a.nc" default="true">
+<title> </title>
+<var name="TVAR">
+<attribute name="long_name" type="char">
+   <value><![CDATA[T[GT=MONTH_REG]]]></value>
+</attribute>
+<attribute name="_FillValue" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
+</attribute>
+<grid name="GSI1">
+<axes>
+<taxis>MONTH_REG</taxis>
+</axes>
+</grid>
+</var>
+<var name="dates">
+<attribute name="definition" type="char">
+   <value><![CDATA[TAX_DATESTRING(T[GT=TVAR], TVAR, "days")]]></value>
+</attribute>
+<attribute name="_FillValue" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="long_name" type="char">
+   <value><![CDATA[TAX_DATESTRING(T[GT=TVAR], TVAR, "days")]]></value>
+</attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[STRING]]></value>
+</attribute>
+<grid name="GSI1">
+<axes>
+<taxis>MONTH_REG</taxis>
+</axes>
+</grid>
+</var>
+</dataset>
+</datasets>
+<axes>
+<axis name="MONTH_REG">
+<attribute name="direction" type="char">
+   <value><![CDATA[L]]></value>
+</attribute>
+<attribute name="units" type="char">
+   <value><![CDATA[hour since 0000-01-01 00:00:00]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>12</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>0000-01-16 06:00:00</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>0000-12-16 01:20:00</value>
+</attribute>
+<attribute name="point_spacing" type="char">
+   <value><![CDATA[even]]></value>
+</attribute>
+<attribute name="modulo" type="char">
+   <value><![CDATA[yes]]></value>
+</attribute>
+<attribute name="time_origin" type="char">
+   <value><![CDATA[0000-01-01 00:00:00]]></value>
+</attribute>
+<attribute name="calendar" type="char">
+   <value><![CDATA[GREGORIAN]]></value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
+</attribute>
+<attribute name="axis" type="char">
+   <value><![CDATA[T]]></value>
+</attribute>
+<attribute name="standard_name" type="char">
+   <value><![CDATA[time]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[MONTH_REG]]></value>
+</attribute>
+</axis>
+</axes>
+ 
+GO bn_reset bn_test_nan.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_test_nan.jnl
 GO bn_test_nan.jnl
 !bn_test_nan.jnl
 ! test to make sure that NaN is able to be set by user
@@ -42994,8 +43463,10 @@ can var/all
  
  
  
-GO bn_reset
+GO bn_reset bn553_bug_fixes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn553_bug_fixes.jnl
 GO bn553_bug_fixes.jnl
 ! bn553_bug_fixes.jnl
 ! test various fixes that went into version 5.52
@@ -43005,6 +43476,7 @@ GO bn553_bug_fixes.jnl
 ! Make sure numeric filenames works
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_numeric_filename.jnl
 ! err553_numeric_filename.jnl
 ! 9/03 kob
@@ -43040,6 +43512,7 @@ list vwnd_clim
 ! Make sure long string variables work
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_long_string_var_name.jnl
 ! err553_long_string_var_name.jnl
 ! 9/03 kob
@@ -43063,6 +43536,7 @@ list a
 ! Fixes for colorbar key labelling
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_colorkey.jnl
  
 ! colorkey label bugs
@@ -43085,8 +43559,10 @@ ppl shade
  
 ! ******** V5.6Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_graticules.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_graticules.jnl
 GO bn_graticules.jnl
 ! /GRAT, /HGRAT and /VGRAT to set graticule lines
 ! ACM March 12, 2004
@@ -43172,7 +43648,7 @@ plot/trans/thick/vg="(line,color=blue)"/hg="large(line,color=blue),small(line,co
 ! Tests for MODE GRATICULE  added in Ferret v5.7
 show mode graticule
       MODE            STATE        ARGUMENT
-      GRATICULE     CANCELLED
+      GRATICULE     CANCELED
 set mode graticule
 show mode graticule
       MODE            STATE        ARGUMENT
@@ -43195,8 +43671,10 @@ can mode graticule
 pplus/reset   ! restore tics etc
  
  
-GO bn_reset
+GO bn_reset bn_repeat_range.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_repeat_range.jnl
 GO bn_repeat_range.jnl
 ! REPEAT/RANGE=[/NAME=]  for looping without depending
 ! on the grid\
@@ -43552,19 +44030,20 @@ set mode diag
 set reg/y=0:50/L=1
 repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
 !-> REPEAT: M:300
- getgrid 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  M: -999 -999  N: -999 -999
- constan cnst     M:157 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:152 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1  M: -999 -999  N: -999 -999
+ constan cnst     M:249 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:244 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:300 at ave,y=@ave]
- -DELETE cnst     M:157 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:249 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- getgrid EX#1     C:  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     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J:   46   70  K: -999 -999  L:      1      1
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M:157 dset:   1 I:  131  140  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:249 dset:   1 I:    131    140  J:   46   70  K: -999 -999  L:      1      1
  doing --> SST[Y=0:50N at AV4,D=1]
+ final --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
              LONGITUDE: 80W to 60W (XY ave)
@@ -43572,20 +44051,21 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
              TIME     : JAN
           20.7890
 !-> REPEAT: M:330
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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  M: -999 -999  N: -999 -999
- constan cnst     M:147 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:144 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1  M: -999 -999  N: -999 -999
+ constan cnst     M:239 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:236 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:330 at ave,y=@ave]
- -DELETE cnst     M:147 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:239 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- getgrid EX#1     C:  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     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J:   46   70  K: -999 -999  L:      1      1
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M:147 dset:   1 I:  131  155  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:239 dset:   1 I:    131    155  J:   46   70  K: -999 -999  L:      1      1
  doing --> SST[Y=0:50N at AV4,D=1]
+ final --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
              LONGITUDE: 80W to 30W (XY ave)
@@ -43593,20 +44073,21 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
              TIME     : JAN
           21.2500
 !-> REPEAT: M:360
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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  M: -999 -999  N: -999 -999
- constan cnst     M:138 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:133 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1  M: -999 -999  N: -999 -999
+ constan cnst     M:230 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:225 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:360 at ave,y=@ave]
- -DELETE cnst     M:138 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:230 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- getgrid EX#1     C:  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     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J:   46   70  K: -999 -999  L:      1      1
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M:138 dset:   1 I:  131  170  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:230 dset:   1 I:    131    170  J:   46   70  K: -999 -999  L:      1      1
  doing --> SST[Y=0:50N at AV4,D=1]
+ final --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
              LONGITUDE: 80W to 0E(360) (XY ave)
@@ -43695,8 +44176,10 @@ repeat/range=1:4/name=a (repeat/range=3:1:-1/name=a list a)
 !-> REPEAT: A:4
 cancel mode ignore
  
-GO bn_reset
+GO bn_reset bn554_bug_fixes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn554_bug_fixes.jnl
 GO bn554_bug_fixes.jnl
 ! bn554_bug_fixes.jnl
 ! test various fixes that went into version 5.54
@@ -43706,6 +44189,7 @@ GO bn554_bug_fixes.jnl
 ! Test use of longer strings in region names
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_regionname_lengths.jnl
 ! In v5.50, we upped the region name storage to
 ! allow 24-characters.  Wasnt fully implemented.
@@ -43762,6 +44246,7 @@ SET MODE/LAST IGNORE_ERRORS
 ! Reqests for data at times outside range of data
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_timeregion.jnl
 ! try to apply a region whose limits are both below,
 ! or both above, the data bounds. In v5.53 the error
@@ -43780,6 +44265,7 @@ SET MODE/LAST IGNORE_ERRORS
 ! Contour plot on fine grid has precision problems
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_contour_fine_grid.jnl
 ! err553_contour_find_grid.jnl
 ! 11/21/03 ACM
@@ -43815,6 +44301,7 @@ PPLUS/RESET   ! reset aspect ratio
 ! PLOT/SYM/SIZE= did not change the size
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_symsize.jnl
 ! PLOT/SYM/SIZE= does not change the size from the default.
 ! acm 11/03
@@ -43825,6 +44312,7 @@ plot/over/i=1:10/sym=20/siz=0.2 i
 ! test labels on shade keys; consistent number of digits set by 5th shakey arg
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_shakey_labels.jnl
 ! The 5th argument to shakey is supposed to define
 ! number of digits in the label.
@@ -43841,6 +44329,7 @@ ppl shade
 ! couldnt set the number of small tics with arg to %xaxis, %yaxis commands
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_xaxis_nsmtc.jnl
 ! Bug: 5th argument failed to set the number of small
 ! tics for the axis.
@@ -43857,6 +44346,7 @@ ppl %yaxis/nouser 1,100,10,2,6
 ! vs DEFINE AXIS/UNIT=yr
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_year_yr.jnl
 ! err553_year_yr.jnl
 ! 2/2004 ACM
@@ -44048,60 +44538,61 @@ can mode ignore
 ! strides, Ferret did a regridding instead.  Test the fix for this
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_stride_def_grid.jnl
  
 use gtsa056_2.cdf
 set mode diag
 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)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- allocate dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   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 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)
+ 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
- rdstride TAUX     C:  9 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- nulrgd  TAUX     M:153 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M:141 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
+ 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)
 can mem/all
- -DELETE A        M:141 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M:153 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -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)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
- 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     NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (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     NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
+ dealloc  dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME6
+ dealloc  dynamic grid (G023)          (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)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- allocate dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   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 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)
+ 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
- rdstride TAUX     C:  9 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- nulrgd  TAUX     M:141 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M:153 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ 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)
  
 can mem/all
- -DELETE TAUX     M:141 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE A        M:153 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -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)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX013)   (AX023)   NORMAL    (AX024)
+ dealloc  dynamic grid (G023)          (AX013)   (AX023)   NORMAL    (AX024)
  canceling dset ./gtsa056_2.cdf
  
 ! Some tests taken from  bn_strides_revs_perms.jnl but with
@@ -44111,26 +44602,26 @@ can data/all
 set region/i=3:6/j=2:4/k=1:2/l=1
 use bn_strides
 define grid/like=var agrid
- getgrid EX#1     C:  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    NORMAL    NORMAL
- dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    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 GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
 define grid/like=midvar bgrid
- 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 GPC2            XAX1_9    YAX1_8    ZAX1_7    TAX1_6    NORMAL    NORMAL
+ 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 GPC2            XAX1_9    YAX1_8    ZAX1_7    TAX1_6
 define grid/like=bigvar cgrid
- dealloc  dynamic grid GPC2            XAX1_9    YAX1_8    ZAX1_7    TAX1_6    NORMAL    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 GPC3            XAX1_40   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid GPC2            XAX1_9    YAX1_8    ZAX1_7    TAX1_6
+ 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 GPC3            XAX1_40   YAX1_30   ZAX1_20   TAX1_10
 define grid/like=unevenvar dgrid
- dealloc  dynamic grid GPC3            XAX1_40   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- getgrid EX#1     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 GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid GPC3            XAX1_40   YAX1_30   ZAX1_20   TAX1_10
+ getgrid EX#1     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 GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
 define grid/like=xytvar egrid
- dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- getgrid EX#1     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 GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
+ getgrid EX#1     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 GPC5            XLON      YLAT      NORMAL    TTIME
 canc data/all
- dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME
  canceling dset ./bn_strides.cdf
  
  
@@ -44138,22 +44629,22 @@ canc data/all
 cancel memory/all
 use bn_strides
 load var
- getgrid 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:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- reading VAR      M:153 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  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
+ eval    EX#1     C:  4 dset:   1 I:      3      4  J:    2    3  K:    1    2  L:      1      1
+ reading VAR      M:245 dset:   1 I:      3      4  J:    2    3  K:    1    2  L:      1      1
 LIST VAR[i=2:4:2]
- dealloc  dynamic grid AGRID           XAX1_4    YAX1_3    ZAX1_2    TAX1_1    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 (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:148 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:141 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -44168,19 +44659,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    NORMAL    NORMAL
- -DELETE VAR      M:148 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  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 (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:141 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:148 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44195,25 +44686,25 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.00  1214.00
  3   / 2:  1232.00  1234.00
 CANC MEM/ALL
- -DELETE VAR      M:141 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:153 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:233 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
+ -DELETE VAR      M:245 dset:   1 I:      3      4  J:    2    3  K:    1    2  L:      1      1
  
 ! 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    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 (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (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
+ 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
- strip moduloing VAR on X axis:     1    10 dset:   1
- reading VAR      M:153 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing VAR on X axis:     1     4 dset:   1
- regrid  VAR      M:148 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -44228,24 +44719,24 @@ LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
  7    / 3:  1113.00
  10   / 4:  1112.00
 cancel axis/modulo XAX1_4
- -DELETE VAR      M:141 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:148 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:153 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:233 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
+ -DELETE VAR      M:240 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
+ -DELETE VAR      M:245 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  
 ! 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    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 (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:148 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:153 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44260,19 +44751,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    NORMAL    NORMAL
- -DELETE VAR      M:148 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  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 (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:148 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44289,24 +44780,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    NORMAL    NORMAL
- -DELETE VAR      M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (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   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   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 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    3    6  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    3    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- rdstride BIGVAR   C: 10 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:148 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:153 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -44318,26 +44809,26 @@ list/j=1/k=1/l=1 a[i=3:5]
  11   / 3:  1121.00
  16   / 4:  1126.00
  21   / 5:  1131.00
- -DELETE A        M:141 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -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   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 (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (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
+ allocate dynamic grid (G001)          (AX046)   (AX045)   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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ eval    EX#1     C:  5 dset:   1 I:      3      6  J:    2    4  K:    1    1  L:      1      1
+ 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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- rdstride BIGVAR   C: 11 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:140 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:141 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- regrid  A        M:152 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
+ 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]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44354,27 +44845,27 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
 ! ****** unequally spaced points on parent axis
  
 cancel mem/all
- -DELETE BIGVAR   M:140 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:141 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:148 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:152 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:153 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:232 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
+ -DELETE A        M:233 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
+ -DELETE BIGVAR   M:240 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
+ -DELETE A        M:244 dset:   1 I:      3      5  J:    1    4  K:    1    1  L:      1      1
+ -DELETE A        M:245 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
  
 ! basic strides
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   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 (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G001)          (AX046)   (AX045)   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)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G001)          (AX018)   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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ eval    EX#1     C:  5 dset:   1 I:      3      6  J:    1    1  K:    1    1  L:      1      1
+ allocate dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4
  strip regrid on X: UNEVENVAR --> (G001)           @XACT
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M:152 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:153 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ rdstride UNE-NVAR C:  8 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
+ nulrgd  UNE-NVAR M:244 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
+ -DELETE UNE-NVAR M:245 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
+ dealloc  dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -44392,19 +44883,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 (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M:152 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  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 (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4
+ -DELETE UNE-NVAR M:244 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 (G001)          (AX045)   (AX047)   (AX048)   TAX1_10
+ dealloc  dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10
+ allocate dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10
+ eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
+ allocate dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10
  strip regrid on X: BIGVAR --> (G001)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:153 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:152 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
+ rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
+ nulrgd  BIGVAR   M:245 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
+ -DELETE BIGVAR   M:244 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
+ dealloc  dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44421,24 +44912,24 @@ 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 (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M:153 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
  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   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10   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 (G014)          (AX048)   (AX047)   (AX045)   TAX1_10
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10
+ allocate dynamic grid (G014)          (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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:152 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:153 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44455,8 +44946,8 @@ 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   NORMAL    NORMAL
- -DELETE BIGVAR   M:152 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (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
  
 ! now with xytvar
@@ -44465,17 +44956,17 @@ set region/i=1:4/j=1:3/l=1:2
 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)   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)   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 (G014)          (AX047)   (AX048)   NORMAL    (AX046)
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)
+ allocate dynamic grid (G014)          (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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:153 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:152 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -44493,31 +44984,29 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M:153 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- 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
+ dealloc  dynamic grid (G014)          (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
  name       axis              # pts   start                end                 subset
  XLON      LONGITUDE           40mr   141E                 180E                full
  YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
  TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
- normal    E
- normal    F
  
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid EGRID           XLON      YLAT      NORMAL    TTIME     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 (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
+ 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)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:152 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:153 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -44533,37 +45022,35 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M:152 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (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
  
 ! map into Z instead of T
 use/order=zxy bn_strides
 show grid xytvar
- 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 GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    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 GPC5            TTIME     XLON      YLAT      NORMAL
     GRID GPC5
  name       axis              # pts   start                end                 subset
  TTIME     X (DAYS)            20 r   34319                34338               full
  XLON      Y (degrees_east)    40mr   141                  180                 full
  YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
- normal    E
- normal    F
  
 list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
- dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      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 (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
+ 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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:153 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:152 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -44579,8 +45066,8 @@ 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    NORMAL    NORMAL
- -DELETE XYTVAR   M:153 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (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
  
  
@@ -44589,17 +45076,17 @@ cancel region; set region/l=1
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6    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 (G014)          (AX048)   (AX047)   (AX045)   TAX1_6
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6
+ allocate dynamic grid (G014)          (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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:153 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44614,26 +45101,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    NORMAL    NORMAL
- -DELETE MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (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    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6    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 (G014)          (AX047)   (AX048)   (AX046)   TAX1_6
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6
+ allocate dynamic grid (G014)          (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
- 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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M:152 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:153 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44648,24 +45135,24 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (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
  
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    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 (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7
+ allocate dynamic grid (G014)          (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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:152 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44680,27 +45167,27 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (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
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    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 (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7
+ allocate dynamic grid (G014)          (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
- 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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on X axis:     1     5 dset:   1
- -DELETE MIDVAR   M:153 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:152 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44715,24 +45202,24 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (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
  
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    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 (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7
+ allocate dynamic grid (G014)          (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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:153 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44747,26 +45234,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    NORMAL    NORMAL
- -DELETE MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (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    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    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 (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7
+ allocate dynamic grid (G014)          (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
- 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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M:152 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:153 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44781,13 +45268,14 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (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
  
 ! DEFINE AXIS can get the axis too long (bug 673)
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_axis_too_long.jnl
 ! From Ned Cokelet
 ! First definition of axis had last grid cell completely
@@ -44818,6 +45306,7 @@ LIST X[GX=x_ax], XBOXLO[GX=x_ax], XBOXHI[GX=x_ax]
 ! non-centered shade key
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_lev_c.jnl
  ! under linux only, this has a non-centered shade key
  
@@ -44847,6 +45336,7 @@ ppl list shakey
 ! At lon = 0, we used to have an E; remove this.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_lon_ax_0_label.jnl
 ! Label longitude axes with the degree sign only
 ! at x=0 (previously had an E).
@@ -44860,6 +45350,7 @@ shade/x=-20:20/y=-40:40/L=1 sst
 ! Errors listing string and numeric data together
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_list_string_numeric.jnl
 ! err553_list_string_numeric.jnl
 ! 2/2004 ACM
@@ -44955,6 +45446,7 @@ list/i=3:4/l=1:2 b, c, v
 ! Bug in setting axis to depth when reading from nc file
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_set_axis_depth.jnl
  ! NOAA/PMEL TMAP
  ! FERRET v5.53
@@ -44974,6 +45466,7 @@ q
 ! Set symbols showing levels settings when poly command is called
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_symbol_lev.jnl
 ! err553_symbol_lev.jnl
 ! 2/2004 ACM
@@ -44994,7 +45487,7 @@ LEV_TEXT = "C"
 LEV_MIN = "1"
 LEV_MAX = "10.2"
 LEV_NUM = "46"
-LEV_DEL = "irregular"
+LEV_DEL = "0.2"
  
 can sym lev*
 ! Now with /LEV=(min,max,del)
@@ -45031,6 +45524,7 @@ can sym lev*
 ! Fixes for modulo striding bugs
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_stride_modulo.jnl
 ! err553_stride_modulo_neg.jnl
 ! *acm* 3/31/2004
@@ -45133,6 +45627,7 @@ can mem; list/y=0 var[i=68]
 ! Fixes bug creating format for listing a very long line
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_list_width.jnl
 ! err553_list_width.jnl
 ! *acm* 4/1/2004
@@ -45162,8 +45657,10 @@ can mode ignore
  
 ! ******** V5.7 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_bounds.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_bounds.jnl
 GO bn_bounds.jnl
  
 ! bn_bounds.jnl
@@ -45527,8 +46024,10 @@ sh axis/t tax
        4>  10                    1          9.5
        5>  11                    1          10.5
  
-GO bn_reset
+GO bn_reset bn_all_leap.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_all_leap.jnl
 GO bn_all_leap.jnl
 ! bn_all_leap.jnl
 ! ACM 6/2004
@@ -45580,8 +46079,10 @@ def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
  
 can mode ignore
  
-GO bn_reset
+GO bn_reset bn_reset_attributes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_reset_attributes.jnl
 GO bn_reset_attributes.jnl
 ! bn_reset_attributes.jnl
 ! acm 6/14/2004
@@ -45886,8 +46387,6 @@ show grid temp
  PSYT      Y (seconds)        100 i   -28.836              48.568              full
  PSZT      Z (zorro)           27 i-  5                    3824                full
  TIME11    T (meters)          25 r   22702                26206               full
- normal    E
- normal    F
  
 ! assign time units to an abstract axis
 def axis/t=1:5:1 tax
@@ -45930,8 +46429,10 @@ list x[gx=xax]
  120E   / 7:  120.000
  
  
-GO bn_reset
+GO bn_reset bn570_bug_fixes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn570_bug_fixes.jnl
 GO bn570_bug_fixes.jnl
 ! bn554_bug_fixes.jnl
 ! test various fixes that went into version 5.70
@@ -45941,6 +46442,7 @@ GO bn570_bug_fixes.jnl
 ! Test use of automatic levels in SHADE
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_shade_levels.jnl
 ! err560_shade_levels.jnl  *acm* 4/28/04
 ! Missing levels on SHADE auto-level
@@ -45955,6 +46457,7 @@ set view lower; shade/i=1:10/j=1:10 -1*i*j*0.0034
 ! Test use of reading irregular-time mc datasets
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_mc_irreg_t.jnl
 ! err560_mc_irreg_t.jnl
 ! 4/2004  ACM
@@ -45991,6 +46494,7 @@ list/x=180/y=0/t=2000 sst
 ! Crashed on SHADE of variable with NOLEAP axis, and subregion.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_shade_noleap.jnl
 ! err560_shade_noleap.jnl
 ! 4/30/04 ACM
@@ -46008,6 +46512,7 @@ shade/t=4-jan-2000:10-nov-2000 a
 ! -111, was treated as missing rather than a valid index.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_regridding_gaps.jnl
 ! err560_regrid
 !
@@ -46133,6 +46638,7 @@ sp rm xlongshift.nc
 ! bug in drawing the time axis.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_leap_years.jnl
 ! err560_leap_years.jnl
 ! Fixes for bug 882, inconsistency in computing whether
@@ -46151,6 +46657,7 @@ plot v[gt=tax at asn]
 ! Century portion of years were not properly tested in numdm1.F
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_century
 ! err560_century.jnl.jnl  *acm* 4/28/04
 ! Century portion of years were not properly tested in numdm1.F
@@ -46172,8 +46679,10 @@ plot t[gt=tt]
  
 ! ******** V5.8 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_modstats.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_modstats.jnl
 GO bn_modstats.jnl
 ! bn_modstats.jnl
 ! acm 8/25/04
@@ -46322,8 +46831,10 @@ list var[gt=month_reg at modngd]
  15-NOV      / 11:  10.0000
  16-DEC      / 12:  10.0000
  
-GO bn_reset
+GO bn_reset bn_mc_vary_scale.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_mc_vary_scale.jnl
 GO bn_mc_vary_scale.jnl
 ! bn_mc_vary_scale.jnl
 !   Allow stepfiles to have different internal scale and offset.
@@ -46403,8 +46914,10 @@ list/quiet/nohead `tt,return=nc_scale`, `tt,return=nc_offset`
 I / *:     2.00000 -0.0200000
  
  
-GO bn_reset
+GO bn_reset bn_plot_nokey.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_nokey.jnl
 GO bn_plot_nokey.jnl
 ! bn_plot_nokey.jnl (bug 1089)
 ! 22-nov-2004
@@ -46425,8 +46938,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn580_bug_fixes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn580_bug_fixes.jnl
 GO bn580_bug_fixes.jnl
 ! bn580_bug_fixes.jnl
 ! test various fixes that went into version 5.80
@@ -46436,6 +46951,7 @@ GO bn580_bug_fixes.jnl
 ! POLYGON (or SHADE) plots with a single level had no fill color
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_singlecolor.jnl
 ! err570_singlecolor.jnl
 ! 7/6/2004
@@ -46479,6 +46995,7 @@ poly/lev=2 {0,1,2},{1,2,1},a ! OR lev=1
 ! colorbar labels too close to the bar, when user sets bar location
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_shakeylab.jnl
  
 ! err570_shakeylab.jnl
@@ -46540,6 +47057,7 @@ ppl dfltfnt sr
 ! Null input gives wierd error message
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_null_symbol.jnl
 ! err570_null_symbol.jnl
 ! null input -- > wierd error message see bug 919
@@ -46557,6 +47075,7 @@ can mode ignore
 ! Replace text expression with its value: string variable was too short
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_parse_labelcommand.jnl
 ! err570_parse_labelcommand.jnl
 ! fix for bug 956.
@@ -46587,6 +47106,7 @@ label/nouser 3.6,`($ppl$ylen)+0.2`,0,0,0.08, `tsulab`
 ! result of COMPRESSK_BY function does not vary in X
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_compressk_by.jnl
 ! err570_compress_by.jnl
 ! fix for bug 925
@@ -46680,6 +47200,7 @@ list tlev[k=1]
 ! Command parsing on PPL side had string lengths too short
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_long_label.jnl
 ! err570_long_label.jnl
 ! Fix for bug 956
@@ -46730,6 +47251,7 @@ set mode/last verify
 ! Allow PPL POLYGON after a POLY/SET (previously was PPL FILLPOL)
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_ppl_poly.jnl
 ! err570_ppl_poly.jnl
  
@@ -46752,6 +47274,7 @@ ppl polygon
 ! Fix formatting of coordinates on LIST/FORMAT=tab or /FORMAT=comma
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_list_tab_coords.jnl
 ! err570_list_tab_coords.jnl
 ! acm 9/7/04
@@ -46795,6 +47318,7 @@ list/form=comma aa
 ! Fix bug in HASH_CX for large numbers of varibles
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_many_variables.jnl
 ! err570_many_variables.jnl
 ! 27-sep-2004  ACM
@@ -47058,6 +47582,7 @@ list str4a
 ! Fix bug in @CNNN within multi-line labels
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_cnnn_multiline.jnl
 ! Changing pen with @Cnnn did not work in
 ! multi-line labels
@@ -47072,6 +47597,7 @@ label 0.1, 0.3, 0, 0, 0.2, "greek<NL>@SGt at SR_y<NL>works"
 ! For a very fine grid, coordinates not listed with enough precision.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_fine_grid_list.jnl
 ! err570_fine_grid_list.jnl
 ! ACM 10/2004
@@ -47176,6 +47702,7 @@ cancel list/precision
 ! Plot using /HLIM
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_hlimit_onepoint
 !err570_hlimit_onepoint.jnl
 ! 15-Oct-2004  ACM
@@ -47198,6 +47725,7 @@ set mode/last ignore_error
 ! caused a segfault.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_index111.jnl
 ! err570_index111.jnl
 ! 3-nov-04 ACM
@@ -47244,6 +47772,7 @@ LIST/T=1-jan-1997:1-jan-1998 s2[GT=s1 at NRST]
 ! crashed on trying to format value for the output buffer.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_sh_dat_nan.jnl
 ! err570_sh_dat_nan.jnl
 ! 4-Nov-2004 acm
@@ -47257,8 +47786,8 @@ show data/full
      currently SET data sets:
     1> ./nan_missing.nc  (default)
      NCEP Ocean Analysis
- name     title                             I         J         K         L         M         N
- TEMP     temperature                      1:1       1:1       1:19      1:1       ...       ...
+ name     title                             I         J         K         L
+ TEMP     temperature                      1:1       1:1       1:19      1:1
              degree_Celsius on grid GGH1 with -1.E+34 & NaN for missing data
              X=139.8E:140.8E  Y=0.5S:0.5N  Z=0:375  
  
@@ -47269,6 +47798,7 @@ show data/full
 ! Time reqest out of range on NOLEAP axes.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_time_range.jnl
 ! err570_time_range.jnl  bug1080
 ! time request out of range with calendar axis and RETURN=
@@ -47293,6 +47823,7 @@ set var/units="`a[gx=var1_grid_,gy=var1_grid_,d=2,t="16-Jan-1861 12:00:00"],retu
 ! a non-standard calendar axis
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_poly_over_julian.jnl
 ! err570_poly_over_julian.jnl
 ! ACM 11/12/04
@@ -47315,6 +47846,7 @@ poly/ov/pal=green {400,900,900,400}, {25.5,25.5,26.5,25.5}
 ! string substitution returns the user-given error message
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_coaching hello
 ! err570_coaching.jnl
 ! ACM 11/12/04  Bug 1077
@@ -47359,6 +47891,7 @@ set mode/last ignore_errors
 ! name of the script
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_dollar_zero.jnl
 ! err570_dollar_zero.jnl
 ! (bug 485) Got a command syntax error;
@@ -47374,6 +47907,7 @@ SET MODE/LAST ignore_error
 ! Fix for bug 596; list/i=0:300:0 var crashed Ferret
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_illegal_stride.jnl
 ! err570_illegal_stride.jnl
 ! (bug 596) list/i=0:300:0 var crashed Ferret
@@ -47387,6 +47921,7 @@ SET MODE/LAST ignore_error
 ! Fix for bug 1085; /THICK without color specifier caused all lines to revert to black
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_thick_colors.jnl
 ! err570_thick_colors.jnl  bug1085
 ! /THICK without color specifier causes all lines to revert to black
@@ -47412,6 +47947,7 @@ PLOT/OVER/VS/LINE/THICK=1/I=1:314 i*cos(i/14), i*sin(i/14)
 ! starts with a digit.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_digit_filename.jnl
 ! err570_digit_filename.jnl
 ! Bug 1102: under linux, var[d=filename] fails if filename
@@ -47477,13 +48013,14 @@ list a[i=1:4,d=10a.nc]
 ! Fix for bug 1098: DODS URL label was cut off
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_dods_url_label.jnl
 ! err570_dods_url_label.jnl
 !
 ! Bug 1098. Look for the label with the URL: it should include
 ! everything up to the last slash.
 ! acm 11/04
- 
+! acm* 3/17 check the URL with TEST_OPENDAP befor trying to open it.
  
 !! Change to another dataset, our server down...
 !!use  "http://www.ferret.noaa.gov/cgi-bin/nph-nc/data/bn_strides.cdf"
@@ -47513,32 +48050,35 @@ GO err570_dods_url_label.jnl
 !!plot/x=180/y=0/k=1 temp
 !!ppl list labels
  
+! If we cant open this, just bail on the test
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/coads_climatology.nc") NE 0` THEN EXIT/SCRIPT
+ !-> IF 0 THEN EXIT/SCRIPT
  
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/coads_climatology.nc"
+use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/coads_climatology.nc"
 sh data
      currently SET data sets:
-    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/coads_climatology.nc  (default)
- name     title                             I         J         K         L         M         N
- 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      ...       ...
+    1> http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/coads_climatology.nc  (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
  
 plot/x=180/y=0 sst
 ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C)                                             
+ @ACSEA SURFACE TEMPERATURE                                                     
                                                                                 
  @ASDeg C                                                                       
 
           XPOS       YPOS     HGT   ROT   UNITS
- LAB 1  8.000E+00  7.200E+00 0.060    0  SYSTEM  @ASFERRET (beta/dbg) Ver.6.97
+ LAB 1  8.000E+00  7.200E+00 0.060    0  SYSTEM  @ASFERRET (beta/debug) Ver.7.1
  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-MAY-2016 16:12:13
+ LAB 3  8.000E+00  7.000E+00 0.060    0  SYSTEM  @AS11-APR-2017 16:48:07
  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
@@ -47548,13 +48088,14 @@ ppl list labels
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  LAB 7  4.000E+00  6.330E+00 0.120    0  SYSTEM  @A
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
- LAB 8  8.000E+00  6.790E+00 0.064    0  SYSTEM  @ASOPeNDAP <NL>URL: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
+ LAB 8  8.000E+00  6.790E+00 0.058    0  SYSTEM  @ASOPeNDAP <NL>URL: http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  
  
 ! Fix for bug 906: auto-formatting of labels on color keys loses precision
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_keylabels.jnl
 ! err570_keylabels.jnl
 ! 11/2004
@@ -47570,6 +48111,7 @@ shade/lev=(370,382,0.5) a
 ! where polygon arguments have latitude or longitude units
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_poly_lonlat_axis.jnl
 ! err570_poly_lonlat_axis.jnl
 ! 12/14/04
@@ -47594,8 +48136,10 @@ POLYGON XT, YT, I[I=1:10]
 PLOT/VS XT, YT
  
 ! ******** V5.81 Additions below ***********
-GO bn_reset
+GO bn_reset bn_inf_levels.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_inf_levels.jnl
 GO bn_inf_levels.jnl
 ! Run FERRET/fer/ferretdods_gui
 ! test open upper and lower levels (-INF) (INF)
@@ -47620,8 +48164,8 @@ set view left
 fill/x=20e:150e/lev=(-inf),(4,28,0.5)(inf) sst[l=1]
 sh sym lev*
 LEV_TEXT = "(-INF),(4,28,0.5)(INF)"
-LEV_MIN = "-2.8"
-LEV_MAX = "32"
+LEV_MIN = "open-ended"
+LEV_MAX = "open-ended"
 LEV_NUM = "50"
 LEV_DEL = "irregular"
  
@@ -47629,8 +48173,8 @@ set view right
 shade/lev=(-inf),(4,28,0.5)(inf)/key=cont sst[l=1]
 sh sym lev*
 LEV_TEXT = "(-INF),(4,28,0.5)(INF)"
-LEV_MIN = "-2.8"
-LEV_MAX = "32"
+LEV_MIN = "open-ended"
+LEV_MAX = "open-ended"
 LEV_NUM = "50"
 LEV_DEL = "irregular"
  
@@ -47688,8 +48232,10 @@ go polymark poly/key/title="polygons"/lev=(-inf)(4,26,1)(inf), lon, lat, xsequen
  
  
  
-GO bn_reset
+GO bn_reset bn_regulart.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regulart.jnl
 GO bn_regulart.jnl
 ! bn_regulart.jnl
 ! 5/12/2005 ACM
@@ -47735,8 +48281,10 @@ list/l=1:6 t[gt=tcoads], tbox[gt=tcoads]
 17-JUN-1946 / 6:  90017.  30.44
  
  
-GO bn_reset
+GO bn_reset bn_labwid.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_labwid.jnl
 GO bn_labwid.jnl
 ! LABWID returns the length in Denbo inches of the
 ! string.  For multi-line strings, returns length of
@@ -47790,8 +48338,10 @@ let wid = labwid("@P2 at IILine1<NL>@IIA LONGER LINE",.15)
 label/nouser `wid`, 3, -1, 0, .15,  "@P4 at IIMulti-line<NL>Length is longest of ALL lines<NL>Line three"
  !-> PPL %LABEL/nouser 2.019230842590332, 3, -1, 0, .15,  "@P4 at IIMulti-line<NL>Length is longest of ALL lines<NL>Line three"
  
-GO bn_reset
+GO bn_reset bn_redefine_taxis_mc.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_redefine_taxis_mc.jnl
 GO bn_redefine_taxis_mc.jnl
 ! bn_redefine_taxis_mc.jnl
 ! ACM 15-Apr-2005
@@ -47856,8 +48406,10 @@ list/x=180/y=0 sst
  5   / 5:  28.49
  6   / 6:  28.32
  
-GO bn_reset
+GO bn_reset bn_illegal_axisname.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_illegal_axisname.jnl
 GO bn_illegal_axisname.jnl
 ! 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.
@@ -47869,12 +48421,12 @@ use illeg_axname.nc
 sh data
      currently SET data sets:
     1> ./illeg_axname.nc  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:21      1:16      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:21      1:16      ...       ...
  NEW.LONGITUDES
-          X[GX=SST]                        1:21      ...       ...       ...       ...       ...
+          X[GX=SST]                        1:21      ...       ...       ...
  NEW.LATITUDES
-          Y[GY=SST]                        ...       1:16      ...       ...       ...       ...
+          Y[GY=SST]                        ...       1:16      ...       ...
  
 list/i=1:5 x[gx=sst]
              VARIABLE : X
@@ -47909,11 +48461,11 @@ sh grid sst
  'COADSY.ILLEGAL' LATITUDE     16 r   35N                  65N                 full
  normal    Z
  normal    T
- normal    E
- normal    F
  
-GO bn_reset
+GO bn_reset bn_exit_script.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_exit_script.jnl
 GO bn_exit_script.jnl
 ! bn_exit_script.jnl
 ! 5/2005 ACM
@@ -48001,8 +48553,10 @@ loop
 3
 loop
  
-GO bn_reset
+GO bn_reset bn_exit_cycle.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_exit_cycle.jnl
 GO bn_exit_cycle.jnl
 ! bn_exit_cycle.jnl
 ! 5/2005 ACM
@@ -48032,8 +48586,10 @@ say 16384 if bigger than 500
  
 loop finished 16384 gt 10000
  
-GO bn_reset
+GO bn_reset bn_curv_mod.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_curv_mod.jnl
 GO bn_curv_mod.jnl
 ! bn_curv_mod
 ! Test of fill/mod and contour/mod
@@ -48053,8 +48609,10 @@ 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]
  
  
-GO bn_reset
+GO bn_reset bn_shade_keycont.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_shade_keycont.jnl
 GO bn_shade_keycont.jnl
 ! Continuous shade key
 ! test setting it and whether default is restored on next command.
@@ -48149,8 +48707,10 @@ ppl shakey ,0,-.12,3,,,`x1`,`x2`,`y1`
  !-> ppl shakey ,0,-.12,3,,,2.2,5.212,1.4
 ppl fill
  
-GO bn_reset
+GO bn_reset bn581_bug_fixes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn581_bug_fixes.jnl
 GO bn581_bug_fixes.jnl
 ! bn581_bug_fixes.jnl
 ! test various fixes that went into version 5.81
@@ -48160,6 +48720,7 @@ GO bn581_bug_fixes.jnl
 ! Bug 1160 short axis with irreg bounds seen as regular.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_irreg_bounds.jnl
 ! err580_irreg_bounds.jnl
 ! Define a short irregular time axis with some time_bounds,
@@ -48176,8 +48737,6 @@ show grid/t a
  normal    Y
  normal    Z
  TIME      T                    2 i   0.5                  2                   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO
        1>  0.5                   1          0
@@ -48200,8 +48759,6 @@ show grid/t a
  normal    Y
  normal    Z
  TIME7     T                    2 i   0.5                  2                   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO
        1>  0.5                   1          0
@@ -48210,6 +48767,7 @@ show grid/t a
 ! Bug 1179 Cartesian_axis and positive="down" resulted in depth axis not being recognized
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_cartesian_depth.jnl
  ! err580_cartesian_depth.jnl
 ! cartesian_axis attribute
@@ -48225,12 +48783,11 @@ sh grid temp
  GRID_Y_T  LATITUDE             1 r   0.25S                0.25S               full
  ZT        DEPTH (m)           10 i-  22.5                 158                 full
  TIME7     TIME                 1mr   15-FEB-1900 03:00    15-FEB-1900 03:00   full
- normal    E
- normal    F
  
 ! Bug 1181 Titles were truncated at 80 characters
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_long_title.jnl
  
  ! err580_long_title.jnl
@@ -48244,6 +48801,7 @@ sp ncdump longtitle.nc >> all_ncdump.out
 ! Bug 1180 Allow "use filename.des"
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_use_des.jnl
 ! err580_use_des.jnl
 ! Allow "use filename.des"   (previously gave an "is this a CDF file?" error)
@@ -48252,14 +48810,15 @@ use vary_scale.des
 sh data
      currently SET data sets:
     1> ./vary_scale.des  (default)
- name     title                             I         J         K         L         M         N
- TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20
  
  
  
 ! Bug 1180 Allow "use filename.des"
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_use_des.jnl
 ! err580_use_des.jnl
 ! Allow "use filename.des"   (previously gave an "is this a CDF file?" error)
@@ -48268,13 +48827,14 @@ use vary_scale.des
 sh data
      currently SET data sets:
     1> ./vary_scale.des  (default)
- name     title                             I         J         K         L         M         N
- TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20
  
  
 ! fix for bug 1181: dataset title was limited to 80 characters.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_long_dsettitle.jnl
 ! err580_long_dsettitle
 ! fix for bug 1181
@@ -48297,6 +48857,7 @@ sp ncdump longtitle.nc >> all_ncdump.out
 ! fix for bug 1200:crash due to the long veckey format spec.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_long_veckey.jnl
 ! err580_long_veckey.jnl
 ! Bug 1200 The following caused a crash due to the long veckey format spec.
@@ -48312,6 +48873,7 @@ ppl veckey,0,0,,"(1PG10.3)"
 ! fix for bug 1201: mistranslation of time region.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_cal360_region.jnl
 ! err580_cal360_region.jnl
 ! Wrong output region: the set region mistakenly tranlated
@@ -48333,6 +48895,7 @@ default region:
 ! fix for bug 1203: crash if time range left off.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_def_tax_norange.jnl
 ! err580_def_t_norange.jnl
 ! bug 1203. without the T range, these statements cause a STOP.
@@ -48345,6 +48908,7 @@ DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
 ! fix for bug 1207: closest distance and closest index transformations.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_cdb.jnl
 ! err580_cdb.jnl
 ! bug 1207
@@ -48388,6 +48952,7 @@ list var[i=5 at cia:10]
 ! fix for bug 1214: crash on repeating a SET VIEW when viewport defined with /AXES
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_def_view_axes.jnl
 ! err580_def_view_axes.jnl
 ! BUG 1214
@@ -48428,6 +48993,7 @@ sp rm -f viewaxes.plt*
 ! fix for bug 1205: symbol LEV_DEL wrong when single level specified
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_lev_del.jnl
 ! err580_lev_del.jnl
 ! demonstrates bug 1205; precision of LEV_DEL when single level specified.
@@ -48456,6 +49022,7 @@ LEV_DEL = "1.2"
 ! Fix for bug 1174: strfloat_c("nonsense") gave result of 0 rather than missing.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_strfloat_errors.jnl
 ! err580_strfloat_errors.jnl
 ! Previously a nonsense input gave a result of 0.
@@ -48477,6 +49044,7 @@ list/prec=6 strfloat(b)
 ! Fixes for bugs 1249, 1250: uppercase not recognized for qualifier argument
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_arg_case.jnl
 ! err580_arg_case.jnl
 ! 5/2005
@@ -48496,6 +49064,7 @@ plot/step=CONN/i=1:10 sin(i)
 ! Fixes for bugs 1019: kludge for CDC time axes made time origin incorrect on outputs
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_cdc_timeaxis.jnl
 ! err580_cdc_timeaxis.jnl
 ! 6/3/05
@@ -48545,6 +49114,7 @@ sp rm -f my_cdc_timeaxis.nc
 ! Fix for bug 1272: show axis/t= with NOLEAP calendar
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_show_axis_t.jnl
 ! err580_show_axis_t
 ! bug 1272: wrong range shown when nonstd calendar
@@ -48591,6 +49161,7 @@ T0 = 15-JAN-1901
 ! Fix for bug 1279 which was only in the first iteration of v5.81 release
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_nlev.jnl
 ! err580_nlev.jnl
 ! bug 1279
@@ -48605,6 +49176,7 @@ fill/lev=30 sst[l=2]
 ! acm 8/29/2005
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_vs_poly_axis.jnl
 ! err581_vs_poly_axis.jnl
 ! Test fix of bug 1349: formatted axis labels on PLOT/VS and POLYGON plot
@@ -48633,8 +49205,10 @@ POLYGON/LINE/fill xp, yp, ypts
  
  
 ! ******** V6.00 Additions below ***********
-GO bn_reset
+GO bn_reset bn_tab_comma_multivar.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_tab_comma_multivar.jnl
 GO bn_tab_comma_multivar.jnl
 ! bn_tab_comma_multivar.jnl
 !
@@ -48678,8 +49252,10 @@ COUNTRY	ID	AA	BB	NEWCOUNTRY	THE_DATA_VAR
 "JP"	2	8000	2000500	"c"	5  
 "US"	3	12000	3000500	"e"	4  
  
-GO bn_reset
+GO bn_reset bn_element_functions.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_element_functions.jnl
 GO bn_element_functions.jnl
  ! NOAA/PMEL TMAP
  ! FERRET v5.81
@@ -48805,8 +49381,10 @@ list element_index_str_n (axy[k=1:2,j=1:2], {"a10", "a2", "d4", "c5"})
  2   / 2:   ....  3.000
  
  
-GO bn_reset
+GO bn_reset bn_long_revision_num.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_long_revision_num.jnl
 GO bn_long_revision_num.jnl
 ! bn_long_revision_num.jnl
 ! ACM 8/30/05
@@ -48815,7 +49393,7 @@ GO bn_long_revision_num.jnl
  
 ! ferret version
 sh sym FERRET_VERSION
-FERRET_VERSION = "6.97"
+FERRET_VERSION = "7.1"
  
 ! history attribute
 let a = 12
@@ -48833,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/dbg) version6.97:
+ Commands in Program FERRET (beta/debug) version7.1:
  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
@@ -48861,12 +49439,12 @@ sho command
  SHOW EXPRSION/ALL
  SHOW LIST/ALL
  SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
-       /HIDDEN
+       /HIDDEN/MEMBERS
  SHOW MODE/ALL
  SHOW MOVIE/ALL
  SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
  SHOW COMMANDS/ALL/BRIEF
- SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+ SHOW MEMORY/ALL/DIAGNOST/TEMPORY/PERMANT/FREE
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
  SHOW VIEWPORT/ALL
  SHOW TRANFORM/ALL
@@ -48898,7 +49476,7 @@ sho command
  CONTOUR/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/FILL
           /LINE/NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/COLOR
           /NOAXES/PATTERN/SIZE/SPACING/SIGDIG/PEN/HLIMITS/VLIMITS/AXES/HGRATICU
-          /VGRATICU/GRATICUL/MODULO
+          /VGRATICU/GRATICUL/MODULO/DEGMINSE/HALFSPAC
  LIST/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/HEADING/NOHEAD/SINGLY/FILE/APPEND
        /ORDER/FORMAT/TITLE/PRECISIO/RIGID/ILIMITS/JLIMITS/KLIMITS/LLIMITS
        /MLIMITS/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS
@@ -48909,7 +49487,7 @@ sho command
        /VS/SYMBOL/NOLABEL/LINE/COLOR/THICKNES/XLIMITS/YLIMITS/TITLE/SIZE
        /NOAXES/STEP/DASH/AXES/HGRATICU/VGRATICU/HLIMITS/VLIMITS/HLOG/VLOG
        /GRATICUL/NOKEY/NOYADJUS/KEY/RIBBON/LEVELS/PALETTE/FAST/MISSING/GAPLOC
-       /SKIPSYM
+       /SKIPSYM/DEGMINSE/HALFSPAC
  GO/HELP
  HELP
  LOAD/TEMPORY/PERMANT/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/NAME
@@ -48919,13 +49497,13 @@ sho command
  DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+         /EDGES/CALENDAR/BOUNDS/QUIET/MONTHLY/LIKE
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
  DEFINE ALIAS
  DEFINE SYMBOL
  DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE/U
  DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
  EXIT/COMMAND/LOOP/SCRIPT/PROMPT/PROGRAM/CYCLE/TOPYTHON
  MESSAGE/CONTINUE/QUIET/JOURNAL/ERROR/OUTFILE/APPEND/CLOBBER
@@ -48936,12 +49514,12 @@ sho command
  PPLUS/RESET
  FRAME/FORMAT/FILE/TRANSPAR
  REPEAT/I/J/K/L/M/N/X/Y/Z/T/E/F/ANIMATE/LOOP/RANGE/NAME
- STAT/BRIEF/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET
+ STAT/BRIEF/PRECISIO/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET
  SHADE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/TRIM
         /LINE/NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/AXES
         /NOAXES/PATTERN/HGRATICU/VGRATICU/GRATICUL/MODULO/HLIMITS/VLIMITS
+        /DEGMINSE/HALFSPAC
  SPAWN
- USER/OPT1/OPT2/COMMAND/I/J/K/L/X/Y/Z/T/DATASET/FILE/FORMAT
  WIRE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/VIEWPOIN/ZLIMITS
        /TRANPOSE/NOLABEL/ZSCALE/TITLE
  QUERY/ALL/FILE/IGNORE
@@ -48957,8 +49535,10 @@ sho command
  
  Use SHOW ALIAS to see alternative command names
  
-GO bn_reset
+GO bn_reset bn_window_title.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_window_title.jnl
 GO bn_window_title.jnl
 ! bn_window_title.jnl
 ! Define a title for windows rather than just FERRET_1, FERRET_2, ...
@@ -48971,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-May-16:16:10"
+WIN_TITLE = "11-Apr-17:16:46"
  
 set win/title="set the title"
 sho sym win_title
@@ -48989,7 +49569,7 @@ sho sym win_title
 WIN_TITLE = "_"
  
 set win/title="($session_date):($session_time)"
- !-> set win/title="11-May-16:16:10"
+ !-> set win/title="11-Apr-17:16:46"
  
 ! If the date or time starts with a blank then we get an extra
 ! underscore in the window title. Evaluating the symbols into
@@ -48998,19 +49578,21 @@ 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-May-16
+ !-> DEFINE SYMBOL the_date = 11-Apr-17
 DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 16:10
+ !-> DEFINE SYMBOL the_time = 16:46
 SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="11-May-16:16:10"
+ !-> SET WIN/TITLE="11-Apr-17:16:46"
  
 can win/all
 set win/new
 sh sym win_title
-WIN_TITLE = "11-May-16:16:10"
+WIN_TITLE = "11-Apr-17:16:46"
  
-GO bn_reset
+GO bn_reset bn_last_error.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_last_error.jnl
 GO bn_last_error.jnl
 ! bn_last_error.jnl
 ! acm Nov 2005
@@ -49065,13 +49647,17 @@ FER_LAST_ERROR = "**ERROR: error in external function. Bailing out of external f
  
 SET MODE/LAST IGNORE_ERROR
  
-GO bn_reset
+GO bn_reset bn_deg_min.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_deg_min.jnl
 GO 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...
  
+ 
+ 
 use ss_small.nc
  
 shade/set/x=222.9:223.1/y=58.22:59.1 rose
@@ -49102,8 +49688,24 @@ ppl plot
 ! Restore the default settings
 ppl axlint,2,2
  
-GO bn_reset
+! Now do the same using command qualifiers /DEGMINSEC= /HALFSPAC  (ticket 2434)
+!  /DEGMINSEC=1 for Deg-Min, =2 for Deg-Min-Sec. Default = 1
+!  /HALFSPAC adds a half space between the degree sign and E/W or N/S
+ 
+use ss_small
+shade/x=222.9:223.1/y=58.22:59.1/DEGMIN rose
+fill/x=222.9:223.1/y=58.22:59.1/DEGMIN=2 rose
+plot/vs/DEGMIN=2 xpts, ypts
+ 
+fill/x=222.9:223.1/y=58.22:59.1/HALFSP rose
+plot/x=223./DEGMIN/HALFSP rose
+plot/y=58.52/DEGMIN=2/HALFSP rose
+plot/vs/HALFSP  xpts, ypts
+ 
+GO bn_reset bn_dp_readscale.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dp_readscale.jnl
 GO bn_dp_readscale.jnl
 ! bn_dp_readscale.jnl
 ! 9-Feb-2006 ACM
@@ -49181,8 +49783,10 @@ list xax
  
 cancel list/precision
  
-GO bn_reset
+GO bn_reset bn_bounds_defineax.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_bounds_defineax.jnl
 GO bn_bounds_defineax.jnl
 ! bn_bounds_defineax.jnl
 ! 3/22/2006
@@ -49386,8 +49990,10 @@ list zboxlo[gz=zax2], z[gz=zax2], zboxhi[gz=zax2]
 1678.5 / 12:  1158.  1679.  2199.
 2849   / 13:  2199.  2849.  3499.
  
-go bn_reset
+go bn_reset bn_attributes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_attributes.jnl
 go bn_attributes.jnl
 ! bn_attributes
 ! test attribute handling on netcdf intput/output and
@@ -49397,6 +50003,7 @@ go bn_attributes.jnl
 ! 31Aug2006 ACM Remove OPeNDAP references; not essential to the
 ! benchmark tests.
  
+! small addition below 1/17 *sh*
  
 !-----
  
@@ -49752,6 +50359,7 @@ can mode ignore
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! attributes of string variables
@@ -49767,6 +50375,7 @@ sp ncdump a.nc >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Demonstrate `var,return=` output for attributes
@@ -49811,6 +50420,7 @@ say `broiled.acf,return=size`
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! define variables to contain attribute value(s)
@@ -49845,6 +50455,7 @@ list s
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Variables containing number of variables, attributes, dimensions,
@@ -50053,6 +50664,7 @@ let anames = `names[i=2]`.attnames
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
  
 !-----
@@ -50094,6 +50706,7 @@ say `(yax_lev94).nattrs[d=1]`
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! more on access to attribute names and values as variables
@@ -50113,12 +50726,10 @@ list/d=3 a
 list temp.units[d=3]
              VARIABLE : TEMP.UNITS[D=ocean_atlas_temp]
              FILENAME : ocean_atlas_temp.cdf
-             X        : 1
         "Deg C"
 list/d=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : ocean_atlas_temp.cdf
-             X        : 1
         "From ocean_atlas_monthly"
  
 can data/all
@@ -50235,6 +50846,7 @@ list a[i=1]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! keyword . to refer to global properties and attributes
@@ -50262,24 +50874,23 @@ list/d=2 ..nvars
 sh data
      currently SET data sets:
     1> ./gt4d011.cdf
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
+ SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
+ U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
+ V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
+ W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
+ TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
+ TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
+ PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  
     2> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
 list/d=2 ..varnames
              VARIABLE : ..VARNAMES
              FILENAME : coads_climatology.cdf
-             X        : 1
         "SST"
  
 list/d=2 ..dimnames
@@ -50323,7 +50934,6 @@ list/d=1 ..nattrs
 list/d=1 ..attnames
              VARIABLE : ..ATTNAMES
              FILENAME : gt4d011.cdf
-             X        : 1
         "history"
  
 list/d=1 ..ndims
@@ -50372,6 +50982,7 @@ list/d=2 pp
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Editing attributes: add new attributes to a variable.
@@ -50424,6 +51035,7 @@ sh att/all temp[d=1]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Edit existing attributes on variables
@@ -50457,12 +51069,10 @@ use coads_climatology
 list (coadsx).units
              VARIABLE : (COADSX).UNITS
              FILENAME : coads_climatology.cdf
-             X        : 1
         "degrees_east"
 list (coadsx).modulo
              VARIABLE : (COADSX).MODULO
              FILENAME : coads_climatology.cdf
-             X        : 1
         " "
 sho att/all (coadsx)
      attributes for dataset: ./coads_climatology.cdf
@@ -50592,6 +51202,7 @@ can view
 can mode ignore
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Edit attributes: inherit all attrs from another variable
@@ -50611,11 +51222,11 @@ sh att/all salt
 set att/like=temp salt
 sh att/all salt
      attributes for dataset: ./gt4d011.cdf
+ SALT.missing_value = 0.01
+ SALT._FillValue = 0.01
  SALT.parent_grid = PS3DT2 
  SALT.slab_min_index = 91, 35, 1, 0
  SALT.slab_max_index = 108, 56, 10, 0
- SALT.missing_value = -1.E+34
- SALT._FillValue = -1.E+34
  SALT.long_name = TEMPERATURE 
  SALT.history = From gt4d011 
  SALT.units = deg. C 
@@ -50646,11 +51257,10 @@ let temp3 = temp*3
 set att/like=temp temp3
 sh att/all temp3
      attributes for user-defined variables
+ temp3.missing_value = -1.E+34
  temp3.parent_grid = PS3DT2 
  temp3.slab_min_index = 91, 35, 1, 0
  temp3.slab_max_index = 108, 56, 10, 0
- temp3.missing_value = -1.E+34
- temp3._FillValue = -1.E+34
  temp3.long_name = TEMPERATURE 
  temp3.history = From gt4d011 
  temp3.units = deg. C 
@@ -50658,7 +51268,7 @@ sh att/all temp3
  
 can var temp2
 let/units="degrees C"/title="my new TEMP"/bad=`temp,return=bad` temp2 = temp*2
- !-> DEFINE VARIABLE/units="degrees C"/title="my new TEMP"/bad= -9.999999790214768E+33 temp2 = temp*2
+ !-> DEFINE VARIABLE/units="degrees C"/title="my new TEMP"/bad=-9.999999790214768E+33 temp2 = temp*2
 sh att/all temp2
      attributes for user-defined variables
  temp2.long_name = my new TEMP 
@@ -50667,6 +51277,7 @@ sh att/all temp2
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Edit attributes, changing type
@@ -50756,6 +51367,7 @@ list pq
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! When we CANCEL MODE upcase_output, writing a netcdf file preserves
 ! case of variable and axis names. This file has lower case and some
@@ -50777,6 +51389,7 @@ set mode/last upcase_output
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
  
@@ -50824,6 +51437,7 @@ sp ncdump -c a.nc >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
  
 !-----
@@ -50887,6 +51501,7 @@ sp ncdump -h a.nc >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Read EZ ascii, delimited, and stream data files,
@@ -50898,9 +51513,9 @@ file/var="a1,a2,a3" EZ.DAT
 def att a1.three={1,2,3}
 sh att/all a1
      attributes for dataset: ./EZ.DAT
- A1.long_name = A1 
- A1.missing_value = -1.E+34
- A1.three = 1, 2, 3
+ a1.long_name = a1 
+ a1.missing_value = -1.E+34
+ a1.three = 1, 2, 3
 sh dat/att
      currently SET data sets:
     1> ./EZ.DAT  (default)
@@ -50909,14 +51524,14 @@ sh dat/att
   
  .                               history         CHAR        6    F       EZ.DAT
   
- A1                    FLOAT     long_name       CHAR        2    T       A1
+ a1                    FLOAT     long_name       CHAR        2    T       a1
                                  missing_value   FLOAT       1    T       -1.E+34
                                  three           FLOAT       3    T       1 2 3
   
- A2                    FLOAT     long_name       CHAR        2    T       A2
+ a2                    FLOAT     long_name       CHAR        2    T       a2
                                  missing_value   FLOAT       1    T       -1.E+34
   
- A3                    FLOAT     long_name       CHAR        2    T       A3
+ a3                    FLOAT     long_name       CHAR        2    T       a3
                                  missing_value   FLOAT       1    T       -1.E+34
   
 save/file=a.nc/clobber a1,a2,a3
@@ -50951,11 +51566,12 @@ file/format=str/var=num,num1/grid=mygrid/order=xyztv permutedBinaryTest.dat
 define att/type=string num.new = "a string attribute"
 sh att/all num
      attributes for dataset: ./permutedBinaryTest.dat
- NUM.long_name = NUM 
- NUM.missing_value = -1.E+34
- NUM.new = a string attribute 
+ num.long_name = num 
+ num.missing_value = -1.E+34
+ num.new = a string attribute 
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! manipulate attributes of user-defined variables
@@ -51008,6 +51624,7 @@ sp ncdump -h a.nc >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
  
@@ -51073,6 +51690,7 @@ sp ncdump a.nc  >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Set type of data on output, uses netcdf call to output
@@ -51140,6 +51758,7 @@ can data test0
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! More tests of user-defined variables. Bug 1427, now fixed, problem with varid of user vars
@@ -51215,6 +51834,7 @@ set var/outtype=garbage broiled
 can mode ignore
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
  
 !---!!!---
@@ -51262,6 +51882,7 @@ save/file=a.nc/clobber/L=1 t2
 sp ncdump -h a.nc >> all_ncdump.out
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! User-defined axes and variables
  
@@ -51292,6 +51913,7 @@ sh att/all (x2ax)
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 use levitus_climatology
 define att/out (`temp,return=xaxis`).new_att = "something"
@@ -51335,6 +51957,7 @@ save/file=a.nc/clobber/y=0:5 two
 sp ncdump -h a.nc >> all_ncdump.out
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! defining more axes with attributes
  
@@ -51368,6 +51991,7 @@ sp ncdump -h string4d.nc >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! For SET ATT timeaxis.units or SET ATT timeaxis.time_origin
 ! include the correct time origin as part of the units attribute.
  
@@ -51468,12 +52092,11 @@ set att/like=sst sst2
 list sst2.attnames
              VARIABLE : SST2.ATTNAMES
              FILENAME : coads_climatology.cdf
-             SUBSET   : 5 points (X)
+             SUBSET   : 4 points (X)
  1   / 1:"missing_value"
- 2   / 2:"_FillValue"   
- 3   / 3:"long_name"    
- 4   / 4:"history"      
- 5   / 5:"units"        
+ 2   / 2:"long_name"    
+ 3   / 3:"history"      
+ 4   / 4:"units"        
  
  
 ! Add a global attribute
@@ -51662,14 +52285,27 @@ sho att .
      attributes for dataset: ./levitus_climatology.cdf
  ..history = FERRET V5.22    5-Apr-01 
  
+! 1/17 *sh*
+! added a test of shifting attributes in is_attrib_val.F
+define att temp.test_counter = {1, 2, 3, 4, 5}
+list temp.test_counter[i=3:5]
+             VARIABLE : TEMP.TEST_COUNTER[I=3:5]
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 3 points (X)
+ 3   / 3:  3.000
+ 4   / 4:  4.000
+ 5   / 5:  5.000
+ 
 !=======
 ! 10/06 *acm* Remove tests of nco funcions: we dont want to require them to be installed
 !             on a system in order for it to pass the benchmarks.
 !go bn_reset
 !go bn_nco_functions.jnl
  
-go bn_reset
+go bn_reset bn_transforms.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_transforms.jnl
 go bn_transforms.jnl
 ! Test the transforms
  
@@ -51875,8 +52511,10 @@ 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    ....
  
-go bn_reset
+go bn_reset bn_variance.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_variance.jnl
 go bn_variance.jnl
  ! bn_variance.jnl
  ! the @VAR transform is not tested in bn_transforms.jnl script.
@@ -51914,8 +52552,10 @@ list/y=3/l=1/x=233 u[z=@var]
              TIME     : AUG-1982
           11.33
  
-go bn_reset
+go bn_reset bn_linecolors.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_linecolors.jnl
 go bn_linecolors.jnl
 ! bn_linecolors.jnl
 ! 5/2006 ACM
@@ -51982,8 +52622,10 @@ can win/all
 set win/new
  
  
-go bn_reset
+go bn_reset bn_cdf_errmsg.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cdf_errmsg.jnl
 go bn_cdf_errmsg.jnl
 ! bn_cdf_errmsg.jnl
 ! ACM 7/13/2006
@@ -52008,10 +52650,13 @@ use this_is_not_a_file.nc
 !!use "http://iridl.ldeo.columbia.edu/SOURCES/.FSU/.FULL/.tauyyyyy/dods"
  
 ! This is a valid address
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_air.cdf"
+use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_air.cdf"
+ 
+ 
+! Intentional errors
  
 ! change the variable name to something nonexistent
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
+use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
  
 ! bad server
 use  "http://noserver/a/nofile.cdf"
@@ -52027,8 +52672,10 @@ use asc.nc
 set mode/last ignore
  
  
-GO bn_reset
+GO bn_reset bn600_bug_fixes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn600_bug_fixes.jnl
 GO bn600_bug_fixes.jnl
 ! bn600_bug_fixes.jnl
 ! test various fixes that went into version 6.00
@@ -52038,6 +52685,7 @@ GO bn600_bug_fixes.jnl
 ! Bug 1129 axis formatting when /HLIM sets axis length < 0.15 deg
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_hlim_axislab.jnl
 ! err581_hlim_axislab.jn
 ! bug 1129
@@ -52072,6 +52720,7 @@ ppl list xaxis
 ! Bug 1275 stray characters appear in data lines listing string data
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_list_stray_chars.jnl
 ! err581_list_stray_chars.jnl
 ! 8/2005 (acm) bug 1275  stray characters in data listing
@@ -52109,6 +52758,7 @@ list/i=1:5 id, country, type
 ! pattern matching for SHO FUNC failed to match all EF's
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_sho_func_pattern_match.jnl
 ! err581_sho_func_pattern_match.jnl
 ! bug 1186
@@ -52153,6 +52803,7 @@ IS_ELEMENT_OF_STR_N(VAR,VALUES)
 ! FILL on data with subspan modulo axis, got wrong data
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_subspanx_fill_bug.jnl
 ! err581_subspanx_fill_bug.jnl
 ! bug 900: subspan longitude axis and hlimits gets wrong data
@@ -52178,6 +52829,7 @@ sp rm -f err581_subspanx_fill_bug.nc
 ! bug 1318 Spurious error message on USE file where file has axes with bounds.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_use_bounds.jnl
 ! err581_use_bounds.jnl
 ! bug 1318 Spurious error message on USE file where file has axes with bounds.
@@ -52193,6 +52845,7 @@ use xyir
 ! Bug 1332 variable not scaled unless it is first variable in stepfile.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_des_scale.jnl
 ! err581_des_scale.jnl  bug 1332. When using a descriptor file and
 ! a varriable has scale_factor and/or add_offset attributes, the
@@ -52212,6 +52865,7 @@ EXIT/SCRIPT   ! error in namelist record...
 ! Bug 1335 Zero-contour should be dark line.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_contour_zero_lev.jnl
 ! err581_contour_zero_lev.jnl
 ! acm 9/7/2005
@@ -52224,6 +52878,7 @@ contour/lev=(-20,20,2) sst[L=1] - 20
 ! Bug 1339, code hangs with this combination of (-INF)(INF) levels and shakey
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_shakey_inf.jnl
 ! err581_shakey_inf.jnl
 ! acm 9/7/2005
@@ -52242,6 +52897,7 @@ ppl/reset  ! undo the SHAKEY setting.
 ! Bug 918, immediate mode parsing in IF blocks
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_if_conditional.jnl
 ! err581_if_conditional.jnl  bug 918.
 ! acm 10/2005
@@ -52452,6 +53108,7 @@ palette rainbow
 ! Ungraceful STOP if we asl for multi-var transformations on axis where there is no data
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_illegal_trans.jnl
 ! err581_illegal_trans.jnl
 ! Ungraceful STOP if we do @VAR on an axis where there is no data
@@ -52468,6 +53125,7 @@ can mode ignore_error
 ! missing flag gets scaled by scale and offset factors!
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_missing_scale_off.jnl
 ! err581_missing_scale_off.jnl
 ! ACM 11/8/05
@@ -52501,6 +53159,7 @@ list tt
 ! SHOW GRID and other output have wrong dates, non-std calendar axesv
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_cal_dates_output.jnl
 ! err581_cal_dates_output.jnl
 ! bug 1363:
@@ -52522,13 +53181,12 @@ sho grid t3
  normal    Y
  normal    Z
  T360      TIME                61 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
- normal    E
- normal    F
  
 ! bug 1365
 ! STOP on shade command when modulo-regridding a time-limited nonstd calendar
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_noleap_mod.jnl
 ! err581_noleap_mod.jnl
 ! This is bug 1365: STOP on shade command
@@ -52548,6 +53206,7 @@ shade/y=0/k=1 a_clim
 ! CANCEL DATA errors
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_cancel_data.jnl
 ! err581_cancel_data.jnl
  
@@ -52568,8 +53227,8 @@ use "subdir/a.nc"
 sh data
      currently SET data sets:
     1> subdir/a.nc  (default)
- name     title                             I         J         K         L         M         N
- A        {1,5,6}                          1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        {1,5,6}                          1:3       ...       ...       ...
  
 can data "subdir/a.nc"
 sh data
@@ -52579,8 +53238,8 @@ set data "subdir/0000_a.nc"
 sh data
      currently SET data sets:
     1> subdir/0000_a.nc  (default)
- name     title                             I         J         K         L         M         N
- A        {1,5,6}                          1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        {1,5,6}                          1:3       ...       ...       ...
  
 can dat 0000_a
 set data "subdir/0000_a.nc"
@@ -52600,6 +53259,7 @@ sp rm -f subdir/0000_a.nc
 ! CANCEL DATA errors
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_since_units.jnl
 ! err581_since_units.jnl
 ! bug 1394: units of months_since_event
@@ -52632,6 +53292,7 @@ list a
 ! CANCEL DATA errors
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_exp_spaces.jnl
 ! err581_exp_spaces.jnl
 ! bug 1395
@@ -52688,6 +53349,7 @@ can mode ignore
 ! bugs 439,1390: applying command context
 GO bn_reset.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_command_cx.jnl
 ! err590_command_cx.jnl
 ! bugs 439 and 1390: the command context should apply to immed. mode evaluation
@@ -52714,6 +53376,7 @@ can mode ignore
 ! bug 1401: define 1-point axis with bounds; gets bounds wrong
 GO bn_reset.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_define_1pt_bounds.jnl
 ! err581_define_1pt_bounds.jnl
 ! see bug 1401:
@@ -52757,6 +53420,7 @@ list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
 ! Bug in strrindex when 1st argument is a list of strings
 GO bn_reset.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_strrindex.jnl
 ! err581_strrindex.jnl
 ! 5/2/2006
@@ -52776,6 +53440,7 @@ list strrindex(var,"s")
 ! POLYGON/LINE over a depth axis.
 GO bn_reset.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_poly_rev.jnl
 ! err581_poly_rev.jnl
 ! POLYGON/LINE mis-locates the line when there is a depth or
@@ -52831,8 +53496,10 @@ set mem /size=25.6
  
  
 ! ******** V6.01 Additions below ***********
-GO bn_reset
+GO bn_reset bn601_bug_fixes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn601_bug_fixes.jnl
 GO bn601_bug_fixes.jnl
 ! bn601_bug_fixes.jnl
 ! test various fixes that went into version 6.01
@@ -52842,6 +53509,7 @@ GO bn601_bug_fixes.jnl
 ! Bug 1443
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_long_bounds_name
 ! err600_long_bounds_name.jnl
 ! Long name for bounds attribute was not read by Ferret
@@ -52874,6 +53542,7 @@ list  x[gx=var], xbox[gx=var], xboxlo[gx=var], xboxhi[gx=var]
 ! bug1434
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_check_bounds_regular.jnl
 ! err600_check_bounds_regular.jnl
 ! Previously TM_CHECK_BNDS had not been used to check bounds on regular axes.
@@ -52894,6 +53563,7 @@ use b
 ! Bug 1439
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_long_symbol_string.jnl
 ! err600_longsym_symbol_string.jnl
 ! Long values for symbols: previously strings were cut off at 255 characters.
@@ -52937,6 +53607,7 @@ CANCEL SYMBOL longsym*
 ! bug 1445
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_missing_flag.jnl
 ! noglobalhistory.nc has no global history attribute, and
 ! also the variable B has no missing or fill value flag
@@ -52960,6 +53631,7 @@ list b
 ! ( a parsing error, confusing the dot in the filename with dot in `var.att,return=size` )
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_returnsize.jnl
 ! err600_returnsize.jnl
 ! ACM 10-4-2006
@@ -52987,6 +53659,7 @@ say `(($the_x_axis)).units,return=size`
 ! thrown off and we got an error about an invalid ENDIF
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_if_comments_tab.jnl
 ! err600_if_comments_tab.jnl
 ! ACM 10-4-2006
@@ -53004,6 +53677,7 @@ ENDIF
 ! Bug 1454 Settings made by SET VAR/TITLE=/UNITS= were not saved in output file
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_set_var_title.jnl
 ! err600_set_var_title.jnl
 ! Bug 1454
@@ -53061,6 +53735,7 @@ use a.nc
 ! be labelled with the var name but it only has units label
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_var_label.jnl
 ! err600_var_label.jnl
 ! bug1442
@@ -53106,6 +53781,7 @@ list/i=70/l=1/j=30/k=1 temp
 ! Bug 1461 upcasing of axis name on creating bounds variable for output
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_upcase.jnl
  ! err600_upcase.jnl
  ! 10/23/2006
@@ -53130,6 +53806,7 @@ SET MODE/LAST ignore_error
 ! structure fail, and the list of variable names was incorrect.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_let_d.jnl
 ! err600_let_d.jnl
 ! Making a LET/D= assignment caused the return of dimension
@@ -53157,6 +53834,7 @@ list ..varnames
 ! Bug 1459 order of multiple descriptor file opening causes netCDF error
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_nc_des_order.jnl
 ! err600_nc_des_order.jnl
 ! 11/07/2006 ACM
@@ -53218,6 +53896,7 @@ stat rose[j=12,d=1]
 ! in the attribute structure.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_reset_redefine_axis.jnl
 ! err600_reset_redefine_axis.jnl
 ! Bug 1470; redefine or reset attributes of an axis
@@ -53351,6 +54030,7 @@ show axis ($zax)
 ! orig_file_axname keeps the input name.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_ferret_axis_names.jnl
 ! err600_ferret_axis_names.jnl
 ! If Ferret needed to rename an axis on file initialization for uniqueness,
@@ -53408,7 +54088,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -53457,7 +54137,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -53508,6 +54188,7 @@ sho dat/att
 ! should output a comma or tab as placeholder for the missing value
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_tab_comma_missingdat.jnl
 ! err600_tab_comma_missingdat.jnl
 ! 11/21/2006 acm
@@ -53580,6 +54261,7 @@ list/form=tab a,b,a
 ! VECTOR/ASPECT plots are wrong (incorrect fix for bug 1348)
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_vec_aspect.jnl
 ! err600_vec_aspect.jnl
 ! VECTOR/ASPECT plots are wrong (incorrect fix for bug 1348)
@@ -53603,6 +54285,7 @@ vec/asp/over a,b
 ! when checking whether 2nd variable has same grid.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_save_two.jnl
 ! err600_save_two.jnl
 ! 12/11/2006
@@ -53620,6 +54303,7 @@ save/clobber/file="out.nc" olr[d=1], swdn_toa[d=2]
 ! Bug 1459 order of multiple descriptor file opening causes netCDF error
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_nc_des_order.jnl
 ! err600_nc_des_order.jnl
 ! 11/07/2006 ACM
@@ -53677,8 +54361,10 @@ stat rose[j=12,d=1]
  Standard deviation: 156.25
  
 ! ******** V6.02 Additions below ***********
-GO bn_reset
+GO bn_reset bn_set_strides.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_strides.jnl
 GO bn_set_strides.jnl
 ! bn_set_strides.jnl
 ! Jing Li, 11/2006
@@ -53968,8 +54654,8 @@ use/order=yzt coads_climatology
 show data/all
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          ...       1:180     1:90      1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          ...       1:180     1:90      1:3
  
 set axis/stride=5 `sst,return=yaxis`
  !-> set axis/stride=5 COADSX
@@ -54119,8 +54805,10 @@ show axis `sst,return=taxis`
 T0 = 01-JAN-0000 00:00:00
    Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
  
-GO bn_reset
+GO bn_reset bn_lsl_lowpass.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_lsl_lowpass.jnl
 GO bn_lsl_lowpass.jnl
 ! bn_lsl_lowpass.jnl
 ! Test lsl_lowpass, now included as a statically-linked external function
@@ -54155,8 +54843,10 @@ LIST/L=10:20 MY_TEMP[L=1:110], F_FILTERED[L=1:110]
 14-MAR-1982 09 / 20:   27.42   27.43
  
  
-GO bn_reset
+GO bn_reset bn_return_xmod_tmod.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_return_xmod_tmod.jnl
 GO bn_return_xmod_tmod.jnl
 ! New `var,return=xmod` `var,return=tmod`
 ! Return modulo lengths, or blank if not modulo
@@ -54169,8 +54859,6 @@ sh grid temp
  YAX_LEV94 LATITUDE           180 r   89.5S                89.5N               full
  ZAXLEVIT191_1 DEPTH (m)        1 r-  0                    0                   full
  TIME3     TIME                 2mr   16-JAN 06:00         15-FEB 16:29        full
- normal    E
- normal    F
 sh axis XAX_LEV9421_380
  name       axis              # pts   start                end
  XAX_LEV9421_380 LONGITUDE    360mr   20.5E                19.5E(379.5)
@@ -54220,8 +54908,6 @@ sh grid axy
  Y3AX      Y                    3 r   1                    3                   full
  Z4AX      Z                    4 r   1                    4                   full
  T2AX1     T                    2 r   1                    2                   full
- normal    E
- normal    F
 show axis x2ax
  name       axis              # pts   start                end
  X2AX      X                    2mr   1                    2
@@ -54230,8 +54916,10 @@ say `axy,return=xmod`
  !-> MESSAGE/CONTINUE 2
 2
  
-GO bn_reset
+GO bn_reset bn602_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn602_bug_fixes
 GO bn602_bug_fixes
 ! bn602_bug_fixes.jnl
 ! test various fixes that went into version 6.02
@@ -54241,6 +54929,7 @@ GO bn602_bug_fixes
 ! bug 1468: SHOW AXIS/ALL/XML listed the wrong info for the calendar
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err601_sho_ax_xml_calendar.jnl
 ! err601_sho_ax_xml_calendar.jnl
 ! 11/8/2006 ACM
@@ -54295,6 +54984,7 @@ sh axis/xml timenoleap
 ! with unspecified_int4.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err601_index_111.jnl
  
 ! err601_index_111.jnl
@@ -54321,6 +55011,7 @@ list x[gx=sst,x=-193:-203]
 ! Check for irregular axis actually being irregular failed; bug 1483
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err601_irregular_axis.jnl
 ! err601_irregular_axis.jnl
 ! V6.0 had a new scheme to check for irregular axes; for an axis
@@ -54335,8 +55026,6 @@ SHOW GRID/Z atmos
  normal    Y
  ALTITUDE  Z (Pa)              50 i   6.791595619E-10      1400                full
  TIME11    TIME                 1mr   01-JAN 04:00         01-JAN 04:00        full
- normal    E
- normal    F
  
        K     Z                   ZBOX      ZBOXLO
        1>  6.791595619227E-10    6.885E-10  3.349092392302E-10
@@ -54395,6 +55084,7 @@ SHOW GRID/Z atmos
 ! see bug 1485, check on missing coordinates for 3-argument graphics
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err601_check_missing_3arg.jnl
 ! err601_check_missing_3arg.jnl
 ! see bug 1485: if missing coordinates in a curvilinear dataset, we should be
@@ -54478,6 +55168,7 @@ sp rm -f tripolar_missing_lon.nc
 !  when the last element is missing.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err601_missing_string_element.jnl
 ! err601_missing_string_element.jnl
 !  Bug 1488. Seg fault when try to list a string variable
@@ -54494,8 +55185,10 @@ list a
  
  
 ! ******** V6.03 Additions below ***********
-GO bn_reset
+GO bn_reset bn_modnbd.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_modnbd.jnl
 GO bn_modnbd.jnl
 ! Test MODNBD regridding statistic.
  
@@ -54540,9 +55233,6 @@ list var[gt=month_reg at MODNGD], var[gt=month_reg at MODNBD], var[gt=month_reg at MODNGD
              TIME: JAN to DEC
              LONGITUDE: 139.5E
              LATITUDE: 0.833N
-Internal overflow expressing 500000.0 Mwords as words (1783793664) 
-Unable to allocate the requested 500000.0 Mwords of memory.
-Memory remaining at 0.2 Mwords.
              DEPTH (m): 5
  Column  1: VAR[G=730 hour on T at MODNGD] is IF TEMP GT 29.5 THEN TEMP (# of points)(regrid: 730 hour on T at MODNGD)
  Column  2: VAR[G=730 hour on T at MODNBD] is IF TEMP GT 29.5 THEN TEMP (# of points)(regrid: 730 hour on T at MODNBD)
@@ -54562,8 +55252,10 @@ Memory remaining at 0.2 Mwords.
 15-NOV      / 11:  10.00   0.00  10.00  10.00
 16-DEC      / 12:  10.00   0.00  10.00  10.00
  
-GO bn_reset
+GO bn_reset bn_fifty_files.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_fifty_files.jnl
 GO bn_fifty_files.jnl
 ! bn_fifty_files.jnl
 ! We build OPeNDAP so that 100 files can be opened at a time.
@@ -54625,8 +55317,10 @@ use weird_name1.cdf
 cancel mode ignore_error
  
  
-GO bn_reset
+GO bn_reset bn603_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn603_bug_fixes
 GO bn603_bug_fixes
 ! bn603_bug_fixes.jnl
 ! test various fixes that went into version 6.03
@@ -54636,6 +55330,7 @@ GO bn603_bug_fixes
 ! SHADE/LEV did not keep same levels after a SHADE/LINE
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err602_shade_line_lev.jnl
 ! err602_shade_line_lev.jnl
 ! Bug 904.
@@ -54676,6 +55371,7 @@ LEV_DEL = "0.05"
 ! Draw correct SHADE and FILL plots across the modulo branch cut.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err602_curvi_modulo_cut
 ! err602_curvi_modulo_cut.jnl
 ! 5/07  bug 1302
@@ -54698,6 +55394,7 @@ fill/hlim=75:85/vlim=-10:0/mod u,geolon_c,geolat_c
 ! SET LIST/PREC worked for multi-var listings, LIST/PREC= var1,var2 did not
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err602_list_prec
 ! err602_list_prec.jnl
 ! fixes for bug 1388: SET LIST/PREC worked for multi-variable listings,
@@ -54744,8 +55441,10 @@ LIST/NOHEAD/I=91:94/J=37/K=1/L=1 TEMP,SALT
  
 ! ******** V6.05 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_set_var_name.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_var_name.jnl
 GO 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!
@@ -54758,8 +55457,8 @@ SET VAR/NAME=my_sst sst
 SHOW DATA
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- MY_SST   SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ MY_SST   SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
  
 LIST/X=179:183/Y=40/L=3 my_sst
@@ -54792,15 +55491,16 @@ LIST/X=179:183/Y=40/L=3 sst
  177W   / 82:  36.23927
  
  
-GO bn_reset
-cancel mode verify
+!GO bn_reset
 ! This routine executes a ppl error which exits us from Ferret
 ! when run in the benchmark suite. Should test this, but dont do it
 ! here, for now.
 !GO bn_ppl_errors.jnl
  
-GO bn_reset
+GO bn_reset bn_memory_symbol
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_memory_symbol
 GO bn_memory_symbol
 ! bn_memory_symbol.jnl
 ! Ferret v6.06 15-Aug-07
@@ -54813,22 +55513,28 @@ set mem/siz=90
 sh sym ferret_memory
 FERRET_MEMORY = "90"
 show memory
- Current size of FERRET memory cache: 90 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 90 megawords
+    Peak demand: 0 words
+    Current cache: 0 words
  
 set mem/size=0.05
 sh sym ferret_memory
-FERRET_MEMORY = "0.2"
+FERRET_MEMORY = "0.05"
  
 set mem/siz=500000  ! too large to allow
 sho sym ferret_memory
-FERRET_MEMORY = "0.2"
+FERRET_MEMORY = "500000"
  
 set mem/siz=25.6  ! return to the default setting
 show memory
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 0 words
+    Current cache: 0 words
  
-GO bn_reset
+GO bn_reset bn605_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn605_bug_fixes
 GO bn605_bug_fixes
 ! bn604_bug_fixes.jnl
 ! test various fixes that went into version 6.05
@@ -54837,6 +55543,7 @@ GO bn605_bug_fixes
 ! Fix for Bug 1524: irregular axis detected as REGULAR
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err604_irreg_axis.jnl
 ! Bug 1524: irregular axis detected as REGULAR!
  
@@ -54868,6 +55575,7 @@ list t[gt=month_irreg], tbox[gt=month_irreg]
 ! SHOW FUNCTIONS caused a crash or a message
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err605_show_func.jnl
 ! err605_show_func.jnl
 ! Reported by Andrew W.
@@ -54925,6 +55633,7 @@ DNCASE(STR)
 STRCAT(STR1,STR2)
 SUBSTRING(STR,OFFSET,LENGTH)
 STRFLOAT(STR)
+INNERPRODUCT(VAR1,VAR2,IDIM)
  
 Externally defined functions available to Ferret:
 AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
@@ -55059,11 +55768,20 @@ TAX_YEARFRAC(A,B)
 TCAT(A,B)
 TCAT_STR(A,B)
 TEST_OPENDAP(url)
+TRANSPOSE_EF(VAR)
+TRANSPOSE_TE(VAR)
+TRANSPOSE_TF(VAR)
+TRANSPOSE_XE(VAR)
+TRANSPOSE_XF(VAR)
 TRANSPOSE_XT(VAR)
 TRANSPOSE_XY(VAR)
 TRANSPOSE_XZ(VAR)
+TRANSPOSE_YE(VAR)
+TRANSPOSE_YF(VAR)
 TRANSPOSE_YT(VAR)
 TRANSPOSE_YZ(VAR)
+TRANSPOSE_ZE(VAR)
+TRANSPOSE_ZF(VAR)
 TRANSPOSE_ZT(VAR)
 TREVERSE(A)
 UNIQUE_STR2INT(A)
@@ -55107,6 +55825,15 @@ 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)
@@ -55136,8 +55863,10 @@ STUDENT_T_CUTOFF(P,nf)
 SUBTRACT(A,B)
  
  
-GO bn_reset
+GO bn_reset bn608_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn608_bug_fixes
 GO bn608_bug_fixes
 ! bn608_bug_fixes
 ! test various fixes that went into version 6.08
@@ -55146,6 +55875,7 @@ GO bn608_bug_fixes
 ! Fix for Bug 1539: SHOW VAR/XML
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err607_show_var_xml
 ! Bug 1539 SHOW VAR/XML didnt show all vars.
  
@@ -55184,6 +55914,9 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <xaxis>XAX1_15</xaxis>
@@ -55198,6 +55931,9 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <xaxis>XAX1_15</xaxis>
@@ -55212,6 +55948,9 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GSI1">
 <axes>
 <zaxis>TIME10</zaxis>
@@ -55223,6 +55962,7 @@ show var/xml
 ! err607_set_new_history_att
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err607_set_new_history_att
 ! err607_set_new_history_att.jnl
 ! Previously if we set a history attribute on a user-defined variable that
@@ -55239,8 +55979,8 @@ use a.nc
 show data
      currently SET data sets:
     1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- VAR      SST                              1:10      1:1       ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ VAR      SST                              1:10      1:1       ...       1:3
  
 show att/all var
      attributes for user-defined variables
@@ -55251,6 +55991,7 @@ show att/all var
 ! Symbols YAXIS_MIN, YAXIS_MAX were 0 when values small
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err607_axis_minmax_syms
 ! Bug 1542
 ! Symbols YAXIS_MIN, YAXIS_MAX were 0 when values small
@@ -55298,6 +56039,7 @@ YAXNAM = "YAX_LEV94"
 ! Error message for too many contour levels requested
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err607_lev_errmsg
 ! err607_lev_errmsg.F
 ! Make the error message more detailed, saying it is the choice of
@@ -55311,8 +56053,10 @@ SET MODE/LAST ignore
  
 ! ******** V6.1 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_shade_trim
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_shade_trim
 GO bn_shade_trim
 ! bn_shade_trim.jnl
 ! Test new qualifier SHADE/TRIM which trims the region of
@@ -55348,8 +56092,10 @@ YAXIS_MIN = "30.5000000"
 YAXIS_MAX = "43.5000000"
  
  
-GO bn_reset
+GO bn_reset bn_mode_nlevels
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_mode_nlevels
 GO bn_mode_nlevels
 ! bn_mode_nlevels.jnl
 ! 3-mar-2008
@@ -55392,8 +56138,10 @@ LEV_DEL = "0.5"
 set mode nlevels 40
  
  
-GO bn_reset
+GO bn_reset bn61_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn61_bug_fixes
 GO bn61_bug_fixes
 ! bn608_bug_fixes
 ! test various fixes that went into version 6.1
@@ -55403,6 +56151,7 @@ GO bn61_bug_fixes
 ! Error processing parentheses on abstract axis names.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err608_bug1556
 ! err608_bug1556.jnl
 ! Error processing parentheses on abstract axis names.
@@ -55430,6 +56179,7 @@ SAVE/FILE=a.nc/CLOBBER sst[i=1:5:1,j=1:5:1,l=1:1:1]
 ! Precision of immediate-mode output of negative values
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err608_precision_neg_numbers
 ! err608_precision_neg_numbers.jnl
 ! ACM 1/2/2008
@@ -55446,13 +56196,15 @@ SAY `1.23456789e-15`
  !-> MESSAGE/CONTINUE 1.23456789E-15
 1.23456789E-15
 SAY `1.23456789e-15,prec=10`
- !-> MESSAGE/CONTINUE 1.23456789E-15
+ !-> MESSAGE/CONTINUE   1.23456789E-15
 1.23456789E-15
  
  
 ! ******** V6.11 Additions below ***********
-GO bn_reset
+GO bn_reset bn_test_opendap
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_test_opendap
 GO bn_test_opendap
 ! Test the test_opendap function: returns 0 if successful, or error code if not.
 SET MODE IGNORE
@@ -55462,8 +56214,8 @@ SET MODE IGNORE
 !!list test_opendap ("http://iridl.ldeo.NOT.columbia.edu/SOURCES/.LEVITUS/.MONTHLY/.temp/dods")
  
 !! Change to another server, this one not working 8/2012
-list test_opendap ("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
-             VARIABLE : TEST_OPENDAP ("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
+list test_opendap ("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
+             VARIABLE : TEST_OPENDAP ("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
              X        : 1
           0.0000000
 list test_opendap ("http://ferret.pmel.NOT.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
@@ -55474,14 +56226,17 @@ list test_opendap ("http://ferret.pmel.NOT.noaa.gov/thredds/dodsC/data/PMEL/WOA0
  
 CANCEL MODE IGNORE
  
-GO bn_reset
+GO bn_reset bn611_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn611_bug_fixes
 GO bn611_bug_fixes
 ! bn611_bug_fixes.jnl
 ! Fixes that go into v6.11 release
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_write_bounds
 ! err61_write_bounds.jnl
 ! test fixes for bugzilla 1534: write correct bounds
@@ -55511,6 +56266,7 @@ sp ncdump a.nc >> all_ncdump.out
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_poly_shade_over_noaxes
 ! err61_poly_shade_over_noaxes.jnl
 ! See bug 1571
@@ -55561,6 +56317,7 @@ go polymark poly/lev=(-5,30,1)/fill/line=1/nolab/over v1 v2 v3 circle 2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_context_scalar_strings
 ! err61_context_scalar_strings.jnl
 ! Bug 1558, first present in Ferret v6.02
@@ -55577,6 +56334,7 @@ say `"a" EQ "a"`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_exit_script
 ! Bug 1566 Andrew Wittenberb
 !
@@ -55723,6 +56481,7 @@ exit/script
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_new_attr_on_axis
 ! err61_new_attr_on_axis.jnl
 ! For any var or axis, allow adding an attribute
@@ -55732,8 +56491,8 @@ use ocean_atlas_temp
 sh dat
      currently SET data sets:
     1> ./ocean_atlas_temp.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     Temperature                      1:360     1:180     1:1       1:2       ...       ...
+ name     title                             I         J         K         L
+ TEMP     Temperature                      1:360     1:180     1:1       1:2
  
 define att/output (`temp,return=xaxis`).long_name = "Here is a long name for the x axis of TEMP"
  !-> define att/output (XAX_LEV9421_380).long_name = "Here is a long name for the x axis of TEMP"
@@ -55755,6 +56514,7 @@ sp ncdump -h a.nc >> all_ncdump.out
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_varcontext_attributes
 ! Examples from bn_attributes, where instead of var.att[specifiers]
 ! we use var[specifiers].att  where appropriate.
@@ -55815,6 +56575,7 @@ list lnames
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
  
 !-----
@@ -55855,6 +56616,7 @@ say `($yaxnam)[d=1].nattrs`
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! more on access to attribute names and values as variables
@@ -55873,12 +56635,10 @@ list/d=3 a
 list temp[d=3].units
              VARIABLE : TEMP[D=ocean_atlas_temp].UNITS
              FILENAME : gt4d011.cdf
-             X        : 1
         "Deg C"
 list/d=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : ocean_atlas_temp.cdf
-             X        : 1
         "From ocean_atlas_monthly"
  
 can data/all
@@ -55898,6 +56658,7 @@ list a[i=2]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! When the variable context is given in an attribute
 ! spec, we want to ignore the information except for the
@@ -55909,7 +56670,6 @@ list ($ferret_plot_var).long_name
  !-> list sst[x=30:39,y=-90:90].long_name
              VARIABLE : SST[X=30:39,Y=-90:90].LONG_NAME
              FILENAME : coads_climatology.cdf
-             X        : 1
         "SEA SURFACE TEMPERATURE"
  
 use coads_climatology
@@ -55918,7 +56678,6 @@ list ($ferret_plot_var).units
  !-> list sst[d=1,x=30:35,y=-90:90].units
              VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].UNITS
              FILENAME : coads_climatology.cdf
-             X        : 1
         "Deg C"
  
 use coads_climatology
@@ -55928,11 +56687,11 @@ list ($ferret_plot_var).history
  !-> list sst[d=1,x=30:35,y=-90:90].history
              VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].HISTORY
              FILENAME : levitus_climatology.cdf
-             X        : 1
         "From coads_climatology"
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 use levitus_climatology
 use coads_climatology
@@ -55946,18 +56705,17 @@ list ($xaxnam)[d=1].modulo
  !-> list (XAXLEVITR1_160)[d=1].modulo
              VARIABLE : (XAXLEVITR1_160)[D=levitus_climatology].MODULO
              FILENAME : coads_climatology.cdf
-             X        : 1
         " "
 list ($yaxnam).point_spacing[d=1]
  !-> list (YAXLEVITR1_90).point_spacing[d=1]
              VARIABLE : (YAXLEVITR1_90).POINT_SPACING[D=levitus_climatology]
              FILENAME : levitus_climatology.cdf
-             X        : 1
         "even"
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_show_dat_var_xml
 ! err61_show_dat_var_xml.jnl
 ! See bug 1580. Intermediate variablels associated with a
@@ -55995,9 +56753,9 @@ LET/D=2 ddat_a = ZAXREPLACE(ddat_orig[d=1], cycle_orig[d=2], dummy)
 SHOW DATA 2
      currently SET data sets:
     2> ./z2.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  CYCLE_ORIG
-          CYCLE[GZ=ZAXIS_ORIG at ASN]         ...       ...       1:5       ...       ...       ...
+          CYCLE[GZ=ZAXIS_ORIG at ASN]         ...       ...       1:5       ...
  ------------------------------
  DDAT_A[D=z2] = ZAXREPLACE(DDAT_ORIG[D=1], CYCLE_ORIG[D=2], DUMMY)
  
@@ -56041,13 +56799,13 @@ SHOW DATA/VAR/XML 2
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
 <attribute name="long_name" type="char">
    <value><![CDATA[ZAXREPLACE(DDAT_ORIG[D=1], CYCLE_ORIG[D=2], DUMMY)]]></value>
 </attribute>
-<grid name="(G104)">
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<grid name="(G106)">
 <axes>
 <zaxis>ZAXIS_DES</zaxis>
 </axes>
@@ -56118,6 +56876,7 @@ SHOW DATA/VAR/XML 2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_360_calendar
 ! err61_360_calendar.jnl
 !
@@ -56143,6 +56902,7 @@ define axis/t=30-feb-1909:07-mar-1909:2/units=days/t0=1-jan-1909/calendar=d360 t
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_exit_if.jnl
 ! err611_exit_if.jnl
 !
@@ -56169,6 +56929,7 @@ exit/script
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_save_irreg.jnl
 ! err611_save_irreg.jnl
 !
@@ -56193,8 +56954,10 @@ save/clob/file=b.nc b
  
  
 ! ******** V6.13 Additions below ***********
-GO bn_reset
+GO bn_reset bn_no_valid_on_plot
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_no_valid_on_plot
 GO bn_no_valid_on_plot
 ! bn_no_valid_on_plot.jnl
 ! Bug 1038 points out that the No Valid Data label that is
@@ -56205,7 +56968,7 @@ GO bn_no_valid_on_plot
 use coads_climatology
 plot/x=56e:100e/y=40 sst[L=1]
 ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C) No Valid Data                               
+ @ACSEA SURFACE TEMPERATURE No Valid Data                                       
  @ASLONGITUDE                                                                   
  @ASDeg C                                                                       
 
@@ -56274,8 +57037,10 @@ VECTOR/Y=80:90 sst[L=1], sst[L=1]
  
 SET MODE/last nodata_lab
  
-GO bn_reset
+GO bn_reset bn_median
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_median
 GO bn_median
 ! Test median smoothing tranform
 ! Default length is 3
@@ -56382,14 +57147,17 @@ plot/trans var, var[z=@med:4]
 set mode/last ignore
  
  
-GO bn_reset
+GO bn_reset bn614_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn614_bug_fixes
 GO bn614_bug_fixes
 ! bn614_bug_fixes.jnl
 ! Fixes that go into v6.14 release
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_axislab
 ! err611_axislab.jnl
 ! Fix bug 1582: Horizontal axis label disappeared
@@ -56404,6 +57172,7 @@ ppl plot
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_360_calendar
 ! err61_360_calendar.jnl
 !
@@ -56429,6 +57198,7 @@ define axis/t=30-feb-1909:07-mar-1909:2/units=days/t0=1-jan-1909/calendar=d360 t
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_exit_if.jnl
 ! err611_exit_if.jnl
 !
@@ -56455,6 +57225,7 @@ exit/script
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_save_irreg.jnl
 ! err611_save_irreg.jnl
 !
@@ -56479,6 +57250,7 @@ save/clob/file=b.nc b
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_wrong_fineaxis_range
 ! err611_wrong_fineaxis_range.jnl
 ! Bug 1594
@@ -56500,8 +57272,6 @@ sh grid sst
  LAT1800_1800 LATITUDE          1 r   0.025S               0.025S              full
  ENS       Z (count)            1 r   1                    1                   full
  TIME11    TIME                 1 r   01-APR-2006 00:00    01-APR-2006 00:00   full
- normal    E
- normal    F
  
 ! This first was wrong, returned data at x=-180
 list/x=180 sst
@@ -56551,6 +57321,7 @@ say `the_plot_var,return=size`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_digit_filename
 ! err611_digit_filename.jnl
 ! Under linux, FILE command fails if filename
@@ -56565,7 +57336,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=1a.dat i
  !-> SET DATA/EZ/VAR="a1" 1a.dat
  !-> LIST a1
-             VARIABLE : A1
+             VARIABLE : a1
              FILENAME : 1a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000000
@@ -56575,7 +57346,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=3a.dat i
  !-> SET DATA/EZ/VAR="a3" 3a.dat
  !-> LIST a3
-             VARIABLE : A3
+             VARIABLE : a3
              FILENAME : 3a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000000
@@ -56585,7 +57356,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=5a.dat i
  !-> SET DATA/EZ/VAR="a5" 5a.dat
  !-> LIST a5
-             VARIABLE : A5
+             VARIABLE : a5
              FILENAME : 5a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000000
@@ -56595,7 +57366,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=7a.dat i
  !-> SET DATA/EZ/VAR="a7" 7a.dat
  !-> LIST a7
-             VARIABLE : A7
+             VARIABLE : a7
              FILENAME : 7a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000000
@@ -56605,7 +57376,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=9a.dat i
  !-> SET DATA/EZ/VAR="a9" 9a.dat
  !-> LIST a9
-             VARIABLE : A9
+             VARIABLE : a9
              FILENAME : 9a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000000
@@ -56615,7 +57386,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=11a.dat i
  !-> SET DATA/EZ/VAR="a11" 11a.dat
  !-> LIST a11
-             VARIABLE : A11
+             VARIABLE : a11
              FILENAME : 11a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000000
@@ -56624,32 +57395,33 @@ REPEAT/RANGE=1:12:2/name=m \
 SHOW DATA
      currently SET data sets:
     1> ./1a.dat
- name     title                             I         J         K         L         M         N
- A1       A1                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A1       a1                               1:3       ...       ...       ...
  
     2> ./3a.dat
- name     title                             I         J         K         L         M         N
- A3       A3                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A3       a3                               1:3       ...       ...       ...
  
     3> ./5a.dat
- name     title                             I         J         K         L         M         N
- A5       A5                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A5       a5                               1:3       ...       ...       ...
  
     4> ./7a.dat
- name     title                             I         J         K         L         M         N
- A7       A7                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A7       a7                               1:3       ...       ...       ...
  
     5> ./9a.dat
- name     title                             I         J         K         L         M         N
- A9       A9                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A9       a9                               1:3       ...       ...       ...
  
     6> ./11a.dat  (default)
- name     title                             I         J         K         L         M         N
- A11      A11                              1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A11      a11                              1:3       ...       ...       ...
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_parse_semicolon
 ! err611_parse_semicolon.jnl
 ! Bug 1608. The first time it was issued, the first command
@@ -56670,6 +57442,7 @@ c (d; say a ; b
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_ov_ax
 ! err611_ov_ax.jnl
 !
@@ -56690,6 +57463,7 @@ set v lr; ppl axlabp 0 0; plot/nolab {-1,1,6}
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_context_after_error
 ! err611_context_after_error.jnl
 ! ACM 11/12/08
@@ -56711,12 +57485,12 @@ USE bug1421_b
 SHOW DATA
      currently SET data sets:
     1> ./bug1421_a.nc
- name     title                             I         J         K         L         M         N
- A        zonal wind stress                1:1       1:1       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ A        zonal wind stress                1:1       1:1       ...       1:20
  
     2> ./bug1421_b.nc  (default)
- name     title                             I         J         K         L         M         N
- B        T[GT=MON_IRREG_NLP]              ...       ...       ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ B        T[GT=MON_IRREG_NLP]              ...       ...       ...       1:12
  
 SHOW AXIS LON88_88
  name       axis              # pts   start                end
@@ -56774,6 +57548,7 @@ SET MODE/LAST ignore_error
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_isize_gc_fcns
 ! err611_isize_gc_fcns.jnl
 ! ACM 11/13/2008
@@ -56817,28 +57592,30 @@ SAY `XSEQUENCE(a),RETURN=size`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_return_precision
 ! err611_return_precision.jnl
 ! 17-Nov-08 ACM
  
 ! See bug 1611, where say "a`95,p=1`" yielded "a 95" but
 ! "a`94,p=1`" yielded "a94"
+! Note with ticket 2389 (5/2016), p=1 returns 1 digit, p=2 returns 2, etc.
  
 say "a`95,p=1`"
  !-> MESSAGE/CONTINUE "a95"
 a95
 say "a`94,p=1`"
- !-> MESSAGE/CONTINUE "a94"
-a94
+ !-> MESSAGE/CONTINUE "a90"
+a90
 say "a`95,p=1`"
  !-> MESSAGE/CONTINUE "a95"
 a95
 say "a`949,p=1`"
- !-> MESSAGE/CONTINUE "a949"
-a949
+ !-> MESSAGE/CONTINUE "a900"
+a900
 say "a`950,p=1`"
- !-> MESSAGE/CONTINUE "a950"
-a950
+ !-> MESSAGE/CONTINUE "a1.E+03"
+a1.E+03
  
 ! Note that an immediate expr with prec=0 returns an integer.
 say "a`95,p=0`"
@@ -56864,54 +57641,54 @@ say "a`0.1,p=0`"
 a0.1
  
 say "a`-95,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
 say "a`-95.99,p=1`"
- !-> MESSAGE/CONTINUE "a-96"
-a-96
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
 say "a`-95.001,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
  
 say "a`-94,p=1`"
- !-> MESSAGE/CONTINUE "a-94"
-a-94
+ !-> MESSAGE/CONTINUE "a-90"
+a-90
 say "a`-94.99,p=1`"
  !-> MESSAGE/CONTINUE "a-95"
 a-95
 say "a`-94.001,p=1`"
- !-> MESSAGE/CONTINUE "a-94"
-a-94
+ !-> MESSAGE/CONTINUE "a-90"
+a-90
  
 say "a`-95,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
 say "a`-95.99,p=1`"
- !-> MESSAGE/CONTINUE "a-96"
-a-96
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
 say "a`-95.001,p=1`"
- !-> MESSAGE/CONTINUE "a-95"
-a-95
+ !-> MESSAGE/CONTINUE "a-1.E+02"
+a-1.E+02
  
 say "a`-949,p=1`"
- !-> MESSAGE/CONTINUE "a-949"
-a-949
+ !-> MESSAGE/CONTINUE "a-9.E+02"
+a-9.E+02
 say "a`-949.99,p=1`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
+ !-> MESSAGE/CONTINUE "a-9.E+02"
+a-9.E+02
 say "a`-949.001,p=1`"
- !-> MESSAGE/CONTINUE "a-949"
-a-949
+ !-> MESSAGE/CONTINUE "a-9.E+02"
+a-9.E+02
  
 say "a`-950,p=1`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
+ !-> MESSAGE/CONTINUE "a-1.E+03"
+a-1.E+03
 say "a`-950.99,p=1`"
- !-> MESSAGE/CONTINUE "a-951"
-a-951
+ !-> MESSAGE/CONTINUE "a-1.E+03"
+a-1.E+03
 say "a`-950.001,p=1`"
- !-> MESSAGE/CONTINUE "a-950"
-a-950
+ !-> MESSAGE/CONTINUE "a-1.E+03"
+a-1.E+03
  
  
 say "a`-95,p=0`"
@@ -56966,6 +57743,7 @@ a-950
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_set_var_ez
 ! err611_set_var_ez.jnl
 ! 6-Jan-2009
@@ -56993,7 +57771,7 @@ SHOW DAT/ATT
   
  .                               history         CHAR        7    F       dat.dat
   
- MY_ASC                FLOAT     long_name       CHAR        11   T       chlorophyll
+ my_asc                FLOAT     long_name       CHAR        11   T       chlorophyll
                                  missing_value   FLOAT       1    T       3
                                  units           CHAR        12   T       micrograms/L
   
@@ -57012,6 +57790,7 @@ SP ncdump -h a.nc >> all_ncdump.out
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_convert_missing_type
 ! err611_convert_missing_type.jnl
 ! Fix for bug 1620 message about converting data type of
@@ -57034,6 +57813,7 @@ SAVE/CLOBBER/FILE=lonlat.nc lat, lon
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_shade_fill_levs
 ! err611_shade_fill_levs.jnl
 ! 2/27/2009
@@ -57057,6 +57837,7 @@ LEV_DEL = "0.02"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_set_uvar_outtyp
 ! err611_set_uvar_outtyp.jnl
 ! fix for bug 1646: set outtype for user variables.
@@ -57079,6 +57860,7 @@ SP ncdump a.nc >> all_ncdump.out
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_save_from_desc
 ! err611_save_from_desc.jnl
 !
@@ -57090,6 +57872,7 @@ save/clobber/file=a.nc/i=100 sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_irregular_axis
  ! err611_irregular_axis.jnl
  
@@ -57116,12 +57899,11 @@ sh grid cc
  normal    Y
  normal    Z
  TAX3      TIME               142 i   30-DEC-2007 00:00    30-DEC-2007 00:02   full
- normal    E
- normal    F
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_ef_string_result
 ! err611_ef_string_result.jnl
 ! testing the fix for bug 1621
@@ -57207,6 +57989,7 @@ list xt
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_contour_subspan_reps
 ! err61_contour_subspan_reps.jnl
 ! Bug 1659.
@@ -57244,8 +58027,10 @@ cont/ov/x=-360:360 b
  
  
 ! ******** V6.14 Additions below ***********
-GO bn_reset
+GO bn_reset bn_mode_nodata_lab
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_mode_nodata_lab
 GO bn_mode_nodata_lab
 ! bn_mode_nodata_lab
 ! turns off the No Valid Data label on plots
@@ -57276,8 +58061,10 @@ contour/fill/y=40:50/x=70e:110e/L=1 vwnd
 set mode/last nodata_lab
  
  
-GO bn_reset
+GO bn_reset bn_proleptic_gregorian_calendar
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_proleptic_gregorian_calendar
 GO bn_proleptic_gregorian_calendar
 ! proleptic_gregorian_calendar.jnl
 ! Allow PROLEPTIC_GREGORIAN as a calendar attribute
@@ -57287,8 +58074,8 @@ set data proleptic_gregorian.nc
 show data
      currently SET data sets:
     1> ./proleptic_gregorian.nc  (default)
- name     title                             I         J         K         L         M         N
- MY_DATA  SIN(L[GT=TDAYS])                 ...       ...       ...       1:32      ...       ...
+ name     title                             I         J         K         L
+ MY_DATA  SIN(L[GT=TDAYS])                 ...       ...       ...       1:32
  
 show axis tdays
  name       axis              # pts   start                end
@@ -57297,8 +58084,10 @@ T0 = 15-JAN-1901
 CALENDAR = ALL_LEAP
    Axis span (to cell edges) = 733
  
-GO bn_reset
+GO bn_reset bn_string_ngd_nbd
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_string_ngd_nbd
 GO bn_string_ngd_nbd
 ! @NGD and @NBD for strings
 ! Bad data is taken to be the null string
@@ -57616,8 +58405,10 @@ list av[i=@ngd,j=@ngd,k=@ngd,L=@ngd]
              T        : 0.5 to 2.5 (XYZT # valid)
           16.00000
  
-GO bn_reset
+GO bn_reset bn_cat_string
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cat_string
 GO bn_cat_string
 ! bn_cat_string.jnl
 ! Test concatenation functions for string variables
@@ -57685,8 +58476,10 @@ list tcat(a,b)
  5   / 5:"V"
  6   / 6:"W"
  
-GO bn_reset
+GO bn_reset bn_sort_strings
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_sort_strings
 GO bn_sort_strings
 ! bn_sort_strings.jnl
 ! 11/08 acm
@@ -57864,8 +58657,10 @@ list indx_bl, samplel(bl,indx_bl)
 7   / 7:      .... ""   
  
  
-GO bn_reset
+GO bn_reset bn_samplexyt
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_samplexyt
 GO bn_samplexyt
 ! bn_samplexyt.jnl
 ! 1/2009
@@ -57937,8 +58732,10 @@ plot/vs/color=red/over tpts, sampl_pts
  
 set mode calendar
  
-GO bn_reset
+GO bn_reset bn_last_go_file.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_last_go_file.jnl
 GO bn_last_go_file.jnl
 ! bn_last_go_file.jnl
 ! test the automatically-defined symbol LAST_GO_FILE
@@ -57947,8 +58744,10 @@ show sym last_go_file
 LAST_GO_FILE = "./bn_last_go_file.jnl"
  
  
-GO bn_reset
+GO bn_reset bn_cancel_upcase_uservar.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cancel_upcase_uservar.jnl
 GO bn_cancel_upcase_uservar.jnl
 ! bn_cancel_upcase_uservar.jnl
 !
@@ -57982,8 +58781,10 @@ SP ncdump -h a.nc >> all_ncdump.out
  
 SET MODE/LAST upcase_output
  
-GO bn_reset
+GO bn_reset bn_cdf_keepax.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cdf_keepax.jnl
 GO bn_cdf_keepax.jnl
 ! bn320_cdf
 ! benchmark to test netCDF input and output
@@ -58028,8 +58829,8 @@ set data/format=cdf test0a, test0b, test0c, test0d, test0e, test0f, test0g, test
 show data 1
      currently SET data sets:
     1> ./test0a.cdf
- name     title                             I         J         K         L         M         N
- L_       L                                ...       ...       ...       1:500     ...       ...
+ name     title                             I         J         K         L
+ L_       L                                ...       ...       ...       1:500
        (axis ABSTRACT)
  
 show data/br
@@ -58184,78 +58985,78 @@ show data/full
      currently SET data sets:
     1> ./test_abs.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       I                                1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       I                                1:10      ...       ...       ...
                on grid GEU1 with -1.E+34 for missing data
              X=0.5:10.5  
- J1       J                                ...       1:20      ...       ...       ...       ...
+ J1       J                                ...       1:20      ...       ...
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- K1       K                                ...       ...       1:100     ...       ...       ...
+ K1       K                                ...       ...       1:100     ...
                on grid GEU3 with -1.E+34 for missing data
              Z=0.5:100.5  
- L1       L[G=GCENTURY]                    ...       ...       ...       1:12      ...       ...
+ L1       L[G=GCENTURY]                    ...       ...       ...       1:12
                on grid GEU4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:10      ...       ...
+ L2       L                                ...       ...       ...       1:10
                on grid GEU5 with -1.E+34 for missing data
              
- IJ       I+J                              1:10      1:20      ...       ...       ...       ...
+ IJ       I+J                              1:10      1:20      ...       ...
                on grid GEU6 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IK       I+K                              1:10      ...       1:100     ...       ...       ...
+ IK       I+K                              1:10      ...       1:100     ...
                on grid GEU7 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IL       I+L1                             1:10      ...       ...       1:12      ...       ...
+ IL       I+L1                             1:10      ...       ...       1:12
                on grid GEU8 with -1.E+34 for missing data
              X=0.5:10.5  
- JK       J+K                              ...       1:20      1:100     ...       ...       ...
+ JK       J+K                              ...       1:20      1:100     ...
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJK      I+J+K                            1:10      1:20      1:100     ...       ...       ...
+ IJK      I+J+K                            1:10      1:20      1:100     ...
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IKL      I+K+L1                           1:10      ...       1:100     1:12      ...       ...
+ IKL      I+K+L1                           1:10      ...       1:100     1:12
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJL      I+J+L1                           1:10      1:20      ...       1:12      ...       ...
+ IJL      I+J+L1                           1:10      1:20      ...       1:12
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- JKL      J+K+L1                           ...       1:20      1:100     1:12      ...       ...
+ JKL      J+K+L1                           ...       1:20      1:100     1:12
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJKL     I+J+K+L1                         1:10      1:20      1:100     1:12      ...       ...
+ IJKL     I+J+K+L1                         1:10      1:20      1:100     1:12
                on grid GEU14 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IJK2     I+J+K                            ...       1:20      1:100     ...       ...       ...
+ IJK2     I+J+K                            ...       1:20      1:100     ...
        (X=0.5:10.5 at AVE)
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IKL2     I+K+L1                           ...       ...       1:100     1:12      ...       ...
+ IKL2     I+K+L1                           ...       ...       1:100     1:12
        (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
                on grid GEU15 with -1.E+34 for missing data
              Z=0.5:100.5  
- IJL2     I+J+L1                           ...       ...       ...       1:12      ...       ...
+ IJL2     I+J+L1                           ...       ...       ...       1:12
        (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
                on grid GEU4 with -1.E+34 for missing data
              
- JKL2     J+K+L1                           ...       1:20      ...       ...       ...       ...
+ JKL2     J+K+L1                           ...       1:20      ...       ...
        (Z=0.5:100.5 at AV4, T=JAN-1902:JAN-1902 at AV4)
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:12      ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:12
        (X=0.5:10.5)
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:12      ...       ...
+ IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:12
        (Y=0.5:20.5)
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:12      ...       ...
+ IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:12
        (Z=0.5:100.5)
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...
        (T=JAN-1902:JAN-1902)
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
@@ -58270,8 +59071,6 @@ show grid ijkl
  YAX1      Y                   20 r   1                    20                  full
  ZAX1      Z                  100 r   1                    100                 full
  TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00   full
- normal    E
- normal    F
 cancel data test_abs
  
 ! make the time axis irregular by leaving out l=13
@@ -58281,78 +59080,78 @@ show data/full
      currently SET data sets:
     1> ./test_abs.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       I                                1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       I                                1:10      ...       ...       ...
                on grid GEU1 with -1.E+34 for missing data
              X=0.5:10.5  
- J1       J                                ...       1:20      ...       ...       ...       ...
+ J1       J                                ...       1:20      ...       ...
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- K1       K                                ...       ...       1:100     ...       ...       ...
+ K1       K                                ...       ...       1:100     ...
                on grid GEU3 with -1.E+34 for missing data
              Z=0.5:100.5  
- L1       L[G=GCENTURY]                    ...       ...       ...       1:15      ...       ...
+ L1       L[G=GCENTURY]                    ...       ...       ...       1:15
                on grid GEU4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:10      ...       ...
+ L2       L                                ...       ...       ...       1:10
                on grid GEU5 with -1.E+34 for missing data
              
- IJ       I+J                              1:10      1:20      ...       ...       ...       ...
+ IJ       I+J                              1:10      1:20      ...       ...
                on grid GEU6 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IK       I+K                              1:10      ...       1:100     ...       ...       ...
+ IK       I+K                              1:10      ...       1:100     ...
                on grid GEU7 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IL       I+L1                             1:10      ...       ...       1:15      ...       ...
+ IL       I+L1                             1:10      ...       ...       1:15
                on grid GEU8 with -1.E+34 for missing data
              X=0.5:10.5  
- JK       J+K                              ...       1:20      1:100     ...       ...       ...
+ JK       J+K                              ...       1:20      1:100     ...
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJK      I+J+K                            1:10      1:20      1:100     ...       ...       ...
+ IJK      I+J+K                            1:10      1:20      1:100     ...
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IKL      I+K+L1                           1:10      ...       1:100     1:15      ...       ...
+ IKL      I+K+L1                           1:10      ...       1:100     1:15
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJL      I+J+L1                           1:10      1:20      ...       1:15      ...       ...
+ IJL      I+J+L1                           1:10      1:20      ...       1:15
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- JKL      J+K+L1                           ...       1:20      1:100     1:15      ...       ...
+ JKL      J+K+L1                           ...       1:20      1:100     1:15
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJKL     I+J+K+L1                         1:10      1:20      1:100     1:15      ...       ...
+ IJKL     I+J+K+L1                         1:10      1:20      1:100     1:15
                on grid GEU14 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IJK2     I+J+K                            ...       1:20      1:100     ...       ...       ...
+ IJK2     I+J+K                            ...       1:20      1:100     ...
        (X=0.5:10.5 at AVE)
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IKL2     I+K+L1                           ...       ...       1:100     1:15      ...       ...
+ IKL2     I+K+L1                           ...       ...       1:100     1:15
        (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
                on grid GEU15 with -1.E+34 for missing data
              Z=0.5:100.5  
- IJL2     I+J+L1                           ...       ...       ...       1:15      ...       ...
+ IJL2     I+J+L1                           ...       ...       ...       1:15
        (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
                on grid GEU4 with -1.E+34 for missing data
              
- JKL2     J+K+L1                           ...       1:20      ...       ...       ...       ...
+ JKL2     J+K+L1                           ...       1:20      ...       ...
        (Z=0.5:100.5 at AV4, T=JAN-1902:JAN-1902 at AV4)
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:15      ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:15
        (X=0.5:10.5)
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:15      ...       ...
+ IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:15
        (Y=0.5:20.5)
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:15      ...       ...
+ IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:15
        (Z=0.5:100.5)
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...
        (T=JAN-1902:JAN-1902)
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
@@ -58366,8 +59165,6 @@ show grid ijkl
  YAX1      Y                   20 r   1                    20                  full
  ZAX1      Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
  
  
 ! list long time series using a rigid (non-record axis) time axis --> FAST
@@ -58400,40 +59197,30 @@ show grid j1 jkl jkl2 iavejkl ijkl
  YAX1      Y                   20 r   1                    20                  full
  normal    Z
  normal    T
- normal    E
- normal    F
     GRID GEU13
  name       axis              # pts   start                end                 subset
  normal    X
  YAX1      Y                   20 r   1                    20                  full
  ZAX1      Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
     GRID GEU2
  name       axis              # pts   start                end                 subset
  normal    X
  YAX1      Y                   20 r   1                    20                  full
  normal    Z
  normal    T
- normal    E
- normal    F
     GRID GEU13
  name       axis              # pts   start                end                 subset
  normal    X
  YAX1      Y                   20 r   1                    20                  full
  ZAX1      Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
     GRID GEU14
  name       axis              # pts   start                end                 subset
  XAX1      X                   10 r   1                    10                  full
  YAX1      Y                   20 r   1                    20                  full
  ZAX1      Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
 cancel data test_abs
  
 ! test TMAP data io
@@ -58517,29 +59304,29 @@ show data/full
      currently SET data sets:
     1> ./gtbc011.cdf
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.84S:51.43N  
  
@@ -58547,67 +59334,67 @@ show data/full
  
     2> ./test_fil0.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...
                on grid PS3DT1_NYZT with -1.E+34 for missing data
              X=130E:140E  
- J1       Y[G=TEMP,J=5:10]                 ...       5:10      ...       ...       ...       ...
+ J1       Y[G=TEMP,J=5:10]                 ...       5:10      ...       ...
                on grid PS3DT1_NXZT with -1.E+34 for missing data
              Y=21.11S:12.52S  
- K1       Z[G=U,K=5:15]                    ...       ...       5:15      ...       ...       ...
+ K1       Z[G=U,K=5:15]                    ...       ...       5:15      ...
                on grid PS3DU1_NXYT with -1.E+34 for missing data
              Z=40:190  
- L1       L[G=U,L=1:3]                     ...       ...       ...       1:3       ...       ...
+ L1       L[G=U,L=1:3]                     ...       ...       ...       1:3
                on grid GRH1 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:2       ...       ...
+ L2       L                                ...       ...       ...       1:2
                on grid GRH2 with -1.E+34 for missing data
              
- IJ       TAUX[L=@AVE]                    69:71      1:100     ...       ...       ...       ...
+ IJ       TAUX[L=@AVE]                    69:71      1:100     ...       ...
        (T=MAR-1983:MAR-1983)
                on grid PS2DU1_NT with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- IK       I1+K1                            1:10      ...       5:15      ...       ...       ...
-               on grid G093_NYT with -1.E+34 for missing data
+ IK       I1+K1                            1:10      ...       5:15      ...
+               on grid G095_NYT with -1.E+34 for missing data
              X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
-               on grid G093_NYZ with -1.E+34 for missing data
+ IL       I1+L1                            1:10      ...       ...       1:3
+               on grid G095_NYZ with -1.E+34 for missing data
              X=130E:140E  
- JK       J1+K1                            ...       5:10      5:15      ...       ...       ...
-               on grid G104_NXT with -1.E+34 for missing data
+ JK       J1+K1                            ...       5:10      5:15      ...
+               on grid G106_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      ...       ...       ...
+ IJK      TEMP[L=@AVE]                    70:72      1:100     1:27      ...
        (T=MAR-1983:MAR-1983)
                on grid PS3DT1_NT with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- IKL      TEMP[J=@AVE]                    70:72      ...       1:27      1:3       ...       ...
+ IKL      TEMP[J=@AVE]                    70:72      ...       1:27      1:3
        (Y=30S:50N)
                on grid PS3DT1_NY with -1.E+34 for missing data
              X=161W:158W  Z=0:4149  
- IJL      TEMP[K=@AVE]                    70:72      1:100     ...       1:3       ...       ...
+ IJL      TEMP[K=@AVE]                    70:72      1:100     ...       1:3
        (Z=0:4149)
                on grid PS3DT1_NZ with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  
- JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130E:70W)
                on grid GRH3 with -1.E+34 for missing data
              Y=30S:50N  Z=0:4149  
- IJKL     U                               69:72      1:100     1:27      1:3       ...       ...
+ IJKL     U                               69:72      1:100     1:27      1:3
                on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130.5E:69.5W)
                on grid GRH4 with -1.E+34 for missing data
              Y=28.84S:51.43N  Z=0:4149  
- IJAVEKL  IJKL[J=@AVE]                    69:72      ...       1:27      1:3       ...       ...
+ IJAVEKL  IJKL[J=@AVE]                    69:72      ...       1:27      1:3
        (Y=28.84S:51.43N)
                on grid PS3DU1_NY with -1.E+34 for missing data
              X=161.5W:157.5W  Z=0:4149  
- IJKAVEL  IJKL[K=@AVE]                    69:72      1:100     ...       1:3       ...       ...
+ IJKAVEL  IJKL[K=@AVE]                    69:72      1:100     ...       1:3
        (Z=0:4149)
                on grid PS3DU1_NZ with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  
- IJKLAVE  IJKL[L=@AVE]                    69:72      1:100     1:27      ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                    69:72      1:100     1:27      ...
        (T=MAR-1983:MAR-1983)
                on grid PS3DU1_NT with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
@@ -58622,8 +59409,6 @@ show grid ijkl
  PSYU      LATITUDE           100 i   27.672S              50N                 full
  PSZT1     DEPTH (m)           27 i-  5                    3824                full
  TIME12    TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
- normal    E
- normal    F
 cancel data test_fil0
 ! 5/99 moved old bn230_cdf.sub3 to bn_cdf_keepax.sub4 to stay inline w/ old benchmarks *kob*
 GO bn_cdf_keepax.sub4
@@ -58711,29 +59496,29 @@ show data/full
      currently SET data sets:
     1> ./gtbc011.cdf
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.84S:51.43N  
  
@@ -58741,33 +59526,33 @@ show data/full
  
     2> ./test_fil.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...
                on grid GLZ1 with -1.E+34 for missing data
              X=130E:140E  
- J1       Y[G=TEMP,J=5:10]                 ...       1:6       ...       ...       ...       ...
+ J1       Y[G=TEMP,J=5:10]                 ...       1:6       ...       ...
                on grid GLZ2 with -1.E+34 for missing data
              Y=21.11S:12.52S  
- K1       Z[G=U,K=5:15]                    ...       ...       1:11      ...       ...       ...
+ K1       Z[G=U,K=5:15]                    ...       ...       1:11      ...
                on grid GLZ3 with -1.E+34 for missing data
              Z=40:190  
- L1       L[G=U,L=1:3]                     ...       ...       ...       1:3       ...       ...
+ L1       L[G=U,L=1:3]                     ...       ...       ...       1:3
                on grid GLZ4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:2       ...       ...
+ L2       L                                ...       ...       ...       1:2
                on grid GLZ5 with -1.E+34 for missing data
              
- IJ       TAUX[L=@AVE]                     1:3       1:100     ...       ...       ...       ...
+ IJ       TAUX[L=@AVE]                     1:3       1:100     ...       ...
        (T=MAR-1983:MAR-1983)
                on grid GLZ6 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- IK       I1+K1                            1:10      ...       1:11      ...       ...       ...
+ IK       I1+K1                            1:10      ...       1:11      ...
                on grid GLZ7 with -1.E+34 for missing data
              X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
+ IL       I1+L1                            1:10      ...       ...       1:3
                on grid GLZ8 with -1.E+34 for missing data
              X=130E:140E  
- JK       J1+K1                            ...       1:6       1:11      ...       ...       ...
+ JK       J1+K1                            ...       1:6       1:11      ...
                on grid GLZ9 with -1.E+34 for missing data
              Y=21.11S:12.52S  Z=40:190  
  
@@ -58794,15 +59579,15 @@ show data/var
      currently SET data sets:
     1> ./reverse_axes.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...
                on grid GAF1 with -1.E+34 for missing data
              X=129.5E:179.5W  Y=10.5S:10.5N  
- FCN_REV  COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...       ...       ...
+ FCN_REV  COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...
                on grid GAF2 with -1.E+34 for missing data
              X=129.5E:179.5W  Y=10.5S:10.5N  
  FCN_REV_SUB
-          COS(X/10)*SIN(Y/2)               1:51     10:19      ...       ...       ...       ...
+          COS(X/10)*SIN(Y/2)               1:51     10:19      ...       ...
                on grid GREV with -1.E+34 for missing data
              X=129.5E:179.5W  Y=1.5S:8.5N  
  
@@ -58853,8 +59638,10 @@ list/x=180 fcn_rev_sub
  0    / 11:  0.0000000
  1S   / 10:  0.3165727
  
-GO bn_reset
+GO bn_reset bn_keep_axisnames.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_keep_axisnames.jnl
 GO bn_keep_axisnames.jnl
 ! bn_keep_axisnames.jnl
 ! 2/2009 ACM
@@ -58883,8 +59670,10 @@ sp echo "bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES" >> all_ncdump.out
 sp ncdump -h a.nc >> all_ncdump.out
  
  
-GO bn_reset
+GO bn_reset bn_key_label_minmax.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_key_label_minmax.jnl
 GO bn_key_label_minmax.jnl
 ! bn_key_label_minmax.jnl
  
@@ -58967,14 +59756,17 @@ shade/lev=35 sst[L=1]
  
  
 ! ******** V6.2 Additions below ***********
-GO bn_reset
+GO bn_reset bn62_bug_fixes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn62_bug_fixes.jnl
 GO bn62_bug_fixes.jnl
 ! bn62_bug_fixes.jnl
 ! Fixes that go into v6.2 release
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err618_julday.jnl
 ! err618_julday.jnl
 ! Bug 1639
@@ -59024,6 +59816,7 @@ list/t=27-feb-1999:02-mar-1999 rjulianday
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_polygons.jnl
 ! err611_polygons.jnl
 ! bug 1661
@@ -59041,8 +59834,10 @@ plot/title="vertical profile" yp4
 GO error_bars polygon/color=red/thickness=2/title="variability" yp4 errors
  
  
-GO bn_reset
+GO bn_reset bn_convolve.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_convolve.jnl
 GO bn_convolve.jnl
 ! bn_convolve.jnl
 ! test convolutions, including with missing-data.
@@ -59172,8 +59967,10 @@ list a, a[i=@spz], convolvei(a,{.25,.5,.25})
  
  
  
-GO bn_reset
+GO bn_reset bn_tax_tstep.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_tax_tstep.jnl
 GO bn_tax_tstep.jnl
 ! bn_tax_tstep.jnl
 !
@@ -59287,8 +60084,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn_grads_z.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_grads_z.jnl
 GO bn_grads_z.jnl
 ! bn_grads_z.jnl
 ! acm 3/31/09
@@ -59310,13 +60109,13 @@ USE grads_bug_file.nc
 SHOW DATA
      currently SET data sets:
     1> ./grads_bug_file.nc  (default)
- name     title                             I         J         K         L         M         N
- AM       Z[GZ=CAXIS] + Y[GY=BAXIS] + X[G  1:10      1:5       1:5       ...       ...       ...
- AR       Z[GZ=DAXIS]+ Y[GY=BAXIS] + X[GX  1:10      1:5       1:6       ...       ...       ...
- A1                                        ...       ...       1:5       ...       ...       ...
- A2                                        ...       ...       1:5       ...       ...       ...
- A3                                        ...       ...       1:5       ...       ...       ...
- A4                                        ...       ...       1:5       ...       ...       ...
+ name     title                             I         J         K         L
+ AM       Z[GZ=CAXIS] + Y[GY=BAXIS] + X[G  1:10      1:5       1:5       ...
+ AR       Z[GZ=DAXIS]+ Y[GY=BAXIS] + X[GX  1:10      1:5       1:6       ...
+ A1                                        ...       ...       1:5       ...
+ A2                                        ...       ...       1:5       ...
+ A3                                        ...       ...       1:5       ...
+ A4                                        ...       ...       1:5       ...
  
  
 ! The z axis of AM has no useful clues about its direction.
@@ -59328,8 +60127,6 @@ SH GRID am
  BAXIS     Y (METERS)           5 r   1                    9                   full
  CAXIS     Z (METERS)           5 r   2                    10                  full
  normal    T
- normal    E
- normal    F
  
 ! This axis has long_name = "depth" so it is (now) reversed.
 ! Previously it was not.
@@ -59340,8 +60137,6 @@ SH GRID ar
  BAXIS     Y (METERS)           5 r   1                    9                   full
  DAXIS     DEPTH (m)            6 i-  0                    8                   full
  normal    T
- normal    E
- normal    F
  
 ! Can redefine the axis for variable AM to make it a z depth axis
  
@@ -59356,15 +60151,17 @@ SH GRID am
  BAXIS     Y (METERS)           5 r   1                    9                   full
  CAXIS     DEPTH (m)            5 r-  2                    10                  full
  normal    T
- normal    E
- normal    F
  
+GO bn_reset bn_clock_syms
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_clock_syms
 GO bn_clock_syms
 SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "75.7495"
-CLOCK_SECS = "111.886"
-CURRENT_DATE = "11-May-16"
-CURRENT_TIME = "16:12:51"
+DELTA_CPU = "88.9245"
+CLOCK_SECS = "128.14"
+CURRENT_DATE = "11-Apr-17"
+CURRENT_TIME = "16:48:51"
 ! test special symbols DELTA_CPU, CLOCK_SECS
 !
 ! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -59373,8 +60170,8 @@ CURRENT_TIME = "16:12:51"
 use gt4d011
 shade/k=1 temp[L=@ave]
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.058991"
-CLOCK_SECS = "112.012"
+DELTA_CPU = "0.05899"
+CLOCK_SECS = "128.308"
  
 repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=1
@@ -59388,60 +60185,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.297955
+ !-> DEFINE VARIABLE ten_plots = 0.280958
 sh sym DELTA_CPU, CLOCK_SECS
 DELTA_CPU = "0.001"
-CLOCK_SECS = "113.278"
+CLOCK_SECS = "129.611"
  
 let  sumclock = 0
 let  sumcpu = 0
 sh sym CLOCK_SECS
-CLOCK_SECS = "113.279"
+CLOCK_SECS = "129.612"
 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.032994
- !-> DEFINE VARIABLE sumcpu =0.032994
+ !-> DEFINE VARIABLE dt = 0.028995
+ !-> DEFINE VARIABLE sumcpu =0.028995
 !-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.031996
- !-> DEFINE VARIABLE sumcpu =0.06499
+ !-> DEFINE VARIABLE dt = 0.031995
+ !-> DEFINE VARIABLE sumcpu =0.06099
 !-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.032994
- !-> DEFINE VARIABLE sumcpu =0.097984
+ !-> DEFINE VARIABLE dt = 0.029996
+ !-> DEFINE VARIABLE sumcpu =0.090986
 !-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.034995
- !-> DEFINE VARIABLE sumcpu =0.132979
+ !-> DEFINE VARIABLE dt = 0.033994
+ !-> DEFINE VARIABLE sumcpu =0.12498
 !-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.033995
- !-> DEFINE VARIABLE sumcpu =0.166974
+ !-> DEFINE VARIABLE dt = 0.030996
+ !-> DEFINE VARIABLE sumcpu =0.155976
 !-> REPEAT: K=6
  !-> DEFINE VARIABLE dt = 0.032995
- !-> DEFINE VARIABLE sumcpu =0.199969
+ !-> DEFINE VARIABLE sumcpu =0.188971
 !-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.035994
- !-> DEFINE VARIABLE sumcpu =0.235963
+ !-> DEFINE VARIABLE dt = 0.028995
+ !-> DEFINE VARIABLE sumcpu =0.217966
 !-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.033995
- !-> DEFINE VARIABLE sumcpu =0.269958
+ !-> DEFINE VARIABLE dt = 0.038995
+ !-> DEFINE VARIABLE sumcpu =0.256961
 !-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.033995
- !-> DEFINE VARIABLE sumcpu =0.303953
+ !-> DEFINE VARIABLE dt = 0.030995
+ !-> DEFINE VARIABLE sumcpu =0.287956
 !-> REPEAT: K=10
  !-> DEFINE VARIABLE dt = 0.033994
- !-> DEFINE VARIABLE sumcpu =0.337947
+ !-> DEFINE VARIABLE sumcpu =0.32195
  
 say `sumcpu`
- !-> MESSAGE/CONTINUE 0.337947
-0.337947
+ !-> MESSAGE/CONTINUE 0.32195
+0.32195
 sh sym CLOCK_SECS
-CLOCK_SECS = "115.472"
+CLOCK_SECS = "131.798"
  
 SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "11-May-16"
-SESSION_TIME = "16:10"
-CURRENT_DATE = "11-May-16"
-CURRENT_TIME = "16:12:55"
+SESSION_DATE = "11-Apr-17"
+SESSION_TIME = "16:46"
+CURRENT_DATE = "11-Apr-17"
+CURRENT_TIME = "16:48:54"
  
  
 ! ******** V6.3 Additions below ***********
@@ -59449,14 +60246,17 @@ CURRENT_TIME = "16:12:55"
 ! window, not only in window 1, is implemented in v6.3. Not
 ! tested in the benchmarks.
  
-GO bn_reset
+GO bn_reset bn63_bug_fixes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn63_bug_fixes.jnl
 GO bn63_bug_fixes.jnl
 ! bn63_bug_fixes.jnl
 ! Fixes that go into v6.3 release
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_string_write_nc
 ! err62_string_write_nc.jnl
 ! Bug 1664: string variable written as a float.
@@ -59535,6 +60335,7 @@ list cruise_id_xz
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_levset
 ! err62_levset.jnl
 ! fix for bug 1672, top color level chopped off in some circumstances
@@ -59546,6 +60347,7 @@ shade/x=350:390/y=1:10/lev=(376.6,379.0,0.8)(379.0,385.4,0.2) var
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_thick_tic_time_axis
 ! err62_thick_tic_time_axis.jnl
 ! Fixing bug 1668
@@ -59599,6 +60401,7 @@ set win/new
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_reset_after_inf
 ! err62_reset_after_inf.jnl
 ! Bug 1292
@@ -59618,6 +60421,7 @@ cancel mode meta
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_reversed_up
 ! err62_reversed_up.jnl
 !
@@ -59664,6 +60468,7 @@ list z[gz=temp], zboxlo[gz=temp], zboxhi[gz=temp]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_samplexy
 ! err62_samplexy
 ! bug 1677
@@ -59698,6 +60503,7 @@ list sr
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_one_point_bounds
 ! err62_one_point_bounds.jnl
 ! Bug 1680
@@ -59730,6 +60536,7 @@ I / *:     5.000000  4.890000  5.110000
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_cos_lat_uncentered
 !err62_cos_lat_uncentered.jnl
 ! See this thread, here is the esample, with his test.nc renamed to uncentered.nc
@@ -59878,6 +60685,7 @@ list cell18[x=@din,y=@din]/total_area
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_if_inside_repeat
 ! err62_if_inside_repeat.jnl
 ! Bug 1681. Parsing error when, inside the REPEAT, we have
@@ -59944,6 +60752,7 @@ done
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_title_curvi_plot
 ! err62_title_curvi_plot.jnl
 ! bug 1669; when the variable and its coordinate variables
@@ -59981,6 +60790,7 @@ LABTIT = "SEA SURFACE TEMPERATURE (Deg C)"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err62_save_missingcoordvar
 ! err62_save_missingcoordvar.jnl
 ! see bug 1686
@@ -59997,6 +60807,7 @@ save/clobber/file=a.nc sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_contourbug
 ! err62_contourbug.jnl
 ! Bug 1688
@@ -60019,6 +60830,7 @@ fill/hlimits=-100:400:50 0.0000001*(xb2+zb)^3,xb2,zb
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_append_irreg_to_reg
 ! err62_append_irreg_to_reg.jnl
 ! bug 1692
@@ -60051,9 +60863,11 @@ SET MODE/LAST IGNORE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_axis_stride_off
 ! err62_axis_stride_off.jnl
 ! fixing bug 1689: offset shifted by 1 so /OFFSET=0 >> start index = 1
+! 1/2017 *acm* changes in output due to backing off auto-detection of truemonth axes, tkt 2497
  
 USE truemonth.nc
  
@@ -60084,7 +60898,7 @@ LIST var
  16-JAN-1969 / 20:  0.6617913
  
 CAN AXIS/STRIDE `var,return=taxis`
- !-> CAN AXIS/STRIDE (AX144)
+ !-> CAN AXIS/STRIDE (AX143)
 SET AXIS/STRIDE=12/OFFSET=11 truemonth ! every December
 LIST var
              VARIABLE : COS(T[GT=TRUEMONTH]/100)
@@ -60113,7 +60927,7 @@ LIST var
 SET MODE IGNORE_ERRROR
 ! Previously didnt check for negative offset value
 CAN AXIS/STRIDE `var,return=taxis`
- !-> CAN AXIS/STRIDE (AX135)
+ !-> CAN AXIS/STRIDE (AX137)
 SET AXIS/STRIDE=12/OFFSET=-1 truemonth
  
 ! Previously didnt give err msg; just ignored non-positive stride value
@@ -60127,6 +60941,7 @@ SET MODE/LAST IGNORE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_compound_string_conditional
 ! err62_compound_string_conditional
 ! Bug 1380
@@ -60157,8 +60972,10 @@ LIST 1 EQ 2 OR "A" EQ "B"    ! should be 0
           0.0000000
  
  
-GO bn_reset
+GO bn_reset bn_axis_reversed_syms
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_reversed_syms
 GO bn_axis_reversed_syms
 ! bn_axis_reversed_syms.jnl
 ! XAXIS_REVERSED and YAXIS_REVERSED are
@@ -60244,8 +61061,10 @@ XAXIS_REVERSED = "0"
 YAXIS_REVERSED = "1"
  
  
-GO bn_reset
+GO bn_reset bn_isdepth
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_isdepth
 GO bn_isdepth
 ! Tests of `var,RETURN=ISDEPTH`
  
@@ -60280,8 +61099,10 @@ say `temp,return=isdepth`
 0
  
  
-GO bn_reset
+GO bn_reset bn_var_hist_levels.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_var_hist_levels.jnl
 GO bn_var_hist_levels.jnl
 ! bn_var_hist_levels.jnl
 ! Syntax for variance-based or histogram-based levels
@@ -60296,7 +61117,7 @@ shade/line/lev=50v/title="/LEV=50v" temp[K=1]
 sh sym lev*
 LEV_TEXT = "50V"
 LEV_MIN = "-2"
-LEV_MAX = "30.74"
+LEV_MAX = "open-ended"
 LEV_NUM = "56"
 LEV_DEL = "irregular"
 LEV_OPNLEVS = "(-2,3.05,0.505)(3.5,25.5,0.5)(25.5,25.5,0.505)(inf)"
@@ -60343,8 +61164,10 @@ shade/line/key/lev=50h/title="/LEV=50h" cvar[K=1]
  
 ! ******** V6.4 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn64_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn64_bug_fixes
 GO bn64_bug_fixes
 ! bn64_bug_fixes.jnl
 ! Fixes that go into v6.4 release
@@ -60354,6 +61177,7 @@ GO bn64_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err63_days1900toydmhms
 ! err63_days1900toydmhms.jnl
 !
@@ -60378,6 +61202,7 @@ list/k=2:3 tpts
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err63_log_vaxis
 ! err63_log_vaxis.jnl
 ! fix for bug 1708
@@ -60396,6 +61221,7 @@ plot/vlog z[gz=vert_axis_dn]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err63_delim_E.jnl
 ! err63_delim_E.jnl
 ! bug 1700
@@ -60433,8 +61259,10 @@ list v1
              X        : 1
         "ZAIRA"
  
-GO bn_reset
+GO bn_reset bn_long_grid_names
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_long_grid_names
 GO bn_long_grid_names
 ! bn_long_grid_names.jnl
 ! test longer grid names (16 --> 64 chars)
@@ -60449,11 +61277,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:3       1:20480   ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:3       1:20480   ...       ...
                on grid ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 with -1.E+34 for missing data
              X=0.5:3.5  Y=0.5:20481  
- X2       X2                               1:3       1:20480   ...       ...       ...       ...
+ X2       X2                               1:3       1:20480   ...       ...
                on grid ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 with -1.E+34 for missing data
              X=0.5:3.5  Y=0.5:20481  
  
@@ -60474,9 +61302,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:3       1:5       ...       ...       ...       ...
- X2       X2                               1:3       1:5       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:3       1:5       ...       ...
+ X2       X2                               1:3       1:5       ...       ...
  
 CAN DATA/ALL
  
@@ -60643,6 +61471,7 @@ stat v1234[g=even]-veven, v1234
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! regrid_transforms
 use gtsa056_1
 use gtsa056_2
@@ -60651,15 +61480,15 @@ set mode diag
 define axis/t=15-jan-1982:15-mar-1984:120/unit=hour tax5day
 define axis/x=120e:60w:10/unit=degrees xax10
 define grid/like=u/t=tax5day g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day
- getgrid EX#1     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 PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
+ getgrid EX#1     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 PS3DU1          PSXU      PSYU      PSZT2     TIME14
 define grid/like=u/x=xax10/z=w/t=tax5day g5_10g00abcdefghijklmnopqrstuvwxyz1234567890
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- getgrid EX#1     C:  8 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- getgrid EX#1     C:  9 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DW11         PSXT      PSYT1     PSZW      TIME14    NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ getgrid EX#1     C:  8 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ getgrid EX#1     C:  9 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DW11         PSXT      PSYT1     PSZW      TIME14
  
 set reg/x=130w:125w/y=0:1.5/z=0:15/t=21-JAN-1982:24-jan-1982
 !set reg/i=101:105/j=41:42/k=1:2/l=3:4
@@ -60667,19 +61496,19 @@ set reg/x=130w:125w/y=0:1.5/z=0:15/t=21-JAN-1982:24-jan-1982
 use gtsa056_1    	!kob 4/99
  
 LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc  dynamic grid PS3DW11         PSXT      PSYT1     PSZW      TIME14    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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DW11         PSXT      PSYT1     PSZW      TIME14
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M: 43 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 42 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 36 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 42 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M:249 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M:248 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M:247 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M:248 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 42 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 36 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:248 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M:247 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10G00ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 on X at AAV, on Y at AAV*
              FILENAME : gtsa056_1.cdf
@@ -60691,21 +61520,21 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
  20-JAN-1982 00 / 2:  23.88290  23.97420  24.14894  24.37499  24.62556
  25-JAN-1982 00 / 3:  23.88501  23.98344  24.16565  24.39832  24.65027
 LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gx=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M: 43 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 36 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 32 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 36 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 36 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 32 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 32 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 36 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:249 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M:247 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M:245 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M:247 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:247 dset:   1 I:     95    106  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M:245 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:245 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M:247 dset:   1 I:     95    106  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at AVE, on Y at LIN, on Z at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -60718,19 +61547,19 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gx=g5_10g00abcdefghijkl
  25-JAN-1982 00 / 3:  23.87741  23.97277  24.15346  24.38574  24.63814
  
 LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- found   TEMP     M: 43 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 36 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 29 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 36 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:249 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M:247 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M:244 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M:247 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 36 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 29 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:247 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M:244 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at LIN, on Z at LIN, on T at ASN
              FILENAME : gtsa056_1.cdf
@@ -60746,219 +61575,220 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijkl
 use gtsa056_2	!kob  4/99
 set region/x=180W/y=0/z=5/t=21-JAN-1982:13-JUN-1983
 load temp[i=50:51,j=45:56,k=1:2,l=1:172]  ! preload to save time
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DT1          PSXT      PSYT1     PSZT2     TIME14    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     1   172 dset:   2
- reading TEMP     M: 29 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME14
+ eval    EX#1     C:  4 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing TEMP on T axis:        1      172 dset:   2
+ reading TEMP     M:244 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
 plot temp
- dealloc  dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME14    NORMAL    NORMAL
- 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 PS3DT1          PSXT      PSYT1     PSZT2     TIME14    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME14
+ 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 PS3DT1          PSXT      PSYT1     PSZT2     TIME14
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ found   TEMP     M:246 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
 setting up plot
-PPL plot 753  complete
+PPL plot 760  complete
 plot/over temp[g=u]
- dealloc  dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME14    NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ dealloc  dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME14
+ 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 PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @LIN
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ found   TEMP     M:246 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
  regrid XY
- regrid  TEMP     M: 28 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ regrid  TEMP     M:243 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    168
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @LIN
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ found   TEMP     M:246 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
  regrid XY
- regrid  TEMP     M: 20 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ regrid  TEMP     M:236 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      1      2
+ doing moduloing TEMP on T axis:        1        2 dset:   2
 setting up plot
-PPL plot 754  complete
+PPL plot 761  complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ 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
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 18 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:246 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
+ regrid  TEMP     M:234 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M: 15 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 18 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:232 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:234 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
-PPL plot 755  complete
+PPL plot 762  complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890]
- dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT2     TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 15 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -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
- eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT2     TAX5DAY
+ -DELETE TEMP     M:232 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ 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
+ eval    EX#1     C:  4 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 15 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 18 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 15 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:246 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
+ regrid  TEMP     M:232 dset:   2 I:     50     51  J:   45   46  K:    1    2  L:      2    104
+ regrid  TEMP     M:234 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M:232 dset:   2 I:     50     51  J:   45   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 15 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 18 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:232 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:234 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
-PPL plot 756  complete
+PPL plot 763  complete
 plot/over temp[g=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @AAV
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ found   TEMP     M:246 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
  regrid XY
- regrid  TEMP     M: 18 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ regrid  TEMP     M:234 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    168
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @AAV
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ found   TEMP     M:246 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
  regrid XY
- regrid  TEMP     M: 13 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ regrid  TEMP     M:230 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      1      2
+ doing moduloing TEMP on T axis:        1        2 dset:   2
 setting up plot
-PPL plot 757  complete
+PPL plot 764  complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ 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
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 12 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:246 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
+ regrid  TEMP     M:229 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M: 11 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 12 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:228 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:229 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
-PPL plot 758  complete
+PPL plot 765  complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT2     TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 11 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -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
- eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT2     TAX5DAY
+ -DELETE TEMP     M:228 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ 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
+ eval    EX#1     C:  4 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M: 11 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:  9 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 23 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  9 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ strip moduloing TEMP on T axis:        2      171 dset:   2
+ reading TEMP     M:228 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
+ regrid  TEMP     M:226 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    104
+ regrid  TEMP     M:239 dset:   2 I:     45     56  J:   45   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M:226 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:  9 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 23 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:226 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:239 dset:   2 I:     45     56  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
-PPL plot 759  complete
+PPL plot 766  complete
 plot/over temp[g=u at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 12 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 23 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 26 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 23 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ found   TEMP     M:229 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:239 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    168
+ regrid  TEMP     M:241 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    168
+ -DELETE TEMP     M:239 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    168  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 11 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 27 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 22 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 27 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ found   TEMP     M:228 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      1    168
+ regrid  TEMP     M:242 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      1      2
+ regrid  TEMP     M:237 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      1      2
+ -DELETE TEMP     M:242 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      1      2  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on T axis:        1        2 dset:   2
 setting up plot
-PPL plot 760  complete
+PPL plot 767  complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ 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
+ eval    EX#1     C:  4 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M: 27 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 19 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 10 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 19 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 19 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 10 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 10 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 19 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ reading TEMP     M:242 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ regrid  TEMP     M:235 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ regrid  TEMP     M:227 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:235 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:235 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:227 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:227 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:235 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
-PPL plot 761  complete
+PPL plot 768  complete
 plot/over temp[g=u,gt=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- found   TEMP     M: 17 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ found   TEMP     M:233 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
 setting up plot
-PPL plot 762  complete
+PPL plot 769  complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ 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
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
  strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M: 12 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 19 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:229 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:235 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M: 25 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 19 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:240 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:235 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
-PPL plot 763  complete
+PPL plot 770  complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT2     TAX5DAY   NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT2     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
+ eval    EX#1     C:  4 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- found   TEMP     M: 12 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 19 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 19 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:229 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:235 dset:   2 I:     50     51  J:   45   46  K:    1    2  L:      2    104
+ regrid  TEMP     M:238 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M:235 dset:   2 I:     50     51  J:   45   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 19 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:235 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:238 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
-PPL plot 764  complete
+PPL plot 771  complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at asn]  ! invalid interpretation of data
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
  strip regrid on T: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 12 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:229 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:238 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M:  8 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:225 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:238 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
-PPL plot 765  complete
+PPL plot 772  complete
  
  
 set mode/last diag
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! regrid_to_user
  
 use coads_climatology
@@ -60992,15 +61822,13 @@ list/x=160e/y=5s temp[d=2,k=1,g=a[d=1]]
           29.51700
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G106)
-    GRID (G106)
+ Last successful data access was on grid (G104)
+    GRID (G104)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! per axis regrid
 ! 5/01 note: changed from y=0 yo y=5s to accomodate Y-truncated
@@ -61023,15 +61851,13 @@ list/x=160e/y=5s temp[d=2,k=1,gy=yax,gx=a[d=1]]
           29.51700
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G106)
-    GRID (G106)
+ Last successful data access was on grid (G104)
+    GRID (G104)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  YAX       LATITUDE            81 r   20S                  20N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! combined full grid and per-axis
 list/x=160e/y=5s temp[d=2,k=1,g=gg12345678901234567890,gx=a[d=1]]
@@ -61052,15 +61878,13 @@ list/x=160e/y=5s temp[d=2,k=1,gx=a[d=1],g=gg12345678901234567890]
           29.51700
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G106)
-    GRID (G106)
+ Last successful data access was on grid (G104)
+    GRID (G104)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  YAX       LATITUDE            81 r   20S                  20N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! pseudo-variable access
 list/i=1:4 i[g=a]		! a is previously loaded
@@ -61100,8 +61924,6 @@ show grid gg123456789012345678901
  COADSY    LATITUDE            90 r   89S                  89N
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
 let f = sst[y=20s:20n:.1,d=coads_climatology]
 DEFINE GRID/LIKE=f/x=temp[d=levitus_climatology] gg123456789012345678902
 cancel variable f
@@ -61112,8 +61934,6 @@ show grid gg123456789012345678902
  (AX009)   LATITUDE           401 r   20S                  20N
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     no implicit grids
@@ -61139,8 +61959,6 @@ show grid gg123456789012345678902
  YAXLEVITR1_90 LATITUDE        90 r   89.5S                0.5S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     no implicit grids
@@ -61161,37 +61979,26 @@ show grid
  YAXLEVITR1_90 LATITUDE        90 r   89.5S                0.5S                full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
  
 ! 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 G
- Last successful data access was on grid (G106)
-    GRID (G106)
+ Last successful data access was on grid (G104)
+    GRID (G104)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX121)   LATITUDE           201 r   10S                  10N                 200 pts
+ (AX121)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
-    GRID (G106)                          use count:   1
+    GRID (G104)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
  (AX121)   LATITUDE           201 r   10S                  10N
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX121)                         use count:   1
-    AXIS (AX054)                         use count:  13
-    AXIS (AX052)                         use count:  13
-    AXIS (AX009)                         use count:   2
  
 ! deliberate errors
 set mode ignore
@@ -61201,6 +62008,7 @@ set mode/last ignore
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! dynamic grid commands
  
@@ -61215,11 +62023,11 @@ SHOW GRID mygrid_123456789012345678901234567890
  (AX132)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
- normal    E
- normal    F
  
-GO bn_reset
+GO bn_reset bn_xml_repl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_xml_repl
 GO bn_xml_repl
 ! bn_xml_repl.jnl
 ! replace > and < and & with their html equivalents.
@@ -61268,14 +62076,17 @@ sh dat/xml/var
  
 ! ******** V6.5 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn65_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn65_bug_fixes
 GO bn65_bug_fixes
 ! bn65_bug_fixes.jnl
 ! Fixes that go into v6.5 release
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_very_small_latlon
 ! err64_very_small_latlon.jnl
 ! Based on a report and data file from Jean Newman.
@@ -61290,6 +62101,7 @@ shade/i=1:10/j=1:10 bathy
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_packed_data
 ! err64_packed_data.jnl
 ! Test writing packed data. Prior to v6.4 this example shows the
@@ -61382,6 +62194,7 @@ list/i=1:15 sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_repl_9999999
 ! bn_repl_9999999.jnl
 ! Bug 1717
@@ -61396,6 +62209,7 @@ can view view9999999
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_shakey_missingdata
 ! err64_shakey_missingdata.jnl
 ! starting with v6.2 a polygon plot with all missing data.
@@ -61420,6 +62234,7 @@ go polytube polygon/over/key/lev=(0,6,1) xpts,ypts,zpts
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_return_precision
 !err64_return_precision.jnl
 ! most of these resulted in *** - format too small.
@@ -61452,6 +62267,7 @@ say `999.999,p=-2`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_parse_equals
 ! err64_parse_equals
 ! Bug1469 (and duplicate 1690)
@@ -61472,6 +62288,7 @@ DEFINE SYMBOL my_sym  = `UPCASE("/lev=(0,30,2)")`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_regrid_noleap
 ! err64_regrid_noleap.jnl
 !
@@ -61515,6 +62332,7 @@ list b[t=15-feb-1150]  ! Now ok??
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_polymark_over_calendar
 ! err64_polymark_over_calendar.jnl
 ! bug1722.  Polymark script failed with calendar mismatch
@@ -61532,8 +62350,10 @@ go polymark "poly/ov/nolab/pal=red/line=1" pos pos " " circle .5
  
  
  
-GO bn_reset
+GO bn_reset bn_txtype_dmy
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_txtype_dmy
 GO bn_txtype_dmy
 ! bn_txtype_dmy.jnl
 ! 2/2010 ACM
@@ -61658,8 +62478,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn_n_open_dsets_sym
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_n_open_dsets_sym
 GO bn_n_open_dsets_sym
  !  bn_n_open_dsets_sym.jnl
 ! Ferret v6.5
@@ -61702,8 +62524,10 @@ sh sym N_OPEN_DSETS
 N_OPEN_DSETS = "0"
  
  
-GO bn_reset
+GO bn_reset bn_multi_decade
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_multi_decade
 GO bn_multi_decade
 ! bn_multi_decade.jnl
 ! New default no-small tics for multi-decade plots
@@ -61766,8 +62590,10 @@ set view v8; plot/trans/nolab/ax=0,0,1,0/hlim=0:1/set tvar
   ppl tics,0.1,0.25
   ppl plot
  
-GO bn_reset
+GO bn_reset bn_show_xml_file
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_show_xml_file
 GO bn_show_xml_file
 ! bn_show_xml_file.jnl
 ! Testing SHOW DATA/OUTFILE
@@ -61887,18 +62713,18 @@ sp cat the_xml_file.xml
    <value><![CDATA[MONTH_IRREG]]></value>
 </attribute>
 </axis>
-<axis name="XAX1_15">
+<axis name="YAX1_5">
 <attribute name="direction" type="char">
-   <value><![CDATA[I]]></value>
+   <value><![CDATA[J]]></value>
 </attribute>
 <attribute name="length" type="short">
-   <value>15</value>
+   <value>5</value>
 </attribute>
 <attribute name="start" type="double">
    <value>1</value>
 </attribute>
 <attribute name="end" type="double">
-   <value>15</value>
+   <value>5</value>
 </attribute>
 <attribute name="point_spacing" type="char">
    <value><![CDATA[even]]></value>
@@ -61910,24 +62736,24 @@ sp cat the_xml_file.xml
    <value><![CDATA[DOUBLE]]></value>
 </attribute>
 <attribute name="axis" type="char">
-   <value><![CDATA[X]]></value>
+   <value><![CDATA[Y]]></value>
 </attribute>
 <attribute name="orig_file_axname" type="char">
-   <value><![CDATA[XAX1_15]]></value>
+   <value><![CDATA[YAX1_5]]></value>
 </attribute>
 </axis>
-<axis name="YAX1_5">
+<axis name="XAX1_15">
 <attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
+   <value><![CDATA[I]]></value>
 </attribute>
 <attribute name="length" type="short">
-   <value>5</value>
+   <value>15</value>
 </attribute>
 <attribute name="start" type="double">
    <value>1</value>
 </attribute>
 <attribute name="end" type="double">
-   <value>5</value>
+   <value>15</value>
 </attribute>
 <attribute name="point_spacing" type="char">
    <value><![CDATA[even]]></value>
@@ -61939,10 +62765,10 @@ sp cat the_xml_file.xml
    <value><![CDATA[DOUBLE]]></value>
 </attribute>
 <attribute name="axis" type="char">
-   <value><![CDATA[Y]]></value>
+   <value><![CDATA[X]]></value>
 </attribute>
 <attribute name="orig_file_axname" type="char">
-   <value><![CDATA[YAX1_5]]></value>
+   <value><![CDATA[XAX1_15]]></value>
 </attribute>
 </axis>
 </axes>
@@ -61950,13 +62776,15 @@ sp cat the_xml_file.xml
  
  
  
-! GO bn_reset
+! GO bn_reset O bn_encode_url
 ! GO bn_encode_url
  
 ! ******** V6.6 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn66_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn66_bug_fixes
 GO bn66_bug_fixes
 ! bn66_bug_fixes.jnl
 ! Fixes that go into v6.6 release
@@ -61964,6 +62792,7 @@ GO bn66_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err65_averages.jnl
  
 use gt4d011
@@ -62054,8 +62883,10 @@ stat temp[z=@ave,t=@ave,y=-2:2]
  
 cancel region
  
-GO bn_reset
+GO bn_reset bn_netcdf4
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_netcdf4
 GO bn_netcdf4
 ! bn_netcdf4.jnl
 ! test syntax for controling NetCDF-4 intput and output.
@@ -62107,14 +62938,17 @@ save/file=nc4_deflate4_xyt.nc/clobber/ncformat=4/deflate/shuffle/tchunk=2/xchunk
 save/file=nc4_deflate4_defaultchunk.nc/clobber/ncformat=4/deflate/shuffle sst
  
 ! get the file sizes
+! Note that small changes in file size may be caused by differences in the global
+! history attribute; e.g. changing the Ferret version name from v6.97 to v7
+ 
 sp stat nc4_nodeflate3.nc --printf="Bytes: %s\n"
 Bytes: 197528
 sp stat nc4_deflate4bigchunk.nc --printf="Bytes: %s\n"
-Bytes: 4315435
+Bytes: 4315436
 sp stat nc4_deflate4_xyt.nc --printf="Bytes: %s\n"
-Bytes: 4314795
+Bytes: 4314796
 sp stat nc4_deflate4_defaultchunk.nc --printf="Bytes: %s\n"
-Bytes: 4309088
+Bytes: 4309089
  
 ! Write variable as INT
 CAN DAT/all; can var/all; can mem/all
@@ -62131,9 +62965,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: 32174
+Bytes: 32175
 sp stat nc4_inttemp_shuffle_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
-Bytes: 32330
+Bytes: 32331
  
 cancel list/all
 set list/ncformat=classic
@@ -62189,8 +63023,10 @@ save/file=nc4_deflate4chunktoobig.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychun
 can mode ignore
  
  
-GO bn_reset
+GO bn_reset bn_scat2grid_bin.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_scat2grid_bin.jnl
 GO bn_scat2grid_bin.jnl
 ! bn_scat2grid_bin.jnl
 ! Tests of scat2grid_bin and scat2grid_nbin functions.
@@ -62201,14 +63037,12 @@ 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 (G091)
+    GRID (G099)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   9 pts
- normal    E
- normal    F
+ TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   10 pts
  
  
 define axis/x=0:10:0.05 x10
@@ -62408,14 +63242,12 @@ list/x=2:3 sgrid
  
 let tpts = 39798 + 87*RANDU(I)
 show grid tt
-    GRID (G089)
+    GRID (G093)
  name       axis              # pts   start                end                 subset
  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   9 pts
- normal    E
- normal    F
+ TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   10 pts
  
 let sgrid = scat2grid_bin_xyt (xpts, ypts, tpts, sample_function, x[gx=xax5], y[gy=yax5], tt)
 SAVE/FILE=a.nc/clobber sgrid
@@ -62531,8 +63363,10 @@ can axis tin
  
 ! *********** v6.62 Additions ***********
  
-GO bn_reset
+GO bn_reset bn_axis_dir_symbols
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_dir_symbols
 GO bn_axis_dir_symbols
 ! bn_axis_dir_symbols.jnl
 ! 5/2010
@@ -62563,8 +63397,10 @@ AX_VERT = "Y"
  
 ! *********** v6.63 Additions ***********
  
-GO bn_reset
+GO bn_reset bn663_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn663_bug_fixes
 GO bn663_bug_fixes
 ! bn663_bug_fixes.jnl
 ! Fixes that go into v6.63 release
@@ -62572,6 +63408,7 @@ GO bn663_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err65_dots_in_dashes.jnl
 ! err65_dots_in_dashes.jnl
 ! Test fix to bug 1396: dots where there should
@@ -62592,6 +63429,7 @@ cancel mode meta
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err66_all_missing_lev_v.jnl
 ! err66_all_missing_lev_v.jnl
 ! Ferret hangs with /LEV=V and all missing data
@@ -62601,8 +63439,10 @@ SHADE/L=1/X=60:70/Y=40:50/LEV=v sst
  
 FILL/L=2/X=60:70/Y=40:50/LEV=v sst
  
-GO bn_reset
+GO bn_reset bn_set_axis_regular
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_axis_regular
 GO bn_set_axis_regular
 ! bn_set_axis_regular.jnl
 ! Karl Smith, 5/2010
@@ -62679,8 +63519,6 @@ show grid
  MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! --- force the x axis to be regular
 set axis /regular myx
@@ -62740,8 +63578,6 @@ show grid
  MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! --- setting a regular axis as regular does nothing
 set axis /regular myx
@@ -62801,12 +63637,11 @@ show grid
  MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! --- clean up
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 cancel grid mygrid
  
 ! --- read a NetCDF file with the irregular axes and data
@@ -62814,8 +63649,8 @@ use bn_set_axis_regular
 show data
      currently SET data sets:
     1> ./bn_set_axis_regular.nc  (default)
- name     title                             I         J         K         L         M         N
- MYDATA   2 * X + Y                        1:10      1:10      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ MYDATA   2 * X + Y                        1:10      1:10      ...       ...
  
 list mydata
              VARIABLE : 2 * X + Y
@@ -62842,8 +63677,6 @@ show grid
  MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! --- force the x axis to be regular
 set axis /regular `..dimnames[i=1]`
@@ -62873,12 +63706,12 @@ show grid
  MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
- normal    E
- normal    F
  
  
-GO bn_reset
+GO bn_reset bn_set_cancel_redirect
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_cancel_redirect
 GO bn_set_cancel_redirect
 ! bn_set_cancel_redirect.jnl
 ! Karl Smith, 5/2010
@@ -62928,8 +63761,6 @@ show grid mygrid
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 go /help
  
 ! --- 5. show the contents of the redirect file
@@ -63018,8 +63849,6 @@ show grid mygrid
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 go /help
  
 ! --- 10. results of CANCEL REDIRECT when nothing is redirected
@@ -63189,8 +64018,6 @@ show grid mygrid
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 go /help
  
 ! --- 18. see what happens to messages (say, warn, error)
@@ -63207,7 +64034,7 @@ let contents = { spawn:"cat redirect_stdout.txt" }
 ! ---     should be the stdout of 17, whatever stdout of 18, and cancel redirect from 19
 list contents
              VARIABLE : { SPAWN:"cat redirect_stdout.txt" }
-             SUBSET   : 24 points (X)
+             SUBSET   : 22 points (X)
  1    /  1:"set redirect /tee /file="redirect_stderr.txt" /clobber stderr"   
  2    /  2:" "                                                               
  3    /  3:"! --- 17. produce some output"                                   
@@ -63218,20 +64045,18 @@ list contents
  8    /  8:" normal    Y"                                                    
  9    /  9:" normal    Z"                                                    
  10   / 10:" normal    T"                                                    
- 11   / 11:" normal    E"                                                    
- 12   / 12:" normal    F"                                                    
- 13   / 13:"go /help"                                                        
- 14   / 14:" "                                                               
- 15   / 15:"! --- 18. see what happens to messages (say, warn, error)"       
- 16   / 16:"say "   This is a say message""                                  
- 17   / 17:"   This is a say message"                                        
- 18   / 18:"set axis /regular myaxis"                                        
- 19   / 19:"set mode ignore_error"                                           
- 20   / 20:"show grid garbage"                                               
- 21   / 21:"cancel mode ignore_error"                                        
- 22   / 22:" "                                                               
- 23   / 23:"! --- 19. cancel redirections and show the contents of the files"
- 24   / 24:"cancel redirect"                                                 
+ 11   / 11:"go /help"                                                        
+ 12   / 12:" "                                                               
+ 13   / 13:"! --- 18. see what happens to messages (say, warn, error)"       
+ 14   / 14:"say "   This is a say message""                                  
+ 15   / 15:"   This is a say message"                                        
+ 16   / 16:"set axis /regular myaxis"                                        
+ 17   / 17:"set mode ignore_error"                                           
+ 18   / 18:"show grid garbage"                                               
+ 19   / 19:"cancel mode ignore_error"                                        
+ 20   / 20:" "                                                               
+ 21   / 21:"! --- 19. cancel redirections and show the contents of the files"
+ 22   / 22:"cancel redirect"                                                 
 cancel var contents
 let contents = { spawn:"cat redirect_stderr.txt" }
 ! ---     should be the stderr of 17.
@@ -63292,8 +64117,6 @@ show grid mygrid
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 go /help
  
 ! --- 26. turn off journal mode
@@ -63326,11 +64149,11 @@ cancel redirect
 let contents = { spawn:"cat redirect_journal.txt" }
 list contents
              VARIABLE : { SPAWN:"cat redirect_journal.txt" }
-             SUBSET   : 47 points (X)
+             SUBSET   : 45 points (X)
  1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! FERRET v6.97 (beta/dbg)"                                                 
- 3    /  3:" ! Linux 2.6.18-409.el5PAE 32-bit - 05/11/16"                               
- 4    /  4:" ! 11-May-16 16:10     "                                                    
+ 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     "                                                    
  5    /  5:""                                                                           
  6    /  6:"! "                                                                         
  7    /  7:"!! --- 22. produce some output to stdout and stderr"                        
@@ -63364,16 +64187,14 @@ list contents
  35   / 35:"! normal    Y"                                                              
  36   / 36:"! normal    Z"                                                              
  37   / 37:"! normal    T"                                                              
- 38   / 38:"! normal    E"                                                              
- 39   / 39:"! normal    F"                                                              
- 40   / 40:"!go /help"                                                                  
- 41   / 41:"! Use the GO command to name a file of FERRET commands to be executed."     
- 42   / 42:"!     e.g.   yes? GO filename"                                              
+ 38   / 38:"!go /help"                                                                  
+ 39   / 39:"! Use the GO command to name a file of FERRET commands to be executed."     
+ 40   / 40:"!     e.g.   yes? GO filename"                                              
+ 41   / 41:"! "                                                                         
+ 42   / 42:"! Use "GO/HELP filename" to read documentation in  the file to be executed."
  43   / 43:"! "                                                                         
- 44   / 44:"! Use "GO/HELP filename" to read documentation in  the file to be executed."
- 45   / 45:"! "                                                                         
- 46   / 46:"!! --- 26. turn off journal mode"                                           
- 47   / 47:"!set mode journal:ferret.jnl"                                               
+ 44   / 44:"!! --- 26. turn off journal mode"                                           
+ 45   / 45:"!set mode journal:ferret.jnl"                                               
 cancel var contents
  
 ! --- clean-up: get rid of mygrid
@@ -63382,8 +64203,10 @@ cancel grid mygrid
  
 !!! NOTE: journal mode is now turned off !!!
  
-GO bn_reset
+GO bn_reset bn_min_max_smoothers
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_min_max_smoothers
 GO bn_min_max_smoothers
 ! bn_min_max_smoothers.jnl
 ! New transforms @SMN and @SMX, smoothers based on the
@@ -63673,8 +64496,10 @@ 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
  
  
-GO bn_reset
+GO bn_reset bn_vector_symbols
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_vector_symbols
 GO bn_vector_symbols
 ! bn_vector_symbols.jnl
 ! ACM 7/16/21010 Ferret V6.6.3
@@ -63721,8 +64546,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn_variance_large
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_variance_large
 GO bn_variance_large
 ! bn_variance_large.jnl
 ! Previous to v6.6.4, these returned messages **too big**
@@ -63770,8 +64597,10 @@ SHADE/L=1/LEV=v huge
  
 CANCEL SYMBOL lev*
  
-GO bn_reset
+GO bn_reset bn_labnum_calendar
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_labnum_calendar
 GO bn_labnum_calendar
 ! bn_labnum_calendar.jn.
 ! Define new symbol, when a Calendar label is on
@@ -63793,8 +64622,10 @@ LAB4 = "CALENDAR: NOLEAP"
  
  
 ! *********** v6.65 Additions ***********
-GO bn_reset
+GO bn_reset bn665_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn665_bug_fixes
 GO bn665_bug_fixes
 ! bn65_bug_fixes.jnl
 ! test various fixes that went into version 6.6.5
@@ -63803,6 +64634,7 @@ GO bn665_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err664_xml_keep_case
 ! err664_xml_keep_case.jnl
 !
@@ -63992,6 +64824,7 @@ REPEAT/RANGE=1:`nd`/name=m (DEFINE SYMBOL m = `m`; SH AXIS/XML `axis_names[i=($m
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err664_xml_one_point_axis
 ! err664_xml_one_point_axis.jnl
 ! See LAS ticket 969.
@@ -64003,8 +64836,8 @@ USE a_cartesian_bug1179.nc
 SH DAT
      currently SET data sets:
     1> ./a_cartesian_bug1179.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
+ name     title                             I         J         K         L
+ TEMP     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1
  
  
 LET/D=1 a = temp
@@ -64019,6 +64852,9 @@ SH VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GHU1">
 <axes>
 <xaxis>GRID_X_T</xaxis>
@@ -64044,6 +64880,9 @@ SH VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GHU1">
 <axes>
 <xaxis>GRID_X_T</xaxis>
@@ -64057,6 +64896,7 @@ SH VAR/XML
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err65_read_epic_cdf
 ! Ned Cokelet reports that the time coordinate is read incorrectly
 ! from this file.  Should translate to  04-MAY-2007 05:02
@@ -64095,6 +64935,7 @@ list ..dimnames
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err664_tax_fcns
 ! err664_tax_fcns.jnl
 ! Fixes for tickets 1766 and 1765
@@ -64165,8 +65006,10 @@ list tax_year(a,a)
  JUL-0005 / 6:"01-JUL-0005"
  
  
-GO bn_reset
+GO bn_reset bn_floatstr
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_floatstr
 GO bn_floatstr
 ! bn_floatstr.jnl
 ! testing new function to convert floating-point
@@ -64290,8 +65133,10 @@ LIST/X=165W:135W/Y=-50/L=1 STRLEN(var)
  135W   / 103:  0.000
  
 ! *********** v6.7 Additions ***********
-GO bn_reset
+GO bn_reset bn67_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn67_bug_fixes
 GO bn67_bug_fixes
 ! bn67_bug_fixes.jnl
 ! test various fixes that went into version 6.7
@@ -64299,6 +65144,7 @@ GO bn67_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err665_sum_4d_labels
 ! A multi-dimensioned sum is now done as a 4D transformation.
 ! the labels on a LISTing of the result contained ???
@@ -64315,6 +65161,7 @@ list sst[X=125E,Y=75S:75N at sum,l=1:12 at sum]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err665_din
 ! err665_din
 ! Fixing incorrect latitude corrections for single-point y axis,
@@ -64384,6 +65231,7 @@ list p[x=279:380 at din,z=0:10 at din]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err665_centered_lev
 ! err665_centered_lev
 ! Bug 1803; computation of new levels isnt requested for
@@ -64424,6 +65272,7 @@ LEV_DEL = "5"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err665_hours_since_T
 ! err665_hours_since_T.jnl
 ! Ticket 1806: allow time-axis units string to
@@ -64442,6 +65291,7 @@ T0 = 15-JAN-1901 12:00:00
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_att_too_long
 ! err667_att_too_long.jnl
 ! 3/25/2011 ACM
@@ -64492,6 +65342,7 @@ save/file=aa.nc/clobber sfco2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_mode_desperate
 ! err667_mode_desperate
 ! 3/25/2011 ACM
@@ -64503,22 +65354,22 @@ set mode ignore
  
 ! setting too large
 set mode desperate `9999999999`
- !-> set mode desperate   9999999999.000000
+ !-> set mode desperate 9999999999.
 show mode desperate
       MODE            STATE        ARGUMENT
-      DESPERATE     CANCELLED      2560000
+      DESPERATE     CANCELED       2560000
  
 ! another setting too large (previously value
 ! was set to the first 10 digits of this)
 set mode desperate 1234567890123456789
 show mode desperate
       MODE            STATE        ARGUMENT
-      DESPERATE     CANCELLED      2560000
+      DESPERATE     CANCELED       2560000
  
 ! Previously couldnt handle a floating point
 ! input. Now we can.
 set mode desperate `96 * 1024 * 1024`
- !-> set mode desperate   100663296.0000000
+ !-> set mode desperate 100663296.
 show mode desperate
       MODE            STATE        ARGUMENT
       DESPERATE        SET           100663296
@@ -64528,6 +65379,7 @@ cancel mode desperate
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_dup_axnames
 ! err667_dup_axnames.jnl
 ! See bug 1750
@@ -64558,6 +65410,7 @@ save/clob/file="justg.nc" g[d=1]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_string_if
 ! err667_string_if.jnl
 ! Previously both of these LIST commands caused a crash.
@@ -64583,6 +65436,7 @@ list IF strings EQ "a" THEN "" ELSE strings
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_show_var_twice
  ! err667_show_var_twice.jnl
  ! ticket 1825
@@ -64604,11 +65458,13 @@ sh var airt2[d=1]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_5d_netcdf
 exit/script  ! this test is not valid for 6D Ferret.
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_save_append_open
 ! err67_save_append_open.jnl
 ! ticket 1832
@@ -64631,8 +65487,8 @@ save/append/file=a.nc temp_mm
 sh dat
      currently SET data sets:
     1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25
  
 can dat/all
  
@@ -64642,14 +65498,16 @@ use a.nc
 sh dat
      currently SET data sets:
     1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
- TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25
+ TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25
  
  
  
-GO bn_reset
+GO bn_reset bn_NaN_note
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_NaN_note
 GO bn_NaN_note
 ! bn_NaN_note.jnl
 ! Ferret v6.7  2/2011
@@ -64664,13 +65522,16 @@ USE test0
 ! Now we get the NOTE
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 SET MODE diag
 USE test0
 CANCEL MODE diag
  
 ! *********** v6.71 Additions ***********
-GO bn_reset
+GO bn_reset bn671_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn671_bug_fixes
 GO bn671_bug_fixes
 ! bn671_bug_fixes.jnl
 ! test various fixes that went into version 6.71
@@ -64678,6 +65539,7 @@ GO bn671_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_tax_modtime
 ! err67_tax_modtime.jnl
 ! 5/17/2011
@@ -64748,6 +65610,7 @@ list tax_units(tvar)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_save_append_open
 ! err67_save_append_open.jnl
 ! ticket 1832
@@ -64770,8 +65633,8 @@ save/append/file=a.nc temp_mm
 sh dat
      currently SET data sets:
     1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25
  
 can dat/all
  
@@ -64781,13 +65644,14 @@ use a.nc
 sh dat
      currently SET data sets:
     1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
- TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25
+ TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_regridding_dyn
 ! err67_regridding_dyn.jnl
 !  6/2011
@@ -64895,6 +65759,7 @@ list/x=330/y=40:90 filled[d=3,gxy=filled[d=2]]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_reverse_bounds
 ! err67_reverse_bounds.jnl
 !
@@ -64937,6 +65802,7 @@ list lev_var, zboxlo[gz=lev_var], zboxhi[gz=lev_var]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_nrst_trans
 ! err67_nrst_trans.jnl
 !
@@ -64963,14 +65829,17 @@ list var
  400   / 11:   ....
  
 ! *********** v6.8 Additions ***********
-GO bn_reset
+GO bn_reset bn68_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn68_bug_fixes
 GO bn68_bug_fixes
 ! bn68_bug_fixes.jnl
 ! test various fixes that went into version 6.8
 !
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_stray_line
 ! err672_stray_line.jnl
 ! bug 1545, present in older versions of Ferret too.
@@ -64991,6 +65860,7 @@ plot/over/vs/nolab/line/sym {148.83, 148.17}, {-29.96, -29.68}
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_tax_functions_prec
 ! See ticket 1642: arg 1 of TAX_* functions
 ! is a single-precision variale representing double-precision coords.
@@ -65288,6 +66158,7 @@ can mode ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_subscr_precision
 ! err672_subscr_precision.jnl
 ! See ticket 1888.
@@ -65315,6 +66186,7 @@ list/t="02-JUN-2010:13:34:40":"02-JUN-2010:13:34:50" tt
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_vert_axislabel
 ! err672_vert_axislabel.jnl
 ! bug 1896
@@ -65345,6 +66217,7 @@ SET MODE/LAST shrink_ylab
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_axis_label_prec
 ! See ticket 1907
 ! Axis label format didnt give enough precision for accurate labels
@@ -65378,6 +66251,7 @@ plot v
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_long_show_axis
 ! See ticket 1905 - axes with very large number of points overflowed
 ! the format in SHOW AXIS commands
@@ -65393,6 +66267,7 @@ can axis huge
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_axis_order
 ! err672_axis_order
 ! See comment 5 under ticket 1774.
@@ -65404,20 +66279,20 @@ use err67_axis_order_copy.nc
 sh dat
      currently SET data sets:
     1> ./err67_axis_order.nc
- name     title                             I         J         K         L         M         N
- UCOV     UCOV                             1:6       1:9       1:3       1:1       ...       ...
- CONTROLE CONTROLE                         1:6       ...       ...       ...       ...       ...
- NIVSIGS  NIVSIGS                          ...       ...       1:3       ...       ...       ...
- NIVSIG   NIVSIG                           1:6       ...       ...       ...       ...       ...
- AP       AP                               1:6       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ UCOV     UCOV                             1:6       1:9       1:3       1:1
+ CONTROLE CONTROLE                         1:6       ...       ...       ...
+ NIVSIGS  NIVSIGS                          ...       ...       1:3       ...
+ NIVSIG   NIVSIG                           1:6       ...       ...       ...
+ AP       AP                               1:6       ...       ...       ...
  
     2> ./err67_axis_order_copy.nc  (default)
- name     title                             I         J         K         L         M         N
- UCOV     UCOV                             1:6       1:9       1:3       1:1       ...       ...
- CONTROLE CONTROLE                         1:6       ...       ...       ...       ...       ...
- NIVSIGS  NIVSIGS                          ...       ...       1:3       ...       ...       ...
- NIVSIG   NIVSIG                           1:6       ...       ...       ...       ...       ...
- AP       AP                               1:6       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ UCOV     UCOV                             1:6       1:9       1:3       1:1
+ CONTROLE CONTROLE                         1:6       ...       ...       ...
+ NIVSIGS  NIVSIGS                          ...       ...       1:3       ...
+ NIVSIG   NIVSIG                           1:6       ...       ...       ...
+ AP       AP                               1:6       ...       ...       ...
  
  
 ! Listings should be identical with the bug they are reversed.
@@ -65461,6 +66336,7 @@ list/k=3/i=1 ucov[d=2]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_runoff_page
 ! err672_runoff_page
 ! acm 5/3/2012
@@ -65481,6 +66357,7 @@ SET MODE/LAST shrink_ylab
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_samplexy_modulo
 ! err672_samplexy_modulo.jnl
 ! See ticket 1950: samplexy doesnt correctly do modulo operations.
@@ -65539,6 +66416,7 @@ list samplexyt(sst,{160,180,-20},{0,0,0},{`t1`,`t1`,`t1`})
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_varnames
 ! err672_varnames.jnl
 ! ticket 1938
@@ -65569,6 +66447,7 @@ CAN MODE IGNORE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_dset_cx
 ! err672_dset_cx.jnl
 ! Ticket 1951: The dataset specified in list x[gx=a[d=1,i=1:3]] is not applied.
@@ -65576,14 +66455,12 @@ GO err672_dset_cx
  
 let a = x[gx=0:2:1]; save/clob/file=a1.nc a
 sho grid/x a
-    GRID (G101)
+    GRID (G103)
  name       axis              # pts   start                end                 subset
- (AX137)   X                    3 r   0                    2                   2 pts
+ (AX084)   X                    3 r   0                    2                   3 pts
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  0                     1          -0.5
@@ -65592,14 +66469,12 @@ sho grid/x a
  
 let a = x[gx=1:3:1]; save/clob/file=a2.nc a
 sho grid/x a
-    GRID (G101)
+    GRID (G103)
  name       axis              # pts   start                end                 subset
- (AX121)   X                    3 r   1                    3                   2 pts
+ (AX121)   X                    3 r   1                    3                   3 pts
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -65615,14 +66490,14 @@ can var/all; can dat/all
 use a1
 list x[gx=a[d=1]]
              VARIABLE : X
-                        axis AX137
+                        axis AX084
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
  2   / 3:  2.000
 list x[gx=a[d=1,i=1:3]]
              VARIABLE : X
-                        axis AX137
+                        axis AX084
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -65637,7 +66512,7 @@ use a2
  
 list x[gx=a[d=1]]
              VARIABLE : X
-                        axis AX137
+                        axis AX084
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -65646,7 +66521,7 @@ list x[gx=a[d=1]]
 ! The bug was that this listed 1,2,3 rather than 0,1,2
 list x[gx=a[d=1,i=1:3]]
              VARIABLE : X
-                        axis AX137
+                        axis AX084
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -65662,14 +66537,16 @@ list x[gx=a[d=1,i=1:3]]
 ! Why is the following different?
 list x[gx=a[d=1],i=1:3]
              VARIABLE : X
-                        axis AX137
+                        axis AX084
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
  2   / 3:  2.000
  
-GO bn_reset
+GO bn_reset bn_ifv
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ifv
 GO bn_ifv
 ! bn_ifv.jnl
 ! test IFV IfValid masking for a variety of combos
@@ -65806,8 +66683,10 @@ list IFV strings EQ "a" THEN "" ELSE strings
  2   / 2:"b"
  3   / 3:"" 
  
-GO bn_reset
+GO bn_reset bn_randu2_randn2
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_randu2_randn2
 GO bn_randu2_randn2
 ! Test randu2 and randn2 with newer random-number algorithm.
 ! 9/2011 acm
@@ -65825,40 +66704,40 @@ can mode ver
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.761
-randu2_randn2       0.260
-randu2_randn2       0.018
-randu2_randn2       0.791
-randu2_randn2       0.605
+randu2_randn2       0.040
+randu2_randn2       0.212
+randu2_randn2       0.483
+randu2_randn2       0.139
+randu2_randn2       0.794
              VARIABLE : RANDU2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.134
-randu2_randn2       0.174
-randu2_randn2       0.678
-randu2_randn2       0.982
-randu2_randn2       0.364
+randu2_randn2       0.689
+randu2_randn2       0.913
+randu2_randn2       0.690
+randu2_randn2       0.860
+randu2_randn2       0.988
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.297
-randu2_randn2       0.071
-randu2_randn2       0.334
-randu2_randn2       0.414
-randu2_randn2       0.085
-randu2_randn2       0.067
+randu2_randn2       0.809
+randu2_randn2       0.133
+randu2_randn2       0.522
+randu2_randn2       0.615
+randu2_randn2       0.138
+randu2_randn2       0.298
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.841
-randu2_randn2       0.798
-randu2_randn2       0.390
-randu2_randn2       0.966
-randu2_randn2       0.010
-randu2_randn2       0.816
+randu2_randn2       0.987
+randu2_randn2       0.557
+randu2_randn2       0.810
+randu2_randn2       0.130
+randu2_randn2       0.935
+randu2_randn2       0.239
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -65883,40 +66762,40 @@ randu2_randn2       0.900
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       1.214
-randu2_randn2      -0.229
-randu2_randn2       1.328
-randu2_randn2       1.812
-randu2_randn2      -0.436
+randu2_randn2       0.372
+randu2_randn2       1.269
+randu2_randn2      -0.672
+randu2_randn2       0.228
+randu2_randn2      -1.020
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2      -0.650
-randu2_randn2      -0.218
-randu2_randn2      -2.103
-randu2_randn2      -0.366
-randu2_randn2      -0.879
+randu2_randn2      -1.683
+randu2_randn2      -1.797
+randu2_randn2      -0.797
+randu2_randn2       3.543
+randu2_randn2      -1.074
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.945
-randu2_randn2      -0.179
-randu2_randn2      -0.654
-randu2_randn2      -2.107
-randu2_randn2       0.242
-randu2_randn2      -0.314
+randu2_randn2      -1.332
+randu2_randn2       0.392
+randu2_randn2       0.434
+randu2_randn2      -1.260
+randu2_randn2      -0.460
+randu2_randn2      -0.412
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.403
-randu2_randn2      -0.031
-randu2_randn2      -0.787
-randu2_randn2       0.835
-randu2_randn2       0.285
-randu2_randn2       2.272
+randu2_randn2       0.371
+randu2_randn2      -1.030
+randu2_randn2      -0.872
+randu2_randn2       1.215
+randu2_randn2       0.925
+randu2_randn2       0.018
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -65941,17 +66820,19 @@ 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.105       1.158       0.915
-randu2_randn2       1.158       1.105       0.915
-randu2_randn2       0.915       0.915       0.108
-randu2_randn2       0.108       0.108       0.380
-randu2_randn2      -0.300      -0.221       0.380
-randu2_randn2      -0.221      -0.221       0.380
-randu2_randn2      -0.151      -0.151       0.380
-randu2_randn2       0.380       0.380       0.380
- 
-GO bn_reset
-cancel mode verify
+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
+ 
+GO bn_reset bn_axis_cf
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_cf
 GO bn_axis_cf
 ! Ticket 1792: Write axes with CF-compliant units
 ! and with standard name attributes for geophysical attrs.
@@ -66019,8 +66900,10 @@ sp ncdump -h a.nc >> all_ncdump.out
  
  
  
-GO bn_reset
+GO bn_reset bn_repeated_coords
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_repeated_coords
 GO bn_repeated_coords
 ! Test the use of micro-adjusting on NetCDF read
 ! when coordinates are repeated.
@@ -66036,8 +66919,6 @@ show grid a
  normal    Y
  normal    Z
  TMIN      TIME                71 i   01-JAN-2001 00:00    01-JAN-2001 01:10   full
- normal    E
- normal    F
 show axis tmin
  name       axis              # pts   start                end
  TMIN      TIME                71 i   01-JAN-2001 00:00    01-JAN-2001 01:10
@@ -66069,8 +66950,6 @@ show grid a
  normal    Y
  normal    Z
  TMIN      T                   71 r   1                    71                  full
- normal    E
- normal    F
 show axis tmin
  name       axis              # pts   start                end
  TMIN      T                   71 r   1                    71
@@ -66094,8 +66973,10 @@ list aa[L=1:71:10]
  01-JAN-2001 01:10:00 / 8:  0.6997
  
  
-GO bn_reset
+GO bn_reset bn_xml_header
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_xml_header
 GO bn_xml_header
 ! bn_xml_header.jnl
 ! run the exact script that LAS uses to make XML header files
@@ -66312,8 +67193,10 @@ sp grep -A5 dimension xml_out_string.xml
 </dimensions>
 </data>
  
-GO bn_reset
+GO bn_reset bn_eof_simple
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_eof_simple
 GO bn_eof_simple
 ! bn_eof_simple
 ! Define a simple function with two known functions.
@@ -66346,8 +67229,6 @@ show grid spacetime
  YAXIS     Y                    1 r   1                    1                   full
  normal    Z
  TAXIS     T                  240 r   0                    59.75               full
- normal    E
- normal    F
  
 show func eofsvd_stat
 EOFSVD_STAT(A)
@@ -66937,8 +67818,10 @@ can axis xaxis
  
 exit/script
  
-GO bn_reset
+GO bn_reset bn_eof_simple2
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_eof_simple2
 GO bn_eof_simple2
 ! bn_eof_simple2
 ! Define a simple function with four known functions, two of which are degenerate.
@@ -66971,8 +67854,6 @@ show grid spacetime
  YAXIS     Y                    2 r   1                    2                   full
  normal    Z
  TAXIS     T                  240 r   0                    23.9                full
- normal    E
- normal    F
  
 show func eofsvd_stat
 EOFSVD_STAT(A)
@@ -67302,8 +68183,10 @@ exit/script
  
 ! 6D tests for Ferret v6.8
  
-GO bn_reset
+GO bn_reset bn_interpolate_6d
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_interpolate_6d
 GO bn_interpolate_6d
 ! bn_interpolate_6d.JNL
 ! benchmark interpolation along various axes
@@ -67705,8 +68588,10 @@ LIST v[@xpt, at ypt, at ept, at fpt]
  
 set mode/last calendar
  
-GO bn_reset
+GO bn_reset bn_regrid_6d
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regrid_6d
 GO bn_regrid_6d
 ! bn_regrid_6d.jnl
 ! version of bn_regrid, using E and F directions.
@@ -69091,8 +69976,10 @@ set mode/last long_label
 set mode/last calendar
  
  
-GO bn_reset
+GO bn_reset bn_syntax_6d
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_syntax_6d
 GO bn_syntax_6d
 ! bn_syntax_6d.JNL
 ! - test syntax interpretation of Program FERRET 6D
@@ -69221,8 +70108,10 @@ cancel variables/all;\
      currently SET data sets:
           3.00000
  
-GO bn_reset
+GO bn_reset bn_expressions_6d
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_expressions_6d
 GO bn_expressions_6d
 ! bn_expressions_6d.jnl
 ! testing expressions syntax in E and F directions.
@@ -69704,8 +70593,10 @@ LIST/n=5:7 FBOXLO, FBOXHI
 6   / 6:  5.50000  6.50000
 7   / 7:  6.50000  7.50000
  
-GO bn_reset
+GO bn_reset bn_direction_fcns_6d
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_direction_fcns_6d
 GO bn_direction_fcns_6d
 ! bn_direction_functions_6d
 ! Tests of sort, sample, reverse, convolve, compress, and compess_by
@@ -69924,8 +70815,10 @@ list compressn_by(fsequence({10,20,30,40,50}),mask)
  4   / 4:     ....     ....
  5   / 5:     ....     ....
  
-GO bn_reset
+GO bn_reset bn_regrid_transforms_6d
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regrid_transforms_6d
 GO bn_regrid_transforms_6d
 ! bn_regrid_transforms_6d.jnl
 ! benchmark to test regridding transformations and syntax
@@ -69939,7 +70832,7 @@ set mode calendar:years
 define axis/f=23-jan-1982:30-jan-1982:20/unit=hour fax20
 define axis/x=120e:60w:10/unit=degrees xax10
 define grid/like=temp/f=fax20 g5day
- 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
+ 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 GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
  dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
  
@@ -69948,15 +70841,15 @@ set reg/x=130w:125w/y=0:1.5/e=1:2/f=23-JAN-1982:24-jan-1982/t=21-JAN-1982/z=5
 use gtsa056_1_ef    	!kob 4/99
  
 stat temp[g=g5day] - temp[g=g5day at ave]
- getgrid 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 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=1982 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
  strip regrid on F: TEMP --> G5DAY            @LIN
- reading TEMP     M:120 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- regrid  TEMP     M:118 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ reading TEMP     M:248 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:236 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
  strip regrid on F: TEMP --> G5DAY            @AVE
- reading TEMP     M:114 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- regrid  TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ found   TEMP     M:248 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:232 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
  doing --> EX#1[T=1982 at ITP,D=1]
  
              TEMP[G=G5DAY] - TEMP[G=G5DAY at AVE]
@@ -69977,17 +70870,17 @@ stat temp[g=g5day] - temp[g=g5day at ave]
  
 ! basic regrid tests
 LIST temp[g=g5day at ave]
- -DELETE EX#1     M: 94 dset:   1 I:  101  105  J:   41   46  K:    1    1  L: -999 -999  M:    1    2  N:    1    2
- -DELETE EX#1     M:112 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ -DELETE EX#1     M:226 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ -DELETE EX#1     M:234 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:   -999   -999  M:    1    2  N:    1    2
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- -DELETE TEMP     M:118 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    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
+ -DELETE TEMP     M:232 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ -DELETE TEMP     M:236 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    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
  strip --> EX#1[T=1982 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
  strip regrid on F: TEMP --> G5DAY            @AVE
- reading TEMP     M:118 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- regrid  TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ found   TEMP     M:248 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:236 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
  doing --> TEMP[T=1982 at ITP,D=1]
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on F at AVE
@@ -70029,14 +70922,14 @@ LIST temp[g=g5day at ave]
  0.17S / 41:  43.3538  43.2657  43.1716  43.1285  43.2282
 LIST temp[g=g5day]	
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- -DELETE TEMP     M:112 dset:   1 I:  101  105  J:   41   46  K:    1    1  L: -999 -999  M:    1    2  N:    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
+ -DELETE TEMP     M:232 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:   -999   -999  M:    1    2  N:    1    2
+ -DELETE TEMP     M:236 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    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
  strip --> EX#1[T=1982 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
  strip regrid on F: TEMP --> G5DAY            @LIN
- reading TEMP     M:112 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- regrid  TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ found   TEMP     M:248 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:236 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
  doing --> TEMP[T=1982 at ITP,D=1]
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY
@@ -70097,141 +70990,141 @@ use gtsa056_1_ef 		!kob 4/99
 set region/x=180E/y=0/f=23-JAN-1982/t=21-JAN-1982/z=5
 plot temp
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 94 dset:   1 I:  101  105  J:   41   46  K:    1    1  L: -999 -999  M:    1    2  N:    1    2
- -DELETE TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    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
+ -DELETE TEMP     M:232 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:   -999   -999  M:    1    2  N:    1    2
+ -DELETE TEMP     M:236 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    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 GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
  strip --> EX#1[F=1982 at ITP,D=1]
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  8 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- reading TEMP     M:104 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ eval    EX#1     C:  8 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ reading TEMP     M:236 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
  doing --> TEMP[F=1982 at ITP,D=1]
 setting up plot
-PPL plot 862  complete
+PPL plot 869  complete
 plot/over temp[g=g5day]
  dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
- getgrid 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 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ eval    EX#1     C:  7 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @LIN
- reading TEMP     M: 86 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- regrid  TEMP     M: 58 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ found   TEMP     M:236 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:216 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
-PPL plot 863  complete
+PPL plot 870  complete
 plot/over temp[g=g5day at ave]
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 58 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 72 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
- -DELETE TEMP     M: 88 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 96 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    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
+ -DELETE TEMP     M:216 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:220 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:228 dset:   1 I:   -999   -999  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:242 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:   -999   -999  M:    1    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
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ eval    EX#1     C:  7 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @AVE
- reading TEMP     M: 96 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- regrid  TEMP     M: 88 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ found   TEMP     M:236 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:242 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
-PPL plot 864  complete
+PPL plot 871  complete
 plot/over temp[g=g5day at asn]
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 58 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 72 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 80 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
- -DELETE TEMP     M: 88 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    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
+ -DELETE TEMP     M:216 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:   -999   -999  M:    1    2  N:    1    1
+ -DELETE TEMP     M:220 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:228 dset:   1 I:   -999   -999  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:242 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    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
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ eval    EX#1     C:  7 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @ASN
- reading TEMP     M: 88 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- regrid  TEMP     M: 80 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ found   TEMP     M:236 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:242 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
-PPL plot 865  complete
+PPL plot 872  complete
  
 ! F axis
 set region/x=180/y=20s:20n/e=2/t=21-JAN-1982/z=5
 plot temp
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 58 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 72 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 78 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
- -DELETE TEMP     M: 80 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    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
+ -DELETE TEMP     M:216 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:   -999   -999  M:    1    2  N:    1    1
+ -DELETE TEMP     M:220 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:228 dset:   1 I:   -999   -999  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:242 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    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
  allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
  strip --> EX#1[F=1982 at ITP,D=1]
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
- reading TEMP     M: 80 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
+ eval    EX#1     C:  7 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
+ reading TEMP     M:242 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
  doing --> TEMP[F=1982 at ITP,D=1]
 setting up plot
-PPL plot 866  complete
+PPL plot 873  complete
 plot/over temp[g=g5day]
  dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
- getgrid 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 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ eval    EX#1     C:  6 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @LIN
- reading TEMP     M:106 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
- regrid  TEMP     M: 98 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ found   TEMP     M:242 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
+ regrid  TEMP     M:224 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
-PPL plot 867  complete
+PPL plot 874  complete
 plot/over temp[g=g5day at ave]
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 74 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
- -DELETE TEMP     M: 82 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- -DELETE TEMP     M: 98 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
+ -DELETE TEMP     M:212 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:   -999   -999  M:    2    2  N:    1    1
+ -DELETE TEMP     M:224 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
+ -DELETE TEMP     M:240 dset:   1 I:   -999   -999  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
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ eval    EX#1     C:  6 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @AVE
- reading TEMP     M: 98 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- regrid  TEMP     M: 82 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ found   TEMP     M:242 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
+ regrid  TEMP     M:240 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
-PPL plot 868  complete
+PPL plot 875  complete
 plot/over temp[g=g5day at asn]
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 70 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
- -DELETE TEMP     M: 74 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- -DELETE TEMP     M: 82 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
+ -DELETE TEMP     M:212 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:   -999   -999  M:    2    2  N:    1    1
+ -DELETE TEMP     M:224 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
+ -DELETE TEMP     M:240 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
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ eval    EX#1     C:  6 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @ASN
- reading TEMP     M: 82 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- regrid  TEMP     M: 74 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ found   TEMP     M:242 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
+ regrid  TEMP     M:240 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
-PPL plot 869  complete
+PPL plot 876  complete
  
 set mode/last interp
 cancel region
@@ -70253,36 +71146,36 @@ let a2 = _e[ge=e2pt]+_f[gf=f2pt]
  
 list a1[ge=eoffset at ave, gf=fax4day at ave]
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 66 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
- -DELETE TEMP     M: 70 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- -DELETE TEMP     M: 74 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 (G087)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- dealloc  dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- allocate dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- dealloc  dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- allocate dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      F1PT
- allocate dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G092)          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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A1 --> (G092)           @AVE
+ -DELETE TEMP     M:212 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:   -999   -999  M:    2    2  N:    1    1
+ -DELETE TEMP     M:224 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
+ -DELETE TEMP     M:240 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 (G089)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
+ dealloc  dynamic grid (G089)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
+ allocate dynamic grid (G089)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ dealloc  dynamic grid (G089)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ allocate dynamic grid (G089)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      F1PT
+ allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G091)          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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A1 --> (G091)           @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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- pseudo  _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- pseudo  _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- -DELETE _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- -DELETE _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- regrid  A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- regrid  A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ 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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ pseudo  _E       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N: -999 -999
+ allocate dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
+ pseudo  _F       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    1
+ -DELETE _F       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    1
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
+ -DELETE _E       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N: -999 -999
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ regrid  A1       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
+ regrid  A1       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ -DELETE A1       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
+ dealloc  dynamic grid (G091)          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)
@@ -70305,29 +71198,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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A1       M: 70 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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G092)          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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A1 --> (G092)           @SUM
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ -DELETE A1       M:224 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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G091)          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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A1 --> (G091)           @SUM
  strip regrid on F: A1 --> ENTERMED         @SUM
- 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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- pseudo  _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- -DELETE _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- -DELETE _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- regrid  A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- regrid  A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ found   A1       M:212 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1    1
+ regrid  A1       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
+ regrid  A1       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ -DELETE A1       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
+ dealloc  dynamic grid (G091)          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)
@@ -70350,29 +71235,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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A1       M: 74 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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G092)          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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A1 --> (G092)           @VAR
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ -DELETE A1       M:240 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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G091)          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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A1 --> (G091)           @VAR
  strip regrid on F: A1 --> ENTERMED         @VAR
- 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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- pseudo  _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- pseudo  _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- -DELETE _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- -DELETE _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- regrid  A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- regrid  A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ found   A1       M:212 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1    1
+ regrid  A1       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
+ regrid  A1       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ -DELETE A1       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
+ dealloc  dynamic grid (G091)          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)
@@ -70396,35 +71273,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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A1       M: 70 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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- allocate dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- allocate dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      F2PT
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G101)          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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A2 --> (G101)           @AVE
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ -DELETE A1       M:224 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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
+ allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      F2PT
+ allocate dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G103)          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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A2 --> (G103)           @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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- pseudo  _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- -DELETE _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- -DELETE _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- regrid  A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- regrid  A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ 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 (G094)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ pseudo  _E       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
+ allocate dynamic grid (G108)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
+ pseudo  _F       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1   48
+ -DELETE _F       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1   48
+ dealloc  dynamic grid (G108)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
+ -DELETE _E       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ regrid  A2       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ regrid  A2       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ -DELETE A2       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ dealloc  dynamic grid (G103)          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)
@@ -70447,29 +71324,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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A2       M: 74 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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G101)          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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A2 --> (G101)           @SUM
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ -DELETE A2       M:240 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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G103)          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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A2 --> (G103)           @SUM
  strip regrid on F: A2 --> ENTERMED         @SUM
- 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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- pseudo  _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- pseudo  _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- -DELETE _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- -DELETE _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- regrid  A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- regrid  A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ found   A2       M:208 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   48
+ regrid  A2       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ regrid  A2       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ -DELETE A2       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ dealloc  dynamic grid (G103)          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)
@@ -70492,29 +71361,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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A2       M: 70 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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G101)          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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A2 --> (G101)           @VAR
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ -DELETE A2       M:224 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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G103)          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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A2 --> (G103)           @VAR
  strip regrid on F: A2 --> ENTERMED         @VAR
- 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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- pseudo  _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- -DELETE _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- -DELETE _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- regrid  A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- regrid  A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ found   A2       M:208 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   48
+ regrid  A2       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ regrid  A2       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ -DELETE A2       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ dealloc  dynamic grid (G103)          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)
@@ -70540,133 +71401,122 @@ 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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A2       M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   48
- -DELETE A2       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   48
- -DELETE A2       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   48
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      F2PT
- -DELETE A1       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1    1
- -DELETE A1       M: 64 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1    1
- -DELETE A1       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1    1
- dealloc  dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      F1PT
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ -DELETE A2       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ -DELETE A2       M:208 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   48
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      F2PT
+ -DELETE A1       M:212 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1    1
+ dealloc  dynamic grid (G089)          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 (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- dealloc  dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- allocate dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- allocate dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G092)          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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A1 --> (G092)           @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 (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- pseudo  _E       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- regrid  A1       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   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 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 (G089)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ dealloc  dynamic grid (G089)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ allocate dynamic grid (G089)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G091)          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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ strip regrid on E: A1 --> (G091)           @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 (G089)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ pseudo  _E       M:212 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N: -999 -999
+ dealloc  dynamic grid (G089)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ regrid  A1       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E1PT]
                         regrid: 1 delta on E at MAX
              SUBSET   : 2 points (E)
  1.1 / 1:     ....
  2.1 / 2:  2.50000
 list a2[ge=eoffset at max]
- -DELETE _E       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A1       M: 54 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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- allocate dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G101)          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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A2 --> (G101)           @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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- pseudo  _E       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- regrid  A2       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ -DELETE _E       M:212 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N: -999 -999
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ -DELETE A1       M:240 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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ allocate dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G103)          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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ strip regrid on E: A2 --> (G103)           @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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ pseudo  _E       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ regrid  A2       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E2PT]
                         regrid: 1 delta on E at MAX
              SUBSET   : 2 points (E)
  1.1 / 1:  1.50000
  2.1 / 2:  2.50000
 list a4[ge=eoffset at max]
- -DELETE _E       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A2       M: 62 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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G096)          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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A4 --> (G096)           @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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- pseudo  _E       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- regrid  A4       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ -DELETE _E       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ -DELETE A2       M:224 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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
+ allocate dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
+ allocate dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G094)          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 (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ strip regrid on E: A4 --> (G094)           @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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
+ pseudo  _E       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
+ regrid  A4       M:244 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E4PT]
                         regrid: 1 delta on E at MAX
              SUBSET   : 2 points (E)
  1.1 / 1:  1.50000
  2.1 / 2:  2.50000
 list a4[ge=eoffset at min]
- -DELETE _E       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A4       M: 56 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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G096)          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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A4 --> (G096)           @MIN
- 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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- pseudo  _E       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- regrid  A4       M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ -DELETE _E       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ -DELETE A4       M:244 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 (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G094)          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 (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ strip regrid on E: A4 --> (G094)           @MIN
+ found   A4       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
+ regrid  A4       M:244 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
+ dealloc  dynamic grid (G094)          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.50000
  2.1 / 2:  2.00000
 list a4[ge=eoffset at sum] ! 5+5.5+6+6.5=23
- -DELETE _E       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A4       M: 50 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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G096)          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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A4 --> (G096)           @SUM
- 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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- pseudo  _E       M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- regrid  A4       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ -DELETE A4       M:244 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 (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G094)          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 (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ strip regrid on E: A4 --> (G094)           @SUM
+ found   A4       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
+ regrid  A4       M:244 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E4PT]
                         regrid: 1 delta on E at SUM
              SUBSET   : 2 points (E)
@@ -70678,20 +71528,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
- -DELETE _E       M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A4       M: 74 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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- allocate dynamic grid (G096)          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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ -DELETE A4       M:244 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 (G094)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ allocate dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ allocate dynamic grid (G094)          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 (G094)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ pseudo  _F       M:244 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
              VARIABLE : _F[GF=EDAY]
              SUBSET   : 5 points (FORECAST)
  01-JAN-1990 00 / 1:  32493.0
@@ -70701,8 +71550,8 @@ list afcst
  05-JAN-1990 00 / 5:  32497.0
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G096)
-    GRID (G096)
+ Last successful data access was on grid (G094)
+    GRID (G094)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
@@ -70711,21 +71560,18 @@ show grid
  normal    E
  EDAY      FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
 list afcst[gf=ehour at max]
- -DELETE _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
- dealloc  dynamic grid (G096)          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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
- dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
- allocate dynamic grid (G103)          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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
- strip regrid on F: AFCST --> (G103)           @MAX
- eval    AFCST    C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
- allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- regrid  AFCST    M: 46 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
- dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
+ -DELETE _F       M:244 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
+ dealloc  dynamic grid (G094)          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 (G108)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
+ dealloc  dynamic grid (G108)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
+ allocate dynamic grid (G108)          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 (G108)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
+ strip regrid on F: AFCST --> (G108)           @MAX
+ found   AFCST    M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
+ regrid  AFCST    M:244 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
+ dealloc  dynamic grid (G108)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
              VARIABLE : _F[GF=EDAY]
                         regrid: 24 hour on F at MAX
              SUBSET   : 5 points (FORECAST)
@@ -70736,8 +71582,8 @@ list afcst[gf=ehour at max]
  05-JAN-1990 00 / 5:  32497.0
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G103)
-    GRID (G103)
+ Last successful data access was on grid (G108)
+    GRID (G108)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
@@ -70749,8 +71595,10 @@ show grid
 set mode/last diag
 set mode/last calendar
  
-GO bn_reset
+GO bn_reset bn_aggregate_e
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_aggregate_e
 GO bn_aggregate_e
 ! bn_aggregate_e.jnl
 ! using the DEFINE DATA/AGGREGATE/E command
@@ -70775,25 +71623,26 @@ 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 (G103)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
+ 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 (G108)          COADSX116_COADSY52_6NORMAL    TIME13    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
+ 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]
- strip aggregate gathering SST on E axis:     1     4 dset:   5
- reading SST      M:120 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering SST on E axis:     1     1 dset:   1
- -DELETE SST      M:120 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:120 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering SST on E axis:     2     2 dset:   3
- -DELETE SST      M:120 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:120 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering SST on E axis:     3     3 dset:   2
- -DELETE SST      M:120 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:120 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering SST on E axis:     4     4 dset:   4
- -DELETE SST      M:120 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ strip aggregate gathering SST on E axis:        1        4 dset:   5
+ reading SST      M:248 dset:   1 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering SST on E axis:        1        1 dset:   1
+ -DELETE SST      M:248 dset:   1 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:248 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering SST on E axis:        2        2 dset:   3
+ -DELETE SST      M:248 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:248 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering SST on E axis:        3        3 dset:   2
+ -DELETE SST      M:248 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:248 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering SST on E axis:        4        4 dset:   4
+ -DELETE SST      M:248 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
  doing --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
+ final --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
              VARIABLE : SST_IN (Deg C)
              DATA SET : Ensemble series of 4 datasets patterned on ens1
              FILENAME : fourfiles
@@ -70808,23 +71657,27 @@ list/i=3 sst[T=@ave]
  4   / 4:  114.051  113.765  111.568  109.826  106.903  102.245     ....     ....     ....
  
 show memory/all  ! show memory-resident variables before canceling dataset
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 540 words
+    Current cache: 504 words
 all data in memory:
- SST[D=fourfiles]                  YE    mr:120  blk1:1  nblk:1
-    3  /106W           1  /12N          ...  / ...         ...  /01-JAN 00:45   1  /0.5          ...  / ...
-    3  /104W           9  /30N          ...  / ...         ...  /31-DEC 06:34   4  /4.5          ...  / ...
+ SST[D=fourfiles]                  YE    mr:248 size:72
+         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:118  blk1:2  nblk:1
-    3  /106W           1  /12N          ...  / ...           1  /01-JAN 00:45   1  /0.5          ...  / ...
-    3  /104W           9  /30N          ...  / ...          12  /31-DEC 06:34   4  /4.5          ...  / ...
+ SST[D=fourfiles]                  YTE   mr:242 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              ... / ...
  
 cancel data fourfiles
- dealloc  dynamic grid (G103)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
+ dealloc  dynamic grid (G108)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
  canceling dset fourfiles
- -DELETE SST      M:118 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M:    1    4  N: -999 -999
- -DELETE SST      M:120 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L: -999 -999  M:    1    4  N: -999 -999
+ -DELETE SST      M:242 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12  M:    1    4  N: -999 -999
+ -DELETE SST      M:248 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:   -999   -999  M:    1    4  N: -999 -999
 show memory/all  ! show memory-resident variables after  canceling dataset
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 540 words
+    Current cache: 0 words
 all data in memory:
  
 ! 12/15 now do again adding COADS to de-align toe dset #s from the sequence #s
@@ -70840,8 +71693,8 @@ define data/agg/E/hide fourfiles = ens1, ens3, ens2, ens4
 show data
      currently SET data sets:
     1> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
     6> fourfiles  (default)  Ensemble aggregation
  name     title                             I         J         K         L         M         N
@@ -70864,12 +71717,12 @@ let/d=ens3 airt = sst + 1
 let/d=ens4 airt = sst + 1
  
 ENSEMBLE fourfiles = ens1, ens3, ens2, ens4
- getgrid AIRT     C:  5 dset:   4 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
- getgrid AIRT     C:  5 dset:   3 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
- getgrid AIRT     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 GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
+ getgrid AIRT     C:  5 dset:   4 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13
+ getgrid AIRT     C:  5 dset:   3 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13
+ getgrid AIRT     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 GOH1            COADSX116_COADSY52_6NORMAL    TIME13
 show data fourfiles
      currently SET data sets:
     6> fourfiles  (default)  Ensemble aggregation
@@ -70879,34 +71732,35 @@ 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 (G092)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
+ 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 (G091)          COADSX116_COADSY52_6NORMAL    TIME13    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
+ 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]
- strip aggregate gathering AIRT on E axis:     1     4 dset:   6
- reading AIRT     M:120 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     1     1 dset:   2
- -DELETE AIRT     M:120 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- eval    AIRT     C:  9 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:120 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     2     2 dset:   4
- -DELETE AIRT     M:112 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- eval    AIRT     C:  9 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:112 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     3     3 dset:   3
- -DELETE AIRT     M:110 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- eval    AIRT     C:  9 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:110 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     4     4 dset:   5
- -DELETE AIRT     M:106 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ strip aggregate gathering AIRT on E axis:        1        4 dset:   6
+ reading AIRT     M:248 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering AIRT on E axis:        1        1 dset:   2
+ -DELETE AIRT     M:248 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ eval    AIRT     C:  9 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:248 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:236 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:236 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing aggregate gathering AIRT on E axis:        2        2 dset:   4
+ -DELETE AIRT     M:234 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ eval    AIRT     C:  9 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:234 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:236 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:236 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing aggregate gathering AIRT on E axis:        3        3 dset:   3
+ -DELETE AIRT     M:232 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ eval    AIRT     C:  9 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:232 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:236 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:236 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing aggregate gathering AIRT on E axis:        4        4 dset:   5
+ -DELETE AIRT     M:228 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
  doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
+ final --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
              VARIABLE : AIR TEMPERATURE (DEG C)
              DATA SET : Ensemble series of 4 datasets patterned on ens1
              FILENAME : fourfiles
@@ -70922,10 +71776,10 @@ list/i=3 airt[T=@ave]
  
 ! create an ensemble where one member is missing
 ENSEMBLE fourfiles_gap = ens1, -, ens3, ens4
- getgrid AIRT     C:  5 dset:   4 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
- getgrid AIRT     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 GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
+ getgrid AIRT     C:  5 dset:   4 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13
+ getgrid AIRT     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 GOH1            COADSX116_COADSY52_6NORMAL    TIME13
 show data/files fourfiles_gap
      currently SET data sets:
     7> fourfiles_gap  (default)  Ensemble aggregation
@@ -70933,37 +71787,38 @@ show data/files fourfiles_gap
  SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
  AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      1:4       ...
  
-          Aggregated datasets:
-      1: ./ens1.nc
-      2: (dummy)
-      3: ./ens3.nc
-      4: ./ens4.nc
+          Member datasets:
+      7.1: ./ens1.nc
+      7.2: (dummy)
+      7.3: ./ens3.nc
+      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 (G092)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
+ 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 (G091)          COADSX116_COADSY52_6NORMAL    TIME13    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
+ 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]
- strip aggregate gathering AIRT on E axis:     1     4 dset:   7
- reading AIRT     M:114 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     1     1 dset:   2
- -DELETE AIRT     M:114 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- dummy AIRT     M:114 dset: 401 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     2     2 dset: 401
- -DELETE AIRT     M:114 dset: 401 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- eval    AIRT     C:  9 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:114 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:102 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:102 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     3     3 dset:   4
- -DELETE AIRT     M: 98 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- eval    AIRT     C:  9 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M: 98 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:102 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:102 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     4     4 dset:   5
- -DELETE AIRT     M: 96 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ strip aggregate gathering AIRT on E axis:        1        4 dset:   7
+ reading AIRT     M:236 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering AIRT on E axis:        1        1 dset:   2
+ -DELETE AIRT     M:236 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ dummy AIRT     M:236 dset:5001 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering AIRT on E axis:        2        2 dset:5001
+ -DELETE AIRT     M:236 dset:5001 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ eval    AIRT     C:  9 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ found   SST      M:248 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:236 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:236 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing aggregate gathering AIRT on E axis:        3        3 dset:   4
+ -DELETE AIRT     M:220 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ eval    AIRT     C:  9 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ found   SST      M:232 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:220 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:220 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing aggregate gathering AIRT on E axis:        4        4 dset:   5
+ -DELETE AIRT     M:236 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
  doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=7]
+ final --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=7]
              VARIABLE : AIR TEMPERATURE (DEG C)
              DATA SET : Ensemble series of 4 datasets patterned on ens1
              FILENAME : fourfiles_gap
@@ -71019,15 +71874,15 @@ let/d=2/units="`vin,return=units`"/title="`vin,return=title`" \
 show data
      currently SET data sets:
     1> ./coads_uw.nc
- name     title                             I         J         K         L         M         N
- UWND     ZONAL WIND                       1:30      1:30      ...       1:12      ...       ...
- VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      ...       ...
- SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12
+ VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12
+ SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12
  
     2> ./navy_uw.nc  (default)
- name     title                             I         J         K         L         M         N
- UIN      ZONAL WIND                       1:30      1:30      ...       1:30      ...       ...
- VIN      MERIDIONAL WIND                  1:30      1:30      ...       1:30      ...       ...
+ name     title                             I         J         K         L
+ UIN      ZONAL WIND                       1:30      1:30      ...       1:30
+ VIN      MERIDIONAL WIND                  1:30      1:30      ...       1:30
  ------------------------------
  VWND[D=navy_uw] = VIN[D=2,GXY=VWND[D=1],GT=VWND[D=1]@MOD]
  UWND[D=navy_uw] = UIN[D=2,GXY=UWND[D=1],GT=UWND[D=1]@MOD]
@@ -71121,13 +71976,13 @@ show command define
  DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+         /EDGES/CALENDAR/BOUNDS/QUIET/MONTHLY/LIKE
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
  DEFINE ALIAS
  DEFINE SYMBOL
  DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE/U
  DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
 show command show
  SHOW/ALL
@@ -71137,12 +71992,12 @@ show command show
  SHOW EXPRSION/ALL
  SHOW LIST/ALL
  SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
-       /HIDDEN
+       /HIDDEN/MEMBERS
  SHOW MODE/ALL
  SHOW MOVIE/ALL
  SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
  SHOW COMMANDS/ALL/BRIEF
- SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+ SHOW MEMORY/ALL/DIAGNOST/TEMPORY/PERMANT/FREE
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
  SHOW VIEWPORT/ALL
  SHOW TRANFORM/ALL
@@ -71235,20 +72090,20 @@ show data/brief/files
      currently SET data sets:
     1> ./coads_climatology.cdf
     6> fourfiles     Ensemble aggregation
-          Aggregated datasets:
-      1: ./ens1.nc
-      2: ./ens2.nc
-      3: ./ens3.nc
-      4: ./ens4.nc
+          Member datasets:
+      6.1: ./ens1.nc
+      6.2: ./ens2.nc
+      6.3: ./ens3.nc
+      6.4: ./ens4.nc
     7> some     Ensemble aggregation
-          Aggregated datasets:
-      1: ./ens1.nc
-      2: ./ens2.nc
+          Member datasets:
+      7.1: ./ens1.nc
+      7.2: ./ens2.nc
     8> more  (default)  Ensemble aggregation
-          Aggregated datasets:
-      1: ./ens2.nc
-      2: ./ens3.nc
-      3: ./ens4.nc
+          Member datasets:
+      8.1: ./ens2.nc
+      8.2: ./ens3.nc
+      8.3: ./ens4.nc
  
 ! Cancel a member of all the ensembles.  All the ensembles get deleted.
 cancel data ens2
@@ -71257,8 +72112,10 @@ show data/brief
     1> ./coads_climatology.cdf  (default)
  
  
-GO bn_reset
+GO bn_reset bn_6d_lab_mode
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_6d_lab_mode
 GO bn_6d_lab_mode
 ! bn_6d_lab_mode.jnl
 !
@@ -71272,15 +72129,15 @@ set mode 6d_lab  ! this is the default setting
 show data
      currently SET data sets:
     1> ./gt4d011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
+ SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
+ U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
+ V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
+ W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
+ TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
+ TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
+ PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  
 cancel mode 6d_lab
 show data
@@ -71307,8 +72164,6 @@ show grid temp
  PSYT1     LATITUDE           100 i   28.836S              48.568N             full
  PSZT2     DEPTH (m)           27 i-  5                    3824                full
  TIME14    TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
- normal    E
- normal    F
 cancel mode 6d_lab
 show grid temp
     GRID PS3DT21
@@ -71360,14 +72215,15 @@ stat temp
 set mode diag
 set mode 6d_lab
 list/L=1:8 taux[x=@ave,y=@ave]
- dealloc  dynamic grid PS3DT21         PSXT      PSYT1     PSZT2     TIME14    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 PS2DU2          PSXU      PSYU      NORMAL    TIME14    NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT21         PSXT      PSYT1     PSZT2     TIME14
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME14
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1  160  J:    1  100  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1    160  J:    1  100  K: -999 -999  L:      1      8
  strip --> TAUX[Y=28.8361S:51.4321N at AV4,D=1]
- reading TAUX     M:104 dset:   1 I:   91  108  J:   35   55  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
+ reading TAUX     M:226 dset:   1 I:     91    108  J:   35   55  K: -999 -999  L:      1      8
  doing --> TAUX[Y=3.5S:3.5N at AV4,D=1]
+ final --> TAUX[Y=3.5S:3.5N at AV4,D=1]
              VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
              FILENAME : gt4d011.cdf
              SUBSET   : 8 points (TIME)
@@ -71384,12 +72240,12 @@ list/L=1:8 taux[x=@ave,y=@ave]
 cancel mode 6d_lab
 list/L=1:8 taux[x=@sum,y=@sum]
  dealloc  dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME14
- getgrid EX#1     C:  5 dset:   1 I:    1    1  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 PS2DU2          PSXU      PSYU      NORMAL    TIME14
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1  160  J:    1  100  K: -999 -999  L:    1    8
+ eval    EX#1     C:  5 dset:   1 I:      1    160  J:    1  100  K: -999 -999  L:      1      8
  strip --> TAUX[Y=28.8361S:51.4321N at SM4,D=1]
- reading TAUX     M: 94 dset:   1 I:   91  108  J:   35   55  K: -999 -999  L:    1    8
+ found   TAUX     M:226 dset:   1 I:     91    108  J:   35   55  K: -999 -999  L:      1      8
  doing --> TAUX[Y=3.5S:3.5N at SM4,D=1]
              VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
              FILENAME : gt4d011.cdf
@@ -71411,8 +72267,10 @@ set mode 6d_lab
  
  
 ! *********** v6.82 Additions ***********
-GO bn_reset
+GO bn_reset bn682_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn682_bug_fixes
 GO bn682_bug_fixes
 ! bn682_bug_fixes.jnl
 ! test various fixes that went into version 6.82
@@ -71420,6 +72278,7 @@ GO bn682_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err681_dims_direction
 ! err681_dims_direction.jnl
 ! ticket 1955: Code still existed that determined axis direction
@@ -71447,10 +72306,10 @@ use dims_not_coord
 sh dat
      currently SET data sets:
     1> ./dims_not_coord.nc  (default)
- name     title                             I         J         K         L         M         N
- U        zonal current                    1:4       1:7       1:1       ...       ...       ...
- LON_C    uv longitude                     1:4       1:7       ...       ...       ...       ...
- LAT_C    uv latitude                      1:4       1:7       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ U        zonal current                    1:4       1:7       1:1       ...
+ LON_C    uv longitude                     1:4       1:7       ...       ...
+ LAT_C    uv latitude                      1:4       1:7       ...       ...
  
 sho grid lon_c
     GRID GOS2
@@ -71459,15 +72318,15 @@ sho grid lon_c
  TAU1      Y                    7 r   1                    7                   full
  normal    Z
  normal    T
- normal    E
- normal    F
  
  
 ! *********** v6.83 Additions ***********
 !  (was released as v6.84)
  
-GO bn_reset
+GO bn_reset bn683_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn683_bug_fixes
 GO bn683_bug_fixes
 ! bn683_bug_fixes.jnl
 ! test various fixes that went into version 6.83
@@ -71475,6 +72334,7 @@ GO bn683_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_shrink_axlab
 ! err682_shrink_axlab.jnl
 ! See ticket 1958. Scripts may want the axis labels to
@@ -71502,6 +72362,7 @@ set mode/last shrink_ylab
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_xact_high_prec
 ! err682_xact_high_prec.jnl
 ! based on an example from the Users List,
@@ -71509,6 +72370,8 @@ GO err682_xact_high_prec
  
 ! shows that the @XACT regridding in double-precision Ferret is broken.
  
+! 3/17 *sh* - broke after change to RESHAPE in GCF_IMPOSE_AXES
+!           - fixed it by cleaning up the definition of var_regrid
  
 Let time = {\
  22585.3295833333,\
@@ -71525,11 +72388,14 @@ Let time = {\
 Define Axis /T /From /T0=1-JAN-1950 /Units=days my_axis = time
  
 Let fake_var = T[GT=my_axis]
-Let var = RANDU( fake_var )
-Let var_regrid = RESHAPE( var, fake_var )
+! this was the definition prior to 3/17
+!Let var = RANDU( fake_var )
+!Let var_regrid = RESHAPE( var, fake_var )
+Let var_regrid = RANDU( fake_var )   ! new definition
+ 
  
 List /T="2-nov-2011 07:54":"2-nov-2011 08:04" var_regrid
-             VARIABLE : RESHAPE( VAR, FAKE_VAR )
+             VARIABLE : RANDU( FAKE_VAR )
              SUBSET   : 10 points (TIME)
  02-NOV-2011 07:54:36 /  1:  0.625140
  02-NOV-2011 07:55:36 /  2:  0.220931
@@ -71587,6 +72453,7 @@ List /T="2-nov-2011 07:54:30":"2-nov-2011 07:54:50" var_sec
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_if_yes_exit
 ! err682_if_yes_exit.jnl
 ! Ticket 1965
@@ -71603,6 +72470,7 @@ if `test` then exit
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_use_no_quotes
 ! err682_use_no_quotes.jnl
 ! See ticket 1974 - on 64-bit machines, this statement causes a crash.
@@ -71616,6 +72484,7 @@ CANCEL MODE ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_axis_no_clue
 ! err682_axis_no_clue.jnl
 ! See ticket 1975. The axis sax is intended to be
@@ -71627,12 +72496,13 @@ use xsz.nc
 sh dat
      currently SET data sets:
     1> ./xsz.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:5       1:7       1:3       ...       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:5       1:7       1:3       ...
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_grid_merge
 ! err682_grid_merge.jnl
 ! Bug 1972. When merging contexts, the calendar time-axis
@@ -71679,6 +72549,7 @@ list b[T=1-JAN-1960:1-JAN-1961]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_scale_no_offset
 ! err682_scale_no_offset.jnl
 ! See ticket 1980 and the report on the Ferret list at
@@ -71714,6 +72585,7 @@ say `sst_rms[x=@nbd,y=@nbd]`  SHOULD BE 30
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_append_packed
 ! err682_append_packed.jnl
 ! See ticket 2004. Write packed variable with scale attributes
@@ -71754,8 +72626,10 @@ list temp  ! values should match those above.
  
 set mode/last upcase_output
  
-GO bn_reset
+GO bn_reset bn_outtype
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_outtype
 GO bn_outtype
 ! bn_outtype
 ! Tests of output-type control:
@@ -71789,7 +72663,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -71842,7 +72716,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -71884,7 +72758,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -71926,7 +72800,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -71959,7 +72833,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -71993,7 +72867,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72056,7 +72930,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72104,7 +72978,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72161,7 +73035,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72199,7 +73073,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72237,7 +73111,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72275,7 +73149,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72309,7 +73183,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72343,8 +73217,10 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
 ! Go back to default setting.
 can list/outtype
  
-GO bn_reset
+GO bn_reset bn_ribbon_plot
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ribbon_plot
 GO bn_ribbon_plot
 ! bn_ribbon_plot.jnl
 ! Test color-line-by variable style of plots
@@ -72489,8 +73365,10 @@ RIBBON/vs/over/nolab/thick=3/sym=20/key/set xpts, ypts, var
 ppl shakey,1,0
 ppl ribbon/over
  
-GO bn_reset
+GO bn_reset bn_descr_4digit
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_descr_4digit
 GO bn_descr_4digit
  ! bn_descr_4digit.jnl
  ! See ticket 1969: step files have 3- or 4-digit extensions
@@ -72500,8 +73378,8 @@ use coads_clim_4digit.des
 sh dat
      currently SET data sets:
     1> ./coads_clim_4digit.des  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:4       1:4       ...       1:6       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:4       1:4       ...       1:6
  
 list/x=180/y=0 sst
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
@@ -72517,8 +73395,10 @@ list/x=180/y=0 sst
  17-MAY-1900 / 5:  28.41
  17-JUN-1900 / 6:  28.23
  
-GO bn_reset
+GO bn_reset bn_axis_outtype
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_outtype
 GO bn_axis_outtype
 ! bn_axis_outtype.jnl
 !  SET AXIS/OUTTYPE
@@ -72541,7 +73421,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
@@ -72575,7 +73455,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
@@ -72619,7 +73499,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72660,7 +73540,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -72686,7 +73566,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -72712,7 +73592,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -72753,8 +73633,10 @@ save/clobber/file=mytype.nc my_data
 cancel mode ignore
  
  
-GO bn_reset
+GO bn_reset bn_axis_nonmonotonic
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_nonmonotonic
 GO bn_axis_nonmonotonic
 ! bn_axis_nonmonotonic.jnl
 ! bn_define_axis doesnt test the case where the varible is not monotonic
@@ -72768,8 +73650,10 @@ define axis/t/units=days tax = tvar
  
 cancel mode ignore
  
-GO bn_reset
+GO bn_reset bn_vec_mod
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_vec_mod
 GO bn_vec_mod
 ! bn_vec_mod.jnl
 ! /MODULO qualifier for the vector command.
@@ -72793,8 +73677,10 @@ vec/MOD/HLIM=-180:180 u,fakev,geolon_c,geolat_c
 can view
  
 ! *********** v6.85 Additions ***********
-GO bn_reset
+GO bn_reset bn685_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn685_bug_fixes
 GO bn685_bug_fixes
 ! bn685_bug_fixes.jnl
 ! test various fixes that went into version 6.85
@@ -72802,6 +73688,7 @@ GO bn685_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_label_quotes
 ! err684_label_quotes.jnl
 ! See ticket 1298.
@@ -72829,6 +73716,7 @@ label 4.5 .5 0 0 .3 "'hello'"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_context_shape
 ! when limits are omitted with a compressing transformation the grave
 ! accent R=SHAPE erroneously includes the corresponding axis in the shape
@@ -72859,6 +73747,7 @@ XY
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_tax_fcns
 !err684_tax_fcns.jnl
 ! See ticket 2043, bug in workaround for single-precision arguments
@@ -72947,6 +73836,7 @@ GO err684_tax_fcns
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_save_subset
 ! err684_bug_save_subset
 ! see ticke 2064, precision in internal comparison of coordinate data
@@ -72959,6 +73849,7 @@ save/clobber/file=aa.nc/i=5:15 sh
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_save_subset
 ! err684_bug_save_subset
 ! see ticke 2064, precision in internal comparison of coordinate data
@@ -72971,6 +73862,7 @@ save/clobber/file=aa.nc/i=5:15 sh
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_line_plot_zero
 ! err684_line_plot_zero.jnl
 ! plot all-zero variable gave blank plot.
@@ -72985,6 +73877,7 @@ YAXIS_MAX = "1.00000000"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_delimited_precision
 ! err684_delimited_precision.jnl
 ! 5/2013 Fixing bug 2066
@@ -73019,10 +73912,10 @@ set data/ez/format=delim/del=" "/var="day,lon,lat,tim"/type="numeric,longitude,l
 list/prec=10 day, lon, lat, tim
              DATA SET: ./delim_prec.dat
              X: 0.5 to 4.5
- Column  1: DAY
- Column  2: LON is LON (degrees_east)(Longitude)
- Column  3: LAT is LAT (degrees_north)(Latitude)
- Column  4: TIM is TIM (hours)(Time of day)
+ Column  1: DAY is day
+ Column  2: LON is lon (degrees_east)(Longitude)
+ Column  3: LAT is lat (degrees_north)(Latitude)
+ Column  4: TIM is tim (hours)(Time of day)
                  DAY       LON          LAT            TIM
 1   / 1:  734654.0000  330.1234500  42.00001000  2.777777806E-04
 2   / 2:  734654.0104  330.1234600  42.00004000  2.777777861E-04
@@ -73032,6 +73925,7 @@ list/prec=10 day, lon, lat, tim
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err6842_context_shape
 ! err6842_context_shape.jnl
 ! 5/2013 acm
@@ -73084,6 +73978,7 @@ XYT
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_evnt_z
 ! err684_evnt_z.jnl
 ! see ticket 2054
@@ -73124,6 +74019,7 @@ list my_var, my_event
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_save_expression
 ! err684_save_expression.jnl
 ! Bug 2076. If we write out an expression that has not been defined
@@ -73153,7 +74049,7 @@ variables:
 		A:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73182,7 +74078,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73233,7 +74129,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73268,6 +74164,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_degC_axlab
 ! err684_degC_axlab.jnl
 ! ACM 6/2013
@@ -73287,6 +74184,7 @@ set mode/last logo
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_null_stringwrite
 ! err684_null_stringwrite.jnl
 ! 18-Jun-2013 ACM
@@ -73309,11 +74207,12 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_FillValue_xml
 ! err684_FillValue_xml.jnl
 ! ACM 6/2013
 !
-! See the dataset at http://ferret.pmel.noaa.gov/thredds/dodsC/woa09_1deg_monthly
+! See the dataset at http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/woa09_1deg_monthly
 ! where the "number of" variables have  _FillValues attributes = -2147483647
 ! This value was being written to the xml headers as a float, without enough precision.
 ! See las ticket #761, fixes in show_data_set_vars_xml.F
@@ -73334,7 +74233,7 @@ sh dat/var/xml
    <value><![CDATA[Number of O2 Utilization Observations]]></value>
 </attribute>
 <attribute name="_FillValue" type="float">
-   <value> -2147483647.</value>
+   <value>-2147483647.</value>
 </attribute>
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
@@ -73387,6 +74286,7 @@ sh dat/var/xml
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_axticlab
 ! err684_axticlab
 ! 7/10/2013 *acm
@@ -73410,6 +74310,7 @@ cancel mode meta
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_dotstart
 ! err684_dotstart.jnl
 ! 12-Jul-2013 ACM
@@ -73436,6 +74337,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_vfine_to_coarse
  ! err684_vfine_to_coarse
  ! see ticket 2070.
@@ -73565,6 +74467,7 @@ list v eq v_coarse[gf=v at ave]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_repeated_coordindates
 ! err685_repeated_coordindates.jnl
 !  The NOTE about repeated axis coordaintes reported the wrong index location.
@@ -73574,6 +74477,7 @@ use latestOb.nc
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_packed_output
 ! err684_packed_output.jnl
 ! See ticket 2089
@@ -73614,6 +74518,7 @@ list/i=1:3 sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_string_dim_name
 ! err685_string_dim_name.jnl
 ! Ticket 2091. If the string variable shares its dimension name,
@@ -73637,6 +74542,7 @@ list ..varnames
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_define_grid
 ! err684_define_grid.jnl
 ! 25-Oct-2013 ACM
@@ -73651,8 +74557,10 @@ 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
  
  
-GO bn_reset
+GO bn_reset bn_dsg_e_x
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dsg_e_x
 GO bn_dsg_e_x
 ! bn_dsg_e.jnl
 !
@@ -73666,7 +74574,7 @@ use dsg.nc
 sh dat
      currently SET data sets:
     1> ./dsg.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  ROWSIZE  number of obs for this profile   ...       ...       ...       ...       1:3       ...
  PROFILE  profile ID: Cruise and Station   ...       ...       ...       ...       1:3       ...
  TIME     time                             ...       ...       ...       ...       1:3       ...
@@ -73674,8 +74582,8 @@ sh dat
  LONGITUDE
           station longitude                ...       ...       ...       ...       1:3       ...
  POT_TEMP_DEGC
-          pot_temp_degc                    1:34      ...       ...       ...       ...       ...
- SAL      sal                              1:34      ...       ...       ...       ...       ...
+          pot_temp_degc                    1:34      ...       ...       ...
+ SAL      sal                              1:34      ...       ...       ...
  
 sh att profile
      attributes for dataset: ./dsg.nc
@@ -73700,8 +74608,6 @@ sh grid sal
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! This file from the datset "West Coast Carbon cruises" in our
 ! example erdadp, has the cf_role attribute on a coordinate variable.
@@ -73713,15 +74619,15 @@ use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
 sh dat 2
      currently SET data sets:
     2> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  PROF     Prof                             ...       ...       ...       ...       1:21      ...
  TIME     Time                             ...       ...       ...       ...       1:21      ...
  LATITUDE Latitude                         ...       ...       ...       ...       1:21      ...
  LONGITUDE
           Longitude                        ...       ...       ...       ...       1:21      ...
  ROWSIZE  Number of Observations for this  ...       ...       ...       ...       1:21      ...
- PRESS_DB PRESS_DB                         1:373     ...       ...       ...       ...       ...
- PCO2     PCO2                             1:373     ...       ...       ...       ...       ...
+ PRESS_DB PRESS_DB                         1:373     ...       ...       ...
+ PCO2     PCO2                             1:373     ...       ...       ...
  
 sh att (profile)
      attributes for dataset: ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
@@ -73748,11 +74654,11 @@ sh grid pco2
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
-GO bn_reset
+GO bn_reset bn_nco_append
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_nco_append
 GO bn_nco_append
 ! bn_nco_append.jnl
 ! 5/2013 add a test appending files with ncks
@@ -73768,14 +74674,14 @@ use z2
 sh dat
      currently SET data sets:
     1> ./z1.nc
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  DDAT_ORIG
-          DDAT[GZ=ZAXIS_ORIG at ASN]          ...       ...       1:5       ...       ...       ...
+          DDAT[GZ=ZAXIS_ORIG at ASN]          ...       ...       1:5       ...
  
     2> ./z2.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  CYCLE_ORIG
-          CYCLE[GZ=ZAXIS_ORIG at ASN]         ...       ...       1:5       ...       ...       ...
+          CYCLE[GZ=ZAXIS_ORIG at ASN]         ...       ...       1:5       ...
  
  
 ! Write a file to be appended to and append variable in z1.nc to the file.
@@ -73802,14 +74708,16 @@ variables:
 		DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
 
 // global attributes:
-		:history = "Wed May 11 16:13:26 2016: ncks -h -A -h z1.nc append_to_this.nc\n",
-			"FERRET V6.97 (beta/dbg) 11-May-16" ;
+		: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" ;
 		:Conventions = "CF-1.6" ;
 		:NCO = "4.4.6" ;
 }
  
-GO bn_reset
+GO bn_reset bn_nobounds
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_nobounds
 GO bn_nobounds
 ! bn_nobounds.jnl
 ! The SAVE/NOBOUNDS qualifier causes bounds never to be written
@@ -73837,7 +74745,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73868,7 +74776,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73883,8 +74791,8 @@ use gappy_bounds.nc
 sh dat
      currently SET data sets:
     1> ./gappy_bounds.nc  (default)
- name     title                             I         J         K         L         M         N
- A        SST[X=150:180 at AVE,Y=-10:0 at AVE]   ...       ...       ...       1:6       ...       ...
+ name     title                             I         J         K         L
+ A        SST[X=150:180 at AVE,Y=-10:0 at AVE]   ...       ...       ...       1:6
  
  
 ! See the bounds attribute on the t axis
@@ -73931,7 +74839,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -73959,13 +74867,15 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
  
-GO bn_reset
+GO bn_reset bn_write_integer_att
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_write_integer_att
 GO bn_write_integer_att
 ! bn_write_integer_att.jnl
 !  ACM 6/2013
@@ -73998,8 +74908,10 @@ sp ncdump a.nc | grep numberOfObservations
  
  
  
-GO bn_reset
+GO bn_reset bn_descriptor_mc
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_descriptor_mc
 GO bn_descriptor_mc
 ! bn_descriptor_mc.jnl
 ! 7/2013 ACM
@@ -74036,8 +74948,10 @@ list /x=300/y=10 sst
  16-MAY-0000 / 3:  27.39
  16-JUN-0000 / 4:  27.65
  
-GO bn_reset
+GO bn_reset bn_plot_color_only
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_color_only
 GO bn_plot_color_only
 ! bn_plot_color_only.jnl
 ! 9/20/2013 ACM
@@ -74114,8 +75028,10 @@ set mode/last ignore
  
  
  
-GO bn_reset
+GO bn_reset bn_vtree
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_vtree
 GO bn_vtree
 ! bn_tree.jnl
  
@@ -75274,8 +76190,10 @@ vtree=all tempz4
  
  
 ! *********** v6.86 Additions ***********
-GO bn_reset
+GO bn_reset bn686_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn686_bug_fixes
 GO bn686_bug_fixes
 ! bn686_bug_fixes
 ! test various fixes that went into version 6.86
@@ -75283,6 +76201,7 @@ GO bn686_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_ribbon_by_val
 ! err685_ribbon_by_val.jnl
 ! 11/21/2013
@@ -75298,6 +76217,7 @@ plot/vs/line/thick/ribbon/MISS=black/PAL=ocean_temp xpts, ypts, fpts
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_ppl_palette
 ! err685_ppl_palette.jnl
 ! Further fix for ticket 2049. If the palette or pattern file
@@ -75327,6 +76247,7 @@ pattern solid
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_show_grid_e
 ! err685_show_grid_e.jnl
 ! See ticket 2122
@@ -75393,6 +76314,7 @@ sh grid /f gensy
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_lowercaseAxis
 ! err685_lowercaseAxis.jnl
 ! Ticket  2126
@@ -75403,9 +76325,9 @@ use lowercaseTime.nc
 sh dat
      currently SET data sets:
     1> ./lowercaseTime.nc  (default)
- name     title                             I         J         K         L         M         N
- AA                                        ...       ...       ...       1:15      ...       ...
- BB                                        ...       ...       ...       1:8       ...       ...
+ name     title                             I         J         K         L
+ AA                                        ...       ...       ...       1:15
+ BB                                        ...       ...       ...       1:8
  
 ! This axis has uppercase in the file
 set axis/t0=1-jan-2001/units=days uppercasetime
@@ -75423,8 +76345,6 @@ show grid bb
  normal    Y
  normal    Z
  UPPERCASETIME TIME             8 r   02-JAN-2001 00:00    09-JAN-2001 00:00   full
- normal    E
- normal    F
  
 ! This variable has axis time, lowercase in the file
 sh grid aa
@@ -75434,8 +76354,6 @@ sh grid aa
  normal    Y
  normal    Z
  TIME17    T                   15 r   1                    15                  full
- normal    E
- normal    F
 set axis/t0=1-jan-2001/units=days time
  
 ! showed no output
@@ -75462,6 +76380,7 @@ list/L=1:5 aa
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_redefine_uvar_att
 ! err685_redefine_uvar_att.jnl
 ! ticket 2127 Redefine an attribute for a
@@ -75474,6 +76393,7 @@ define att/type=STRING  a.ival = 99
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_use_no_extension
 ! Ticket 2128: if no extension, we should try .cdf, .nc, .des
 !  but .des was not being tried.
@@ -75489,8 +76409,8 @@ use duplicate
 sh dat
      currently SET data sets:
     1> ./duplicate.nc  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:1       1:10      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:1       1:10      ...       1:3
  
  
 set mode ignore
@@ -75510,6 +76430,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_samplexy
 ! err685_samplexy.jnl
 ! Fix for ticket 2137. out-of-bounds error
@@ -75532,6 +76453,7 @@ list  samplexy(sst[x=290:310,y=0:20], lon, lat)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_shade_set
 ! err685_shade_set.jnl
 !
@@ -75579,6 +76501,7 @@ set mode/last logo
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_individual_levels
 ! err686_individual_levels.jnl
 ! Ticket 2142
@@ -75607,8 +76530,10 @@ LEV_NUM = "4"
 LEV_DEL = "5"
  
  
-GO bn_reset
+GO bn_reset bn_long_symnames
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_long_symnames
 GO bn_long_symnames
 ! bn_long_symnames.jnl
 ! *ACM* 11/22/2013
@@ -75647,8 +76572,10 @@ show symbol q*
 Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890 = "5"
 Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567XXX = "6"
  
-GO bn_reset
+GO bn_reset bn_strdim
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_strdim
 GO bn_strdim
 ! bn_strdim.jnl
 ! Keep the string dimension name and size from the intput file
@@ -75675,7 +76602,7 @@ variables:
 		LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75698,13 +76625,15 @@ variables:
 		STRVAR:long_name = "mystrings" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
  
-GO bn_reset
+GO bn_reset bn_single_colorlev
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_single_colorlev
 GO bn_single_colorlev
 ! bn_single_colorlev.jnl
 ! Ticket 2123, mis-labeled color bars when
@@ -75725,8 +76654,10 @@ fill/lev=(20,30,10)/L=1 sst
  
  
 ! *********** v6.9 Additions ***********
-GO bn_reset
+GO bn_reset bn69_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn69_bug_fixes
 GO bn69_bug_fixes
 ! bn69_bug_fixes
 ! test various fixes that went into version 6.9
@@ -75734,6 +76665,7 @@ GO bn69_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_long_list_varnames
 ! err686_long_list_varnames.jnl
 !
@@ -75803,7 +76735,7 @@ longvarnames.tsv
 ! Try to load a variable later than that in the list.
  
 list etopo2_depth
-             VARIABLE : ETOPO2_DEPTH
+             VARIABLE : etopo2_depth
              FILENAME : longvarnames.tsv
              SUBSET   : 10 points (X)
  1    /  1: -97.00
@@ -75821,6 +76753,7 @@ list etopo2_depth
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_faxis_label
 ! err686_faxis_label.jnl
 ! 3/11/2014 ACM
@@ -75854,6 +76787,7 @@ LAB5 = "FORECAST : 03-JAN-2000 00:00 JULIAN"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_dup_axnames
 ! err686_dup_axnames
 ! Ticket 1750
@@ -75874,12 +76808,12 @@ use a; use b
 sh dat
      currently SET data sets:
     1> ./a.nc
- name     title                             I         J         K         L         M         N
- A        X[GX=XAXIS_TEST]                 1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        X[GX=XAXIS_TEST]                 1:4       ...       ...       ...
  
     2> ./b.nc  (default)
- name     title                             I         J         K         L         M         N
- B        X[GX=XAXIS_TEST]                 1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ B        X[GX=XAXIS_TEST]                 1:4       ...       ...       ...
  
 sh grid a[d=1]
     GRID GSI1
@@ -75888,8 +76822,6 @@ sh grid a[d=1]
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 sh grid b[d=2]
     GRID GRR1
  name       axis              # pts   start                end                 subset
@@ -75897,8 +76829,6 @@ sh grid b[d=2]
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! Write b with its Ferret internal axis name XAXIS_TEST1
 save/clob/file=c.nc a[d=1],b
@@ -75926,7 +76856,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75956,7 +76886,7 @@ variables:
 		A:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75977,7 +76907,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75998,7 +76928,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76020,7 +76950,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76033,9 +76963,12 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_cancel_invalid_var
 ! err686_cancel_invalid_var
 ! ticket 2159
+! (Note that the shade of a one-cell or less region is
+!  allowed fully as of Ferret v7.1.  See ticket 2494)
  
 ! The cancel variable ran into an incorrect setting
 ! for variable-in-memory
@@ -76054,6 +76987,7 @@ shade/x=161.1:161.3/y=0.2:0.4/L=1 sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_redef_ascii_att
 ! err686_redef_ascii_att.jnl
 ! Bug 2161
@@ -76092,6 +77026,7 @@ sh att v1
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_sho_nonexist_att
 ! err686_sho_nonexist_att.jnl
 ! See ticket 2133
@@ -76107,6 +77042,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_set_var_name
 ! err686_set_var_name.jnl
 ! ticket 2152
@@ -76142,30 +77078,30 @@ set var/name=temp salt
 show dat
      currently SET data sets:
     1> ./gt4d011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
+ SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
+ U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
+ V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
+ W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
+ TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
+ TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
+ PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  
 ! This rename is ok
 set var/name=salinity salt
 show dat
      currently SET data sets:
     1> ./gt4d011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALINITY (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
+ SALINITY (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
+ U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
+ V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
+ W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
+ TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
+ TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
+ PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  
  
 ! Test LET/D variables:
@@ -76177,15 +77113,15 @@ set var/name=diff myvar
 show dat
      currently SET data sets:
     1> ./gt4d011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALINITY (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
+ SALINITY (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
+ U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
+ V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
+ W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
+ TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
+ TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
+ PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  ------------------------------
  DIFF[D=gt4d011] = TAUX - TAUY
  
@@ -76195,8 +77131,10 @@ set var/name=diff w
  
 SET MODE/LAST ignore
  
-GO bn_reset
+GO bn_reset bn_bad_axis_bounds
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_bad_axis_bounds
 GO bn_bad_axis_bounds
 ! bn_bad_axis_bounds
 ! Ticket 2146 If there are invalid axis bounds
@@ -76206,15 +77144,17 @@ use badbounds.nc
 show data
      currently SET data sets:
     1> ./badbounds.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  MONTH_IRREG_BNDS
-                                           1:2       ...       ...       1:12      ...       ...
+                                           1:2       ...       ...       1:12
        (invalid axis bounds)
- TEMP2    TEMP[GT=MONTH_IRREG at ASN]         1:1       1:1       1:1       1:12      ...       ...
+ TEMP2    TEMP[GT=MONTH_IRREG at ASN]         1:1       1:1       1:1       1:12
  
  
-GO bn_reset
+GO bn_reset bn_enter_exit_GO
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_enter_exit_GO
 GO bn_enter_exit_GO
 ! GO bn_enter_exit_GO
 ! Lines to allow trace of GO scripts:
@@ -76283,8 +77223,10 @@ plot/i=1:15/color=red/thick i
  
 cancel redirect
  
-GO bn_reset
+GO bn_reset bn_stddev
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_stddev
 GO bn_stddev
 ! bn_std.jnl
 ! New StdDev transform
@@ -76347,8 +77289,10 @@ list/y=3/l=1 temp[z=@std,x=@std]
              TIME     : 17-AUG-1982 12:00
           1.037
  
-GO bn_reset
+GO bn_reset bn_set_axis_name
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_axis_name
 GO bn_set_axis_name
 ! bn_set_axis_name.jnl
 ! ticket 2160 Implementing new qualifier SET AXIS/NAME
@@ -76387,9 +77331,7 @@ sh grid a
  normal    X
  normal    Y
  normal    Z
- daysaxis  TIME                 5 r   01-MAY-2010 00:00    05-MAY-2010 00:00   full
- normal    E
- normal    F
+ DAYSAXIS  TIME                 5 r   01-MAY-2010 00:00    05-MAY-2010 00:00   full
  
 cancel data/all
  
@@ -76424,14 +77366,14 @@ X13AXIS
 ! Rename the axis
 set axis/name=x_in_meters x13axis
 say `a[d=1],return=xaxis`
- !-> MESSAGE/CONTINUE x_in_meters
-x_in_meters
+ !-> MESSAGE/CONTINUE X_IN_METERS
+X_IN_METERS
 say `b[d=2],return=xaxis`
- !-> MESSAGE/CONTINUE x_in_meters
-x_in_meters
+ !-> MESSAGE/CONTINUE X_IN_METERS
+X_IN_METERS
 say `c[d=3],return=xaxis`
- !-> MESSAGE/CONTINUE x_in_meters
-x_in_meters
+ !-> MESSAGE/CONTINUE X_IN_METERS
+X_IN_METERS
  
 ! For SHOW DAT/ATT we get info from the attribute structure.
 ! It has the udated name.
@@ -76441,7 +77383,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -76458,7 +77400,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -76475,7 +77417,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -76502,17 +77444,213 @@ set axis/name=.fr x_in_meters
  
 set mode/last ignore
  
-GO bn_reset
+GO bn_reset bn_let_remote
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_let_remote
 GO bn_let_remote
 ! 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
+ 
+! 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")
+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]
+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]
+ >>> 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")
+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
+             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]
+             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]
+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]
+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/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"
+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
+ name     title                             I         J         K         L
+ T0112MN1 Temperature                      1:360     1:180     1:24      1:12
+ 
+    2> http://ferret.pmel.noaa.gov/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/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]
+ Column  2: AIRTSUM is AIRT[L=1:5 at SUM]
+           SSTSUM  AIRTSUM
+51E   / 16:  141.4   139.2
+53E   / 17:  140.8   138.9
+55E   / 18:  141.4   139.4
+57E   / 19:  141.2   138.7
+59E   / 20:  141.6   139.4
+ 
+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
+             LONGITUDE: 50E to 59E
+             LATITUDE: 10S (interpolated)
+ 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:  141.4   139.2  280.5
+53E   / 17:  140.8   138.9  279.7
+55E   / 18:  141.4   139.4  280.7
+57E   / 19:  141.2   138.7  279.9
+59E   / 20:  141.6   139.4  281.0
+ 
+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"
+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/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/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
+ 
+! This is ok let/remote/D=
+let/D=1/remote myvar = t0112mn1[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 = t0112mn1[d=1,z=1:100 at ave]
+ 
+ 
+! But, require LET/D= with /REMOTE
+let/remote rvar = t0112mn1[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]
+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/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl  (default)
+ name     title                             I         J         K         L
+ T0112MN1 Temperature                      1:360     1:180     1:24      1:12
+ ------------------------------
+ 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]
+ 
+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/
+             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
+ 
+can dat/all; can var/all
  
-exit/script  ! ?? F-TDS broken on our thredds server?
  
 ! *********** v6.93 Additions ***********
-GO bn_reset
+GO bn_reset bn691_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn691_bug_fixes
 GO bn691_bug_fixes
 ! bn691_bug_fixes
 ! test various fixes that went into version 6.91
@@ -76520,6 +77658,7 @@ GO bn691_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_arg_type_error
 ! err69_arg_type_error
 ! See ticket 2169
@@ -76582,6 +77721,7 @@ set mode /last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_bad_bounds
 ! err69_bad_bounds.jnl
 ! See ticket 2170
@@ -76654,6 +77794,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_const_array
 ! err69_const_array.jnl
 ! 5/8/2014  ACM
@@ -76689,6 +77830,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_multi_label_ascii
 ! err69_multi_label_ascii.jnl
 ! 5/2014  ACM
@@ -76722,6 +77864,7 @@ label .55 .2 0 0 .16 "@ASEscape_color_not_font<NL>@P2 at SRred_1<NL>@P3 at SRgreen_2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_ens_badvalue
 ! err69_ens_badvalue.jnl
 !
@@ -76757,6 +77900,7 @@ list/y=29.25  MAIZE_YIELD[d=1], MAIZE_YIELD[d=2], MAIZE_YIELD[d=3],  MAIZE_YIELD
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_ribbon_by_levels
 ! err69_ribbon_by_levels.jnl
 ! ACM 5/19/2014
@@ -76782,6 +77926,7 @@ RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels xpts,ypts,var
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_ribbon_histogram
 ! err69_ribbon_histogram.jnl
 ! ACM 5/24/2014
@@ -76809,6 +77954,7 @@ ribbon/vs/line/thick/lev=10h xpts,ypts,var
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_repl_scinot
 ! err69_repl_scinot.jnl
 ! ticket 2175
@@ -76836,6 +77982,7 @@ say (`a`)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err691_bnds_case
 ! err691_bnds_case
 ! 6/30/14
@@ -76850,6 +77997,7 @@ set mode/last upcase_output
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_plot_vs_labs
 ! err69_plot_vs_labs.jnl
 ! ticket 2187: the axis labels on the dependent axis
@@ -76887,6 +78035,7 @@ LABY = "A[X=150W:90W at AVE]"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_levels_v
 ! err69_levels_v.jnl
 ! Ferret ticket 2186, and LAS ticket 1598
@@ -76907,11 +78056,12 @@ LEV_OPNLEVS = "(290,330,10)(332,402,2)(400,450,10)(inf)"
 LEV_MIN = "290"
 LEV_NUM = "45"
 LEV_DEL = "irregular"
-LEV_MAX = "114930.72"
+LEV_MAX = "open-ended"
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_letd_dsetnum
 ! err69_letd_dsetnum.jnl
 !  Ticket 2189. Previously the grave-accent expression didn't get
@@ -76923,14 +78073,15 @@ let/d=`sst,r=dsetnum` a = 1
 sh dat
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
  A[D=coads_climatology] = 1
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_long_string_to_xml
 ! err69_long_string_to_xml.jnl
 ! ticket 2190  8-8-2014
@@ -76949,6 +78100,7 @@ sp cat out.xml
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_fill_trans
 ! err69_fill_trans.jnl
 ! ticket 2196. Visible only if bounds-checking is turned on.
@@ -76997,6 +78149,7 @@ list myvar[x=6 at fav:18]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_load_big_grid
 ! err69_load_big_grid
 ! ticket 1758
@@ -77014,33 +78167,40 @@ 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 (G089)
+    GRID (G093)
  name       axis              # pts   start                end                 subset
  XAXIS     X                  360 r   1                    360                 full
  YAXIS     Y                  180 r   1                    180                 full
  ZAXIS     Z                   20 r   1                    20                  full
  LONGTIME  TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
- normal    E
- normal    F
 load bigvar
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 25.6 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 1297828 (5.1%)
+    The size of the requested object was: : 2369088000 (9254%)
  
 ! also was an incorrect size.
 define axis/t=1-jan-2000:1-jan-2010:1/units=days  longtime
 sh grid bigvar
-    GRID (G089)
+    GRID (G093)
  name       axis              # pts   start                end                 subset
  XAXIS     X                  360 r   1                    360                 full
  YAXIS     Y                  180 r   1                    180                 full
  ZAXIS     Z                   20 r   1                    20                  full
  LONGTIME  TIME              3654 r   01-JAN-2000 00:00    01-JAN-2010 00:00   full
- normal    E
- normal    F
 load bigvar
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 25.6 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 1299654 (5.1%)
+    The size of the requested object was: : 4735584000 (18498%)
  
 cancel mode ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_write_attribute
 ! err69_write_attribute.jnl
 ! Bug 1863
@@ -77053,8 +78213,6 @@ sh grid temp
  PSYT1     LATITUDE           100 i   28.836S              48.568N             full
  PSZT2     DEPTH (m)           27 i-  5                    3824                full
  TIME17    TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
- normal    E
- normal    F
 let a = temp[x=@ave,y=@ave,L=1]
  
 ! The attribute we ask not to write is not written for this variable
@@ -77181,6 +78339,7 @@ sp rm aa.nc bb.nc
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_isready_status_errmsgs
 ! err69_isready_status_errmsgs
 ! ticket 2197
@@ -77204,6 +78363,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_isready_status_errmsgs
 ! err69_isready_status_errmsgs
 ! ticket 2197
@@ -77227,6 +78387,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_countervar_context
 ! err69_countervar_context.jnl
 ! ACM 10/3/2014
@@ -77251,6 +78412,7 @@ can region
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_label_backspace
 ! err69_label_backspace
 ! Ticket 2203:  \\ before a character backspaces before
@@ -77262,6 +78424,7 @@ label .5 .5 0 0 1 "El Nin\\^@MA45 at SRo\!"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_isready_and_regridding
 ! err69_isready_and_regridding.jnl
 ! Ticket 2204: A `var,return=isready` sends Ferret into a hanged
@@ -77307,6 +78470,7 @@ ENDIF
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_vtree_and_uvar_regrid
 ! err69_vtree_and_uvar_regrid.jnl
 ! Ticket 2206: This lead to a crash.
@@ -77332,6 +78496,7 @@ c is ready and AVAILABLE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_vtree_cancel_axis
 ! err69_vtree_cancel_axis
 ! Ticket 2201: After a return=isready,
@@ -77359,6 +78524,7 @@ cancel axis xax2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_isready_bugs
 ! err69_isready_bugs.jnl
 ! Tickets 2201 and 2215
@@ -77413,6 +78579,7 @@ m
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err691_substring_arg
 ! err693_substring_arg
 ! ACM 12/10/2014
@@ -77424,8 +78591,10 @@ list substring("hello",1,-3)
  
 set mode/last ignore
  
-GO bn_reset
+GO bn_reset bn_append_dsg
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_append_dsg
 GO bn_append_dsg
 ! bn_append_dsg.jnl
 !From SOCAT 3: appending to a dsg file where the new variable is on the obs
@@ -77504,14 +78673,16 @@ variables:
 		:geospatial_lat_max = 29.07 ;
 		:time_coverage_start = "2006-06-10T23:48:00Z" ;
 		:time_converage_end = "2006-06-11T00:12:00Z" ;
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 }
  
 set mode/last upcase
  
  
-GO bn_reset
+GO bn_reset bn_global_atts
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_global_atts
 GO bn_global_atts
 ! bn_global_atts
 ! NOTE With the fix for ticket 2241, we need to add CANCEL MODE UPCASE.
@@ -77600,7 +78771,7 @@ variables:
 		lon360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "CruiseDsgNcFile 1.0FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:featureType = "Trajectory" ;
 		:Conventions = "Some other conventionsCF-1.6" ;
 		:geospatial_lon_min = -92.77 ;
@@ -77627,15 +78798,17 @@ can dat/all; use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
  ..history = Subset of etopo20,
- FERRET V6.97 (beta/dbg) 11-May-16 
+ FERRET V7.1 (beta/debug) 11-Apr-17 
  ..Conventions = Existing conventions note, , CF-1.6 
  
  
 set mode/last upcase
  
  
-GO bn_reset
+GO bn_reset bn_conventions_history
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_conventions_history
 GO bn_conventions_history
 ! bn_conventions_history.jnl
 ! ticket 2169:
@@ -77660,11 +78833,13 @@ can dat/all; use conventions_history
 ! The new attibutes
 sh att .
      attributes for dataset: ./conventions_history.nc
- ..history = The history of the fileFERRET V6.97 (beta/dbg) 11-May-16 
+ ..history = The history of the fileFERRET V7.1 (beta/debug) 11-Apr-17 
  ..Conventions = Conventions for variables named V2CF-1.6 
  
-GO bn_reset
+GO bn_reset bn_center_key_labels
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_center_key_labels
 GO bn_center_key_labels
 ! bn_center_key_labels
 !  6/2014
@@ -77711,8 +78886,10 @@ can data coads_climatology
 shade temp
  
  
-GO bn_reset
+GO bn_reset bn_wgt_transform
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_wgt_transform
 GO bn_wgt_transform
 ! bn_wgt_transform.jnl  test new @WGT transform,
 ! returns weights used in the equiv. average or integral transform
@@ -77818,8 +78995,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn_show_outfile
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_show_outfile
 GO bn_show_outfile
 ! bn_show_outfile
 ! Adding tests for SHOW/OUTFILE=
@@ -77890,8 +79069,6 @@ sp cat a.txt
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! show var/outfile
  
@@ -77918,8 +79095,8 @@ sp cat a.txt
  TWO = 2
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
  
 ! combinations of /append and /clobber
@@ -77932,8 +79109,8 @@ SAY ---------------- Just show data, two show data/clobber commands in a row
 sp cat a.txt
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
  
 show grid/clobber/outfile=a.txt sst
@@ -77947,8 +79124,6 @@ sp cat a.txt
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 use coads_climatology
 use levitus_climatology
@@ -77960,8 +79135,8 @@ SAY ---------------- Just dataset 1
 sp cat a.txt
      currently SET data sets:
     1> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
  
 show data/append/outfile=a.txt levitus_climatology
@@ -77971,13 +79146,13 @@ SAY ---------------- appending datset 2 by name
 sp cat a.txt
      currently SET data sets:
     1> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
      currently SET data sets:
     2> ./levitus_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:160     1:90      1:1       ...       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:160     1:90      1:1       ...
  
 show grid/clobber/outfile=a.txt PS3*
  
@@ -78488,8 +79663,10 @@ f is ready and AVAILABLE
  
  
  
-GO bn_reset
+GO bn_reset bn_date1900_array
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_date1900_array
 GO bn_date1900_array
 ! bn_date1900_array.jnl
 ! Let date1900 accept an array of date strings, returning a list
@@ -78540,64 +79717,92 @@ list t[gt=taxis]
  30-JUL-2002 00 / 3:  37465.
  
  
-GO bn_reset
+GO bn_reset bn_spawn_size
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_spawn_size
 GO bn_spawn_size
 ! bn_spawn_size.jnl
+! Added 9/9/2014
+! Fix for ticket 981
 ! Return the size of the result of a spawn, not
-! the nominalabstract axis length.
- 
-! ticket 981
- 
-let files = {spawn:"ls *cdf*.jnl"}
+! the nominal abstract axis length.
+ 
+! 1/2017 *acm* change this script so the results are always consistent,
+! not depending on the contents of the directory which may change.
+ 
+! Make some files to operate on
+let a = x + 1
+save/clobber/i=1:5/file=bn_spawn_size1.cdf a
+save/clobber/i=1:5/file=bn_spawn_size2.cdf a
+save/clobber/i=1:5/file=bn_spawn_size3.cdf a
+save/clobber/i=1:5/file=bn_spawn_size4.cdf a
+save/clobber/i=1:5/file=bn_spawn_size5.cdf a
+ 
+list/clobber/i=1:7/file=bn_spawn_size02.dat a
+list/clobber/i=1:7/file=bn_spawn_size04.dat a
+list/clobber/i=1:7/file=bn_spawn_size06.dat a
+list/clobber/i=1:7/file=bn_spawn_size08.dat a
+list/clobber/i=1:7/file=bn_spawn_size10.dat a
+list/clobber/i=1:7/file=bn_spawn_size12.dat a
+list/clobber/i=1:7/file=bn_spawn_size14.dat a
+ 
+! Previously these return=isize results returned 2000
+ 
+let files = {spawn:"ls *bn_spawn_size*4.*"}
 list files
-             VARIABLE : {SPAWN:"ls *cdf*.jnl"}
-             SUBSET   : 8 points (X)
- 1   / 1:"bn_cdf_errmsg.jnl"      
- 2   / 2:"bn_cdf.jnl"             
- 3   / 3:"bn_cdf_keepax.jnl"      
- 4   / 4:"bn_netcdf4.jnl"         
- 5   / 5:"err490_cdf_childax.jnl" 
- 6   / 6:"err491_cdf_childax.jnl" 
- 7   / 7:"err65_read_epic_cdf.jnl"
- 8   / 8:"err667_5d_netcdf.jnl"   
+             VARIABLE : {SPAWN:"ls *bn_spawn_size*4.*"}
+             SUBSET   : 3 points (X)
+ 1   / 1:"bn_spawn_size04.dat"
+ 2   / 2:"bn_spawn_size14.dat"
+ 3   / 3:"bn_spawn_size4.cdf" 
 say `files,return=isize`
- !-> MESSAGE/CONTINUE 8
-8
+ !-> MESSAGE/CONTINUE 3
+3
  
 ! Evaluate size without loading the variable first
-let datfiles = {spawn:"ls *.dat"}
+let datfiles = {spawn:"ls bn_spawn_size1*.dat"}
 say `datfiles,return=isize`
- !-> MESSAGE/CONTINUE 37
-37
- 
-! expression syntax
-say `{spawn:"ls xml*.jnl"},return=isize`
  !-> MESSAGE/CONTINUE 3
 3
-list {spawn:"ls xml*.jnl"}
-             VARIABLE : {SPAWN:"ls xml*.jnl"}
-             SUBSET   : 3 points (X)
- 1   / 1:"xml_header_script.jnl"
- 2   / 2:"xml_use_coads.jnl"    
- 3   / 3:"xml_use_numstring.jnl"
  
-! Test variables based on output of a spawn.
+! expression syntax
+say `{spawn:"ls bn_spawn_size*.dat"},return=isize`
+ !-> MESSAGE/CONTINUE 7
+7
+list {spawn:"ls bn_spawn_size*.dat"}
+             VARIABLE : {SPAWN:"ls bn_spawn_size*.dat"}
+             SUBSET   : 7 points (X)
+ 1   / 1:"bn_spawn_size02.dat"
+ 2   / 2:"bn_spawn_size04.dat"
+ 3   / 3:"bn_spawn_size06.dat"
+ 4   / 4:"bn_spawn_size08.dat"
+ 5   / 5:"bn_spawn_size10.dat"
+ 6   / 6:"bn_spawn_size12.dat"
+ 7   / 7:"bn_spawn_size14.dat"
+ 
+! Test variables based on a function operating on output of a spawn.
 ! These already worked correctly, has a grid-changing function.
  
-LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
+LET filesets = XCAT({spawn:"ls bn_spawn_size*.cdf"}, {spawn:"ls bn_spawn_size*.dat"})
 say `filesets, return=isize`
- !-> MESSAGE/CONTINUE 973
-973
+ !-> MESSAGE/CONTINUE 12
+12
  
-let files = {spawn:"ls *cdf*.jnl"}
-let name_len = strindex(files, ".sub")
+let files = {spawn:"ls bn_spawn_size*.dat"}
+let name_len = STRINDEX(files, "ze0")
 say `name_len, return=isize`
- !-> MESSAGE/CONTINUE 8
-8
+ !-> MESSAGE/CONTINUE 7
+7
  
-GO bn_reset
+! clean up
+sp rm bn_spawn_size*.dat bn_spawn_size*.cdf
+ 
+ 
+GO bn_reset bn_polygon_log
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_polygon_log
 GO bn_polygon_log
 ! bn_polygon_log.jnl
 ! polygon plots on a log axis need tests
@@ -78635,8 +79840,10 @@ set mode/last ignore
  
 ! *********** v6.94Additions ***********
  
-GO bn_reset
+GO bn_reset bn694_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn694_bug_fixes
 GO bn694_bug_fixes
 ! bn694_bug_fixes
 ! test various fixes that went into version 6.94
@@ -78646,6 +79853,7 @@ GO bn694_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_upcase_quoted_name
 ! err693_upcase_quoted_name.jnl
 ! ticket 2050. Names are saved in uppercase
@@ -78670,6 +79878,7 @@ set mode/last upcase
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_isready_hang
 ! err693_isready_hang.jnl
 ! ACM 12/10/2014
@@ -78697,6 +79906,7 @@ IF `a,r=isready` THEN; let/title="`a,r=title`" a5 = a; ENDIF
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_isready_dyn_grid_crash   ! 12/23/2014
 let/unit="m" b = x[gx=1:5:1]
 say "`b,r=unit`"     ! this causes dynamic grid of b to be created
@@ -78712,6 +79922,7 @@ VTREE b2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_attr_in_gcfcn
 ! err693_attr_in_gcfcn.jnl
 ! ACM 12/10/2014
@@ -78751,6 +79962,7 @@ list is_element_of_str (a, {"Kelvin", "Celsius", "DEG C"})
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_inconsistent_quote
 ! inconsistent interpretation of surrounding double quotes
 ! the original source of the problem is in PARSE_COMMAND
@@ -78772,6 +79984,7 @@ LIST "foobar"           ! error: lists the value instead
 ! IF-THEN flow tests
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_2214
 ! bug 2214
 ! If we put the "say hi" in parentheses, this seems to work.
@@ -78803,6 +80016,7 @@ CORRECT
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_2211
 ! bug #2211
  
@@ -78813,6 +80027,7 @@ ELSE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_1860
 ! from bug 1860
 ! continue line found within grave accents
@@ -78828,6 +80043,7 @@ CORRECT IF THIS DISPLAYS
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_1446
 ! testing ticket 1446
  
@@ -78842,6 +80058,7 @@ ENDIF
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_1681
 ! testing ticker 1681
  
@@ -78870,6 +80087,7 @@ endif
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_1706
 ! testing ticket 1706
 !
@@ -78886,6 +80104,7 @@ ENDIF
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_1368   ! Jan 28, 2010, Ferret version 5.812
 ! testing ticket 1368 - first found in Ferret v5.812 (Jan 28, 2010)
  
@@ -78918,6 +80137,7 @@ ENDIF
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_ribbon_start_missing
 ! err693_ribbon_start_missing
 ! 1/6/2015 ACM
@@ -78968,6 +80188,7 @@ let vvar = {,1.e7,,271,319}
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err691_pt_in_poly
 ! err691_pt_in_poly
 ! ticket 1961: modulo longitude for pt_in_poly
@@ -79016,6 +80237,7 @@ list minmax(pts)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_undetected_regrid_dset
 ! err693_undetected_regrid_dset.jnl    - Jan 2015
  
@@ -79035,11 +80257,12 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_line_over_axis
 ! Ticket 2232: line plots overlaid the plot axes
 show mode meta
       MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      metafile.plt
+      METAFILE      CANCELED       metafile.plt
 ! line plot with /VS draw on top of the axes
 let xval = {0.0, 0.2, 1.0, 0.8, 0}
 let yval = {0.0, 1.1, 1.1, 0.0, 0}
@@ -79053,6 +80276,7 @@ plot/ribbon/vs/line/thick=3/over/nolab/pal=green_light xval, yval, yval
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_save_packed
 ! err693_save_packed.jnl
 ! ticket 2240: bug writing multiple vars with one SAVE when scaled
@@ -79064,6 +80288,7 @@ save/clobber/file=a.nc QA_OF_SEAICE_CONC_CDR, GODDARD_MERGED_SEAICE_CONC
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_subspan_trans
 ! err693_subspan_trans
 ! bug 2241  3/9/2015
@@ -79078,37 +80303,31 @@ let b = a[x=@min]
  
 set mode diag
 say `a[x=@min]`
- 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 GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 GSI1            COADSX51_1NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   2 I:      0     83  J: -999 -999  K: -999 -999  L:   -999   -999
  strip --> A[X=25E:25E(385)@MIN,D=2]
- strip modulo-void-filling A on X axis:     0    83 dset:   2
- strip moduloing A on X axis:     0    82 dset:   2
- reading A        M: 74 dset:   2 I:    1   82  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:     1    82 dset:   2
- doing modulo-void-filling A on X axis:     0    82 dset:   2
+ strip modulo-void-filling A on X axis:        0       83 dset:   2
+ strip moduloing A on X axis:        0       82 dset:   2
+ reading A        M:246 dset:   2 I:      1     82  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing A on X axis:        1       82 dset:   2
+ doing modulo-void-filling A on X axis:        0       82 dset:   2
  doing --> A[X=25E:25E(385)@MIN,D=2]
- -DELETE A        M: 66 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M:238 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 25.27740573883057
 25.27740573883057
  
 ! This previously resulted in an error.
 say `b`
- dealloc  dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- 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 B        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 GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    B        C:  6 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip --> A[X=25E:25E(385)@MIN,D=2]
- strip modulo-void-filling A on X axis:     0    83 dset:   2
- strip moduloing A on X axis:     0    82 dset:   2
- reading A        M: 66 dset:   2 I:    1   82  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:     1    82 dset:   2
- doing modulo-void-filling A on X axis:     0    82 dset:   2
- doing --> A[X=25E:25E(385)@MIN,D=2]
- -DELETE B        M: 39 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL
+ 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 B        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 GSI1            COADSX51_1NORMAL    NORMAL    NORMAL
+ allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   2 I:      0     83  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    B        C:  6 dset:   2 I:      0     83  J: -999 -999  K: -999 -999  L:   -999   -999
+ found   A        M:241 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE B        M:240 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 25.27740573883057
 25.27740573883057
  
@@ -79144,6 +80363,7 @@ bad
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_repeat_err
 !   err693_repeat_err.jnl
 ! test fix for ticket 2244: Error handling in REPEAT
@@ -79175,6 +80395,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_edit_useratt
 ! err693_edit_useratt.jnl
 ! ticket 2249: set attribute properties for user-defined variable
@@ -79230,6 +80451,7 @@ list/x=135.402W:135.321W/y=58.609 elev
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_redef_rec_axis
 ! err693_redef_rec_axis.jnl
 ! ticket 2271. Redefining the record axis meant
@@ -79254,8 +80476,8 @@ show data/full
      currently SET data sets:
     1> ./a.nc  (default)
  
- name     title                             I         J         K         L         M         N
- VAR      X[GX=XAX] + Y[GY=YAX] + T[GT=TR  1:5       1:5       ...       1:7       ...       ...
+ name     title                             I         J         K         L
+ VAR      X[GX=XAX] + Y[GY=YAX] + T[GT=TR  1:5       1:5       ...       1:7
                on grid GSI1 with -1.E+34 for missing data
              X=0.5:5.5  Y=1:11  
  
@@ -79264,6 +80486,7 @@ show data/full
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_frame_types
 ! bn_frame_types.jnl
 ! Ticket 2275
@@ -79288,6 +80511,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_shape
 ! err693_shape.jnl
 ! bug 2273 shape of variable with various subexpressions
@@ -79312,6 +80536,7 @@ say `sst,r=isize`  `a,r=isize` `a_anom,r=isize`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_ef_axis_precision
  ! NOAA/PMEL TMAP
  ! FERRET v6.94
@@ -79343,6 +80568,7 @@ q
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_string_results
 ! err693_string_results.jnl
 ! Ticket 2234, the LIST B returned the numeric pointer to the string.
@@ -79364,6 +80590,7 @@ list d
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_lev_nv_over
 ! err693_lev_nv_over.jnl
 ! The polygon command with /LEV=20V caused a crash; levels settings incorrect.
@@ -79384,6 +80611,7 @@ GO polymark polygon/over/lev=20v/key/title="SST"  xpts,ypts,sst,square, 0.5
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_fcn_of_attvar
 ! err693_fcn_of_attvar.jnl
 ! Ticket 2291 Function of attribute-expression
@@ -79435,6 +80663,7 @@ list ysequence(dncase(sst.dimnames))
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_isize_and_gcfcn
 ! err693_isize_and_gcfcn.jnl
 ! ticket 2213
@@ -79446,12 +80675,10 @@ can mode verify
 8
     GRID XABSTRACT
  name       axis              # pts   start                end                 subset
- ABSTRACT  X             99999999 r   1                    1.E+08              7 pts
+ ABSTRACT  X             99999999 r   1                    1.E+08              8 pts
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 8
 8 a
 8
@@ -79475,8 +80702,6 @@ can mode verify
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 8
 8 a
 8
@@ -79496,6 +80721,7 @@ can mode verify
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_ribbon_scale
 ! err693_ribbon_scale.jnl
 ! ticket 2295: the vertical scale is mis-computed
@@ -79513,6 +80739,7 @@ YAXIS_MAX = "-80.0000000"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_parse_curly
 ! err693_parse_curly.jnl
 ! the sub-routine defines a string variable containing commands for overlays in
@@ -79626,6 +80853,7 @@ define symbol overcommands = `p1s_ov`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_list_missing
 ! err693_list_missing.jnl
  
@@ -79647,6 +80875,7 @@ list a,b
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_shf_subscr
 ! err693_shf_subscr.jnl
 ! ticket 2231  Subscripts used to compute @SHF-1 at the low end of the axis
@@ -79689,6 +80918,7 @@ list/k=3:4 zdiff_t
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_shift_w_region
 ! err693_shift_w_region
 ! Ticket 2300.  In fact with bounds checking on, the list a[i=@shf] would have
@@ -79722,6 +80952,7 @@ list a[i=@shf]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_scalar_grids
 ! err693_scalar_grids.jnl
 ! See ticket 1602
@@ -79790,8 +81021,10 @@ list b[x=@ave,k=@ave]
  
  
  
-GO bn_reset
+GO bn_reset bn_permute_ascii
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_permute_ascii
 GO bn_permute_ascii
 ! bn_permute_ascii.jnl
 ! test permutations when reading ascii data, in E and F directions
@@ -79809,11 +81042,11 @@ def grid/x=x4ax/t=t12 txgrid
 sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
- name     title                             I         J         K         L         M         N
- TM       TM                               1:4       ...       ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ TM       Tm                               1:4       ...       ...       1:12
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 4 by 12 points (X-T)
                1      2      3      4    
@@ -79839,11 +81072,11 @@ FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
 sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
- name     title                             I         J         K         L         M         N
- TM       TM                               1:4       ...       ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ TM       Tm                               1:4       ...       ...       1:12
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 4 by 12 points (X-T)
                1      2      3      4    
@@ -79872,10 +81105,10 @@ sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
  name     title                             I         J         K         L         M         N
- TM       TM                               1:4       ...       ...       ...       ...       1:12
+ TM       Tm                               1:4       ...       ...       ...       ...       1:12
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 4 by 12 points (X-F)
                1      2      3      4    
@@ -79904,11 +81137,11 @@ FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
 sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
- name     title                             I         J         K         L         M         N
- TM       TM                               ...       1:2       1:4       1:6       ...       ...
+ name     title                             I         J         K         L
+ TM       Tm                               ...       1:2       1:4       1:6
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 2 by 4 by 6 points (Y-Z-T)
              1      2    
@@ -79956,11 +81189,11 @@ FILE/SKIP=4/VAR="Tm"/COL=12/order=tyz/GRID=grid3d fxdata.dat
 sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
- name     title                             I         J         K         L         M         N
- TM       TM                               ...       1:2       1:4       1:6       ...       ...
+ name     title                             I         J         K         L
+ TM       Tm                               ...       1:2       1:4       1:6
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 2 by 4 by 6 points (Y-Z-T)
              1      2    
@@ -80009,10 +81242,10 @@ sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
  name     title                             I         J         K         L         M         N
- TM       TM                               ...       1:2       1:4       ...       1:6       ...
+ TM       Tm                               ...       1:2       1:4       ...       1:6       ...
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 2 by 4 by 6 points (Y-Z-E)
              1      2    
@@ -80059,10 +81292,10 @@ sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
  name     title                             I         J         K         L         M         N
- TM       TM                               ...       1:2       1:4       ...       1:6       ...
+ TM       Tm                               ...       1:2       1:4       ...       1:6       ...
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 2 by 4 by 6 points (Y-Z-E)
              1      2    
@@ -80099,8 +81332,10 @@ list tm
  4   / 4: -28.54  -8.39
  
  
-GO bn_reset
+GO bn_reset bn_lon_lat_time_string
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_lon_lat_time_string
 GO bn_lon_lat_time_string
 ! bn_lon_lat_time_string.jnl
 ! Test function written for LAS, to create profile labels from
@@ -80134,8 +81369,10 @@ list lon_lat_time_string(lon, lat, time, tt, "my_string")
  3   / 3:"my_string_340.5E_15.03S_04-JAN-2001"
  
  
-GO bn_reset
+GO bn_reset bn_save_justdim
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_save_justdim
 GO bn_save_justdim
 ! bn_save_justdim.jnl
 ! When a dataset has axes that are dimensions but not 1-D coordinate variables,
@@ -80167,8 +81404,10 @@ sp ncdump a.nc >> all_ncdump.out
  
 SET MODE/LAST upcase_output
  
-GO bn_reset
+GO bn_reset bn_time2d
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_time2d
 GO bn_time2d
 ! bn_time2d.jnl
 ! 1/30/2015 ACM
@@ -80202,8 +81441,10 @@ set att/like=time time2d
 shade time2d
 shade/trans time2d
  
-GO bn_reset
+GO bn_reset bn_legend_labels
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_legend_labels
 GO bn_legend_labels
 ! bn_legend_labels.jnl
 ! The legend labels on a multi-line plot describe the
@@ -80232,8 +81473,10 @@ LAB7 = "January"
 LAB9 = "March"
 LAB8 = "February"
  
-GO bn_reset
+GO bn_reset bn_DQ
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_DQ
 GO bn_DQ
 ! bn_DQ.jnl  *sh* 2/2015
 ! test the use of _DQ_ and _SQ_ in lieu of " and '
@@ -80642,13 +81885,13 @@ LIST a
 show data   ! to side step dset=-1 left behind by SHOW ATTRIBUTE previously
      currently SET data sets:
     1> ./weird_name1.cdf  (default)
- name     title                             I         J         K         L         M         N
- v1       lower case v1                    1:20      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ v1       lower case v1                    1:20      ...       ...       ...
  v2-and-minus
-          SIN(2+I/10)                      1:20      ...       ...       ...       ...       ...
- V1       Upper case V1                    1:20      ...       ...       ...       ...       ...
- I        SIN(4+I/10)                      1:20      ...       ...       ...       ...       ...
- X        SIN(5+I/10)                      1:20      ...       ...       ...       ...       ...
+          SIN(2+I/10)                      1:20      ...       ...       ...
+ V1       Upper case V1                    1:20      ...       ...       ...
+ I        SIN(4+I/10)                      1:20      ...       ...       ...
+ X        SIN(5+I/10)                      1:20      ...       ...       ...
  
 ! !!!!!!
 ! =========================
@@ -80661,8 +81904,6 @@ show grid gg
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! ======
 LET/TITLE= _DQ_'A title w/ "sq"'. Ship_Ka'imimoana_DQ_ A = 1 ! ' char for emacs
@@ -80735,14 +81976,17 @@ plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980:12:00_DQ_ \
  
 ! *********** v6.95Additions ***********
  
-GO bn_reset
+GO bn_reset bn695_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn695_bug_fixes
 GO bn695_bug_fixes
 ! bn695_bug_fixes
 ! test various fixes that went into version 6.95
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err694_shf_missing
 ! err694_shf_missing.jnl
 ! Test the fix for ticket 2314
@@ -80796,6 +82040,7 @@ list/x=10:30/y=-60/l=1  sst[i=@shf:3]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err694_longname_showdat
 ! err694_longname_showdat.jnl
 ! ticket 2317
@@ -80811,15 +82056,15 @@ use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
 sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
      currently SET data sets:
     1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  PROF     Prof                             ...       ...       ...       ...       1:21      ...
  TIME     Time                             ...       ...       ...       ...       1:21      ...
  LATITUDE Latitude                         ...       ...       ...       ...       1:21      ...
  LONGITUDE
           Longitude                        ...       ...       ...       ...       1:21      ...
  ROWSIZE  Number of Observations for this  ...       ...       ...       ...       1:21      ...
- PRESS_DB PRESS_DB                         1:373     ...       ...       ...       ...       ...
- PCO2     PCO2                             1:373     ...       ...       ...       ...       ...
+ PRESS_DB PRESS_DB                         1:373     ...       ...       ...
+ PCO2     PCO2                             1:373     ...       ...       ...
  
  
 ! If a file matched to 1st 32 characters, the shorter-named
@@ -80829,21 +82074,22 @@ use WestCoastCarbon_9d9c_f562_77b5_5
 sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
      currently SET data sets:
     1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  PROF     Prof                             ...       ...       ...       ...       1:21      ...
  TIME     Time                             ...       ...       ...       ...       1:21      ...
  LATITUDE Latitude                         ...       ...       ...       ...       1:21      ...
  LONGITUDE
           Longitude                        ...       ...       ...       ...       1:21      ...
  ROWSIZE  Number of Observations for this  ...       ...       ...       ...       1:21      ...
- PRESS_DB PRESS_DB                         1:373     ...       ...       ...       ...       ...
- PCO2     PCO2                             1:373     ...       ...       ...       ...       ...
+ PRESS_DB PRESS_DB                         1:373     ...       ...       ...
+ PCO2     PCO2                             1:373     ...       ...       ...
  
  
 sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_std4d
 ! err693_std4d
 ! Check fix to ticket 2319: std transform in multi-dimensions
@@ -80890,8 +82136,10 @@ list astd^2, avar, avar_calc, astd_e_f^2
 I / *:     5.778  5.778   5.778  0.4444
  
  
-GO bn_reset
+GO bn_reset bn_f_tax_fcns
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_f_tax_fcns
 GO bn_f_tax_fcns
 ! bn_f_from_tax_fcns.jnl
 ! test tax_* functions returning results from a
@@ -81159,8 +82407,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn_fmrc
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_fmrc
 GO bn_fmrc
 ! bn_fmrc.jnl
 ! initial test of DEFINE DATA/F
@@ -81175,7 +82425,7 @@ use "run4.nc"
 define data/hide/F/agg fourfiles = 1,2,3,4
  
 sh grid sst
-    GRID (G089)
+    GRID (G093)
  name       axis              # pts   start                end                 subset
  LON1      LONGITUDE           10mr   109W                 91W                 full
  LAT       LATITUDE             9 r   13N                  29N                 full
@@ -81224,8 +82474,10 @@ list/L=1:6/n=1:4 `sst._ftime2d`
  07-JAN-2010 12 / 4:   7.00000   8.00000   9.00000  10.00000  11.00000  12.00000
  
  
-GO bn_reset
+GO bn_reset bn_return_defined
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_return_defined
 GO bn_return_defined
 ! bn_return_defined.jnl
 ! 5/3/2015 *acm*
@@ -81249,8 +82501,10 @@ say `temp,return=defined`
  !-> MESSAGE/CONTINUE 0
 0
  
-GO bn_reset
+GO bn_reset bn_can_var_noerr
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_can_var_noerr
 GO bn_can_var_noerr
 ! bn_can_var_noerr.jnl
 ! CANCEL VARIABLE/NOERROR
@@ -81298,8 +82552,10 @@ cancel var/noerror/all
 show var
  Created by DEFINE VARIABLE:
  
-GO bn_reset
+GO bn_reset bn_annotate
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_annotate
 GO bn_annotate
 ! bn_annotate.jnl
 ! The command ANNOTATE /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
@@ -81577,8 +82833,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn_auxiliary
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_auxiliary
 GO bn_auxiliary
 ! bn_auxiliary.jnl:  exercise auxiliary coordinate regridding
  
@@ -81611,24 +82869,24 @@ FILE/VAR=v layerz_test_data.txt
 ! set the layerz link to point to a variable named "depth"
 SET VAR/layerz=depth v
 SHOW VAR/LAYERZ v
-  DEPTH holds the designated vertical (layerz) coordinates of V
+  DEPTH holds the designated vertical (layerz) coordinates of v
 SHOW ATT v
 ! modify the layerz link
 SET VAR/layerz=newdepth v
 SHOW VAR/LAYERZ v
-  NEWDEPTH holds the designated vertical (layerz) coordinates of V
+  NEWDEPTH holds the designated vertical (layerz) coordinates of v
 SHOW ATT v
      attributes for dataset: ./layerz_test_data.txt
- V.long_name = V 
- V.missing_value = -1.E+34
- V.__LayerzRef_ = NEWDEPTH 
+ v.long_name = v 
+ v.missing_value = -1.E+34
+ v.__LayerzRef_ = NEWDEPTH 
 cancel var/layerz v
 SHOW VAR/LAYERZ v
-  No variable holds vertical (layerz) coordinates of V
+  No variable holds vertical (layerz) coordinates of v
 SHOW ATT v
      attributes for dataset: ./layerz_test_data.txt
- V.long_name = V 
- V.missing_value = -1.E+34
+ v.long_name = v 
+ v.missing_value = -1.E+34
 CANCEL DATA layerz_test_data.txt
  
 ! user variable
@@ -81742,10 +83000,8 @@ SHOW GRID
  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                10 pts
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                11 pts
  normal    T
- normal    E
- normal    F
  
 ! use aux var regridding.  Target coordinate points match the source points
 ! identically at 0, 100, 200, ... 500
@@ -81755,33 +83011,33 @@ SHOW GRID
 SET MODE diagnostic
 LET tempz = temp[gz(depth)=zpts]
 LIST/PREC=7 tempz
- dealloc  dynamic grid GAO1            XAXLEVITR1YAXLEVITR4ZAXLEVITR 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 TEMPZ    C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- 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    NORMAL    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 (G094)          NORMAL    NORMAL    (AX113)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G094)          NORMAL    NORMAL    (AX113)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G094)          NORMAL    NORMAL    (AX113)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
- eval    TEMPZ    C:  6 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
- strip regrid on Z: TEMP --> (G086)           @LIN
- eval    DEPTH    C:  9 dset:   1 I:    1    2  J:    1    2  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  Z        M: 86 dset:   1 I: -999 -999  J: -999 -999  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
- constan cnst     M: 82 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading TEMP     M: 80 dset:   1 I:    1    2  J:    1    2  K:    1    1  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 82 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 74 dset:   0 I:    1    2  J:    1    2  K:    1    1  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Z        M: 86 dset:   1 I: -999 -999  J: -999 -999  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
- reading TEMP     M: 86 dset:   1 I:    1    2  J:    1    2  K:    7   12  L: -999 -999  M: -999 -999  N: -999 -999
- auxgrd  TEMP     M: 74 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid GAO1            XAXLEVITR1YAXLEVITR4ZAXLEVITR 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 TEMPZ    C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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 (G096)          NORMAL    NORMAL    (AX113)   NORMAL
+ dealloc  dynamic grid (G096)          NORMAL    NORMAL    (AX113)   NORMAL
+ allocate dynamic grid (G096)          NORMAL    NORMAL    (AX113)   NORMAL
+ allocate dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL
+ dealloc  dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL
+ allocate dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL
+ allocate dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX113)   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 (G088)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL
+ strip regrid on Z: TEMP --> (G088)           @LIN
+ eval    DEPTH    C:  9 dset:   1 I:      1      2  J:    1    2  K:    1   20  L:   -999   -999
+ pseudo  Z        M:246 dset:   1 I:   -999   -999  J: -999 -999  K:    1   20  L:   -999   -999
+ constan cnst     M:244 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ found   TEMP     M:248 dset:   1 I:      1      2  J:    1    2  K:    1   11  L:   -999   -999
+ -DELETE cnst     M:244 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE tpry     M:243 dset:   0 I:      1      2  J:    1    2  K:    1    1  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE Z        M:246 dset:   1 I:   -999   -999  J: -999 -999  K:    1   20  L:   -999   -999
+ reading TEMP     M:246 dset:   1 I:      1      2  J:    1    2  K:    7   12  L:   -999   -999
+ auxgrd  TEMP     M:243 dset:   1 I:      1      2  J:    1    2  K:    1    5  L:   -999   -999
+ dealloc  dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL
              VARIABLE : TEMP[GZ(DEPTH)=ZPTS]
              FILENAME : levitus_3d_subset.nc
              SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
@@ -81803,17 +83059,15 @@ LIST/PREC=7 tempz
  48.5S / 2:  5.835500  6.045001
  49.5S / 1:  4.879000  5.102500
 SHOW GRID tempz
- dealloc  dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    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 (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
-    GRID (G086)
+ dealloc  dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX113)   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 (G088)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL
+    GRID (G088)
  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
  (AX113)   Z                    5 r   100                  500                 full
  normal    T
- normal    E
- normal    F
 !LET tempz = temp[gz=zpts,layerz]  ! same regrid using semi-automated notation
 !LIST/PREC=7 tempz
 !SHOW GRID tempz
@@ -81856,14 +83110,12 @@ LIST tempzax
  48.5S / 2:  5.835500  6.045001
  49.5S / 1:  4.879000  5.102500
 SHOW GRID tempzax
-    GRID (G109)
+    GRID (G107)
  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                 full
  normal    T
- normal    E
- normal    F
 !LET tempzax = temp[gz=zax,layerz]  ! same regrid using semi-automated notation
 !LIST tempzax
 !SHOW GRID tempzax
@@ -81892,14 +83144,12 @@ LIST/PREC=7 tempz_alt
  48.5S / 2:  7.726000  7.917999
  49.5S / 1:  6.843000  7.021999
 SHOW GRID tempz_alt
-    GRID (G096)
+    GRID (G094)
  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
- (AX122)   Z                    5 r   2                    10                  4 pts
+ (AX122)   Z                    5 r   2                    10                  5 pts
  normal    T
- normal    E
- normal    F
  
 !! do same regrid using the shorhand semi-automated notation
 !LIST/PREC=7 temp[z=2:10:2,layerz]   ! lo:hi:delta notation
@@ -81919,14 +83169,12 @@ 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 (G089)
+    GRID (G093)
  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
  (AX125)   Z                    1 r   6                    6                   1 pt
  normal    T
- normal    E
- normal    F
  
        K     Z                   ZBOX      ZBOXLO
        1>  6                     6.E-05     5.99997
@@ -81950,8 +83198,6 @@ SHOW GRID
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAXLEVITR DEPTH (m)           20 i-  0                    5000                1 pt
  normal    T
- normal    E
- normal    F
  
 ! auxiliary points in reverse order
 ! to get results that we can check for correctness, we will reverse the Z-order
@@ -81986,14 +83232,12 @@ LIST/PREC=7 rvtempzax - tempz
  48.5S / 2:  0.0000000  0.0000000
  49.5S / 1:  0.0000000  0.0000000
 SHOW GRID rvtempzax
-    GRID (G109)
+    GRID (G107)
  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
- normal    E
- normal    F
  
 ! deliberate execution errors:
 LET disordered_depth1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
@@ -83181,14 +84425,12 @@ LIST/PREC=7 rvtempzaxave - tempz
  48.5S / 2:  0.00000000  0.00000000
  49.5S / 1:  0.00000000  0.00000000
 SHOW GRID/z rvtempzaxave
-    GRID (G109)
+    GRID (G107)
  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
- normal    E
- normal    F
  
        K     Z                   ZBOX      ZBOXLO
        1>  100                   100        50
@@ -85364,8 +86606,10 @@ CANC MODE VERIFY
               1         2         3         4         5
           20.75000  24.00000  20.75000      ....  20.75000
  
-GO bn_reset
+GO bn_reset bn_plot_ribbon_gaploc
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_ribbon_gaploc
 GO bn_plot_ribbon_gaploc
 ! bn_plot_ribbon_gaploc.jnl
 ! 7/20/2015 *acm*  new PLOT/VS/RIBBON/GAPLOC
@@ -85406,8 +86650,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn_time_short_axes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_time_short_axes
 GO bn_time_short_axes
 ! bn_time_short_axes.jnl
 ! testing time axis style with HH:MM on the time axis labels.
@@ -85437,8 +86683,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn_floatstr_extended
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_floatstr_extended
 GO bn_floatstr_extended
 ! bn_floatstr_extended.jnl
 ! test use of Integer and zero-filled formats in FLOATSTR function (Ferret v6.95)
@@ -85675,14 +86923,17 @@ LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
  
 ! *********** v6.96 Additions ***********
  
-GO bn_reset
+GO bn_reset bn696_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn696_bug_fixes
 GO bn696_bug_fixes
 ! bn696_bug_fixes
 ! test various fixes that went into version 6.96
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err695_bounds_match_axis
 ! err695_bounds_match_axis.jnl
 ! ticket 2321.
@@ -85702,8 +86953,6 @@ sh grid/l=1:4444 temp
  LAT       LATITUDE             1 r   36.65N               36.65N              full
  PFULL1_1  Z (hpa)              1 r-  3.3236               3.3236              full
  TIME17    TIME                 4 i   19-JUN-1997 00:00    19-JUN-1997 01:30   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  19-JUN-1997 00:00:00  0.0208333  18-JUN-1997 23:30:00    0.02083333
@@ -85713,6 +86962,7 @@ sh grid/l=1:4444 temp
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err695_show_dat_nodata
 ! err695_show_dat_nodata.jnl
 ! ticket 2322
@@ -85725,14 +86975,14 @@ USE coads_climatology
 SHOW DATA 1
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
 SHOW DATA coads_climatology
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
  
 ! intentional errors
@@ -85745,16 +86995,17 @@ SET MODE/LAST ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err695_grave_prec
 ! err695_grave_prec
 ! Bug 2323. Large numbers had incorrect results on grave-accent
 ! evaluations, returning only 8 digits of precision
  
 list/nohead/p=16 1234567890123456, `1234567890123456`
- !-> list/nohead/p=16 1234567890123456,   1234567890123456.
+ !-> list/nohead/p=16 1234567890123456, 1234567890123456.
 I / *:     1234567890123456.  1234567890123456.
 list/nohead/p=16 -1234567890123.456, `-1234567890123.456`
- !-> list/nohead/p=16 -1234567890123.456,  -1234567890123.456
+ !-> list/nohead/p=16 -1234567890123.456, -1234567890123.456
 I / *:    -1234567890123.456 -1234567890123.456
  
 ! this was ok
@@ -85764,10 +87015,10 @@ I / *:     1.234567890123456  1.123456789012346
  
 ! check output when asking for lower precision
 list/nohead/p=9 1234567890123456, `1234567890123456`
- !-> list/nohead/p=9 1234567890123456,   1234567890123456.
+ !-> list/nohead/p=9 1234567890123456, 1234567890123456.
 I / *:     1.23456789E+15  1.23456789E+15
 list/nohead/p=6 1234567890123456, `1234567890123456`
- !-> list/nohead/p=6 1234567890123456,   1234567890123456.
+ !-> list/nohead/p=6 1234567890123456, 1234567890123456.
 I / *:     1.23457E+15  1.23457E+15
  
 let var = 1.23456e+34
@@ -85779,8 +87030,10 @@ say `var,prec=4`
  !-> MESSAGE/CONTINUE 1.235E+34
 1.235E+34
  
-GO bn_reset
+GO bn_reset bn_bin_regrid
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_bin_regrid
 GO bn_bin_regrid
 ! bin regridding tests
  
@@ -85837,9 +87090,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GX=dcoarse]
-             X: 0.5 to 5.5
- Column  1: DEST is _X[GX=DCOARSE]
- Column  2: VAR[G=1 delta on X] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X)
+ Column  1: DEST[X=0.5:5.5] is _X[GX=DCOARSE]
+ Column  2: VAR[G=1 delta on X,X=1.5:5.5] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X)
              DEST     VAR
 1   / 1:  1.000000      ....
 2   / 2:  2.000000      ....
@@ -85900,9 +87152,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GY=dcoarse]
-             Y: 0.5 to 5.5
- Column  1: DEST is _Y[GY=DCOARSE]
- Column  2: VAR[G=1 delta on Y] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y)
+ Column  1: DEST[Y=0.5:5.5] is _Y[GY=DCOARSE]
+ Column  2: VAR[G=1 delta on Y,Y=1.5:5.5] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y)
              DEST     VAR
 1   / 1:  1.000000      ....
 2   / 2:  2.000000      ....
@@ -85963,9 +87214,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GZ=dcoarse]
-             Z: 0.5 to 5.5
- Column  1: DEST is _Z[GZ=DCOARSE]
- Column  2: VAR[G=1 delta on Z] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z)
+ Column  1: DEST[Z=0.5:5.5] is _Z[GZ=DCOARSE]
+ Column  2: VAR[G=1 delta on Z,Z=1.5:5.5] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z)
              DEST     VAR
 1   / 1:  1.000000      ....
 2   / 2:  2.000000      ....
@@ -86026,9 +87276,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GT=dcoarse]
-             T: 0.5 to 5.5
- Column  1: DEST is _T[GT=DCOARSE]
- Column  2: VAR[G=1 delta on T] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T)
+ Column  1: DEST[T=0.5:5.5] is _T[GT=DCOARSE]
+ Column  2: VAR[G=1 delta on T,T=1.5:5.5] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T)
              DEST     VAR
 1   / 1:  1.000000      ....
 2   / 2:  2.000000      ....
@@ -86089,9 +87338,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GE=dcoarse]
-             E: 0.5 to 5.5
- Column  1: DEST is _E[GE=DCOARSE]
- Column  2: VAR[G=1 delta on E] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E)
+ Column  1: DEST[E=0.5:5.5] is _E[GE=DCOARSE]
+ Column  2: VAR[G=1 delta on E,E=1.5:5.5] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E)
              DEST     VAR
 1   / 1:  1.000000      ....
 2   / 2:  2.000000      ....
@@ -86152,9 +87400,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GF=dcoarse]
-             F: 0.5 to 5.5
- Column  1: DEST is _F[GF=DCOARSE]
- Column  2: VAR[G=1 delta on F] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F)
+ Column  1: DEST[F=0.5:5.5] is _F[GF=DCOARSE]
+ Column  2: VAR[G=1 delta on F,F=1.5:5.5] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F)
              DEST     VAR
 1   / 1:  1.000000      ....
 2   / 2:  2.000000      ....
@@ -86164,15 +87411,19 @@ LIST dest, var[G$1=dcoarse]
  
  
 ! *********** v6.97 Additions ***********
+!            (released as V7.0)
  
-GO bn_reset
+GO bn_reset bn697_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn697_bug_fixes
 GO bn697_bug_fixes
 ! bn697_bug_fixes
 ! test various fixes that went into version 6.97
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_only_inf_lev
 ! Bug 2326: levels with only a value and (inf) or (-inf)
 ! should show values less-equal or greater-equal to that level.
@@ -86200,6 +87451,7 @@ set view ur; shade/key=horiz/lev=(-inf)(22)(inf) sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_plot_ax_ppl
 ! err696_plot_ax_ppl.jnl
 ! ticket 2327
@@ -86283,6 +87535,7 @@ plot/i=1:199 i*cos(i/10)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_ft_calendars
 ! err696_ft_calendars.jnl
 ! see ticket 2332: check for matching calendars when
@@ -86309,6 +87562,7 @@ can data/all
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_centerlab_restore
 ! err696_centerlab_restore
 ! Ticket 2331.
@@ -86369,6 +87623,7 @@ polygon/trans/i=1:20/nolab/key=horiz  xpts+xsqr, ypts+ysqr, x*x/10
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_time_overlay
 ! err696_time_overlay
 ! bug 2334, first plot/over takes too long and the line is incorrect.
@@ -86376,23 +87631,24 @@ 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
-Wed May 11 16:13:54 PDT 2016
+Tue Apr 11 16:50:08 PDT 2017
 set view upper
 plot t[gt=tax_nlp]
 plot/ov/vs/line/dash {1,1}, 1e6*{-1,1}
 sp date
-Wed May 11 16:13:54 PDT 2016
+Tue Apr 11 16:50:08 PDT 2017
  
 sp date
-Wed May 11 16:13:54 PDT 2016
+Tue Apr 11 16:50:08 PDT 2017
 set view lower
 plot t[gt=tax_jul]
 plot/ov/vs/line/dash {2,2}, 1e6*{-1,1}
 sp date
-Wed May 11 16:13:54 PDT 2016
+Tue Apr 11 16:50:08 PDT 2017
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_save_noupcase
 ! err696_save_noupcase
 ! Ticket 2336: When UPCASE canceled an extra upcase axis
@@ -86445,7 +87701,7 @@ variables:
 		var:long_name = "0*TT + X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -86453,6 +87709,7 @@ set mode/last upcase
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_argument_blanks
 ! err696_argument_blanks.jnl
 ! Ticket 2343: quoted argument with a blank at the end.
@@ -86489,6 +87746,7 @@ Hi Hi there my friend
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_annotate_numeric
 ! err696_annotate_numeric
 ! 1/7/2016
@@ -86521,6 +87779,7 @@ annotate/nouser/xpos=1/ypos=0.5 1,2,3,4,5
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_e_component_mem_crptn
 ! canceling of an E aggregation dataset is leaving
 ! corrupted variables in memory as seen by the variable names "%%"
@@ -86551,28 +87810,37 @@ list/i=3 sst[T=@ave]
  4   / 4:  114.0514  113.7646  111.5685  109.8262  106.9033  102.2446      ....      ....      ....
  
 show mem/all
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 540 words
+    Current cache: 504 words
 all data in memory:
- SST[D=fourfiles]                  YE    mr:188  blk1:1  nblk:1
-    3  /106W           1  /12N          ...  / ...         ...  /01-JAN 00:45   1  /0.5          ...  / ...
-    3  /104W           9  /30N          ...  / ...         ...  /31-DEC 06:34   4  /4.5          ...  / ...
+ SST[D=fourfiles]                  YE    mr:242 size:72
+         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:187  blk1:2  nblk:1
-    3  /106W           1  /12N          ...  / ...           1  /01-JAN 00:45   1  /0.5          ...  / ...
-    3  /104W           9  /30N          ...  / ...          12  /31-DEC 06:34   4  /4.5          ...  / ...
+ SST[D=fourfiles]                  YTE   mr:196 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              ... / ...
  
 cancel data fourfiles
 show mem/all
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 540 words
+    Current cache: 0 words
 all data in memory:
  
 exit
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_mem_err_report
 ! err696_mem_err_report.jnl
 ! 1/21/2016 *acm*
+! V702: *sh* 2/17 - This script depends upon the specific formatting
+! of the error string, when memory is exceeded
+! Tweaked it to match the new formatting
+ 
 ! Ticket 2354: The error message shows the wrong number for memory needed.
 !
 ! Try to load some data larger than the default amount of memory
@@ -86589,37 +87857,34 @@ 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 (G092)
+    GRID (G091)
  name       axis              # pts   start                end                 subset
  XAXIS     X                  360 r   1                    360                 full
  YAXIS     Y                  180 r   1                    180                 full
  ZAXIS     Z                   20 r   1                    20                  full
  LONGTIME  TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
- normal    E
- normal    F
  
  
 set mode ignore
 load/l=1:5 bigvar
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 2 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 1296005 (65%)
+    The size of the requested object was: : 6480000 (324%)
  
 ! Previously the number Mwords shown was too low
 show sym fer_last_error
-FER_LAST_ERROR = "**ERROR: request exceeds memory setting: 13 Mwords were requested. "
+FER_LAST_ERROR = "**ERROR: request exceeds memory setting"
 cancel mode ignore
  
-! Get the number Ferret says it needs
-let ms1 = `strrindex("($fer_last_error)", ":")`
- !-> DEFINE VARIABLE ms1 = 40
-let ms2 = `strindex("($fer_last_error)", "Mword")`
- !-> DEFINE VARIABLE ms2 = 45
-let siz = substring("($fer_last_error)", `ms1+1`, `ms2-ms1-1`)
- !-> DEFINE VARIABLE siz = substring("**ERROR: request exceeds memory setting: 13 Mwords were requested. ", 41, 4)
- 
-! Increase memory accordingly
+! V702:  we no longer have to parse the error string.
+! Instead look at PEAK_MEMORY
  
-set mem/siz=`siz`
- !-> set mem/siz= 13
+SET MEMORY/SIZE=15
 load/l=1:5 bigvar
+SHOW SYMBOL ($PEAK_MEMORY)
+ !-> SHOW SYMBOL 7776005
  
 ! restore default
 set mem/siz=`memsize`
@@ -86628,6 +87893,7 @@ set mem/siz=`memsize`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_multiple_slashes
 ! err696_multiple_slashes.jnl
 ! 1/25/2016 *acm*
@@ -86672,19 +87938,19 @@ fill/($regqual)($plotqual) sst
  !-> CONTOUR/FILL//x=300:360///y=-20:20/L=3/pal=grayscale/line//key=cont sst
  
 ! command lines with urls unchanged
-IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
  !-> IF 1 THEN
-   set data///format=cdf http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+   set data///format=cdf http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
    let//d=coads_sst myvar = 1
    sh dat
      currently SET data sets:
     1> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
-    2> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      Sea Surface Temperature          1:180     1:90      ...       1:1680    ...       ...
+    2> http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+ name     title                             I         J         K         L
+ SST      Sea Surface Temperature          1:180     1:90      ...       1:1680
  ------------------------------
  MYVAR[D=coads_sst] = 1
  
@@ -86766,6 +88032,7 @@ repeat/l=1:2 (set reg/x=1:4//)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_2d_time_overlay
 ! err696_2d_time_overlay.jnl
 ! ticket 2360: 2-D time overlay plots have never worked.
@@ -86815,6 +88082,7 @@ shade/ov/pal=grayscale/lev f2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_singlevec_over
 ! err696_singlevec_over.jnl
 ! Ticket 2365: overlay a single vector. If
@@ -86858,6 +88126,7 @@ PPL_VECLEN = "  27.2"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_return_type
 ! err696_return_type
 ! See ticket #2367
@@ -86911,6 +88180,7 @@ list allcat
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_hovmuller_mod_fill
 ! err696_hovmuller_mod_fill.jnl
 ! 3/7/2016 ACM
@@ -86926,6 +88196,7 @@ fill/lin/t=1-jan-0000:31-dec-0001/hlim=1-jan-0000:1-jan-0001/x=180/lev=8 sst
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_repeat_escapes.jnl
 ! err696_repeat_escapes.jnl
 ! Ticket 2376 - parsing error with escaped grave-accent syntax
@@ -86973,6 +88244,7 @@ repeat/k=1:3 (rep/i=1:2 (sp echo \``a`\`))
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_red_keylab.jnl
 ! err696_red_keylab.jnl
 ! Ticket 2375: outline and labels of color key were
@@ -86987,6 +88259,7 @@ fill/over/nolab/key/lev=v,2min temp
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_poly_over_label
 ! err696_poly_over_label
 ! Tiket 2396: incorrect label in the lower
@@ -87054,6 +88327,7 @@ ppl list labels  ! shows cvar for lab2
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_def_ax_f
 ! err696_def_ax_f.jnl
 ! See ticket 2380
@@ -87101,6 +88375,7 @@ list _t[gt=aax]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_mode_cal_f
 ! err696_mode_cal_f.jnl
 ! ticket 2399 MODE CALENDAR and F calendar axes
@@ -87164,6 +88439,7 @@ LAB1 = "F (DAY) : 1.5"
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_def_ax_edges
 ! err696_def_ax_edges
 ! See ticket 2400
@@ -87281,6 +88557,7 @@ def ax/edge/x xax = edges[i=1:4]; sh axis xax; list x[gx=xax]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_write_no_dim
 ! err696_write_no_dim.jnl
 ! ticket 2241: save a subset of a variable whose grid
@@ -87290,10 +88567,10 @@ use nodim
 sh dat
      currently SET data sets:
     1> ./nodim.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  EXPOCODE expocode                         ...       ...       ...       ...       1:1       ...
  NUM_OBS  Number of observations           ...       ...       ...       ...       1:1       ...
- TEMP     sea surface temperature          1:51      ...       ...       ...       ...       ...
+ TEMP     sea surface temperature          1:51      ...       ...       ...
  
  
 ! previously this gave an error
@@ -87326,7 +88603,7 @@ variables:
 		TEMP:history = "From /home/data/socat/socatV3/11SS/11SS20140225.nc" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -87336,6 +88613,7 @@ data:
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_mod_sub_fln
 ! err696_mod_sub_fln.jnl
 ! Ticket 2366, @FLN on a modulo subspan axis
@@ -87404,6 +88682,7 @@ list/x=-180:720 b, b[x=@fln]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_subspan_transforms
 ! err696_subspan_transforms.jnl
 ! See ticket 2364.  Results previously
@@ -88203,6 +89482,7 @@ can var a; can ax xaxis; use a.nc
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_subspan_mod_in_expr
 ! err696_subspan_mod_in_expr.jnl
 ! ticket 1845: a subspan modulo due to context info buried
@@ -88234,6 +89514,7 @@ XAXIS_MAX = "145.345261"
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_shade_subspan_clim
 ! err696_shade_subspan_clim
 ! See ticket 2404
@@ -88252,7 +89533,7 @@ set view ul; shade a*x[gx=0:10:1]
 sh sym yaxis*
 YAXIS_REVERSED = "0"
 YAXIS_MIN = "31.0000000"
-YAXIS_MAX = "212.242500"
+YAXIS_MAX = "243.000000"
  
 ! But the top-right SHADE plot was all messed up; it shifts the data
 ! later by a full month, and stretches the last (shifted) cell all
@@ -88262,7 +89543,7 @@ set view ur; shade/t=1-jan-0001:1-jan-0002 a*x[gx=0:10:1]
 sh sym yaxis*
 YAXIS_REVERSED = "0"
 YAXIS_MIN = "31.0000000"
-YAXIS_MAX = "212.242500"
+YAXIS_MAX = "243.000000"
  
 ! In the bottom-right line plot, the actual plotted data look ok.
 ! But the plot limits extend all the way from 1-JUL-0000 to 1-MAR-0002,
@@ -88273,19 +89554,186 @@ set view lr; plot/step=con/t=1-jan-0001:1-jan-0002 a
 sh sym xaxis*
 XAXIS_REVERSED = "0"
 XAXIS_MIN = "31.0000000"
-XAXIS_MAX = "212.242500"
+XAXIS_MAX = "243.000000"
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! go err696_subspan_mod_strides  ! do this test in bn_gif
  
-GO bn_reset
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err696_def_att
+! err696_def_att.jnl
+! tickets 2415, 2416
+! data type for defined axes
+ 
+use coads_climatology
+ 
+! previously the values were corrupted when defining numeric
+! attributes on a coordinate variable
+define att/output (`sst,return=xaxis`).new2 = {1,3,6}
+ !-> define att/output (COADSX).new2 = {1,3,6}
+save/clobber/file=a.nc sst
+sp ncdump a.nc | grep -i coadsx
+	COADSX = 180 ;
+	double COADSX(COADSX) ;
+		COADSX:units = "degrees_east" ;
+		COADSX:modulo = " " ;
+		COADSX:point_spacing = "even" ;
+		COADSX:new2 = 1.f, 3.f, 6.f ;
+		COADSX:axis = "X" ;
+		COADSX:standard_name = "longitude" ;
+	float SST(TIME10, COADSY, COADSX) ;
+ COADSX = 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 
+ 
+can dat/all
+use coads_climatology
+ 
+! previously could only specify /TYPE=float or /TYPE=string
+ 
+! default types from the expression
+define att/output sst.newch = "A string"
+define att/output sst.newch = 158.12
+ 
+define att/output/type=byt sst.abyte = 5
+define att/output/type=int sst.aint = {-5,-12,-1556,0,1}
+define att/output/type=string sst.str_from_num = 978.43
+define att/output/type=double sst.dbint = 123.45678901
+ 
+save/clobber/file=a.nc sst
+sp ncdump a.nc | grep -i sst
+	float SST(TIME10, COADSY, COADSX) ;
+		SST:missing_value = -1.e+34f ;
+		SST:_FillValue = -1.e+34f ;
+		SST:long_name = "SEA SURFACE TEMPERATURE" ;
+		SST:history = "From coads_climatology" ;
+		SST:units = "Deg C" ;
+		SST:newch = 158.12f ;
+		SST:abyte = 5b ;
+		SST:aint = -5, -12, -1556, 0, 1 ;
+		SST:str_from_num = "978.43" ;
+		SST:dbint = 123.45678901 ;
+ SST =
+ 
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err696_return_prec
+! err696_return_prec.jnl
+! ACM 5/16 See ticket 2389.
+! For grave-accent returns, adjust the formatting so that `var,p=2` really
+! means 2 digits, and returning an exponential rather than a long integer
+! with lots of zero's.
+ 
+! Both of these as exponentials. Prev. the second switched to an integer.
+say `1.55551e8,p=2`
+ !-> MESSAGE/CONTINUE 1.6E+08
+1.6E+08
+say `1.55551e7,p=2`
+ !-> MESSAGE/CONTINUE 1.6E+07
+1.6E+07
+ 
+! Return only as many digits as requested
+ 
+say `1.555555551e-9,p=1`
+ !-> MESSAGE/CONTINUE  2.E-09
+2.E-09
+say `1.555555551e-9,p=2`
+ !-> MESSAGE/CONTINUE   1.6E-09
+1.6E-09
+say `1.555555551e-9,p=3`
+ !-> MESSAGE/CONTINUE    1.56E-09
+1.56E-09
+ 
+say `1.555555551e-9,p=5`
+ !-> MESSAGE/CONTINUE      1.5556E-09
+1.5556E-09
+say `1.555555551e-9,p=7`
+ !-> MESSAGE/CONTINUE       1.555556E-09
+1.555556E-09
+say `1.555555551e-9,p=10`
+ !-> MESSAGE/CONTINUE    1.555555551E-09
+1.555555551E-09
+ 
+! For large numbers, return an fixed-point value only when the number
+! of digits is at least the magnitude of the value
+ 
+say `1.55551e8,p=2`
+ !-> MESSAGE/CONTINUE 1.6E+08
+1.6E+08
+say `1.55551e8,p=3`
+ !-> MESSAGE/CONTINUE 1.56E+08
+1.56E+08
+say `1.55551e8,p=5`
+ !-> MESSAGE/CONTINUE 1.5555E+08
+1.5555E+08
+say `1.55551e8,p=9`
+ !-> MESSAGE/CONTINUE 155551000
+155551000
+say `1.55551e8,p=10`
+ !-> MESSAGE/CONTINUE 155551000
+155551000
+ 
+! Previously these returned fixed-point numbers with trailing zero's
+! after the decimal point. These are removed.
+say `1.55555551e8,p=14`
+ !-> MESSAGE/CONTINUE 155555551
+155555551
+say `1.555555001e8,p=14`
+ !-> MESSAGE/CONTINUE 155555500.1
+155555500.1
+ 
+ 
+ 
+ 
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err686_show_xml_letd
+! ! bn_show_xml_letd
+! Testing SHOW DATA/VAR/XML with a let/D variable
+! Ticket 2441
+ 
+use coads_climatology.cdf
+use gtbc011.cdf
+let/d=1 u2 = u[d=2]
+let/d=1 v2 = v[d=2]
+let/d=1 w2 = w[d=2]
+let/d=1 salt2 = salt[d=2]
+sh dat 1
+     currently SET data sets:
+    1> ./coads_climatology.cdf
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
+ ------------------------------
+ SALT2[D=coads_climatology] = SALT[D=2]
+ W2[D=coads_climatology] = W[D=2]
+ V2[D=coads_climatology] = V[D=2]
+ U2[D=coads_climatology] = U[D=2]
+ 
+ 
+sh dat/var/xml/outfile=out.xml/clobber 1
+ 
+! Showed w2 twice but missed u2.
+sp grep "var name" out.xml
+<var name="SST">
+<var name="salt2">
+<var name="w2">
+<var name="v2">
+<var name="u2">
+ 
+GO bn_reset bn_aggregate_t
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_aggregate_t
 GO bn_aggregate_t
 ! 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
+! 1/2017 *acm* changes in output due to backing off auto-detection of truemonth axes, tkt 2497
  
 spawn "mkdir -p tmp"     ! tmp directory t store files
  
@@ -88494,9 +89942,9 @@ tseries myagg1 =  tmp/tagg_reg_1.nc
 show data myagg1
      currently SET data sets:
     2> myagg1  (default)
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
  
 show grid myvar
     GRID GQC1
@@ -88505,8 +89953,6 @@ show grid myvar
  normal    Y
  normal    Z
  TDAY1     TIME                10 r   01-JAN-1980 00:00    10-JAN-1980 00:00   full
- normal    E
- normal    F
  
 ! double file aggregation
 define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
@@ -88517,8 +89963,6 @@ show grid myvar
  normal    Y
  normal    Z
  TDAY2     TIME                20 r   01-JAN-1980 00:00    20-JAN-1980 00:00   full
- normal    E
- normal    F
 stat myvar
  
              SIN(T[GT=TDAY]/10) + L[GT=TDAY]/10
@@ -88542,9 +89986,9 @@ define data/agg/t myAgg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
 show data myAgg2
      currently SET data sets:
     3> myagg2
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
  
  
 ! *sh* 1/28/2016 addition
@@ -88564,11 +90008,11 @@ show data/full  ! all 4 datasets
      currently SET data sets:
     1> tmp/tagg_reg_1.nc
  
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10
                on grid GTR1 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GTR2 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -88577,11 +90021,11 @@ show data/full  ! all 4 datasets
     2> myagg1
  
      T-aggregation of 1 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10
                on grid GQC1 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GQC2 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -88593,11 +90037,11 @@ show data/full  ! all 4 datasets
     3> myagg2
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20
                on grid GQC3 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GQC4 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -88610,11 +90054,11 @@ show data/full  ! all 4 datasets
     4> myAgg2
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20
                on grid GQC5 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GQC6 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -88627,11 +90071,11 @@ show data/full  ! all 4 datasets
     5> ./bn_aggregate_t.jnl
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20
                on grid GQC7 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GQC8 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -88644,11 +90088,11 @@ show data/full  ! all 4 datasets
     6> myagg8  (default)
  
      T-aggregation of 8 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:80      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:80
                on grid GQC9 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GQC10 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -88671,8 +90115,6 @@ show grid myvar
  normal    Y
  normal    Z
  TDAY3     TIME                80 r   01-JAN-1980 00:00    20-MAR-1980 00:00   full
- normal    E
- normal    F
 plot/line/sym myvar
  
 ! read a time-independent field from the first file of the aggregation
@@ -88766,10 +90208,13 @@ tseries myTindepagg = tmp/tagg_reg_no_T.nc
 ! erroneous file 2 with 15 time steps, goes beyond start of file 3
 define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2_overlarge.nc,tmp/tagg_reg_3.nc
  
+! Try to use dataset names not file names. This is not allowed for Tseries aggregations.
+use tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+define data/agg/t myagg2num = 1,2
+ 
 set mode/last ignore
 canc data/all
  
- 
 ! --- irregularly-spaced axes ---
 ! aggregation of 2 irregular datasets
  define data/agg/t myagg2 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc
@@ -88781,8 +90226,8 @@ define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irr
     1> myagg2
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20
                on grid GCV1 with -1.E+34 for missing data
              
  
@@ -88795,8 +90240,8 @@ define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irr
     2> myagg8  (default)
  
      T-aggregation of 8 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:80      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:80
                on grid GCV2 with -1.E+34 for missing data
              
  
@@ -88815,8 +90260,8 @@ define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irr
   show data myagg2
      currently SET data sets:
     1> myagg2
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20
  
   show grid/t myvar[d=1]
     GRID GCV1
@@ -88825,8 +90270,6 @@ define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irr
  normal    Y
  normal    Z
  TDAY_IR1  TIME                20 i   02-JAN-1980 00:00    21-JAN-1980 14:35   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1980 00:00:00  1.013911   01-JAN-1980 11:49:59    1
@@ -88856,8 +90299,6 @@ define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irr
  normal    Y
  normal    Z
  TDAY_IR2  TIME                80 i   02-JAN-1980 00:00    24-MAR-1980 14:00   full
- normal    E
- normal    F
   plot/line/sym myvar[d=2],myvar[d=1]
  
 ! aggregate collection that mixes regular (file 2) with irregular
@@ -88869,8 +90310,6 @@ define data/agg/t myagg4 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2_reg.nc,tmp/tagg
  normal    Y
  normal    Z
  TDAY_IR3  TIME                40 i   02-JAN-1980 00:00    11-FEB-1980 12:04   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1980 00:00:00  1.013911   01-JAN-1980 11:49:59    1
@@ -88931,8 +90370,8 @@ define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/
     1> myagg2
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8
                on grid GBN1 with -1.E+34 for missing data
              
  
@@ -88945,8 +90384,8 @@ define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/
     2> myagg8  (default)
  
      T-aggregation of 5 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:20
                on grid GBN2 with -1.E+34 for missing data
              
  
@@ -88962,8 +90401,8 @@ define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/
   show data myagg2
      currently SET data sets:
     1> myagg2
- name     title                             I         J         K         L         M         N
- MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8
  
   show grid/t myvar[d=1]
     GRID GBN1
@@ -88972,8 +90411,6 @@ define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/
  normal    Y
  normal    Z
  TDAY_TVAR TIME                 8 r   02-JAN-1980 00:00    09-JAN-1980 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1980 00:00:00  1          01-JAN-1980 12:00:00    1
@@ -88991,8 +90428,6 @@ define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/
  normal    Y
  normal    Z
  TDAY_TVAR1 TIME               20 r   02-JAN-1980 00:00    21-JAN-1980 00:00   full
- normal    E
- normal    F
   plot/line/sym myvar[d=2],myvar[d=1]
  
 canc data/all
@@ -89009,8 +90444,8 @@ define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T
     1> myagg2
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11
                on grid GKQ1 with -1.E+34 for missing data
              
  
@@ -89023,8 +90458,8 @@ define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T
     2> myagg8  (default)
  
      T-aggregation of 8 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:62      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:62
                on grid GKQ2 with -1.E+34 for missing data
              
  
@@ -89043,8 +90478,8 @@ define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T
   show data myagg2
      currently SET data sets:
     1> myagg2
- name     title                             I         J         K         L         M         N
- MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11
  
   show grid/t myvar[d=1]
     GRID GKQ1
@@ -89053,8 +90488,6 @@ define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T
  normal    Y
  normal    Z
  TDAY_TVAR TIME                11 i   02-JAN-1981 00:00    11-JAN-1982 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    1
@@ -89075,8 +90508,6 @@ define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T
  normal    Y
  normal    Z
  TDAY_TVAR1 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
- normal    E
- normal    F
   plot/line/sym/vlim=0:11 myvar[d=2],myvar[d=1]
  
 ! a few tests of using Ferret string variables to get the names of files
@@ -89084,9 +90515,9 @@ define data/agg/t listAgg1 = {"tmp/tagg_reg_1.nc", "tmp/tagg_reg_2.nc"}
 show data/files listAgg1
      currently SET data sets:
     3> listAgg1  (default)
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
  
           time-dependent data files:
 01-JAN-1980 00:00 -> 10-JAN-1980 00:00    tmp/tagg_reg_1.nc
@@ -89099,9 +90530,9 @@ define data/agg/t listAgg2 = file_list
 show data/files listAgg2
      currently SET data sets:
     4> listAgg2  (default)
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:90      ...       ...
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:90
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
  
           time-dependent data files:
 01-JAN-1980 00:00 -> 10-JAN-1980 00:00    tmp/tagg_reg_1.nc
@@ -89138,8 +90569,6 @@ show grid/l=1:8 myvar[d=myagg8]
  normal    Y
  normal    Z
  TDAY_TVAR1 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    1
@@ -89157,8 +90586,6 @@ show grid/l=1:8 myvar[d=myagg8_disordered3]
  normal    Y
  normal    Z
  TDAY_TVAR2 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    -364
@@ -89191,11 +90618,11 @@ show data/full  MYsing_reg_agg6
     1> MYsing_reg_agg6  (default)
  
      T-aggregation of 6 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:6       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:6
                on grid GMI1 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GMI2 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -89216,8 +90643,6 @@ show grid/t myvar
  normal    Y
  normal    Z
  TDAY1     TIME                 6 r   01-JAN-1980 00:00    06-JAN-1980 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  01-JAN-1980 00:00:00  1          31-DEC-1979 12:00:00    28840
@@ -89253,11 +90678,11 @@ show data/full MYsing_irreg_agg4
     2> MYsing_irreg_agg4  (default)
  
      T-aggregation of 4 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:4       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:4
                on grid GMI3 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GMI4 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -89276,8 +90701,6 @@ show grid/t myvar
  normal    Y
  normal    Z
  TDAY2     TIME                 4 i   01-JAN-1980 00:00    05-JAN-1980 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  01-JAN-1980 00:00:00  1          31-DEC-1979 12:00:00    28840
@@ -89344,14 +90767,18 @@ stat/brief TBOXHI[g=myvar[d=MYsing_irreg_agg4]] - TBOXHI[g=myvar[d=MYsing_irreg_
 canc data/all
  
 ! OPeNDAP test
-IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc") EQ 0` THEN
+! (Note: when running pre-true-month Ferret versions, the timestep output from
+! show grid/T below was eliminated by the "clean_draconian" script)
+! 1/17/2017 changes due to backing off auto-detection of truemonth axes, tkt 2497
+ 
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc") EQ 0` THEN
  !-> IF 1 THEN
-   tseries COADS = http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc, http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2013.nc, http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2014.nc
+   tseries COADS = http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc, http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/ferret/test_coads_monthly_air_2013.nc, http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/ferret/test_coads_monthly_air_2014.nc
 show data COADS
      currently SET data sets:
     1> COADS  (default)
- name     title                             I         J         K         L         M         N
- AIR      Air Temperature Monthly Mean_da  1:180     1:90      ...       1:36      ...       ...
+ name     title                             I         J         K         L
+ AIR      Air Temperature Monthly Mean_da  1:180     1:90      ...       1:36
  
 show grid/T air
     GRID GMW1
@@ -89360,8 +90787,6 @@ show grid/T air
  LAT       LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME17    TIME                36 i   16-JAN-2012 12:00    16-DEC-2014 12:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  16-JAN-2012 12:00:00  31         01-JAN-2012 00:00:00    77446.5
@@ -89432,8 +90857,10 @@ show data/br
     1> myagg3  (default)
 cancel data/all
  
-GO bn_reset
+GO bn_reset bn_unquoted_args
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_unquoted_args
 GO bn_unquoted_args
 ! bn_unquoted_args.jnl
 ! 12/2015 -- a hack change to PPARSE_COMMAND to allow users to omit
@@ -89510,24 +90937,24 @@ show data/brief
     3> tmp/test3.nc  (default)
 canc data/all
  
-IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
  !-> IF 1 THEN
-  use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
+  use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
   show data/brief
      currently SET data sets:
-    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+    1> http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
   canc data/all
-  use http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+  use http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
   show data/brief
      currently SET data sets:
-    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+    1> http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
   canc data/all
-  use tmp/test1.nc, "tmp/test2.nc", http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+  use tmp/test1.nc, "tmp/test2.nc", http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
   show data/brief
      currently SET data sets:
     1> tmp/test1.nc
     2> tmp/test2.nc
-    3> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+    3> http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
   canc data/all
 ELSE
 ENDIF
@@ -89640,8 +91067,10 @@ set mode/last ignore
  
  
  
-GO bn_reset
+GO bn_reset bn_long_lists
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_long_lists
 GO bn_long_lists
 ! bn_long_lists.jnl
 ! See ticket 2337
@@ -89785,8 +91214,10 @@ let file_list = {\
  
 set mode/last ignore
  
-GO bn_reset
+GO bn_reset bn_show_uvar_grid
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_show_uvar_grid
 GO bn_show_uvar_grid
 ! bn_show_uvar_grid.jnl
 ! Add notes to the output of SHOW GRID for variables and expressions
@@ -89801,23 +91232,19 @@ use coads_climatology
 show grid sst[x=240:320,y=0,t=@ave]
     GRID GSQ1
  name       axis              # pts   start                end                 subset
- COADSX    LONGITUDE          180mr   21E                  19E(379)            39 pts
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            40 pts
  COADSY    LATITUDE            90 r   89S                  89N                 1 pt
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        compressed
- normal    E
- normal    F
  
 ! Modulo axes ask for superset
 show grid sst[x=0:540,L=1:15]
     GRID GSQ1
  name       axis              # pts   start                end                 subset
- COADSX    LONGITUDE          180mr   21E                  19E(379)            269 pts
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            270 pts
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        14 pts
- normal    E
- normal    F
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        15 pts
  
 ! Constant: full abstract grid
 show grid 1
@@ -89838,18 +91265,14 @@ show grid {1}
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 let var = {1,2,4,8}  ! Note that show grid {1,2,4,8} fails: bug
 show grid var
     GRID XABSTRACT
  name       axis              # pts   start                end                 subset
- ABSTRACT  X             99999999 r   1                    1.E+08              3 pts
+ ABSTRACT  X             99999999 r   1                    1.E+08              4 pts
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! but don't show any user-var grid info if they just ask for the grid by name
 show grid `sst,return=grid`
@@ -89860,8 +91283,6 @@ show grid `sst,return=grid`
  COADSY    LATITUDE            90 r   89S                  89N
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
  
 ! grid of last variable loaded
 load sst[x=240,y=@iin,t=@ave]
@@ -89874,8 +91295,6 @@ show grid
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        compressed
- normal    E
- normal    F
  
 ! Result grid is full grid
 let var = sst[L=@ave] - sst[x=@max] - sst[y=0]
@@ -89886,8 +91305,6 @@ show grid var
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! transform on single-point range is equiv. to single-point subset
  
@@ -89900,8 +91317,6 @@ show grid var
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
 set mode/last interpolate
 let var = sst[X=30:30.1 at max]
 show grid var
@@ -89911,31 +91326,25 @@ show grid var
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! dynamic grid
 let var = sst[y=-10:10:.1,l=1,x=160e]
 show grid var
-    GRID (G084)
+    GRID (G086)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX122)   LATITUDE           201 r   10S                  10N                 200 pts
+ (AX111)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
- normal    E
- normal    F
  
 ! striding
 show grid sst[i=1:180:3,j=1:90:2]
-    GRID (G088)
+    GRID (G085)
  name       axis              # pts   start                end                 subset
- (AX120)   LONGITUDE           60 r   21E                  15E(375)            59 pts
- (AX133)   LATITUDE            45 r   89S                  87N                 44 pts
+ (AX113)   LONGITUDE           60 r   21E                  15E(375)            60 pts
+ (AX133)   LATITUDE            45 r   89S                  87N                 45 pts
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! regridding
  
@@ -89943,25 +91352,21 @@ 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 (G088)
+    GRID (G085)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- DAX       TIME              1096 r   01-JAN-1980 00:00    31-DEC-1982 00:00   44 pts
- normal    E
- normal    F
+ DAX       TIME              1096 r   01-JAN-1980 00:00    31-DEC-1982 00:00   45 pts
  
 let vwnd_clim = vwnd[gt=month_irreg at mod]
 sh grid vwnd_clim[L=4:9]
-    GRID (G104)
+    GRID (G084)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49        5 pts
- normal    E
- normal    F
+ MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49        6 pts
  
 can dat/all
 use coads_climatology
@@ -89976,19 +91381,15 @@ show grid var
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 let var = sst[y=-30:30 at iin]
 show grid var
     GRID GSQ1
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- COADSY    LATITUDE            90 r   89S                  89N                 29 pts
+ COADSY    LATITUDE            90 r   89S                  89N                 30 pts
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 use levitus_3d_subset
 let var = temp[z=@weq:20]
@@ -89999,8 +91400,6 @@ show grid var
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAXLEVITR DEPTH (m)           20 i-  0                    5000                full
  normal    T
- normal    E
- normal    F
  
 let var = temp[z=1:120 at weq:20]
 show grid var
@@ -90008,10 +91407,8 @@ show grid var
  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                6 pts
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                7 pts
  normal    T
- normal    E
- normal    F
  
  
 ! grid-changing functions
@@ -90020,48 +91417,40 @@ use levitus_3d_subset
 let depth =  Z[G=TEMP]+ 0*TEMP[K=1]
 let depth_rev = zreverse(depth)
 show grid depth_rev
-    GRID (G083)
+    GRID (G106)
  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
  ABSTRACT  Z             99999999 r   1                    1.E+08              (axis from grid-changing func)
  normal    T
- normal    E
- normal    F
  
 DEFINE AXIS/t=1-Jan-1990:31-Dec-1990:24/t0=1-jan-1980 dayt
 let tpts = t[gt=dayt]
 LET sample_function = sin(0.5*tpts - 6.)/2. - cos(0.3*tpts)
  
 show grid ffta(sample_function)
-    GRID (G088)
+    GRID (G085)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- (AX113)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
- normal    E
- normal    F
+ (AX125)   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 (G088)
+    GRID (G085)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  (AX133)   T (CYC/HOURS)       76 r   0.00027412           0.020833            (axis from grid-changing func)
- normal    E
- normal    F
  
 show grid ffta(sample_function + temp[d=levitus_3d_subset,z=0:40])
-    GRID (G104)
+    GRID (G084)
  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                3 pts
- (AX113)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
- normal    E
- normal    F
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                4 pts
+ (AX125)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
  
 can dat/all
  
@@ -90074,23 +91463,19 @@ LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
 let  TEMPZ = TEMP[GZ(DEPTH)=ZPTS]
  
 sh grid tempz
-    GRID (G084)
+    GRID (G086)
  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
- (AX122)   Z                    5 r   100                  500                 full
+ (AX111)   Z                    5 r   100                  500                 full
  normal    T
- normal    E
- normal    F
 sh grid tempz[z=100:400]
-    GRID (G084)
+    GRID (G086)
  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
- (AX122)   Z                    5 r   100                  500                 3 pts
+ (AX111)   Z                    5 r   100                  500                 4 pts
  normal    T
- normal    E
- normal    F
  
 ! and with a grid-changing function thrown in
  
@@ -90104,30 +91489,28 @@ LET rvtemp  = rvtemp0[gz=temp at asn]
 LET rvdepth0 = ZREVERSE(depth)
 LET rvtempzax = rvtemp[gz(rvdepth)=zax,z=100:500]
 show grid rvtempzax
-    GRID (G109)
+    GRID (G107)
  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
- normal    E
- normal    F
  
 ! gc func: limits are hidden so a subset not seen
  
 LET rvtempzax = rvtemp[gz(rvdepth)=zax]
 show grid rvtempzax[z=100:300]
-    GRID (G109)
+    GRID (G107)
  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
- normal    E
- normal    F
  
-GO bn_reset
+GO bn_reset bn_aggregate_f
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_aggregate_f
 GO bn_aggregate_f
 ! bn_aggregate_f.F
 ! 12/2015 *sh*
@@ -90254,18 +91637,18 @@ show data/files my_fmrc
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:11
        (L=1:24)
  
-          Aggregated datasets:
-      1 : tmp/fcst_1.nc
-      2 : tmp/fcst_2.nc
-      3 : tmp/fcst_3.nc
-      4 : tmp/fcst_4.nc
-      5 : tmp/fcst_5.nc
-      6 : tmp/fcst_6.nc
-      7 : tmp/fcst_7.nc
-      8 : tmp/fcst_8.nc
-      9 : tmp/fcst_9.nc
-      10: tmp/fcst_10.nc
-      11: tmp/fcst_11.nc
+          Member datasets:
+      12.1 : tmp/fcst_1.nc
+      12.2 : tmp/fcst_2.nc
+      12.3 : tmp/fcst_3.nc
+      12.4 : tmp/fcst_4.nc
+      12.5 : tmp/fcst_5.nc
+      12.6 : tmp/fcst_6.nc
+      12.7 : tmp/fcst_7.nc
+      12.8 : tmp/fcst_8.nc
+      12.9 : tmp/fcst_9.nc
+      12.10: tmp/fcst_10.nc
+      12.11: tmp/fcst_11.nc
 show data/attr my_fmrc
      currently SET data sets:
    12> my_fmrc  (default)  Forecast aggregation
@@ -90511,18 +91894,18 @@ show data/files my_fmrc
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:11
        (L=1:24)
  
-          Aggregated datasets:
-      1 : tmp/fcst_1.nc
-      2 : (dummy)
-      3 : (dummy)
-      4 : tmp/fcst_4.nc
-      5 : tmp/fcst_5.nc
-      6 : tmp/fcst_6.nc
-      7 : tmp/fcst_7.nc
-      8 : tmp/fcst_8.nc
-      9 : (dummy)
-      10: (dummy)
-      11: tmp/fcst_11.nc
+          Member datasets:
+      12.1 : tmp/fcst_1.nc
+      12.2 : (dummy)
+      12.3 : (dummy)
+      12.4 : tmp/fcst_4.nc
+      12.5 : tmp/fcst_5.nc
+      12.6 : tmp/fcst_6.nc
+      12.7 : tmp/fcst_7.nc
+      12.8 : tmp/fcst_8.nc
+      12.9 : (dummy)
+      12.10: (dummy)
+      12.11: tmp/fcst_11.nc
 show data/brief
      currently SET data sets:
     2> tmp/fcst_2.nc
@@ -90550,6 +91933,7 @@ LIST tf_times
  01-JAN-1952 /  9:  19007.50  19098.00  19189.50  19281.50  19373.50  19463.00  19554.50  19646.50
  01-APR-1952 / 10:  19098.00  19189.50  19281.50  19373.50  19463.00  19554.50  19646.50  19738.50
  01-JUL-1952 / 11:  19189.50  19281.50  19373.50  19463.00  19554.50  19646.50  19738.50  19828.00
+ 
 GO bn_aggregate_f.sub
 ! bn_aggregate_f.sub
  
@@ -90772,16 +92156,16 @@ show data/files my_fmrc
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:9
        (L=1:36)
  
-          Aggregated datasets:
-      1: tmp/long_fcst_1.nc
-      2: tmp/fcst_2.nc
-      3: tmp/fcst_3.nc
-      4: tmp/fcst_4.nc
-      5: tmp/fcst_5.nc
-      6: tmp/fcst_6.nc
-      7: tmp/fcst_7.nc
-      8: tmp/fcst_8.nc
-      9: tmp/fcst_9.nc
+          Member datasets:
+      10.1: tmp/long_fcst_1.nc
+      10.2: tmp/fcst_2.nc
+      10.3: tmp/fcst_3.nc
+      10.4: tmp/fcst_4.nc
+      10.5: tmp/fcst_5.nc
+      10.6: tmp/fcst_6.nc
+      10.7: tmp/fcst_7.nc
+      10.8: tmp/fcst_8.nc
+      10.9: tmp/fcst_9.nc
 GO bn_aggregate_f.sub
 ! bn_aggregate_f.sub
  
@@ -90982,15 +92366,15 @@ show data/files my_fmrc
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:8
        (L=1:24)
  
-          Aggregated datasets:
-      1: tmp/fcst_1.nc
-      2: tmp/fcst_2.nc
-      3: tmp/fcst_3.nc
-      4: tmp/fcst_4.nc
-      5: tmp/fcst_5.nc
-      6: tmp/long_fcst_6.nc
-      7: tmp/fcst_7.nc
-      8: tmp/fcst_8.nc
+          Member datasets:
+      9.1: tmp/fcst_1.nc
+      9.2: tmp/fcst_2.nc
+      9.3: tmp/fcst_3.nc
+      9.4: tmp/fcst_4.nc
+      9.5: tmp/fcst_5.nc
+      9.6: tmp/long_fcst_6.nc
+      9.7: tmp/fcst_7.nc
+      9.8: tmp/fcst_8.nc
 GO bn_aggregate_f.sub
 ! bn_aggregate_f.sub
  
@@ -91186,12 +92570,12 @@ show data/files
        (L=7:30)
  TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:5
  
-          Aggregated datasets:
-      1: tmp/fcst_3.nc
-      2: tmp/fcst_4.nc
-      3: tmp/fcst_5.nc
-      4: tmp/one_var_fcst_6.nc
-      5: tmp/fcst_7.nc
+          Member datasets:
+      6.1: tmp/fcst_3.nc
+      6.2: tmp/fcst_4.nc
+      6.3: tmp/fcst_5.nc
+      6.4: tmp/one_var_fcst_6.nc
+      6.5: tmp/fcst_7.nc
 stat/l=1:20 fcst
  
              FIELD + FCST_ERROR
@@ -91235,12 +92619,12 @@ show data/full
  
   time range: 15.228 to 715.73
  
-          Aggregated datasets:
-      1: tmp/fcst_3.nc
-      2: tmp/fcst_4.nc
-      3: tmp/fcst_5.nc
-      4: tmp/one_var_fcst_6.nc
-      5: tmp/fcst_7.nc
+          Member datasets:
+      6.1: tmp/fcst_3.nc
+      6.2: tmp/fcst_4.nc
+      6.3: tmp/fcst_5.nc
+      6.4: tmp/one_var_fcst_6.nc
+      6.5: tmp/fcst_7.nc
     7> my_fmrc  (default)  Forecast aggregation
      Forecast series of 5 datasets patterned on fcst_3.nc
  name     title                             I         J         K         L         M         N
@@ -91254,12 +92638,12 @@ show data/full
  
   time range: 15.228 to 715.73
  
-          Aggregated datasets:
-      1: tmp/fcst_3.nc
-      2: tmp/fcst_4.nc
-      3: tmp/fcst_5.nc
-      4: tmp/one_var_fcst_6.nc
-      5: tmp/fcst_7.nc
+          Member datasets:
+      7.1: tmp/fcst_3.nc
+      7.2: tmp/fcst_4.nc
+      7.3: tmp/fcst_5.nc
+      7.4: tmp/one_var_fcst_6.nc
+      7.5: tmp/fcst_7.nc
  
 ! cancel a component dataset -- used in two aggregations
 cancel data tmp/fcst_4.nc
@@ -91300,14 +92684,14 @@ show data/files
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
        (L=1:24)
  
-          Aggregated datasets:
-      1: tmp/fcst_1.nc
-      2: tmp/fcst_2.nc
-      3: tmp/fcst_3.nc
-      4: tmp/fcst_4.nc
-      5: tmp/fcst_5.nc
-      6: tmp/one_var_fcst_6.nc
-      7: tmp/fcst_7.nc
+          Member datasets:
+      9.1: tmp/fcst_1.nc
+      9.2: tmp/fcst_2.nc
+      9.3: tmp/fcst_3.nc
+      9.4: tmp/fcst_4.nc
+      9.5: tmp/fcst_5.nc
+      9.6: tmp/one_var_fcst_6.nc
+      9.7: tmp/fcst_7.nc
    11> my_fmrc_letd_1     Forecast aggregation
  name     title                             I         J         K         L         M         N
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
@@ -91316,14 +92700,14 @@ show data/files
  FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
        (L=1:24)
  
-          Aggregated datasets:
-      1: tmp/one_var_fcst_1.nc
-      2: tmp/fcst_2.nc
-      3: tmp/fcst_3.nc
-      4: tmp/fcst_4.nc
-      5: tmp/fcst_5.nc
-      6: tmp/fcst_6.nc
-      7: tmp/fcst_7.nc
+          Member datasets:
+      11.1: tmp/one_var_fcst_1.nc
+      11.2: tmp/fcst_2.nc
+      11.3: tmp/fcst_3.nc
+      11.4: tmp/fcst_4.nc
+      11.5: tmp/fcst_5.nc
+      11.6: tmp/fcst_6.nc
+      11.7: tmp/fcst_7.nc
    12> my_fmrc  (default)  Forecast aggregation
  name     title                             I         J         K         L         M         N
  FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
@@ -91332,14 +92716,14 @@ show data/files
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
        (L=1:24)
  
-          Aggregated datasets:
-      1: tmp/fcst_1.nc
-      2: tmp/fcst_2.nc
-      3: tmp/fcst_3.nc
-      4: tmp/fcst_4.nc
-      5: tmp/fcst_5.nc
-      6: tmp/fcst_6.nc
-      7: tmp/fcst_7.nc
+          Member datasets:
+      12.1: tmp/fcst_1.nc
+      12.2: tmp/fcst_2.nc
+      12.3: tmp/fcst_3.nc
+      12.4: tmp/fcst_4.nc
+      12.5: tmp/fcst_5.nc
+      12.6: tmp/fcst_6.nc
+      12.7: tmp/fcst_7.nc
 show data
      currently SET data sets:
     9> my_fmrc_letd_6     Forecast aggregation
@@ -91467,12 +92851,15 @@ SH DATA/BR/HIDDEN
  
 set mode/last ignore
  
-GO bn_reset
+GO bn_reset bn_aggregate_tef
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_aggregate_tef
 GO bn_aggregate_tef
 ! 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
  
 ! to avoid re-creating the test files include argument "0" as in
 !  yes?  GO bn_aggregate_tef 0
@@ -91483,8 +92870,10 @@ 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/files/br
+show data/members/br
      currently SET data sets:
     1> t_f01_e1
           time-dependent data files:
@@ -91828,20 +93217,16 @@ show grid fcst[d=t_f01_e1]
     GRID GFA1
  name       axis              # pts   start                end                 subset
  XAX       LONGITUDE           21mr   140E                 160E                full
- YAX       LATITUDE            11 r   10N                  20N                 full
+ YAX1      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
- normal    E
- normal    F
 show grid fcst[d=t_f01_e2]
     GRID GFA1
  name       axis              # pts   start                end                 subset
  XAX       LONGITUDE           21mr   140E                 160E                full
- YAX       LATITUDE            11 r   10N                  20N                 full
+ YAX1      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
- normal    E
- normal    F
  
 ! ======== TEST SET 1:  aggregate E first, then F
  
@@ -91896,12 +93281,12 @@ SHOW DATA/FULL te_f11
  
   time range: 16-JUL-1952 12:00 to 16-JUN-1955 00:00
  
-          Aggregated datasets:
-      1: t_f11_e1
-      2: t_f11_e2
-      3: t_f11_e3
-      4: t_f11_e4
-      5: t_f11_e5
+          Member datasets:
+      67.1: t_f11_e1
+      67.2: t_f11_e2
+      67.3: t_f11_e3
+      67.4: t_f11_e4
+      67.5: t_f11_e5
 SHOW DATA/ATT te_f11   ! notice the promotion of fcst.im_everywhere
      currently SET data sets:
    67> te_f11  (default)  Ensemble aggregation
@@ -91925,7 +93310,7 @@ SHOW DATA/ATT te_f11   ! notice the promotion of fcst.im_everywhere
  
 ! define tef aggregation
 FMRC/HIDE tef = te_f01, te_f02, te_f03, te_f04, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
-SHOW DATA/brief/files
+SHOW DATA/brief/members
      currently SET data sets:
     1> t_f01_e1
           time-dependent data files:
@@ -91964,18 +93349,18 @@ SHOW DATA/brief/files
 16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e3_t3_1v.nc
  
    68> tef  (default)  Forecast aggregation
-          Aggregated datasets:
-      1 : te_f01
-      2 : te_f02
-      3 : te_f03
-      4 : te_f04
-      5 : te_f05
-      6 : te_f06
-      7 : te_f07
-      8 : te_f08
-      9 : te_f09
-      10: te_f10
-      11: te_f11
+          Member datasets:
+      68.1 : te_f01
+      68.2 : te_f02
+      68.3 : te_f03
+      68.4 : te_f04
+      68.5 : te_f05
+      68.6 : te_f06
+      68.7 : te_f07
+      68.8 : te_f08
+      68.9 : te_f09
+      68.10: te_f10
+      68.11: te_f11
 show data/full tef
      currently SET data sets:
    68> tef  (default)  Forecast aggregation
@@ -91995,18 +93380,18 @@ show data/full tef
  
   time range: 15.214 to 1080.2
  
-          Aggregated datasets:
-      1 : te_f01
-      2 : te_f02
-      3 : te_f03
-      4 : te_f04
-      5 : te_f05
-      6 : te_f06
-      7 : te_f07
-      8 : te_f08
-      9 : te_f09
-      10: te_f10
-      11: te_f11
+          Member datasets:
+      68.1 : te_f01
+      68.2 : te_f02
+      68.3 : te_f03
+      68.4 : te_f04
+      68.5 : te_f05
+      68.6 : te_f06
+      68.7 : te_f07
+      68.8 : te_f08
+      68.9 : te_f09
+      68.10: te_f10
+      68.11: te_f11
  
 ! simplest acess -- compact form -- just demonstrate it doesn't fail
 stat/brief fcst[i=11:12, j=5:6, l=31:32, m=1:2, n=5:6]
@@ -92043,7 +93428,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        33   T       FERRET V6.97 (beta/dbg) 11-May-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug)  3-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (XAX)                  DOUBLE    point_spacing   CHAR        4    T       even
@@ -92054,7 +93439,7 @@ SHOW DATA/ATT t_f04_e3_1v ! note atts im_everwhere vs im_not_everwhere
                                  orig_file_axname
                                                  CHAR        3    F       XAX
   
-(YAX)                  DOUBLE    point_spacing   CHAR        4    T       even
+(YAX1)                 DOUBLE    point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  units           CHAR        13   T       degrees_north
                                  standard_name   CHAR        8    F       latitude
@@ -92328,7 +93713,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        32   T       RUN TIME16 TF_TIMES ZAX1 YAX XAX
+                                 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
@@ -92343,7 +93728,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        38   T       TF_CAL_F1 TIME16 TF_TIMES ZAX1 YAX XAX
+                                 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
                                  _lag_f_ax       CHAR        8    T       TF_LAG_F
@@ -92465,18 +93850,18 @@ set mode/last ignore
  
 CANCEL DATA/ALL
  
-GO bn_reset
-cancel mode verify
+!GO bn_reset
 ! Add this to the gif benchmark tests
 ! GO bn_hovmuller_overlays
  
-GO bn_reset
-cancel mode verify
+!GO bn_reset
 ! Add this to the gif benchmark tests
 ! GO bn_labels_on_taxis
  
-GO bn_reset
+GO bn_reset bn_dataset_qualifier
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dataset_qualifier
 GO bn_dataset_qualifier
 ! bn_dataset_qualifier
 ! see ticket 2632
@@ -92541,7 +93926,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
 use a.nc
 sh att .
      attributes for dataset: ./a.nc
- ..history = FERRET V6.97 (beta/dbg) 11-May-16 
+ ..history = FERRET V7.1 (beta/debug) 11-Apr-17 
  ..Conventions = CF-1.6 
  ..dt_internal = 15
 sh att elev
@@ -92562,7 +93947,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
 use a.nc
 sh att .
      attributes for dataset: ./a.nc
- ..history = FERRET V6.97 (beta/dbg) 11-May-16 
+ ..history = FERRET V7.1 (beta/debug) 11-Apr-17 
  ..Conventions = CF-1.6 
 sh att elev
      attributes for dataset: ./a.nc
@@ -92586,11 +93971,9 @@ show grid
     GRID (G200)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX110)   LATITUDE           201 r   10S                  10N                 200 pts
+ (AX114)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
- normal    E
- normal    F
  
 ! LIST/DAT=, LET/DAT=,
 can dat/all
@@ -92609,7 +93992,6 @@ list/DAT=3 a
 list/DAT=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : levitus_climatology.cdf
-             X        : 1
         "From levitus_climatology"
  
 ! PLOT, SHADE, FILL, CONTOUR, VECTOR, STAT
@@ -92619,8 +94001,8 @@ let/DAT=2 temp = sst + 0*z[z=1:5:1]
 sh dat 2
      currently SET data sets:
     2> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
  TEMP[D=coads_climatology] = SST + 0*Z[Z=1:5:1]
  
@@ -92683,18 +94065,22 @@ plot/dash/x=180/z=0/DATASET=1 temp
 ! VECTOR/FLOW/DATA=/DENSITY
 flow/DAT=2/den=3/L=3 taux,tauy
  
-GO bn_reset
+GO bn_reset bn_speedtest
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_speedtest
 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  2.246  seconds
-Second 10K LET commands LET a = 0 takes  5.132  seconds
-5K LOAD with transform takes  6.807  seconds
+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
  
-GO bn_reset
+GO bn_reset bn_show_noupcase
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_show_noupcase
 GO bn_show_noupcase
 ! bn_show_noupcase.jnl
 ! 1/2016 ticket 1796
@@ -92718,12 +94104,10 @@ show var
 show grid MyUpperLowerCaseVar
     GRID (G204)
  name       axis              # pts   start                end                 subset
- ABSTRACT  X             99999999 r   1                    1.E+08              9 pts
+ ABSTRACT  X             99999999 r   1                    1.E+08              10 pts
  normal    Y
  normal    Z
  tday      TIME                31 r   01-JAN-1999 00:00    31-JAN-1999 00:00   full
- normal    E
- normal    F
  
  
 ! Files have variable and axis names in mixed case.
@@ -92733,14 +94117,14 @@ USE a_cartesian_bug1179.nc
 show data
      currently SET data sets:
     1> ./a1478.nc
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  lat1_5_bnds
-                                           1:2       1:5       ...       ...       ...       ...
- olr      outgoing longwave radiation      1:5       1:5       ...       1:3       ...       ...
+                                           1:2       1:5       ...       ...
+ olr      outgoing longwave radiation      1:5       1:5       ...       1:3
  
     2> ./a_cartesian_bug1179.nc  (default)
- name     title                             I         J         K         L         M         N
- temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
+ name     title                             I         J         K         L
+ temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1
  
  
 ! Previously the RETURN= gave the capitalized axis names
@@ -92774,21 +94158,22 @@ LET/D=2 newvar =  0*zvar[d=2] + olr[d=1]
 show data
      currently SET data sets:
     1> ./a1478.nc
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  lat1_5_bnds
-                                           1:2       1:5       ...       ...       ...       ...
- olr      outgoing longwave radiation      1:5       1:5       ...       1:3       ...       ...
+                                           1:2       1:5       ...       ...
+ olr      outgoing longwave radiation      1:5       1:5       ...       1:3
  ------------------------------
  zvar[D=a1478] = 2*TEMP[D=2]
  
     2> ./a_cartesian_bug1179.nc  (default)
- name     title                             I         J         K         L         M         N
- temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
+ name     title                             I         J         K         L
+ temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1
  ------------------------------
  newvar[D=a_cartesian_bug1179] = 0*ZVAR[D=2] + OLR[D=1]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
  
 ! xml output
@@ -93394,12 +94779,12 @@ SHO DATA/VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
 <attribute name="long_name" type="char">
    <value><![CDATA[TEMP[X=79E:79E at AVE]]]></value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GHU1">
 <axes>
 <yaxis>grid_y_T</yaxis>
@@ -93731,6 +95116,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GHU1">
 <axes>
 <xaxis>grid_x_T</xaxis>
@@ -93744,8 +95132,10 @@ SHO VAR/XML
 set mode/last upcase
  
  
-GO bn_reset
+GO bn_reset bn_letd_attributes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_letd_attributes
 GO bn_letd_attributes
 ! bn_letd_attributes.jnl
 ! Allow for the same variable name defined with LET/D in multiple datasets.
@@ -93765,8 +95155,8 @@ let/d=1/title="coads myvar" myvar = 1
 show dat 1
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
  MYVAR[D=coads_climatology] = 1
  
@@ -93829,8 +95219,8 @@ let/d=2/title="Levitus myvar" myvar = 2
 show dat 2
      currently SET data sets:
     2> ./levitus_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:160     1:90      1:1       ...       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:160     1:90      1:1       ...
  ------------------------------
  MYVAR[D=levitus_climatology] = 2
  
@@ -93903,12 +95293,12 @@ cancel var/all
 show dat
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
     2> ./levitus_climatology.cdf
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:160     1:90      1:1       ...       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:160     1:90      1:1       ...
  
  
 show dat/att 2
@@ -93991,8 +95381,10 @@ save/clobber/file=a.nc myvar[d=2]
 sp ncdump -h a.nc >> all_ncdump.out
  
  
-GO bn_reset
+GO bn_reset bn_list_clim_axes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_list_clim_axes
 GO bn_list_clim_axes
 ! bn_list_clim_axes.jnl
 ! *acm* 3/16
@@ -94133,8 +95525,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn_climatology_attr
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_climatology_attr
 GO bn_climatology_attr
 ! bn_climatology_attr.jnl
 ! *acm* 3/16  See ticket 2278
@@ -94198,8 +95592,31 @@ list/nohead/norow c.climatology_time_range
  "Multiple time ranges used"
  
  
-GO bn_reset
+! The attribute created only for user-defined variables not for an expression
+!
+! Define a monthly axis
+define axis/t=1-feb-1980:1-feb-2003/npoints=276/unit="day"/t0=1-jan-1900 tax
+ 
+let tvar = t[gt=tax]
+let clim1 = tvar[gt=month_irreg at mod]
+save/nobounds/file=a.nc/clobber 3*clim1
+ 
+can dat/all; use a.nc
+ 
+! The variable did not get a climatology_time_range attribute
+let vname = ..varnames
+show att `vname[i=1]`
+ !-> show att E494
+     attributes for dataset: ./a.nc
+ E494.missing_value = -1.E+34
+ E494._FillValue = -1.E+34
+ E494.long_name = 3*CLIM1 
+ 
+ 
+GO bn_reset bn_plot_along
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_along
 GO bn_plot_along
 ! BN_PLOT_ALONG
  
@@ -94273,8 +95690,10 @@ 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]
  
-GO bn_reset
+GO bn_reset bn_show_commands
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_show_commands
 GO bn_show_commands
 ! bn_show_commands.jnl
 ! Testing results for ticket 2078: SHOW COMMAND cmnd subcmnd
@@ -94353,12 +95772,12 @@ sho command sho
  SHOW EXPRSION/ALL
  SHOW LIST/ALL
  SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
-       /HIDDEN
+       /HIDDEN/MEMBERS
  SHOW MODE/ALL
  SHOW MOVIE/ALL
  SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
  SHOW COMMANDS/ALL/BRIEF
- SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+ SHOW MEMORY/ALL/DIAGNOST/TEMPORY/PERMANT/FREE
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
  SHOW VIEWPORT/ALL
  SHOW TRANFORM/ALL
@@ -94381,7 +95800,7 @@ sho command sho l  ! SHOW LIST
  SHOW LIST/ALL
 sho command sho d  ! SHOW DATA
  SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
-       /HIDDEN
+       /HIDDEN/MEMBERS
 sho command sho m  ! SHOW MODE
  SHOW MODE/ALL
 sho command sho mov! SHOW MOVIE
@@ -94391,7 +95810,7 @@ sho command sho v  ! SHOW VARIABLE
 sho command sho c  ! SHOW COMMANDS
  SHOW COMMANDS/ALL/BRIEF
 sho command sho me ! SHOW MEMORY
- SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+ SHOW MEMORY/ALL/DIAGNOST/TEMPORY/PERMANT/FREE
 sho command sho g  ! SHOW GRID
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
 sho command sho vi ! SHOW VIEWPORT
@@ -94474,13 +95893,13 @@ sho command def
  DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+         /EDGES/CALENDAR/BOUNDS/QUIET/MONTHLY/LIKE
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
  DEFINE ALIAS
  DEFINE SYMBOL
  DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE/U
  DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
 sho command def r  ! DEFINE REGION
  DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
@@ -94491,7 +95910,7 @@ sho command def v  ! DEFINE VARIABLE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
 sho command def a  ! DEFINE AXIS
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+         /EDGES/CALENDAR/BOUNDS/QUIET/MONTHLY/LIKE
 sho command def vi ! DEFINE VIEWPORT
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
 sho command def al ! DEFINE ALIAS
@@ -94503,7 +95922,7 @@ sho command def at ! DEFINE ATTRIBUTE
 sho command def P  ! DEFINE PYFUNC
  DEFINE PYFUNC/NAME
 sho command def d  ! DEFINE DATA
- DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE/U
 sho command def an ! DEFINE ANNOTATE
  DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
  
@@ -94666,14 +96085,16 @@ sho command/brief sp
 sho command/brief st
  STAT
 sho command/brief u
- USER
+ Not a recognized command: u
+ 
+ Use SHOW ALIAS to see alternative command names
 sho command/brief v
  VECTOR
  
  
 ! All the commands, no subcommands, no qualifiers
 SHOW COMMAND/BRIEF
- Commands in Program FERRET (beta/dbg) version6.97:
+ Commands in Program FERRET (beta/debug) version7.1:
  SET
  SHOW
  CANCEL
@@ -94693,7 +96114,6 @@ SHOW COMMAND/BRIEF
  STAT
  SHADE
  SPAWN
- USER
  WIRE
  QUERY
  IF
@@ -94735,8 +96155,10 @@ SHOW COMMAND/BRIEF sho da
  SHOW DATA
  
  
-GO bn_reset
+GO bn_reset bn_plot_decimate
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_decimate
 GO bn_plot_decimate
 ! BN_PLOT_SKIP
  
@@ -94825,14 +96247,17 @@ 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]
  
-GO bn_reset
+GO bn_reset bn_auto_tprec
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_auto_tprec
 GO bn_auto_tprec
 ! 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.
 ! (later make this the default setting??)
+! acm* 3/17 check the URL with TEST_OPENDAP befor trying to open it.
  
 set mode calendar:auto
 show mode calendar
@@ -94931,12 +96356,16 @@ shade/title="hours "/l=3/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
 LAB2 = "TIME : 01-JAN-2001 12:00"
  
 ! Reynolds SST weekly, even 7-day spacing
-use http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc
+ 
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc") NE 0` THEN EXIT/SCRIPT
+ !-> IF 0 THEN EXIT/SCRIPT
+ 
+use http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc
 list/x=180/y=0/l=20:25 fsst
              VARIABLE : Filtered Weekly SST Means (deg C)
              DATA SET : Reynolds Optimum Interpolation Weekly SST Analysis
              FILENAME : reynolds_sst_wk.nc
-             FILEPATH : http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
+             FILEPATH : http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/
              SUBSET   : 6 points (TIME)
              LONGITUDE: 180E (interpolated)
              LATITUDE : 0 (interpolated)
@@ -95006,269 +96435,7158 @@ LAB2 = "TIME : 16-AUG-1952 12:00"
 !GO bn_reset
 !GO bn_warn_subspan
  
-!  *********** Always do a bn_reset  ***********
-!  *********** make sure things clean up well **
-GO bn_reset
+GO bn_reset bn_coordvars_atts
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_coordvars_atts
+GO bn_coordvars_atts
+! 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
+! info from dimension info.
+ 
+! File has dimensions which are not coordinate variables, for
+! the dimensions of the 2D coordinate variables.
+use dims_not_coord.nc
+list/nohead ..ndims
+          3.000000
+list/nohead ..dimnames
+ 1   / 1:"ETA"     
+ 2   / 2:"TAU1"    
+ 3   / 3:"ZT_OCEAN"
+list/nohead ..ncoordvars
+          1.000000
+list/nohead ..coordnames
+        "ZT_OCEAN"
+let cname = ..coordnames
+sh axis `cname[i=1]`
+ !-> sh axis ZT_OCEAN
+ name       axis              # pts   start                end
+ ZT_OCEAN  DEPTH (m)            1 r-  15                   15
+   Axis span (to cell edges) = 1
+ 
+! The depth axis has coordinate bounds; the length-2 bnds
+! dimension is not a coordinate variable
+use levitus_3d_subset.nc
+list/nohead ..ndims
+          4.000000
+list/nohead ..dimnames
+ 1   / 1:"XAXLEVITR101_102"
+ 2   / 2:"YAXLEVITR41_42"  
+ 3   / 3:"ZAXLEVITR"       
+ 4   / 4:"bnds"            
+list/nohead ..ncoordvars
+          3.000000
+list/nohead ..coordnames
+ 1   / 1:"XAXLEVITR101_102"
+ 2   / 2:"YAXLEVITR41_42"  
+ 3   / 3:"ZAXLEVITR"       
+ 
+! String variables in netcdf files have string-length
+! dimensions which are not coordinate variables.
+use numstring.nc
+list/nohead ..ndims
+          4.000000
+list/nohead ..dimnames
+ 1   / 1:"XAX1"     
+ 2   / 2:"ZAX3"     
+ 3   / 3:"XAX1_10"  
+ 4   / 4:"STRING1_7"
+list/nohead ..ncoordvars
+          3.000000
+list/nohead ..coordnames
+ 1   / 1:"XAX1"   
+ 2   / 2:"ZAX3"   
+ 3   / 3:"XAX1_10"
+ 
+ 
+! *********** v7.1 Additions ***********
+ 
+GO bn_reset bn710_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn710_bug_fixes
+GO bn710_bug_fixes
+! bn710_bug_fixes.jnl
+! test various fixes that went into version 7.1
+! 6/16 *acm*
+!
  
-! version 2.3 requires exit/command *sh* 3/92
-exit/command
-yes? ! bn_all_ef_shell.jnl
-yes? ! 5/05 *acm*
-yes? ! run bn_all_ef tests
-yes? 
-yes? GO bn_all_ef
- 	NOAA/PMEL TMAP
- 	FERRET v6.97 (beta/dbg)
- 	Linux 2.6.18-409.el5PAE 32-bit - 05/11/16
- 	11-May-16 16:14     
-
-SET MODE VERIFY
-! bn_all_ef.jnl
-! - run all the benchmark tests for externally-linked external functions.
+! Bug 2445 missing or repeated coords when axis marked as regular
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_reg_axis_check
+! err700_reg_axis_check.jnl
+! Ticket 2445: regular axis, test for valid line_delta
+! ACM 7/6/2016
+ 
+use bug2445.nc
+show data
+     currently SET data sets:
+    1> ./bug2445.nc  (default)
+ name     title                             I         J         K         L
+ XAX                                       1:5       ...       ...       ...
+       (invalid coordinate axis)
+ YAX                                       ...       1:3       ...       ...
+       (invalid coordinate axis)
+ XX       X[GX=xax]                        1:5       ...       ...       ...
+ YY       Y var                            ...       1:3       ...       ...
  
  
-GO bn_reset
+! Repeated coordinates in first 2 coordinates of x axis.
+list xx
+             VARIABLE : X[GX=xax]
+             FILENAME : bug2445.nc
+             SUBSET   : 5 points (X)
+ 1   / 1:  1.000000
+ 2   / 2:  2.000000
+ 3   / 3:  3.000000
+ 4   / 4:  4.000000
+ 5   / 5:  5.000000
+list xax
+             VARIABLE :  Maize harvest
+                        invalid coordinate axis
+             FILENAME : bug2445.nc
+             SUBSET   : 5 points (X)
+ 1   / 1:  1.000000
+ 2   / 2:  1.000000
+ 3   / 3:  1.000000
+ 4   / 4:  1.000000
+ 5   / 5:  1.000000
+ 
+! Missing coordinate in first 2 coordinates of y axis.
+! Coordinate data cannot be missing.
+list yy
+             VARIABLE : Y var
+             FILENAME : bug2445.nc
+             SUBSET   : 3 points (Y)
+ 1   / 1:  10.00000
+ 2   / 2:  20.00000
+ 3   / 3:  30.00000
+list yax
+             VARIABLE :  Maize harvest
+                        invalid coordinate axis
+             FILENAME : bug2445.nc
+             SUBSET   : 3 points (Y)
+ 1   / 1:  1.000000E+00
+ 2   / 2:  9.969210E+36
+ 3   / 3:  1.000000E+00
+ 
+! Bug 2446 include script name on warning about unclosed IF block
+go bn_reset
 cancel mode verify
-GO bn_ef_external_functions.jnl
-! Tests of external functions that are distributed as shared object files.
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_unclosed_if
+! err71_unclosed_if.jnl
+! Ticket 2446
+! Add the script name when reporting an unclosed IF block
+! ACM 7/2016
  
-! Jon's benchmarks
-go bench_examples
-set mode ignore_error
-show func/ext add_9
-ADD_9(A,B,C,D,E,F,G,H,I)
-    (demonstration function) adds 9 arguments
-show func/ext ave*
-AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
-    Compute average of a variable in each cell of output time axis
-    TPTS: T coordinates of scattered input time coordinates
-    VPTS: Variable at times in TPTS
-    TAXIS: Output time axis
-AVET(A)
-    (demonstration function) returns the time average
-    A: data to be averaged over the time axis
-show func pass_thru
-PASS_THRU(A)
-    (demonstration function) sets result equal to input
-    A: this arg is passed through
-show func sto*
-STORAGE(A)
-    sets result equal to input/10
-    A: input
+go unclosed_if.sub
  
-go bench_add_9
-! Bench_add_9.jnl
-!  ACM  8/99
-!  benchmark script for testing external function add_9.
-! Note: bench_add_9_visual contains plots of similar computations
+let a = 1
+if `a eq 1` THEN
+ !-> if 1 THEN
+SAY YES
+YES
+let b = 1
  
-set mode ignore_errors
  
+! Bug 2446 inheriting attributes
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_inherit_all
+! err700_inherit_all.jnl
+! Ticket 2447: If all attributes are inherited, missing-value flags
+! are wrong.
+ 
+! This non-standardfile has no missing-value attributes.
+use no_miss_att.nc
+sh att a
+     attributes for dataset: ./no_miss_att.nc
+ A.min_value = 1
+ A.max_value = 3
+ A.long_name = {1,2,3} 
+ 
+! Define a variable, using some missing-value flag
+let/bad=9999 b = if a ne 2 then a else 9999
+list b
+             VARIABLE : IF A NE 2 THEN A ELSE 9999
+             FILENAME : no_miss_att.nc
+             SUBSET   : 3 points (X)
+ 1   / 1:  1.000000
+ 2   / 2:      ....
+ 3   / 3:  3.000000
  
-can region
-use coads_climatology
-set region/x=151E:179E/y=0
+! Now inherit the attributes from variable a.
+set att/like=a b
+show att b
+     attributes for user-defined variables
+ b.missing_value = 9999
+ b.min_value = 1
+ b.max_value = 3
+ b.long_name = {1,2,3} 
  
-let a1 = sst[d=1,l=1]
-let a2 = sst[d=1,l=2]
-let a3 = sst[d=1,l=3]
+! The missing-value flag is not written, but the value 9999 is
+save/file=a.nc/clobber b
  
-let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
+can var/all
+use a
  
-list a
-             VARIABLE : ADD_9(A1,A2,A3,A1,A2,A3,A1,A2,A3)
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 16-JAN 06:00
-                1S    
-                45
- 151E   / 66:  263.6
- 153E   / 67:  264.5
- 155E   / 68:  264.2
- 157E   / 69:  261.3
- 159E   / 70:  260.9
- 161E   / 71:  262.4
- 163E   / 72:  264.0
- 165E   / 73:  261.1
- 167E   / 74:  260.9
- 169E   / 75:  261.0
- 171E   / 76:  259.3
- 173E   / 77:  257.9
- 175E   / 78:  257.0
- 177E   / 79:  259.1
- 179E   / 80:  254.8
-list  a - 3 * sst[d=1,l=1:3 at sum]
-             VARIABLE : A - 3 * SST[D=coads_climatology,L=1:3 at SUM]
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 16-JAN 06:00
-                 1S    
-                 45
- 151E   / 66:  0.0000
- 153E   / 67:  0.0000
- 155E   / 68:  0.0000
- 157E   / 69:  0.0000
- 159E   / 70:  0.0000
- 161E   / 71:  0.0000
- 163E   / 72:  0.0000
- 165E   / 73:  0.0000
- 167E   / 74:  0.0000
- 169E   / 75:  0.0000
- 171E   / 76:  0.0000
- 173E   / 77:  0.0000
- 175E   / 78:  0.0000
- 177E   / 79:  0.0000
- 179E   / 80:  0.0000
-set mode/last ignore_errors
-go bench_avet
-! Bench_avet.jnl
-!  ACM  8/99
-!  benchmark script for testing external function avet.
-! Note: bench_avet_visual.jnl contains plots of similar computations
+! Element 2 should be missing. Previously lists out the 9999.
+list b
+             VARIABLE : {1,2,3}
+             FILENAME : a.nc
+             SUBSET   : 3 points (X)
+ 1   / 1:  1.000000
+ 2   / 2:      ....
+ 3   / 3:  3.000000
  
-set mode ignore_errors
  
-can region
-use coads_climatology
-set region/x=151E:179E/y=0
+! Bug 2458  Subspan modulo grids and SAMPLEXY
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_samplexy_subspan_modulo
+! err700_samplexy_subspan_modulo.jnl
+! 7/29/2016 ACM
+! Ticket 2458. The result of SAMPLEXY wrong when it needs
+! to do a modulo operation on a subspan modulo axis
  
-let a = avet(sst)
-list a
-             VARIABLE : AVET(SST)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-                1S    
-                45
- 151E   / 66:  29.28
- 153E   / 67:  29.39
- 155E   / 68:  29.35
- 157E   / 69:  29.03
- 159E   / 70:  28.99
- 161E   / 71:  29.15
- 163E   / 72:  29.33
- 165E   / 73:  29.01
- 167E   / 74:  28.99
- 169E   / 75:  29.00
- 171E   / 76:  28.81
- 173E   / 77:  28.66
- 175E   / 78:  28.56
- 177E   / 79:  28.79
- 179E   / 80:  28.31
-list a - sst[l=@ave]
-             VARIABLE : A - SST[L=@AVE]
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 01-JAN 00:45 to 01-APR 08:12
-                  1S      
-                  45
- 151E   / 66:  3.553E-15
- 153E   / 67:  0.000E+00
- 155E   / 68:  3.553E-15
- 157E   / 69:  0.000E+00
- 159E   / 70:  3.553E-15
- 161E   / 71:  3.553E-15
- 163E   / 72:  3.553E-15
- 165E   / 73:  0.000E+00
- 167E   / 74:  3.553E-15
- 169E   / 75:  3.553E-15
- 171E   / 76: -3.553E-15
- 173E   / 77:  3.553E-15
- 175E   / 78:  0.000E+00
- 177E   / 79:  3.553E-15
- 179E   / 80:  3.553E-15
+! Define a grid with a subspan longitude axis
  
-can region
-let a = x[i=1:9,k=1:5] + t[l=1:5]
-let b = x[i=1:9,k=1:5]
-let c = avet(a)
-list b, c
-             X: 0.5 to 9.5
- Column  1: B is X[I=1:9,K=1:5]
- Column  2: C is AVET(A)
-             B     C
-1   / 1:  1.000   4.00
-2   / 2:  2.000   5.00
-3   / 3:  3.000   6.00
-4   / 4:  4.000   7.00
-5   / 5:  5.000   8.00
-6   / 6:  6.000   9.00
-7   / 7:  7.000  10.00
-8   / 8:  8.000  11.00
-9   / 9:  9.000  12.00
+define axis/x=-100:-60:5/units=degrees_east xaxis
+define axis/y=18:30:2/units=degrees_north yaxis
+let var = x[gx=xaxis]+100 + 0.3*y[gy=yaxis]
  
-set mode/last ignore_errors
-go bench_pass_thru
-! Bench_pass_thru.jnl
-!  ACM  8/99
-!  benchmark script for testing external function pass_thru.
-! Note: bench_pass_thru_visual.jnl contains plots of similar computations
+save/clobber/file=a.nc var
+can var/all; use a
  
-set mode ignore_errors
+list/y=22 var
+             VARIABLE : X[GX=XAXIS]+100 + 0.3*Y[GY=YAXIS]
+             FILENAME : a.nc
+             SUBSET   : 9 points (LONGITUDE)
+             LATITUDE : 22N
+                 22N     
+                   3
+ 100W    / 1:   6.60000
+ 95W     / 2:  11.60000
+ 90W     / 3:  16.60000
+ 85W     / 4:  21.60000
+ 80W     / 5:  26.60000
+ 75W     / 6:  31.60000
+ 70W     / 7:  36.60000
+ 65W     / 8:  41.60000
+ 60W     / 9:  46.60000
+list samplexy(var, {-80,80}, {22,22})
+             VARIABLE : SAMPLEXY(VAR, {-80,80}, {22,22})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60000
+ 2   / 2:      ....
  
-can region
-let a = pass_thru(x)
-list a[i=1:20]
-             VARIABLE : PASS_THRU(X)
-             SUBSET   : 20 points (X)
- 1    /  1:   1.00
- 2    /  2:   2.00
- 3    /  3:   3.00
- 4    /  4:   4.00
- 5    /  5:   5.00
- 6    /  6:   6.00
- 7    /  7:   7.00
- 8    /  8:   8.00
- 9    /  9:   9.00
- 10   / 10:  10.00
- 11   / 11:  11.00
- 12   / 12:  12.00
- 13   / 13:  13.00
- 14   / 14:  14.00
- 15   / 15:  15.00
- 16   / 16:  16.00
- 17   / 17:  17.00
- 18   / 18:  18.00
- 19   / 19:  19.00
- 20   / 20:  20.00
-set region/i=1:20
-list sin(a)
-             VARIABLE : SIN(A)
-             SUBSET   : 20 points (X)
- 1    /  1:  0.8415
- 2    /  2:  0.9093
- 3    /  3:  0.1411
- 4    /  4: -0.7568
- 5    /  5: -0.9589
- 6    /  6: -0.2794
- 7    /  7:  0.6570
- 8    /  8:  0.9894
- 9    /  9:  0.4121
- 10   / 10: -0.5440
- 11   / 11: -1.0000
- 12   / 12: -0.5366
- 13   / 13:  0.4202
- 14   / 14:  0.9906
- 15   / 15:  0.6503
- 16   / 16: -0.2879
- 17   / 17: -0.9614
- 18   / 18: -0.7510
- 19   / 19:  0.1499
- 20   / 20:  0.9129
-can var/all
-can region
+list samplexy(var, -80, 22)       ! this is ok, in the native range of the axis
+             VARIABLE : SAMPLEXY(VAR, -80, 22)
+             FILENAME : a.nc
+             X        : 1
+          26.60000
+list samplexy(var, `360-80`, 22)  ! this was wrong
+ !-> list samplexy(var, 280, 22)
+             VARIABLE : SAMPLEXY(VAR, 280, 22)
+             FILENAME : a.nc
+             X        : 1
+          26.60000
+list samplexy_closest(var, `360-80`, 22)  ! is ok
+ !-> list samplexy_closest(var, 280, 22)
+             VARIABLE : SAMPLEXY_CLOSEST(VAR, 280, 22)
+             FILENAME : a.nc
+             X        : 1
+          26.60000
+ 
+! Looking for a point that is not, even in a modulo sense, in the subpsan axis
+ 
+list samplexy(var, {-80,80}, {22,22})
+             VARIABLE : SAMPLEXY(VAR, {-80,80}, {22,22})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60000
+ 2   / 2:      ....
+list samplexy(var, {`360-80`,80}, {22,22})
+ !-> list samplexy(var, {280,80}, {22,22})
+             VARIABLE : SAMPLEXY(VAR, {280,80}, {22,22})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60000
+ 2   / 2:      ....
+list samplexy_closest(var, {`360-80`,80}, {22,22})
+ !-> list samplexy_closest(var, {280,80}, {22,22})
+             VARIABLE : SAMPLEXY_CLOSEST(VAR, {280,80}, {22,22})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60000
+ 2   / 2:      ....
+ 
+! interpolation between grid points
+ 
+cancel mode interpolate
+list/y=21.2/x=277.7 var
+             VARIABLE : X[GX=XAXIS]+100 + 0.3*Y[GY=YAXIS]
+             FILENAME : a.nc
+             LONGITUDE: 80W
+             LATITUDE : 22N
+          26.60000
+set mode interpolate; list/y=21.2/x=277.7 var; cancel mode interpolate
+             VARIABLE : X[GX=XAXIS]+100 + 0.3*Y[GY=YAXIS]
+             FILENAME : a.nc
+             LONGITUDE: 82.3W (interpolated)
+             LATITUDE : 21.2N (interpolated)
+          24.06000
+ 
+! These should match the MODE INTERPOLATE result (the second was wrong).
+ 
+list samplexy(var, {-82.3,82.3}, {21.2,21.2})
+             VARIABLE : SAMPLEXY(VAR, {-82.3,82.3}, {21.2,21.2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  24.06000
+ 2   / 2:      ....
+list samplexy(var, {`360-82.3`,82.3}, {21.2,21.2})
+ !-> list samplexy(var, {277.7,82.3}, {21.2,21.2})
+             VARIABLE : SAMPLEXY(VAR, {277.7,82.3}, {21.2,21.2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  24.06000
+ 2   / 2:      ....
+ 
+! this should match the non-MODE INTERPOLATE result
+list samplexy_closest(var, {`360-82.3`,82.3}, {21.2,21.2})
+ !-> list samplexy_closest(var, {277.7,82.3}, {21.2,21.2})
+             VARIABLE : SAMPLEXY_CLOSEST(VAR, {277.7,82.3}, {21.2,21.2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60000
+ 2   / 2:      ....
+ 
+can dat/all
+ 
+! Test samplexyt functions
+ 
+define axis/t=1:5:1 tax
+let vart = x[gx=xaxis]+100 + 0.3*y[gy=yaxis] + 0*t[gt=tax]
+save/clobber/file=a.nc vart
+can var/all; use a
+ 
+list vart[x=-80,y=21,t=2]
+             VARIABLE : X[GX=XAXIS]+100 + 0.3*Y[GY=YAXIS] + 0*T[GT=TAX]
+             FILENAME : a.nc
+             LONGITUDE: 80W(-80)
+             LATITUDE : 20N
+             T        : 2
+          26.00000
+list samplexyt(vart, {-82.3,82.3}, {21.2,21.2}, {2,2})
+             VARIABLE : SAMPLEXYT(VART, {-82.3,82.3}, {21.2,21.2}, {2,2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  24.06000
+ 2   / 2:      ....
+list samplexyt(vart, {`360-82.3`,82.3}, {21.2,21.2}, {2,2})
+ !-> list samplexyt(vart, {277.7,82.3}, {21.2,21.2}, {2,2})
+             VARIABLE : SAMPLEXYT(VART, {277.7,82.3}, {21.2,21.2}, {2,2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  24.06000
+ 2   / 2:      ....
+list samplexyt_nrst(vart, {`360-82.3`,82.3}, {21.2,21.2}, {2,2})
+ !-> list samplexyt_nrst(vart, {277.7,82.3}, {21.2,21.2}, {2,2})
+             VARIABLE : SAMPLEXYT_NRST(VART, {277.7,82.3}, {21.2,21.2}, {2,2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60000
+ 2   / 2:      ....
+ 
+! Full-span modulo grid is ok
  
 use coads_climatology
-let a = pass_thru(sst[l=@ave,y=@sbx:11])
-list/x=50 a
-             VARIABLE : PASS_THRU(SST[L=@AVE,Y=@SBX:11])
+list/l=1/x=-80/y=22 sst
+             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
-             SUBSET   : 90 points (LATITUDE)
-             LONGITUDE: 49E
-             TIME     : 01-JAN 00:45 to 01-APR 08:12
-               49E   
+             LONGITUDE: 81W(-81)
+             LATITUDE : 21N
+             TIME     : 16-JAN 06:00
+          26.59093
+list samplexy(sst[l=1], -80, 22)
+             VARIABLE : SAMPLEXY(SST[L=1], -80, 22)
+             FILENAME : coads_climatology.cdf
+             X        : 1
+             TIME     : 16-JAN 06:00
+          26.04466
+list samplexy(sst[l=1], `360-80`, 22)
+ !-> list samplexy(sst[l=1], 280, 22)
+             VARIABLE : SAMPLEXY(SST[L=1], 280, 22)
+             FILENAME : coads_climatology.cdf
+             X        : 1
+             TIME     : 16-JAN 06:00
+          26.04466
+list samplexy_closest(sst[l=1], `360-80`, 22)
+ !-> list samplexy_closest(sst[l=1], 280, 22)
+             VARIABLE : SAMPLEXY_CLOSEST(SST[L=1], 280, 22)
+             FILENAME : coads_climatology.cdf
+             X        : 1
+             TIME     : 16-JAN 06:00
+          26.59093
+ 
+list samplexyt(sst, -80, 22, `t[gt=sst,l=1]`)
+ !-> list samplexyt(sst, -80, 22, 366)
+             VARIABLE : SAMPLEXYT(SST, -80, 22, 366)
+             FILENAME : coads_climatology.cdf
+             X        : 1
+          26.04466
+ 
+ 
+! Bug 2463  SHADE/LEVELS and single-color data
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_levels_one_level
+! err700_levels_one_level.jnl
+! Ticket 2436. If the data has just one value, then shade it with
+! the correct color taken from the /LEVELS and /PALETTE settings
+ 
+use coads_climatology
+set view ul
+shade/l=1/lev=(0,30,5)  sst
+ 
+! These single-valued expressions should get the correct color from the color bar
+ 
+set view ur
+shade/l=1/lev=(0,30,5)  if sst gt 25 and sst le 30 then 28
+set view ll
+shade/l=1/lev=(0,30,5)  if sst gt 15 and sst le 20 then 18
+set view lr
+shade/l=1/lev=(0,30,5)  if sst gt  0 and sst le  5 then  3
+frame /file=levels_one_level.gif
+can view
+ 
+! Bug xxxx  Only examine key labels that are actually going to be printed
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_key
+use coads_climatology
+set window/aspect=0.7 1
+shade/levels="(-inf)(0,1.3,0.025)(inf)"/key=continuous/set_up sst[t=@ave]*5e-2
+ppl shakey 1, 1, 0.12, 4, -1, 4
+ppl shade
+frame /file=err700_key.gif
+ 
+! Bug 2468 Symbol AX_HORIZ corrupted by an overlay
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_ax_horiz
+! err700_ax_horiz.jnl
+! 8/30/2016 *acm* Ticket 2468
+! Symbol axis_horiz was corrupted by overlaying a
+! set of points using a list in other than the same
+! direction as the axis.
+ 
+use coads_climatology
+shade/l=1/pal=grayscale/x=100:140/y=-10:30 sst
+ 
+let xpts={111,115,120,129}
+let ypts = {-5,10,20,23}
+ 
+ 
+! this is ok; ax_horiz = X, ax_vert = y
+plot/vs/oversym/color=red/thick/siz=0.2 xpts,ypts
+sh sym ax*
+AX_VERT = "Y"
+AX_HORIZ = "X"
+ 
+! Now overlay points whose grid is in the E direction
+ 
+let expts = esequence(xpts)
+let eypts = esequence(ypts)
+shade/l=1/pal=grayscale/x=100:140/y=-10:30 sst
+plot/vs/oversym/color=red/thick/siz=0.2 expts,eypts
+ 
+! this was incorrect, ax_horiz had changed to E
+sh sym ax*
+AX_VERT = "Y"
+AX_HORIZ = "X"
+ 
+! Bug 2470 Symbol LEV_DEL incorrect on a LEV=(lo,hi,delta)
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_lev_del_symb
+! err700_lev_del_symb.jnl
+! 9/9/2016
+! Ticket 2470: Symbol LEV_DEL was erroneously marked as Irregular
+! Also, the symbols LEV_MIN and LEV_MAX are changed to say open-ended
+! when (-inf), (inf) or /lev=v is used.
+ 
+use coads_climatology
+ 
+ 
+! LEV_DEL should be regular
+shade/lev=(16.4,24.4,0.4) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(16.4,24.4,0.4)"
+LEV_MIN = "16.4"
+LEV_NUM = "20"
+LEV_DEL = "0.4"
+LEV_MAX = "24.4"
+ 
+shade/lev=(16)(16.4)(16.8)(17.2)(17.6) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(16)(16.4)(16.8)(17.2)(17.6)"
+LEV_MIN = "16"
+LEV_NUM = "4"
+LEV_DEL = "0.4"
+LEV_MAX = "17.6"
+ 
+shade/lev=(22) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(22)"
+LEV_MIN = "22"
+LEV_NUM = "1"
+LEV_DEL = "none"
+LEV_MAX = "22"
+ 
+! LEV_DEL should be irregular
+ 
+shade/lev=(16.4,24.4,0.4)(inf) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(16.4,24.4,0.4)(INF)"
+LEV_MIN = "16.4"
+LEV_NUM = "21"
+LEV_DEL = "irregular"
+LEV_MAX = "open-ended"
+ 
+shade/lev=20v sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "20V"
+LEV_MIN = "open-ended"
+LEV_NUM = "19"
+LEV_DEL = "irregular"
+LEV_MAX = "open-ended"
+LEV_OPNLEVS = "(-inf)(16,19.1,1.05)(19.5,26,0.5)(25.7,25.7,1.05)(inf)"
+ 
+shade/lev=(16.4,24.4,0.4)(24.4,28.1,0.1) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(16.4,24.4,0.4)(24.4,28.1,0.1)"
+LEV_MIN = "16.4"
+LEV_NUM = "57"
+LEV_DEL = "irregular"
+LEV_MAX = "28.1"
+ 
+shade/lev=(5)(16.4,24.4,0.4) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(5)(16.4,24.4,0.4)"
+LEV_MIN = "5"
+LEV_NUM = "21"
+LEV_DEL = "irregular"
+LEV_MAX = "24.4"
+ 
+! Bug 2466 Graticule lines too dense on time plots
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_timegrat
+!err700_timegrat.jnl
+! 22-sep-2016 *acm*
+! See ticket 2466, too many graticule lines on axis with short time axis.
+ 
+define axis/t="22-aug-2016:12":"23-aug-2016:18":6/units=hours tax
+define axis/z=0:50:2/depth/units=m zax
+let ztvar = sin(L[Gt=tax]/20) + z[gz=zax]
+ 
+set view upper; shade/grat ztvar
+set view lower; plot/grat=(color=light_blue)/z=20 ztvar
+ 
+can view
+set view left; shade/trans/grat ztvar
+set view right; plot/trans/grat=(color=light_blue)/z=20 ztvar
+ 
+! Axis of few days, likewise
+ 
+define axis/t=16-SEP-2016:21-SEP-2016:15/units=minutes/t0=16-SEP-2016 tax
+ 
+can view
+set view upper; shade/grat ztvar
+set view lower; plot/grat=(color=light_blue)/z=20 ztvar
+ 
+can view
+set view left; shade/trans/grat/t=16-SEP-2016:19-sep-2016 ztvar
+set view right; plot/trans/grat=(color=light_blue)/z=20/t=16-SEP-2016:19-sep-2016 ztvar
+ 
+ 
+ 
+! Bug 2465 parsing errors on commands with expressions involving attrbutes
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_attribute_parsing
+! err700_attribute_parsing.jnl
+! See ticket 2465. Parsing errors for commands with attribute references
+! acm  9/2016
+ 
+! Write a simple file and then try to get at its attributes.
+ 
+let/title="my variable" a = 1
+save/clob/file="a.nc"/title="my file" a
+can var a
+use a.nc
+ 
+! These were ok
+list/nohead ..title
+        "my file"
+list/nohead a.long_name
+        "my variable"
+ 
+! errors
+list/nohead ..title EQ " "
+          0.0000000
+list/nohead (..title)
+        "my file"
+list/nohead ..title + "text"
+        "my filetext"
+list/nohead a.long_name EQ " "
+          0.0000000
+ 
+list/nohead strlen(a.long_name)
+          11.00000
+list/nohead strindex(..title, "file")
+          4.000000
+ 
+ 
+! Note the fix for # 2437 needs documentation: 4D output for grids in X,Y,Z,T only
+! Note the fix for # 2451 needs documentation: -gif mode plots with /HLIM or /VLIM reversing an axis.
+ 
+ 
+! 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
+ 
+! Bug 2483. Fixing axis-ends symbols XAXIS_MIN,XAXIS_MAX, YAXIS_MIN,YAXIS_MAX
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_axis_dates
+! err700_axis_dates.jnl
+! See ticket 2483. 11/10/2016 ACM
+!
+! The axis-ends symbols XAXIS_MIN,XAXIS_MAX, YAXIS_MIN,YAXIS_MAX
+! were not accurate for time axes, which get padded out to the nearest
+! time unit, e.g. whole months etc.
+ 
+! This axis gets plotted from 1-oct-2015 to the end of 30-apr-2016
+ 
+def axis/t=23-oct-2015:17-apr-2016:10/units=hours taxis
+ 
+! Define some variables
+let tt = t[gt=taxis]
+let var = cos(L[gt=taxis]/30)
+define axis/x=1:52:4 xaxis
+define axis/y=1:52:4 yaxis
+let xtvar = x[gx=xaxis] + var
+let ytvar = y[gy=yaxis] + var
+ 
+! 1-D time plot
+plot var
+ 
+! Previously these were set to the axis-coordinate
+! ends not the drawn axis ends.
+list tax_datestring(($xaxis_min), tt, "minutes"), tax_datestring(($xaxis_max), tt, "minutes")
+ !-> list tax_datestring(1005528.00, tt, "minutes"), tax_datestring(1010640.00, tt, "minutes")
+ Column  1: TAX_DATESTRING(1005528.00, TT, "minutes")
+ Column  2: TAX_DATESTRING(1010640.00, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "01-OCT-2015 00:00" "01-MAY-2016 00:00"
+ 
+! 2D plots
+ 
+shade ytvar
+list tax_datestring(($xaxis_min), tt, "minutes"), tax_datestring(($xaxis_max), tt, "minutes")
+ !-> list tax_datestring(1005528.00, tt, "minutes"), tax_datestring(1010640.00, tt, "minutes")
+ Column  1: TAX_DATESTRING(1005528.00, TT, "minutes")
+ Column  2: TAX_DATESTRING(1010640.00, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "01-OCT-2015 00:00" "01-MAY-2016 00:00"
+ 
+shade xtvar ! T axis on the vertical axis
+list tax_datestring(($yaxis_min), tt, "minutes"), tax_datestring(($yaxis_max), tt, "minutes")
+ !-> list tax_datestring(1005528.00, tt, "minutes"), tax_datestring(1010640.00, tt, "minutes")
+ Column  1: TAX_DATESTRING(1005528.00, TT, "minutes")
+ Column  2: TAX_DATESTRING(1010640.00, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "01-OCT-2015 00:00" "01-MAY-2016 00:00"
+ 
+ 
+! Short time axis, plot ends extended out to the nearest hour
+def axis/t="23-oct-2015:01:15":"23-oct-2015:12:30":15/units=minutes taxis
+ 
+plot var
+list tax_datestring(($xaxis_min), tt, "minutes"), tax_datestring(($xaxis_max), tt, "minutes")
+ !-> list tax_datestring(60363420.0, tt, "minutes"), tax_datestring(60364140.0, tt, "minutes")
+ Column  1: TAX_DATESTRING(60363420.0, TT, "minutes")
+ Column  2: TAX_DATESTRING(60364140.0, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "23-OCT-2015 01:00" "23-OCT-2015 13:00"
+ 
+shade ytvar
+list tax_datestring(($xaxis_min), tt, "minutes"), tax_datestring(($xaxis_max), tt, "minutes")
+ !-> list tax_datestring(60363420.0, tt, "minutes"), tax_datestring(60364140.0, tt, "minutes")
+ Column  1: TAX_DATESTRING(60363420.0, TT, "minutes")
+ Column  2: TAX_DATESTRING(60364140.0, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "23-OCT-2015 01:00" "23-OCT-2015 13:00"
+ 
+shade xtvar
+list tax_datestring(($yaxis_min), tt, "minutes"), tax_datestring(($yaxis_max), tt, "minutes")
+ !-> list tax_datestring(60363420.0, tt, "minutes"), tax_datestring(60364140.0, tt, "minutes")
+ Column  1: TAX_DATESTRING(60363420.0, TT, "minutes")
+ Column  2: TAX_DATESTRING(60364140.0, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "23-OCT-2015 01:00" "23-OCT-2015 13:00"
+ 
+ 
+ 
+! Bug 2489. Attribute climatology_time_range not defined on an expression
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_clim_attr_expression
+! err700_clim_attr_expression.jnl
+! Ticket 2489
+! 11/22/2016
+!
+! The attribute climatology_time_range is created whena variable comes
+! from a climatological regridding. It can be created only for user-defined
+! variables not for an expression. Previously the SAVE command resulted in a crash.
+! (See bn_climatology_attr.jnl for more examples).
+ 
+! Define a monthly axis
+define axis/t=1-feb-1980:1-feb-2003/npoints=276/unit="day"/t0=1-jan-1900 tax
+ 
+let tvar = t[gt=tax]
+let clim1 = tvar[gt=month_irreg at mod]
+save/nobounds/file=a.nc/clobber 3*clim1
+ 
+can dat/all; use a.nc
+ 
+! The variable did not get a climatology_time_range attribute
+let vname = ..varnames
+show att `vname[i=1]`
+ !-> show att E494
+     attributes for dataset: ./a.nc
+ E494.missing_value = -1.E+34
+ E494._FillValue = -1.E+34
+ E494.long_name = 3*CLIM1 
+ 
+ 
+! Bug 2491: Location of colorbar labels wrong
+! on /HLOG or /VLOG plots
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_ribbon_vlog
+! err700_ribbon_vlog.jnl
+! 1/3/2017 *acm*
+! See ticket 2491: Location of colorbar labels wrong
+! on /HLOG or /VLOG plots
+ 
+ 
+let a = 0.1* {1,2,3,4,5,6,7,8,9}
+set v ul
+plot/vs/rib/sym=25 a, a, a
+ 
+! Draw with /VLOG, previously put the colorbar labels in the wrong place
+set view lr
+plot/vs/rib/sym=25/vlog a, a, a
+ 
+! likewise /HLOG on a horizontal color key
+set view ll
+plot/vs/rib/sym=25/hlog/key=horiz a,a,a
+ 
+frame/file=bn_ribbon_vlog.gif
+ 
+! Bug 2492: single-variable listings with /form=comma or /form=tab
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_list_comma
+! err700_list_comma.jnl
+! 1/4/2017 Fixes for ticket 2492: for single-variable listings, /FORM=comma and /FORM=tab
+ 
+use gt4d011
+ 
+! Previously for comma and tab listings there was an extra line right after the header
+! that showed a longitude, even on [i=@ave,j=@ave]
+ 
+list/L=1:3/K=1/form=comma taux[i=@ave,j=@ave]
+             VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
+             FILENAME : gt4d011.cdf
+             BAD FLAG : -1.E+34       
+             SUBSET   : 3 points (TIME)
+             LONGITUDE: 139.5W to 121.5W (XY ave)
+             LATITUDE : 3.5S to 3.5N (XY ave)
+17-AUG-1982 12,-0.2742025
+23-AUG-1982 14,-0.2363181
+29-AUG-1982 16,-0.1984337
+ 
+list/nohead/L=1:3/K=1/form=comma taux[i=95,j=@ave]
+17-AUG-1982 12,-0.2737914
+23-AUG-1982 14,-0.2441127
+29-AUG-1982 16,-0.2144341
+ 
+list/nohead/L=1:3/K=1/form=comma taux[i=@ave,j=@ave]
+17-AUG-1982 12,-0.2742025
+23-AUG-1982 14,-0.2363181
+29-AUG-1982 16,-0.1984337
+ 
+! Previously /NOROW had no effect for /form=comma or /tab
+! (for single-variable listings)
+ 
+list/norow/L=1:3/K=1/form=comma taux[i=@ave,j=@ave]
+             VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
+             FILENAME : gt4d011.cdf
+             BAD FLAG : -1.E+34       
+             SUBSET   : 3 points (TIME)
+             LONGITUDE: 139.5W to 121.5W (XY ave)
+             LATITUDE : 3.5S to 3.5N (XY ave)
+-0.2742025 
+-0.2363181 
+-0.1984337 
+ 
+list/norow/nohead/L=1:3/K=1/form=comma taux[i=95,j=@ave]
+-0.2737914 
+-0.2441127 
+-0.2144341 
+ 
+list/norow/nohead/L=1:3/K=1/i=95/j=40/form=comma taux
+-0.3336249 
+-0.297951 
+-0.2622772 
+ 
+list/norow/nohead/L=1:3/K=1/i=95/j=40/form=comma taux
+-0.3336249 
+-0.297951 
+-0.2622772 
+ 
+! Now all the same commands with /form=tab
+ 
+! Previously for comma and tab listings there was an extra line right after the header
+! that showed a longitude, even on [i=@ave,j=@ave]
+ 
+list/L=1:3/K=1/form=tab taux[i=@ave,j=@ave]
+             VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
+             FILENAME : gt4d011.cdf
+             BAD FLAG : -1.E+34       
+             SUBSET   : 3 points (TIME)
+             LONGITUDE: 139.5W to 121.5W (XY ave)
+             LATITUDE : 3.5S to 3.5N (XY ave)
+17-AUG-1982 12	-0.2742025
+23-AUG-1982 14	-0.2363181
+29-AUG-1982 16	-0.1984337
+ 
+list/nohead/L=1:3/K=1/form=tab taux[i=95,j=@ave]
+17-AUG-1982 12	-0.2737914
+23-AUG-1982 14	-0.2441127
+29-AUG-1982 16	-0.2144341
+ 
+list/nohead/L=1:3/K=1/form=tab taux[i=@ave,j=@ave]
+17-AUG-1982 12	-0.2742025
+23-AUG-1982 14	-0.2363181
+29-AUG-1982 16	-0.1984337
+ 
+! Previously /NOROW had no effect for /form=comma or /tab
+! (for single-variable listings)
+ 
+list/norow/L=1:3/K=1/form=tab taux[i=@ave,j=@ave]
+             VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
+             FILENAME : gt4d011.cdf
+             BAD FLAG : -1.E+34       
+             SUBSET   : 3 points (TIME)
+             LONGITUDE: 139.5W to 121.5W (XY ave)
+             LATITUDE : 3.5S to 3.5N (XY ave)
+-0.2742025 
+-0.2363181 
+-0.1984337 
+ 
+list/norow/nohead/L=1:3/K=1/form=tab taux[i=95,j=@ave]
+-0.2737914 
+-0.2441127 
+-0.2144341 
+ 
+list/norow/nohead/L=1:3/K=1/i=95/j=40/form=tab taux
+-0.3336249 
+-0.297951 
+-0.2622772 
+ 
+list/norow/nohead/L=1:3/K=1/i=95/j=40/form=tab taux
+-0.3336249 
+-0.297951 
+-0.2622772 
+ 
+ 
+! Bug 2493: T aggregation when there are E or F axes
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_aggT_5d
+! err700_aggT_5d.jnl
+! 1/6/2017 ACM  Ticket 2493
+! When there are E or F axes in the grid, the multi-file reading
+! for time aggregations or mc files corrupted the data.
+ 
+!  The two files have data in different ranges
+ 
+! data range in 260-270
+use aggT_5d1.nc
+list/i=3/j=2 thetao[d=1]
+             VARIABLE : Sea Water Potential Temperature (K)
+             FILENAME : aggT_5d1.nc
+             SUBSET   : 6 by 10 points (TIME-E)
+             CALENDAR : NOLEAP
+             LONGITUDE: 22.5E
+             LATITUDE : 58.5S
+             DEPTH (m): 5
+                1999      2000      2001      2002      2003      2004   
+                 1         2         3         4         5         6
+ 1    /  1:  265.2445  265.5543  265.9943  266.2097  265.4781  265.3888
+ 2    /  2:  265.5926  265.7931  265.5775  265.6801  265.4617  265.4838
+ 3    /  3:  265.1946  265.4962  265.3313  265.2579  264.9185  265.5124
+ 4    /  4:  263.8972  263.2888  263.1042  263.3890  263.4528  263.3426
+ 5    /  5:  261.8333  261.8194  261.8748  261.8681  262.0607  261.8264
+ 6    /  6:  263.4419  263.4238  263.8016  263.5585  263.6320  263.3513
+ 7    /  7:  264.0194  264.5496  264.1791  263.9616  264.3322  264.0056
+ 8    /  8:  264.2371  264.0885  264.0417  263.3675  263.4375  263.9382
+ 9    /  9:  263.6959  262.6860  262.6703  262.9485  263.2782  263.0330
+ 10   / 10:  263.7841  263.7235  263.9889  263.8297  263.6952  264.1534
+ 
+! data range in 270-280
+use aggT_5d2.nc
+list/i=3/j=2 thetao[d=2]
+             VARIABLE : Sea Water Potential Temperature (K)
+             FILENAME : aggT_5d2.nc
+             SUBSET   : 4 by 10 points (TIME-E)
+             CALENDAR : NOLEAP
+             LONGITUDE: 22.5E
+             LATITUDE : 58.5S
+             DEPTH (m): 5
+                2006      2007      2008      2009   
+                 1         2         3         4
+ 1    /  1:  275.3968  275.1473  275.0237  275.1009
+ 2    /  2:  275.6317  275.8312  275.7987  275.3124
+ 3    /  3:  275.0737  275.2763  274.9668  275.3709
+ 4    /  4:  273.4485  273.3429  273.4418  273.8933
+ 5    /  5:  271.7737  271.7389  271.7704  271.8629
+ 6    /  6:  273.8493  273.5693  273.9382  273.7554
+ 7    /  7:  273.8918  273.9178  274.1768  274.1574
+ 8    /  8:  273.8866  274.0090  274.4641  274.2231
+ 9    /  9:  272.7180  272.8645  273.0202  273.9808
+ 10   / 10:  274.7770  274.9195  274.3940  274.4967
+can data/all
+ 
+! Now make an aggregation. Previously the data was wrapped onto
+! the grid incorrectly, with zero in M=7 and higher
+ 
+define data/agg/t myagg = aggT_5d1.nc, aggT_5d2.nc
+list/i=3/j=2 thetao
+             VARIABLE : Sea Water Potential Temperature (K)
+             FILENAME : myagg
+             SUBSET   : 10 by 10 points (TIME-E)
+             CALENDAR : NOLEAP
+             LONGITUDE: 22.5E
+             LATITUDE : 58.5S
+             DEPTH (m): 5
+                1999      2000      2001      2002      2003      2004      2006      2007      2008      2009   
+                 1         2         3         4         5         6         7         8         9        10
+ 1    /  1:  265.2445  265.5543  265.9943  266.2097  265.4781  265.3888  275.3968  275.1473  275.0237  275.1009
+ 2    /  2:  265.5926  265.7931  265.5775  265.6801  265.4617  265.4838  275.6317  275.8312  275.7987  275.3124
+ 3    /  3:  265.1946  265.4962  265.3313  265.2579  264.9185  265.5124  275.0737  275.2763  274.9668  275.3709
+ 4    /  4:  263.8972  263.2888  263.1042  263.3890  263.4528  263.3426  273.4485  273.3429  273.4418  273.8933
+ 5    /  5:  261.8333  261.8194  261.8748  261.8681  262.0607  261.8264  271.7737  271.7389  271.7704  271.8629
+ 6    /  6:  263.4419  263.4238  263.8016  263.5585  263.6320  263.3513  273.8493  273.5693  273.9382  273.7554
+ 7    /  7:  264.0194  264.5496  264.1791  263.9616  264.3322  264.0056  273.8918  273.9178  274.1768  274.1574
+ 8    /  8:  264.2371  264.0885  264.0417  263.3675  263.4375  263.9382  273.8866  274.0090  274.4641  274.2231
+ 9    /  9:  263.6959  262.6860  262.6703  262.9485  263.2782  263.0330  272.7180  272.8645  273.0202  273.9808
+ 10   / 10:  263.7841  263.7235  263.9889  263.8297  263.6952  264.1534  274.7770  274.9195  274.3940  274.4967
+ 
+! Bug 2495: shift on overlay of time series plot on 2d time plot
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_time_overlay
+! err700_time_overlay.jnl
+! bug 2495
+! Shifting on overlay of time series on 2D plot
+ 
+define axis/t=15-jun-1970:16-jun-1970:60/t0=1-jan-1970/units=seconds  tax
+def axis/y=-2:2:0.2 yaxis
+let tt = t[gt=tax]
+ 
+shade/pal=white/nokey/title="example plot" y[gy=yaxis] + t[gt=tax]
+ 
+! Previously the second plot was shifted in time
+plot/over/color=red  cos(tt/3000)
+plot/over/color=blue cos(tt/3000)+0.5
+ 
+! now vertical time axis
+shade/trans/pal=white/nokey/title="example plot" y[gy=yaxis] + t[gt=tax]
+ 
+plot/trans/over/color=red  cos(tt/3000)
+plot/trans/over/color=blue cos(tt/3000) + 0.5
+ 
+ 
+ 
+! Bug 2494:  drawing a single-cell shade plot
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_shade_singlecell
+! err700_shade_singlecell.jnl
+! Ticket 2494, drawing a single-cell shade plot
+ 
+def axis/x=233.59375:293.90625:0.3125/units=degrees_east xlon
+def axis/y=24.125:50.625:0.25/units=degrees_north ylat
+let iijj = i[gx=xlon] + j[gy=ylat]
+set reg/x=77w:72.5w/y=38.9n:41.5n
+ 
+ 
+shade/pal=grayscale iijj
+shade/pal=blue/ov iijj[i=167:168,j=64:65]
+ 
+! previously this was drawn, but located one cell to the left of where it should be
+shade/pal=black/ov iijj[i=167,j=64]
+ 
+! Specify a cell by X,Y. Previously this gave a dimensions error
+shade/over/pal=green iijj[x=76w,y=40n]
+ 
+! These same sorts of degenerate regions, bug not as an overlay
+ 
+! Previously both of these drew a blank plot
+shade/pal=rnb2 iijj[i=167,j=64]
+shade/pal=rnb2 iijj[i=167,j=64:66]
+ 
+! Specify a cell by X,Y
+! Previously this gave a dimensions error
+shade/pal=green iijj[x=76w,y=40n]
+ 
+! Partial cell, given by xy limits.
+! Previously drew a blank plot
+shade/pal=green iijj[x=74.5w:74.4w,y=39.9:40.0]
+ 
+! Several cells in one direction - partial cells in y at edges
+shade/pal=rnb2 iijj[x=74.5w,y=39.9:40.8]
+ 
+ 
+! Bug 2496: errors using axis with nearly-repeating coordinates
+!           where coordinates are very near grid-cell edges.
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_coords
+! err700_coords.jnl
+! 1/17/2017
+! From bug 2496. Data with almost-repeating values used to define an axis
+ 
+use err700_coords.nc
+list/i=10:20/prec=16 du_coords, du_coords[i=@ddf]
+             DATA SET: ./err700_coords.nc
+             X: 9.5 to 20.5
+ Column  1: DU_COORDS is DU_VU[I=1:20]
+ Column  2: DU_COORDS[X=@DDF] is DU_VU[I=1:20] (forward derivative on X)
+                   DU_COORDS       DU_COORDS
+10   / 10:  23.75000000000000  2.500000000000000
+11   / 11:  26.25000000000000  0.000000000000011
+12   / 12:  26.25000000000001  2.499999999999989
+13   / 13:  28.75000000000000  2.500000000000000
+14   / 14:  31.25000000000000  0.000000000000011
+15   / 15:  31.25000000000001  2.499999999999989
+16   / 16:  33.75000000000000  2.500000000000000
+17   / 17:  36.25000000000000  2.500000000000000
+18   / 18:  38.75000000000000  2.500000000000000
+19   / 19:  41.25000000000000  2.500000000000000
+20   / 20:  43.75000000000000               ....
+ 
+! The data has repeated coords, to 1.e15. Should be reported as micro-adjusted
+ 
+def ax/bounds/x/unit="degrees_east"/modulo=360 c2d_ax_x = du_coords[i=1:160], du_edges[i=1:161]
+ 
+ 
+sh axis c2d_ax_x
+ name       axis              # pts   start                end
+ C2D_AX_X  LONGITUDE           20mi   1.25E                43.75E
+   Axis span (to cell edges) = 45 (modulo length = 360)
+let c = x[gx=c2d_ax_x]
+ 
+! for this region, the setup steps got data in index 11:31, then
+! at the point of writing the index ragne was found to be 12:31
+ 
+set region/x=25:385
+set mode diag
+save/clob/file=a.nc c
+ dealloc  dynamic grid GAY2            XAX1_21   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid GG              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 (G208)          C2D_AX_X  NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G208)          C2D_AX_X  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G208)          C2D_AX_X  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G208)          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 (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
+ 
+set mode /last diag
+ 
+ 
+! Bug 2499: Define a single-point axis with bounds
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_define_1pt_axis
+! err700_define_1pt_axis.jnl
+! Ticket 2499: regular axis, test for valid line_delta
+! ACM 7/6/2016
+ 
+ 
+def ax/t/bounds tax = 1, 0, 2
+show 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
+ 
+! check that reading such an axis from a file is ok
+let twelve = 12*t[gt=tax]
+ 
+save/file=a.nc/clobber twelve
+cancel var/all; cancel axis tax
+use a.nc
+sh dat
+     currently SET data sets:
+    1> ./a.nc  (default)
+ name     title                             I         J         K         L
+ TWELVE   12*T[GT=TAX]                     ...       ...       ...       1:1
+ 
+sh axis/t tax
+ name       axis              # pts   start                end
+ 
+ 
+ 
+! Bug 2498: time unit error in F-aggregation of some OPENDAP datasets
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_aggregate_from_fmrc
+! err700_aggregate_from_fmrc.jnl
+! 1/2017 *acm*
+! (See ticket 2498)
+! Previously an incorrect definition of the F axis when datasets from
+! thredds fmrc.xml are used in a Ferret F aggregation
+! This was a bug in the true-month time axes in an un-released Ferret executable.
+ 
+IF `TEST_OPENDAP(\
+"http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Hawaii_Regional_Ocean_Model_RUN_2017-01-01T00:00:00Z") NE 0` \
+ THEN EXIT/SCRIPT
+ !-> IF 0  THEN EXIT/SCRIPT
+ 
+use http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Hawaii_Regional_Ocean_Model_RUN_2017-01-01T00:00:00Z
+use http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Hawaii_Regional_Ocean_Model_RUN_2017-01-02T00:00:00Z
+use http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Hawaii_Regional_Ocean_Model_RUN_2017-01-03T00:00:00Z
+ 
+DEFINE DATA/AGGREGATE/F testdata = 1,2,3
+! F axis should be  31-DEC-2016 to 02-JAN-2017
+SHOW GRID zeta
+    GRID (G190)
+ name       axis              # pts   start                end                 subset
+ LON1      LONGITUDE          295mr   163.83W(-163.83)     152.52W(-152.52)    full
+ LAT       LATITUDE           195 r   17.018N              23.982N             full
+ normal    Z
+ TF_LAG_T  MODEL ELAPSED TIME  57 r   1.5                  169.5               full
+ normal    E
+ TF_CAL_F  FORECAST             3 r   31-DEC-2016 22:30    02-JAN-2017 22:30   full
+ 
+ 
+! Bug 2504: modulo axes and coordinates
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_modulo
+! err700_modulo.jnl
+! See ticket 2504. Axis defintions where bounds are not given, and Ferret
+! is defining the cell edges. If axis coordinates lie within the modulo range
+! but the cell bounds defined automatically using coordinate midpoints range
+! larger than 360 degrees, or 1 year, need to adjust bounds. This is done only
+! for irregular axes.
+ 
+use modax
+ 
+! The axis 'irreg_no_bounds' is irregular and is stored in the file without
+! bounds. The coordinate range is < 360 but previously the computed bounds
+! made the axis length 369.45, so it was not treated as modulo.
+! Now it is marked modulo.
+ 
+sh axis irreg_no_bounds
+ name       axis              # pts   start                end
+ IRREG_NO_BOUNDS LONGITUDE      8mi   0E                   0.7W
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+list/order=x/nohead x[gx=irreg_no_bounds]
+            0.0000    1.0000   20.0000   30.0000  320.0000  330.0000  340.0000  359.3000
+show axis/x irreg_no_bounds
+ name       axis              # pts   start                end
+ IRREG_NO_BOUNDS LONGITUDE      8mi   0E                   0.7W
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+       I     X                   XBOX      XBOXLO
+       1>  0E                    0.85       0.35W(-0.35)
+       2>  1E                    10         0.5E
+       3>  20E                   14.5       10.5E
+       4>  30E                   150        25E
+       5>  40W                   150        175E
+       6>  30W                   10         35W
+       7>  20W                   14.65      25W
+       8>  0.7W                  10         10.35W
+ 
+ 
+! The axis 'regular_no_bounds' is regular.  Its coordinate range is < 360, but
+! to adjust the grid cells would make it irregular, so this axis is still
+! marked as not modulo.
+ 
+sh axis regular_no_bounds
+ name       axis              # pts   start                end
+ REGULAR_NO_BOUNDS LONGITUDE    8 r   10E                  0E(360)
+   Axis span (to cell edges) = 400
+list/order=x/nohead x[gx=regular_no_bounds]
+           10.0000   60.0000  110.0000  160.0000  210.0000  260.0000  310.0000  360.0000
+show axis/x regular_no_bounds
+ name       axis              # pts   start                end
+ REGULAR_NO_BOUNDS LONGITUDE    8 r   10E                  0E(360)
+   Axis span (to cell edges) = 400
+ 
+       I     X                   XBOX      XBOXLO
+       1>  10E                   50         15W(-15)
+       2>  60E                   50         35E
+       3>  110E                  50         85E
+       4>  160E                  50         135E
+       5>  150W                  50         175W
+       6>  100W                  50         125W
+       7>  50W                   50         75W
+       8>  0E(360)               50         25W
+ 
+! The axis 'irreg_with_bounds' is irregular, stored with bounds in the file.
+! Its coordinate range is < 360, but the range of the bounds is larger than
+! 360. Because the bounds are in the file, nothing is changed; it is marked
+! as not modulo.
+ 
+sh axis irreg_with_bounds
+ name       axis              # pts   start                end
+ IRREG_WITH_BOUNDS LONGITUDE    8 i   0E                   1W
+   Axis span (to cell edges) = 362
+list/order=x/nohead x[gx=irreg_with_bounds]
+            0.0000    1.0000   20.0000   30.0000  320.0000  330.0000  340.0000  359.0000
+show axis/x irreg_with_bounds
+ name       axis              # pts   start                end
+ IRREG_WITH_BOUNDS LONGITUDE    8 i   0E                   1W
+   Axis span (to cell edges) = 362
+ 
+       I     X                   XBOX      XBOXLO
+       1>  0E                    1.5        1W(-1)
+       2>  1E                    9.5        0.5E
+       3>  20E                   15         10E
+       4>  30E                   150        25E
+       5>  40W                   150        175E
+       6>  30W                   10         35W
+       7>  20W                   14         25W
+       8>  1W                    12         11W
+ 
+cancel data/all
+ 
+! DEFINE AXIS examples
+ 
+! Likewise define an irregular axis whose coordinate range is < 360 but
+! the default midpoint grid cell bounds would make it larger than 360.
+! Previously this axis was not modulo, now bounds are set so it is.
+ 
+define axis/x/units=degrees_east xax = {0, 10, 20, 340, 358}
+show axis xax
+ name       axis              # pts   start                end
+ XAX       LONGITUDE            5mi   0E                   2W
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+! Now define a regular axis whose coordinate range is < 360 but the
+! default midpoint grid cell bounds would make it larger than 360.
+! To keep it regular, mark as not modulo.
+ 
+define axis/x=5:355:50/units=degrees_east xax
+show axis xax
+ name       axis              # pts   start                end
+ XAX       LONGITUDE            8 r   5E                   5W
+   Axis span (to cell edges) = 400
+ 
+! tests for time axes
+! Regular time axis with bounds that make it longer than a year.
+! leave this one so it stays regular and is not modulo.
+ 
+define axis/t=3:363:10/units=days/t0=1-jan-0000 treg
+show axis treg
+ name       axis              # pts   start                end
+ TREG      TIME                37 r   04-JAN-0000 00:00    29-DEC-0000 00:00
+T0 = 1-JAN-0000
+   Axis span (to cell edges) = 370
+ 
+! An irregular axis where moving the bounds can make it a modulo calendar axis.
+define axis/t0=1-jan-0000/units=days/t tax2 = { 3, 55, 103, 153, 203, 253, 303, 353}
+sh axis tax2
+ name       axis              # pts   start                end
+ TAX2      TIME                 8mi   04-JAN 00:00         19-DEC 00:00
+T0 = 1-JAN-0000
+   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ 
+ 
+! Bug 1480: saving modulo axis with too big a region
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_save_mod_att
+! err700_save_mod_att.jnl
+! ticket 1480: do not write a modulo axis when saving a modulo
+! axis with region longer than the modulo length.
+! If it's just one grid-cell too long, write one cell less so
+! the axis can still be a valid modulo axis
+ 
+! write a dataset to use, modulo attribute
+define axis/x=20:377.5:2.5/units=degrees_east/modulo xlon
+sh axis xlon
+ name       axis              # pts   start                end
+ XLON      LONGITUDE          144mr   20E                  17.5E(377.5)
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+let var = x[gx=xlon]
+ 
+save/clobber/file=a1.nc var
+sp ncdump -h a1.nc
+netcdf a1 {
+dimensions:
+	XLON = 144 ;
+variables:
+	double XLON(XLON) ;
+		XLON:units = "degrees_east" ;
+		XLON:modulo = 360. ;
+		XLON:point_spacing = "even" ;
+		XLON:axis = "X" ;
+		XLON:standard_name = "longitude" ;
+	double VAR(XLON) ;
+		VAR:missing_value = -1.e+34 ;
+		VAR:_FillValue = -1.e+34 ;
+		VAR:long_name = "X[GX=XLON]" ;
+
+// global attributes:
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+}
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+ 
+! Now set a region and write data. The axis length would be 362.5
+use a1
+sh axis xlon
+ name       axis              # pts   start                end
+ XLON      LONGITUDE          144mr   20E                  17.5E(377.5)
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+set region/x=0:360
+stat x[gx=xlon] ! 145 points
+ 
+             X
+             axis XLON
+             LONGITUDE: 0E to 0E(360)
+             Y:  N/A
+             Z:  N/A
+             T:  N/A
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 145 (145*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 360
+ Mean    value: 180 (unweighted average)
+ Standard deviation: 105
+ 
+! but we see that the region is just one cell too big, and
+! save it with length 360.
+save/clobber/file=a.nc var
+ 
+! previously the x axis had a modulo attribute and length 362.5
+! The modulo=360 didnt match the length of the axis so on using the
+! file there was a note, modulo attribute ignored. Now the axis is
+! the intended length.
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	XLONN7_136 = 144 ;
+variables:
+	double XLONN7_136(XLONN7_136) ;
+		XLONN7_136:units = "degrees_east" ;
+		XLONN7_136:modulo = 360. ;
+		XLONN7_136:point_spacing = "even" ;
+		XLONN7_136:axis = "X" ;
+		XLONN7_136:standard_name = "longitude" ;
+	double VAR(XLONN7_136) ;
+		VAR:missing_value = -1.e+34 ;
+		VAR:_FillValue = -1.e+34 ;
+		VAR:long_name = "X[GX=XLON]" ;
+		VAR:history = "From a1" ;
+
+// global attributes:
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+use a
+sh axis `var,return=xaxis`
+ !-> sh axis XLONN7_136
+ name       axis              # pts   start                end
+ XLONN7_136 LONGITUDE         144mr   0E                   2.5W
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+ 
+! Now set a bigger region and write data. The axis length is 372.5
+use a1
+sh axis xlon
+ name       axis              # pts   start                end
+ XLON      LONGITUDE          144mr   20E                  17.5E(377.5)
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+set region/x=0:370
+ 
+! Now issues a note, not writing modulo attribute.
+save/clobber/file=a.nc var
+ 
+! previously the x axis still had the modulo attribute
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	XLONN7_141 = 149 ;
+variables:
+	double XLONN7_141(XLONN7_141) ;
+		XLONN7_141:units = "degrees_east" ;
+		XLONN7_141:point_spacing = "even" ;
+		XLONN7_141:axis = "X" ;
+		XLONN7_141:standard_name = "longitude" ;
+	double VAR(XLONN7_141) ;
+		VAR:missing_value = -1.e+34 ;
+		VAR:_FillValue = -1.e+34 ;
+		VAR:long_name = "X[GX=XLON]" ;
+		VAR:history = "From a1" ;
+
+// global attributes:
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+use a
+sh axis `var,return=xaxis`
+ !-> sh axis XLONN7_141
+ name       axis              # pts   start                end
+ XLONN7_141 LONGITUDE         149 r   0E                   10E(370)
+   Axis span (to cell edges) = 372.5
+ 
+! test the machinery for a file with attribute modulo=" "
+ 
+use coads_climatology
+sh att (`sst,return=xaxis`)
+ !-> sh att (COADSX)
+     attributes for dataset: ./coads_climatology.cdf
+ (COADSX).units = degrees_east 
+ (COADSX).modulo =   
+ (COADSX).point_spacing = even 
+ (COADSX).orig_file_axname = COADSX 
+set region/x=1:361
+ 
+save/clobber/file=a.nc/y=0/l=1 sst
+ 
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+use a
+sh att (`sst,return=xaxis`)
+ !-> sh att (COADSXN9_170)
+     attributes for dataset: ./a.nc
+ (COADSXN9_170).units = degrees_east 
+ (COADSXN9_170).modulo =   
+ (COADSXN9_170).point_spacing = even 
+ (COADSXN9_170).axis = X 
+ (COADSXN9_170).standard_name = longitude 
+ (COADSXN9_170).orig_file_axname = COADSXN9_170 
+ 
+! previously the axis, of length 362, was marked modulo.
+show axis `sst,return=xaxis`
+ !-> show axis COADSXN9_170
+ name       axis              # pts   start                end
+ COADSXN9_170 LONGITUDE       180mr   1E                   1W
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+ 
+ 
+! Bug 2502: FMRC regridding sensitive to insignificant floating-point differences in time
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_fmrcdiag
+! err700_fmrcdiag.jnl
+! these particular datasets (quarterly forecasts of two years of monthly data)
+! have times at regular intervals but at values (for 25 and 26) that are difficult
+! to represent in binary
+!
+USE forecast24.nc
+USE forecast25.nc
+USE forecast26.nc
+USE forecast27.nc
+DEFINE DATA/AGGREGATE/F testdata = 1,2,3,4
+!
+! using the values of actual gives perfect forecasts;
+! using the values of quirks has a sinusoidal error that get worse with greater lead time
+!
+SHOW GRID actual
+    GRID (G181)
+ name       axis              # pts   start                end                 subset
+ XAX1      LONGITUDE            7mr   140W                 110W                full
+ YAX2      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
+ TF_CAL_F  FORECAST             4 r   01-OCT-2010 21:36    02-JUL-2011 19:12   full
+LIST /WIDTH=600 /X=120W/Y=50N/Z=50 actual
+             VARIABLE : actual
+             DATA SET : Forecast series of 4 datasets patterned on forecast24
+             FILENAME : testdata
+             SUBSET   : 25 by 4 points (MODEL ELAPSED TIME (day)-FORECAST)
+             LONGITUDE: 120W
+             LATITUDE : 50N
+             Z (meter): 50
+             Verification time increases across row.  Initialization time increases down page. 
+                      15.2      45.6      76.1     106.5     136.9     167.4     197.8     228.2     258.7     289.1     319.5     350       380.4     410.8     441.3     471.7     502.1     532.6     563       593.4     623.9     654.3     684.7     715.2     745.6   
+                       1         2         3         4         5         6         7         8         9        10        11        12        13        14        15        16        17        18        19        20        21        22        23        24        25
+ 01-OCT-2010 / 1:  3.112250  3.063082  3.547819  4.433232  5.475539  6.387525  6.917689  6.919604  6.392356  5.480903  4.436224  3.546203  3.056299  3.101849  3.670677  4.606352  5.651203  6.517281  6.965714  6.872593  6.263211  5.305189  4.262375  3.422174  3.016333
+ 01-JAN-2011 / 2:  4.433232  5.475539  6.387525  6.917689  6.919604  6.392356  5.480903  4.436224  3.546203  3.056299  3.101849  3.670677  4.606352  5.651203  6.517281  6.965714  6.872593  6.263211  5.305189  4.262375  3.422174  3.016333  3.157027  3.805846  4.784283
+ 02-APR-2011 / 3:  6.917689  6.919604  6.392356  5.480903  4.436224  3.546203  3.056299  3.101849  3.670677  4.606352  5.651203  6.517281  6.965714  6.872593  6.263211  5.305189  4.262375  3.422174  3.016333  3.157027  3.805846  4.784283  5.822848  6.635293  6.997507
+ 02-JUL-2011 / 4:  5.480903  4.436224  3.546203  3.056299  3.101849  3.670677  4.606352  5.651203  6.517281  6.965714  6.872593  6.263211  5.305189  4.262375  3.422174  3.016333  3.157027  3.805846  4.784283  5.822848  6.635293  6.997507  6.809341  6.122295  5.125425
+SHADE /X=120W/Y=50N/Z=50 actual
+FRAME /FILE=forecast_actual.gif
+!
+! the diagonal should be a regular 3:1 stairstep on lower and upper
+! using actual should show single color on horizontal
+!
+LET /TITLE="actual (diag view)" diagview = actual[gt(tf_times)=tf_cal_t]
+SHOW GRID diagview
+    GRID (G181)
+ name       axis              # pts   start                end                 subset
+ XAX1      LONGITUDE            7mr   140W                 110W                full
+ YAX2      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
+ TF_CAL_F  FORECAST             4 r   01-OCT-2010 21:36    02-JUL-2011 19:12   full
+LIST /WIDTH=600 /X=120W/Y=50N/Z=50 diagview
+             VARIABLE : actual (diag view)
+             DATA SET : Forecast series of 4 datasets patterned on forecast24
+             FILENAME : testdata
+             SUBSET   : 34 by 4 points (TIME-FORECAST)
+             LONGITUDE: 120W
+             LATITUDE : 50N
+             Z (meter): 50
+             Verification time increases across row.  Initialization time increases down page. 
+                      2010      2010      2010      2011      2011      2011      2011      2011      2011      2011      2011      2011      2011      2011      2011      2012      2012      2012      2012      2012      2012      2012      2012      2012      2012      2012      2012      2013      2013      2013      2013      2013      2013      2013   
+                       1         2         3         4         5         6         7         8         9        10        11        12        13        14        15        16        17        18        19        20        21        22        23        24        25        26        27        28        29        30        31        32        33        34
+ 01-OCT-2010 / 1:  3.112250  3.063082  3.547819  4.433232  5.475539  6.387525  6.917689  6.919604  6.392356  5.480903  4.436224  3.546203  3.056299  3.101849  3.670677  4.606352  5.651203  6.517281  6.965714  6.872593  6.263211  5.305189  4.262375  3.422174  3.016333      ....      ....      ....      ....      ....      ....      ....      ....      ....
+ 01-JAN-2011 / 2:      ....      ....      ....  4.433232  5.475539  6.387525  6.917689  6.919604  6.392356  5.480903  4.436224  3.546203  3.056299  3.101849  3.670677  4.606352  5.651203  6.517281  6.965714  6.872593  6.263211  5.305189  4.262375  3.422174  3.016333  3.157027  3.805846  4.784283      ....      ....      ....      ....      ....      ....
+ 02-APR-2011 / 3:      ....      ....      ....      ....      ....      ....  6.917689  6.919604  6.392356  5.480903  4.436224  3.546203  3.056299  3.101849  3.670677  4.606352  5.651203  6.517281  6.965714  6.872593  6.263211  5.305189  4.262375  3.422174  3.016333  3.157027  3.805846  4.784283  5.822848  6.635293  6.997507      ....      ....      ....
+ 02-JUL-2011 / 4:      ....      ....      ....      ....      ....      ....      ....      ....      ....  5.480903  4.436224  3.546203  3.056299  3.101849  3.670677  4.606352  5.651203  6.517281  6.965714  6.872593  6.263211  5.305189  4.262375  3.422174  3.016333  3.157027  3.805846  4.784283  5.822848  6.635293  6.997507  6.809341  6.122295  5.125425
+SHADE /X=120W/Y=50N/Z=50 diagview
+FRAME /FILE=forecast_diagview.gif
+!
+! using actual should show single color on horizontal
+!
+LET /TITLE="actual (lead view)" leadview = actual[gt(tf_times)=tf_cal_t,gf(tf_times)=tf_lag_f]
+SHOW GRID leadview
+    GRID (G201)
+ name       axis              # pts   start                end                 subset
+ XAX1      LONGITUDE            7mr   140W                 110W                full
+ YAX2      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
+ TF_LAG_F  FORECAST LEAD TIME ( 9 r   45.65                776.05              full
+LIST /WIDTH=600 /X=120W/Y=50N/Z=50 leadview
+             VARIABLE : actual (lead view)
+             DATA SET : Forecast series of 4 datasets patterned on forecast24
+             FILENAME : testdata
+             SUBSET   : 34 by 9 points (TIME-FORECAST LEAD TIME (day))
+             LONGITUDE: 120W
+             LATITUDE : 50N
+             Z (meter): 50
+             Verification time increases across row.  Initialization time increases down page. 
+                2010      2010      2010      2011      2011      2011      2011      2011      2011      2011      2011      2011      2011      2011      2011      2012      2012      2012      2012      2012      2012      2012      2012      2012      2012      2012      2012      2013      2013      2013      2013      2013      2013      2013   
+                 1         2         3         4         5         6         7         8         9        10        11        12        13        14        15        16        17        18        19        20        21        22        23        24        25        26        27        28        29        30        31        32        33        34
+ 45.6  / 1:  3.112250  3.063082  4.433232  5.475539  6.917689  6.919604  5.480903  4.436224      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
+ 136.9 / 2:      ....      ....  3.547819  4.433232  6.387525  6.917689  6.392356  5.480903  3.546203  3.056299      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
+ 228.2 / 3:      ....      ....      ....      ....  5.475539  6.387525  6.919604  6.392356  4.436224  3.546203  3.101849  3.670677      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
+ 319.5 / 4:      ....      ....      ....      ....      ....      ....  6.917689  6.919604  5.480903  4.436224  3.056299  3.101849  4.606352  5.651203      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
+ 410.8 / 5:      ....      ....      ....      ....      ....      ....      ....      ....  6.392356  5.480903  3.546203  3.056299  3.670677  4.606352  6.517281  6.965714      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
+ 502.1 / 6:      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....  4.436224  3.546203  3.101849  3.670677  5.651203  6.517281  6.872593  6.263211      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
+ 593.4 / 7:      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....  3.056299  3.101849  4.606352  5.651203  6.965714  6.872593  5.305189  4.262375      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
+ 684.7 / 8:      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....  3.670677  4.606352  6.517281  6.965714  6.263211  5.305189  3.422174  3.016333      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
+ 776   / 9:      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....  5.651203  6.517281  6.872593  6.263211  4.262375  3.422174  3.157027  3.805846      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
+SHADE /X=120W/Y=50N/Z=50 leadview
+FRAME /FILE=forecast_leadview.gif
+ 
+! Bug 2331: Labeling the labels in line-plot legends.
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Go err700_legend_labels
+! err700_legend_labels.jnl
+! See ticket 2231:
+!   - consistent labeling of units
+!   - PLOT/KEY=title applies to PLOT/VS
+ 
+cancel symbol lab*
+use gt4d011.cdf
+ 
+! Previously vertical label had Deg C, legend labels had units.
+! Now label only the legend labels show the different units.
+set v ul; plot/l=1/k=1/y=0/key=title temp, taux, tauy
+annotate/norm/xpos=1/ypos=.5/halign=0/valign=-4/angle=-90/size=0.14 "Each label with units"
+ 
+sh sym lab*  ! laby is not used
+LABX = "LONGITUDE"
+LAB1 = "DEPTH (m) : 5"
+LABNUM_Z = "1"
+LAB2 = "TIME : 17-AUG-1982 12:00"
+LABNUM_T = "2"
+LAB3 = "DATA SET: gt4d011"
+LABNUM_DSET = "3"
+LAB4 = ""
+LABNUM_DATITL = "4"
+LAB5 = "TEMPERATURE (deg. C)"
+LABKEY = "MERIDIONAL WIND STRESS (dynes/cm**2)"
+LAB6 = "ZONAL WIND STRESS (dynes/cm**2)"
+LAB7 = "MERIDIONAL WIND STRESS (dynes/cm**2)"
+can sym lab*
+ 
+! Previously vertical label and legend labels had units.
+! Now label only the vertical axis with the common units.
+set v ur; plot/l=1/k=1/y=0/key=title taux, tauy
+annotate/norm/xpos=1/ypos=.5/halign=0/valign=-4/angle=-90/size=0.14 "Common Units, labeled on left"
+ 
+! legend labels now do not include units
+sh sym lab*
+LABX = "LONGITUDE"
+LAB1 = "LATITUDE : 0.00002N"
+LABNUM_Y = "1"
+LAB2 = "TIME : 17-AUG-1982 12:00"
+LABNUM_T = "2"
+LAB3 = "DATA SET: gt4d011"
+LABNUM_DSET = "3"
+LAB4 = ""
+LABNUM_DATITL = "4"
+LABY = "dynes/cm**2"
+LAB5 = "ZONAL WIND STRESS"
+LABKEY = "MERIDIONAL WIND STRESS"
+LAB6 = "MERIDIONAL WIND STRESS"
+can sym lab*
+ 
+! Define some variables with titles
+let/title="Temperature Avg"/units="`temp,return=units`" tmpave = temp[L=@ave,z=@ave]
+ !-> DEFINE VARIABLE/title="Temperature Avg"/units="deg. C" tmpave = temp[L=@ave,z=@ave]
+let/title="September Taux"/units="`taux,return=units`" taux_s = taux[t=23-SEP-1982, k=1]
+ !-> DEFINE VARIABLE/title="September Taux"/units="dynes/cm**2" taux_s = taux[t=23-SEP-1982, k=1]
+let/title="January Taux"/units="`taux,return=units`" taux_j = taux[t=4-jan-1983, k=1]
+ !-> DEFINE VARIABLE/title="January Taux"/units="dynes/cm**2" taux_j = taux[t=4-jan-1983, k=1]
+ 
+! Set up a common set of axes for all variables
+set v lower
+plot/vs/sym=dot/y=0/nokey tmpave,taux_s,taux_j
+annotate/norm/xpos=1/ypos=.5/halign=0/valign=-4/angle=-90/size=0.14 "PLOT/VS with KEY=title"
+ 
+! Overlay; the legend titles are variable titles.
+plot/over/vs/color=red/thick/siz=0.14/y=0/key=title tmpave,taux_s
+plot/over/vs/color=green/thick/siz=0.14/y=0/key=title tmpave,taux_j
+ 
+frame/file=legend_1d_plots.gif
+ 
+! legend labels are titles
+sh sym lab*
+LABX = "Temperature Avg (deg. C)"
+LAB1 = "DEPTH (m) : 0 to 4149"
+LABNUM_Z = "1"
+LAB2 = "DATA SET: gt4d011"
+LABNUM_DSET = "2"
+LAB3 = ""
+LABNUM_DATITL = "3"
+LABY = "dynes/cm**2"
+LAB4 = "September Taux"
+LABKEY = "January Taux"
+LAB5 = "January Taux"
+ 
+! Overlaying on a 2D field
+ 
+DEFINE AXIS/T="1-JAN-1980":"1-JAN-1990":5/UNITS=DAYS tdays
+DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
+ 
+LET/TITLE=XY my_var = 10*cos(T[gt=tdays]/2000)*EXP((-1)*y[gy=yax]/20)
+LET my_var2 = 10*cos(T[gt=tdays]/2000)*EXP((-1)*y[gy=yax]/20)
+ 
+! make a Hovmoller plot
+SHADE/nolab my_var
+ 
+! PLOT/OVER without key=title shows the def in the line key
+PLOT/OVER my_var[Y=@loc:-4]
+PLOT/OVER my_var2[Y=@loc:-3]
+ 
+! with /KEY=TITLE, the variable with a title uses that,
+! variable without a title uses the variable name,
+! an expression just puts the expression (same as w/o /key=title)
+ 
+PLOT/OVER/KEY=TITLE my_var[Y=@loc:-2]
+PLOT/OVER/KEY=TITLE my_var2[Y=@loc:-1]
+ 
+PLOT/OVER/KEY=TITLE 10+cos(T[gt=tdays]/200)
+ 
+ 
+! Bug 2507: time aggregations with same time axis in different grids per file
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Go err700_aggt_dup_grids
+! err700_aggt_dup_grids
+! 2/15/2017 ACM
+! Bug 2507: new time axis is identical in two tseries aggregation.
+!  It exists in more than one grid. Previously the new time axis
+!  was swapped into only one of the grids for the second aggregation.
+ 
+! Define some datsets, with two variables with different grids each
+! using a common time axis.
+ 
+use  tmp/tagg_irreg_1.nc
+define axis/x=1:1:1 xax1
+let newvar = x[gx=xax1] + myvar
+save/clobber/file=a1.nc myvar, newvar
+can dat/all
+use  tmp/tagg_irreg_2.nc
+save/clobber/file=a2.nc myvar, newvar
+ 
+can dat/all; can var/all
+ 
+! Define two aggregations; the second should share the time axis
+! that was set up in the first.
+sp ln -sf a1.nc b1.nc
+sp ln -sf a2.nc b2.nc
+ 
+tseries a2var = a1.nc, a2.nc
+tseries b2var = b1.nc, b2.nc
+ 
+! previously the time axis of the second variable in b2var was
+! listed as length 10
+sh dat
+     currently SET data sets:
+    1> a2var
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20
+ NEWVAR   X[GX=XAX1] + MYVAR               1:1       ...       ...       1:20
+ 
+    2> b2var  (default)
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20
+ NEWVAR   X[GX=XAX1] + MYVAR               1:1       ...       ...       1:20
+ 
+ 
+ 
+GO bn_reset bn_delim_datetime
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_delim_datetime
+GO bn_delim_datetime
+! bn_delim_datetime.jnl
+! ACM 7/2016
+!
+! Tickets 2448, 2449, 2450: Improvements to date reading in delimited files.
+! New: date/time fields for US and European style dates.
+! Also report incorrect date/time spec (causes months out of range)
+! and put 2-digit years prior to 50 in the 21st century. (prev. cutoff was year 20)
+!
+ 
+! File contains index,euro-date-time, us-date-time, us-date, eurodate
+! The years in variables 3 and 4 are 2-digit years after year 2020.
+ 
+! Ticket 2472: Allow yyyy/dd/mm in any of the date specs.
+ 
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,datime,date,eurodate" delim_datetime.csv
+sh dat
+     currently SET data sets:
+    1> ./delim_datetime.csv  (default)
+ name     title                             I         J         K         L
+ INDEX    index                            1:8       ...       ...       ...
+ EDTIM    edtim                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ UDTIM    udtim                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ UDATE    udate                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ EDATE    edate                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ 
+list index,edtim,udtim,udate,edate
+             DATA SET: ./delim_datetime.csv
+             X: 0.5 to 5.5
+ Column  1: INDEX is index
+ Column  2: EDTIM is edtim (days)(Julian days since 1-Jan-1900)
+ Column  3: UDTIM is udtim (days)(Julian days since 1-Jan-1900)
+ Column  4: UDATE is udate (days)(Julian days since 1-Jan-1900)
+ Column  5: EDATE is edate (days)(Julian days since 1-Jan-1900)
+            INDEX    EDTIM     UDTIM     UDATE     EDATE
+1   / 1:  1.000000  41659.04  43850.28  34837.00  33376.00
+2   / 2:  2.000000  41659.10  44216.32  38490.00  33407.00
+3   / 3:  3.000000  41659.15  44581.36  42142.00  33437.00
+4   / 4:  4.000000  41659.17  44946.40  45795.00  33468.00
+5   / 5:  5.000000  41659.22  45311.44  49447.00  33529.00
+ 
+! axis January 2014
+define axis/t/t0=1-jan-1900/units=days timax = edtim
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 5 i   22-JAN-2014 01:00    22-JAN-2014 05:20
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 0.2361111
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  22-JAN-2014 01:00:00  0.0555556  22-JAN-2014 00:20:00    41659.04
+       2>  22-JAN-2014 02:20:00  0.0555556  22-JAN-2014 01:40:00    41659.1
+       3>  22-JAN-2014 03:40:00  0.0347222  22-JAN-2014 03:00:00    41659.15
+       4>  22-JAN-2014 04:00:00  0.0347222  22-JAN-2014 03:50:00    41659.17
+       5>  22-JAN-2014 05:20:00  0.0555556  22-JAN-2014 04:40:00    41659.22
+ 
+! time axis in 1991
+define axis/t/t0=1-jan-1900/units=days timax = edate
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 5 i   20-MAY-1991 00:00    20-OCT-1991 00:00
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 199
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  20-MAY-1991 00:00:00  31         04-MAY-1991 12:00:00    33376
+       2>  20-JUN-1991 00:00:00  30.5       04-JUN-1991 12:00:00    33407
+       3>  20-JUL-1991 00:00:00  30.5       05-JUL-1991 00:00:00    33437
+       4>  20-AUG-1991 00:00:00  46         04-AUG-1991 12:00:00    33468
+       5>  20-OCT-1991 00:00:00  61         19-SEP-1991 12:00:00    33529
+ 
+! time axis in 2020 - 2024
+define axis/t/t0=1-jan-1900/units=days timax = udtim
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 5 i   22-JAN-2020 06:40    22-JAN-2024 10:40
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 1826.708
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  22-JAN-2020 06:40:00  366.0417   23-JUL-2019 06:10:00    43850.28
+       2>  22-JAN-2021 07:40:00  365.5417   23-JUL-2020 07:10:00    44216.32
+       3>  22-JAN-2022 08:40:00  365.0417   23-JUL-2021 20:10:00    44581.36
+       4>  22-JAN-2023 09:40:00  365.0417   23-JUL-2022 21:10:00    44946.4
+       5>  22-JAN-2024 10:40:00  365.0417   23-JUL-2023 22:10:00    45311.44
+ 
+! time axis in 1995 - 2035
+define axis/t/t0=1-jan-1900/units=days timax = udate
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 5 i   20-MAY-1995 00:00    20-MAY-2035 00:00
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 18262.5
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  20-MAY-1995 00:00:00  3653       19-MAY-1990 12:00:00    34837
+       2>  20-MAY-2005 00:00:00  3652.5     19-MAY-2000 12:00:00    38490
+       3>  20-MAY-2015 00:00:00  3652.5     20-MAY-2010 00:00:00    42142
+       4>  20-MAY-2025 00:00:00  3652.5     19-MAY-2020 12:00:00    45795
+       5>  20-MAY-2035 00:00:00  3652       20-MAY-2030 00:00:00    49447
+ 
+! Dates of yyyy/dd/mm
+! Dates with 00/00/00 return missing-data
+ 
+columns/skip=2/var="index,udate,udtim"/type="num,date,datime" delim_yyyy.csv
+sh dat
+     currently SET data sets:
+    1> ./delim_datetime.csv
+ name     title                             I         J         K         L
+ INDEX    index                            1:5       ...       ...       ...
+ EDTIM    edtim                            1:5       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ UDTIM    udtim                            1:5       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ UDATE    udate                            1:5       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ EDATE    edate                            1:5       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ 
+    2> ./delim_yyyy.csv  (default)
+ name     title                             I         J         K         L
+ INDEX    index                            1:8       ...       ...       ...
+ UDATE    udate                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ UDTIM    udtim                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ 
+list/prec=10 index,udate,udtim
+             DATA SET: ./delim_yyyy.csv
+             X: 0.5 to 6.5
+ Column  1: INDEX is index
+ Column  2: UDATE is udate (days)(Julian days since 1-Jan-1900)
+ Column  3: UDTIM is udtim (days)(Julian days since 1-Jan-1900)
+               INDEX      UDATE        UDTIM
+1   / 1:  1.000000000  40920.00000  37243.27778
+2   / 2:  2.000000000  40921.00000  37243.31944
+3   / 3:  3.000000000  40923.00000  37243.36111
+4   / 4:  4.000000000  40924.00000  37243.40278
+5   / 5:  5.000000000         ....  37243.48611
+6   / 6:  6.000000000  40925.00000  37243.61111
+ 
+! axis January 2014
+define axis/t/t0=1-jan-1900/units=days timax = udate[i=1:4]
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 4 i   14-JAN-2012 00:00    18-JAN-2012 00:00
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 5
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  14-JAN-2012 00:00:00  1          13-JAN-2012 12:00:00    40920
+       2>  15-JAN-2012 00:00:00  1.5        14-JAN-2012 12:00:00    40921
+       3>  17-JAN-2012 00:00:00  1.5        16-JAN-2012 00:00:00    40923
+       4>  18-JAN-2012 00:00:00  1          17-JAN-2012 12:00:00    40924
+! axis December 2001
+define axis/t/t0=1-jan-1900/units=days timax = udtim
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 6 i   20-DEC-2001 06:40    20-DEC-2001 14:40
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 0.4166667
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  20-DEC-2001 06:40:00  0.0416667  20-DEC-2001 06:10:00    37243.28
+       2>  20-DEC-2001 07:40:00  0.0416667  20-DEC-2001 07:10:00    37243.32
+       3>  20-DEC-2001 08:40:00  0.0416667  20-DEC-2001 08:10:00    37243.36
+       4>  20-DEC-2001 09:40:00  0.0625     20-DEC-2001 09:10:00    37243.4
+       5>  20-DEC-2001 11:40:00  0.1041667  20-DEC-2001 10:40:00    37243.49
+       6>  20-DEC-2001 14:40:00  0.125      20-DEC-2001 13:10:00    37243.61
+ 
+ 
+! Intentional errors, specifying the wrong date field type (catches the first error)
+! The error is found upon reading the file.
+ 
+set mode ignore
+can dat/all
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,datime,datime,date,date" delim_datetime.csv
+list index,edtim,udtim,udate,edate
+ 
+can dat/all
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,edatime,date,eurodate" delim_datetime.csv
+list index,edtim,udtim,udate,edate
+ 
+can dat/all
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,datime,eurodate,date" delim_datetime.csv
+list index,edtim,udtim,udate,edate
+ 
+can dat/all
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,datime,date,date" delim_datetime.csv
+list index,edtim,udtim,udate,edate
+ 
+set mode/last ignore
+ 
+ 
+ 
+GO bn_reset bn_aggregate_u
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_aggregate_u
+GO bn_aggregate_u
+! bn_aggregate_u.jnl
+! Union aggregations including tests of UNION in combination
+! with TSERIES, ENSEMBLE, and FMRC aggregations
+! acm 7/15/2016
+! create some variables in separate datasets.
+define axis/t=1-jan-2010:10-jan-2010:1/units=days/t0=1-jan-2010 tax
+let/title=sst  sst = x[x=1:5] + 1.3*y[y=1:4] + t[gt=tax]
+let/title=temp temp = 0.8*x[x=1:5] - y[y=1:4] + t[gt=tax]
+let/title=U    u = x[x=1:5] + 0.4*y[y=1:4] - 1.1* t[gt=tax]
+let/title=V    v = x[x=1:5] - 0.2*y[y=1:4] + 1.1* t[gt=tax]
+ 
+save/clobber/file="tmp/uagg_1.nc" sst
+save/clobber/file="tmp/uagg_2.nc" temp
+save/clobber/file="tmp/uagg_3.nc" u
+save/clobber/file="tmp/uagg_4.nc" v
+ 
+save/l=1:3/clobber/file="tmp/uagg_1_t1.nc" sst
+save/l=4:6/clobber/file="tmp/uagg_1_t2.nc" sst
+save/l=7:10/clobber/file="tmp/uagg_1_t3.nc" sst
+ 
+can dat/all
+union tmp/uagg_1.nc,tmp/uagg_2.nc,tmp/uagg_3.nc,tmp/uagg_4.nc
+sh dat
+     currently SET data sets:
+    5> ./bn_aggregate_u.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
+ 
+vec/l=5 u,v
+ 
+cancel dat/all
+ 
+! issue a note if a variable is already in the Union
+! a new file with different defiontions of sst and temp
+!
+let/title="sst in uagg_5"  sst = 1.1*x[x=1:5] + 1.3*y[y=1:4] + t[gt=tax]
+let/title="temp in uagg_5" temp = 0.9*x[x=1:5] - y[y=1:4] + t[gt=tax]
+save/clobber/file="tmp/uagg_5.nc" sst,temp
+ 
+! In the union set, sst comes from uagg_1, temp comes from uagg_5
+union uu = tmp/uagg_1.nc,tmp/uagg_5.nc
+sh dat/att
+     currently SET data sets:
+    3> uu  (default)  Union aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        2    F       uu
+  
+ SST                   FLOAT     long_name       CHAR        3    T       sst
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ TEMP                  FLOAT     long_name       CHAR        14   T       temp in uagg_5
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+can dat/all
+ 
+! Or use /quiet to supress the note
+union/quiet uu = tmp/uagg_1.nc,tmp/uagg_5.nc
+ 
+let tnames = SPAWN("ls -1 tmp/uagg_1_*.nc")
+tseries  temp_time_agg = tnames
+sh dat
+     currently SET data sets:
+    3> uu     Union aggregation
+ name     title                             I         J         K         L
+ SST      sst                              1:5       1:4       ...       1:10
+ TEMP     temp in uagg_5                   1:5       1:4       ...       1:10
+ 
+    4> temp_time_agg  (default)
+ name     title                             I         J         K         L
+ SST      sst                              1:5       1:4       ...       1:10
+ 
+union temp_time_agg, tmp/uagg_2.nc,tmp/uagg_3.nc,tmp/uagg_4.nc
+ 
+shade/l=2 sst - temp
+ 
+ 
+can dat/all; can var/all; can sym/all
+ 
+! exercise 6D aggregations: UNION with T, E, and F simultaneously
+ 
+! do not bother to echo the creation of files and the definitions of the
+! many time aggregations
+CANCEL MODE VERIFY
+! define T aggregations
+ 
+! timeseries of files with variable fcst_1
+repeat/name=fdate/range=1:7:3 (\
+  let tstart = t[gt=truemonth,l=`fdate`];\
+  repeat/name=ens/range=1:2:1 (\
+    let realization = `ens`;\
+    TSERIES  t_f`(fdate-1)/3+1,zw=2`_e`ens` = SPAWN("ls -1 tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_t?.nc")  ))
+!-> REPEAT: FDATE:1
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=1]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f01_e1 = SPAWN("ls -1 tmp/f01_e1_t?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f01_e2 = SPAWN("ls -1 tmp/f01_e2_t?.nc")
+!-> REPEAT: FDATE:4
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=4]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f02_e1 = SPAWN("ls -1 tmp/f02_e1_t?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f02_e2 = SPAWN("ls -1 tmp/f02_e2_t?.nc")
+!-> REPEAT: FDATE:7
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=7]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f03_e1 = SPAWN("ls -1 tmp/f03_e1_t?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f03_e2 = SPAWN("ls -1 tmp/f03_e2_t?.nc")
+ 
+! timeseries of files with variable fcst_3
+repeat/name=fdate/range=1:7:3 (\
+  let tstart = t[gt=truemonth,l=`fdate`];\
+  repeat/name=ens/range=1:2:1 (\
+    let realization = `ens`;\
+    TSERIES  t_f`(fdate-1)/3+1,zw=2`_e`ens`_3 = SPAWN("ls -1 tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_tu?.nc")  ))
+!-> REPEAT: FDATE:1
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=1]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f01_e1_3 = SPAWN("ls -1 tmp/f01_e1_tu?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f01_e2_3 = SPAWN("ls -1 tmp/f01_e2_tu?.nc")
+!-> REPEAT: FDATE:4
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=4]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f02_e1_3 = SPAWN("ls -1 tmp/f02_e1_tu?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f02_e2_3 = SPAWN("ls -1 tmp/f02_e2_tu?.nc")
+!-> REPEAT: FDATE:7
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=7]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f03_e1_3 = SPAWN("ls -1 tmp/f03_e1_tu?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f03_e2_3 = SPAWN("ls -1 tmp/f03_e2_tu?.nc")
+ 
+cancel variable realization
+ 
+SET MODE VERIFY
+! now union these to make datsets with fcnst_1 and fcst_3.
+ 
+show data/files/br;
+     currently SET data sets:
+    1> t_f01_e1
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_t3.nc
+ 
+    2> t_f01_e2
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_t3.nc
+ 
+    3> t_f02_e1
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e1_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e1_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e1_t3.nc
+ 
+    4> t_f02_e2
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e2_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e2_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e2_t3.nc
+ 
+    5> t_f03_e1
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e1_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e1_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e1_t3.nc
+ 
+    6> t_f03_e2
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e2_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e2_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e2_t3.nc
+ 
+    7> t_f01_e1_3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_tu1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_tu2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_tu3.nc
+ 
+    8> t_f01_e2_3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_tu1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_tu2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_tu3.nc
+ 
+    9> t_f02_e1_3
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e1_tu1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e1_tu2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e1_tu3.nc
+ 
+   10> t_f02_e2_3
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e2_tu1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e2_tu2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e2_tu3.nc
+ 
+   11> t_f03_e1_3
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e1_tu1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e1_tu2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e1_tu3.nc
+ 
+   12> t_f03_e2_3  (default)
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e2_tu1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e2_tu2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e2_tu3.nc
+ 
+ 
+DEFINE DATA/AGGREGAT/U  u1 = t_f01_e1_3, t_f01_e1
+DEFINE DATA/AGGREGAT/U  u2 = t_f01_e2, t_f01_e2_3
+show data u1 u2
+     currently SET data sets:
+   13> u1     Union aggregation
+ name     title                             I         J         K         L
+ FCST_3   another variable                 1:21      1:11      1:1       1:36
+       (L=1:12)
+ REALIZATION
+          1                                ...       ...       ...       ...
+ FCST     some variable                    1:21      1:11      1:1       1:36
+       (L=1:12)
+ FCST_2   another variable                 1:21      1:11      1:1       1:36
+       (L=1:12)
+ 
+can data u1 u2
+ 
+! Make a batch of files, timeseries aggregations union-ed.
+! the /QUIET supresses the note about skipping duplicate variables.
+repeat/name=fdate/range=1:7:3 (\
+  let tstart = t[gt=truemonth,l=`fdate`];\
+  repeat/name=ens/range=1:2:1 (\
+    let realization = `ens`;\
+    UNION/quiet  t_f_u`(fdate-1)/3+1,zw=2`_e`ens` = t_f`(fdate-1)/3+1,zw=2`_e`ens`, t_f`(fdate-1)/3+1,zw=2`_e`ens`_3;\
+    show data/br t_f_u`(fdate-1)/3+1,zw=2`_e`ens`))
+!-> REPEAT: FDATE:1
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=1]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u01_e1 = t_f01_e1, t_f01_e1_3
+ !-> show data/br t_f_u01_e1
+     currently SET data sets:
+   13> t_f_u01_e1  (default)  Union aggregation
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u01_e2 = t_f01_e2, t_f01_e2_3
+ !-> show data/br t_f_u01_e2
+     currently SET data sets:
+   14> t_f_u01_e2  (default)  Union aggregation
+!-> REPEAT: FDATE:4
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=4]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u02_e1 = t_f02_e1, t_f02_e1_3
+ !-> show data/br t_f_u02_e1
+     currently SET data sets:
+   15> t_f_u02_e1  (default)  Union aggregation
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u02_e2 = t_f02_e2, t_f02_e2_3
+ !-> show data/br t_f_u02_e2
+     currently SET data sets:
+   16> t_f_u02_e2  (default)  Union aggregation
+!-> REPEAT: FDATE:7
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=7]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u03_e1 = t_f03_e1, t_f03_e1_3
+ !-> show data/br t_f_u03_e1
+     currently SET data sets:
+   17> t_f_u03_e1  (default)  Union aggregation
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u03_e2 = t_f03_e2, t_f03_e2_3
+ !-> show data/br t_f_u03_e2
+     currently SET data sets:
+   18> t_f_u03_e2  (default)  Union aggregation
+ 
+cancel variable realization
+ 
+! should share the same time axis
+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
+ 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
+ ZAX1      Z (m)                1 r   250                  250                 full
+ TRUEMONTH3 TIME               36 i   16-JAN-1950 12:00    16-DEC-1952 12:00   full
+ 
+! Now go on and aggregate these time & union aggregations, in E and F
+ 
+! ======== TEST SET 1:  aggregate E first, then F
+ 
+! define tue aggregations -- only the first remains unhidden
+ENSEMBLE      tue_f01 = t_f_u01_e1, t_f_u01_e2
+ENSEMBLE/hide tue_f02 = t_f_u02_e1, t_f_u02_e1
+ENSEMBLE/hide tue_f03 = t_f_u03_e1, t_f_u03_e2
+SHOW DATA/brief
+     currently SET data sets:
+    1> t_f01_e1
+    2> t_f01_e2
+    3> t_f02_e1
+    4> t_f02_e2
+    5> t_f03_e1
+    6> t_f03_e2
+    7> t_f01_e1_3
+    8> t_f01_e2_3
+    9> t_f02_e1_3
+   10> t_f02_e2_3
+   11> t_f03_e1_3
+   12> t_f03_e2_3
+   13> t_f_u01_e1     Union aggregation
+   14> t_f_u01_e2     Union aggregation
+   16> t_f_u02_e2     Union aggregation
+   19> tue_f01     Ensemble aggregation
+   20> tue_f02     Ensemble aggregation
+   21> tue_f03  (default)  Ensemble aggregation
+SHOW DATA/FULL tue_f03
+     currently SET data sets:
+   21> tue_f03  (default)  Ensemble aggregation
+     Ensemble series of 2 datasets patterned on t_f_u03_e1
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:2       ...
+       (L=7:18)
+               on grid GEN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:2       ...
+       (L=7:18)
+               on grid GEN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  
+ REALIZATION
+          1                                ...       ...       ...       ...       1:2       ...
+               on grid GEN3 with -1.E+34 for missing data
+             E=0.5:2.5  
+ FCST_3   another variable                 1:21      1:11      1:1       1:36      1:2       ...
+       (L=7:18)
+               on grid GEN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  
+ 
+  time range: 16-JUL-1950 12:00 to 16-JUN-1953 00:00
+ 
+          Member datasets:
+      21.1: t_f_u03_e1
+      21.2: t_f_u03_e2
+SHOW DATA/ATT tue_f03   ! notice the promotion of fcst.im_everywhere
+     currently SET data sets:
+   21> tue_f03  (default)  Ensemble aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        7    F       tue_f03
+  
+ FCST                  FLOAT     long_name       CHAR        13   T       some variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ FCST_2                FLOAT     long_name       CHAR        16   T       another variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ REALIZATION           FLOAT     long_name       CHAR        1    T       1
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ FCST_3                FLOAT     long_name       CHAR        16   T       another variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ 
+! define tuef aggregation
+FMRC/HIDE tuef = tue_f01, tue_f02, tue_f03
+SHOW DATA/brief/files
+     currently SET data sets:
+    1> t_f01_e1
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_t3.nc
+ 
+    2> t_f01_e2
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_t3.nc
+ 
+    3> t_f02_e1
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e1_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e1_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e1_t3.nc
+ 
+    4> t_f02_e2
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e2_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e2_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e2_t3.nc
+ 
+    5> t_f03_e1
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e1_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e1_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e1_t3.nc
+ 
+    6> t_f03_e2
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e2_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e2_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e2_t3.nc
+ 
+    7> t_f01_e1_3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_tu1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_tu2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_tu3.nc
+ 
+    8> t_f01_e2_3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_tu1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_tu2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_tu3.nc
+ 
+    9> t_f02_e1_3
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e1_tu1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e1_tu2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e1_tu3.nc
+ 
+   10> t_f02_e2_3
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e2_tu1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e2_tu2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e2_tu3.nc
+ 
+   11> t_f03_e1_3
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e1_tu1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e1_tu2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e1_tu3.nc
+ 
+   12> t_f03_e2_3
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e2_tu1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e2_tu2.nc
+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
+ 
+   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
+ 
+   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
+ 
+   22> tuef  (default)  Forecast aggregation
+          Member datasets:
+      22.1: tue_f01
+      22.2: tue_f02
+      22.3: tue_f03
+show data/full tuef
+     currently SET data sets:
+   22> tuef  (default)  Forecast aggregation
+     Forecast series of 3 datasets patterned on tue_f01
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+               on grid GFN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  F=16-NOV-1949 18:00:15-AUG-1950 06:00  
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:36      ...       1:3
+             days since 01-JAN-1900 00:00:00 on grid FTI1 with -1.E+34 for missing data
+             F=16-NOV-1949 18:00:15-AUG-1950 06:00  
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+               on grid GFN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  F=16-NOV-1949 18:00:15-AUG-1950 06:00  
+ FCST_3   another variable                 1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+               on grid GFN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  F=16-NOV-1949 18:00:15-AUG-1950 06:00  
+ 
+  time range: 15.214 to 1080.2
+ 
+          Member datasets:
+      22.1: tue_f01
+      22.2: tue_f02
+      22.3: tue_f03
+ 
+! The time-union-ensemble-forecast aggregation
+ 
+set data tuef
+show data tuef
+     currently SET data sets:
+   22> tuef  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:36      ...       1:3
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+ FCST_3   another variable                 1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+ 
+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
+ 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
+ TF_CAL_F  FORECAST             3 i   01-JAN-1950 00:00    01-JUL-1950 00:00   full
+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
+ 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
+ TF_CAL_F  FORECAST             3 i   01-JAN-1950 00:00    01-JUL-1950 00:00   full
+ 
+! simplest acess -- compact form -- just demonstrate it doesn't fail
+stat/brief fcst[i=11:12, j=5:6, l=31:32, m=1:2, n=2:3]
+ 
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad  data: 0
+ Minimum value: 224.8
+ Maximum value: 237.7
+ Mean    value: 228.19 (unweighted average)
+stat/brief fcst_3[i=11:12, j=5:6, l=31:32, m=1:2, n=2:3]
+ 
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad  data: 0
+ Minimum value: 227.8
+ Maximum value: 240.74
+ Mean    value: 231.21 (unweighted average)
+ 
+! diagonal forecast view of ensemble mean
+let diag_fcst = fcst[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]
+shade/x=150E/y=15n diag_fcst[m=1:2 at ave]
+ 
+let diag_fcst_3 = fcst_3[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]
+shade/x=150E/y=15n diag_fcst[m=1:2 at ave]
+ 
+! the difference will be just a small variation from the value 3
+let diff_of_union = diag_fcst - diag_fcst_3
+ 
+shade/x=150E/y=15n  diff_of_union[m=1:2 at ave]
+CANCEL DATA/ALL
+ 
+ 
+ 
+GO bn_reset bn_ez_noupcase
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ez_noupcase
+GO bn_ez_noupcase
+! bn_ez_noupcase.jnl
+! 7/2016 *acm* see ticket 2454
+!
+! Handle variable-name upcasing for Ascii data
+! in the same way as for netcdf variables.
+! Previously they were resolutely up-cased and the
+! lowercase version was unavailable.
+ 
+can mode upcase
+ 
+let abc = {2,4,6,8,6}
+list/clobber/nohead/norow/file=abc.dat abc
+can var/all
+file/var=abc abc.dat
+sh dat
+     currently SET data sets:
+    1> ./abc.dat  (default)
+ name     title                             I         J         K         L
+ abc      abc                              1:5       ...       ...       ...
+ 
+sh dat/att
+     currently SET data sets:
+    1> ./abc.dat  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        7    F       abc.dat
+  
+ abc                   FLOAT     long_name       CHAR        3    T       abc
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+save/clobber/file=a.nc abc
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	AX043 = 5 ;
+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 ;
+		abc:long_name = "abc" ;
+		abc:history = "From abc.dat" ;
+
+// global attributes:
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+! Delimited read
+columns/skip=1/var="lab,nothing,var,latitude,longitude"/type="text,text,num,latitude,longitude" bn_delimited_read_1.dat
+sh dat
+     currently SET data sets:
+    1> ./abc.dat
+ name     title                             I         J         K         L
+ abc      abc                              1:5       ...       ...       ...
+ 
+    2> ./bn_delimited_read_1.dat  (default)
+ name     title                             I         J         K         L
+ lab      lab                              1:7       ...       ...       ...
+ nothing  nothing                          1:7       ...       ...       ...
+ var      var                              1:7       ...       ...       ...
+ latitude latitude                         1:7       ...       ...       ...
+       (Latitude)
+ longitude
+          longitude                        1:7       ...       ...       ...
+       (Longitude)
+ 
+sh dat/att
+     currently SET data sets:
+    1> ./abc.dat
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        7    F       abc.dat
+  
+ abc                   FLOAT     long_name       CHAR        3    T       abc
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+    2> ./bn_delimited_read_1.dat  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               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
+  
+ nothing               CHAR      long_name       CHAR        7    T       nothing
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ var                   FLOAT     long_name       CHAR        3    T       var
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ latitude              FLOAT     long_name       CHAR        8    T       latitude
+                                 units           CHAR        13   T       degrees_north
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ longitude             FLOAT     long_name       CHAR        9    T       longitude
+                                 units           CHAR        12   T       degrees_east
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+sav/file=a.nc/clobber var,longitude,latitude
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	AX103 = 6 ;
+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 ;
+		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 ;
+		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 ;
+		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) 11-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+set mode/last upcase
+ 
+GO bn_reset bn_spawn_fail
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_spawn_fail
+GO bn_spawn_fail
+! bn_spawn_fail.jnl
+!  See ticket 2453
+!  If a no-success flag is returned from a SPAWN,
+!  report that as a warning.
+!  8/2016 *acm*
+ 
+sp ls notafile.nowhere
+sp grep "this text is not in the file" bn_all.jnl
+sp rm nothing.dat
+sp grep modulus non_COARDS.cdl
+sp cp nofile.dat not_either.dat
+ 
+GO bn_reset bn_ave_of_ave
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ave_of_ave
+GO bn_ave_of_ave
+! bn_ave_of_ave.jnl
+! see ticket 2469
+ 
+let a = x[gx=1:3:1] + t[gt=1:7:1]
+let a_xav = a[x=@ave]
+let a_dev = a - a_xav
+ 
+list a_dev[x=@ave]
+             VARIABLE : A - A_XAV
+             SUBSET   : 7 points (T)
+             X        : 0.5 to 3.5 (averaged)
+ 1   / 1:  0.0000000
+ 2   / 2:  0.0000000
+ 3   / 3:  0.0000000
+ 4   / 4:  0.0000000
+ 5   / 5:  0.0000000
+ 6   / 6:  0.0000000
+ 7   / 7:  0.0000000
+ 
+! Previously this was an error
+list a[x=@ave] - a_xav[x=@ave]
+             VARIABLE : A[X=@AVE] - A_XAV[X=@AVE]
+             SUBSET   : 7 points (T)
+             X        : 0.5 to 3.5
+ 1   / 1:  0.0000000
+ 2   / 2:  0.0000000
+ 3   / 3:  0.0000000
+ 4   / 4:  0.0000000
+ 5   / 5:  0.0000000
+ 6   / 6:  0.0000000
+ 7   / 7:  0.0000000
+ 
+! Combine with functions, regridding
+let a = x[gx=1:3:1] + t[gt=1:7:1]
+let a_xav = a[x=@ave]
+let a_xav_xav = a_xav[x=@ave]
+let b = samplel(a_xav_xav, l[gl=1:3:1])
+let c = b[gt=1:3:1]
+ 
+! Previously an error
+list c
+             VARIABLE : B[GT=1:3:1]
+             SUBSET   : 3 points (T)
+ 1   / 1:  3.000000
+ 2   / 2:  4.000000
+ 3   / 3:  5.000000
+ 
+! Likewise for @SUM, @MIN, @MAX.
+ 
+let a = TSEQUENCE({1,2,3})
+let a_xtrns = a[t=@SUM]
+list a[t=@SUM] - a_xtrns[t=@SUM]
+             VARIABLE : A[T=@SUM] - A_XTRNS[T=@SUM]
+             T        : 0.5 to 3.5
+          0.0000000
+ 
+let a_xtrns = a[t=@MIN]
+list a[t=@MIN] - a_xtrns[t=@MIN]
+             VARIABLE : A[T=@MIN] - A_XTRNS[T=@MIN]
+             T        : 0.5 to 3.5
+          0.0000000
+ 
+let a_xtrns = a[t=@MAX]
+list a[t=@MAX] - a_xtrns[t=@MAX]
+             VARIABLE : A[T=@MAX] - A_XTRNS[T=@MAX]
+             T        : 0.5 to 3.5
+          0.0000000
+ 
+ 
+GO bn_reset bn_agg_member_syntax
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_agg_member_syntax
+GO bn_agg_member_syntax
+! bn_agg_member_syntax
+ 
+! *sh* 11/16
+ 
+! running of this benchmark assumes that a tmp directory has been created
+! and that it contains the aggregation member files created by bn_aggregate_f
+ 
+ 
+! define an 11-member FMRC aggregation
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+fmrc my_fmrc = files
+show data/members my_fmrc   ! /FILES is deprecated
+     currently SET data sets:
+   12> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:11
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ 
+          Member datasets:
+      12.1 : tmp/fcst_1.nc
+      12.2 : tmp/fcst_2.nc
+      12.3 : tmp/fcst_3.nc
+      12.4 : tmp/fcst_4.nc
+      12.5 : tmp/fcst_5.nc
+      12.6 : tmp/fcst_6.nc
+      12.7 : tmp/fcst_7.nc
+      12.8 : tmp/fcst_8.nc
+      12.9 : tmp/fcst_9.nc
+      12.10: tmp/fcst_10.nc
+      12.11: tmp/fcst_11.nc
+ 
+show data 12.3   ! turns out to be dset=5
+     currently SET data sets:
+    5> tmp/fcst_3.nc
+ name     title                             I         J         K         L
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24
+       (L=7:30)
+ FCST_2   another variable                 1:21      1:21      ...       1:24
+       (L=7:30)
+ 
+ 
+! these are now all allowable references to the parent aggregation
+stat fcst[d=12]
+ 
+             FIELD + FCST_ERROR
+             LONGITUDE: 139.5E to 160.5E
+             LATITUDE: 19.5N to 40.5N
+             Z:  N/A
+             MODEL ELAPSED TIME (day): 0 to 729.39
+             E:  N/A
+             FORECAST: 16-NOV-1949 09:36 to 15-AUG-1952 14:24
+             DATA SET: my_fmrc
+ 
+ Total # of data points: 116424 (21*21*1*24*1*11)
+ # flagged as bad  data: 0
+ Minimum value: -1.0038
+ Maximum value: 1.4046
+ Mean    value: 0.13342 (unweighted average)
+ Standard deviation: 0.55306
+stat/br fcst[d=12.]
+ 
+ Total # of data points: 116424 (21*21*1*24*1*11)
+ # flagged as bad  data: 0
+ Minimum value: -1.0038
+ Maximum value: 1.4046
+ Mean    value: 0.13342 (unweighted average)
+stat/br fcst[d=12.0]
+ 
+ Total # of data points: 116424 (21*21*1*24*1*11)
+ # flagged as bad  data: 0
+ Minimum value: -1.0038
+ Maximum value: 1.4046
+ Mean    value: 0.13342 (unweighted average)
+ 
+! reference a member
+stat fcst[d=12.3]
+ 
+             FIELD + FCST_ERROR
+             L=7:30
+             LONGITUDE: 139.5E to 160.5E
+             LATITUDE: 19.5N to 40.5N
+             Z:  N/A
+             TIME: 01-JUL-1950 00:00 to 01-JUL-1952 00:00
+             E:  N/A
+             F:  N/A
+             DATA SET: tmp/fcst_3.nc
+ 
+ Total # of data points: 10584 (21*21*1*24*1*1)
+ # flagged as bad  data: 0
+ Minimum value: -0.9973
+ Maximum value: 1.4046
+ Mean    value: 0.1338 (unweighted average)
+ Standard deviation: 0.54369
+stat fcst[d=12.3] - fcst[d=5]   ! v-v=0
+ 
+             FCST[D=fcst_3.nc] - FCST[D=fcst_3.nc]
+             LONGITUDE: 139.5E to 160.5E
+             LATITUDE: 19.5N to 40.5N
+             Z:  N/A
+             TIME: 01-JUL-1950 00:00 to 01-JUL-1952 00:00
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 10584 (21*21*1*24*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ Standard deviation: 0
+ 
+! note that FMRC members have distinct time axes. Specify "L=1"
+stat fcst[d=12.3,l=1] - fcst[d=12.1,l=1]
+ 
+             FCST[D=fcst_3.nc,L=1] - FCST[D=fcst_1.nc,L=1]
+             LONGITUDE: 139.5E to 160.5E
+             LATITUDE: 19.5N to 40.5N
+             Z:  N/A
+             TIME: 16-JUL-1950 12:00
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 441 (21*21*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: -0.12028
+ Maximum value: 0.12005
+ Mean    value: -0.007033 (unweighted average)
+ Standard deviation: 0.07443
+ 
+! deliberate errors
+set mode ignore
+ 
+stat/br fcst[d=5.3]       ! d=5 is not an aggregation
+stat/br fcst[d=12.30]     ! not this many members
+stat/br fcst[d=12.300000]
+ 
+set mode/last ignore
+ 
+cancel data/all
+cancel var/all
+ 
+! Tests for Ensembles
+let files = SPAWN("ls -1 ens*.nc")
+ensemble my_ens = files
+sh data/members my_ens
+     currently SET data sets:
+    5> my_ens  (default)  Ensemble aggregation
+ name     title                             I         J         K         L         M         N
+ SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
+ 
+          Member datasets:
+      5.1: ./ens1.nc
+      5.2: ./ens2.nc
+      5.3: ./ens3.nc
+      5.4: ./ens4.nc
+ 
+show data 5.3
+     currently SET data sets:
+    3> ./ens3.nc
+ name     title                             I         J         K         L
+ SST      SST_IN                           1:10      1:9       ...       1:12
+ 
+stat sst[d=5]
+ 
+             SST_IN
+             LONGITUDE: 110W to 90W
+             LATITUDE: 12N to 30N
+             Z:  N/A
+             TIME: 01-JAN 00:45 to 31-DEC 06:34
+             E (realization): 0.5 to 4.5 (ens1.nc)
+             F:  N/A
+             DATA SET: my_ens
+ 
+ Total # of data points: 4320 (10*9*1*12*4*1)
+ # flagged as bad  data: 1156
+ Minimum value: 16.844
+ Maximum value: 123.32
+ Mean    value: 67.406 (unweighted average)
+ Standard deviation: 30.975
+stat sst[d=5.2]
+ 
+             SST_IN
+             LONGITUDE: 110W to 90W
+             LATITUDE: 12N to 30N
+             Z:  N/A
+             TIME: 01-JAN 00:45 to 31-DEC 06:34
+             E:  N/A
+             F:  N/A
+             DATA SET: ./ens2.nc
+ 
+ Total # of data points: 1080 (10*9*1*12*1*1)
+ # flagged as bad  data: 289
+ Minimum value: 33.688
+ Maximum value: 61.66
+ Mean    value: 53.925 (unweighted average)
+ Standard deviation: 5.1904
+ 
+can data my_ens
+ 
+! do them in another order
+ENSEMBLE fourfiles = ens1, ens3, ens2, ens4
+ 
+! not this is dataset 2
+show data 5.3
+     currently SET data sets:
+    3> ./ens2.nc
+ name     title                             I         J         K         L
+ SST      SST_IN                           1:10      1:9       ...       1:12
+ 
+ 
+stat sst[d=5] - sst[d=5.3]   ! ensemble minus member #3
+ 
+             SST[D=fourfiles] - SST[D=ens2]
+             LONGITUDE: 110W to 90W
+             LATITUDE: 12N to 30N
+             Z:  N/A
+             TIME: 01-JAN 00:45 to 31-DEC 06:34
+             E (realization): 0.5 to 4.5
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 4320 (10*9*1*12*4*1)
+ # flagged as bad  data: 1156
+ Minimum value: -30.83
+ Maximum value: 61.66
+ Mean    value: 13.481 (unweighted average)
+ Standard deviation: 30.317
+ 
+! deliberate errors
+set mode ignore
+ 
+stat/br sst[d=4.1]     ! not an ensemble
+stat/br sst[d=5.30]    ! not this many members
+ 
+set mode/last ignore
+ 
+ 
+GO bn_reset bn_true_monthly
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_true_monthly
+GO bn_true_monthly
+! 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
+! When writing a TRUEMONTH axis, write the correct coordinates using the original
+! units if it came from a dataset, or using units of days if it's user-defined.
+ 
+! See known error conditions below
+ 
+ 
+! For comparison, define regularly-spaced monthly axis of the sort we've always defined
+ 
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2000/units=month/edges t_reg_month
+sh axis/t t_reg_month
+ name       axis              # pts   start                end
+ T_REG_MONTH TIME              19 r   16-JAN-2010 05:14    18-JUL-2011 01:58
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (MONTH)
+       1>  16-JAN-2010 05:14:33  1          01-JAN-2010 00:00:00   120.5189
+       2>  15-FEB-2010 15:43:39  1          31-JAN-2010 10:29:06   121.5189
+       3>  18-MAR-2010 02:12:45  1          02-MAR-2010 20:58:12   122.5189
+       4>  17-APR-2010 12:41:51  1          02-APR-2010 07:27:18   123.5189
+       5>  17-MAY-2010 23:10:57  1          02-MAY-2010 17:56:24   124.5189
+       6>  17-JUN-2010 09:40:03  1          02-JUN-2010 04:25:30   125.5189
+       7>  17-JUL-2010 20:09:09  1          02-JUL-2010 14:54:36   126.5189
+       8>  17-AUG-2010 06:38:15  1          02-AUG-2010 01:23:42   127.5189
+       9>  16-SEP-2010 17:07:21  1          01-SEP-2010 11:52:48   128.5189
+      10>  17-OCT-2010 03:36:27  1          01-OCT-2010 22:21:54   129.5189
+      11>  16-NOV-2010 14:05:33  1          01-NOV-2010 08:51:00   130.5189
+      12>  17-DEC-2010 00:34:39  1          01-DEC-2010 19:20:06   131.5189
+      13>  16-JAN-2011 11:03:45  1          01-JAN-2011 05:49:12   132.5189
+      14>  15-FEB-2011 21:32:51  1          31-JAN-2011 16:18:18   133.5189
+      15>  18-MAR-2011 08:01:57  1          03-MAR-2011 02:47:24   134.5189
+      16>  17-APR-2011 18:31:03  1          02-APR-2011 13:16:30   135.5189
+      17>  18-MAY-2011 05:00:09  1          02-MAY-2011 23:45:36   136.5189
+      18>  17-JUN-2011 15:29:15  1          02-JUN-2011 10:14:42   137.5189
+      19>  18-JUL-2011 01:58:21  1          02-JUL-2011 20:43:48   138.5189
+ 
+! true-monthly axes, t0 at start of axis
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2010/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2010             JUL-2011 (True Monthly)
+T0 = 1-JAN-2010
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2010              31         01-JAN-2010           0
+       2>  FEB-2010              28         01-FEB-2010           1
+       3>  MAR-2010              31         01-MAR-2010           2
+       4>  APR-2010              30         01-APR-2010           3
+       5>  MAY-2010              31         01-MAY-2010           4
+       6>  JUN-2010              30         01-JUN-2010           5
+       7>  JUL-2010              31         01-JUL-2010           6
+       8>  AUG-2010              31         01-AUG-2010           7
+       9>  SEP-2010              30         01-SEP-2010           8
+      10>  OCT-2010              31         01-OCT-2010           9
+      11>  NOV-2010              30         01-NOV-2010           10
+      12>  DEC-2010              31         01-DEC-2010           11
+      13>  JAN-2011              31         01-JAN-2011           12
+      14>  FEB-2011              28         01-FEB-2011           13
+      15>  MAR-2011              31         01-MAR-2011           14
+      16>  APR-2011              30         01-APR-2011           15
+      17>  MAY-2011              31         01-MAY-2011           16
+      18>  JUN-2011              30         01-JUN-2011           17
+      19>  JUL-2011              31         01-JUL-2011           18
+ 
+! t0 before start of axis
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2010             JUL-2011 (True Monthly)
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2010              31         01-JAN-2010           120
+       2>  FEB-2010              28         01-FEB-2010           121
+       3>  MAR-2010              31         01-MAR-2010           122
+       4>  APR-2010              30         01-APR-2010           123
+       5>  MAY-2010              31         01-MAY-2010           124
+       6>  JUN-2010              30         01-JUN-2010           125
+       7>  JUL-2010              31         01-JUL-2010           126
+       8>  AUG-2010              31         01-AUG-2010           127
+       9>  SEP-2010              30         01-SEP-2010           128
+      10>  OCT-2010              31         01-OCT-2010           129
+      11>  NOV-2010              30         01-NOV-2010           130
+      12>  DEC-2010              31         01-DEC-2010           131
+      13>  JAN-2011              31         01-JAN-2011           132
+      14>  FEB-2011              28         01-FEB-2011           133
+      15>  MAR-2011              31         01-MAR-2011           134
+      16>  APR-2011              30         01-APR-2011           135
+      17>  MAY-2011              31         01-MAY-2011           136
+      18>  JUN-2011              30         01-JUN-2011           137
+      19>  JUL-2011              31         01-JUL-2011           138
+ 
+! default time origin is start of month of first month
+define axis/t=1-jul-2010:1-jan-2012:1/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JUL-2010             JAN-2012 (True Monthly)
+T0 = 01-JAN-2010
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JUL-2010              31         01-JUL-2010           6
+       2>  AUG-2010              31         01-AUG-2010           7
+       3>  SEP-2010              30         01-SEP-2010           8
+       4>  OCT-2010              31         01-OCT-2010           9
+       5>  NOV-2010              30         01-NOV-2010           10
+       6>  DEC-2010              31         01-DEC-2010           11
+       7>  JAN-2011              31         01-JAN-2011           12
+       8>  FEB-2011              28         01-FEB-2011           13
+       9>  MAR-2011              31         01-MAR-2011           14
+      10>  APR-2011              30         01-APR-2011           15
+      11>  MAY-2011              31         01-MAY-2011           16
+      12>  JUN-2011              30         01-JUN-2011           17
+      13>  JUL-2011              31         01-JUL-2011           18
+      14>  AUG-2011              31         01-AUG-2011           19
+      15>  SEP-2011              30         01-SEP-2011           20
+      16>  OCT-2011              31         01-OCT-2011           21
+      17>  NOV-2011              30         01-NOV-2011           22
+      18>  DEC-2011              31         01-DEC-2011           23
+      19>  JAN-2012              31         01-JAN-2012           24
+ 
+! Cell edges at mid-month
+define axis/t=15-mar-2010:15-dec-2011:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                22 i   MAR-2010             DEC-2011 (True Monthly)
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 22
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2010              31         01-MAR-2010           122
+       2>  APR-2010              30         01-APR-2010           123
+       3>  MAY-2010              31         01-MAY-2010           124
+       4>  JUN-2010              30         01-JUN-2010           125
+       5>  JUL-2010              31         01-JUL-2010           126
+       6>  AUG-2010              31         01-AUG-2010           127
+       7>  SEP-2010              30         01-SEP-2010           128
+       8>  OCT-2010              31         01-OCT-2010           129
+       9>  NOV-2010              30         01-NOV-2010           130
+      10>  DEC-2010              31         01-DEC-2010           131
+      11>  JAN-2011              31         01-JAN-2011           132
+      12>  FEB-2011              28         01-FEB-2011           133
+      13>  MAR-2011              31         01-MAR-2011           134
+      14>  APR-2011              30         01-APR-2011           135
+      15>  MAY-2011              31         01-MAY-2011           136
+      16>  JUN-2011              30         01-JUN-2011           137
+      17>  JUL-2011              31         01-JUL-2011           138
+      18>  AUG-2011              31         01-AUG-2011           139
+      19>  SEP-2011              30         01-SEP-2011           140
+      20>  OCT-2011              31         01-OCT-2011           141
+      21>  NOV-2011              30         01-NOV-2011           142
+      22>  DEC-2011              31         01-DEC-2011           143
+ 
+! other calendars JULIAN
+define axis/cal=julian/t=1-jan-2011:31-jul-2012:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2011             JUL-2012 (True Monthly)
+T0 = 1-JAN-2000
+CALENDAR = JULIAN
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2011              31         01-JAN-2011           132
+       2>  FEB-2011              28         01-FEB-2011           133
+       3>  MAR-2011              31         01-MAR-2011           134
+       4>  APR-2011              30         01-APR-2011           135
+       5>  MAY-2011              31         01-MAY-2011           136
+       6>  JUN-2011              30         01-JUN-2011           137
+       7>  JUL-2011              31         01-JUL-2011           138
+       8>  AUG-2011              31         01-AUG-2011           139
+       9>  SEP-2011              30         01-SEP-2011           140
+      10>  OCT-2011              31         01-OCT-2011           141
+      11>  NOV-2011              30         01-NOV-2011           142
+      12>  DEC-2011              31         01-DEC-2011           143
+      13>  JAN-2012              31         01-JAN-2012           144
+      14>  FEB-2012              29         01-FEB-2012           145
+      15>  MAR-2012              31         01-MAR-2012           146
+      16>  APR-2012              30         01-APR-2012           147
+      17>  MAY-2012              31         01-MAY-2012           148
+      18>  JUN-2012              30         01-JUN-2012           149
+      19>  JUL-2012              31         01-JUL-2012           150
+ 
+! default time origin
+define axis/cal=julian/t=15-mar-2010:15-dec-2011:1/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                22 i   MAR-2010             DEC-2011 (True Monthly)
+T0 = 01-JAN-2010
+CALENDAR = JULIAN
+   Axis span (to cell edges) = 22
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2010              31         01-MAR-2010           2
+       2>  APR-2010              30         01-APR-2010           3
+       3>  MAY-2010              31         01-MAY-2010           4
+       4>  JUN-2010              30         01-JUN-2010           5
+       5>  JUL-2010              31         01-JUL-2010           6
+       6>  AUG-2010              31         01-AUG-2010           7
+       7>  SEP-2010              30         01-SEP-2010           8
+       8>  OCT-2010              31         01-OCT-2010           9
+       9>  NOV-2010              30         01-NOV-2010           10
+      10>  DEC-2010              31         01-DEC-2010           11
+      11>  JAN-2011              31         01-JAN-2011           12
+      12>  FEB-2011              28         01-FEB-2011           13
+      13>  MAR-2011              31         01-MAR-2011           14
+      14>  APR-2011              30         01-APR-2011           15
+      15>  MAY-2011              31         01-MAY-2011           16
+      16>  JUN-2011              30         01-JUN-2011           17
+      17>  JUL-2011              31         01-JUL-2011           18
+      18>  AUG-2011              31         01-AUG-2011           19
+      19>  SEP-2011              30         01-SEP-2011           20
+      20>  OCT-2011              31         01-OCT-2011           21
+      21>  NOV-2011              30         01-NOV-2011           22
+      22>  DEC-2011              31         01-DEC-2011           23
+ 
+! other calendars NOLEAP
+define axis/cal=noleap/t=1-jan-2011:31-jul-2012:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2011             JUL-2012 (True Monthly)
+T0 = 1-JAN-2000
+CALENDAR = NOLEAP
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2011              31         01-JAN-2011           132
+       2>  FEB-2011              28         01-FEB-2011           133
+       3>  MAR-2011              31         01-MAR-2011           134
+       4>  APR-2011              30         01-APR-2011           135
+       5>  MAY-2011              31         01-MAY-2011           136
+       6>  JUN-2011              30         01-JUN-2011           137
+       7>  JUL-2011              31         01-JUL-2011           138
+       8>  AUG-2011              31         01-AUG-2011           139
+       9>  SEP-2011              30         01-SEP-2011           140
+      10>  OCT-2011              31         01-OCT-2011           141
+      11>  NOV-2011              30         01-NOV-2011           142
+      12>  DEC-2011              31         01-DEC-2011           143
+      13>  JAN-2012              31         01-JAN-2012           144
+      14>  FEB-2012              28         01-FEB-2012           145
+      15>  MAR-2012              31         01-MAR-2012           146
+      16>  APR-2012              30         01-APR-2012           147
+      17>  MAY-2012              31         01-MAY-2012           148
+      18>  JUN-2012              30         01-JUN-2012           149
+      19>  JUL-2012              31         01-JUL-2012           150
+ 
+! not at first of month
+define axis/cal=julian/t=15-mar-2010:15-dec-2011:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                22 i   MAR-2010             DEC-2011 (True Monthly)
+T0 = 1-JAN-2000
+CALENDAR = JULIAN
+   Axis span (to cell edges) = 22
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2010              31         01-MAR-2010           122
+       2>  APR-2010              30         01-APR-2010           123
+       3>  MAY-2010              31         01-MAY-2010           124
+       4>  JUN-2010              30         01-JUN-2010           125
+       5>  JUL-2010              31         01-JUL-2010           126
+       6>  AUG-2010              31         01-AUG-2010           127
+       7>  SEP-2010              30         01-SEP-2010           128
+       8>  OCT-2010              31         01-OCT-2010           129
+       9>  NOV-2010              30         01-NOV-2010           130
+      10>  DEC-2010              31         01-DEC-2010           131
+      11>  JAN-2011              31         01-JAN-2011           132
+      12>  FEB-2011              28         01-FEB-2011           133
+      13>  MAR-2011              31         01-MAR-2011           134
+      14>  APR-2011              30         01-APR-2011           135
+      15>  MAY-2011              31         01-MAY-2011           136
+      16>  JUN-2011              30         01-JUN-2011           137
+      17>  JUL-2011              31         01-JUL-2011           138
+      18>  AUG-2011              31         01-AUG-2011           139
+      19>  SEP-2011              30         01-SEP-2011           140
+      20>  OCT-2011              31         01-OCT-2011           141
+      21>  NOV-2011              30         01-NOV-2011           142
+      22>  DEC-2011              31         01-DEC-2011           143
+ 
+! other calendars 360_day
+define axis/cal=360_day/t=1-jan-2010:30-jul-2011:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 r   JAN-2010             JUL-2011 (True Monthly)
+T0 = 1-JAN-2000
+CALENDAR = 360_DAY
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2010              30         01-JAN-2010           120
+       2>  FEB-2010              30         01-FEB-2010           121
+       3>  MAR-2010              30         01-MAR-2010           122
+       4>  APR-2010              30         01-APR-2010           123
+       5>  MAY-2010              30         01-MAY-2010           124
+       6>  JUN-2010              30         01-JUN-2010           125
+       7>  JUL-2010              30         01-JUL-2010           126
+       8>  AUG-2010              30         01-AUG-2010           127
+       9>  SEP-2010              30         01-SEP-2010           128
+      10>  OCT-2010              30         01-OCT-2010           129
+      11>  NOV-2010              30         01-NOV-2010           130
+      12>  DEC-2010              30         01-DEC-2010           131
+      13>  JAN-2011              30         01-JAN-2011           132
+      14>  FEB-2011              30         01-FEB-2011           133
+      15>  MAR-2011              30         01-MAR-2011           134
+      16>  APR-2011              30         01-APR-2011           135
+      17>  MAY-2011              30         01-MAY-2011           136
+      18>  JUN-2011              30         01-JUN-2011           137
+      19>  JUL-2011              30         01-JUL-2011           138
+ 
+! Writing data, including a leap year
+ 
+define axis/t=3-mar-2011:3-jan-2013:1/monthly/t0=1-jan-2010 taxis
+def var tt = t[gt=taxis]
+save/clobber/file=a.nc tt
+ 
+can var/all
+use a
+sh dat/att
+     currently SET data sets:
+    1> ./a.nc  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+                                 Conventions     CHAR        6    F       CF-1.6
+  
+(TAXIS1)               DOUBLE    axis            CHAR        1    T       T
+                                 bounds          CHAR        10   T       TAXIS_bnds
+                                 time_origin     CHAR        10   T       1-JAN-2010
+                                 units           CHAR        30   T       days since 2010-01-01 00:00:00
+                                 standard_name   CHAR        4    F       time
+                                 orig_file_axname
+                                                 CHAR        5    F       TAXIS
+  
+ TAXIS_bnds            DOUBLE
+  
+ TT                    DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
+                                 _FillValue      DOUBLE      1    T       -1.E+34
+                                 long_name       CHAR        11   T       T[GT=TAXIS]
+  
+sh grid tt
+    GRID GSI1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TAXIS1    TIME                23 i   16-MAR-2011 12:00    16-JAN-2013 12:00   full
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                23 i   MAR-2011             JAN-2013 (True Monthly)
+T0 = 1-JAN-2010
+   Axis span (to cell edges) = 23
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2011              31         01-MAR-2011           14
+       2>  APR-2011              30         01-APR-2011           15
+       3>  MAY-2011              31         01-MAY-2011           16
+       4>  JUN-2011              30         01-JUN-2011           17
+       5>  JUL-2011              31         01-JUL-2011           18
+       6>  AUG-2011              31         01-AUG-2011           19
+       7>  SEP-2011              30         01-SEP-2011           20
+       8>  OCT-2011              31         01-OCT-2011           21
+       9>  NOV-2011              30         01-NOV-2011           22
+      10>  DEC-2011              31         01-DEC-2011           23
+      11>  JAN-2012              31         01-JAN-2012           24
+      12>  FEB-2012              29         01-FEB-2012           25
+      13>  MAR-2012              31         01-MAR-2012           26
+      14>  APR-2012              30         01-APR-2012           27
+      15>  MAY-2012              31         01-MAY-2012           28
+      16>  JUN-2012              30         01-JUN-2012           29
+      17>  JUL-2012              31         01-JUL-2012           30
+      18>  AUG-2012              31         01-AUG-2012           31
+      19>  SEP-2012              30         01-SEP-2012           32
+      20>  OCT-2012              31         01-OCT-2012           33
+      21>  NOV-2012              30         01-NOV-2012           34
+      22>  DEC-2012              31         01-DEC-2012           35
+      23>  JAN-2013              31         01-JAN-2013           36
+ 
+can dat/all
+ 
+define axis/t=3-mar-2011:3-jan-2013:1/monthly/t0=1-jan-2010/calendar=julian taxis
+def var tt = t[gt=taxis]
+save/clobber/file=a.nc tt
+ 
+can var/all
+use a
+sh dat/att
+     currently SET data sets:
+    1> ./a.nc  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+                                 Conventions     CHAR        6    F       CF-1.6
+  
+(TAXIS1)               DOUBLE    axis            CHAR        1    T       T
+                                 bounds          CHAR        10   T       TAXIS_bnds
+                                 time_origin     CHAR        10   T       1-JAN-2010
+                                 calendar        CHAR        6    T       JULIAN
+                                 units           CHAR        30   T       days since 2010-01-01 00:00:00
+                                 standard_name   CHAR        4    F       time
+                                 orig_file_axname
+                                                 CHAR        5    F       TAXIS
+  
+ TAXIS_bnds            DOUBLE
+  
+ TT                    DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
+                                 _FillValue      DOUBLE      1    T       -1.E+34
+                                 long_name       CHAR        11   T       T[GT=TAXIS]
+  
+sh grid tt
+    GRID GSI1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TAXIS1    TIME                23 i   16-MAR-2011 12:00    16-JAN-2013 12:00   full
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                23 i   MAR-2011             JAN-2013 (True Monthly)
+T0 = 1-JAN-2010
+CALENDAR = JULIAN
+   Axis span (to cell edges) = 23
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2011              31         01-MAR-2011           14
+       2>  APR-2011              30         01-APR-2011           15
+       3>  MAY-2011              31         01-MAY-2011           16
+       4>  JUN-2011              30         01-JUN-2011           17
+       5>  JUL-2011              31         01-JUL-2011           18
+       6>  AUG-2011              31         01-AUG-2011           19
+       7>  SEP-2011              30         01-SEP-2011           20
+       8>  OCT-2011              31         01-OCT-2011           21
+       9>  NOV-2011              30         01-NOV-2011           22
+      10>  DEC-2011              31         01-DEC-2011           23
+      11>  JAN-2012              31         01-JAN-2012           24
+      12>  FEB-2012              29         01-FEB-2012           25
+      13>  MAR-2012              31         01-MAR-2012           26
+      14>  APR-2012              30         01-APR-2012           27
+      15>  MAY-2012              31         01-MAY-2012           28
+      16>  JUN-2012              30         01-JUN-2012           29
+      17>  JUL-2012              31         01-JUL-2012           30
+      18>  AUG-2012              31         01-AUG-2012           31
+      19>  SEP-2012              30         01-SEP-2012           32
+      20>  OCT-2012              31         01-OCT-2012           33
+      21>  NOV-2012              30         01-NOV-2012           34
+      22>  DEC-2012              31         01-DEC-2012           35
+      23>  JAN-2013              31         01-JAN-2013           36
+ 
+can dat/all
+ 
+define axis/t=3-mar-2011:3-jan-2013:1/monthly/t0=1-jan-2010/calendar=360_day taxis
+def var tt = t[gt=taxis]
+save/clobber/file=a.nc tt
+ 
+can var/all
+use a
+sh dat/att
+     currently SET data sets:
+    1> ./a.nc  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
+                                 Conventions     CHAR        6    F       CF-1.6
+  
+(TAXIS1)               DOUBLE    axis            CHAR        1    T       T
+                                 bounds          CHAR        10   T       TAXIS_bnds
+                                 time_origin     CHAR        10   T       1-JAN-2010
+                                 calendar        CHAR        7    T       360_DAY
+                                 units           CHAR        30   T       days since 2010-01-01 00:00:00
+                                 standard_name   CHAR        4    F       time
+                                 orig_file_axname
+                                                 CHAR        5    F       TAXIS
+  
+ TAXIS_bnds            DOUBLE
+  
+ TT                    DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
+                                 _FillValue      DOUBLE      1    T       -1.E+34
+                                 long_name       CHAR        11   T       T[GT=TAXIS]
+  
+sh grid tt
+    GRID GSI1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TAXIS1    TIME                22 r   16-MAR-2011 00:00    16-DEC-2012 00:00   full
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                22 r   MAR-2011             DEC-2012 (True Monthly)
+T0 = 1-JAN-2010
+CALENDAR = 360_DAY
+   Axis span (to cell edges) = 22
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2011              30         01-MAR-2011           14
+       2>  APR-2011              30         01-APR-2011           15
+       3>  MAY-2011              30         01-MAY-2011           16
+       4>  JUN-2011              30         01-JUN-2011           17
+       5>  JUL-2011              30         01-JUL-2011           18
+       6>  AUG-2011              30         01-AUG-2011           19
+       7>  SEP-2011              30         01-SEP-2011           20
+       8>  OCT-2011              30         01-OCT-2011           21
+       9>  NOV-2011              30         01-NOV-2011           22
+      10>  DEC-2011              30         01-DEC-2011           23
+      11>  JAN-2012              30         01-JAN-2012           24
+      12>  FEB-2012              30         01-FEB-2012           25
+      13>  MAR-2012              30         01-MAR-2012           26
+      14>  APR-2012              30         01-APR-2012           27
+      15>  MAY-2012              30         01-MAY-2012           28
+      16>  JUN-2012              30         01-JUN-2012           29
+      17>  JUL-2012              30         01-JUL-2012           30
+      18>  AUG-2012              30         01-AUG-2012           31
+      19>  SEP-2012              30         01-SEP-2012           32
+      20>  OCT-2012              30         01-OCT-2012           33
+      21>  NOV-2012              30         01-NOV-2012           34
+      22>  DEC-2012              30         01-DEC-2012           35
+ 
+! Without date range spec,
+def axis/monthly/t0=1-jan-0000/t=1:24:1 taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                24 i   JAN-0000             DEC-0001 (True Monthly)
+T0 = 1-JAN-0000
+   Axis span (to cell edges) = 24
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-0000              31         01-JAN-0000           0
+       2>  FEB-0000              29         01-FEB-0000           1
+       3>  MAR-0000              31         01-MAR-0000           2
+       4>  APR-0000              30         01-APR-0000           3
+       5>  MAY-0000              31         01-MAY-0000           4
+       6>  JUN-0000              30         01-JUN-0000           5
+       7>  JUL-0000              31         01-JUL-0000           6
+       8>  AUG-0000              31         01-AUG-0000           7
+       9>  SEP-0000              30         01-SEP-0000           8
+      10>  OCT-0000              31         01-OCT-0000           9
+      11>  NOV-0000              30         01-NOV-0000           10
+      12>  DEC-0000              31         01-DEC-0000           11
+      13>  JAN-0001              31         01-JAN-0001           12
+      14>  FEB-0001              28         01-FEB-0001           13
+      15>  MAR-0001              31         01-MAR-0001           14
+      16>  APR-0001              30         01-APR-0001           15
+      17>  MAY-0001              31         01-MAY-0001           16
+      18>  JUN-0001              30         01-JUN-0001           17
+      19>  JUL-0001              31         01-JUL-0001           18
+      20>  AUG-0001              31         01-AUG-0001           19
+      21>  SEP-0001              30         01-SEP-0001           20
+      22>  OCT-0001              31         01-OCT-0001           21
+      23>  NOV-0001              30         01-NOV-0001           22
+      24>  DEC-0001              31         01-DEC-0001           23
+ 
+! With T0 later than year 0
+def axis/monthly/t0=1-jan-2000/t=1:24:1 taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                24 i   JAN-2000             DEC-2001 (True Monthly)
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 24
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2000              31         01-JAN-2000           0
+       2>  FEB-2000              29         01-FEB-2000           1
+       3>  MAR-2000              31         01-MAR-2000           2
+       4>  APR-2000              30         01-APR-2000           3
+       5>  MAY-2000              31         01-MAY-2000           4
+       6>  JUN-2000              30         01-JUN-2000           5
+       7>  JUL-2000              31         01-JUL-2000           6
+       8>  AUG-2000              31         01-AUG-2000           7
+       9>  SEP-2000              30         01-SEP-2000           8
+      10>  OCT-2000              31         01-OCT-2000           9
+      11>  NOV-2000              30         01-NOV-2000           10
+      12>  DEC-2000              31         01-DEC-2000           11
+      13>  JAN-2001              31         01-JAN-2001           12
+      14>  FEB-2001              28         01-FEB-2001           13
+      15>  MAR-2001              31         01-MAR-2001           14
+      16>  APR-2001              30         01-APR-2001           15
+      17>  MAY-2001              31         01-MAY-2001           16
+      18>  JUN-2001              30         01-JUN-2001           17
+      19>  JUL-2001              31         01-JUL-2001           18
+      20>  AUG-2001              31         01-AUG-2001           19
+      21>  SEP-2001              30         01-SEP-2001           20
+      22>  OCT-2001              31         01-OCT-2001           21
+      23>  NOV-2001              30         01-NOV-2001           22
+      24>  DEC-2001              31         01-DEC-2001           23
+ 
+! Default T0, non-calendar t def
+define axis/monthly/t=1:36:1 taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                36 i   JAN-0000             DEC-0002 (True Monthly)
+T0 = 01-JAN-0000
+   Axis span (to cell edges) = 36
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-0000              31         01-JAN-0000           0
+       2>  FEB-0000              29         01-FEB-0000           1
+       3>  MAR-0000              31         01-MAR-0000           2
+       4>  APR-0000              30         01-APR-0000           3
+       5>  MAY-0000              31         01-MAY-0000           4
+       6>  JUN-0000              30         01-JUN-0000           5
+       7>  JUL-0000              31         01-JUL-0000           6
+       8>  AUG-0000              31         01-AUG-0000           7
+       9>  SEP-0000              30         01-SEP-0000           8
+      10>  OCT-0000              31         01-OCT-0000           9
+      11>  NOV-0000              30         01-NOV-0000           10
+      12>  DEC-0000              31         01-DEC-0000           11
+      13>  JAN-0001              31         01-JAN-0001           12
+      14>  FEB-0001              28         01-FEB-0001           13
+      15>  MAR-0001              31         01-MAR-0001           14
+      16>  APR-0001              30         01-APR-0001           15
+      17>  MAY-0001              31         01-MAY-0001           16
+      18>  JUN-0001              30         01-JUN-0001           17
+      19>  JUL-0001              31         01-JUL-0001           18
+      20>  AUG-0001              31         01-AUG-0001           19
+      21>  SEP-0001              30         01-SEP-0001           20
+      22>  OCT-0001              31         01-OCT-0001           21
+      23>  NOV-0001              30         01-NOV-0001           22
+      24>  DEC-0001              31         01-DEC-0001           23
+      25>  JAN-0002              31         01-JAN-0002           24
+      26>  FEB-0002              28         01-FEB-0002           25
+      27>  MAR-0002              31         01-MAR-0002           26
+      28>  APR-0002              30         01-APR-0002           27
+      29>  MAY-0002              31         01-MAY-0002           28
+      30>  JUN-0002              30         01-JUN-0002           29
+      31>  JUL-0002              31         01-JUL-0002           30
+      32>  AUG-0002              31         01-AUG-0002           31
+      33>  SEP-0002              30         31-AUG-0002           32
+      34>  OCT-0002              31         01-OCT-0002           33
+      35>  NOV-0002              30         01-NOV-0002           34
+      36>  DEC-0002              31         01-DEC-0002           35
+ 
+! modulo
+define axis/t=1-jan-2010:31-dec-2010:1/t0=1-jan-2000/monthly/modulo taxis
+ 
+let var = {1,2,3,4,5,6,7,8,9,10,11,12}
+let tvar = reshape(var,t[gt=taxis])
+list/L=1:23 tvar
+             VARIABLE : RESHAPE(VAR,T[GT=TAXIS])
+             SUBSET   : 12 points (TIME)
+ 16-JAN-2010 12 /  1:   1.00000
+ 15-FEB-2010 00 /  2:   2.00000
+ 16-MAR-2010 12 /  3:   3.00000
+ 16-APR-2010 00 /  4:   4.00000
+ 16-MAY-2010 12 /  5:   5.00000
+ 16-JUN-2010 00 /  6:   6.00000
+ 16-JUL-2010 12 /  7:   7.00000
+ 16-AUG-2010 12 /  8:   8.00000
+ 16-SEP-2010 00 /  9:   9.00000
+ 16-OCT-2010 12 / 10:  10.00000
+ 16-NOV-2010 00 / 11:  11.00000
+ 16-DEC-2010 12 / 12:  12.00000
+! *sh* 3/17:  a possible alternative syntax:
+!  let var = TSEQUENCE({1,2,3,4,5,6,7,8,9,10,11,12})
+!  let tvar = var[gt=taxis at asn]
+! Since this is a fairly common need -- creating a line along some axis
+! should we offer a new function AXSEQUENCE(array, axis)  ?
+ 
+! Striding on a monthly axis
+ 
+def axis/monthly/t0=1-jan-2000/t=1-jan-2000:31-dec-2004:1/unit=monthly taxis
+!sh axis/t/l=1:14 taxis
+let tt = t[gt=taxis]
+list tt[l=1:6:2]
+             VARIABLE : T[GT=TAXIS]
+                        regrid: 2 tmon_gregori on T
+             SUBSET   : 3 points (TIME)
+ 16-JAN-2000 / 1:   15.5000
+ 16-MAR-2000 / 2:   75.5000
+ 16-MAY-2000 / 3:  136.5000
+ 
+list/prec=6 tt[l=1:60:12]
+             VARIABLE : T[GT=TAXIS]
+                        regrid: 12 tmon_gregori on T
+             SUBSET   : 5 points (TIME)
+ 16-JAN-2000 / 1:    15.50
+ 16-JAN-2001 / 2:   381.50
+ 16-JAN-2002 / 3:   746.50
+ 16-JAN-2003 / 4:  1111.50
+ 16-JAN-2004 / 5:  1476.50
+ 
+! From a file
+save/file=a.nc/clobber tt
+can dat/all; can var/all
+use a
+list/prec=6 tt[l=1:60:12]
+             VARIABLE : T[GT=TAXIS]
+                        regrid: on T
+             FILENAME : a.nc
+             SUBSET   : 5 points (TIME)
+ APR-2001 / 1:    15.50
+ OCT-2031 / 2:   381.50
+ MAR-2062 / 3:   746.50
+ AUG-2092 / 4:  1111.50
+ JAN-2123 / 5:  1476.50
+ 
+! DEFINE AXIS/MONTHLY warnings and error conditions:
+ 
+! Not an error - /EDGES is ignored, as it's the default
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2000/monthly/edges taxis
+sh axis taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2010             JUL-2011 (True Monthly)
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 19
+ 
+! Not an error - /UNITS=month is the default
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2000/monthly/units=months taxis
+sh axis taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2010             JUL-2011 (True Monthly)
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 19
+ 
+set mode ignore
+! not all months have day 30, cannot start at day 30
+define axis/t=30-mar-2010:30-dec-2011:1/monthly taxis
+ 
+! Units of other than months is an error
+define axis/t=1-jan-2010:31-jul-2011:30/t0=1-jan-2000/monthly/units=days taxis
+ 
+! /NPOINTS, /BOUNDS, /FROMDATA are not allowed. Errors in start:end:del
+define axis/t=1-jan-2010:31-dec-2012:1/t0=1-jan-2000/monthly/npoints=13 taxis
+ 
+! missing delta-t
+define axis/t=1-jan-2010:31-dec-2012/t0=1-jan-2000/monthly taxis
+ 
+! delta-t must be 1
+define axis/t=1-jan-2010:31-dec-2012:2/t0=1-jan-2000/monthly taxis
+ 
+! irregular or from-data
+define axis/t/t0=1-jan-2000/monthly taxis = {123,124,126}
+ 
+define axis/from/t/t0=1-jan-2001/monthly/edges taxis = {5,6,6,6,7}
+ 
+! bounds
+def axis/t/t0=1-jan-2000/monthly/bounds tax={1.2, 2, 3.2, 5, 7, 8.4, 9}, {0.5,1.5, 1.5,2.5, 2.5,3.5, 3.5,6.5, 6.5,7.5, 7.5,8.5, 8.5,9.5}
+ 
+! Must be T direction (do we need /F=?)
+define axis/x=1:5:1/monthly aaxis
+ 
+cancel mode ignore
+ 
+ 
+! *********** v7.2 Additions ***********
+ 
+GO bn_reset bn720_bug_fixes
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn720_bug_fixes
+GO bn720_bug_fixes
+! bn720_bug_fixes.jnl
+! test various fixes that went into version 7.2
+! 2/17 *acm*
+!
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_uvar_strides
+! err710_uvar_strides
+! see ticket 2511: crash when doing strides on the user-variable
+ 
+ 
+use coads_climatology
+ 
+! this is ok using a file variable
+let y_vec = x[gx=sst,x=0:360:30]
+list y_vec
+             VARIABLE : X[GX=SST,X=0:360:30]
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 13 points (LONGITUDE)
+ 0E     /  1:    0.0000
+ 30E    /  2:   30.0000
+ 60E    /  3:   60.0000
+ 90E    /  4:   90.0000
+ 120E   /  5:  120.0000
+ 150E   /  6:  150.0000
+ 180E   /  7:  180.0000
+ 150W   /  8:  210.0000
+ 120W   /  9:  240.0000
+ 90W    / 10:  270.0000
+ 60W    / 11:  300.0000
+ 30W    / 12:  330.0000
+ 0E     / 13:  360.0000
+ 
+! but this gave a crash on loading the variable.
+let s = sst
+let y_vec = x[gx=s,x=0:360:30]
+list y_vec
+             VARIABLE : X[GX=S,X=0:360:30]
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 13 points (X)
+ 0     /  1:    0.0000
+ 30    /  2:   30.0000
+ 60    /  3:   60.0000
+ 90    /  4:   90.0000
+ 120   /  5:  120.0000
+ 150   /  6:  150.0000
+ 180   /  7:  180.0000
+ 210   /  8:  210.0000
+ 240   /  9:  240.0000
+ 270   / 10:  270.0000
+ 300   / 11:  300.0000
+ 330   / 12:  330.0000
+ 360   / 13:  360.0000
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_prec_return
+! err71_prec_return.jnl
+! Ticket 2510, `prec=hh` doesn't work when the data is very
+! near an integer.
+ 
+ 
+let a=1+1e-12
+ 
+! This should show the 001 at the end
+list/nohead/norow/prec=13 `a,prec=13`
+ !-> list/nohead/norow/prec=13 1.000000000001
+   1.000000000001
+ 
+! This does not have the 001 at the end
+list/nohead/norow/prec=13 `a,prec=12`
+ !-> list/nohead/norow/prec=13 1
+   1.000000000000
+ 
+! The example from the ticket, with one more.
+list/nohead/norow/prec=12 {`1 + 0.1`, `1 + 1e-7`, `1 + 1e-8`, `1 + 1e-10`} - 1
+ !-> list/nohead/norow/prec=12 {1.1, 1.0000001, 1.00000001, 1.0000000001} - 1
+   0.100000000000
+   0.000000100000
+   0.000000010000
+   0.000000000100
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_save_rigid
+! err71_save_rigid.jnl
+! Ticket 2513: SAVE/RIGID with irregular axis wrote a bad file.
+ 
+! Define a variable on an irregular axis.
+ 
+let var = {123, 234, 345, 456, 567, 678, 789}
+define axis/t/t0=1-jan-2015/units=day tax = \
+{ 312.1, 312.7, 313.4, 314.2, 314.7, 315.4, 316.1}
+ 
+let vart = reshape(var, t[gt=tax])
+ 
+! Save with /RIGID. Previously this wrote a file with
+! both bounds and edges attributes on the time axis.
+! It wrote the edges variable, not the bounds.
+ 
+! Starting with this version, write bounds if needed when
+! writing with /RIGID. Only write edges if they said /EDGES.
+ 
+save/clobber/rigid/file=a.nc vart
+sp ncdump a.nc
+netcdf a {
+dimensions:
+	TAX = 7 ;
+	bnds = 2 ;
+variables:
+	double TAX(TAX) ;
+		TAX:point_spacing = "uneven" ;
+		TAX:axis = "T" ;
+		TAX:units = "day since 2015-01-01 00:00:00" ;
+		TAX:time_origin = "1-JAN-2015" ;
+		TAX:standard_name = "time" ;
+		TAX:bounds = "TAX_bnds" ;
+	double TAX_bnds(TAX, bnds) ;
+	double VART(TAX) ;
+		VART:missing_value = -1.e+34 ;
+		VART:_FillValue = -1.e+34 ;
+		VART:long_name = "RESHAPE(VAR, T[GT=TAX])" ;
+
+// global attributes:
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+data:
+
+ TAX = 312.1, 312.7, 313.4, 314.2, 314.7, 315.4, 316.1 ;
+
+ TAX_bnds =
+  311.8, 312.4,
+  312.4, 313.05,
+  313.05, 313.8,
+  313.8, 314.45,
+  314.45, 315.05,
+  315.05, 315.75,
+  315.75, 316.45 ;
+
+ VART = 123, 234, 345, 456, 567, 678, 789 ;
+}
+ 
+cancel var/all
+ 
+! The grid was messed up - this gave an error
+use a
+show grid vart
+    GRID GSI1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ 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
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_set_redirect
+! err71_set_redirect.jnl
+! 3/2017 ACM
+! redirect results to a file with a path.
+! See ticket 2521, the path was previously rejected if it contains dashes
+ 
+spawn "mkdir -p sub-dir"
+!
+! Previously this resulted in an error.
+set redirect /tee /file="./sub-dir/redirect_stdout.txt" /clobber  stderr stdout
+ 
+! write to the file and look at the results
+ 
+show symbol ferret_precision, ferret_memory
+FERRET_PRECISION = "double"
+FERRET_MEMORY = "25.6"
+cancel redirect
+let contents = { spawn:"cat ./sub-dir/redirect_stdout.txt" }
+list contents
+             VARIABLE : { SPAWN:"cat ./sub-dir/redirect_stdout.txt" }
+             SUBSET   : 7 points (X)
+ 1   / 1:" "                                          
+ 2   / 2:"! write to the file and look at the results"
+ 3   / 3:" "                                          
+ 4   / 4:"show symbol ferret_precision, ferret_memory"
+ 5   / 5:"FERRET_PRECISION = "double""                
+ 6   / 6:"FERRET_MEMORY = "25.6""                     
+ 7   / 7:"cancel redirect"                            
+cancel var contents
+ 
+sp rm -rf sub-dir
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_set_redirect
+! err71_set_redirect.jnl
+! 3/2017 ACM
+! redirect results to a file with a path.
+! See ticket 2521, the path was previously rejected if it contains dashes
+ 
+spawn "mkdir -p sub-dir"
+!
+! Previously this resulted in an error.
+set redirect /tee /file="./sub-dir/redirect_stdout.txt" /clobber  stderr stdout
+ 
+! write to the file and look at the results
+ 
+show symbol ferret_precision, ferret_memory
+FERRET_PRECISION = "double"
+FERRET_MEMORY = "25.6"
+cancel redirect
+let contents = { spawn:"cat ./sub-dir/redirect_stdout.txt" }
+list contents
+             VARIABLE : { SPAWN:"cat ./sub-dir/redirect_stdout.txt" }
+             SUBSET   : 7 points (X)
+ 1   / 1:" "                                          
+ 2   / 2:"! write to the file and look at the results"
+ 3   / 3:" "                                          
+ 4   / 4:"show symbol ferret_precision, ferret_memory"
+ 5   / 5:"FERRET_PRECISION = "double""                
+ 6   / 6:"FERRET_MEMORY = "25.6""                     
+ 7   / 7:"cancel redirect"                            
+cancel var contents
+ 
+sp rm -rf sub-dir
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_err_attrib_overrun
+! err71_err_attrib_overrun.jnl
+! See ticket 2523
+ 
+! this ends with a segment fault sensitive to any changes
+! presumably a buffer over-run
+ 
+! the crash is occuring because of a buffer over-run
+! in IS_ATTRIB_VAL we call CREATE_TEMP_MEM_VAR to create an mr of size=1
+! later we call INIT_C_STRING_ARRAY and tell it to initialize this mr array
+! using a length nvdims=3  ==> OVERRUN
+ 
+! This bug never reared its head in the pre-dynamic memory Ferret, because
+! the buffers couldn't really be over-run, since they were part of a huge
+! static memory block
+ 
+! other INIT_* calls in IS_ATTRIB_VAL may have a similar issue
+ 
+ 
+set mode diag
+ 
+use ocean_atlas_temp
+use gt4d011
+use levitus_climatology
+ 
+use coads_climatology
+ 
+let lnames = ..dimnames[d=2]
+ 
+CANCEL DATA/ALL
+ canceling dset ./ocean_atlas_temp.cdf
+ canceling dset ./gt4d011.cdf
+ canceling dset ./levitus_climatology.cdf
+ canceling dset ./coads_climatology.cdf
+ 
+! this line seems to be essential making the crash happen
+PPL TICS .125,.25,.125,.25 !reset tics to default
+ 
+use coads_climatology
+ 
+let a = sst[d=1].dimnames
+show mem/diag   ! looks like no dynamic memory actions have occured
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 500
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 0 words
+    Current cache: 0 words
+ 
+! resulted in a seg fault (on 32-bit stout)
+list a[i=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
+ 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
+             VARIABLE : SST[D=coads_climatology].DIMNAMES
+             FILENAME : coads_climatology.cdf
+             X        : 2
+        "COADSY"
+ 
+ 
+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
+ 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
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_user_var_attrib
+! err71_user_var_attrib.jnl
+! See ticket 2132
+ 
+! command was trying to list dataset information for a user variable
+!
+ 
+let a = 1
+define att a.myAttr = "whatever"
+show att a.myAttr
+ a.myAttr = whatever 
+ 
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_save_bounds
+! err71_save_bounds
+! Ticket 2524. The SAVE command previously gave an error
+ 
+define axis/t time = {1,2,4}
+use write_int_att.nc
+ 
+! Tell Ferret to use the axis names from the file, and write data
+cancel mode upcase
+save/file=a.nc/clobber mhchla
+ 
+GO bn_reset bn_compressed_gather
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_compressed_gather
+GO bn_compressed_gather
+! bn_compressed_gather.jnl
+! 11/2016 (for trac #2428 enhancement)
+! updated 3/17 for dynamic memory and using SHOW MEM/DIAG
+ 
+! force a split/gather operation due to a T=@ave
+ 
+! in previous versions of Ferret the split could not occur on the transformed
+! axis, so the X axis would have been used.  Here the T=@ave axis will be used
+ 
+! Give us something to look at while we run these tests which dont make plots
+plot/noax/nolab/vlim=0:1/i=4:5 i
+annotate/norm/x=0/y=0.5 "@AC... running bn_compressed_gather"
+ 
+! ******* tests of  T=@DIN and T=@ave ******
+define axis/x=1:1001:1 xax
+define axis/y=1:10:1 yax
+define axis/T=1:1000:1 tax
+ 
+let xt = (x[gx=xax]-501) + 0*y[gy=yax] + T[gt=tax]
+ 
+* note: SUM of integers 1 to 1000 = N(N+1)/2 ==> 500500
+*       stat average of (x[gx=xax]-501) is zero
+*       so the full 2D stat mean should be 500500
+ 
+! there are 10*1000*1001 points in the full grid => ~10M
+! given the necessary cautions (see IS_STRIP and MODE FRUGAL),
+! a size of 12 for sure requires a gather operation
+! confirm gathering is occuring by looking at the diagnostic output
+ 
+!set mode desperate: 400000
+SET MEMORY/SIZE=12
+ 
+stat xt[l=@din]
+ 
+             (X[GX=XAX]-501) + 0*Y[GY=YAX] + T[GT=TAX]
+             X: 0.5 to 1002
+             Y: 0.5 to 10.5
+             Z:  N/A
+             T: 0.5 to 1000.5 (integrated)
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 1000500
+ Mean    value: 500500 (unweighted average)
+ Standard deviation: 288978
+SHOW MEMORY/DIAGNOSTIC   ! look at peak memory usage
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        XT             T     DIN       209           1
+    Total table slots: 500
+    Free table slots: 494
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+ 
+! many variations on this test
+! note that in the first case peak memory will show as ZERO.
+! The first SET MEMORY command resets the peak memory to zero, and
+! then the expression "xt[l=@din]" gets found without re-computation
+! having been computed just above
+GO bn_compressed_gather.sub xt[l=@din] 40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 1000500
+ Mean    value: 500500 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 20020 words
+    Current cache: 10.03002 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 1000500
+ Mean    value: 500500 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[l=@din]
+ 
+! altered limits syntax
+GO bn_compressed_gather.sub xt[l=1:1000 at din] 40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 1000500
+ Mean    value: 500500 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 20020 words
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 1000500
+ Mean    value: 500500 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[l=1:1000 at din]
+ 
+! test T=@AVE
+GO bn_compressed_gather.sub xt[l=@ave]  40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[l=@ave]
+ 
+! various partial grid points at end
+GO bn_compressed_gather.sub xt[T=@ave]  40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[T=@ave]
+GO bn_compressed_gather.sub xt[T=0.5:1000.5 at ave]  40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[T=0.5:1000.5 at ave]
+GO bn_compressed_gather.sub xt[T=0.6:1000.4 at ave]  40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[T=0.6:1000.4 at ave]
+GO bn_compressed_gather.sub xt[T=1:1000 at ave]  40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[T=1:1000 at ave]
+GO bn_compressed_gather.sub xt[T=1.2:999.8 at ave] 40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[T=1.2:999.8 at ave]
+ 
+! *********************************************************
+! ******* tests of "4D" @DIN and @ave ******
+define axis/x=1:200:1 xax
+define axis/y=1:200:1 yax
+define axis/z=1:200:1 zax
+define axis/T=1:2:1  tax
+let xyz  = 0*X[gx=xax] + 0*Y[gy=yax] + Z[gz=zax]
+let xyzt = 0*X[gx=xax] + 0*Y[gy=yax] + Z[gz=zax] + 0*T[gt=tax]
+ 
+* note: SUM of Z is N*(N+1)/2 = 20100
+* area integral in XY is 200*200=40,000
+* total integral is 804,000,000 (8.04*E8)
+ 
+* 3D XYZ test
+* 2d slice size = 200*200 = 40,000
+* 3d full size is 8,000,000  - so 10,000,000 is bigger
+ 
+! confirm gathering is occuring by looking at the diagnostic output
+cancel memory/all
+!set mode desp: 2000000
+set memory/size = 2  ! 2M v 8M: requires split/gather
+! will split into 4 pieces (1/4 of 8,000,000 fits into 2,000,000)
+! so z=1:50; then =51:100, Z=101:150, Z=151:200
+stat xyz[x=@din,y=@din,z=@din]
+ 
+             0*X[GX=XAX] + 0*Y[GY=YAX] + Z[GZ=ZAX]
+             X: 0.5 to 200.5 (XYZ integ.)
+             Y: 0.5 to 200.5 (XYZ integ.)
+             Z: 0.5 to 200.5 (XYZ integ.)
+             T:  N/A
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.04E+08
+ Maximum value: 8.04E+08
+ Mean    value: 8.04E+08 (unweighted average)
+SHOW MEMORY/DIAGNOSTIC   ! look at peak memory usage
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        XYZ            Z     IN4         8           1
+    Total table slots: 500
+    Free table slots: 493
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 360010 words
+    Current cache: 1.920002 megawords
+ 
+! the clean version of same test
+GO bn_compressed_gather.sub xyz[x=@din,y=@din,z=@din] 20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.04E+08
+ Maximum value: 8.04E+08
+ Mean    value: 8.04E+08 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 2 words
+    Current cache: 1.920002 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.04E+08
+ Maximum value: 8.04E+08
+ Mean    value: 8.04E+08 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 360010 words
+    Current cache: 1.920002 megawords
+COMPRESSED GATHER success on expression xyz[x=@din,y=@din,z=@din]
+ 
+! also do the average, which will provide a comparison result for the test
+! that follows
+! average along Z is 100.5
+GO bn_compressed_gather.sub xyz[x=@ave,y=@ave,z=@ave] 20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 100.5
+ Maximum value: 100.5
+ Mean    value: 100.5 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 3.520089 megawords
+    Current cache: 8.000003 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 100.5
+ Maximum value: 100.5
+ Mean    value: 100.5 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 360010 words
+    Current cache: 1.920002 megawords
+COMPRESSED GATHER success on expression xyz[x=@ave,y=@ave,z=@ave]
+ 
+! Since the T axis has only 2 points, the arithmetic above shows that the
+! chunks to be gathered will still be too large after splitting on T, which
+! in theory would trigger further splitting along Z.  However, there is only
+! one opportunity to process compressed axis splitting -- in IS_STRIP
+! at the time that it is stripping off the compressed transformation.  But
+! a "4D" transform is stripped in a single operation. We choose an axis that
+! is long enough to break into sufficiently small fragments
+set memory/size = 6  ! 16M points in grid, 8M in each T-chunk
+stat xyzt[x=@ave,y=@ave,z=@ave,t=@ave]
+ 
+             0*X[GX=XAX] + 0*Y[GY=YAX] + Z[GZ=ZAX] + 0*T[GT=TAX]
+             X: 0.5 to 200.5 (XYZT ave)
+             Y: 0.5 to 200.5 (XYZT ave)
+             Z: 0.5 to 200.5 (XYZT ave)
+             T: 0.5 to 2.5 (XYZT ave)
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 100.5
+ Maximum value: 100.5
+ Mean    value: 100.5 (unweighted average)
+show mem/diagnostic
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        XYZT           Z     AV4        13           1
+    Total table slots: 500
+    Free table slots: 493
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 6 megawords
+    Peak demand: 1.560004 megawords
+    Current cache: 5.600002 megawords
+ 
+! test splitting along 2 axes in succession by making T=@AVE into a separate
+! averaging operation
+CANCEL MEMORY/ALL
+LET xyzave = xyzt[x=@ave,y=@ave,z=@ave]
+!set mode desp: 2000000
+set memory/size = 6  ! 2M v 8M: requires split/gather
+stat xyzave[t=@ave]
+ 
+             XYZT[X=@AVE,Y=@AVE,Z=@AVE]
+             X: 0.5 to 200.5
+             Y: 0.5 to 200.5
+             Z: 0.5 to 200.5
+             T: 0.5 to 2.5 (averaged)
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 100.5
+ Maximum value: 100.5
+ Mean    value: 100.5 (unweighted average)
+SHOW MEMORY/DIAGNOSTIC   ! look at peak memory usage
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        XYZAVE         T     AVE         1           1
+        XYZT           Z     AV4        26           2
+    Total table slots: 500
+    Free table slots: 492
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 6 megawords
+    Peak demand: 2.080005 megawords
+    Current cache: 4.880005 megawords
+ 
+! *********************************************************
+! ******* tests of T= @var and @std ******
+! the @var and @std transformation had to be switched to
+! a single pass algorithm in order to implement split/gather
+define axis/x=1:10000:1 xax
+define axis/T=1:1001:1 tax
+ 
+let xt = 0*x[gx=xax] + T[gt=tax]
+let constant = 0*X[gx=xax] + 0*T[gt=tax] + 1234
+let xt_zero_mean = 0*X[gx=xax] + (T[gt=tax]-501) + 1234
+ 
+* note: sum of a sequence 1 to N of square integers is [N*(N+1)*(2N+1)]/6
+* T-501 is 2 sequences: -500 to 1 and 1 to 500, therefore sum is
+* 2 * [500*501*1001]/6 = 83583500
+* mean of this sequence is 83583500/1001 = 83500
+* ==> look for this as the correct answer to variance
+ 
+! confirm gathering is occuring by looking at the diagnostic output
+!set mode desperate: 400000
+set memory/size= 12
+stat constant[l=@var]
+ 
+             Variance of 0*X[GX=XAX] + 0*T[GT=TAX] + 1234
+             X: 0.5 to 10001
+             Y:  N/A
+             Z:  N/A
+             T: 0.5 to 1001.5 (variance)
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ Standard deviation: 0
+SHOW MEMORY/DIAGNOSTIC   ! look at peak memory usage
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        CONSTANT       T     VAR       209           1
+    Total table slots: 500
+    Free table slots: 494
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 4.210001 megawords
+    Current cache: 10.04 megawords
+ 
+! clean test
+cancel memory/all
+GO bn_compressed_gather.sub constant[l=@var] 40 12
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 13.980001 megawords
+    Current cache: 10.04 megawords
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 4.210001 megawords
+    Current cache: 10.04 megawords
+COMPRESSED GATHER success on expression constant[l=@var]
+ 
+! known result
+GO bn_compressed_gather.sub xt_zero_mean[l=@var] 40 12
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 83500
+ Maximum value: 83500
+ Mean    value: 83500 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 13.980001 megawords
+    Current cache: 10.040001 megawords
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 83500
+ Maximum value: 83500
+ Mean    value: 83500 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 4.210001 megawords
+    Current cache: 10.04 megawords
+COMPRESSED GATHER success on expression xt_zero_mean[l=@var]
+ 
+! adding a constant doesn't effect the variance
+GO bn_compressed_gather.sub xt[l=@var] 40 12
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 83500
+ Maximum value: 83500
+ Mean    value: 83500 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.02 megawords
+    Current cache: 10.040001 megawords
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 83500
+ Maximum value: 83500
+ Mean    value: 83500 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.130209 megawords
+    Current cache: 10.04 megawords
+COMPRESSED GATHER success on expression xt[l=@var]
+ 
+! same test, but  on @std (only one line of code difference so limited test)
+* square root of 83500 is 288.96366553599779.
+* Note: previous Ferret versions gave a consistent value
+*  Minimum value: 288.9636655359978
+*  Maximum value: 288.9636655359978
+*  Mean    value: 288.9636655359978
+* Now (11/16) we are getting slight variations in the 16th decimal (see"6")
+*  Minimum value: 288.9636655359978
+*  Maximum value: 288.9636655359978
+*  Mean    value: 288.9636655359976
+* *sh* @std differs from @var only by taking a SQRT() in the finalization step.
+*      I suspect this is an artifact of the compiler optimization level
+GO bn_compressed_gather.sub xt[l=@std] 4000000 400000
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 288.9636655359978
+ Maximum value: 288.9636655359978
+ Mean    value: 288.9636655360099 (unweighted average)
+    SET MEMORY/SIZE: 4000000 megawords
+    Peak demand: 10.04 megawords
+    Current cache: 10.040001 megawords
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 288.9636655359978
+ Maximum value: 288.9636655359978
+ Mean    value: 288.9636655360099 (unweighted average)
+    SET MEMORY/SIZE: 400000 megawords
+    Peak demand: 10.04 megawords
+    Current cache: 10.04 megawords
+COMPRESSED GATHER success on expression xt[l=@std]
+ 
+ 
+! *********************************************************
+! ******* tests of "4D" @var and @std ******
+! the @var and @srd transformation had to be switched to
+! a single pass algorithm in order to implement split/gather
+define axis/x=1:200:1 xax
+define axis/y=1:200:1 yax
+define axis/z=1:201:1 zax
+define axis/T=1:200:1 tax
+! adding a constant doesn't effect variance
+let constant = 0*X[gx=xax] + 0*Y[gy=yax] + 0*Z[gz=zax] + 1234
+let xyz = 0*X[gx=xax] + 0*Y[gy=yax] + Z[gz=zax] + 1
+let xyz_zero_mean = 0*X[gx=xax] + 0*Y[gy=yax] + (Z[gz=zax]-101)
+ 
+* note: sum of a sequence 1 to N of square integers is [N*(N+1)*(2N+1)]/6
+* Z-101 is 2 sequences: -100 to -1 and 1 to 100, therefore sum is
+* 2 * [100*101*201]/6 = 676700
+* so the average is 676700/201 = 3366.666666 ...
+* At every XY point we have the identical sequence in Z, so the variance is
+* the same as the single Z sequence
+ 
+* 3D XYZ test
+* 2d slice size = 200*200 = 40,000
+* 3d full size is 8,000,000  - so 10,000,000 is bigger
+cancel memory/all
+!set mode desp: 2000000
+set memory/size = 2  ! 2M v 8M: requires split/gather
+! will split into 4 pieces (1/4 of 8,000,000 fits into 2,000,000)
+! so z=1:50; then =51:100, Z=101:150, Z=151:200
+LIST/PREC=12 constant[x=@var,y=@var,z=@var]
+             VARIABLE : 0*X[GX=XAX] + 0*Y[GY=YAX] + 0*Z[GZ=ZAX] + 1234
+             X        : 0.5 to 200.5 (XYZ variance)
+             Y        : 0.5 to 200.5 (XYZ variance)
+             Z        : 0.5 to 201.5 (XYZ variance)
+          0.000000000000
+ 
+! variance of a constant is zero
+GO bn_compressed_gather.sub constant[x=@var,y=@var,z=@var] 20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 3 words
+    Current cache: 1.640003 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 640004 words
+    Current cache: 1.640003 megawords
+COMPRESSED GATHER success on expression constant[x=@var,y=@var,z=@var]
+ 
+! confirm that we get the result computed above
+GO bn_compressed_gather.sub xyz_zero_mean[x=@var,y=@var,z=@var]  20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 3366.7
+ Maximum value: 3366.7
+ Mean    value: 3366.7 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 3.52009 megawords
+    Current cache: 8.040004 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 3366.7
+ Maximum value: 3366.7
+ Mean    value: 3366.7 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 360011 words
+    Current cache: 1.640003 megawords
+COMPRESSED GATHER success on expression xyz_zero_mean[x=@var,y=@var,z=@var]
+LIST/PREC=12 xyz_zero_mean[x=@var,y=@var,z=@var]
+             VARIABLE : 0*X[GX=XAX] + 0*Y[GY=YAX] + (Z[GZ=ZAX]-101)
+             X        : 0.5 to 200.5 (XYZ variance)
+             Y        : 0.5 to 200.5 (XYZ variance)
+             Z        : 0.5 to 201.5 (XYZ variance)
+          3366.66666667
+ 
+! confirm that adding a constant does not change the result
+GO bn_compressed_gather.sub xyz[x=@var,y=@var,z=@var]  20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 3366.7
+ Maximum value: 3366.7
+ Mean    value: 3366.7 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 6.960004 megawords
+    Current cache: 9.680006 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 3366.7
+ Maximum value: 3366.7
+ Mean    value: 3366.7 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 640004 words
+    Current cache: 1.640003 megawords
+COMPRESSED GATHER success on expression xyz[x=@var,y=@var,z=@var]
+LIST/PREC=12 xyz[x=@var,y=@var,z=@var]
+             VARIABLE : 0*X[GX=XAX] + 0*Y[GY=YAX] + Z[GZ=ZAX] + 1
+             X        : 0.5 to 200.5 (XYZ variance)
+             Y        : 0.5 to 200.5 (XYZ variance)
+             Z        : 0.5 to 201.5 (XYZ variance)
+          3366.66666667
+ 
+CANCEL MEMORY/ALL  ! IF PRESENT THIS PREVENTS THE MEMORY CORRUPTION
+! confirm the @std gives the square root of the variance
+! SQRT(676700/201) = 58.022983951764034269074805569046
+GO bn_compressed_gather.sub xyz[x=@std,y=@std,z=@std]  20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 58.023
+ Maximum value: 58.023
+ Mean    value: 58.023 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 6.960004 megawords
+    Current cache: 8.040003 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 58.023
+ Maximum value: 58.023
+ Mean    value: 58.023 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 640004 words
+    Current cache: 1.640003 megawords
+COMPRESSED GATHER success on expression xyz[x=@std,y=@std,z=@std]
+LIST/PREC=12 xyz[x=@std,y=@std,z=@std]
+             VARIABLE : 0*X[GX=XAX] + 0*Y[GY=YAX] + Z[GZ=ZAX] + 1
+             X        : 0.5 to 200.5 (XYZ stddev)
+             Y        : 0.5 to 200.5 (XYZ stddev)
+             Z        : 0.5 to 201.5 (XYZ stddev)
+          58.0229839518
+ 
+ 
+! add more tests here
+! the highest liklihood of problem is in the formulation of "the next chunk"
+! when IS_TRANS requests the next piece to be gathered
+! ... variations on inner and outer limits
+!     (i.e. averaging an expression with limits embedded inside of it
+!      where the averaging limits may or may not match the inner limits)
+! ... file variable, vs user variables
+! ... embedded functions, especially grid-changing functions
+!
+! ... test irregular axes (unequal weighting) and see how significant are
+!     the changes in results from old Ferret (particularly on @var)
+ 
+ 
+GO bn_reset bn_dynamic_gather
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dynamic_gather
+GO bn_dynamic_gather
+! bn_dynamic_gather.jnl
+! *sh* 3/2017
+ 
+! There's not really anything "dynamic" about this benchmark, except that it
+! excercises the split/gather improvements that were implemented together with
+! dynamic memory management
+ 
+ 
+ 
+ 
+! Give us something to look at while we run these tests which dont make plots
+plot/noax/nolab/vlim=0:1/i=4:5 i
+annotate/norm/x=0/y=0.5 "@AC... running bn_dynamic_gather"
+ 
+ 
+! **************************************
+! create the test data
+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
+ELSE
+ENDIF
+ 
+! ************************************
+ 
+use tmp/test_dyn_mem.nc
+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
+ 
+ 
+! excercise under the least strict memory management
+CANCEL MODE FRUGAL
+GO bn_dynamic_gather.sub
+! bn_dynamic_gather.sub
+ 
+! this subroutine to get called repeatedly for different values of MODE FRUGAL
+ 
+!**************
+! remember to test:
+! - MODE FRUGAL
+! done - case of no single axis long enough
+! done - case of transformed axis not long enough, but another is
+! 2-axis split including compressed
+! 2-axis split not including
+! 3-axis splits
+!    -- with slowest axis GT 5 in length
+!    -- with slowest axis LT 5 and second slowest GT 50
+! - modulo regrid examples
+! 2d and 3d @AVE
+! mixed @AVE and @DIN
+!*************
+ 
+! **************************************************
+! test memory that is too small to accommodate the result
+! this request will fail trying to get the third argument
+set mode ignore
+set memory/siz=1.99
+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]
+    At the moment that the memory limit was reached
+    argument 3 was being evaluated: V[L=1:10 at AVE]
+    memory was committed as follows:
+        - to arguments 1-2: 40000 (2%)
+        - to objects used in computation: : 0 (0%)
+    The size of the requested object was: : 2000000 (101%)
+cancel mode ignore
+ 
+! **************************************************
+! if memory size is large enough to accommodate the result data plus
+! its accumulation buffer(s) when split along the compressed axis (4M)
+! then it can choose to use the compressed axis.
+! The smallest chunk along that axis is 1000x1000x2x1 ==> 2M
+set memory/siz=6
+stat/brief v[l=1:10 at ave]
+ 
+ Total # of data points: 2000000 (1000*1000*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 2007.5
+ Mean    value: 1008 (unweighted average)
+show memory/diagnostic   ! T axis split, chunk size = 1, peak mem=6
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              T     AVE         1           1
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 6 megawords
+    Peak demand: 6 megawords
+    Current cache: 6 megawords
+show memory/all          ! in memory following the last chunk
+    SET MEMORY/SIZE: 6 megawords
+    Peak demand: 6 megawords
+    Current cache: 6 megawords
+all data in memory:
+ V[D=test_dyn_mem]                 XYZ   mr:231 size:4000000
+         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]                 XYZ   mr:246 size:2000000
+         1/0.5                 1/0.5                 1/0.5                10/9.5
+      1000/1001             1000/1000.5              2/2.5                10/10.5
+ 
+cancel memory/all
+ 
+! **************************************************
+! Since @VAR requires two buffers - the total size of the result is 2M+2*2M=6M
+! if we were to split along T the size of a chunk would be 1000x1000x2x1 = 2M
+! So the total memory needed would be 6M+2M=8M to split along T
+set memory/size=8
+stat/brief v[l=1:10 at var]
+ 
+ Total # of data points: 2000000 (1000*1000*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.25
+ Maximum value: 8.25
+ Mean    value: 8.25 (unweighted average)
+show memory/diagnostic   ! T axis split, chunk size = 1, peak mem=8
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              T     VAR         1           1
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 8 megawords
+    Peak demand: 8 megawords
+    Current cache: 8 megawords
+cancel memory/all
+ 
+! **************************************************
+! if memory size is NOT large enough to accommodate the result data plus
+! its accumulation buffer(s) then it cannot split along T
+set memory/siz=5.9
+stat/brief v[l=1:10 at ave]
+ 
+ Total # of data points: 2000000 (1000*1000*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 2007.5
+ Mean    value: 1008 (unweighted average)
+show memory/diagnostic   ! Y axis split, big chunk size = 1
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Y     AVE       162           1
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 5.9 megawords
+    Peak demand: 5.888 megawords
+    Current cache: 3.32 megawords
+cancel memory/all
+ 
+! **************************************************
+! memory barely large enough to accommodate the result (2M), and the
+! smallest achievable chunk
+! splitting along the Y axis, the smallest chunk size is 1000x1x2x10 ==> 20000
+! and the average of a single chunk (incl buffer) is 1000x1x2x1*2 ==> 4000
+set memory/siz=2.024
+stat/brief v[l=1:10 at ave]
+ 
+ Total # of data points: 2000000 (1000*1000*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 2007.5
+ Mean    value: 1008 (unweighted average)
+show memory/diagnostic ! Y axis split, chunk size=1, peak mem=2.024
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Y     AVE         1           1
+    Total table slots: 500
+    Free table slots: 497
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 2.024 megawords
+    Peak demand: 2.024 megawords
+    Current cache: 2.024 megawords
+show memory/all        ! in memory following the last chunk
+    SET MEMORY/SIZE: 2.024 megawords
+    Peak demand: 2.024 megawords
+    Current cache: 2.024 megawords
+all data in memory:
+ V[D=test_dyn_mem]                 XYZ   mr:234 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
+         1/0.5              1000/999.5               1/0.5              ... /0.5
+      1000/1001             1000/1000.5              2/2.5              ... /10.5
+                                                              AVE
+ V[D=test_dyn_mem]                 XZT   mr:246 size:20000
+         1/0.5              1000/999.5               1/0.5                 1/0.5
+      1000/1001             1000/1000.5              2/2.5                10/10.5
+ 
+cancel memory/all
+ 
+! **************************************************
+! Since @VAR requires two buffers - the total size of the result is 2M+2*2M=6M
+! if we were to split along T the size of a chunk would be 1000x1000x2x1 = 2M
+! So the total memory needed would be 6M+2M=8M.  So the current SET MEMORY=6
+! is not enuf mem to split along the T axis
+set memory/siz=6
+stat/brief v[l=1:10 at var]
+ 
+ Total # of data points: 2000000 (1000*1000*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.25
+ Maximum value: 8.25
+ Mean    value: 8.25 (unweighted average)
+show memory/diagnostic   ! Y axis split
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Y     VAR       153           1
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 6 megawords
+    Peak demand: 5.978 megawords
+    Current cache: 5.05 megawords
+cancel memory/all
+ 
+! **************************************************
+! 3D averaging  v[x=@ave,y=@ave,z=@ave,L=1]
+! result size will be 1x1x1x1*2 = 2
+! chunk size if split along Z will be 1000x1000x1x1 = 1M
+! chunk size if split along Y will be 1000x1x2x1    = 2K
+ 
+! this request can succeed by splitting along Z
+set memory/siz=1.001
+stat/brief v[x=@ave,y=@ave,z=@ave,L=1]
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 1003.5
+ Maximum value: 1003.5
+ Mean    value: 1003.5 (unweighted average)
+show memory/diagnostic     ! Z axis split
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Z     AV4         1           1
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 1.001 megawords
+    Peak demand: 1.000002 megawords
+    Current cache: 1.000002 megawords
+cancel memory/all
+ 
+! **************************************************
+! but if memory is so small that the Z axis of 2 points does not provide
+! enough size reduction, then we choose to split along Y
+set memory/siz=.99
+stat/brief v[x=@ave,y=@ave,z=@ave,L=1]
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 1003.5
+ Maximum value: 1003.5
+ Mean    value: 1003.5 (unweighted average)
+show memory/diagnostic     ! Y axis split
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Y     AV4       494           1
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 990000 words
+    Peak demand: 988002 words
+    Current cache: 24002 words
+cancel memory/all
+ 
+! **************************************************
+! multiple transformations on a single expression
+! Use of these expressions **is a bad idea in Ferret**
+! he "potential size" of the source data is 1000x1000x20x10=20M
+! we just get aggressive about memory saving: choose the longest axis
+! preferring an uncompressed axis if available
+! Here we see a triple level strip: Z-T-Y
+! (SHOW MEM/DIAG repeats on each of the 2 K values)
+set memory/siz=.99
+stat/brief v[x=@ave,y=@ave,L=@SUM]
+ 
+ Total # of data points: 2 (1*1*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 10075
+ Maximum value: 10085
+ Mean    value: 10080 (unweighted average)
+show memory/diagnostic        !  split on Z-(T-Y,T-Y)
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Z     SUM         1           1
+        V              T     SUM         1           1
+        V              Y     AV4       989          10
+        V              T     SUM         1           1
+        V              Y     AV4       989          10
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 990000 words
+    Peak demand: 989006 words
+    Current cache: 11006 words
+cancel memory/all
+ 
+! **************************************************
+! now the same situation, but where Z is compressed as well
+! Z is not stripped off because other axes are longer
+set memory/siz=.99
+stat/brief v[x=@ave,y=@ave,z=@ave,L=@SUM]
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 10080
+ Maximum value: 10080
+ Mean    value: 10080 (unweighted average)
+show memory/diagnostic       ! split on T-Y
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              T     SUM         1           1
+        V              Y     AV4       494          10
+    Total table slots: 500
+    Free table slots: 497
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 990000 words
+    Peak demand: 988004 words
+    Current cache: 24004 words
+cancel memory/all
+ 
+! **************************************************
+! multiple transformation again
+! first strip YZT at AVE. Split the long Y axis, no further split needed
+set memory/siz=.99
+stat/brief v[x=@SUM,y=@ave,z=@ave,L=@ave]
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 1008000
+ Maximum value: 1008000
+ Mean    value: 1008000 (unweighted average)
+show memory/diagnostic      ! split on Y
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Y     AV4        24           1
+    Total table slots: 500
+    Free table slots: 494
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 990000 words
+    Peak demand: 480962 words
+    Current cache: 802562 words
+cancel memory/all
+ 
+! **************************************************
+! MODULO REGRID
+ 
+! v1000 is 10x100x4x1000
+! for gt=@mod the full result size is 10x100x4x12 ==>  48,000
+ 
+define axis/mod/t=1:12:1 t12mod
+ 
+!**************************************************
+set mem/size=10   ! bigger than needed
+stat/brief v1000[gt=t12mod at mod]
+ 
+ Total # of data points: 48000 (10*100*4*12*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 618
+ Mean    value: 559 (unweighted average)
+show mem/diag     ! note peak size demand a bit over 4
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 10 megawords
+    Peak demand: 4.144 megawords
+    Current cache: 4.048 megawords
+canc mem/all
+ 
+!**************************************************
+set mem/size=4
+stat/brief v1000[gt=t12mod at mod]
+ 
+ Total # of data points: 48000 (10*100*4*12*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 618
+ Mean    value: 559 (unweighted average)
+show mem/diag              ! big z chunks (3 on ax of len 4)
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V1000          Z                 3           1
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 4 megawords
+    Peak demand: 3.108 megawords
+    Current cache: 1.096 megawords
+canc mem/all
+ 
+!**************************************************
+set mem/size=1
+stat/brief v1000[gt=t12mod at mod]
+ 
+ Total # of data points: 48000 (10*100*4*12*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 618
+ Mean    value: 559 (unweighted average)
+show mem/diag              !  big y chunks (22 on ax of len 100)
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V1000          Y                22           1
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 1000000 words
+    Peak demand: 959680 words
+    Current cache: 544320 words
+canc mem/all
+ 
+!**************************************************
+! if the chunk size is 1, then each chunk src is 10x1x4x1000 ==> 40000
+! and requires a result plus 2 buffers:          10x1x4x12*3 ==>  1440
+! plus the full result size in IS_GATHER                     ==> 48000
+!                                                      total ==> 89440
+set mem/size=.09
+stat/brief v1000[gt=t12mod at mod]
+ 
+ Total # of data points: 48000 (10*100*4*12*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 618
+ Mean    value: 559 (unweighted average)
+show mem/diag              !  y chunk size = 1
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V1000          Y                 1           1
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 90000 words
+    Peak demand: 89440 words
+    Current cache: 88960 words
+canc mem/all
+ 
+ 
+! ************** USER VARIABLES ********************
+let a = v[k=1]
+let b = v[k=2]
+let c = a + b
+let d = a + c
+ 
+! for comparison: memory management to average a simple file variable
+set memory/siz=3
+stat/brief v[l=1:10 at ave,k=1]
+ 
+ Total # of data points: 1000000 (1000*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 2006.5
+ Mean    value: 1007.5 (unweighted average)
+show memory/diagnostic   ! T axis split, chunk size = 1, peak mem=6
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              T     AVE         1           1
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 3 megawords
+    Peak demand: 3 megawords
+    Current cache: 3 megawords
+cancel memory/all
+ 
+! compare to memory management averaging user variables
+! not split on T because more memory is needed for components of calculation
+set memory/siz=3
+ 
+stat/brief a[l=1:10 at ave]
+ 
+ Total # of data points: 1000000 (1000*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 2006.5
+ Mean    value: 1007.5 (unweighted average)
+show memory/diagnostic   ! X axis split, chunk size = 1, peak mem=1.82
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        A              Y     AVE        47           1
+    Total table slots: 500
+    Free table slots: 491
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 3 megawords
+    Peak demand: 1.94 megawords
+    Current cache: 2.884 megawords
+cancel memory/all
+ 
+stat/brief d[l=1:10 at ave]
+ 
+ Total # of data points: 1000000 (1000*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 26.5
+ Maximum value: 6020.5
+ Mean    value: 3023.5 (unweighted average)
+show memory/diagnostic   ! X axis split, chunk size = 1, peak mem=2.23
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        D              Y     AVE        47           1
+    Total table slots: 500
+    Free table slots: 489
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 3 megawords
+    Peak demand: 2.41 megawords
+    Current cache: 2.84 megawords
+cancel memory/all
+ 
+! progressively more frugal mem mgmt is needed as multiple results accumulate
+stat/brief a[i=1:500,l=1:10 at ave], b[i=1:500,l=1:10 at ave], c[i=1:500,l=1:10 at ave], d[i=1:500,l=1:10 at ave]
+ 
+ Total # of data points: 500000 (500*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 1506.5
+ Mean    value: 757.5 (unweighted average)
+ 
+ Total # of data points: 500000 (500*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 9.5
+ Maximum value: 1507.5
+ Mean    value: 758.5 (unweighted average)
+ 
+ Total # of data points: 500000 (500*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 18
+ Maximum value: 3014
+ Mean    value: 1516 (unweighted average)
+ 
+ Total # of data points: 500000 (500*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 26.5
+ Maximum value: 4520.5
+ Mean    value: 2273.5 (unweighted average)
+show memory/diagnostic   ! X axis split, chunk size = 1, peak mem=2.23
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        A              T     AVE         1           1
+        B              Y     AVE        71           1
+        C              Y     AVE        47           1
+        D              Y     AVE        23           1
+    Total table slots: 500
+    Free table slots: 487
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 3 megawords
+    Peak demand: 2.845 megawords
+    Current cache: 2.979 megawords
+cancel memory/all
+ 
+! if the initial arguments take up too much memory we cannot succeed
+set mode ignore
+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]
+    At the moment that the memory limit was reached
+    argument 3 was being evaluated: C[L=1:10 at AVE]
+    memory was committed as follows:
+        - to arguments 1-2: 2000000 (67%)
+        - to objects used in computation: : 0 (0%)
+    The size of the requested object was: : 1000000 (33%)
+show memory/diagnostic   ! X axis split, chunk size = 1, peak mem=2.23
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        A              Y     AVE        47           1
+        B              Y     AVE        23           1
+    Total table slots: 500
+    Free table slots: 491
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 3 megawords
+    Peak demand: 2.46 megawords
+    Current cache: 2.794 megawords
+cancel mode ignore
+cancel memory/all
+ 
+ 
+! now run the same tests under 3 different FRUGAL levels
+! save the outputs so they can be compared
+ 
+! excercise under the least strict memory management
+CANCEL REDIRECT
+SET REDIRECT/CLOBBER/FILE=bn_dynamic_gather_0.out
+SET REDIRECT/CLOBBER/FILE=bn_dynamic_gather_30.out
+SET REDIRECT/CLOBBER/FILE=bn_dynamic_gather_60.out
+ 
+! now compare the three output logs:
+! differences in *how* the results are computed are fine
+! differences in what the results are would be problems
+SAY **************************************************
+**************************************************
+SAY ************* DIFF FRUGAL 0 TO 30 ****************
+************* DIFF FRUGAL 0 TO 30 ****************
+SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_30.out
+1c1
+< CANCEL MODE FRUGAL
+---
+> SET MODE FRUGAL    ! 30%
+4c4
+<       FRUGAL        CANCELED            30
+---
+>       FRUGAL           SET              30
+56c56
+<         V              T     AVE         1           1
+---
+>         V              Y     AVE        91           1
+58c58
+<     Free table slots: 498
+---
+>     Free table slots: 496
+61,62c61,62
+<     Peak demand: 6 megawords
+<     Current cache: 6 megawords
+---
+>     Peak demand: 4.184 megawords
+>     Current cache: 4.524 megawords
+65,66c65,66
+<     Peak demand: 6 megawords
+<     Current cache: 6 megawords
+---
+>     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: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
+>          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
+>          1/0.5               820/819.5               1/0.5              ... /0.5
+>       1000/1001              910/910.5               2/2.5              ... /10.5
+>                                                               AVE
+93c101
+<         V              T     VAR         1           1
+---
+>         V              Y     VAR       138           1
+95c103
+<     Free table slots: 498
+---
+>     Free table slots: 494
+98,99c106,107
+<     Peak demand: 8 megawords
+<     Current cache: 8 megawords
+---
+>     Peak demand: 5.588 megawords
+>     Current cache: 7.3 megawords
+116c124
+<         V              Y     AVE       162           1
+---
+>         V              Y     AVE        88           1
+118c126
+<     Free table slots: 496
+---
+>     Free table slots: 494
+121,122c129,130
+<     Peak demand: 5.888 megawords
+<     Current cache: 3.32 megawords
+---
+>     Peak demand: 4.112 megawords
+>     Current cache: 5.232 megawords
+141a150
+>         V              T     AVE         6         999
+143c152
+<     Free table slots: 497
+---
+>     Free table slots: 496
+146c155
+<     Peak demand: 2.024 megawords
+---
+>     Peak demand: 2.016 megawords
+150c159
+<     Peak demand: 2.024 megawords
+---
+>     Peak demand: 2.016 megawords
+161,162c170,171
+<  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
+>          1/0.5              1000/999.5               1/0.5                 7/6.5
+164a174,177
+>  V[D=test_dyn_mem]                 XZT   mr:243 size:12000
+>          1/0.5              1000/999.5               1/0.5                 1/0.5
+>       1000/1001             1000/1000.5              2/2.5                 6/6.5
+>  
+183c196
+<         V              Y     VAR       153           1
+---
+>         V              Y     VAR        84           1
+188,189c201,202
+<     Peak demand: 5.978 megawords
+<     Current cache: 5.05 megawords
+---
+>     Peak demand: 4.184 megawords
+>     Current cache: 4.48 megawords
+210c223
+<         V              Z     AV4         1           1
+---
+>         V              Y     AV4       350           1
+215,216c228,229
+<     Peak demand: 1.000002 megawords
+<     Current cache: 1.000002 megawords
+---
+>     Peak demand: 700002 words
+>     Current cache: 600002 words
+233c246
+<         V              Y     AV4       494           1
+---
+>         V              Y     AV4       346           1
+238,239c251,252
+<     Peak demand: 988002 words
+<     Current cache: 24002 words
+---
+>     Peak demand: 692002 words
+>     Current cache: 616002 words
+263c276
+<         V              Y     AV4       989          10
+---
+>         V              Y     AV4       692          10
+265c278
+<         V              Y     AV4       989          10
+---
+>         V              Y     AV4       692          10
+270,271c283,284
+<     Peak demand: 989006 words
+<     Current cache: 11006 words
+---
+>     Peak demand: 692006 words
+>     Current cache: 308006 words
+289c302
+<         V              Y     AV4       494          10
+---
+>         V              Y     AV4       346          10
+294,295c307,308
+<     Peak demand: 988004 words
+<     Current cache: 24004 words
+---
+>     Peak demand: 692004 words
+>     Current cache: 616004 words
+312c325
+<         V              Y     AV4        24           1
+---
+>         V              Y     AV4        17           1
+314c327
+<     Free table slots: 494
+---
+>     Free table slots: 492
+317,318c330,331
+<     Peak demand: 480962 words
+<     Current cache: 802562 words
+---
+>     Peak demand: 340682 words
+>     Current cache: 962602 words
+360c373
+<         V1000          Z                 3           1
+---
+>         V1000          Z                 2           1
+365,366c378,379
+<     Peak demand: 3.108 megawords
+<     Current cache: 1.096 megawords
+---
+>     Peak demand: 2.12 megawords
+>     Current cache: 2.096 megawords
+381c394
+<         V1000          Y                22           1
+---
+>         V1000          Y                15           1
+386,387c399,400
+<     Peak demand: 959680 words
+<     Current cache: 544320 words
+---
+>     Peak demand: 669600 words
+>     Current cache: 460000 words
+406a420
+>         V1000          Z                 2          99
+408c422
+<     Free table slots: 496
+---
+>     Free table slots: 493
+411,412c425,426
+<     Peak demand: 89440 words
+<     Current cache: 88960 words
+---
+>     Peak demand: 69200 words
+>     Current cache: 89440 words
+434c448
+<         V              T     AVE         1           1
+---
+>         V              Y     AVE        91           1
+436c450
+<     Free table slots: 498
+---
+>     Free table slots: 496
+439,440c453,454
+<     Peak demand: 3 megawords
+<     Current cache: 3 megawords
+---
+>     Peak demand: 2.092 megawords
+>     Current cache: 2.262 megawords
+457c471
+<         A              Y     AVE        47           1
+---
+>         A              Y     AVE        26           1
+459c473
+<     Free table slots: 491
+---
+>     Free table slots: 487
+462,463c476,477
+<     Peak demand: 1.94 megawords
+<     Current cache: 2.884 megawords
+---
+>     Peak demand: 1.52 megawords
+>     Current cache: 2.98 megawords
+476c490
+<         D              Y     AVE        47           1
+---
+>         D              Y     AVE        26           1
+478c492
+<     Free table slots: 489
+---
+>     Free table slots: 487
+481,482c495,496
+<     Peak demand: 2.41 megawords
+<     Current cache: 2.84 megawords
+---
+>     Peak demand: 1.78 megawords
+>     Current cache: 2.836 megawords
+514,517c528,531
+<         A              T     AVE         1           1
+<         B              Y     AVE        71           1
+<         C              Y     AVE        47           1
+<         D              Y     AVE        23           1
+---
+>         A              Y     AVE        76           1
+>         B              Y     AVE        59           1
+>         C              Y     AVE        42           1
+>         D              Y     AVE        26           1
+519c533
+<     Free table slots: 487
+---
+>     Free table slots: 484
+522,523c536,537
+<     Peak demand: 2.845 megawords
+<     Current cache: 2.979 megawords
+---
+>     Peak demand: 2.39 megawords
+>     Current cache: 2.918 megawords
+538,539c552,553
+<         A              Y     AVE        47           1
+<         B              Y     AVE        23           1
+---
+>         A              Y     AVE        26           1
+>         B              Y     AVE         9           1
+541c555
+<     Free table slots: 491
+---
+>     Free table slots: 481
+544,545c558,559
+<     Peak demand: 2.46 megawords
+<     Current cache: 2.794 megawords
+---
+>     Peak demand: 2.18 megawords
+>     Current cache: 2.922 megawords
+551c565
+< ! excercise under the default memory management
+---
+> ! excercise under pretty strict memory management
+ 
+SAY **************************************************
+**************************************************
+SAY ************* DIFF FRUGAL 0 TO 60 ****************
+************* DIFF FRUGAL 0 TO 60 ****************
+SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
+1c1
+< CANCEL MODE FRUGAL
+---
+> SET MODE FRUGAL:60
+4c4
+<       FRUGAL        CANCELED            30
+---
+>       FRUGAL           SET              60
+56c56
+<         V              T     AVE         1           1
+---
+>         V              Y     AVE        16           1
+58c58
+<     Free table slots: 498
+---
+>     Free table slots: 478
+61,62c61,62
+<     Peak demand: 6 megawords
+<     Current cache: 6 megawords
+---
+>     Peak demand: 2.384 megawords
+>     Current cache: 5.712 megawords
+65,66c65,66
+<     Peak demand: 6 megawords
+<     Current cache: 6 megawords
+---
+>     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: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
+>          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
+>          1/0.5               993/992.5               1/0.5                 1/0.5
+75a80,155
+>  V[D=test_dyn_mem]                 XYZ   mr:176 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
+>          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
+>          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
+>          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
+>          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
+>          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
+>          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
+>          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
+>          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
+>          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
+>          1/0.5               897/896.5               1/0.5              ... /0.5
+>       1000/1001              912/912.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:243 size:320000
+>          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
+>          1/0.5               881/880.5               1/0.5              ... /0.5
+>       1000/1001              896/896.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:247 size:320000
+>          1/0.5               881/880.5               1/0.5                 1/0.5
+>       1000/1001              896/896.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:244 size:64000
+>          1/0.5               865/864.5               1/0.5              ... /0.5
+>       1000/1001              880/880.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:248 size:320000
+>          1/0.5               865/864.5               1/0.5                 1/0.5
+>       1000/1001              880/880.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:249 size:64000
+>          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
+>          1/0.5               849/848.5               1/0.5                 1/0.5
+>       1000/1001              864/864.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:239 size:64000
+>          1/0.5               833/832.5               1/0.5              ... /0.5
+>       1000/1001              848/848.5               2/2.5              ... /10.5
+>                                                               AVE
+93c173
+<         V              T     VAR         1           1
+---
+>         V              Y     VAR        46           1
+95c175
+<     Free table slots: 498
+---
+>     Free table slots: 488
+98,99c178,179
+<     Peak demand: 8 megawords
+<     Current cache: 8 megawords
+---
+>     Peak demand: 3.196 megawords
+>     Current cache: 7.944 megawords
+116c196
+<         V              Y     AVE       162           1
+---
+>         V              Y     AVE        14           1
+118c198
+<     Free table slots: 496
+---
+>     Free table slots: 474
+121,122c201,202
+<     Peak demand: 5.888 megawords
+<     Current cache: 3.32 megawords
+---
+>     Peak demand: 2.336 megawords
+>     Current cache: 5.896 megawords
+141a222
+>         V              T     AVE         2         999
+143c224
+<     Free table slots: 497
+---
+>     Free table slots: 493
+146c227
+<     Peak demand: 2.024 megawords
+---
+>     Peak demand: 2.008 megawords
+150c231
+<     Peak demand: 2.024 megawords
+---
+>     Peak demand: 2.008 megawords
+153c234
+<  V[D=test_dyn_mem]                 XYZ   mr:231 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: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
+>          1/0.5              1000/999.5               1/0.5                 9/8.5
+164a246,261
+>  V[D=test_dyn_mem]                 XZT   mr:243 size:4000
+>          1/0.5              1000/999.5               1/0.5                 7/6.5
+>       1000/1001             1000/1000.5              2/2.5                 8/8.5
+>  
+>  V[D=test_dyn_mem]                 XZT   mr:244 size:4000
+>          1/0.5              1000/999.5               1/0.5                 5/4.5
+>       1000/1001             1000/1000.5              2/2.5                 6/6.5
+>  
+>  V[D=test_dyn_mem]                 XZT   mr:245 size:4000
+>          1/0.5              1000/999.5               1/0.5                 3/2.5
+>       1000/1001             1000/1000.5              2/2.5                 4/4.5
+>  
+>  V[D=test_dyn_mem]                 XZT   mr:249 size:4000
+>          1/0.5              1000/999.5               1/0.5                 1/0.5
+>       1000/1001             1000/1000.5              2/2.5                 2/2.5
+>  
+183c280
+<         V              Y     VAR       153           1
+---
+>         V              Y     VAR        15           1
+185c282
+<     Free table slots: 496
+---
+>     Free table slots: 478
+188,189c285,286
+<     Peak demand: 5.978 megawords
+<     Current cache: 5.05 megawords
+---
+>     Peak demand: 2.39 megawords
+>     Current cache: 5.86 megawords
+210c307
+<         V              Z     AV4         1           1
+---
+>         V              Y     AV4       200           1
+212c309
+<     Free table slots: 498
+---
+>     Free table slots: 497
+215,216c312,313
+<     Peak demand: 1.000002 megawords
+<     Current cache: 1.000002 megawords
+---
+>     Peak demand: 400002 words
+>     Current cache: 800002 words
+233c330
+<         V              Y     AV4       494           1
+---
+>         V              Y     AV4       197           1
+235c332
+<     Free table slots: 498
+---
+>     Free table slots: 496
+238,239c335,336
+<     Peak demand: 988002 words
+<     Current cache: 24002 words
+---
+>     Peak demand: 394002 words
+>     Current cache: 818002 words
+263c360
+<         V              Y     AV4       989          10
+---
+>         V              Y     AV4       395          10
+265c362
+<         V              Y     AV4       989          10
+---
+>         V              Y     AV4       395          10
+267c364
+<     Free table slots: 496
+---
+>     Free table slots: 495
+270,271c367,368
+<     Peak demand: 989006 words
+<     Current cache: 11006 words
+---
+>     Peak demand: 395006 words
+>     Current cache: 605006 words
+289c386
+<         V              Y     AV4       494          10
+---
+>         V              Y     AV4       197          10
+291c388
+<     Free table slots: 497
+---
+>     Free table slots: 495
+294,295c391,392
+<     Peak demand: 988004 words
+<     Current cache: 24004 words
+---
+>     Peak demand: 394004 words
+>     Current cache: 818004 words
+312c409
+<         V              Y     AV4        24           1
+---
+>         V              Y     AV4         9           1
+314c411
+<     Free table slots: 494
+---
+>     Free table slots: 486
+317,318c414,415
+<     Peak demand: 480962 words
+<     Current cache: 802562 words
+---
+>     Peak demand: 180362 words
+>     Current cache: 922202 words
+339c436,438
+<     No split/gather occurred in the last evaluation
+---
+>     Last gather
+>         Variable    Axis   Xform     Chunk    Repeated
+>         V1000          Z                 3           1
+341c440
+<     Free table slots: 498
+---
+>     Free table slots: 495
+344,345c443,444
+<     Peak demand: 4.144 megawords
+<     Current cache: 4.048 megawords
+---
+>     Peak demand: 3.108 megawords
+>     Current cache: 4.096 megawords
+360c459
+<         V1000          Z                 3           1
+---
+>         V1000          Z                 1           1
+362c461
+<     Free table slots: 496
+---
+>     Free table slots: 492
+365,366c464,465
+<     Peak demand: 3.108 megawords
+<     Current cache: 1.096 megawords
+---
+>     Peak demand: 1.084 megawords
+>     Current cache: 3.096 megawords
+381c480
+<         V1000          Y                22           1
+---
+>         V1000          Y                 8           1
+383c482
+<     Free table slots: 496
+---
+>     Free table slots: 492
+386,387c485,486
+<     Peak demand: 959680 words
+<     Current cache: 544320 words
+---
+>     Peak demand: 379520 words
+>     Current cache: 861440 words
+406a506
+>         V1000          Z                 3         100
+408c508
+<     Free table slots: 496
+---
+>     Free table slots: 488
+411,412c511,512
+<     Peak demand: 89440 words
+<     Current cache: 88960 words
+---
+>     Peak demand: 58840 words
+>     Current cache: 89560 words
+434c534
+<         V              T     AVE         1           1
+---
+>         V              Y     AVE        16           1
+436c536
+<     Free table slots: 498
+---
+>     Free table slots: 478
+439,440c539,540
+<     Peak demand: 3 megawords
+<     Current cache: 3 megawords
+---
+>     Peak demand: 1.192 megawords
+>     Current cache: 2.856 megawords
+457c557
+<         A              Y     AVE        47           1
+---
+>         A              Y     AVE         4           1
+459c559
+<     Free table slots: 491
+---
+>     Free table slots: 431
+462,463c562,563
+<     Peak demand: 1.94 megawords
+<     Current cache: 2.884 megawords
+---
+>     Peak demand: 1.08 megawords
+>     Current cache: 2.984 megawords
+476c576
+<         D              Y     AVE        47           1
+---
+>         D              Y     AVE         4           1
+478c578
+<     Free table slots: 489
+---
+>     Free table slots: 442
+481,482c581,582
+<     Peak demand: 2.41 megawords
+<     Current cache: 2.84 megawords
+---
+>     Peak demand: 1.12 megawords
+>     Current cache: 2.992 megawords
+514,517c614,617
+<         A              T     AVE         1           1
+<         B              Y     AVE        71           1
+<         C              Y     AVE        47           1
+<         D              Y     AVE        23           1
+---
+>         A              Y     AVE        33           1
+>         B              Y     AVE        23           1
+>         C              Y     AVE        14           1
+>         D              Y     AVE         4           1
+519c619
+<     Free table slots: 487
+---
+>     Free table slots: 439
+522,523c622,623
+<     Peak demand: 2.845 megawords
+<     Current cache: 2.979 megawords
+---
+>     Peak demand: 2.06 megawords
+>     Current cache: 2.996 megawords
+538,539c638,639
+<         A              Y     AVE        47           1
+<         B              Y     AVE        23           1
+---
+>         A              Y     AVE         4           1
+>         B              Y     AVE         9           1
+541c641
+<     Free table slots: 491
+---
+>     Free table slots: 481
+544,545c644,645
+<     Peak demand: 2.46 megawords
+<     Current cache: 2.794 megawords
+---
+>     Peak demand: 2.18 megawords
+>     Current cache: 2.922 megawords
+551d650
+< ! excercise under the default memory management
+ 
+ 
+! deliberate error
+SET MODE IGNORE
+SET MODE FRUGAL:95
+SET MODE/LAST IGNORE
+ 
+ 
+GO bn_reset bn_stat_precision
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_stat_precision
+GO bn_stat_precision
+! bn_stat_precision.jnl
+! 3/2017 *acm* Ticket 2512
+ 
+! The stat command self-adjusts precision to make the
+! min and max listed distinct
+ 
+let var = {1907.1,1907.05,1907.11}
+stat/br var
+ 
+ Total # of data points: 3 (3*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 1907.05
+ Maximum value: 1907.11
+ Mean    value: 1907.08667 (unweighted average)
+ 
+let var = {1907.001,1907.0005,1907.0011}
+stat/br var
+ 
+ Total # of data points: 3 (3*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 1907.0005
+ Maximum value: 1907.0011
+ Mean    value: 1907.00087 (unweighted average)
+ 
+let var = {221907.001,221907.0005,221907.0011}
+stat/br var
+ 
+ Total # of data points: 3 (3*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 221907.0005
+ Maximum value: 221907.0011
+ Mean    value: 221907.0008666667 (unweighted average)
+ 
+ 
+! STAT/PREC controls the precision, writing more or less digits
+ 
+stat/br/prec=5 var
+ 
+ Total # of data points: 3 (3*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 221907
+ Maximum value: 221907
+ Mean    value: 221907 (unweighted average)
+stat/br/prec=12 var
+ 
+ Total # of data points: 3 (3*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 221907.0005
+ Maximum value: 221907.0011
+ Mean    value: 221907.000867 (unweighted average)
+ 
+! some more examples
+let var = 30*randu(1+i[i=1:10])
+stat/br var
+ 
+ Total # of data points: 10 (10*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 2.7871
+ Maximum value: 27.002
+ Mean    value: 15.77 (unweighted average)
+stat/br/prec=3 var
+ 
+ Total # of data points: 10 (10*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 2.79
+ Maximum value: 27
+ Mean    value: 15.8 (unweighted average)
+stat/br/prec=7 var
+ 
+ Total # of data points: 10 (10*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 2.787087
+ Maximum value: 27.00225
+ Mean    value: 15.76991 (unweighted average)
+stat/br/prec=12 var
+ 
+ Total # of data points: 10 (10*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 2.78708674143
+ Maximum value: 27.002246751
+ Mean    value: 15.76991222 (unweighted average)
+ 
+GO bn_reset bn_plot_vs_with_time
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_vs_with_time
+GO bn_plot_vs_with_time
+! bn_plot_vs_with_time.jnl
+! See ticket 2246
+! 3/27/2017 *ACM*
+ 
+! PLOT/VS plots automatically draw a formatted time axis
+! when one of the variables has calendar units and time origin
+ 
+! (Currently allow just one axis to be time formatted)
+ 
+can mode logo
+ 
+! Date units syntax days since 1982-01-01 is valid
+ 
+define axis/t=1:500:10/units=days/t0="01-jan-1982" tax
+let/units="days since 1982-01-01" mytime2 = t[gt=tax]
+ 
+let myvar2 = RANDU(mytime2)
+plot/vs/line mytime2, myvar2
+plot/vs/over/sym/color=red mytime2[L=1:50:2], myvar2[L=1:50:2]
+ 
+! time axis on the vertical
+ 
+! Date syntax days since 01-jan-1982 is also valid.
+define axis/t=1:500:10/units=days/t0="01-jan-1982" tax
+let/units="days since 01-jan-1982" mytime2 = t[gt=tax]
+ 
+plot/vs/line myvar2, mytime2
+plot/vs/over/sym/color=red/line  myvar2[L=1:50:2],  mytime2[L=1:50:2]
+ 
+! LAS style plots:
+! Dataset with pressure,temperature on ZT grid. Define a time variable
+! send it to PLOT/VS to draw plots with time-formatted axis, plain
+! 2-variable plots and plot/vs plots.
+! Define variables as if gridded T-Z data in spurs dataset
+ 
+define axis/t="25-JAN-2017:23:00":"02-FEB-2017 10:00":12/units=hours/t0=1-jan-2017 time
+define axis/z=1:50:4/units=m/depth zaxis
+let/title=pressure/units=m pres=z[gz=zaxis] + 0.3*randu(t[gt=time])
+let/title=temperature/units="Deg C" temp = 20 - z[gz=zaxis] + 10*randu(t[gt=time])
+ 
+! Define a time variable
+let/units="`pres,return=tunits` since `pres,return=t0`" ttvar = t[gt=temp] + 0*temp
+ !-> DEFINE VARIABLE/units="HOURS since 1-JAN-2017" ttvar = t[gt=temp] + 0*temp
+ 
+! time on horizontal axis
+set v ul; plot/vs/ribbon/sym=17/thick/vlim=50:0  ttvar, pres, temp
+ 
+! time on vertical axis
+set v ur; plot/vs/ribbon/sym=17/thick/hlim=50:0  pres, ttvar, temp
+ 
+! More time axis styles
+ 
+define axis/t=1-jan-2016:1-jan-2017:45/units=days/t0=1-jan-1970 time
+let/title=pressure/units=m pres=z[gz=zaxis] + 0.3*randu(t[gt=time])
+let/title=temperature/units="Deg C" temp = 20 - z[gz=zaxis] + 10*randu(t[gt=time])
+let/units="`pres,return=tunits` since `pres,return=t0`" ttvar = t[gt=temp] + 0*temp
+ !-> DEFINE VARIABLE/units="DAYS since 1-JAN-1970" ttvar = t[gt=temp] + 0*temp
+ 
+set v ll; plot/vs/ribbon/sym=17/thick/vlim=50:0  ttvar, pres, temp
+ 
+define axis/t=1-jan-2001:1-jan-2012:181/units=days/t0=1-jan-1970 time
+let/title=pressure/units=m pres=z[gz=zaxis] + 0.3*randu(t[gt=time])
+let/title=temperature/units="Deg C" temp = 20 - z[gz=zaxis] + 10*randu(t[gt=time])
+let/units="`pres,return=tunits` since `pres,return=t0`" ttvar = t[gt=temp] + 0*temp
+ !-> DEFINE VARIABLE/units="DAYS since 1-JAN-1970" ttvar = t[gt=temp] + 0*temp
+ 
+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
+ 
+exit/script  !4/10/17 ACM this fails on running twice in a row. Exit until fixes are checked in.
+ 
+GO bn_reset bn_cache_management
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cache_management
+GO bn_cache_management
+! 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)
+ 
+! 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.
+! It is supposed to chose the cached result that has not been used for the
+! longest time, AND that is not being "protected" because it is needed in a
+! pending calculation.  This script is intended to exercise that behavior.
+ 
+! Memory footprint needed:
+! Each dataset contains 7 variables of 1 Mword each
+! VTREE reveals that the "result" variable requires 78 intermediate variables
+! of size 1Mword (plus 7 small ones)
+! Of these only 12 variables needed in the top level "result" sum calculation
+! Each of the top level variables in turn requires ?25? component variables
+! But the top level variables need these components only in sequence.
+! So if no split-gather is performed, Ferret requires ~12+25=37 Mwords
+ 
+DEFINE SYMBOL saved_memory_size = ($FERRET_MEMORY)
+ !-> DEFINE SYMBOL saved_memory_size = 3
+ 
+SET MEMORY/SIZE=20
+CANCEL MEMORY/ALL
+ 
+DEFINE SYMBOL nsets = 20
+ 
+define axis/x=1:1000000:1 xmillion
+ 
+! aside: to demonstrate lmitations of ferret memory management prior to
+! dynamic memory, use
+!     yes? set memory/size=37
+!     yes? GO test_auto_cache_delete 0 20
+ 
+! see if the test files already exist
+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
+ELSE
+ENDIF
+ 
+! open the many input datasets
+REPEAT/k=1:($nsets)  USE tmp/test_auto_cache_`k`.nc
+ !-> REPEAT/k=1:20  USE tmp/test_auto_cache_`k`.nc
+!-> REPEAT: K=1
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_1.nc
+!-> REPEAT: K=2
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_2.nc
+!-> REPEAT: K=3
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_3.nc
+!-> REPEAT: K=4
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_4.nc
+!-> REPEAT: K=5
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_5.nc
+!-> REPEAT: K=6
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_6.nc
+!-> REPEAT: K=7
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_7.nc
+!-> REPEAT: K=8
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_8.nc
+!-> REPEAT: K=9
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_9.nc
+!-> REPEAT: K=10
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_10.nc
+!-> REPEAT: K=11
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_11.nc
+!-> REPEAT: K=12
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_12.nc
+!-> REPEAT: K=13
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_13.nc
+!-> REPEAT: K=14
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_14.nc
+!-> REPEAT: K=15
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_15.nc
+!-> REPEAT: K=16
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_16.nc
+!-> REPEAT: K=17
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_17.nc
+!-> REPEAT: K=18
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_18.nc
+!-> REPEAT: K=19
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_19.nc
+!-> REPEAT: K=20
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_20.nc
+ 
+! define a huge tree of variables
+let  r_one      = RESHAPE(one,X[gx=xmillion])
+let  r_ten      = RESHAPE(ten,X[gx=xmillion])
+let  r_hundred  = RESHAPE(hundred,X[gx=xmillion])
+let  r_thousand = RESHAPE(thousand,X[gx=xmillion])
+let  r_tenthou  = RESHAPE(tenthou,X[gx=xmillion])
+let  r_hundthou = RESHAPE(hundthou,X[gx=xmillion])
+let  r_million  = RESHAPE(million,X[gx=xmillion])
+ 
+let a_one     = r_one[X=@ave]
+let a_ten     = r_ten[X=@ave]
+let a_hundred = r_hundred[X=@ave]
+let a_thousand= r_thousand[X=@ave]
+let a_tenthou = r_tenthou[X=@ave]
+let a_hundthou= r_hundthou[X=@ave]
+let a_million = r_million[X=@ave]
+ 
+let one_2      = a_one
+let ten_2      = a_ten
+let hundred_2  = a_hundred
+let thousand_2 = a_thousand
+let tenthou_2  = a_tenthou
+let hundthou_2 = a_hundthou
+let million_2  = a_million
+ 
+let one_3      = a_one
+let ten_3      = a_ten
+let hundred_3  = a_hundred
+let thousand_3 = a_thousand
+let tenthou_3  = a_tenthou
+let hundthou_3 = a_hundthou
+let million_3  = a_million
+ 
+let result_31 = \
+one_3 + ten_3 + hundred_3 + thousand_3 + tenthou_3 + hundthou_3 + million_3
+ 
+let result_21 = \
+one_2 + ten_2 + hundred_2 + thousand_2 + tenthou_2 + hundthou_2 + million_2
+ 
+let result_32 = \
+one_3 + ten_3 + hundred_3 + thousand_3 + tenthou_3 + hundthou_3 + million_3
+ 
+let result_22 = \
+one_2 + ten_2 + hundred_2 + thousand_2 + tenthou_2 + hundthou_2 + million_2
+ 
+let result = result_31 + result_21 + result_32 + result_22 + \
+a_one + a_ten + a_hundred + a_thousand + a_tenthou + a_hundthou + a_million
+ 
+! process all of the datasets in turn
+! ==> WATCH HOW THE NUMBER OF FREE SLOTS IS PROGRESSIVELY EXHAUSTED
+! This proves that we are exercising the limits of table space
+sp rm -f test_auto_cache.out
+REPEAT/k=1:($nsets)  \
+(list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_`k`.nc];\
+SHOW MEMORY/DIAG)
+ !-> REPEAT/k=1:20  (list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_`k`.nc];SHOW MEMORY/DIAG)
+!-> REPEAT: K=1
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_1.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 432
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 14.21004 megawords
+!-> REPEAT: K=2
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_2.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 385
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 7.42008 megawords
+!-> REPEAT: K=3
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_3.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 331
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 7.63012 megawords
+!-> REPEAT: K=4
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_4.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 277
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 7.84016 megawords
+!-> REPEAT: K=5
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_5.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 223
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.0502 megawords
+!-> REPEAT: K=6
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_6.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 169
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.26024 megawords
+!-> REPEAT: K=7
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_7.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 115
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.47028 megawords
+!-> REPEAT: K=8
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_8.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 61
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.68032 megawords
+!-> REPEAT: K=9
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_9.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 7
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.89036 megawords
+!-> REPEAT: K=10
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_10.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=11
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_11.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=12
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_12.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=13
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_13.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=14
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_14.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=15
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_15.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=16
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_16.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=17
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_17.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=18
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_18.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=19
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_19.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=20
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_20.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+ 
+! success
+vtree result
+   in default dataset test_auto_cache_20
+   RESULT = RESULT_31 + RESULT_21 + RESULT_32 + RESULT_22 + A_ONE + A_TEN + A_HUNDRED + A_THOUSAND + A_TENTHOU + A_HUNDTHOU + A_MILLION
+     RESULT_31 = ONE_3 + TEN_3 + HUNDRED_3 + THOUSAND_3 + TENTHOU_3 + HUNDTHOU_3 + MILLION_3
+       ONE_3 = A_ONE
+         A_ONE = R_ONE[X=@AVE]
+           R_ONE = RESHAPE(ONE,X[GX=XMILLION])
+             (C001,V002) = RESHAPE(ONE,X[GX=XMILLION])
+               (C013,V002) = X[GX=XMILLION]
+       TEN_3 = A_TEN
+         A_TEN = R_TEN[X=@AVE]
+           R_TEN = RESHAPE(TEN,X[GX=XMILLION])
+             (C001,V005) = RESHAPE(TEN,X[GX=XMILLION])
+               (C013,V005) = X[GX=XMILLION]
+       HUNDRED_3 = A_HUNDRED
+         A_HUNDRED = R_HUNDRED[X=@AVE]
+           R_HUNDRED = RESHAPE(HUNDRED,X[GX=XMILLION])
+             (C001,V008) = RESHAPE(HUNDRED,X[GX=XMILLION])
+               (C017,V008) = X[GX=XMILLION]
+       THOUSAND_3 = A_THOUSAND
+         A_THOUSAND = R_THOUSAND[X=@AVE]
+           R_THOUSAND = RESHAPE(THOUSAND,X[GX=XMILLION])
+             (C001,V011) = RESHAPE(THOUSAND,X[GX=XMILLION])
+               (C018,V011) = X[GX=XMILLION]
+       TENTHOU_3 = A_TENTHOU
+         A_TENTHOU = R_TENTHOU[X=@AVE]
+           R_TENTHOU = RESHAPE(TENTHOU,X[GX=XMILLION])
+             (C001,V014) = RESHAPE(TENTHOU,X[GX=XMILLION])
+               (C017,V014) = X[GX=XMILLION]
+       HUNDTHOU_3 = A_HUNDTHOU
+         A_HUNDTHOU = R_HUNDTHOU[X=@AVE]
+           R_HUNDTHOU = RESHAPE(HUNDTHOU,X[GX=XMILLION])
+             (C001,V017) = RESHAPE(HUNDTHOU,X[GX=XMILLION])
+               (C018,V017) = X[GX=XMILLION]
+       MILLION_3 = A_MILLION
+         A_MILLION = R_MILLION[X=@AVE]
+           R_MILLION = RESHAPE(MILLION,X[GX=XMILLION])
+             (C001,V020) = RESHAPE(MILLION,X[GX=XMILLION])
+               (C017,V020) = X[GX=XMILLION]
+     RESULT_21 = ONE_2 + TEN_2 + HUNDRED_2 + THOUSAND_2 + TENTHOU_2 + HUNDTHOU_2 + MILLION_2
+       ONE_2 = A_ONE
+         A_ONE =  (defined above)
+       TEN_2 = A_TEN
+         A_TEN =  (defined above)
+       HUNDRED_2 = A_HUNDRED
+         A_HUNDRED =  (defined above)
+       THOUSAND_2 = A_THOUSAND
+         A_THOUSAND =  (defined above)
+       TENTHOU_2 = A_TENTHOU
+         A_TENTHOU =  (defined above)
+       HUNDTHOU_2 = A_HUNDTHOU
+         A_HUNDTHOU =  (defined above)
+       MILLION_2 = A_MILLION
+         A_MILLION =  (defined above)
+     RESULT_32 = ONE_3 + TEN_3 + HUNDRED_3 + THOUSAND_3 + TENTHOU_3 + HUNDTHOU_3 + MILLION_3
+       ONE_3 =  (defined above)
+       TEN_3 =  (defined above)
+       HUNDRED_3 =  (defined above)
+       THOUSAND_3 =  (defined above)
+       TENTHOU_3 =  (defined above)
+       HUNDTHOU_3 =  (defined above)
+       MILLION_3 =  (defined above)
+     RESULT_22 = ONE_2 + TEN_2 + HUNDRED_2 + THOUSAND_2 + TENTHOU_2 + HUNDTHOU_2 + MILLION_2
+       ONE_2 =  (defined above)
+       TEN_2 =  (defined above)
+       HUNDRED_2 =  (defined above)
+       THOUSAND_2 =  (defined above)
+       TENTHOU_2 =  (defined above)
+       HUNDTHOU_2 =  (defined above)
+       MILLION_2 =  (defined above)
+     A_ONE =  (defined above)
+     A_TEN =  (defined above)
+     A_HUNDRED =  (defined above)
+     A_THOUSAND =  (defined above)
+     A_TENTHOU =  (defined above)
+     A_HUNDTHOU =  (defined above)
+     A_MILLION =  (defined above)
+! show that the calculation result never varied
+spawn cat test_auto_cache.out
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+ 
+! clean up
+SET MEMORY/SIZE=($saved_memory_size)
+ !-> SET MEMORY/SIZE=3
+ 
+!  *********** Always do a bn_reset  ***********
+!  *********** make sure things clean up well **
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+ 
+! version 2.3 requires exit/command *sh* 3/92
+exit/command
+yes? ! bn_all_ef_shell.jnl
+yes? ! 5/05 *acm*
+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     
+
+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
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO bn_ef_external_functions.jnl
+! Tests of external functions that are distributed as shared object files.
+ 
+! Jon's benchmarks
+go bench_examples
+set mode ignore_error
+show func/ext add_9
+ADD_9(A,B,C,D,E,F,G,H,I)
+    (demonstration function) adds 9 arguments
+show func/ext ave*
+AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
+    Compute average of a variable in each cell of output time axis
+    TPTS: T coordinates of scattered input time coordinates
+    VPTS: Variable at times in TPTS
+    TAXIS: Output time axis
+AVET(A)
+    (demonstration function) returns the time average
+    A: data to be averaged over the time axis
+show func pass_thru
+PASS_THRU(A)
+    (demonstration function) sets result equal to input
+    A: this arg is passed through
+show func sto*
+STORAGE(A)
+    sets result equal to input/10
+    A: input
+ 
+go bench_add_9
+! Bench_add_9.jnl
+!  ACM  8/99
+!  benchmark script for testing external function add_9.
+! Note: bench_add_9_visual contains plots of similar computations
+ 
+set mode ignore_errors
+ 
+ 
+can region
+use coads_climatology
+set region/x=151E:179E/y=0
+ 
+let a1 = sst[d=1,l=1]
+let a2 = sst[d=1,l=2]
+let a3 = sst[d=1,l=3]
+ 
+let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
+ 
+list a
+             VARIABLE : ADD_9(A1,A2,A3,A1,A2,A3,A1,A2,A3)
+             SUBSET   : 15 points (LONGITUDE)
+             LATITUDE : 1S
+             TIME     : 16-JAN 06:00
+                1S    
+                45
+ 151E   / 66:  263.6
+ 153E   / 67:  264.5
+ 155E   / 68:  264.2
+ 157E   / 69:  261.3
+ 159E   / 70:  260.9
+ 161E   / 71:  262.4
+ 163E   / 72:  264.0
+ 165E   / 73:  261.1
+ 167E   / 74:  260.9
+ 169E   / 75:  261.0
+ 171E   / 76:  259.3
+ 173E   / 77:  257.9
+ 175E   / 78:  257.0
+ 177E   / 79:  259.1
+ 179E   / 80:  254.8
+list  a - 3 * sst[d=1,l=1:3 at sum]
+             VARIABLE : A - 3 * SST[D=coads_climatology,L=1:3 at SUM]
+             SUBSET   : 15 points (LONGITUDE)
+             LATITUDE : 1S
+             TIME     : 16-JAN 06:00
+                 1S    
+                 45
+ 151E   / 66:  0.0000
+ 153E   / 67:  0.0000
+ 155E   / 68:  0.0000
+ 157E   / 69:  0.0000
+ 159E   / 70:  0.0000
+ 161E   / 71:  0.0000
+ 163E   / 72:  0.0000
+ 165E   / 73:  0.0000
+ 167E   / 74:  0.0000
+ 169E   / 75:  0.0000
+ 171E   / 76:  0.0000
+ 173E   / 77:  0.0000
+ 175E   / 78:  0.0000
+ 177E   / 79:  0.0000
+ 179E   / 80:  0.0000
+set mode/last ignore_errors
+go bench_avet
+! Bench_avet.jnl
+!  ACM  8/99
+!  benchmark script for testing external function avet.
+! Note: bench_avet_visual.jnl contains plots of similar computations
+ 
+set mode ignore_errors
+ 
+can region
+use coads_climatology
+set region/x=151E:179E/y=0
+ 
+let a = avet(sst)
+list a
+             VARIABLE : AVET(SST)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 15 points (LONGITUDE)
+             LATITUDE : 1S
+                1S    
+                45
+ 151E   / 66:  29.28
+ 153E   / 67:  29.39
+ 155E   / 68:  29.35
+ 157E   / 69:  29.03
+ 159E   / 70:  28.99
+ 161E   / 71:  29.15
+ 163E   / 72:  29.33
+ 165E   / 73:  29.01
+ 167E   / 74:  28.99
+ 169E   / 75:  29.00
+ 171E   / 76:  28.81
+ 173E   / 77:  28.66
+ 175E   / 78:  28.56
+ 177E   / 79:  28.79
+ 179E   / 80:  28.31
+list a - sst[l=@ave]
+             VARIABLE : A - SST[L=@AVE]
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 15 points (LONGITUDE)
+             LATITUDE : 1S
+             TIME     : 01-JAN 00:45 to 01-APR 08:12
+                  1S      
+                  45
+ 151E   / 66: -3.553E-15
+ 153E   / 67:  0.000E+00
+ 155E   / 68:  0.000E+00
+ 157E   / 69:  0.000E+00
+ 159E   / 70: -3.553E-15
+ 161E   / 71:  0.000E+00
+ 163E   / 72: -3.553E-15
+ 165E   / 73: -3.553E-15
+ 167E   / 74:  0.000E+00
+ 169E   / 75: -3.553E-15
+ 171E   / 76:  0.000E+00
+ 173E   / 77: -3.553E-15
+ 175E   / 78:  3.553E-15
+ 177E   / 79:  0.000E+00
+ 179E   / 80:  0.000E+00
+ 
+can region
+let a = x[i=1:9,k=1:5] + t[l=1:5]
+let b = x[i=1:9,k=1:5]
+let c = avet(a)
+list b, c
+             X: 0.5 to 9.5
+ Column  1: B is X[I=1:9,K=1:5]
+ Column  2: C is AVET(A)
+             B     C
+1   / 1:  1.000   4.00
+2   / 2:  2.000   5.00
+3   / 3:  3.000   6.00
+4   / 4:  4.000   7.00
+5   / 5:  5.000   8.00
+6   / 6:  6.000   9.00
+7   / 7:  7.000  10.00
+8   / 8:  8.000  11.00
+9   / 9:  9.000  12.00
+ 
+set mode/last ignore_errors
+go bench_pass_thru
+! Bench_pass_thru.jnl
+!  ACM  8/99
+!  benchmark script for testing external function pass_thru.
+! Note: bench_pass_thru_visual.jnl contains plots of similar computations
+ 
+set mode ignore_errors
+ 
+can region
+let a = pass_thru(x)
+list a[i=1:20]
+             VARIABLE : PASS_THRU(X)
+             SUBSET   : 20 points (X)
+ 1    /  1:   1.00
+ 2    /  2:   2.00
+ 3    /  3:   3.00
+ 4    /  4:   4.00
+ 5    /  5:   5.00
+ 6    /  6:   6.00
+ 7    /  7:   7.00
+ 8    /  8:   8.00
+ 9    /  9:   9.00
+ 10   / 10:  10.00
+ 11   / 11:  11.00
+ 12   / 12:  12.00
+ 13   / 13:  13.00
+ 14   / 14:  14.00
+ 15   / 15:  15.00
+ 16   / 16:  16.00
+ 17   / 17:  17.00
+ 18   / 18:  18.00
+ 19   / 19:  19.00
+ 20   / 20:  20.00
+set region/i=1:20
+list sin(a)
+             VARIABLE : SIN(A)
+             SUBSET   : 20 points (X)
+ 1    /  1:  0.8415
+ 2    /  2:  0.9093
+ 3    /  3:  0.1411
+ 4    /  4: -0.7568
+ 5    /  5: -0.9589
+ 6    /  6: -0.2794
+ 7    /  7:  0.6570
+ 8    /  8:  0.9894
+ 9    /  9:  0.4121
+ 10   / 10: -0.5440
+ 11   / 11: -1.0000
+ 12   / 12: -0.5366
+ 13   / 13:  0.4202
+ 14   / 14:  0.9906
+ 15   / 15:  0.6503
+ 16   / 16: -0.2879
+ 17   / 17: -0.9614
+ 18   / 18: -0.7510
+ 19   / 19:  0.1499
+ 20   / 20:  0.9129
+can var/all
+can region
+ 
+use coads_climatology
+let a = pass_thru(sst[l=@ave,y=@sbx:11])
+list/x=50 a
+             VARIABLE : PASS_THRU(SST[L=@AVE,Y=@SBX:11])
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 90 points (LATITUDE)
+             LONGITUDE: 49E
+             TIME     : 01-JAN 00:45 to 01-APR 08:12
+               49E   
                15
  89N   / 90:   ....
  87N   / 89:   ....
@@ -95802,48 +104120,11 @@ set mode/last ignore_errors
 !
 !!!!!!!!!!!!!!!!!!!!!!
  
-! Ansley's benchmarks
-! move bench tests that test internal external functions to their
-! own .jnl file  bn_internal_external_functions
-!
-! 4/2006 all efs distributed with Ferret except writev5d and the
-!        examples tested in bench_examples.jnl are now internally linked.
- 
-GO bn_reset
-cancel mode verify
-go bench_v5d
-! benchmark for Vis5D external function
-! 5/99 ACM
- 
- 
-!  Write data to a Vis5D file.  The first argument to the
-!  GO script is the file, arguments 2 through 9 are variable names to be written.
-! 7/2007 Funtion doesnt want to write a variable that doesnt have a vertical variation.
-!        To get a basic test of the function, make some data on a regularly-spaced xy grid.
- 
-can region
- set mode ignore_error
- 
-use gt4d011.cdf
-def axis/y=1:100:1/units=degrees yax
-let tr = temp[gy=yax at asn]
-go vis5d_write " " tr
-To view the file with Vis5D say:   GO vis5d_start vis5d_out.v5d
- 
-set mode/last ignore_error
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_ef_v5d_strings.jnl
-! bn_ef_v5d_strings.jnl
-! Taken out of bn_strings, because it calls so file writev5d.
-! testing string argument to external function.
-! 5/4/05 acm
-exit/script ! I dont have writev5d on this machine.
+! 12/16 No other external functions are distributed. Remove further references.
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_fcn_calls.jnl
 ! Simple tests of external functions
 ! these are not otherwise tested in the benchmarkd
@@ -95875,7 +104156,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -95900,7 +104181,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -95924,7 +104205,7 @@ variables:
 		B:long_name = "\"one line of text\"" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -95963,7 +104244,7 @@ variables:
 		D:history = "From test_string" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -95998,7 +104279,7 @@ variables:
 		B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96039,7 +104320,7 @@ variables:
 		V:long_name = "T[GT=MONTH_IRREG]" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96096,7 +104377,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96153,7 +104434,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96208,7 +104489,7 @@ variables:
 		T2:long_name = "Z[GZ=ZIRR]" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96256,7 +104537,7 @@ variables:
 		V:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96350,7 +104631,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96420,7 +104701,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96471,7 +104752,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96546,7 +104827,7 @@ variables:
 		A:long_name = "T[GT=TIME]" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96573,7 +104854,7 @@ variables:
 		X_:long_name_mod = "axis ABSTRACT" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
 data:
@@ -96597,7 +104878,7 @@ variables:
 		A:history = "From x" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-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:
@@ -96624,11 +104905,11 @@ variables:
 		A:history = "From t0_cdc" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_long_revision_num.jnl --- history attribute
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 bn_bounds_defineax.jnl --- N+1 def of bounds.
 netcdf irrxzt {
 dimensions:
@@ -96659,7 +104940,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96731,7 +105012,7 @@ variables:
 		VAR_B:long_name = "my strings" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96753,7 +105034,7 @@ variables:
 		COADSX105_105:units = "degrees_east" ;
 		COADSX105_105:modulo = " " ;
 		COADSX105_105:point_spacing = "even" ;
-		COADSX105_105:newatt = 0.f ;
+		COADSX105_105:newatt = 3.f ;
 		COADSX105_105:axis = "X" ;
 		COADSX105_105:standard_name = "longitude" ;
 	double COADSY45_45(COADSY45_45) ;
@@ -96775,7 +105056,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96817,7 +105098,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96925,7 +105206,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
@@ -96966,7 +105247,7 @@ variables:
 		Elev:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 7 outtput flags to control attribute output
@@ -96989,7 +105270,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97015,7 +105296,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97035,7 +105316,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97056,7 +105337,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97099,7 +105380,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 12 Check that settings hold for child axis.
@@ -97139,7 +105420,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -97177,7 +105458,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 14 attributes of data from ez data.
@@ -97191,22 +105472,22 @@ variables:
 	float A1(AX047) ;
 		A1:missing_value = -1.e+34f ;
 		A1:_FillValue = -1.e+34f ;
-		A1:long_name = "A1" ;
+		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 ;
-		A2:long_name = "A2" ;
+		A2:long_name = "a2" ;
 		A2:history = "From EZ.DAT" ;
 	float A3(AX047) ;
 		A3:missing_value = -1.e+34f ;
 		A3:_FillValue = -1.e+34f ;
-		A3:long_name = "A3" ;
+		A3:long_name = "a3" ;
 		A3:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97239,7 +105520,7 @@ variables:
 		V4:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97265,7 +105546,7 @@ variables:
 		A:four = "theory" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97311,7 +105592,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 		:simulation = "K-Bay OAR3d model (200m)" ;
 		:start_date = "980105000000" ;
@@ -97418,7 +105699,7 @@ variables:
 		TEMP:units = "deg. C" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 		:dt_internal = 15. ;
 }
@@ -97460,7 +105741,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97543,7 +105824,7 @@ variables:
 		RIGUE:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97580,7 +105861,7 @@ variables:
 		B:long_name = "hello" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97620,7 +105901,7 @@ variables:
 		VWND:units = "M/S" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97671,7 +105952,7 @@ variables:
 		T2:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97730,7 +106011,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -97775,7 +106056,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -97818,7 +106099,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -97853,7 +106134,7 @@ variables:
 		TEMP:units = "DEG C" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -97887,7 +106168,7 @@ variables:
 		TWO:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 27 attributes of  user-defined axes
@@ -97917,7 +106198,7 @@ variables:
 		AXY:long_name = "RESHAPE (A,RVAR)" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 28 Define a new global attribute
@@ -97946,7 +106227,7 @@ variables:
 		BROILED:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 		:glob = "Global attribute" ;
 		:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -98007,7 +106288,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -98052,7 +106333,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -98071,7 +106352,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -98101,7 +106382,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -98131,7 +106412,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -98184,7 +106465,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -98226,7 +106507,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -98244,7 +106525,7 @@ variables:
 		V:long_name = "Y[GY=YAXIS]" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 err611_set_var_ez.jnl --- 
@@ -98263,7 +106544,7 @@ variables:
 		MY_ASC:history = "From dat.dat" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -98281,7 +106562,7 @@ variables:
 		MY_UNF:history = "From unf.dat" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
@@ -98298,7 +106579,7 @@ variables:
 		A:long_name = "{1.1,2.2,3.3}" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -98319,7 +106600,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 V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -98375,14 +106656,14 @@ variables:
 		time1478:point_spacing = "even" ;
 		time1478:standard_name = "time" ;
 	double newvar(time1478, zt, lat1_5, lon1_5) ;
-		newvar:missing_value = -999. ;
-		newvar:_FillValue = -999. ;
+		newvar:missing_value = -1.e+34 ;
+		newvar:_FillValue = -1.e+34 ;
 		newvar:long_name = "outgoing longwave radiation" ;
 		newvar:units = "watts/m2" ;
 		newvar:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
@@ -98409,7 +106690,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -98436,7 +106717,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
@@ -98502,7 +106783,7 @@ variables:
 		ZUP:long_name = "Z[GZ=ZAXUP]" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
@@ -98534,7 +106815,7 @@ variables:
 		Y_:long_name_mod = "axis YFIFTEEN" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -98567,7 +106848,7 @@ variables:
 		XYTVAR:history = "From bn_strides" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -98592,7 +106873,7 @@ variables:
 		TIME:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -98630,7 +106911,7 @@ variables:
 		time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -98656,7 +106937,7 @@ variables:
 		MYVAR:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -98670,7 +106951,7 @@ variables:
 		MYVAR:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.97 (beta/dbg) 11-May-16" ;
+		:history = "FERRET V7.1 (beta/debug) 11-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 -----
@@ -98684,29 +106965,33 @@ yes?
 yes? 
 yes? GO bn_startupfile
  	NOAA/PMEL TMAP
- 	FERRET v6.97 (beta/dbg)
- 	Linux 2.6.18-409.el5PAE 32-bit - 05/11/16
- 	11-May-16 16:14     
+ 	FERRET v7.1 (beta/debug)
+ 	Linux 2.6.18-419.el5PAE 32-bit - 04/11/17
+ 	11-Apr-17 16:55     
 
 CAN MODE VERIFY
- Current size of FERRET memory cache: 31 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 31 megawords
+    Peak demand: 0 words
+    Current cache: 0 words
 PPL$XPIXEL = "656"
 PPL$YPIXEL = "492"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.97"
-FERRET_PLATFORM = "Linux 2.6.18-409.el5PAE 32-bit"
+FERRET_VERSION = "7.1"
+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-May-16"
-SESSION_TIME = "16:14"
-SESSION_PID = "28346"
-DELTA_CPU = "0.040993"
-CLOCK_SECS = "0.334"
-CURRENT_DATE = "11-May-16"
-CURRENT_TIME = "16:14:38"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
+PEAK_MEMORY = "0"
+SPAWN_STATUS = "1"
 GO_FILE = "./bn_startupfile.jnl"
 LAST_GO_FILE = "./bn_startupfile.jnl"
 PPL$FORMAT = "(3F10.2)"
@@ -98727,7 +107012,7 @@ PPL$VIEW_X = "0.000"
 PPL$VIEW_Y = "0.000"
 PPL$VIEW_Z = "0.000"
 PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "11-May-16:16:14"
+WIN_TITLE = "11-Apr-17:16:55"
 VP_WIDTH = "10.2"
 VP_HEIGHT = "8.8"
 VP_SCALE = "1"
@@ -98738,27 +107023,27 @@ VP_XHI = "1"
 VP_YLO = "0"
 VP_YHI = "1"
       MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
-      VERIFY        CANCELLED      DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
+      DIAGNOSTIC    CANCELED            99
+      VERIFY        CANCELED       DEFAULT
+      INTERPOLATE   CANCELED
+      IGNORE_ERROR  CANCELED
+      STUPID        CANCELED
       JOURNAL          SET         startup_tests.jnl
       LONG_LABEL       SET               1
-      LATIT_LABEL   CANCELLED            1
+      LATIT_LABEL   CANCELED             1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
       F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      3100000
+      WAIT          CANCELED
+      DESPERATE     CANCELED       2560000
       GKS              SET
       REFRESH          SET
       METAFILE         SET         startup_tests.plt
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
+      PPLLIST       CANCELED       ppllist.out
+      GUI           CANCELED
       LOGO             SET
       LABELS           SET
       GRATICULE        SET
@@ -98766,21 +107051,22 @@ VP_YHI = "1"
       UPCASE_OUTPU     SET
       NLEVELS          SET             100
       NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      LAYERZ        CANCELLED
+      SHRINK_YLAB   CANCELED
+      CURVILINEAR   CANCELED
+      LAYERZ        CANCELED
       6D_LAB           SET
+      FRUGAL           SET              30
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
  
 yes? ! this "shell" is used because the Unix redirection fails to echo commands
 yes? ! from the top level command file
@@ -98790,15 +107076,17 @@ yes?
 yes? 
 yes? GO bn_gif
  	NOAA/PMEL TMAP
- 	FERRET v6.97 (beta/dbg)
- 	Linux 2.6.18-409.el5PAE 32-bit - 05/11/16
- 	11-May-16 16:14     
+ 	FERRET v7.1 (beta/debug)
+ 	Linux 2.6.18-419.el5PAE 32-bit - 04/11/17
+ 	11-Apr-17 16:55     
 
 ! 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*
  
+! NOTE the plots in bnplot_2.gif are different in PyFerret and Ferret,
+! because of different treatment of /TEXT= for viewport definitions.
  
 can mode logo
  
@@ -98974,6 +107262,7 @@ frame/trans/file=testbackground.gif
 ! has trouble when running the benchmarks from remote desktop
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err491_long_gif_name
 ! err491_long_gif_name.jnl
 ! *sh* 4/99 - test 175 character gif name
@@ -99009,6 +107298,7 @@ set win/siz=1/asp=1
 ! New benchmark gif outputs in v6.97
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_hovmuller_overlays
 ! bn_hovmuller_overlays.jnl
 ! Previously a time series plot overlaid oon a Hovmuller plot did not
@@ -99016,6 +107306,7 @@ GO bn_hovmuller_overlays
 ! See ticket 2344
  
 ! 1/6/2016 ACM
+! acm* 3/17 check the URL with TEST_OPENDAP befor trying to open it.
  
 ! run this in the gif benchmarks.
  
@@ -99066,10 +107357,13 @@ PLOT/OVER/thick/y=8 my_var+10
 ! Like the dataset example from the FAQ
 set view ll6
  
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
-set region/x=40w/y=10n:60n/t=15-jan-1982:15-dec-1983
-shade sst
-plot/over/thick/TITLE="at 20"  sst[y=@LOC:20]
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+ !-> IF 1 THEN
+   use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
+   set region/x=40w/y=10n:60n/t=15-jan-1982:15-dec-1983
+   shade sst
+   plot/over/thick/TITLE="at 20"  sst[y=@LOC:20]
+ENDIF
  
 can data/all
 can region
@@ -99077,19 +107371,20 @@ can region
 ! vector plots with a time series
 set view lr6
  
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf"
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_vwnd.cdf"
- 
-vec/x=0/y=-10:10/t=1-jan-1980:1-jan-1990 uwnd[d=1], vwnd[d=2]
- 
-let wspd = (uwnd[d=1]*uwnd[d=1] + vwnd[d=2]*vwnd[d=2])^0.5
-plot/over/color=red/thick/x=0/t=1-jan-1980:1-jan-1990 wspd[y=-10:10 at ave]
- 
-FRAME/FILE=bn_hovmuller_overlays.gif
- 
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf") EQ 0 AND\
+ test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf") EQ 0` THEN
+ !-> IF 1 THEN
+   use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf"
+   use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_vwnd.cdf"
+   vec/x=0/y=-10:10/t=1-jan-1980:1-jan-1990 uwnd[d=1], vwnd[d=2]
+   let wspd = (uwnd[d=1]*uwnd[d=1] + vwnd[d=2]*vwnd[d=2])^0.5
+   plot/over/color=red/thick/x=0/t=1-jan-1980:1-jan-1990 wspd[y=-10:10 at ave]
+   FRAME/FILE=bn_hovmuller_overlays.gif
+ENDIF
  
 Go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_labels_on_taxis
 ! bn_labels_on_taxis.jnl
 ! tests of labels and overlays on time axes
@@ -99235,6 +107530,7 @@ FRAME/FILE=bn_labels_on_taxis.gif
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_contour_conset
 ! err696_contour_conset.jnl
 ! Ticket 2351. The PPL CONSET command had stopped working to set
@@ -99295,6 +107591,7 @@ frame/file=bn_contour_conset.gif
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_subspan_mod_strides
 ! err696_subspan_mod_strides
 ! See ticket 513. Axis is subspan modulo, and strides
@@ -99327,9 +107624,9 @@ yes?
 yes? 
 yes? GO bn_ps
  	NOAA/PMEL TMAP
- 	FERRET v6.97 (beta/dbg)
- 	Linux 2.6.18-409.el5PAE 32-bit - 05/11/16
- 	11-May-16 16:14     
+ 	FERRET v7.1 (beta/debug)
+ 	Linux 2.6.18-419.el5PAE 32-bit - 04/11/17
+ 	11-Apr-17 16:55     
 
 ! bn450_ps.JNL - copied from bn450_plot.jnl
 ! this journal file only tests the writing of ps files in batch mode using
@@ -99441,9 +107738,9 @@ yes?
 yes? 
 yes? GO bn_batch_metafile
  	NOAA/PMEL TMAP
- 	FERRET v6.97 (beta/dbg)
- 	Linux 2.6.18-409.el5PAE 32-bit - 05/11/16
- 	11-May-16 16:14     
+ 	FERRET v7.1 (beta/debug)
+ 	Linux 2.6.18-419.el5PAE 32-bit - 04/11/17
+ 	11-Apr-17 16:55     
 
 ! bn_batch_metafile.jnl
 ! Run at the end of the benchmark scripts, starting ferret with the flags
@@ -99527,4 +107824,4 @@ set window/location=0.1,0.1/title="another title"
  
 set mode/last logo
 exit/command
-Ended at Wed May 11 16:14:42 PDT 2016
+Ended at Tue Apr 11 16:55:55 PDT 2017
diff --git a/bench/ansley_official.rhel6-64_err b/bench/ansley_official.rhel6-64_err
index a02515a..b5cc6c8 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/current_trunk/FERRET/fer/ferret_c
--rwxr-xr-x. 1 ansley oerdnewp 117720321 Jun 15 11:10 /home/users/ansley/build/current_trunk/FERRET/fer/ferret_c
-Using external functions from /home/users/ansley/build/current_trunk/FERRET/external_functions/ext_func
+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
+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 2441: LET/D variables in a show data/var/xml
+Note:  ticket 2318: axis range when data is constant
 ncdump output will be in all_ncdump.out, and appended to this log file 
 ***** Restricting Ferret paths to bench directory *****
 FER_DAT=.
@@ -13,16 +13,21 @@ 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/current_trunk/FERRET/external_functions/ext_func
-FER_GO=. /home/users/tmap/ferret/x86_64-linux/go /home/users/tmap/ferret/x86_64-linux/examples /home/users/tmap/ferret/x86_64-linux/contrib /home/users/tmap/ferret/tmap_go /home/users/ansley/las.v8.4.rc5/JavaSource/resources/iosp/scripts/
+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=.
-FER_LIBS=/home/users/tmap/ferret/x86_64-linux/lib
-FER_PALETTE=. /home/users/tmap/ferret/x86_64-linux/ppl
-PWD=/home/users/ansley/build/current_trunk/FERRET/bench
-PYFER_EXTERNAL_FUNCTIONS=/home/users/tmap/ferret/x86_64-linux/ext_func/pylibs
-Beginning at Wed Jun 15 12:05:35 PDT 2016
+FER_LIBS=/home/users/tmap/ferret/rhel6-x86_64-linux/lib
+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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_syntax
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
         SET EXPRESSION has not been given or implied
  **ERROR: unknown command qualifier: notaqualifier
 MESSAGE/CONTINUE/notaqualifier
@@ -32,6 +37,8 @@ that
 \! ignore (err cuz bang gets escaped)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dollar
  **ERROR: invalid command: Value needed for argument 3 in command
           GO bn_dollar hello
 message/cont $3
@@ -82,6 +89,8 @@ say ($100)
 say ($10)0
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_grave
  **ERROR: command syntax: unpaired grave accents: message/continue "2+2=`2+2"
 message/continue "2+2=`2+2"
  **ERROR: variable unknown or not in data set: GARBAGE
@@ -124,6 +133,8 @@ MESSAGE/CONTINUE `sst,return=Xsize`
 MESSAGE/CONTINUE `sst,return=trash`
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_letd
  **ERROR: unknown data set: NOEXIST
 DEFINE VARIABLE/d=noexist a = b
  **ERROR: variable unknown or not in data set: AIRT[D=GT4D011]
@@ -134,6 +145,8 @@ can var
  LISTing to file v1file.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_if
  **ERROR: invalid command: ENDIF can only be used in an IF clause
 ENDIF
  **ERROR: command syntax: ELIF cannot be used in single line IF
@@ -142,16 +155,18 @@ IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
  **ERROR: command syntax: Trash after ENDIF
           IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
 IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
-           *** NOTE: Unclosed IF statement ... assuming ENDIF
+           *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./bn_if.sub
  **ERROR: invalid command: ELSE can only be used between IF and ENDIF
 else
  **ERROR: invalid command: ENDIF can only be used in an IF clause
 endif
  **ERROR: invalid command: ELIF can only be used between IF and ENDIF
 elif
-           *** NOTE: Unclosed IF statement ... assuming ENDIF
+           *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./bn_if.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_expressions
  **ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
 LIST/ORDER=X  IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
@@ -163,6 +178,8 @@ DEFINE VARIABLE A = IF I LT 5 THEN I ELSE -9
 load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_geometry
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -174,6 +191,8 @@ load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
 LIST X[I=1:5] - X[I=6:9]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_output
  LISTing to file WV.J34K56L7
  LISTing to file test.dat
  LISTing to file test.dat
@@ -182,14 +201,22 @@ LIST X[I=1:5] - X[I=6:9]
 LIST/FILE=test.gt/FORMAT=TMAP/L=1:3 v,v^0.5
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_in_plane
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_compress
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_interpolate
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regrid
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis XFINE
@@ -199,9 +226,13 @@ Replacing definition of axis YCOARSE
 Replacing definition of grid G24
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ez
  LISTing to file test.unf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot
  **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
@@ -264,6 +295,8 @@ cont/over/i=1:10/thick=4 i
 cont/over/i=1:10/sigdig=-1 i
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_curv
 Replacing definition of axis LON_FIELD_I_AXIS
 Replacing definition of axis LON_FIELD_J_AXIS
 Replacing definition of axis LAT_FIELD_I_AXIS
@@ -281,6 +314,8 @@ shade/nolabel sst, x_page[j=1:12], y_page
 shade/nolabel sst, x_page[j=1:12], y_page
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_symbols
  **ERROR: command syntax: illegal name: TEST*
 define symbol test* = hello
  **ERROR: invalid command: Value needed for argument 5 in command
@@ -300,8 +335,12 @@ message/continue ($t2"|solong>really hello|bye|")
            *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_comma_delimited
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dynamic_grids
  **ERROR: unknown defining grid: GX=NOEXIST
 list temp[gx=noexist]
  **ERROR: command syntax: P=NOEXIST
@@ -344,12 +383,8 @@ list tu
 list tu
  **ERROR: regridding: Axis orientation not matching request:GX=PSYU
 list tu
- Cached data cleared from memory
- **ERROR: request exceeds memory setting: 50 Mwords were requested.
+ **ERROR: request exceeds memory setting
 list temp[gz=z999999,z=5:15]
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
- Cached data cleared from memory
            *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
            *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
            *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
@@ -372,6 +407,8 @@ list a
 list a
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cdf
  LISTing to file test0a.cdf
  LISTing to file test0b.cdf
  LISTing to file test0c.cdf
@@ -485,12 +522,16 @@ list/format=cdf/l=13/append/file=test_abs.cdf l1
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regrid_transforms
  **ERROR: regridding: G=W - more than 1 target grid
 load temp[g=u,g=w]
  **ERROR: unknown defining grid: G=X --> g=user-or-pseudo-var not allowed
 load temp[g=x]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_limits
  **ERROR: command syntax: xlimits
 plot/xlimits i
  **ERROR: command syntax: xlimits= i
@@ -509,8 +550,12 @@ plot/xlimits=1:2: i
 plot/xlimits=5:5 i
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_movie
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ez_order
  LISTing to file test_perm10.dat
  LISTing to file test_perm24.dat
  LISTing to file test_perm48.dat
@@ -523,10 +568,16 @@ Replacing definition of grid G24
  LISTing to file test_stream.unf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_user
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_stream
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_mc
  **TMAP ERR: Attempt to access unsupported feature
              Descriptor requests delta of 0, please use 1
              Data set: ./coads_clim_bad_delta.des
@@ -539,72 +590,81 @@ set data coads_clim_step_order.des
 list sst
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_negative_t
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_xact_regrid
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_gc_functions
 Replacing definition of axis TIME
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn491_bug_fixes.jnl
  LISTing to file test.cdf
  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
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  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
  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
- Cached data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_odd_variable_name
  **ERROR: command syntax: v2-and-minus
           - before and is illegal
 list v2-and-minus
- **ERROR: dimensions improperly specified: 99999999 words were requested.
+ **ERROR: illegal limits: Limits must be provided for pseudo-variable.
 list x
-           *** NOTE: Check for unspecified limits on an ABSTRACT axis
-           *** NOTE: Use the SHOW GRID command to see the axes
- **ERROR: dimensions improperly specified: 99999999 words were requested.
+ **ERROR: illegal limits: Limits must be provided for pseudo-variable.
 list i
-           *** NOTE: Check for unspecified limits on an ABSTRACT axis
-           *** NOTE: Use the SHOW GRID command to see the axes
  **ERROR: command syntax: v2-and-minus[i=5:15 at ddc]
           - before and is illegal
 list v2-and-minus[i=5:15 at ddc]
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_test_stream
  LISTing to file permutedBinaryTest.dat
  LISTing to file junk.dat
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
 Replacing definition of axis TAX
- **ERROR: request exceeds memory setting: 48000 Mwords were requested.
+ **ERROR: request exceeds memory setting
 load num
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
 Replacing definition of axis TAX
- **ERROR: request exceeds memory setting: 2000 Mwords were requested.
+ **ERROR: request exceeds memory setting
 load num
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
@@ -621,6 +681,8 @@ SET DATA/EZ/var=num/order=vxyzt/grid=mygrid junk.dat
 SET DATA/EZ/var=num/type=i3/grid=mygrid/form=stream junk.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_define_axes
 Replacing definition of axis XAX
 Replacing definition of axis XAX
 Replacing definition of axis XAX
@@ -663,13 +725,8 @@ Replacing definition of axis XAX
 Replacing definition of axis XAX
            *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
-           *** NOTE: Axis has repeated values -- micro-adjusting ...
- **ERROR: improper grid or axis definition: unrepairable repeated axis coords
-define axis/from/x/name=xax {6,6}
-           *** NOTE: Axis has repeated values -- micro-adjusting ...
- **ERROR: improper grid or axis definition: unrepairable repeated axis coords
-define axis/from/x/name=xax/edges {6,6}
-           *** NOTE: Axis has repeated values -- micro-adjusting ...
+Replacing definition of axis XAX
+Replacing definition of axis XAX
  **ERROR: improper grid or axis definition: unrepairable repeated axis coords
 define axis/from/x/name=xax/edges {6,6,6}
            *** NOTE: Axis has repeated values -- micro-adjusting ...
@@ -681,47 +738,68 @@ Replacing definition of axis XAX2
 Replacing definition of axis XAX2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_pattern
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_polygon
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn500_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TCAL
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file out.cdf
  LISTing to file out.cdf
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: command syntax: noname(i)
           unknown function "noname"
 stat i, noname(i)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_sample
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -760,6 +838,8 @@ stat i, noname(i)
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_strides_revs_perms
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -780,6 +860,8 @@ LIST/i=2:4:2 VAR
            *** NOTE: Stride value not a factor of axis length
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_non_COARDS_netCDF
            *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
            *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
@@ -787,9 +869,13 @@ LIST/i=2:4:2 VAR
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cache_hits
 Replacing definition of grid GX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regrid_to_user
 Replacing definition of axis YAX
 Replacing definition of grid GG2
  **ERROR: unknown defining grid: G=NO_EXIST
@@ -801,6 +887,8 @@ Replacing definition of axis Y2
 Replacing definition of grid MYGRID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_calendar
 Replacing definition of axis TDAYS
 Replacing definition of axis TDAYS
 Replacing definition of axis TDAYS
@@ -828,6 +916,8 @@ Replacing definition of grid TGRID
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dash_dot
  **ERROR: command syntax: dash=(1., 2.)
           DASH[=(dn1,up1,dn2,up2)] takes 4 arguments or no argument
 plot/dash=(1., 2.)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
@@ -836,24 +926,33 @@ 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) )
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_flowlines
  Using every   2th vector in the Y direction
  Using every   2th vector in the Y direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  Using every   2th vector in the X direction
  Using every   2th vector in the Y direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_logaxes
 Replacing definition of axis DLOG
 Replacing definition of axis DLOG
  **ERROR: value out of legal range: Limits for log axis negative or too small: -9.00 : 0.00
 plot/hlog fcn
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_internal_external_functions
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis DAYT
 Replacing definition of grid TGRID
  **ERROR: error in external function
@@ -861,6 +960,7 @@ LIST vw_fft
 Replacing definition of grid TGRID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis X10
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -870,33 +970,47 @@ Replacing definition of axis X10
            *** NOTE: Axis is in use by grid G10X5
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis XAXS
+Replacing definition of axis YAXS
+Replacing definition of axis ZAXS
+Replacing definition of axis TAXS
+Replacing definition of grid MYGRD
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: illegal limits: VWND does not contain L=102:150
           Data are available in L =    1:60
 list tsorted_indices, tsorted_wnd
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: error in external function
 list/l=1:2 eofxyfcn
  **ERROR: error in external function
@@ -905,10 +1019,13 @@ list/i=1:3/j=1:3 eofstat
 list/i=1:2 eoftime
  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
  **ERROR: command syntax: strindex("Ferret is fun for the whole family - real family fun")
           The strindex function has an incorrect number of arguments
 list strindex("Ferret is fun for the whole family - real family fun")
@@ -926,16 +1043,23 @@ list substring("Have you fed your ferret today")
 list strcat ("All work and no play")
  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
  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
+Starting test: bn_modulo_strides
  LISTing to file test_modulo.cdf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -945,6 +1069,8 @@ list strcat ("All work and no play")
            *** NOTE: Stride value not a factor of axis length
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_viewports
 Re-defining viewport MID
 Re-defining viewport MID2
 Re-defining viewport LLAX
@@ -953,6 +1079,8 @@ Re-defining viewport ULAX
 Re-defining viewport URAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_strings
  **ERROR: command syntax: "string2"}
 list e
  **ERROR: command syntax: 5, "string2"}
@@ -996,10 +1124,16 @@ list/nohead SIN({"a","b","c"})
 list/nohead MAX("a",{"a","b","c"})
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axcontrol
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_vec_curv
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_delimited_read
 Replacing definition of axis X1
 Replacing definition of grid G1
 Replacing definition of axis TAX
@@ -1007,34 +1141,42 @@ Replacing definition of axis TAX
 Replacing definition of axis Z1
 Replacing definition of grid G1
  **TMAP ERR: syntax error in string
-             Unrecognized field type: D
+             Unrecognized field type: DA2
              Data set: ./bn_delimited_read_date_time.dat
-           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME,DATIME,EDATIME
 SET DATA/FORM=delimited/type="d, da2,date2"  bn_delimited_read_date_time.dat
  **TMAP ERR: syntax error in string
              Unrecognized field type: DATE2
              Data set: ./bn_delimited_read_date_time.dat
-           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME,DATIME,EDATIME
 SET DATA/FORM=delimited/type="da,da, date2"  bn_delimited_read_date_time.dat
  **ERROR: command syntax: ,,:
 SET DATA/EZ/form=delim/delim="/,,,:" bn_delimited_read_date_time.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn541_bug_fixes
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file test_good_order.cdf
  LISTing to file test_bad_order.cdf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis T2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Re-defining viewport LL6
 Re-defining viewport UL6
 Re-defining viewport LM6
@@ -1043,41 +1185,52 @@ Re-defining viewport LR6
 Re-defining viewport UR6
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
 Replacing definition of axis TAX
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file profiles.nc
  LISTing to file profiles.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file test_100x100.nc
- Cached data cleared from memory
- Cached 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
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of grid MYGRID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cancel_axes
  LISTing to file longax.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis has repeated values -- micro-adjusting ...
            *** NOTE: Axis has repeated values -- micro-adjusting ...
            *** NOTE: Axis has repeated values -- micro-adjusting ...
@@ -1090,25 +1243,33 @@ Replacing definition of grid MYGRID
            *** NOTE: Axis has repeated values -- micro-adjusting ...
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: regarding ./test_axes.nc ...
            *** NOTE: Climatological axes test_irreg, test_seas defined
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn542_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
 Replacing definition of axis TAX2
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file string4d.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: regarding ./test_axes.nc ...
            *** NOTE: Climatological axes test_irreg, test_seas defined
            *** NOTE: Not deleted: TEST_IRREG
@@ -1373,8 +1534,11 @@ Replacing definition of axis TAX2
            *** NOTE: Axis is in use by grid GG2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_subspan_modulo
  LISTing to file test_mod.cdf
  LISTing to file test_mod.cdf
  LISTing to file test_mod.cdf
@@ -1400,52 +1564,74 @@ define axis/x=130e:500:10/modulo=360 xsub
            *** NOTE: Stride value not a factor of axis length
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dots
            *** NOTE: /THICKNESS ignored  on /SYMBOL=DOT
            *** NOTE: /SIZE= ignored  on /SYMBOL=DOT
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_lev_symbols
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_mode_logo_lab
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_modulo_attribute
            *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
            *** NOTE: modulo = "j"
            *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
            *** NOTE: modulo = "j"
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn550_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn551_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Re-defining viewport MID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Re-defining viewport MID1
 Re-defining viewport MID2
  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
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  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
+Starting test: bn552_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: value out of legal range: # of contour levels > 500  (3283)
 CONTOUR/L=1/LEV=0.01d sst
  **ERROR: value out of legal range: # of contour levels > 500  (3283)
@@ -1456,18 +1642,22 @@ SHADE/L=1/LEV=0.01d sst
 POLYGON/KEY/LEV=0.01d/coord_ax=Z  PLMxpoly+PLMxpolymark, PLMypoly+PLMypolymark, PLMpolydata
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
            *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
            *** NOTE: A dummy axis of subscripts will be used
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 ls: cannot access input.txt: No such file or directory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 Replacing definition of axis YAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
             dsetnum,dsetpath,dsettitle,*size,*start,*end,
             *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
@@ -1476,54 +1666,77 @@ Replacing definition of axis YAX
 MESSAGE/CONTINUE `axy, return=xx`
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
  LISTing to file a.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis YAX
 Replacing definition of axis Z1
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file clim.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+ooooooooooooooooooooooooooooooooooooooooooo
+           *** NOTE: Coordinates missing on axis LONGITUDE at subscript -2033
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: Coordinates missing on axis LATITUDE at subscript -2033
+           *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Axis has repeated values -- micro-adjusting TIME
  **ERROR: illegal limits: "DUMMY" does not exist at T=JAN-1990
           Axis extremes are T=DEC-1997:JAN-1998
 list/t=1-jan-1990 dummy
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_var_scale_off.jnl
  **ERROR: invalid command: Can SET VARIABLE/OFFSET= only with NetCDF datasets
 SET VAR/OFFSET=1 x1
  **ERROR: invalid command: Can SET VARIABLE/SCALEFAC= only with NetCDF datasets
 SET VAR/SCALE=10 x2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_longvarnames.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file longvname.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file longvname.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_shakey.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_eof_4d.jnl
  LISTing to file eofsp.cdf
  LISTing to file eofti.cdf
  LISTing to file eofst.cdf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_abstract_axis_names.jnl
  LISTing to file confuse_xz.nc
  LISTing to file confuse_yz.nc
  LISTing to file confuse_yt.nc
@@ -1534,19 +1747,24 @@ SET VAR/SCALE=10 x2
  LISTing to file confuse_yzt.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_many_polygons.jnl
 Replacing definition of axis YQ
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_fill_irregular.jnl
 Replacing definition of axis TAX
 Replacing definition of axis XAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_xml_output.jnl
  LISTing to file a.nc
  LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 SHO VAR/XML
 SHO VAR/XML
 SHO VAR/XML
@@ -1558,16 +1776,25 @@ SHOW VAR/XML
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_test_nan.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn553_bug_fixes.jnl
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_graticules.jnl
  Using every   5th vector in the X direction
  Using every   3th vector in the Y direction
  Using every   2th vector in the X direction
@@ -1579,6 +1806,8 @@ Replacing definition of axis TAX
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_repeat_range.jnl
  TEMPORARY data cleared from memory
  **ERROR: invalid command: REPEAT/NAME requires /RANGE
 rep/name=a say `a`
@@ -1610,25 +1839,34 @@ repeat/range=3:1:-1/name=a list a
 repeat/range=3:1:-1/name=a list a
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn554_bug_fixes.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: illegal limits: "TEMP" does not exist at T=AUG-1980:JAN-1982
           Axis extremes are T=AUG-1982:JAN-1983
 list/t=1-aug-1980:1-jan-1982/i=92/j=35 temp
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 Replacing definition of axis YAX
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX1
 Replacing definition of axis TAX2
 Replacing definition of axis TAX1
@@ -1637,6 +1875,7 @@ Replacing definition of axis TAX1
 Replacing definition of axis TAX2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1652,29 +1891,39 @@ Replacing definition of grid AGRID
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis X_AX
  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
 Replacing definition of axis TAX
  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
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 Replacing definition of axis YAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_bounds.jnl
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -1704,7 +1953,6 @@ def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,
            *** NOTE: Axis is in use by grid GFORMAT
  LISTing to file a.nc
  LISTing to file a.nc
-           *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
  LISTing to file a.nc
            *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
  LISTing to file a.nc
@@ -1730,11 +1978,15 @@ Replacing definition of axis tax
            *** NOTE: Substituting coordinate midpoints
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_all_leap.jnl
 Replacing definition of grid TGRID
  **ERROR: command syntax: Invalid calendar name. Names are, GREGORIAN, NOLEAP, JULIAN, 360_DAY, ALL_LEAP
 def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_reset_attributes.jnl
            *** NOTE: Units  not recognized: something
            *** NOTE: They will not be convertible:
            *** NOTE: Units  not recognized: something
@@ -1749,89 +2001,122 @@ Replacing definition of axis TAX
 Replacing definition of axis XAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn570_bug_fixes.jnl
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
 Replacing definition of axis TAX
 Replacing definition of axis ZAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
  LISTing to file xlong.nc
  LISTing to file xlongshift.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_modstats.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_mc_vary_scale.jnl
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_nokey.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn580_bug_fixes.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 Replacing definition of axis YAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Re-defining viewport VP_1
  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
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
  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
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 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
 Replacing definition of axis XFINE
 Replacing definition of axis YFINE
  LISTing to file fine.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: illegal limits: One-point independent axis: Requires a /HLIMIT or /VLIMIT specification
 plot/sym/siz=0.3 0*t[gt=vwnd]
  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
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
 Replacing definition of axis TAX
  LISTing to file aa.nc
  LISTing to file cc.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: First argument is a letter of the alphabet
 query/ignore $1%q|a|b|c|d|<First argument is a letter of the alphabet%
  **ERROR: invalid command: Valid value needed for argument $2
@@ -1864,31 +2149,46 @@ message/continue ($t2"|solong>really hello|bye|")
            *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
  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: delta non-positive on X axis of EX#1
 list/l=1/j=40/i=0:300:0 sst
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file 10a.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_inf_levels.jnl
 Replacing definition of axis XQ
 Replacing definition of axis YQ
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regulart.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_labwid.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_redefine_taxis_mc.jnl
 Replacing definition of axis TIME1
            *** NOTE: grid GHB2 used by data set coads_clim
            *** NOTE: Redefinition may alter apparent contents of data set
@@ -1897,6 +2197,8 @@ Replacing definition of axis TIME1
            *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_illegal_axisname.jnl
 Replacing definition of axis COADSX.ILLEGAL
            *** NOTE: grid GEX2 used by data set illeg_axname
            *** NOTE: Redefinition may alter apparent contents of data set
@@ -1909,38 +2211,57 @@ Replacing definition of axis COADSY.ILLEGAL
            *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_exit_script.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_exit_cycle.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_curv_mod.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_shade_keycont.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn581_bug_fixes.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TIME
  LISTing to file a.nc
  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
  LISTing to file longtitle.nc
  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
  LISTing to file longtitle.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  **ERROR: improper grid or axis definition: error in start,end,delta
 DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
@@ -1949,39 +2270,58 @@ DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
 DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
  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
  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
  LISTing to file t0_cdc.nc
  LISTing to file my_cdc_timeaxis.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TGREG
  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
+Starting test: bn_tab_comma_multivar.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_element_functions.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_long_revision_num.jnl
  LISTing to file revision.nc
 
 Bailing out of external function "ffta":
 	 Time axis must be a regular axis
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_window_title.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_last_error.jnl
  **ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
 LIST/ORDER=X  IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
@@ -2002,11 +2342,17 @@ repeat/range=1:3/name=L (use coads_climatology; list/nohead [sst=I=1,j=1])
 LOAD vw_fft
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_deg_min.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dp_readscale.jnl
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_bounds_defineax.jnl
 Replacing definition of axis TAX
 Replacing definition of axis XAX
 Replacing definition of axis ZAX
@@ -2016,6 +2362,8 @@ Replacing definition of axis ZAX
 Replacing definition of axis ZAX2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_attributes.jnl
  **ERROR: invalid command: SHOW ATTRIBUTE given with no argument
 sho att/all
  **ERROR: unknown data set: d=2
@@ -2027,28 +2375,37 @@ sho att salt.nonsense
 sho att/all .
  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
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute temp.pp
            *** NOTE: Changing the length  of attribute temp.pp
            *** NOTE: Changing the value of attribute temp.some_text
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute temp.long_name
            *** NOTE: Changing the value of attribute temp.units
            *** NOTE: Changing the value of attribute temp.missing_value
@@ -2067,8 +2424,10 @@ list coadsx.units
 set att (COADSX81_81).axis = "Z"
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute temp.pp
            *** NOTE: Changing the length  of attribute temp.pp
            *** NOTE: Changing the value of attribute temp.some_text
@@ -2082,21 +2441,25 @@ set att (COADSX81_81).axis = "Z"
            *** NOTE: Changing the value of attribute temp.pp
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file a.nc
 Replacing definition of axis XAX
@@ -2106,14 +2469,17 @@ Replacing definition of axis TAX
 Replacing definition of grid MYGRID
  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
  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
            *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file a.nc
@@ -2126,6 +2492,7 @@ Replacing definition of grid MYGRID
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
            *** NOTE: Changing the value of attribute (COADSX).point_spacing
            *** NOTE: Changing the value of attribute (COADSY).point_spacing
@@ -2143,6 +2510,7 @@ set var/outtype=char broiled
 set var/outtype=garbage broiled
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute (PSXT).units
  LISTing to file a.nc
  LISTing to file a.nc
@@ -2151,17 +2519,21 @@ set var/outtype=garbage broiled
  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
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis X2AX
            *** NOTE: Changing the value of attribute (z4ax).positive
  LISTing to file string4d.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute (TIME7).units
            *** NOTE: Changing the value of attribute (TIME7).units
            *** NOTE: Changing the value of attribute (TIME7).time_origin
@@ -2178,23 +2550,31 @@ CURL Error: Couldn't resolve host name
 curl error details: 
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_transforms.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_variance.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_linecolors.jnl
            *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
  Using every   3th vector in the X direction
  Using every   4th vector in the Y direction
            *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cdf_errmsg.jnl
  **TMAP ERR: non-existent or not on line
              this_is_not_a_file.nc
 SET DAT/FORM=CDF this_is_not_a_file.nc
  **Internet Data error
              NetCDF: file not found (OPeNDAP/netCDF Error code -90)
-             Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf
-SET DAT/FORM=CDF "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
+             Data set: http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf
+SET DAT/FORM=CDF "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
  **Internet Data error
              NetCDF: I/O failure (OPeNDAP/netCDF Error code -68)
              Data set: http://noserver/a/nofile.cdf
@@ -2206,48 +2586,65 @@ SET DAT/FORM=CDF  "http://noserver/a/nofile.cdf"
 SET DAT/FORM=CDF asc.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn600_bug_fixes.jnl
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file err581_subspanx_fill_bug.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XIR
  LISTing to file xyir.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: illegal use of transformation:  not all dimensions present on grid
 shade sst[x=@var,k=@var]
  **ERROR: illegal use of transformation:  not all dimensions present on grid
 shade sst[t=@AVE,Z=@ave]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
  LISTing to file t3file.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file 0000_a.nc
  LISTing to file subdir/a.nc
  LISTing to file subdir/0000_a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TAX
  LISTing to file a.nc
@@ -2256,8 +2653,10 @@ Replacing definition of axis TAX
            *** NOTE: cannot parse "units since date", date= "event"; leaving units string
  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: Invalid I axis limits ignored: TEMP
  **ERROR: dimensions improperly specified: specified data is not a line
@@ -2265,71 +2664,90 @@ Replacing definition of axis tax
 plot/i=100/k=1 temp[x=122.5W]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 Replacing definition of axis XAX
 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
- Cached data cleared from memory
- Cached data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn601_bug_fixes.jnl
  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 b.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file b.nc
  LISTing to file b.nc
-NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
- TAX3_bnds not found. Attempt to append irregular coordinates to NetCDF axis which has no bounds attribute. Write data originally with the /BOUNDS qualifier.
-LIST/FORMAT=CDF/CLOBBER/FILE=b.nc v
  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
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TIME9
            *** NOTE: grid GSQ1 used by data set coads_climatology
            *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TIME
  LISTing to file a.nc
  LISTing to file t2.nc
  LISTing to file t12.nc
  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
  LISTing to file out.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_strides.jnl
  **ERROR: invalid command: it is a child axis already
 set axis/stride=2/offset=1 (AX052)
  **ERROR: invalid command: not a strided axis: COADSX
@@ -2345,21 +2763,31 @@ cancel axis/stride COADSX
 set axis/stride=2 NORMAL
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_lsl_lowpass.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_return_xmod_tmod.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn602_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file noleap.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
            *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file tripolar_missing_lon.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -2367,11 +2795,19 @@ CURL Error: Couldn't resolve host name
 curl error details: 
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_modnbd.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_fifty_files.jnl
+           *** NOTE: Coordinates missing on axis LONGITUDE at subscript -1187
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: Coordinates missing on axis LATITUDE at subscript -1187
+           *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Axis has repeated values -- micro-adjusting TIME
            *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
            *** NOTE: Substituting coordinate midpoints
@@ -2398,133 +2834,184 @@ curl error details:
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn603_bug_fixes
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_var_name.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_memory_symbol
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- Cached data cleared from memory
- Cached data cleared from memory
- Cached data cleared from memory
- Cached data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn605_bug_fixes
  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
+Starting test: bn608_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file b.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
 Replacing definition of axis XAX
 Replacing definition of axis YAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: "300": Number of contour levels must be between 1 and 250
 SHADE/LEV=300/I=1:100/J=1:100 i+j
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_shade_trim
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_mode_nlevels
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn61_bug_fixes
  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
+Starting test: bn_test_opendap
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn611_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
  LISTing to file a.nc
  LISTing to file b.nc
  LISTing to file b.nc
  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
  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
  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
  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
  LISTing to file z1.nc
  LISTing to file z2.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TIME
 Replacing definition of axis TIME
  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
  LISTing to file b.nc
  LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_no_valid_on_plot
  Using every   5th vector in the X direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_median
 Replacing definition of axis ZAX
  **ERROR: value out of legal range: Median smoother length must be odd
 plot/trans var, var[z=@med:4]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn614_bug_fixes
  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
 Replacing definition of axis TIME
  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
  LISTing to file b.nc
  LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Units on axis "ENS" are not recognized: count
            *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file 1a.dat
  LISTing to file 3a.dat
  LISTing to file 5a.dat
@@ -2533,51 +3020,70 @@ Replacing definition of axis TIME
  LISTing to file 11a.dat
  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
  **ERROR: variable unknown or not in data set: A_REGRID[D=1,GT=B[D=2]@MOD]
 LIST a_regrid[D=1,GT=b[D=2]@MOD]
  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
  LISTing to file dat.dat
  LISTing to file a.nc
  LISTing to file unf.dat
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file lonlat.dat
  LISTing to file lonlat.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  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
 Replacing definition of axis TAX
 Replacing definition of grid GG
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_mode_nodata_lab
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_proleptic_gregorian_calendar
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_string_ngd_nbd
            *** NOTE: @NGD of string variable, counting null strings as missing
            *** NOTE: @NBD of string variable, counting null strings as missing
 Replacing definition of axis XAX
@@ -2605,21 +3111,33 @@ Replacing definition of axis TAX
            *** NOTE: @NGD of string variable, counting null strings as missing
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cat_string
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_sort_strings
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_samplexyt
 Replacing definition of axis X1
 Replacing definition of axis Y1
 Replacing definition of grid G1
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_last_go_file.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cancel_upcase_uservar.jnl
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cdf_keepax.jnl
  LISTing to file test0a.cdf
  LISTing to file test0b.cdf
  LISTing to file test0c.cdf
@@ -2816,69 +3334,102 @@ show grid ijkl
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_keep_axisnames.jnl
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_key_label_minmax.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn62_bug_fixes.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX
 Replacing definition of grid TGRID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_convolve.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_tax_tstep.jnl
  LISTing to file a.nc
 Replacing definition of axis TSEC
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_grads_z.jnl
 Replacing definition of axis CAXIS
            *** NOTE: grid GMY1 used by data set grads_bug_file
            *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_clock_syms
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn63_bug_fixes.jnl
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  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
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TAX
            *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
            *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file xz.nc
  TEMPORARY data cleared from memory
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file t_bug.nc
 Replacing definition of axis T_AXIS
  LISTing to file t_bug.nc
@@ -2887,48 +3438,72 @@ NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
 LIST/FORMAT=CDF/FILE=t_bug.nc/APPEND var
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: offset must be greater than or equal to zero
 SET AXIS/STRIDE=12/OFFSET=-1 truemonth
  **ERROR: invalid command: stride must be greater than zero
 SET AXIS/STRIDE=-1/OFFSET=1 truemonth
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_reversed_syms
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_isdepth
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_var_hist_levels.jnl
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn64_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX
  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
+Starting test: bn_long_grid_names
  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 YAX
 Replacing definition of grid GG123456789012345678902
  **ERROR: unknown defining grid: G=NO_EXIST12345678901234567890
 load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_xml_repl
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn65_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Units on axis "ENS" are not recognized: count
            *** NOTE: They will not be convertible:
  LISTing to file mypack.nc
@@ -2940,25 +3515,37 @@ load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
            *** NOTE: They will not be convertible:
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_txtype_dmy
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_n_open_dsets_sym
  LISTing to file list_of_numbers.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_multi_decade
 Re-defining viewport V1
 Re-defining viewport V1
 Re-defining viewport V2
@@ -2970,14 +3557,21 @@ Re-defining viewport V7
 Re-defining viewport V8
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_show_xml_file
  LISTing to file b.nc
  LISTing to file dummy.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn66_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_netcdf4
  Restoring default chunk cache settings
  Restoring default chunk cache settings
  PERMANENT data cleared from memory
@@ -3012,6 +3606,8 @@ LIST/FORMAT=CDF/file=nc4_deflate4_t1.nc/clobber/ncformat=4/deflate/shuffle/tchun
 LIST/FORMAT=CDF/file=nc4_deflate4chunktoobig.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_scat2grid_bin.jnl
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
@@ -3020,22 +3616,33 @@ LIST/FORMAT=CDF/file=nc4_deflate4chunktoobig.nc/clobber/ncformat=4/deflate=1/xch
            *** NOTE: Axis is in use by grid G10X5
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_dir_symbols
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn663_bug_fixes
  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
+Starting test: bn_set_axis_regular
 Replacing definition of grid MYGRID
            *** NOTE: Axis reset to be regular (evenly-spaced): MYX
            *** NOTE: Axis is already regular: MYX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_cancel_redirect
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
  
@@ -3091,22 +3698,35 @@ show grid garbage
  Use "GO/HELP filename" to read documentation in  the file to be executed.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_min_max_smoothers
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_vector_symbols
  Using every   8th vector in the X direction
  Using every   7th vector in the Y direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_variance_large
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_labnum_calendar
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn665_bug_fixes
  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
  LISTing to file a.nc
 
 Bailing out of external function "tax_year":
@@ -3114,15 +3734,22 @@ Bailing out of external function "tax_year":
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_floatstr
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn67_bug_fixes
  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 XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
@@ -3130,19 +3757,26 @@ Replacing definition of axis YAX
 Replacing definition of axis YAX
  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
  LISTing to file aa.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
-set mode desperate   9999999999.000000
+set mode desperate 9999999999.
  **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
 set mode desperate 1234567890123456789
+           *** NOTE: MODE DESPERATE is deprecated. Use MODE FRUGAL
+           *** NOTE: MODE DESPERATE is deprecated. Use MODE FRUGAL
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file g.nc
 Replacing definition of axis YAX_DUP_AXNAMES
  LISTing to file h.nc
@@ -3151,33 +3785,45 @@ Replacing definition of axis YAX_DUP_AXNAMES
  LISTing to file justg.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_NaN_note
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn671_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: error in external function
 list/L=15:20 tax_year(t[gt=tvar],tvar)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file cc.nc
  LISTing to file c1.nc
  TEMPORARY data cleared from memory
@@ -3185,40 +3831,54 @@ list/L=15:20 tax_year(t[gt=tvar],tvar)
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn68_bug_fixes
  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
  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 XAX
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
  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
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: command syntax: illegal name, matches an operator: AND
 DEFINE VARIABLE AND = 5
  **ERROR: command syntax: illegal name, matches an operator: OR
@@ -3241,10 +3901,13 @@ DEFINE VARIABLE IF  = 5
 DEFINE VARIABLE ELSE = 5
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a1.nc
  LISTing to file a2.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ifv
  **ERROR: command syntax: IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
 LIST/ORDER=X  IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333
@@ -3254,6 +3917,8 @@ LIST/ORDER=X  IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333
 DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_randu2_randn2
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
@@ -3263,6 +3928,8 @@ DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
 Replacing definition of axis ZAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_cf
 Replacing definition of axis XAX
  LISTing to file a.nc
 Replacing definition of axis YAX
@@ -3276,6 +3943,8 @@ Replacing definition of axis TAXIS
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_repeated_coords
            *** NOTE: Axis has repeated values -- micro-adjusting TMIN
            *** NOTE: Coordinates out of order or missing on axis TMIN at subscript 4
            *** NOTE: A dummy axis of subscripts will be used
@@ -3283,6 +3952,8 @@ Replacing definition of axis TAXIS
 Replacing definition of axis TNEW
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_xml_header
 
 Bailing out of external function "eofsvd_stat":
 	There are no spatial locations having complete time series.
@@ -3294,6 +3965,8 @@ Bailing out of external function "eofsvd_tfunc":
 	There are no spatial locations having complete time series.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_eof_simple
 Replacing definition of axis YAXIS
 Replacing definition of axis TAXIS
 Replacing definition of axis XAXIS
@@ -3305,10 +3978,16 @@ list eofsvd_space(spacegap)
 list eofsvd_tfunc(spacegap)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_eof_simple2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_interpolate_6d
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regrid_6d
 Replacing definition of grid EVEN
 Replacing definition of grid G1
 Replacing definition of grid G2
@@ -3337,8 +4016,12 @@ Replacing definition of grid G24
 Replacing definition of grid G48
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_syntax_6d
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_expressions_6d
  **ERROR: command syntax: IF _m GT 3 THEN ( IF _m LT 5 THEN _m ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
 LIST/order=e  IF _m GT 3 THEN ( IF _m LT 5 THEN _m ELSE -9 ) ELSE .333
@@ -3350,14 +4033,21 @@ DEFINE VARIABLE A = IF _m LT 5 THEN _m ELSE -9
 load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_direction_fcns_6d
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regrid_transforms_6d
 Replacing definition of grid G5DAY
 Replacing definition of axis FAX4DAY
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_aggregate_e
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
  **ERROR: unknown data set: dset 3
 DEFINE DATA/AGGREGAT/E windy = 1,2,3
            *** NOTE: Variable "UWND" excluded from aggregate: T axis differs among members
@@ -3374,39 +4064,61 @@ DEFINE DATA/AGGREGAT/E windy = 1,2
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: Dataset used in aggregation.  Canceling aggregation, fourfiles
            *** NOTE: Dataset used in aggregation.  Canceling aggregation, some
            *** NOTE: Dataset used in aggregation.  Canceling aggregation, more
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_6d_lab_mode
+           *** NOTE: MODE 6D_lab is deprecated. Leave the mode set; output automatically adjusts to 4D or 6D grids
+           *** NOTE: MODE 6D_lab is deprecated. Leave the mode set; output automatically adjusts to 4D or 6D grids
+           *** NOTE: MODE 6D_lab is deprecated. Leave the mode set; output automatically adjusts to 4D or 6D grids
+           *** NOTE: MODE 6D_lab is deprecated. Leave the mode set; output automatically adjusts to 4D or 6D grids
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn682_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn683_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_outtype
  LISTing to file mytype.nc
  LISTing to file mytype.nc
            *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
@@ -3423,10 +4135,16 @@ DEFINE DATA/AGGREGAT/E windy = 1,2
  LISTing to file mytype.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ribbon_plot
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_descr_4digit
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_outtype
  LISTing to file mytype.nc
  LISTing to file mytype.nc
            *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
@@ -3445,38 +4163,54 @@ LIST/FORMAT=CDF/clobber/file=mytype.nc my_data
  LISTing to file mytype.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_nonmonotonic
  **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonically increasing at index 12
 define axis/t/units=days tax = tvar
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_vec_mod
  Using every   9th vector in the X direction
  Using every   9th vector in the X direction
  Using every   9th vector in the X direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn685_bug_fixes
  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
 Replacing definition of axis TDAY
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file aa.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file aa.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file aa.nc
  LISTing to file aa.nc
@@ -3489,16 +4223,21 @@ NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
  data in attribute _FillValue not representable in output type NC_INT
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: command syntax: .HELLO
 list .hello
  **ERROR: variable unknown or not in data set: A.UNITS
@@ -3513,6 +4252,7 @@ list ..history
 list ..history
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis AXI
 Replacing definition of axis AXI_COARSE
 Replacing definition of axis AXI
@@ -3525,23 +4265,31 @@ Replacing definition of axis AXI
 Replacing definition of axis AXI_COARSE
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
-           *** NOTE: A dummy axis of subscripts will be used
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file sst_new.nc
  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 ZAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dsg_e_x
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_nco_append
  LISTing to file append_to_this.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_nobounds
 Replacing definition of axis XIRREG
  LISTing to file a.nc
  LISTing to file a.nc
@@ -3552,11 +4300,17 @@ Replacing definition of axis XIRREG
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_write_integer_att
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_descriptor_mc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_color_only
            *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
            *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  **ERROR: command syntax: COLOR
@@ -3567,6 +4321,8 @@ plot/i=1:100/over/COLOR 0.6*sin(i/7)
 plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_vtree
 Replacing definition of axis ZAX
            *** NOTE: Variable "FVX" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
@@ -3587,20 +4343,28 @@ Replacing definition of axis Y1
 Replacing definition of axis ZAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn686_bug_fixes
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the type of attribute a.ival
            *** NOTE: Changing the value of attribute a.ival
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **TMAP ERR: non-existent or not on line
              nosuchfile.nc
 SET DAT/FORM=CDF nosuchfile.nc
@@ -3616,29 +4380,43 @@ SET DAT/FORM=CDF snoopy
 SET DAT/FORM=CDF snoopy.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: regarding ./climatological_axes.cdf ...
            *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
  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
+Starting test: bn_long_symnames
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_strdim
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_single_colorlev
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn69_bug_fixes
  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
  LISTing to file a.nc
 Replacing definition of axis XAXIS_TEST
  LISTing to file b.nc
@@ -3648,29 +4426,28 @@ Replacing definition of axis XAXIS_TEST
  LISTing to file c.nc
  LISTing to file c.nc
 syntax error, unexpected WORD_STRING, expecting WORD_WORD
-context: Error { code = 500; message = "java.io.IOException: java.lang.Exception: Could not parse Ferret config file: java.util.MissingResourceException: Could not load any resource bundle by com.sun.org.apache.xerces.internal.impl.msg.SAXMessages"^;};
-syntax error, unexpected WORD_STRING, expecting WORD_WORD
-context: Error { code = 500; message = "java.io.IOException: java.lang.Exception: Could not parse Ferret config file: java.util.MissingResourceException: Could not load any resource bundle by com.sun.org.apache.xerces.internal.impl.msg.SAXMessages"^;};
+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
 LIST/FORMAT=CDF/clobber/keep/file=nc b,a[d=1]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **ERROR: dimensions improperly specified: must be a 2D region
-          shade b
-shade b
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute v1.long_name
            *** NOTE: Changing the value of attribute v1.units
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: attribute undefined or invalid attribute name: temp.noexist[d=levitus_climatology]
           attribute noexist not found for variable TEMP
 show att temp.noexist[d=levitus_climatology]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: illegal new name.  Variable b already defined
 set var/name=b a
  **ERROR: invalid command: illegal new name.  Variable b already defined
@@ -3683,16 +4460,24 @@ set var/name=psi myvar
 set var/name=diff w
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_bad_axis_bounds
            *** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
            *** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
            *** NOTE: Substituting coordinate midpoints
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_enter_exit_GO
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_stddev
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_axis_name
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file b.nc
@@ -3707,16 +4492,75 @@ set axis/name=45 x_in_meters
 set axis/name=.fr x_in_meters
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_let_remote
+           *** 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 = t0112mn1[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]
+ **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
+ **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
+ **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
+ **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
+list/x=300/y=15 avar
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn691_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: string/numeric data type mix-up. Argument 3 : TAX_DATESTRING
 list tax_datestring (tt[L=3], tt, 5)
  **ERROR: invalid command: string/numeric data type mix-up. Argument 2 : TAX_DATESTRING
 list tax_datestring (tt[L=3], "my_tax", "minutes")
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
            *** NOTE: Substituting coordinate midpoints
            *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
@@ -3725,6 +4569,7 @@ list tax_datestring (tt[L=3], "my_tax", "minutes")
            *** NOTE: Substituting coordinate midpoints
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: command syntax: must be a constant COS(1)
 list {cos(1), sin(0)}
  **ERROR: command syntax: must be a constant 0-180
@@ -3735,43 +4580,52 @@ list {0.1, 0.2, 1./5.}
 list {5*3+1, 2+3}
  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
  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
 Replacing definition of axis TAX
  LISTing to file tval.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file out.xml
  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
- **ERROR: request exceeds memory setting: 4739 Mwords were requested.
+ **ERROR: request exceeds memory setting
 load bigvar
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis LONGTIME
- **ERROR: request exceeds memory setting: 9472 Mwords were requested.
+ **ERROR: request exceeds memory setting
 load bigvar
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
            *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
  LISTing to file aa.nc
@@ -3781,6 +4635,7 @@ load bigvar
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: variable unknown or not in data set: A
 list a
  **ERROR: variable unknown or not in data set: A
@@ -3791,6 +4646,7 @@ list b
 shade a
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: variable unknown or not in data set: A
 list a
  **ERROR: variable unknown or not in data set: A
@@ -3801,39 +4657,58 @@ list b
 shade a
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
 list substring("hello",1,-2)
  **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
 list substring("hello",1,-3)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_append_dsg
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_global_atts
  LISTing to file anew_global.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_conventions_history
  LISTing to file conventions_history.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_center_key_labels
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_wgt_transform
 Replacing definition of axis X2
 Replacing definition of axis Y2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_show_outfile
 Replacing definition of axis ZAX
            *** NOTE: Variable "FVX" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
@@ -3851,69 +4726,110 @@ list e
 list f
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_date1900_array
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_spawn_size
+ LISTing to file bn_spawn_size1.cdf
+ LISTing to file bn_spawn_size2.cdf
+ LISTing to file bn_spawn_size3.cdf
+ LISTing to file bn_spawn_size4.cdf
+ LISTing to file bn_spawn_size5.cdf
+ LISTing to file bn_spawn_size02.dat
+ LISTing to file bn_spawn_size04.dat
+ LISTing to file bn_spawn_size06.dat
+ LISTing to file bn_spawn_size08.dat
+ LISTing to file bn_spawn_size10.dat
+ LISTing to file bn_spawn_size12.dat
+ LISTing to file bn_spawn_size14.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_polygon_log
  **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.850
 poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
  **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.689E-02
 poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn694_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file aa.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TIME
  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
  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
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: unknown data set: BAD_D
 stat/l=1/x=180/y=0 a
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: REPEAT what ?
 repeat/range=1:2/name=row
  **ERROR: invalid command: REPEAT what ?
 repeat/range=1:2/name=row
  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
 Replacing definition of axis XAX
 Replacing definition of axis YAX
  LISTing to file a.nc
@@ -3926,6 +4842,7 @@ Replacing definition of axis TREDEF
            *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: illegal format type - must be "GIF"
           frame/format=hdf/file=a.hdf
 frame/format=hdf/file=a.hdf
@@ -3934,79 +4851,118 @@ frame/format=hdf/file=a.hdf
 frame/file=a.png
  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 FAXIS
 Replacing definition of axis EAXIS
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  TEMPORARY data cleared from memory
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_permute_ascii
 Replacing definition of grid GRID3D
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_lon_lat_time_string
 Replacing definition of axis TAXIS
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_save_justdim
  LISTing to file a.nc
            *** NOTE: Saving E or F axis with time axis uses /RIGID in time
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_time2d
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TAXIS
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_legend_labels
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_DQ
            *** NOTE: Changing the value of attribute foobar.some_text
            *** NOTE: Changing the value of attribute foobar.some_text
 Replacing definition of grid GG
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn695_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_f_tax_fcns
  LISTing to file a.nc
 Replacing definition of axis FSEC
            *** NOTE: grid GSI1 used by data set a
            *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_fmrc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_return_defined
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_can_var_noerr
  **ERROR: variable unknown or not in data set: B
 cancel var b,a
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_annotate
  **ERROR: command syntax: xpos=a2
 annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
  **ERROR: command syntax: ypos=b
@@ -4041,6 +4997,8 @@ def anno/nou/xpos=0/hal=1/val=0 "My Lab"
 def anno/nou/user/xpos=0/ypos=0 "My Lab"
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_auxiliary
 Replacing definition of axis ZAX
  LISTing to file layerz_test_data.txt
  **ERROR: variable unknown or not in data set: (data set ok ?): noexist
@@ -4052,6 +5010,8 @@ Replacing definition of axis xax
 Replacing definition of axis ZAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_ribbon_gaploc
  **ERROR: command syntax: PLOT/VS/RIBBON/GAPLOC plot needs 4 arguments
 plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
  **ERROR: command syntax: PLOT/GAPLOC applies only to PLOT/VS/RIBBON
@@ -4060,16 +5020,24 @@ 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_time_short_axes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_floatstr_extended
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn696_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Units on axis "pfull1_1" are not recognized: hpa
            *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: unknown data set: noexist
 SHOW DATA noexist
  **ERROR: unknown data set: 2
@@ -4078,8 +5046,11 @@ SHOW DATA 2
 SHOW DATA/ATT noexist
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_bin_regrid
 Replacing definition of axis DCOARSE
 Replacing definition of axis IRR
 Replacing definition of axis DCOARSE
@@ -4092,54 +5063,64 @@ Replacing definition of axis DCOARSE
 Replacing definition of axis IRR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn697_bug_fixes
  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
  **TMAP ERR: error in axis attributes
              Calendar definitions on T and F axes must match
              Data file: ./ft_cal_one.nc
 SET DAT/FORM=CDF ft_cal_mixed.nc
  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
 Replacing definition of axis tday
 Replacing definition of axis xax
  LISTing to file myfile.nc
  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
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- Cached data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis LONGTIME
- **ERROR: request exceeds memory setting: 13 Mwords were requested.
+ **ERROR: request exceeds memory setting
 load/l=1:5 bigvar
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
- Cached data cleared from memory
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
            *** NOTE: Not deleted: XAX
            *** NOTE: Axis is in use by grid GFORMAT
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX1
 Replacing definition of axis TAX2
 Replacing definition of axis TAX2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  Using every   4th vector in the Y direction
 Replacing definition of axis xax
 Replacing definition of axis yax
@@ -4147,25 +5128,33 @@ Replacing definition of axis yax
  Using every   4th vector in the Y direction
  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
  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
 Replacing definition of axis F_AX
 Replacing definition of axis AAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis T_AXIS
 Replacing definition of axis T_AXIS
 Replacing definition of axis F_AXIS
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 Replacing definition of axis XAX
 Replacing definition of axis XAX
@@ -4174,38 +5163,49 @@ Replacing definition of axis XAX
 Replacing definition of axis XAX
  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
 Replacing definition of axis XAX
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAXIS
  LISTing to file a.nc
  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
 Replacing definition of axis TAX
  LISTing to file a.nc
            *** NOTE: Not deleted: TAX
            *** NOTE: Axis is in use by grid TGRID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
            *** NOTE: Changing the type of attribute sst.newch
            *** NOTE: Changing the value of attribute sst.newch
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_aggregate_t
 Replacing definition of axis TDAY
  LISTing to file tmp/tagg_reg_1.nc
  LISTing to file tmp/tagg_reg_2.nc
@@ -4221,7 +5221,7 @@ Replacing definition of axis TDAY
  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 (G086)
+           *** NOTE: Axis is in use by grid (G088)
  LISTing to file tmp/tagg_irreg_1.nc
  LISTing to file tmp/tagg_irreg_2.nc
  LISTing to file tmp/tagg_irreg_3.nc
@@ -4235,7 +5235,7 @@ Replacing definition of axis TDAY
 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 (G086)
+           *** NOTE: Axis is in use by grid (G088)
  LISTing to file tmp/tagg_T0varying_1.nc
 Replacing definition of axis TDAY_TVAR
  LISTing to file tmp/tagg_T0varying_2.nc
@@ -4271,7 +5271,7 @@ 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 (G086)
+           *** NOTE: Axis is in use by grid (G088)
  LISTing to file tmp/tagg_single_1.nc
  LISTing to file tmp/tagg_single_2.nc
  LISTing to file tmp/tagg_single_3.nc
@@ -4279,7 +5279,9 @@ Replacing definition of axis TDAY_TVAR
  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 (G086)
+           *** NOTE: Axis is in use by grid (G088)
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
  **ERROR: invalid command: given aggregation dataset name already in use: myagg2
 define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc, tmp/tagg_reg_2.nc
  **TMAP ERR: non-existent or not on line
@@ -4292,9 +5294,16 @@ define data/agg/t myaggbad = tmp/tagg_reg_1.nc, tmp/tagg_no_exist.nc
 DEFINE DATA/AGGREGAT/T myTindepagg = tmp/tagg_reg_no_T.nc
  **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_reg_3.nc
 define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2_overlarge.nc,tmp/tagg_reg_3.nc
+ **TMAP ERR: non-existent or not on line
+             Searched $FER_DESCR and $FER_DATA for 1(.nc ,.cdf,.des). For a Timeseries aggregation, specify the NetCDF file/path names or OPeNDAP dataset names.
+define data/agg/t myagg2num = 1,2
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
  **TMAP ERR: Unknown variable code
              in file tmp/tagg_disjoint_T0varying_4_wrong.nc time axis variable is missing: TDAY_TVAR
 define data/agg/t myagg5_bad = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_4_wrong.nc,tmp/tagg_disjoint_T0varying_5.nc
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
  **ERROR: unknown command: garbage
 garbage command syntax
  **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_single_1.nc
@@ -4303,6 +5312,8 @@ define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_1.nc
 define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc, tmp/tagg_single_5.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_unquoted_args
  LISTing to file tmp/test1.nc
  LISTing to file tmp/test2.nc
  LISTing to file tmp/test3.nc
@@ -4318,11 +5329,13 @@ go/garbage tmp/testMe
  **ERROR: unknown command qualifier: garbage
 go/garbage "tmp/testMe"
  **ERROR: unknown command qualifier: garbage
-go/garbage /home/users/ansley/build/current_trunk/FERRET/bench/tmp/testMe.jnl
+go/garbage /home/users/ansley/build/working/FERRET/bench/tmp/testMe.jnl
  **ERROR: unknown command qualifier: garbage
-go/garbage "/home/users/ansley/build/current_trunk/FERRET/bench/tmp/testMe.jnl"
+go/garbage "/home/users/ansley/build/working/FERRET/bench/tmp/testMe.jnl"
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_long_lists
  **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 [...]
  **ERROR: variable unknown or not in data set: A
@@ -4333,10 +5346,14 @@ load a
 "/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0020.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0021.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0022.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0023.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr [...]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_show_uvar_grid
 Replacing definition of axis DAYT
 Replacing definition of axis ZAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_aggregate_f
 Replacing definition of axis XAX
 Replacing definition of axis YAX
  LISTing to file tmp/fcst_1.nc
@@ -4357,13 +5374,19 @@ Replacing definition of axis YAX
  LISTing to file tmp/consecutive_month_fcst.nc
 Replacing definition of axis TRUEMONTH
  LISTing to file tmp/irregular_start_time_fcst.nc
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
            *** NOTE: Dataset used in aggregation.  Canceling aggregation, bn_aggregate_f.jnl
            *** NOTE: Dataset used in aggregation.  Canceling aggregation, my_fmrc
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: Ambiguous coordinates on T axis: FCST_2[D=MY_FMRC_LETD_6] - FCST_2[D=MY_FMRC_LETD_1]
  **ERROR: error defining aggregate dataset: some files have duplicate forecast start times
 DEFINE DATA/AGGREGAT/F my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc,tmp/fcst_2.nc,tmp/fcst_3.nc
@@ -4376,177 +5399,8 @@ DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/consecutive_month_fcst.nc")
 DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/irregular_start_time_fcst.nc")
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-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
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_aggregate_tef
            *** 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
@@ -4572,31 +5426,40 @@ DEFINE DATA/AGGREGAT/E bad_ens = te_f01, te_f03, te_f04
 DEFINE DATA/AGGREGAT/F bad_fmrc = tf_e1, tf_e3, tf_e4
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dataset_qualifier
  LISTing to file a.nc
  LISTing to file a.nc
 Replacing definition of axis XAX10
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_speedtest
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_show_noupcase
 Replacing definition of axis tday
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 SHO VAR/XML
 SHO VAR/XML
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_letd_attributes
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_list_clim_axes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_climatology_attr
 Replacing definition of axis tax
  LISTing to file a.nc
  LISTing to file a.nc
@@ -4605,46 +5468,1019 @@ Replacing definition of axis TAX
  LISTing to file a.nc
 Replacing definition of axis TAX
  LISTing to file a.nc
+ LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_along
            *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
            *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
            *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
            *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_show_commands
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_decimate
            *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
            *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
            *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
            *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_auto_tprec
 Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_coordvars_atts
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn710_bug_fixes
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **ERROR: command syntax: unknown region name: @w
-set region/@w
+ooooooooooooooooooooooooooooooooooooooooooo
+           *** NOTE: unrepairable repeated axis coords on axis xax at subscript -4161
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: unrepairable repeated axis coords on axis yax at subscript -4161
+           *** NOTE: A dummy axis of subscripts will be used
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **ERROR: command syntax: writev5d(tr, 0, 0, 0, 0, 0, 0, 0, "vis5d_out.v5d")
-          unknown function "writev5d"
-DEFINE VARIABLE/QUIET vflag = writev5d(tr, 0, 0, 0, 0, 0, 0, 0, "vis5d_out.v5d")
- **ERROR: variable unknown or not in data set: VFLAG
-LOAD/TEMPORARY vflag
+ooooooooooooooooooooooooooooooooooooooooooo
+           *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./unclosed_if.sub
+ 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
+Replacing definition of axis YAXIS
+ LISTing to file a.nc
+Replacing definition of axis TAX
+ 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
+ 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
+Replacing definition of axis TAX
+Replacing definition of axis ZAX
+Replacing definition of axis TAX
+ 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
+Replacing definition of axis TAXIS
+Replacing definition of axis XAXIS
+Replacing definition of axis YAXIS
+Replacing definition of axis TAXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis TAX
+ 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
+ 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
+Replacing definition of axis YAXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis XLON
+Replacing definition of axis YLAT
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis TAX
+ LISTing to file a.nc
+           *** NOTE: Not deleted: TAX
+           *** NOTE: Axis is in use by grid TGRID
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ **TMAP ERR: attribute already defined
+             coordinates for variable ZETA
+             Data set: testdata
+ **TMAP ERR: attribute already defined
+             coordinates for variable U
+             Data set: testdata
+ **TMAP ERR: attribute already defined
+             coordinates for variable V
+             Data set: testdata
+ **TMAP ERR: attribute already defined
+             coordinates for variable TEMP
+             Data set: testdata
+ **TMAP ERR: attribute already defined
+             coordinates for variable SALT
+             Data set: testdata
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis XAX
+Replacing definition of axis XAX
+Replacing definition of axis TAX2
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis XLON
+ LISTing to file a1.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
+ LISTing to file a.nc
+           *** NOTE: Requested region on modulo axis XLONN7_141 is larger than modulo length. Modulo attribute not written.
+ 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
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis TDAYS
+Replacing definition of axis YAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ LISTing to file a1.nc
+ LISTing to file a2.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_delim_datetime
+Replacing definition of axis TIMAX
+Replacing definition of axis TIMAX
+Replacing definition of axis TIMAX
+Replacing definition of axis TIMAX
+Replacing definition of axis TIMAX
+ **ERROR: Error reading file: Check Date or Time fields.
+list index,edtim,udtim,udate,edate
+ **ERROR: Error reading file: Check Date or Time fields.
+list index,edtim,udtim,udate,edate
+ **ERROR: Error reading file: Check Date or Time fields.
+list index,edtim,udtim,udate,edate
+ **ERROR: Error reading file: Check Date or Time fields.
+list index,edtim,udtim,udate,edate
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_aggregate_u
+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
+ LISTing to file tmp/uagg_4.nc
+ LISTing to file tmp/uagg_1_t1.nc
+ LISTing to file tmp/uagg_1_t2.nc
+ LISTing to file tmp/uagg_1_t3.nc
+ LISTing to file tmp/uagg_5.nc
+           *** NOTE: Skipping variable SST from set 2, already in the Union dataset.
+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
+ LISTing to file tmp/f01_e2_tu1.nc
+ LISTing to file tmp/f01_e2_tu2.nc
+ LISTing to file tmp/f01_e2_tu3.nc
+ LISTing to file tmp/f02_e1_tu1.nc
+ LISTing to file tmp/f02_e1_tu2.nc
+ LISTing to file tmp/f02_e1_tu3.nc
+ LISTing to file tmp/f02_e2_tu1.nc
+ LISTing to file tmp/f02_e2_tu2.nc
+ LISTing to file tmp/f02_e2_tu3.nc
+ LISTing to file tmp/f03_e1_tu1.nc
+ LISTing to file tmp/f03_e1_tu2.nc
+ LISTing to file tmp/f03_e1_tu3.nc
+ LISTing to file tmp/f03_e2_tu1.nc
+ LISTing to file tmp/f03_e2_tu2.nc
+ LISTing to file tmp/f03_e2_tu3.nc
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: Skipping variable REALIZATION from set 1, already in the Union dataset.
+           *** NOTE: Skipping variable REALIZATION from set 8, already in the Union dataset.
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ez_noupcase
+ LISTing to file abc.dat
+ LISTing to file a.nc
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_spawn_fail
+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
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ave_of_ave
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_agg_member_syntax
+ **ERROR: unknown data set: D=5.3
+stat/br fcst[d=5.3]
+ **ERROR: unknown data set: D=12.30
+stat/br fcst[d=12.30]
+ **ERROR: unknown data set: D=12.300000
+stat/br fcst[d=12.300000]
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+ **ERROR: unknown data set: D=4.1
+stat/br sst[d=4.1]
+ **ERROR: unknown data set: D=5.30
+stat/br sst[d=5.30]
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_true_monthly
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis, T0 not specified. Using start of first year of axis
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis, T0 not specified. Using start of first year of axis
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+ LISTing to file a.nc
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+ LISTing to file a.nc
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+ LISTing to file a.nc
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis, T0 not specified. Using 01-jan-0000
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+ LISTing to file a.nc
+           *** NOTE: True monthly axis
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis, T0 not specified. Using start of first year of axis
+Replacing definition of axis TAXIS
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY specify /UNITS=month or omit /UNITS (MONTH is default)
+define axis/t=1-jan-2010:31-jul-2011:30/t0=1-jan-2000/monthly/units=days taxis
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis: /NPOINTS not allowed. Use /T=lo:hi:del
+define axis/t=1-jan-2010:31-dec-2012:1/t0=1-jan-2000/monthly/npoints=13 taxis
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis delta-t must be 1
+define axis/t=1-jan-2010:31-dec-2012/t0=1-jan-2000/monthly taxis
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis delta-t must be 1
+define axis/t=1-jan-2010:31-dec-2012:2/t0=1-jan-2000/monthly taxis
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis: Definition /FROMDATA not allowed. Use /T=LO:HI:DEL
+define axis/t/t0=1-jan-2000/monthly taxis = {123,124,126}
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis: Definition /FROMDATA not allowed. Use /T=LO:HI:DEL
+define axis/from/t/t0=1-jan-2001/monthly/edges taxis = {5,6,6,6,7}
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis: /BOUNDS not allowed. Use /T=lo:hi:del
+def axis/t/t0=1-jan-2000/monthly/bounds tax={1.2, 2, 3.2, 5, 7, 8.4, 9}, {0.5,1.5, 1.5,2.5, 2.5,3.5, 3.5,6.5, 6.5,7.5, 7.5,8.5, 8.5,9.5}
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis: needs /T=lo:hi:del
+define axis/x=1:5:1/monthly aaxis
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn720_bug_fixes
+ 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
+Replacing definition of axis TAX
+ 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
+ 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
+ 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
+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
+Starting test: bn_compressed_gather
+Replacing definition of axis xax
+Replacing definition of axis yax
+Replacing definition of axis tax
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis xax
+Replacing definition of axis yax
+Replacing definition of axis zax
+Replacing definition of axis tax
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis xax
+Replacing definition of axis tax
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis xax
+Replacing definition of axis zax
+Replacing definition of axis tax
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dynamic_gather
+ **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
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ 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 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
+           *** NOTE: No active redirects to cancel
+ **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
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ 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 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
+ **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
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ 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 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
+ **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
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ 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 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
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_stat_precision
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_vs_with_time
+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
+ 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
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ 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
+ **ERROR: command syntax: unknown region name: @w
+set region/@w
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- Cached 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
@@ -4687,8 +6523,10 @@ Re-defining viewport UM6
  Using every   2th vector in the Y direction
  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 UL6
 Re-defining viewport UM6
 Re-defining viewport UR6
@@ -4698,11 +6536,14 @@ Replacing definition of axis TDAYS
  Using every   4th vector in the X direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX
  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 XAX
  **ERROR: dimensions improperly specified: specified data is not a line
            - its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
@@ -4735,4 +6576,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 Wed Jun 15 12:07:47 PDT 2016
+Ended at Thu Apr 13 10:48:44 PDT 2017
diff --git a/bench/ansley_official.rhel6-64_log b/bench/ansley_official.rhel6-64_log
index 0654627..620f3a5 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/current_trunk/FERRET/fer/ferret_c
--rwxr-xr-x. 1 ansley oerdnewp 117720321 Jun 15 11:10 /home/users/ansley/build/current_trunk/FERRET/fer/ferret_c
-Using external functions from /home/users/ansley/build/current_trunk/FERRET/external_functions/ext_func
+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 the tests of external functions y
 Benchmark run by ansley
-Note: ticket 2441: LET/D variables in a show data/var/xml
+Note: ticket 2526, show data/members for union sets
 ncdump output will be in all_ncdump.out, and appended to this log file 
 ***** Restricting Ferret paths to bench directory *****
 FER_DAT=.
@@ -13,14 +13,16 @@ 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/current_trunk/FERRET/external_functions/ext_func
-FER_GO=. /home/users/tmap/ferret/x86_64-linux/go /home/users/tmap/ferret/x86_64-linux/examples /home/users/tmap/ferret/x86_64-linux/contrib /home/users/tmap/ferret/tmap_go /home/users/ansley/las.v8.4.rc5/JavaSource/resources/iosp/scripts/
+FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/trunk/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=.
-FER_LIBS=/home/users/tmap/ferret/x86_64-linux/lib
-FER_PALETTE=. /home/users/tmap/ferret/x86_64-linux/ppl
-PWD=/home/users/ansley/build/current_trunk/FERRET/bench
-PYFER_EXTERNAL_FUNCTIONS=/home/users/tmap/ferret/x86_64-linux/ext_func/pylibs
-Beginning at Wed Jun 15 12:05:35 PDT 2016
+FER_LIBS=/home/users/tmap/ferret/rhel6-x86_64-linux/lib
+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
 ! BN500_ALL.JNL
 ! - run all the benchmark tests
 ! - ordered (more or less) from least to most complex
@@ -136,13 +138,22 @@ Beginning at Wed Jun 15 12:05:35 PDT 2016
 !       *sh* 3/16 - added bn_plot_along.jnl
 !       *acm*4/16 - added bn_show_commands.jnl
 !       *acm*4/16 - added bn_plot_decimate.jnl
- 
+! V702 *sh 11/16 - added bn_agg_member_syntax.jnl
+! V702 *acm 12/16 - Merge/Reintigrate true-month-axis branch. New test bn_true_monthly.
+!                   and axes that are true-month in other tests are treated as true-month.
+! V702 *acm 12/16 - Remove all references to the long unused and unsupported vis5D function
+! V7023 *acm 1/17 - Back out the changes that automatically detect a true-month axis in
+!                   a netCDF file or from a DEFINE AXIS (when given without /MONTHLY).
+!
 ! Include this statement to compare the outupt of 6D Ferret with
 ! previous 4D benchmark logs.
 ! cancel mode 6d_lab
+! V702 *sh* 3/17 - added dynamic memory benchmarks.  Tweaked a couple of others
  
-GO bn_reset
+GO bn_reset bn_syntax
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_syntax
 GO bn_syntax
 ! bn401_syntax.JNL
 ! - test syntax interpretation of Program FERRET
@@ -167,43 +178,43 @@ SHOW DATA/BRIEF
 SHOW DATA
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
  
 SHOW DATA/VARIABLES
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.8S:51.4N  
  
@@ -212,43 +223,43 @@ SHOW DATA/VARIABLES
 SHOW DATA/FILES
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
  
 SHOW DATA/FULL
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.8S:51.4N  
  
@@ -286,8 +297,8 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./snoopy.dat  (default)
  
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:2       ...       ...       ...
                on grid (G008) with -1.E+34 for missing data
              X=-0.5:1.5  
  
@@ -298,8 +309,8 @@ FILE/TITLE="quick and dirty" snoopy.dat
 SHOW DATA
      currently SET data sets:
     1> ./snoopy.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:2       ...       ...       ...
  
 SET MODE IGNORE_ERROR
 SET DATA/EZ/VAR="P,Q" 1
@@ -426,11 +437,11 @@ region W
 ! SET - SHOW - CANCEL  MODE
 SHOW MODES
       MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
+      DIAGNOSTIC    CANCELED            99
       VERIFY           SET         DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
+      INTERPOLATE   CANCELED
+      IGNORE_ERROR  CANCELED
+      STUPID        CANCELED
       JOURNAL          SET         ferret.jnl
       LONG_LABEL       SET               1
       LATIT_LABEL      SET               1
@@ -440,32 +451,33 @@ SHOW MODES
       F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
+      WAIT          CANCELED
+      DESPERATE     CANCELED       2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      metafile.plt
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
+      METAFILE      CANCELED       metafile.plt
+      PPLLIST       CANCELED       ppllist.out
+      GUI           CANCELED
       LOGO             SET
       LABELS           SET
-      GRATICULE     CANCELLED
+      GRATICULE     CANCELED
       LINECOLORS       SET               6
       UPCASE_OUTPU     SET
       NLEVELS          SET              30
       NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      LAYERZ        CANCELLED
+      SHRINK_YLAB   CANCELED
+      CURVILINEAR   CANCELED
+      LAYERZ        CANCELED
       6D_LAB           SET
+      FRUGAL           SET              30
 SET MODE IGNORE_ERROR
 SHOW MODES
       MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
+      DIAGNOSTIC    CANCELED            99
       VERIFY           SET         DEFAULT
-      INTERPOLATE   CANCELLED
+      INTERPOLATE   CANCELED
       IGNORE_ERROR     SET
-      STUPID        CANCELLED
+      STUPID        CANCELED
       JOURNAL          SET         ferret.jnl
       LONG_LABEL       SET               1
       LATIT_LABEL      SET               1
@@ -475,32 +487,33 @@ SHOW MODES
       F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
+      WAIT          CANCELED
+      DESPERATE     CANCELED       2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      metafile.plt
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
+      METAFILE      CANCELED       metafile.plt
+      PPLLIST       CANCELED       ppllist.out
+      GUI           CANCELED
       LOGO             SET
       LABELS           SET
-      GRATICULE     CANCELLED
+      GRATICULE     CANCELED
       LINECOLORS       SET               6
       UPCASE_OUTPU     SET
       NLEVELS          SET              30
       NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      LAYERZ        CANCELLED
+      SHRINK_YLAB   CANCELED
+      CURVILINEAR   CANCELED
+      LAYERZ        CANCELED
       6D_LAB           SET
+      FRUGAL           SET              30
 CANCEL MODE IGNORE_ERROR
 SHOW MODES
       MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
+      DIAGNOSTIC    CANCELED            99
       VERIFY           SET         DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
+      INTERPOLATE   CANCELED
+      IGNORE_ERROR  CANCELED
+      STUPID        CANCELED
       JOURNAL          SET         ferret.jnl
       LONG_LABEL       SET               1
       LATIT_LABEL      SET               1
@@ -510,27 +523,28 @@ SHOW MODES
       F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
+      WAIT          CANCELED
+      DESPERATE     CANCELED       2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      metafile.plt
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
+      METAFILE      CANCELED       metafile.plt
+      PPLLIST       CANCELED       ppllist.out
+      GUI           CANCELED
       LOGO             SET
       LABELS           SET
-      GRATICULE     CANCELLED
+      GRATICULE     CANCELED
       LINECOLORS       SET               6
       UPCASE_OUTPU     SET
       NLEVELS          SET              30
       NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      LAYERZ        CANCELLED
+      SHRINK_YLAB   CANCELED
+      CURVILINEAR   CANCELED
+      LAYERZ        CANCELED
       6D_LAB           SET
+      FRUGAL           SET              30
 SHOW MODE STUPID
       MODE            STATE        ARGUMENT
-      STUPID        CANCELLED
+      STUPID        CANCELED
 SET MODE STUPID
 SHOW MODE STUPID
       MODE            STATE        ARGUMENT
@@ -538,7 +552,7 @@ SHOW MODE STUPID
 SET MODE/LAST STUPID
 SHOW MODE STUPID
       MODE            STATE        ARGUMENT
-      STUPID        CANCELLED
+      STUPID        CANCELED
  
 ! new modes 5/93
 set mode journal newjournal.jnl
@@ -566,12 +580,12 @@ ppl list plot
 cancel mode journal
 show mode journal
       MODE            STATE        ARGUMENT
-      JOURNAL       CANCELLED      ferret.jnl
+      JOURNAL       CANCELED       ferret.jnl
  
 ! new 1/94  (syntax check also applies to modes journal and ppllist)
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      metafile.plt
+      METAFILE      CANCELED       metafile.plt
 set mode metafile newmetafile1.plt
 show mode metafile
       MODE            STATE        ARGUMENT
@@ -655,8 +669,6 @@ SHOW GRID
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 LIST/I=101:105/J=50/K=1/L=5 SALT
              VARIABLE : (SALINITY(ppt) - 35) /1000 (frac. by wt. less .035)
              FILENAME : gt4d011.cdf
@@ -680,8 +692,6 @@ SHOW GRID
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
- normal    E
- normal    F
 SET GRID/SAVE
 SET GRID ABSTRACT
 SHOW GRID
@@ -693,8 +703,6 @@ SHOW GRID
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
- normal    E
- normal    F
 SHOW GRID/X=180:165W SALT
     GRID PS3DT2
  name       axis              # pts   start                end                 subset
@@ -702,8 +710,6 @@ SHOW GRID/X=180:165W SALT
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
       50>  179.5E                1          179E
@@ -739,56 +745,62 @@ SHOW VARIABLES
  
 ! SHOW MEMORY , LOAD
 SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 5 words
 SHOW MEMORY/TEMPORARY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 5 words
 data loaded without /PERMANENT:
- SALT[D=gt4d011]                   X     mr:3  blk1:1  nblk:1
-  101  /130W          50  /1.3N           1  /0              5  /07-SEP-1982  ...  / ...         ...  / ...
-  105  /125W          50  /1.7N           1  /10             5  /13-SEP-1982  ...  / ...         ...  / ...
+ SALT[D=gt4d011]                   X     mr:3 size:5
+       101/130W               50/1.3N                1/0                   5/07-SEP-1982
+       105/125W               50/1.7N                1/10                  5/13-SEP-1982
  
 SHOW MEMORY/PERMANENT
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 5 words
 data loaded with /PERMANENT:
 SHOW MEMORY/ALL
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 5 words
 all data in memory:
- SALT[D=gt4d011]                   X     mr:3  blk1:1  nblk:1
-  101  /130W          50  /1.3N           1  /0              5  /07-SEP-1982  ...  / ...         ...  / ...
-  105  /125W          50  /1.7N           1  /10             5  /13-SEP-1982  ...  / ...         ...  / ...
+ SALT[D=gt4d011]                   X     mr:3 size:5
+       101/130W               50/1.3N                1/0                   5/07-SEP-1982
+       105/125W               50/1.7N                1/10                  5/13-SEP-1982
  
  
 LET A=i
 LOAD/PERM/I=1:5 A
 SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 15 words
+    Permamnent: 5 words
 SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 12800
- 
-            number of free memory blocks: 1997
-            largest free region: 1997
-            number of free regions: 1
-            free memory table slots: 497
-            number of UN-CACHED variables: 0
-            number of /PERMANENT variables: 1
-            number of blocks used /PERM: 1
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 15 words
+    Permamnent: 5 words
+    Total table slots: 500
+    Free table slots: 497
+    Un-cached variables: 0
+    number of /PERMANENT variables: 1
+    memory used for /PERM: 5
 LOAD/TEMPORARY/I=1:5 A
 SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 10 words
 SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 12800
- 
-            number of free memory blocks: 1998
-            largest free region: 1997
-            number of free regions: 2
-            free memory table slots: 498
-            number of UN-CACHED variables: 0
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 10 words
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
  
 ! REPEAT
 REPEAT/L=1:3 LIST/I=1:6/ORDER=X 1/(I+L)
@@ -1072,8 +1084,10 @@ J1111111112222222222333333333344444444445555555555666666666677777777778888888888
  
 cancel mode metafile      !9/97
  
-GO bn_reset
+GO bn_reset bn_dollar
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dollar
 GO bn_dollar hello    ! test command arg
 ! test this with GO journal hello
  
@@ -1245,8 +1259,10 @@ set mode ignore
 set mode/last ignore
  
 ! added in bn400
-GO bn_reset
+GO bn_reset bn_grave
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_grave
 GO bn_grave
 ! bn420_grave
 ! benchmark to test evaluation of grave accent-enclosed expressions
@@ -1393,17 +1409,17 @@ use coads_climatology
 set mode diagnostic
 let sst2 = sst[l=5:8]
 say `sst, return=size`    ! should only do a GETGRID
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  !-> MESSAGE/CONTINUE 48600
 48600
 say `sst2,return=lend`    ! should inherit L=5:8
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 SST2     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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
+ getgrid SST2     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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  !-> MESSAGE/CONTINUE 8
 8
 set mode/last diagnostic
@@ -1519,42 +1535,42 @@ say `sst[L=1:3 at ave]+sst,return=lsize`
 let a = XSEQUENCE(J[j=1:5])
 set mode diagnostic
 say `a,return=isize`          ! full evaluation occurs
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C01,V08 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C11,V08 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ 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
+ getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C01,V08 C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C11,V08 C: 11 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 (C11,V08 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- -DELETE X        M:  2 dset:   0 I:  160  160  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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: -999 -999  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V08 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C11,V08 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M:  2 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pass #2 (C11,V08 C: 11 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ -DELETE X        M:  2 dset:   0 I:    160    160  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V08 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C11,V08 C: 10 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  J        M:  2 dset:   0 I:   -999   -999  J:    1    5  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 5
 5
 say `a[i=2:3],return=isize`   ! full evaluation is bypassed
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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
- -DELETE J        M:  2 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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: -999 -999  M: -999 -999  N: -999 -999
- found   A        M: 10 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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
+ -DELETE J        M:  2 dset:   0 I:   -999   -999  J:    1    5  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ found   A        M: 10 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 2
 2
 say `a[i=100:200],return=isize`    ! correct starting with Ferret v694 (tkt 2213)
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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: -999 -999  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I:  100  200  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V08 C:  8 dset:   0 I:  100  200  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- found   (C11,V08 M:  5 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -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
+ 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:   -999   -999
+ eval    A        C:  6 dset:   0 I:    100    200  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V08 C:  8 dset:   0 I:    100    200  J: -999 -999  K: -999 -999  L:   -999   -999
+ found   (C11,V08 M:  5 dset:   0 I:   -999   -999  J:    1    5  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 5
 5
 set mode/last diagnostic
@@ -1572,8 +1588,10 @@ set mode/last ignore_errors
  
  
 ! added in bn420
-GO bn_reset
+GO bn_reset bn_letd
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_letd
 GO bn_letd
 ! bn420_letd.jnl
 ! 9/1/95
@@ -1618,8 +1636,8 @@ show var/d=clim_airt_lev
 show data clim_airt_lev
      currently SET data sets:
     1> ./clim_airt_lev.cdf  (default)
- name     title                             I         J         K         L         M         N
- AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12
  ------------------------------
  A[D=clim_airt_lev] = CLIM_AIRT_LEV-SPECIFIC
  
@@ -1699,22 +1717,22 @@ set var/titl=test3 t3[d=snoopy.dat]
 show data
      currently SET data sets:
     1> ./clim_airt_lev.cdf
- name     title                             I         J         K         L         M         N
- AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12
  ------------------------------
  T3[D=clim_airt_lev] = 3
  
     2> ./snoopy.dat  (default)
- name     title                             I         J         K         L         M         N
- T4       test4                            1:2       ...       ...       ...       ...       ...
- T3       test3                            1:2       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ T4       test4                            1:2       ...       ...       ...
+ T3       test3                            1:2       ...       ...       ...
  
 show data/full 1
      currently SET data sets:
     1> ./clim_airt_lev.cdf
  
- name     title                             I         J         K         L         M         N
- AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12
              deg. C on grid GGT1 with -1.E+34 for missing data
              X=130E:70W  Y=30S:50N  
  
@@ -1850,8 +1868,10 @@ list q[d=v12file]
  
  
 ! added in bn430
-GO bn_reset
+GO bn_reset bn_if
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_if
 GO bn_if
 ! bn430_if
 ! 5/6/96
@@ -1945,8 +1965,10 @@ IF yes THEN
   say ---->... now inside of IF clause
 ---->... now inside of IF clause
  
-GO bn_reset
+GO bn_reset bn_expressions
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_expressions
 GO bn_expressions
 ! bn450_expressions.JNL
 ! test all manner of expressions
@@ -2476,8 +2498,10 @@ LIST/L=5:7 TBOXLO, TBOXHI
 6   / 6:  5.500  6.500
 7   / 7:  6.500  7.500
  
-GO bn_reset
+GO bn_reset bn_geometry
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_geometry
 GO bn_geometry
 ! bn200_geometry.JNL
 ! benchmark various geometries for accessing FERRET data
@@ -3060,8 +3084,8 @@ USE gt4d011
 CANCEL MEMORY/ALL
 SET MODE DIAGNOSTIC
 DEFINE REGION/I=101 IPT
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1
 DEFINE REGION/J=46 JPT
 DEFINE REGION/K=1 KPT
 DEFINE REGION/L=1 LPT
@@ -3069,10 +3093,10 @@ DEFINE REGION/I=101:105/J=46:50/K=1:5/L=1:5 R4D
 SET REG R4D
 SET EXPRESSION temp
 LOAD		! load full 4-D region
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  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 PS3DT2          PSXT      PSYT      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
+ reading TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
 GO bn_geometry.sub
 ! BN200_GEOMETRY.SUB
 ! list the variable vtest on variuos geometries
@@ -3082,8 +3106,8 @@ GO bn_geometry.sub
 ! lines of data
 LIST/@JPT/@KPT/@LPT/ORDER=X
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (LONGITUDE)
@@ -3093,11 +3117,11 @@ LIST/@JPT/@KPT/@LPT/ORDER=X
           129.5W 128.5W 127.5W 126.5W 125.5W 
           101    102    103    104    105
           25.78  25.80  25.82  25.80  25.74
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      1
 LIST/@IPT/@KPT/@LPT/ORDER=Y
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (LATITUDE)
@@ -3107,11 +3131,11 @@ LIST/@IPT/@KPT/@LPT/ORDER=Y
            0.17N  0.5N   0.83N  1.17N  1.5N  
            46     47     48     49     50
           25.78  25.90  26.04  26.22  26.42
- -DELETE TEMP     M: 29 dset:   1 I:   46   50  J:  101  101  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:     46     50  J:  101  101  K:    1    1  L:      1      1
 LIST/@IPT/@JPT/@LPT/ORDER=Z
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (DEPTH (m))
@@ -3121,11 +3145,11 @@ LIST/@IPT/@JPT/@LPT/ORDER=Z
            5      15     25     35     45    
             1      2      3      4      5
           25.78  25.67  25.51  25.35  25.16
- -DELETE TEMP     M: 29 dset:   1 I:    1    5  J:  101  101  K:   46   46  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:      1      5  J:  101  101  K:   46   46  L:      1      1
 LIST/@IPT/@JPT/@KPT/ORDER=T
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    1  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (TIME)
@@ -3135,13 +3159,13 @@ LIST/@IPT/@JPT/@KPT/ORDER=T
            1982   1982   1982   1982   1982  
             1      2      3      4      5
           25.78  25.98  26.18  26.39  26.62
- -DELETE TEMP     M: 29 dset:   1 I:    1    5  J:  101  101  K:   46   46  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:      1      5  J:  101  101  K:   46   46  L:      1      1
  
 ! planes of data
 LIST/@KPT/@LPT	!XY
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
@@ -3154,11 +3178,11 @@ LIST/@KPT/@LPT	!XY
  0.83N / 48:  26.04  26.10  26.13  26.11  26.06
  0.5N  / 47:  25.90  25.94  25.96  25.94  25.89
  0.17N / 46:  25.78  25.80  25.82  25.80  25.74
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      1
 LIST/@JPT/@LPT	!XZ
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-DEPTH (m))
@@ -3171,11 +3195,11 @@ LIST/@JPT/@LPT	!XZ
  25    / 3:  25.51  25.53  25.54  25.53  25.48
  35    / 4:  25.35  25.36  25.36  25.34  25.29
  45    / 5:  25.16  25.15  25.12  25.07  25.02
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:    1    5  K:   46   46  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:    1    5  K:   46   46  L:      1      1
 LIST/@JPT/@KPT	!XT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-TIME)
@@ -3188,11 +3212,11 @@ LIST/@JPT/@KPT	!XT
  29-AUG-1982 16 / 3:  26.18  26.13  26.07  26.01  25.97
  04-SEP-1982 18 / 4:  26.39  26.31  26.24  26.18  26.15
  10-SEP-1982 20 / 5:  26.62  26.55  26.47  26.40  26.36
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:    1    5  K:   46   46  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:    1    5  K:   46   46  L:      1      1
 LIST/@IPT/@LPT	!YZ
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LATITUDE-DEPTH (m))
@@ -3205,11 +3229,11 @@ LIST/@IPT/@LPT	!YZ
  25    / 3:  25.51  25.68  25.90  26.12  26.35
  35    / 4:  25.35  25.58  25.86  26.11  26.35
  45    / 5:  25.16  25.41  25.77  26.10  26.35
- -DELETE TEMP     M: 29 dset:   1 I:   46   50  J:    1    5  K:  101  101  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:     46     50  J:    1    5  K:  101  101  L:      1      1
 LIST/@IPT/@KPT	!YT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LATITUDE-TIME)
@@ -3222,11 +3246,11 @@ LIST/@IPT/@KPT	!YT
  29-AUG-1982 16 / 3:  26.18  26.30  26.46  26.65  26.86
  04-SEP-1982 18 / 4:  26.39  26.51  26.67  26.85  27.05
  10-SEP-1982 20 / 5:  26.62  26.72  26.87  27.03  27.17
- -DELETE TEMP     M: 29 dset:   1 I:   46   50  J:    1    5  K:  101  101  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:     46     50  J:    1    5  K:  101  101  L:      1      1
 LIST/@IPT/@JPT	!ZT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (DEPTH (m)-TIME)
@@ -3239,13 +3263,13 @@ LIST/@IPT/@JPT	!ZT
  29-AUG-1982 16 / 3:  26.18  26.08  25.93  25.79  25.60
  04-SEP-1982 18 / 4:  26.39  26.31  26.16  26.04  25.83
  10-SEP-1982 20 / 5:  26.62  26.53  26.36  26.25  26.04
- -DELETE TEMP     M: 29 dset:   1 I:    1    5  J:    1    5  K:  101  101  L:   46   46  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:      1      5  J:    1    5  K:  101  101  L:     46     46
  
 ! cubes of data
 LIST/@LPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-DEPTH (m))
@@ -3282,11 +3306,11 @@ LIST/@LPT
  0.83N / 48:  25.77  25.81  25.82  25.81  25.76
  0.5N  / 47:  25.41  25.43  25.41  25.38  25.32
  0.17N / 46:  25.16  25.15  25.12  25.07  25.02
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      1
 LIST/@KPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-TIME)
@@ -3323,11 +3347,11 @@ LIST/@KPT
  0.83N / 48:  26.87  26.75  26.62  26.54  26.52
  0.5N  / 47:  26.72  26.63  26.52  26.45  26.43
  0.17N / 46:  26.62  26.55  26.47  26.40  26.36
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      1
 LIST/@JPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-DEPTH (m)-TIME)
@@ -3364,11 +3388,11 @@ LIST/@JPT
  25    / 3:  26.36  26.31  26.19  26.08  26.03
  35    / 4:  26.25  26.21  26.09  25.98  25.92
  45    / 5:  26.04  26.01  25.93  25.84  25.77
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:    1    5  K:    1    5  L:   46   46  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:    1    5  K:    1    5  L:     46     46
 LIST/@IPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LATITUDE-DEPTH (m)-TIME)
@@ -3405,12 +3429,12 @@ LIST/@IPT
  25    / 3:  26.36  26.59  26.78  26.95  27.09
  35    / 4:  26.25  26.53  26.78  26.95  27.09
  45    / 5:  26.04  26.32  26.68  26.95  27.09
- -DELETE TEMP     M: 29 dset:   1 I:   46   50  J:    1    5  K:    1    5  L:  101  101  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:     46     50  J:    1    5  K:    1    5  L:    101    101
  
 ! 4D region
 LOAD
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
 SET MODE/LAST DIAGNOSTIC
  
 ! ******** disk-resident file variable ************
@@ -3418,7 +3442,7 @@ USE gt4d011
 CANCEL MEMORY/ALL
 SET MODE DIAGNOSTIC
 DEFINE REGION/I=101 IPT
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1
 DEFINE REGION/J=46 JPT
 DEFINE REGION/K=1 KPT
 DEFINE REGION/L=1 LPT
@@ -3433,11 +3457,11 @@ GO bn_geometry.sub
  
 ! lines of data
 LIST/@JPT/@KPT/@LPT/ORDER=X
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     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 PS3DT2          PSXT      PSYT      PSZT      TIME1
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 31 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      1
+ reading TEMP     M: 31 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (LONGITUDE)
@@ -3449,8 +3473,8 @@ LIST/@JPT/@KPT/@LPT/ORDER=X
           25.78  25.80  25.82  25.80  25.74
 LIST/@IPT/@KPT/@LPT/ORDER=Y
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 29 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      1
+ reading TEMP     M: 29 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (LATITUDE)
@@ -3462,8 +3486,8 @@ LIST/@IPT/@KPT/@LPT/ORDER=Y
           25.78  25.90  26.04  26.22  26.42
 LIST/@IPT/@JPT/@LPT/ORDER=Z
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 28 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      1
+ reading TEMP     M: 28 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (DEPTH (m))
@@ -3475,8 +3499,8 @@ LIST/@IPT/@JPT/@LPT/ORDER=Z
           25.78  25.67  25.51  25.35  25.16
 LIST/@IPT/@JPT/@KPT/ORDER=T
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 27 dset:   1 I:  101  101  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    1  L:      1      5
+ reading TEMP     M: 27 dset:   1 I:    101    101  J:   46   46  K:    1    1  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (TIME)
@@ -3490,8 +3514,8 @@ LIST/@IPT/@JPT/@KPT/ORDER=T
 ! planes of data
 LIST/@KPT/@LPT	!XY
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 26 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      1
+ reading TEMP     M: 26 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
@@ -3506,8 +3530,8 @@ LIST/@KPT/@LPT	!XY
  0.17N / 46:  25.78  25.80  25.82  25.80  25.74
 LIST/@JPT/@LPT	!XZ
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 25 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      1
+ reading TEMP     M: 25 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-DEPTH (m))
@@ -3522,8 +3546,8 @@ LIST/@JPT/@LPT	!XZ
  45    / 5:  25.16  25.15  25.12  25.07  25.02
 LIST/@JPT/@KPT	!XT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 24 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      5
+ reading TEMP     M: 24 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-TIME)
@@ -3538,8 +3562,8 @@ LIST/@JPT/@KPT	!XT
  10-SEP-1982 20 / 5:  26.62  26.55  26.47  26.40  26.36
 LIST/@IPT/@LPT	!YZ
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 23 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      1
+ reading TEMP     M: 23 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LATITUDE-DEPTH (m))
@@ -3554,8 +3578,8 @@ LIST/@IPT/@LPT	!YZ
  45    / 5:  25.16  25.41  25.77  26.10  26.35
 LIST/@IPT/@KPT	!YT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 22 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      5
+ reading TEMP     M: 22 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LATITUDE-TIME)
@@ -3570,8 +3594,8 @@ LIST/@IPT/@KPT	!YT
  10-SEP-1982 20 / 5:  26.62  26.72  26.87  27.03  27.17
 LIST/@IPT/@JPT	!ZT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 21 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      5
+ reading TEMP     M: 21 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (DEPTH (m)-TIME)
@@ -3588,8 +3612,8 @@ LIST/@IPT/@JPT	!ZT
 ! cubes of data
 LIST/@LPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 20 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      1
+ reading TEMP     M: 20 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-DEPTH (m))
@@ -3628,8 +3652,8 @@ LIST/@LPT
  0.17N / 46:  25.16  25.15  25.12  25.07  25.02
 LIST/@KPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 19 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      5
+ reading TEMP     M: 19 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-TIME)
@@ -3668,8 +3692,8 @@ LIST/@KPT
  0.17N / 46:  26.62  26.55  26.47  26.40  26.36
 LIST/@JPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 18 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      5
+ reading TEMP     M: 18 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-DEPTH (m)-TIME)
@@ -3708,8 +3732,8 @@ LIST/@JPT
  45    / 5:  26.04  26.01  25.93  25.84  25.77
 LIST/@IPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 17 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      5
+ reading TEMP     M: 17 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LATITUDE-DEPTH (m)-TIME)
@@ -3749,8 +3773,8 @@ LIST/@IPT
  
 ! 4D region
 LOAD
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 16 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
+ reading TEMP     M: 16 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
 SET MODE/LAST DIAGNOSTIC
  
 ! ******** diagnostic variable ************
@@ -3772,13 +3796,16 @@ SET MODE/LAST IGNORE_ERRORS
  
  
  
-GO bn_reset
-cancel mode verify
 set mode ignore		! needed for AIX   11/94
+GO bn_reset   bn_output
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_output
 GO bn_output
 ! 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)
  
 LET v = 1000*i + 100*j + 10*k + l
 SET REGION/I=1:2/J=3:4/K=5:6/L=7:8
@@ -6751,20 +6778,23 @@ LIST
 2   / 2:  2467.  2.000  4.000  6.000  7.000
 CANCEL LIST/ALL
 SET LIST/FILE=AUTO-X
-LIST/FILE
-LIST/FILE=test.dat
+LIST/CLOBBER/FILE
+LIST/CLOBBER/FILE=test.dat
 LIST/FILE=test.dat/APPEND
-LIST/FILE=test.unf/FORMAT=UNFORMATTED
+LIST/CLOBBER/FILE=test.unf/FORMAT=UNFORMATTED
 ! V6.8 we no longer write this file type
 SET MODE IGNORE
 LIST/FILE=test.gt/FORMAT=TMAP/L=1:3 v,v^0.5
 SET MODE/LAST IGNORE
 CANCEL LIST
+ 
 cancel list/format
 can mode ignore		! needed for AIX
  
-GO bn_reset
+GO bn_reset bn_in_plane
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_in_plane
 GO bn_in_plane
 ! bn200_in_plane.JNL
 ! benchmark various geometries with in-plane transformation applied (@SBX)
@@ -7280,8 +7310,10 @@ LIST/ORDER=T v[t=@sbx,i=@ave,j=@ave,k=@ave]
             2      3      4
          -2.855 -1.567 -0.836
  
-GO bn_reset
+GO bn_reset bn_compress
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_compress
 GO bn_compress
 ! bn200_compress.JNL
 ! benchmark various geometries obtained by compressing FERRET data with @AVE
@@ -7789,8 +7821,10 @@ 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
 ! ****
  
-GO bn_reset
+GO bn_reset bn_interpolate
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_interpolate
 GO bn_interpolate
 ! bn200_interpolate.JNL
 ! benchmark interpolation along various axes
@@ -8187,8 +8221,10 @@ LIST v[@xpt, at ypt, at zpt, at tpt]
              T        : 1.0005 (interpolated)
           1113.00
  
-GO bn_reset
+GO bn_reset bn_regrid
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regrid
 GO bn_regrid
 ! bn200_regrid.JNL
 ! test regridding
@@ -9512,8 +9548,6 @@ show grid/l=1:4 g24 g48
  normal    Y
  normal    Z
  TAX24     TIME               732 r   01-JAN-1980 00:00    01-JAN-1982 00:00
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (HOURS)
        1>  01-JAN-1980 00:00:00  24         31-DEC-1979 12:00:00   87648
@@ -9526,8 +9560,6 @@ show grid/l=1:4 g24 g48
  normal    Y
  normal    Z
  TAX48     TIME               367 r   01-JAN-1980 00:00    02-JAN-1982 00:00
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (HOURS)
        1>  01-JAN-1980 00:00:00  48         31-DEC-1979 00:00:00   525960
@@ -9571,8 +9603,10 @@ list a24[g=g48]-a48
  05-JAN-1980 00 / 3: -438312.
  07-JAN-1980 00 / 4: -438312.
  
-GO bn_reset
+GO bn_reset bn_ez
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ez
 GO bn_ez		! changed from bn200_ez 8/10/95
 ! bn401_ez.JNL
 ! test all manner of accessing non-TMAP data files
@@ -9585,8 +9619,8 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- V1       V1                               1:5       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:5       ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:5.5  
  
@@ -9605,8 +9639,8 @@ LIST V1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:5       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:5       ...       ...       ...
  
  
 ! first 2 values from each line
@@ -9615,11 +9649,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:5       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:5       ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:5.5  
- X2       X2                               1:5       ...       ...       ...       ...       ...
+ X2       X2                               1:5       ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:5.5  
  
@@ -9640,9 +9674,9 @@ LIST X1,X2
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:5       ...       ...       ...       ...       ...
- X2       X2                               1:5       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:5       ...       ...       ...
+ X2       X2                               1:5       ...       ...       ...
  
  
 ! all 6 values on each line
@@ -9651,11 +9685,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:15.5  
  
@@ -9684,9 +9718,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
  
  
 ! all 6 but skip first 2 lines
@@ -9695,11 +9729,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:15.5  
  
@@ -9722,9 +9756,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:9       ...       ...       ...       ...       ...
- X2       X2                               1:9       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:9       ...       ...       ...
+ X2       X2                               1:9       ...       ...       ...
  
  
 ! take 1st and 4th values on each line as X1
@@ -9733,11 +9767,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:15.5  
  
@@ -9757,9 +9791,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:6       ...       ...       ...       ...       ...
- X2       X2                               1:6       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:6       ...       ...       ...
+ X2       X2                               1:6       ...       ...       ...
  
  
 ! specify the format explicitly
@@ -9768,11 +9802,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:15.5  
  
@@ -9795,9 +9829,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:9       ...       ...       ...       ...       ...
- X2       X2                               1:9       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:9       ...       ...       ...
+ X2       X2                               1:9       ...       ...       ...
  
  
 ! specify the format to skip every second line
@@ -9806,11 +9840,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
                on grid (G007) with -1.E+34 for missing data
              X=0.5:15.5  
  
@@ -9830,9 +9864,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:6       ...       ...       ...       ...       ...
- X2       X2                               1:6       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:6       ...       ...       ...
+ X2       X2                               1:6       ...       ...       ...
  
  
 ! modify variable title
@@ -9840,9 +9874,9 @@ SET VARIABLE/TITLE="first variable" X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       first variable                   1:6       ...       ...       ...       ...       ...
- X2       X2                               1:6       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       first variable                   1:6       ...       ...       ...
+ X2       X2                               1:6       ...       ...       ...
  
  
 ! read onto a 2D grid
@@ -9853,11 +9887,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:3       1:20480   ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:3       1:20480   ...       ...
                on grid GEZ1 with -1.E+34 for missing data
              X=0.5:3.5  Y=0.5:20481  
- X2       X2                               1:3       1:20480   ...       ...       ...       ...
+ X2       X2                               1:3       1:20480   ...       ...
                on grid GEZ1 with -1.E+34 for missing data
              X=0.5:3.5  Y=0.5:20481  
  
@@ -9878,9 +9912,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:3       1:5       ...       ...       ...       ...
- X2       X2                               1:3       1:5       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:3       1:5       ...       ...
+ X2       X2                               1:3       1:5       ...       ...
  
  
 ! read onto a 4D grid
@@ -9893,11 +9927,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:1       1:3       1:2       1:20480   ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:1       1:3       1:2       1:20480
                on grid GEZ2 with -1.E+34 for missing data
              X=0.5:1.5  Y=0.5:3.5  Z=0.5:2.5  
- X2       X2                               1:1       1:3       1:2       1:20480   ...       ...
+ X2       X2                               1:1       1:3       1:2       1:20480
                on grid GEZ2 with -1.E+34 for missing data
              X=0.5:1.5  Y=0.5:3.5  Z=0.5:2.5  
  
@@ -9920,12 +9954,16 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:1       1:3       1:2       1:2       ...       ...
- X2       X2                               1:1       1:3       1:2       1:2       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:1       1:3       1:2       1:2
+ X2       X2                               1:1       1:3       1:2       1:2
  
  
 ! truncate reading by grid size limit
+! V702: *sh* note that with 3 columns of pairs and a request to read only
+! 8 values total, the final record is incomplete.  These final values
+! **do not get initialized**.  This has been reported in trac #2509
+! The presence of uninitialized values can throw off the formatting of the output
 DEFINE AXIS/X=1:8:1 xez3
 DEFINE GRID/X=XEZ3 GEZ3
 FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ3 EZ.DAT
@@ -9933,11 +9971,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:8       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:8       ...       ...       ...
                on grid GEZ3 with -1.E+34 for missing data
              X=0.5:8.5  
- X2       X2                               1:8       ...       ...       ...       ...       ...
+ X2       X2                               1:8       ...       ...       ...
                on grid GEZ3 with -1.E+34 for missing data
              X=0.5:8.5  
  
@@ -9948,20 +9986,20 @@ LIST X1
              VARIABLE : X1
              FILENAME : EZ.DAT
              SUBSET   : 8 points (X)
- 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.410000
- 8   / 8:  0.417000
+ 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
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:8       ...       ...       ...       ...       ...
- X2       X2                               1:8       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:8       ...       ...       ...
+ X2       X2                               1:8       ...       ...       ...
  
  
 ! 8/10/95 -- added tests of unformatted writing and reading
@@ -9969,7 +10007,7 @@ SP rm -f test.unf
 LIST/FILE=test.unf/format=unf/i=1:10 i
 file/form=unf/var=my_var test.unf
 list my_var
-             VARIABLE : MY_VAR
+             VARIABLE : my_var
              FILENAME : test.unf
              SUBSET   : 10 points (X)
  1    /  1:   1.0000
@@ -9992,8 +10030,10 @@ PPL ECHO ON		! added 10/27/93
  
 ! 10/97 *kob* now set mode metafile
 set mode metafile bnplot.plt
-GO bn_reset
+GO bn_reset bn_plot
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot
 GO bn_plot		! upgraded from bn320_plot 10/1/97 *kob*
 ! bn450_plot.JNL - updated 9/97 from bn320_plot.jnl
 ! upgraded from bn320 to provide method for testing batch mode.  Also remove
@@ -10196,9 +10236,11 @@ set mode/last logo
  
 !added in bn450 10/97 *kob*
 ! moved to right after bn450_plot to capture metafiles *kob* 2/98
-GO bn_reset
-cancel mode verify
 ! 2/98 changed bn450_curv to bn491_curv - just some cosmetic changes *kob*
+GO bn_reset bn_curv
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_curv
 GO bn_curv
 cancel mode ignore
 !
@@ -10391,8 +10433,10 @@ SET WINDOW/CLEAR/SIZE=0.2 ! 8/25/92
 ! 10/97 *kob* now cancel mode metafile
 cancel mode metafile
  
-GO bn_reset
+GO bn_reset bn_symbols
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_symbols
 GO bn_symbols	! added 6/22/95
 ! bn420_symbols
 ! benchmark to test machinery of symbol definition and use
@@ -10415,20 +10459,22 @@ show symbols/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7"
-FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7.1"
+FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "15-Jun-16"
-SESSION_TIME = "12:05"
-SESSION_PID = "2513"
-DELTA_CPU = "4.71228"
-CLOCK_SECS = "7.222"
-CURRENT_DATE = "15-Jun-16"
-CURRENT_TIME = "12:05:43"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
+PEAK_MEMORY = "0"
+SPAWN_STATUS = "1"
  
 ! define some symbols ... syntax variations
 define symbol s1 = hello
@@ -10444,20 +10490,22 @@ show symbol/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7"
-FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7.1"
+FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "15-Jun-16"
-SESSION_TIME = "12:05"
-SESSION_PID = "2513"
-DELTA_CPU = "0.001"
-CLOCK_SECS = "7.223"
-CURRENT_DATE = "15-Jun-16"
-CURRENT_TIME = "12:05:43"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
+PEAK_MEMORY = "0"
+SPAWN_STATUS = "1"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10465,9 +10513,10 @@ NUM = "3"
 T$DOLLAR = "hi"
 T_HELLO = "hi"
 show symbol s*
-SESSION_DATE = "15-Jun-16"
-SESSION_TIME = "12:05"
-SESSION_PID = "2513"
+SESSION_DATE = "17-Apr-17"
+SESSION_TIME = "16:45"
+SESSION_PID = "21684"
+SPAWN_STATUS = "1"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10477,15 +10526,17 @@ S2 = ""hello""
 ! exercise CANCEL SYMBOL
 cancel symbol s2
 show symbol s*
-SESSION_DATE = "15-Jun-16"
-SESSION_TIME = "12:05"
-SESSION_PID = "2513"
+SESSION_DATE = "17-Apr-17"
+SESSION_TIME = "16:45"
+SESSION_PID = "21684"
+SPAWN_STATUS = "1"
 S1 = "hello"
 S3 = "hello and goodbye"
 show symbol S*
-SESSION_DATE = "15-Jun-16"
-SESSION_TIME = "12:05"
-SESSION_PID = "2513"
+SESSION_DATE = "17-Apr-17"
+SESSION_TIME = "16:45"
+SESSION_PID = "21684"
+SPAWN_STATUS = "1"
 S1 = "hello"
 S3 = "hello and goodbye"
 cancel symbol s2	! already deleted
@@ -10519,9 +10570,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/dbg) Ver.7"
+LAB1 = "FERRET (beta/debug) Ver.7.1"
 LAB2 = "NOAA/PMEL TMAP"
-LAB3 = "15-JUN-2016 12:05:43"
+LAB3 = "17-APR-2017 16:46:05"
 LABX = "X"
 LAB4 = "Y : 10"
 LABNUM_Y = "4"
@@ -10616,24 +10667,28 @@ show symbols/all
 PPL$XPIXEL = "406"
 PPL$YPIXEL = "406"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7"
-FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7.1"
+FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "15-Jun-16"
-SESSION_TIME = "12:05"
-SESSION_PID = "2513"
-DELTA_CPU = "0.006999"
-CLOCK_SECS = "7.231"
-CURRENT_DATE = "15-Jun-16"
-CURRENT_TIME = "12:05:43"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
+PEAK_MEMORY = "201"
+SPAWN_STATUS = "1"
  
  
-GO bn_reset
+GO bn_reset bn_comma_delimited
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_comma_delimited
 GO bn_comma_delimited	! added 10/2/95
 ! bn420_comma_delimited
  
@@ -12107,7 +12162,7 @@ LIST/FORMAT=comma/precision=5/order=x temp
              DEPTH (m): 15
              TIME     : 10-SEP-1982 20:00
    135.5W   ,134.5W   
-row 1,27.335,27.222
+27.335 ,27.222
 LIST/FORMAT=comma/precision=5/order=y temp
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
@@ -12130,7 +12185,7 @@ LIST/FORMAT=comma/precision=5/order=y temp
              DEPTH (m): 15
              TIME     : 10-SEP-1982 20:00
    1.5S   ,1.167S 
-row 1,27.335,27.238
+27.335 ,27.238
 LIST/FORMAT=comma/precision=5/order=x temp
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
@@ -12153,7 +12208,7 @@ LIST/FORMAT=comma/precision=5/order=z temp
              LATITUDE : 1.5S
              TIME     : 10-SEP-1982 20:00
    15      ,25      
-row 1,27.335,27.248
+27.335 ,27.248
 LIST/FORMAT=comma/precision=5/order=x temp
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
@@ -12178,7 +12233,7 @@ LIST/FORMAT=comma/precision=5/order=t temp
              LATITUDE : 1.5S
              DEPTH (m): 15
    10-SEP-1982 20:00,16-SEP-1982 22:00
-row 1,27.335,27.775
+27.335 ,27.775
 LIST/FORMAT=comma/precision=5/order=x temp
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
@@ -12238,8 +12293,8 @@ LIST/FORMAT=comma/precision=9 randu(i)*temp*1e7
              DEPTH (m): 15
              TIME     : 10-SEP-1982 20:00
    135.5W   ,134.5W   
-1.5S,  166750845.,  202088412.
-1.167S,  166162833.,  201366579.
+1.5S,166750845.,202088412.
+1.167S,166162833.,201366579.
  
 ! small number formatting test
 set region/i=95:96/j=41:42/k=2/l=5
@@ -12293,8 +12348,10 @@ LIST/FORMAT=comma/precision=5 10*j+i
 2,21,22,23,24,25
 3,31,32,33,34,35
  
-GO bn_reset
+GO bn_reset bn_dynamic_grids
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dynamic_grids
 GO bn_dynamic_grids	! added 9/27/95, V420 ->V491 4/98
 ! bn420_dynamic_grids
 ! 9/95-9/11/95 - test the creation, destruction, and use of dynamic grids
@@ -12330,10 +12387,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
  
 set mode ignore_errors
@@ -12381,10 +12434,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 list temp[gx=psyu]		! err during get_context_grid - axis mismatch
 show grid/dynamic
@@ -12425,10 +12474,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 let  tu = temp[gx=noexist]
 list tu				! err during get_context_mods
@@ -12472,10 +12517,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 let  tu = temp[gx=psyu]
 list tu				! err during get_context_grid - axis mismatch
@@ -12495,6 +12536,11 @@ let save_mem = ($ferret_memory)
 set mem/siz = 10
  
 list temp[gz=z999999,z=5:15]	! err during regrid
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 10 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 50 (5.E-04%)
+    The size of the requested object was: : 24999975 (250%)
 show grid/dynamic
 Dynamic grids:
     GRID (G004)                          use count:   1
@@ -12503,10 +12549,6 @@ Dynamic grids:
  PSYT      LATITUDE           100 i   28.836S              48.568N
  Z999999   DEPTH (m)       999999 r-  5                    15
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
 set mem/siz=`save_mem`
  !-> set mem/siz=25.6
  
@@ -12519,10 +12561,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 set mode/last ignore
  
@@ -12551,10 +12589,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 list temp[gy=psyu]
              VARIABLE : TEMPERATURE (deg. C)
@@ -12593,13 +12627,10 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 list temp[gx=w]
              VARIABLE : TEMPERATURE (deg. C)
+                        regrid: TEMP
              FILENAME : gtsa056_1.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
              DEPTH (m): 5
@@ -12633,10 +12664,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 list  5 + temp[gx=psxu]
              VARIABLE : 5 + TEMP[GX=PSXU]
@@ -12659,10 +12686,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 let tu = temp[gx=psxu]
 list tu
@@ -12686,10 +12709,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
 show grid tu
     GRID (G004)
  name       axis              # pts   start                end                 subset
@@ -12697,8 +12716,6 @@ show grid tu
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00   full
- normal    E
- normal    F
  
 let tu = temp[gx=psxu] + 5
 list tu
@@ -12722,10 +12739,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
  
 ! implicit grid conformability
@@ -12801,10 +12814,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 ! regridding between grids with mutually exclusive axes
 cancel region
@@ -13013,20 +13022,6 @@ Dynamic grids:
  (AX002)   Y                    3 r   95                   109
  normal    Z
  normal    T
- normal    E
- normal    F
-    GRID (G004)                          use count:   1
- name       axis              # pts   start                end
- (AX009)   X                    7 r   0.1                  9.1
- (AX004)   Y                   10 r   101                  110
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX002)                         use count:   1
-    AXIS (AX009)                         use count:   2
-    AXIS (AX004)                         use count:   1
  
 ! ambiguous coordinate tests
 list/order=x  x[x=0.1:10:1.5] +  x[x=1.1:11:1.5]
@@ -13050,10 +13045,6 @@ Dynamic grids:
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX002)                         use count:   1
  
 ! box size on dynamic axes
 cancel region
@@ -13080,12 +13071,10 @@ show grid/x
  Last successful data access was on grid (G004)
     GRID (G004)
  name       axis              # pts   start                end                 subset
- (AX009)   X                    5 i   1                    6561                4 pts
+ (AX009)   X                    5 i   1                    6561                5 pts
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     280        -59
@@ -13160,10 +13149,6 @@ Dynamic grids:
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX009)                         use count:   1
  
 ! this expression does NOT inherit the X axis -- the result is
 !	i) ambiguous X axis coordinates
@@ -13189,19 +13174,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-    GRID (G004)                          use count:   1
- name       axis              # pts   start                end
- (AX009)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX002)                         use count:   1
-    AXIS (AX009)                         use count:   1
  
 list/j=46:50/l=1/k=1 temp[i=101:120:4]+x[g=temp,i=101:120:4]
              VARIABLE : TEMP[I=101:120:4]+X[G=TEMP,I=101:120:4]
@@ -13273,19 +13245,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-    GRID (G004)                          use count:   1
- name       axis              # pts   start                end
- (AX009)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX002)                         use count:   1
-    AXIS (AX009)                         use count:   1
  
 ! regular dynamic axis
 ! ... by subscript
@@ -13356,19 +13315,6 @@ Dynamic grids:
  (AX002)   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
- normal    E
- normal    F
-    GRID (G004)                          use count:   1
- name       axis              # pts   start                end
- (AX009)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX002)                         use count:   1
-    AXIS (AX009)                         use count:   1
  
 ! ========
 ! 2/96: repeat the very same commands using GX=lo:hi:delta notation
@@ -13534,20 +13480,6 @@ Dynamic grids:
  (AX004)   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
- normal    E
- normal    F
-    GRID (G004)                          use count:   1
- name       axis              # pts   start                end
- (AX009)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX004)                         use count:   1
-    AXIS (AX012)                         use count:   1
-    AXIS (AX009)                         use count:   1
  
 ! the same tests but now on a nested definition
 ! regular dynamic axis
@@ -13719,19 +13651,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-    GRID (G004)                          use count:   1
- name       axis              # pts   start                end
- (AX012)   LONGITUDE            4 r   130W                 121W
- 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
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX004)                         use count:   1
-    AXIS (AX012)                         use count:   1
  
 ! irregular dynamic axis
 ! ... by subscript
@@ -13873,19 +13792,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-    GRID (G004)                          use count:   1
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- (AX009)   LATITUDE             6 r   3.5S                 4N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX012)                         use count:   1
-    AXIS (AX009)                         use count:   1
  
 ! nested modulo (the dynamic axis is **NOT** modulo)
 ! ... by subscript
@@ -14071,19 +13977,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-    GRID (G004)                          use count:   1
- name       axis              # pts   start                end
- (AX004)   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
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX009)                         use count:   1
-    AXIS (AX004)                         use count:   1
  
 ! calendar axes
 list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]   ! 6-day ave
@@ -14131,8 +14024,10 @@ set axis/modulo psxt
  
 set mode/last diag
  
-GO bn_reset
+GO bn_reset bn_cdf
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cdf
 GO bn_cdf
 ! bn320_cdf
 ! benchmark to test netCDF input and output
@@ -14180,8 +14075,8 @@ set data/format=cdf test0a, test0b, test0c, test0d, test0e, test0f, test0g, test
 show data 1
      currently SET data sets:
     1> ./test0a.cdf
- name     title                             I         J         K         L         M         N
- L_       L                                ...       ...       ...       1:500     ...       ...
+ name     title                             I         J         K         L
+ L_       L                                ...       ...       ...       1:500
        (axis ABSTRACT)
  
 show data/br
@@ -14336,78 +14231,78 @@ show data/full
      currently SET data sets:
     1> ./test_abs.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       I                                1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       I                                1:10      ...       ...       ...
                on grid GEU1 with -1.E+34 for missing data
              X=0.5:10.5  
- J1       J                                ...       1:20      ...       ...       ...       ...
+ J1       J                                ...       1:20      ...       ...
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- K1       K                                ...       ...       1:100     ...       ...       ...
+ K1       K                                ...       ...       1:100     ...
                on grid GEU3 with -1.E+34 for missing data
              Z=0.5:100.5  
- L1       L[G=GCENTURY]                    ...       ...       ...       1:12      ...       ...
+ L1       L[G=GCENTURY]                    ...       ...       ...       1:12
                on grid GEU4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:10      ...       ...
+ L2       L                                ...       ...       ...       1:10
                on grid GEU5 with -1.E+34 for missing data
              
- IJ       I+J                              1:10      1:20      ...       ...       ...       ...
+ IJ       I+J                              1:10      1:20      ...       ...
                on grid GEU6 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IK       I+K                              1:10      ...       1:100     ...       ...       ...
+ IK       I+K                              1:10      ...       1:100     ...
                on grid GEU7 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IL       I+L1                             1:10      ...       ...       1:12      ...       ...
+ IL       I+L1                             1:10      ...       ...       1:12
                on grid GEU8 with -1.E+34 for missing data
              X=0.5:10.5  
- JK       J+K                              ...       1:20      1:100     ...       ...       ...
+ JK       J+K                              ...       1:20      1:100     ...
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJK      I+J+K                            1:10      1:20      1:100     ...       ...       ...
+ IJK      I+J+K                            1:10      1:20      1:100     ...
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IKL      I+K+L1                           1:10      ...       1:100     1:12      ...       ...
+ IKL      I+K+L1                           1:10      ...       1:100     1:12
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJL      I+J+L1                           1:10      1:20      ...       1:12      ...       ...
+ IJL      I+J+L1                           1:10      1:20      ...       1:12
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- JKL      J+K+L1                           ...       1:20      1:100     1:12      ...       ...
+ JKL      J+K+L1                           ...       1:20      1:100     1:12
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJKL     I+J+K+L1                         1:10      1:20      1:100     1:12      ...       ...
+ IJKL     I+J+K+L1                         1:10      1:20      1:100     1:12
                on grid GEU14 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IJK2     I+J+K                            ...       1:20      1:100     ...       ...       ...
+ IJK2     I+J+K                            ...       1:20      1:100     ...
        (X=0.5:10.5 at AVE)
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IKL2     I+K+L1                           ...       ...       1:100     1:12      ...       ...
+ IKL2     I+K+L1                           ...       ...       1:100     1:12
        (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
                on grid GEU15 with -1.E+34 for missing data
              Z=0.5:100.5  
- IJL2     I+J+L1                           ...       ...       ...       1:12      ...       ...
+ IJL2     I+J+L1                           ...       ...       ...       1:12
        (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
                on grid GEU4 with -1.E+34 for missing data
              
- JKL2     J+K+L1                           ...       1:20      ...       ...       ...       ...
+ JKL2     J+K+L1                           ...       1:20      ...       ...
        (Z=0.5:100.5 at AV4, T=03-JAN-1902 12:00:08-JAN-1902 12:00 at AV4)
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:12      ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:12
        (X=0.5:10.5)
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:12      ...       ...
+ IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:12
        (Y=0.5:20.5)
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:12      ...       ...
+ IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:12
        (Z=0.5:100.5)
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...
        (T=03-JAN-1902 12:00:08-JAN-1902 12:00)
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
@@ -14422,8 +14317,6 @@ show grid ijkl
  YAX1_20   Y                   20 r   1                    20                  full
  ZAX1_100  Z                  100 r   1                    100                 full
  TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00   full
- normal    E
- normal    F
 cancel data test_abs
  
 ! make the time axis irregular by leaving out l=13
@@ -14433,78 +14326,78 @@ show data/full
      currently SET data sets:
     1> ./test_abs.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       I                                1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       I                                1:10      ...       ...       ...
                on grid GEU1 with -1.E+34 for missing data
              X=0.5:10.5  
- J1       J                                ...       1:20      ...       ...       ...       ...
+ J1       J                                ...       1:20      ...       ...
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- K1       K                                ...       ...       1:100     ...       ...       ...
+ K1       K                                ...       ...       1:100     ...
                on grid GEU3 with -1.E+34 for missing data
              Z=0.5:100.5  
- L1       L[G=GCENTURY]                    ...       ...       ...       1:15      ...       ...
+ L1       L[G=GCENTURY]                    ...       ...       ...       1:15
                on grid GEU4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:10      ...       ...
+ L2       L                                ...       ...       ...       1:10
                on grid GEU5 with -1.E+34 for missing data
              
- IJ       I+J                              1:10      1:20      ...       ...       ...       ...
+ IJ       I+J                              1:10      1:20      ...       ...
                on grid GEU6 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IK       I+K                              1:10      ...       1:100     ...       ...       ...
+ IK       I+K                              1:10      ...       1:100     ...
                on grid GEU7 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IL       I+L1                             1:10      ...       ...       1:15      ...       ...
+ IL       I+L1                             1:10      ...       ...       1:15
                on grid GEU8 with -1.E+34 for missing data
              X=0.5:10.5  
- JK       J+K                              ...       1:20      1:100     ...       ...       ...
+ JK       J+K                              ...       1:20      1:100     ...
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJK      I+J+K                            1:10      1:20      1:100     ...       ...       ...
+ IJK      I+J+K                            1:10      1:20      1:100     ...
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IKL      I+K+L1                           1:10      ...       1:100     1:15      ...       ...
+ IKL      I+K+L1                           1:10      ...       1:100     1:15
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJL      I+J+L1                           1:10      1:20      ...       1:15      ...       ...
+ IJL      I+J+L1                           1:10      1:20      ...       1:15
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- JKL      J+K+L1                           ...       1:20      1:100     1:15      ...       ...
+ JKL      J+K+L1                           ...       1:20      1:100     1:15
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJKL     I+J+K+L1                         1:10      1:20      1:100     1:15      ...       ...
+ IJKL     I+J+K+L1                         1:10      1:20      1:100     1:15
                on grid GEU14 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IJK2     I+J+K                            ...       1:20      1:100     ...       ...       ...
+ IJK2     I+J+K                            ...       1:20      1:100     ...
        (X=0.5:10.5 at AVE)
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IKL2     I+K+L1                           ...       ...       1:100     1:15      ...       ...
+ IKL2     I+K+L1                           ...       ...       1:100     1:15
        (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
                on grid GEU15 with -1.E+34 for missing data
              Z=0.5:100.5  
- IJL2     I+J+L1                           ...       ...       ...       1:15      ...       ...
+ IJL2     I+J+L1                           ...       ...       ...       1:15
        (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
                on grid GEU4 with -1.E+34 for missing data
              
- JKL2     J+K+L1                           ...       1:20      ...       ...       ...       ...
+ JKL2     J+K+L1                           ...       1:20      ...       ...
        (Z=0.5:100.5 at AV4, T=03-JAN-1902 12:00:08-JAN-1902 12:00 at AV4)
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:15      ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:15
        (X=0.5:10.5)
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:15      ...       ...
+ IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:15
        (Y=0.5:20.5)
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:15      ...       ...
+ IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:15
        (Z=0.5:100.5)
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...
        (T=03-JAN-1902 12:00:08-JAN-1902 12:00)
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
@@ -14518,8 +14411,6 @@ show grid ijkl
  YAX1_20   Y                   20 r   1                    20                  full
  ZAX1_100  Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
  
  
 ! list long time series using a rigid (non-record axis) time axis --> FAST
@@ -14553,40 +14444,30 @@ show grid j1 jkl jkl2 iavejkl ijkl
  YAX1_20   Y                   20 r   1                    20                  full
  normal    Z
  normal    T
- normal    E
- normal    F
     GRID GEU13
  name       axis              # pts   start                end                 subset
  normal    X
  YAX1_20   Y                   20 r   1                    20                  full
  ZAX1_100  Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
     GRID GEU2
  name       axis              # pts   start                end                 subset
  normal    X
  YAX1_20   Y                   20 r   1                    20                  full
  normal    Z
  normal    T
- normal    E
- normal    F
     GRID GEU13
  name       axis              # pts   start                end                 subset
  normal    X
  YAX1_20   Y                   20 r   1                    20                  full
  ZAX1_100  Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
     GRID GEU14
  name       axis              # pts   start                end                 subset
  XAX1_10   X                   10 r   1                    10                  full
  YAX1_20   Y                   20 r   1                    20                  full
  ZAX1_100  Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
 cancel data test_abs
  
 ! test TMAP data io
@@ -14670,29 +14551,29 @@ show data/full
      currently SET data sets:
     1> ./gtbc011.cdf
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.84S:51.43N  
  
@@ -14700,67 +14581,67 @@ show data/full
  
     2> ./test_fil0.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...
                on grid PS3DT1_NYZT with -1.E+34 for missing data
              X=130E:140E  
- J1       Y[G=TEMP,J=5:10]                 ...       5:10      ...       ...       ...       ...
+ J1       Y[G=TEMP,J=5:10]                 ...       5:10      ...       ...
                on grid PS3DT1_NXZT with -1.E+34 for missing data
              Y=21.11S:12.52S  
- K1       Z[G=U,K=5:15]                    ...       ...       5:15      ...       ...       ...
+ K1       Z[G=U,K=5:15]                    ...       ...       5:15      ...
                on grid PS3DU1_NXYT with -1.E+34 for missing data
              Z=40:190  
- L1       L[G=U,L=1:3]                     ...       ...       ...       1:3       ...       ...
+ L1       L[G=U,L=1:3]                     ...       ...       ...       1:3
                on grid GRH1 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:2       ...       ...
+ L2       L                                ...       ...       ...       1:2
                on grid GRH2 with -1.E+34 for missing data
              
- IJ       TAUX[L=@AVE]                    69:71      1:100     ...       ...       ...       ...
+ IJ       TAUX[L=@AVE]                    69:71      1:100     ...       ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid PS2DU1_NT with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- IK       I1+K1                            1:10      ...       5:15      ...       ...       ...
+ IK       I1+K1                            1:10      ...       5:15      ...
                on grid G016_NYT with -1.E+34 for missing data
              X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
+ IL       I1+L1                            1:10      ...       ...       1:3
                on grid G016_NYZ with -1.E+34 for missing data
              X=130E:140E  
- JK       J1+K1                            ...       5:10      5:15      ...       ...       ...
+ JK       J1+K1                            ...       5:10      5:15      ...
                on grid G008_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      ...       ...       ...
+ IJK      TEMP[L=@AVE]                    70:72      1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid PS3DT1_NT with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- IKL      TEMP[J=@AVE]                    70:72      ...       1:27      1:3       ...       ...
+ IKL      TEMP[J=@AVE]                    70:72      ...       1:27      1:3
        (Y=30S:50N)
                on grid PS3DT1_NY with -1.E+34 for missing data
              X=161W:158W  Z=0:4149  
- IJL      TEMP[K=@AVE]                    70:72      1:100     ...       1:3       ...       ...
+ IJL      TEMP[K=@AVE]                    70:72      1:100     ...       1:3
        (Z=0:4149)
                on grid PS3DT1_NZ with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  
- JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130E:70W)
                on grid GRH3 with -1.E+34 for missing data
              Y=30S:50N  Z=0:4149  
- IJKL     U                               69:72      1:100     1:27      1:3       ...       ...
+ IJKL     U                               69:72      1:100     1:27      1:3
                on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130.5E:69.5W)
                on grid GRH4 with -1.E+34 for missing data
              Y=28.84S:51.43N  Z=0:4149  
- IJAVEKL  IJKL[J=@AVE]                    69:72      ...       1:27      1:3       ...       ...
+ IJAVEKL  IJKL[J=@AVE]                    69:72      ...       1:27      1:3
        (Y=28.84S:51.43N)
                on grid PS3DU1_NY with -1.E+34 for missing data
              X=161.5W:157.5W  Z=0:4149  
- IJKAVEL  IJKL[K=@AVE]                    69:72      1:100     ...       1:3       ...       ...
+ IJKAVEL  IJKL[K=@AVE]                    69:72      1:100     ...       1:3
        (Z=0:4149)
                on grid PS3DU1_NZ with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  
- IJKLAVE  IJKL[L=@AVE]                    69:72      1:100     1:27      ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                    69:72      1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid PS3DU1_NT with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
@@ -14775,8 +14656,6 @@ show grid ijkl
  PSYU      LATITUDE           100 i   27.672S              50N                 full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
- normal    E
- normal    F
 cancel data test_fil0
 ! 5/99 moved old bn230_cdf.sub3 to bn_cdf.sub4 to stay inline w/ old benchmarks *kob*
 GO bn_cdf.sub4
@@ -14860,29 +14739,29 @@ show data/full
      currently SET data sets:
     1> ./gtbc011.cdf
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.84S:51.43N  
  
@@ -14890,67 +14769,67 @@ show data/full
  
     2> ./test_fil.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...
                on grid GLZ1 with -1.E+34 for missing data
              X=130E:140E  
- J1       Y[G=TEMP,J=5:10]                 ...       1:6       ...       ...       ...       ...
+ J1       Y[G=TEMP,J=5:10]                 ...       1:6       ...       ...
                on grid GLZ2 with -1.E+34 for missing data
              Y=21.11S:12.52S  
- K1       Z[G=U,K=5:15]                    ...       ...       1:11      ...       ...       ...
+ K1       Z[G=U,K=5:15]                    ...       ...       1:11      ...
                on grid GLZ3 with -1.E+34 for missing data
              Z=40:190  
- L1       L[G=U,L=1:3]                     ...       ...       ...       1:3       ...       ...
+ L1       L[G=U,L=1:3]                     ...       ...       ...       1:3
                on grid GLZ4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:2       ...       ...
+ L2       L                                ...       ...       ...       1:2
                on grid GLZ5 with -1.E+34 for missing data
              
- IJ       TAUX[L=@AVE]                     1:3       1:100     ...       ...       ...       ...
+ IJ       TAUX[L=@AVE]                     1:3       1:100     ...       ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid GLZ6 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- IK       I1+K1                            1:10      ...       1:11      ...       ...       ...
+ IK       I1+K1                            1:10      ...       1:11      ...
                on grid GLZ7 with -1.E+34 for missing data
              X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
+ IL       I1+L1                            1:10      ...       ...       1:3
                on grid GLZ8 with -1.E+34 for missing data
              X=130E:140E  
- JK       J1+K1                            ...       1:6       1:11      ...       ...       ...
+ JK       J1+K1                            ...       1:6       1:11      ...
                on grid GLZ9 with -1.E+34 for missing data
              Y=21.11S:12.52S  Z=40:190  
- IJK      TEMP[L=@AVE]                     1:3       1:100     1:27      ...       ...       ...
+ IJK      TEMP[L=@AVE]                     1:3       1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid GLZ10 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- IKL      TEMP[J=@AVE]                     1:3       ...       1:27      1:3       ...       ...
+ IKL      TEMP[J=@AVE]                     1:3       ...       1:27      1:3
        (Y=30S:50N)
                on grid GLZ11 with -1.E+34 for missing data
              X=161W:158W  Z=0:4149  
- IJL      TEMP[K=@AVE]                     1:3       1:100     ...       1:3       ...       ...
+ IJL      TEMP[K=@AVE]                     1:3       1:100     ...       1:3
        (Z=0:4149)
                on grid GLZ12 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  
- JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130E:70W)
                on grid GLZ13 with -1.E+34 for missing data
              Y=30S:50N  Z=0:4149  
- IJKL     U                                1:4       1:100     1:27      1:3       ...       ...
+ IJKL     U                                1:4       1:100     1:27      1:3
                on grid GLZ14 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130.5E:69.5W)
                on grid GLZ15 with -1.E+34 for missing data
              Y=28.84S:51.43N  Z=0:4149  
- IJAVEKL  IJKL[J=@AVE]                     1:4       ...       1:27      1:3       ...       ...
+ IJAVEKL  IJKL[J=@AVE]                     1:4       ...       1:27      1:3
        (Y=28.84S:51.43N)
                on grid GLZ16 with -1.E+34 for missing data
              X=161.5W:157.5W  Z=0:4149  
- IJKAVEL  IJKL[K=@AVE]                     1:4       1:100     ...       1:3       ...       ...
+ IJKAVEL  IJKL[K=@AVE]                     1:4       1:100     ...       1:3
        (Z=0:4149)
                on grid GLZ17 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  
- IJKLAVE  IJKL[L=@AVE]                     1:4       1:100     1:27      ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                     1:4       1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid GLZ18 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
@@ -14965,8 +14844,6 @@ show grid ijkl
  PSYU      LATITUDE           100 i   27.672S              50N                 full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
- normal    E
- normal    F
 cancel data test_fil
 GO bn_cdf_reversed.sub
 ! bn320_cdf_reversed.sub
@@ -14983,15 +14860,15 @@ show data/var
      currently SET data sets:
     1> ./reverse_axes.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...
                on grid GAF1 with -1.E+34 for missing data
              X=129.5E:179.5W  Y=10.5S:10.5N  
- FCN_REV  COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...       ...       ...
+ FCN_REV  COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...
                on grid GAF2 with -1.E+34 for missing data
              X=129.5E:179.5W  Y=10.5S:10.5N  
  FCN_REV_SUB
-          COS(X/10)*SIN(Y/2)               1:51     10:19      ...       ...       ...       ...
+          COS(X/10)*SIN(Y/2)               1:51     10:19      ...       ...
                on grid GREV with -1.E+34 for missing data
              X=129.5E:179.5W  Y=1.5S:8.5N  
  
@@ -15042,8 +14919,10 @@ list/x=180 fcn_rev_sub
  0    / 11:  0.000000
  1S   / 10:  0.316573
  
-GO bn_reset
+GO bn_reset bn_regrid_transforms
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regrid_transforms
 GO bn_regrid_transforms
 ! bn500_regrid_transforms
 ! benchmark to test regridding transformations and syntax
@@ -15074,15 +14953,15 @@ set mode diag
 define axis/t=15-jan-1982:15-mar-1984:120/unit=hour tax5day
 define axis/x=120e:60w:10/unit=degrees xax10
 define grid/like=u/t=tax5day g5day
- getgrid EX#1     C:  6 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ getgrid EX#1     C:  6 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
 define grid/like=u/x=xax10/z=w/t=tax5day g5_10
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  8 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DW11         PSXT1     PSYT      PSZW      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ getgrid EX#1     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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ getgrid EX#1     C:  8 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DW11         PSXT1     PSYT      PSZW      TIME1
  
 set reg/x=130w:125w/y=0:1.5/z=0:15/t=21-JAN-1982:24-jan-1982
 !set reg/i=101:105/j=41:42/k=1:2/l=3:4
@@ -15092,111 +14971,97 @@ use gtsa056_1    	!kob 4/99
 ! deliberate errors
 set mode ignore
 load temp[g=@lin]    ! no target grid specified
- dealloc  dynamic grid PS3DW11         PSXT1     PSYT      PSZW      TIME1     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 PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- reading TEMP     M: 57 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DW11         PSXT1     PSYT      PSZW      TIME1
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
+ reading TEMP     M:120 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
 load temp[gx=@ave]   ! no target grid specified
- dealloc  dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     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 PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- reading TEMP     M: 55 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DT2          PSXT1     PSYT      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 PS3DT2          PSXT1     PSYT      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
+ found   TEMP     M:120 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
 load temp[g=u,g=w]   ! more than 1 target grid
- dealloc  dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     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
+ dealloc  dynamic grid PS3DT2          PSXT1     PSYT      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
 load temp[g=x]       ! g=user-or-pseudo-var not allowed
- getgrid 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 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
 set mode/last ignore
  
 ! valid syntax tests
 load temp
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- reading TEMP     M: 45 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  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 PS3DT2          PSXT1     PSYT      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
+ found   TEMP     M:120 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
 load temp[g=u]
- dealloc  dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DT2          PSXT1     PSYT      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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 43 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ reading TEMP     M:116 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
  regrid XY
- regrid  TEMP     M: 40 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:114 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
 load temp[g=u at lin]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 36 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 34 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ found   TEMP     M:114 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
 load temp[g=u at ave,gy=@asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @AVE
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M: 33 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 31 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 30 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 31 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ found   TEMP     M:116 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
+ regrid  TEMP     M:113 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M:112 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M:113 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
 load temp[g=u at lin,gy=@asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @LIN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M: 31 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 28 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 25 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 28 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ found   TEMP     M:116 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
+ regrid  TEMP     M:113 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M:108 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M:113 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
 load temp[g=u,gx=@ave,gy=@asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @AVE
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M: 28 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 22 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 22 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ found   TEMP     M:112 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
 load temp[gx=u]  		! changed V4.20 --> implicit regrid
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
+ 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
+ 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
- reading TEMP     M: 22 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 16 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M:116 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
+ regrid  TEMP     M:113 dset:   1 I:    100    105  J:   45   50  K:    1    2  L:      3      4
+ dealloc  dynamic grid (G009)          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     NORMAL    NORMAL
- -DELETE TEMP     M: 16 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 16 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 14 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 12 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 11 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2
+ -DELETE TEMP     M:113 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
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ found   TEMP     M:114 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:114 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  
              TEMP[G=U] - TEMP[G=U at AVE,GX=U at LIN,GY=U at LIN,GZ=U at LIN,GT=U at LIN]
              LONGITUDE: 130W to 125W
@@ -15214,23 +15079,18 @@ 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
  Mean    value: 0 (unweighted average)
  Standard deviation: 0
 stat temp[g=u,gx=@ave] - temp[gx=@ave,g=u]    ! == 0
- -DELETE EX#1     M: 10 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @AVE
- strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M: 10 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  7 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 53 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  7 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M:113 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M:  7 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 27 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 24 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 27 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ found   TEMP     M:116 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
+ regrid  TEMP     M:113 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M:107 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M:113 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
+ found   TEMP     M:107 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  
              TEMP[G=U,GX=@AVE] - TEMP[GX=@AVE,G=U]
              LONGITUDE: 130W to 125W
@@ -15250,15 +15110,15 @@ stat temp[g=u,gx=@ave] - temp[gx=@ave,g=u]    ! == 0
  
 ! basic regrid tests
 LIST temp[g=u at ave]
- -DELETE EX#1     M: 27 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M:113 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @AAV
- reading TEMP     M: 27 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ found   TEMP     M:116 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
  regrid XY
- regrid  TEMP     M: 49 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:113 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at AAV, on Y at AAV
              FILENAME : gtsa056_1.cdf
@@ -15292,20 +15152,15 @@ LIST temp[g=u at ave]
  0.33N / 46:  23.5511  23.5410  23.6056  23.8149  24.1179  24.2970
  0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
 LIST temp[g=u,gx=u at ave]	! V4.20 mod
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @AVE
- strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M: 18 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 48 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 23 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 48 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:107 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at AVE, on Y at LIN
              FILENAME : gtsa056_1.cdf
@@ -15339,20 +15194,20 @@ LIST temp[g=u,gx=u at ave]	! V4.20 mod
  0.33N / 46:  23.5511  23.5410  23.6056  23.8149  24.1179  24.2970
  0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
 LIST temp[g=u,gy=u at ave]	! V4.20 mod
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
- reading TEMP     M: 48 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  6 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 39 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  6 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M:116 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
+ regrid  TEMP     M: 90 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M: 85 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M: 90 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at LIN, on Y at AVE
              FILENAME : gtsa056_1.cdf
@@ -15386,18 +15241,15 @@ LIST temp[g=u,gy=u at ave]	! V4.20 mod
  0.33N / 46:  23.5511  23.5410  23.6056  23.8149  24.1179  24.2970
  0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
 LIST temp[g=u,gz=u at ave]	! V4.20 mod
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M:  6 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 15 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:114 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15431,18 +15283,15 @@ LIST temp[g=u,gz=u at ave]	! V4.20 mod
  0.33N / 46:  23.5511  23.5410  23.6056  23.8149  24.1179  24.2970
  0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
 LIST temp[g=u,gt=u at ave]	! V4.20 mod, etc --> many more similar syntax chgs
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 37 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 32 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:114 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15477,14 +15326,11 @@ LIST temp[g=u,gt=u at ave]	! V4.20 mod, etc --> many more similar syntax chgs
  0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
  
 LIST temp[g=u]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 19 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 13 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ found   TEMP     M:114 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15518,16 +15364,16 @@ LIST temp[g=u]
  0.33N / 46:  23.5511  23.5410  23.6056  23.8149  24.1179  24.2970
  0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
 LIST temp[g=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  1 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 26 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  1 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ found   TEMP     M:116 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
+ regrid  TEMP     M: 90 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M: 77 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M: 90 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at ASN, on Y at ASN
              FILENAME : gtsa056_1.cdf
@@ -15561,20 +15407,20 @@ LIST temp[g=u at asn]
  0.33N / 46:  23.5385  23.4834  23.4619  23.5233  23.7598  24.0491
  0     / 45:  23.6210  23.5135  23.4199  23.3768  23.4767  23.6893
 LIST temp[g=u,gx=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M:  1 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 52 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 29 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 52 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M:116 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
+ regrid  TEMP     M: 90 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M: 74 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M: 90 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at ASN, on Y at LIN
              FILENAME : gtsa056_1.cdf
@@ -15608,20 +15454,15 @@ LIST temp[g=u,gx=u at asn]
  0.33N / 46:  23.5668  23.5355  23.5465  23.6647  23.9652  24.2706
  0     / 45:  23.5798  23.4985  23.4409  23.4500  23.6182  23.8692
 LIST temp[g=u,gy=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M: 52 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 20 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 56 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 20 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:108 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at LIN, on Y at ASN
              FILENAME : gtsa056_1.cdf
@@ -15655,18 +15496,15 @@ LIST temp[g=u,gy=u at asn]
  0.33N / 46:  23.5110  23.4726  23.4926  23.6415  23.9044  24.0873
  0     / 45:  23.5673  23.4667  23.3983  23.4267  23.5830  23.7431
 LIST temp[g=u,gz=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 20 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 51 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:114 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15700,18 +15538,15 @@ LIST temp[g=u,gz=u at asn]
  0.33N / 46:  23.5511  23.5410  23.6056  23.8149  24.1179  24.2970
  0     / 45:  23.5391  23.4697  23.4454  23.5341  23.7437  23.9152
 LIST temp[g=u,gt=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 44 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 42 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:114 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15747,16 +15582,16 @@ LIST temp[g=u,gt=u at asn]
  
 ! Z and T axes different
 LIST temp[g=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ 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
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- reading TEMP     M: 41 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 38 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 90 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 58 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
  regrid XY
- regrid  TEMP     M: 35 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 38 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 15 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 58 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at AAV, on Y at AAV, on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -15790,19 +15625,19 @@ LIST temp[g=g5day at ave]
  0.33N / 46:  23.5623  23.5678  23.6554  23.8652  24.1261  24.2599
  0     / 45:  23.5376  23.4796  23.4768  23.5746  23.7580  23.8929
 LIST temp[g=g5day,gx=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 35 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  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
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ -DELETE TEMP     M: 15 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> YNTERMED         @LIN
- reading TEMP     M: 35 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 38 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  9 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 38 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 38 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  9 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 90 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 15 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 58 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 15 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 15 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 58 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at AVE, on Y at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -15836,18 +15671,18 @@ LIST temp[g=g5day,gx=g5day at ave]
  0.33N / 46:  23.5565  23.5539  23.6318  23.8486  24.1393  24.2949
  0     / 45:  23.5390  23.4739  23.4601  23.5581  23.7626  23.9173
 LIST temp[g=g5day,gy=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> YNTERMED         @LIN
- reading TEMP     M:  9 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  5 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  8 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  5 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 90 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 58 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M:110 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 58 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 58 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M:110 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at LIN, on Y at AVE, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -15881,16 +15716,16 @@ LIST temp[g=g5day,gy=g5day at ave]
  0.33N / 46:  23.5565  23.5539  23.6318  23.8486  24.1393  24.2949
  0     / 45:  23.5390  23.4739  23.4601  23.5581  23.7626  23.9173
 LIST temp[g=g5day,gz=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
- reading TEMP     M:  5 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 90 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M:110 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
  regrid XY
- regrid  TEMP     M: 47 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 41 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M:110 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY
              FILENAME : gtsa056_1.cdf
@@ -15924,16 +15759,16 @@ LIST temp[g=g5day,gz=g5day at ave]
  0.33N / 46:  23.5565  23.5539  23.6318  23.8486  24.1393  24.2949
  0     / 45:  23.5390  23.4739  23.4601  23.5581  23.7626  23.9173
 LIST temp[g=g5day,gt=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @AVE
- reading TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 17 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 90 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M:110 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
  regrid XY
- regrid  TEMP     M:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 17 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 31 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M:110 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at LIN, on Y at LIN, on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -15968,16 +15803,10 @@ LIST temp[g=g5day,gt=g5day at ave]
  0     / 45:  23.5376  23.4796  23.4768  23.5746  23.7580  23.8929
  
 LIST temp[g=g5day]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @LIN
- strip regrid on T: TEMP --> XNTERMED         @LIN
- reading TEMP     M: 17 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 46 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 50 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 46 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
+ found   TEMP     M: 41 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY
              FILENAME : gtsa056_1.cdf
@@ -16011,18 +15840,18 @@ LIST temp[g=g5day]
  0.33N / 46:  23.5565  23.5539  23.6318  23.8486  24.1393  24.2949
  0     / 45:  23.5390  23.4739  23.4601  23.5581  23.7626  23.9173
 LIST temp[g=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on T: TEMP --> YNTERMED         @ASN
- reading TEMP     M: 46 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 54 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 58 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 54 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 54 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 58 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 90 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M:110 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ regrid  TEMP     M: 98 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M:110 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:110 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 98 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at ASN, on Y at ASN, on T at ASN
              FILENAME : gtsa056_1.cdf
@@ -16056,18 +15885,18 @@ LIST temp[g=g5day at asn]
  0.33N / 46:  23.5242  23.4660  23.4157  23.3749  23.4550  23.7312
  0     / 45:  23.6083  23.5263  23.4345  23.3357  23.3000  23.4491
 LIST temp[g=g5day,gx=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> YNTERMED         @LIN
- reading TEMP     M: 58 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 59 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 60 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 59 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 59 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 60 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 90 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 98 dset:   1 I:    100    105  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 94 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 98 dset:   1 I:    100    105  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 98 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 94 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at ASN, on Y at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16101,18 +15930,18 @@ LIST temp[g=g5day,gx=g5day at asn]
  0.33N / 46:  23.5701  23.5428  23.5650  23.6985  23.9987  24.2798
  0     / 45:  23.5791  23.4988  23.4489  23.4714  23.6448  23.8804
 LIST temp[g=g5day,gy=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on T: TEMP --> YNTERMED         @LIN
- reading TEMP     M: 60 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 61 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 62 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 61 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 61 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 62 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 90 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 94 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3
+ regrid  TEMP     M: 91 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 94 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 94 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 91 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at LIN, on Y at ASN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16146,16 +15975,10 @@ LIST temp[g=g5day,gy=g5day at asn]
  0.33N / 46:  23.5136  23.4812  23.5130  23.6709  23.9254  24.0877
  0     / 45:  23.5643  23.4665  23.4073  23.4453  23.5998  23.7470
 LIST temp[g=g5day,gz=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> G5DAY            @LIN
- strip regrid on T: TEMP --> XNTERMED         @LIN
- reading TEMP     M: 62 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 63 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 64 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 63 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
+ found   TEMP     M: 41 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY
              FILENAME : gtsa056_1.cdf
@@ -16189,16 +16012,16 @@ LIST temp[g=g5day,gz=g5day at asn]
  0.33N / 46:  23.5565  23.5539  23.6318  23.8486  24.1393  24.2949
  0     / 45:  23.5390  23.4739  23.4601  23.5581  23.7626  23.9173
 LIST temp[g=g5day,gt=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @ASN
- reading TEMP     M: 63 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 65 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 90 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 91 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
  regrid XY
- regrid  TEMP     M: 66 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 65 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 75 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 91 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at LIN, on Y at LIN, on T at ASN
              FILENAME : gtsa056_1.cdf
@@ -16234,19 +16057,19 @@ LIST temp[g=g5day,gt=g5day at asn]
  
 ! all 4 axes different
 LIST temp[g=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M: 65 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 67 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 68 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 67 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 91 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 68 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 37 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 68 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 67 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 68 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 68 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 37 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at AAV, on Y at AAV, on Z at AVE, on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -16258,22 +16081,22 @@ LIST temp[g=g5_10 at ave]
  20-JAN-1982 00 / 2:  23.8829  23.9742  24.1489  24.3750  24.6256
  25-JAN-1982 00 / 3:  23.8850  23.9834  24.1657  24.3983  24.6503
 LIST temp[g=g5_10,gx=g5_10 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 67 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  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
- eval    EX#1     C:  4 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ -DELETE TEMP     M: 68 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 67 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 68 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 69 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 68 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 68 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 69 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 69 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 68 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 91 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 68 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 37 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 68 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 68 dset:   1 I:     95    106  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 37 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 37 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 68 dset:   1 I:     95    106  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at AVE, on Y at LIN, on Z at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16285,21 +16108,21 @@ LIST temp[g=g5_10,gx=g5_10 at ave]
  20-JAN-1982 00 / 2:  23.8838  23.9752  24.1501  24.3761  24.6265
  25-JAN-1982 00 / 3:  23.8774  23.9728  24.1535  24.3857  24.6381
 LIST temp[g=g5_10,gy=g5_10 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 68 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 70 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 71 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 70 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 70 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 71 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 71 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 70 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 91 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 68 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 20 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 68 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 68 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 20 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 20 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 68 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at AVE, on Z at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16311,19 +16134,19 @@ LIST temp[g=g5_10,gy=g5_10 at ave]
  20-JAN-1982 00 / 2:  23.7487  23.7495  23.8474  24.0089  24.2076
  25-JAN-1982 00 / 3:  23.7491  23.7562  23.8550  24.0158  24.2086
 LIST temp[g=g5_10,gz=g5_10 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 70 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 72 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 73 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 72 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 91 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 68 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 42 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 68 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 72 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 73 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 68 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 42 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at LIN, on Z at AVE, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16335,19 +16158,19 @@ LIST temp[g=g5_10,gz=g5_10 at ave]
  20-JAN-1982 00 / 2:  23.7487  23.7495  23.8474  24.0089  24.2076
  25-JAN-1982 00 / 3:  23.7491  23.7562  23.8550  24.0158  24.2086
 LIST temp[g=g5_10,gt=g5_10 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M: 73 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 74 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 75 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 74 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 91 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 42 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 49 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 42 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 74 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 75 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 42 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 49 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at LIN, on Z at LIN, on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -16360,21 +16183,21 @@ LIST temp[g=g5_10,gt=g5_10 at ave]
  25-JAN-1982 00 / 3:  23.7481  23.7620  23.8678  24.0343  24.2309
  
 LIST temp[g=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M: 75 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 76 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 77 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 76 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 76 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 77 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 77 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 76 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 49 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ regrid  TEMP     M: 28 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ regrid  TEMP     M:118 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 28 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 28 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M:118 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:118 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 28 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at ASN, on Y at ASN, on Z at ASN, on T at ASN
              FILENAME : gtsa056_1.cdf
@@ -16386,21 +16209,21 @@ LIST temp[g=g5_10 at asn]
  20-JAN-1982 00 / 2:  29.5859  29.5797  29.5756  29.5662  29.5590
  25-JAN-1982 00 / 3:  29.5787  29.5737  29.5698  29.5546  29.5421
 LIST temp[g=g5_10,gx=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 76 dset:   1 I:   12   12  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 78 dset:   1 I:   12   12  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 79 dset:   1 I:   12   12  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 78 dset:   1 I:   12   12  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 78 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 79 dset:   1 I:   12   12  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 79 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 78 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 28 dset:   1 I:     12     12  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 83 dset:   1 I:     12     12  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 82 dset:   1 I:     12     12  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 83 dset:   1 I:     12     12  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 83 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 82 dset:   1 I:     12     12  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 82 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 83 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at ASN, on Y at LIN, on Z at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16412,21 +16235,21 @@ LIST temp[g=g5_10,gx=g5_10 at asn]
  20-JAN-1982 00 / 2:  29.5747  29.5654  29.5513  29.5344  29.5265
  25-JAN-1982 00 / 3:  29.5636  29.5536  29.5355  29.5146  29.5054
 LIST temp[g=g5_10,gy=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 78 dset:   1 I:  100  101  J:   45   49  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 80 dset:   1 I:  100  101  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 81 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 80 dset:   1 I:  100  101  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 80 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 81 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 81 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 80 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 91 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 83 dset:   1 I:    100    101  J:   45   49  K:    1    2  L:      2      3
+ regrid  TEMP     M:100 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 83 dset:   1 I:    100    101  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 83 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M:100 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:100 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 83 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at ASN, on Z at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16438,19 +16261,19 @@ LIST temp[g=g5_10,gy=g5_10 at asn]
  20-JAN-1982 00 / 2:  23.7784  23.7190  23.7799  23.9148  24.1031
  25-JAN-1982 00 / 3:  23.7745  23.7236  23.7888  23.9212  24.1104
 LIST temp[g=g5_10,gz=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 80 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 82 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 83 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 82 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 91 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 83 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ regrid  TEMP     M: 79 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 83 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 82 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 83 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 83 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 79 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at LIN, on Z at ASN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16462,19 +16285,19 @@ LIST temp[g=g5_10,gz=g5_10 at asn]
  20-JAN-1982 00 / 2:  23.9612  23.9499  24.0203  24.1507  24.3238
  25-JAN-1982 00 / 3:  23.9591  23.9559  24.0305  24.1636  24.3350
 LIST temp[g=g5_10,gt=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M: 83 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 84 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 85 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 84 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 91 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 79 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 67 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 79 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 84 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 85 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 79 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 67 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at LIN, on Z at LIN, on T at ASN
              FILENAME : gtsa056_1.cdf
@@ -16491,210 +16314,210 @@ SET MODE IGNORE	! V.5 change
 canc reg
 set reg/l=1:3  ! x,y,z unspecified
 load temp
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
- reading TEMP     M: 85 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
+ reading TEMP     M: 67 dset:   1 I:      1    160  J:    5   89  K:    1    2  L:      1      3
 load temp[g=u]
- dealloc  dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DT2          PSXT1     PSYT      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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
  strip regrid on X: TEMP --> PS3DU2           @LIN
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
- reading TEMP     M: 86 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
+ found   TEMP     M: 67 dset:   1 I:      1    160  J:    5   89  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
  regrid XY
- regrid  TEMP     M: 88 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 50 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
 load temp[g=u at lin]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
  strip regrid on X: TEMP --> PS3DU2           @LIN
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
- reading TEMP     M: 89 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
+ found   TEMP     M: 61 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
  regrid XY
- regrid  TEMP     M: 91 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 27 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
  
 load temp[g=u at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
  strip regrid on X: TEMP --> PS3DU2           @AAV
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
- reading TEMP     M: 92 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
+ found   TEMP     M: 38 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
  regrid XY
- regrid  TEMP     M: 94 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 14 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
 load temp[g=u,gx=u at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @AVE
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
  strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M: 95 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 96 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
- regrid  TEMP     M: 98 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 97 dset:   1 I:    1  161  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M: 19 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M: 13 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
+ regrid  TEMP     M: 59 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ -DELETE TEMP     M: 12 dset:   1 I:      1    161  J:    1  100  K:    1    2  L:      1      3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
 load temp[g=u,gy=u at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @LIN
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
  strip regrid on Y: TEMP --> XNTERMED         @AVE
- reading TEMP     M: 97 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 99 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
- regrid  TEMP     M:101 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:100 dset:   1 I:    1  161  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M: 19 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M: 12 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
+ regrid  TEMP     M: 95 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ -DELETE TEMP     M: 18 dset:   1 I:      1    161  J:    1  100  K:    1    2  L:      1      3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  
 load temp[g=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
  strip regrid on X: TEMP --> PS3DU2           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:100 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:102 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:103 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:102 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 19 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M: 18 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ regrid  TEMP     M: 11 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ -DELETE TEMP     M: 18 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3  M: -999 -999  N: -999 -999
 load temp[g=u,gx=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M:102 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:104 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:105 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:104 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M: 19 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M: 18 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ regrid  TEMP     M: 10 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ -DELETE TEMP     M: 18 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
 load temp[g=u,gy=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @LIN
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:104 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:106 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
- regrid  TEMP     M:108 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:107 dset:   1 I:    1  161  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M: 19 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M: 18 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
+ regrid  TEMP     M:  7 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ -DELETE TEMP     M:  8 dset:   1 I:      1    161  J:    1  100  K:    1    2  L:      1      3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  
 canc reg
 use gtsa056_2		!kob 4/99
 set reg/i=101:105/j=41:42  ! z,t unspecified
 load temp[g=u]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
  strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:107 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ reading TEMP     M:  8 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M:109 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:  6 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
  
 load temp[g=u at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
  strip regrid on X: TEMP --> PS3DU1           @AAV
- reading TEMP     M:110 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M:111 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:  2 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
 load temp[g=u,gz=u at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:112 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M:113 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ regrid  TEMP     M:103 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
 load temp[g=u,gt=u at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:114 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M:115 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ regrid  TEMP     M: 97 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  
 load temp[g=u at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:116 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M:117 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M:118 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:117 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
+ regrid  TEMP     M: 88 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ regrid  TEMP     M: 69 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ -DELETE TEMP     M: 88 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168  M: -999 -999  N: -999 -999
 load temp[g=u,gz=u at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:117 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M:119 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ regrid  TEMP     M: 88 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
 load temp[g=u,gt=u at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:120 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M:121 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ regrid  TEMP     M: 64 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
 SET MODE/LAST IGNORE	! V.5 change
  
 ! plot verifications
@@ -16706,266 +16529,250 @@ set window/size=.5/aspect=.4 1
 use gtsa056_1 		!kob 4/99
 set region/x=130E:90W/y=0/z=5/t=21-JAN-1982
 plot temp
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     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 PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    1  140  J:   45   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- reading TEMP     M:122 dset:   1 I:    1  140  J:   45   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:      1    140  J:   45   46  K:    1    1  L:      2      3
+ found   TEMP     M: 19 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 76   complete
 plot/over temp[g=u]
- dealloc  dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT2          PSXT1     PSYT      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 PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M:125 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:126 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
+ found   TEMP     M: 27 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 77   complete
 plot/over temp[g=g5day]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
- reading TEMP     M:130 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:131 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M:102 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      5
+ regrid  TEMP     M: 96 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3
  regrid XY
- regrid  TEMP     M:132 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:131 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ regrid  TEMP     M: 93 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 96 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 78   complete
 plot/over temp[g=g5_10]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  7 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
- strip moduloing TEMP on X axis:     0   141 dset:   1
+ strip moduloing TEMP on X axis:        0      141 dset:   1
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M:135 dset:   1 I:    1  141  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:136 dset:   1 I:    1  141  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:137 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:136 dset:   1 I:    1  141  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   141 dset:   1
+ reading TEMP     M: 60 dset:   1 I:      1    141  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 54 dset:   1 I:      1    141  J:   44   46  K:    1    2  L:      2      3
+ regrid  TEMP     M: 45 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 54 dset:   1 I:      1    141  J:   44   46  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      141 dset:   1
  regrid XY
- regrid  TEMP     M:138 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:136 dset:   1 I:    0  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 43 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 54 dset:   1 I:      0    141  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 79   complete
 plot/over temp[g=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
- strip regrid on X: TEMP --> PS3DU2           @AAV
- reading TEMP     M:141 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:142 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
+ found   TEMP     M: 14 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 80   complete
 plot/over temp[g=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
  strip regrid on X: TEMP --> G5DAY            @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- reading TEMP     M:146 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:147 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 60 dset:   1 I:      1    141  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 62 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3
  regrid XY
- regrid  TEMP     M:148 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:147 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ regrid  TEMP     M: 34 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 62 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 81   complete
 plot/over temp[g=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  7 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AAV
- strip moduloing TEMP on X axis:     0   146 dset:   1
+ strip moduloing TEMP on X axis:        0      146 dset:   1
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M:151 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:152 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:153 dset:   1 I:    1  146  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:152 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   146 dset:   1
+ reading TEMP     M: 66 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 63 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      3
+ regrid  TEMP     M: 48 dset:   1 I:      1    146  J:   44   46  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 63 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      146 dset:   1
  regrid XY
- regrid  TEMP     M:154 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:152 dset:   1 I:    0  146  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 36 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 63 dset:   1 I:      0    146  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 82   complete
 plot/over temp[g=u at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
- strip regrid on X: TEMP --> PS3DU2           @ASN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:157 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:158 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:159 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:158 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
+ found   TEMP     M: 11 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 83   complete
 plot/over temp[g=g5day at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
  strip regrid on X: TEMP --> G5DAY            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on T: TEMP --> YNTERMED         @ASN
- reading TEMP     M:162 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:163 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:164 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:163 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:163 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:164 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ found   TEMP     M: 66 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 70 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ regrid  TEMP     M: 53 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 70 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 70 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 53 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 84   complete
 plot/over temp[g=u,gx=u at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  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
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip moduloing TEMP on X axis:     0   140 dset:   1
- strip regrid on X: TEMP --> PS3DU2           @AVE
- strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M:167 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:168 dset:   1 I:    1  141  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:169 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:168 dset:   1 I:    1  141  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ strip moduloing TEMP on X axis:        0      140 dset:   1
+ found   TEMP     M: 59 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing moduloing TEMP on X axis:        1      140 dset:   1
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 85   complete
 plot/over temp[g=g5day,gx=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
  strip regrid on X: TEMP --> G5DAY            @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> YNTERMED         @LIN
- reading TEMP     M:172 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:173 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:174 dset:   1 I:    1  141  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:173 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:173 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:174 dset:   1 I:    1  141  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ found   TEMP     M: 66 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M:104 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3
+ regrid  TEMP     M: 99 dset:   1 I:      1    141  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M:104 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:104 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 99 dset:   1 I:      1    141  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 86   complete
 plot/over temp[g=g5_10,gx=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  7 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AVE
- strip moduloing TEMP on X axis:     0   146 dset:   1
+ strip moduloing TEMP on X axis:        0      146 dset:   1
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M:177 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:178 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:179 dset:   1 I:    1  146  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:178 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:178 dset:   1 I:    1  146  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:179 dset:   1 I:    1  146  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   146 dset:   1
- regrid  TEMP     M:180 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:179 dset:   1 I:    0  146  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 66 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 71 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      3
+ regrid  TEMP     M: 57 dset:   1 I:      1    146  J:   44   46  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 71 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 71 dset:   1 I:      1    146  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 57 dset:   1 I:      1    146  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      146 dset:   1
+ regrid  TEMP     M: 55 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 57 dset:   1 I:      0    146  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 87   complete
 plot/over temp[g=g5_10 at asn]   ! invalid interpretation of data
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  7 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M:183 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:184 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:185 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:184 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:184 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:185 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:185 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:184 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 66 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 40 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ regrid  TEMP     M: 26 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 40 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 40 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 26 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 26 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 40 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
@@ -16975,221 +16782,205 @@ PPL plot 88   complete
 ! Y axis
 set region/x=180/y=20s:20n/z=5/t=21-JAN-1982
 plot temp
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DT2          PSXT1     PSYT      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- reading TEMP     M:188 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:     50     51  J:    5   88  K:    1    1  L:      2      3
+ found   TEMP     M: 19 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 89   complete
 plot/over temp[g=u]
- dealloc  dynamic grid PS3DT2          PSXT1     PSYT      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT2          PSXT1     PSYT      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 PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M:191 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:192 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ found   TEMP     M: 27 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 90   complete
 plot/over temp[g=g5day]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
- reading TEMP     M:194 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:195 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 51 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      5
+ regrid  TEMP     M: 35 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3
  regrid XY
- regrid  TEMP     M:196 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:195 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 21 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 35 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 91   complete
 plot/over temp[g=g5_10]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M:197 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:198 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:199 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:198 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M:  4 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M:  1 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      3
+ regrid  TEMP     M:122 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3
+ -DELETE TEMP     M:  1 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:198 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:199 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:  1 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:122 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 92   complete
 plot/over temp[g=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @AAV
- reading TEMP     M:201 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:202 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ found   TEMP     M: 14 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 93   complete
 plot/over temp[g=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- reading TEMP     M:204 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:205 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  4 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M: 81 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3
  regrid XY
- regrid  TEMP     M:206 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:205 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 65 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 81 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 94   complete
 plot/over temp[g=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M:207 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:208 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:209 dset:   1 I:   45   56  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:208 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 39 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M: 22 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      3
+ regrid  TEMP     M: 17 dset:   1 I:     45     56  J:    5   89  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 22 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:208 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:209 dset:   1 I:   45   56  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 22 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 17 dset:   1 I:     45     56  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 95   complete
 plot/over temp[g=u at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip regrid on X: TEMP --> PS3DU2           @ASN
- strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:211 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:212 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:213 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:212 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ found   TEMP     M: 11 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 96   complete
 plot/over temp[g=g5day at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on T: TEMP --> YNTERMED         @ASN
- reading TEMP     M:214 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:215 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:216 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:215 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:215 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:216 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 39 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M:125 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ regrid  TEMP     M:126 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:125 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:125 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:126 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 97   complete
 plot/over temp[g=u,gy=u at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  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
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip regrid on X: TEMP --> PS3DU2           @LIN
- strip regrid on Y: TEMP --> XNTERMED         @AVE
- reading TEMP     M:217 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:218 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:219 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:218 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M: 95 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 98   complete
 plot/over temp[g=g5day,gy=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> YNTERMED         @LIN
- reading TEMP     M:220 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:221 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:222 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:221 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:221 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:222 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 39 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M:128 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3
+ regrid  TEMP     M:129 dset:   1 I:     50     51  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:128 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:128 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:129 dset:   1 I:     50     51  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 99   complete
 plot/over temp[g=g5_10,gy=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M:223 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:224 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:225 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:224 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:224 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:225 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:225 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:224 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 39 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M:130 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      3
+ regrid  TEMP     M:131 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3
+ -DELETE TEMP     M:130 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:130 dset:   1 I:     50     51  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:131 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:131 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:130 dset:   1 I:     50     51  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 100  complete
 plot/over temp[g=g5_10 at asn]  ! invalid interpretation of data
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M:227 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:228 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:229 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:228 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:228 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:229 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:229 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:228 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 19 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M:133 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ regrid  TEMP     M:134 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:133 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:133 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:134 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:134 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:133 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
@@ -17199,268 +16990,248 @@ PPL plot 101  complete
 use gtsa056_2	!kob  4/99
 set region/x=180W/y=0/z=5/t=21-JAN-1982:13-JUN-1983
 load temp[i=50:51,j=45:56,k=1:2,l=1:172]  ! preload to save time
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DT1          PSXT1     PSYT      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     1   172 dset:   2
- reading TEMP     M:231 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DT1          PSXT1     PSYT      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing TEMP on T axis:        1      172 dset:   2
+ reading TEMP     M:136 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
 plot temp
- dealloc  dynamic grid PS3DT1          PSXT1     PSYT      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DT1          PSXT1     PSYT      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT1          PSXT1     PSYT      PSZT      TIME1
+ 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 PS3DT1          PSXT1     PSYT      PSZT      TIME1
  strip --> EX#1[Y=0 at ITP,D=2]
  strip --> EX#1[X=180E at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
- reading TEMP     M:233 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
- reading TEMP     M:235 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ eval    EX#1     C:  6 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      3    170
+ found   TEMP     M:137 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
  doing --> TEMP[X=180E at ITP,D=2]
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 102  complete
 plot/over temp[g=u]
- dealloc  dynamic grid PS3DT1          PSXT1     PSYT      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT1          PSXT1     PSYT      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:238 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
+ reading TEMP     M:140 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      3    168
  regrid XY
- regrid  TEMP     M:239 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ regrid  TEMP     M:141 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    168
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:241 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
+ reading TEMP     M:143 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      1      2
  regrid XY
- regrid  TEMP     M:242 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ regrid  TEMP     M:144 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      1      2
+ doing moduloing TEMP on T axis:        1        2 dset:   2
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 103  complete
 plot/over temp[g=g5day]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:244 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:246 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ strip moduloing TEMP on T axis:        2      171 dset:   2
+ reading TEMP     M:146 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
+ regrid  TEMP     M:148 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M:247 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:246 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:149 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:148 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 104  complete
 plot/over temp[g=g5_10]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- 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
+ 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
  strip --> EX#1[Z=5 at ITP,D=2]
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:248 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:250 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:251 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:250 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ strip moduloing TEMP on T axis:        2      171 dset:   2
+ reading TEMP     M:150 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
+ regrid  TEMP     M:152 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    104
+ regrid  TEMP     M:153 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M:152 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:250 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:251 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:152 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:153 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
  doing --> TEMP[Z=5 at ITP,D=2]
 setting up plot
 PPL plot 105  complete
 plot/over temp[g=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @AAV
- reading TEMP     M:253 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
+ found   TEMP     M:151 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    171
  regrid XY
- regrid  TEMP     M:254 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ regrid  TEMP     M:155 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    168
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @AAV
- reading TEMP     M:256 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
+ found   TEMP     M:150 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M:257 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ regrid  TEMP     M:157 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      1      2
+ doing moduloing TEMP on T axis:        1        2 dset:   2
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 106  complete
 plot/over temp[g=g5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAY            @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:259 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:261 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:151 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:159 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M:262 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:261 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:160 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:159 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 107  complete
 plot/over temp[g=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- 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
+ 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
  strip --> EX#1[Z=5 at ITP,D=2]
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10            @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:263 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:265 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:266 dset:   2 I:   45   56  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:265 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ strip moduloing TEMP on T axis:        2      171 dset:   2
+ reading TEMP     M:161 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
+ regrid  TEMP     M:163 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    104
+ regrid  TEMP     M:164 dset:   2 I:     45     56  J:   44   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M:163 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:265 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:266 dset:   2 I:   45   56  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:163 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:164 dset:   2 I:     45     56  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
  doing --> TEMP[Z=5 at ITP,D=2]
 setting up plot
 PPL plot 108  complete
 plot/over temp[g=u at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:268 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M:269 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M:270 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:269 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ found   TEMP     M:162 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:166 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    168
+ regrid  TEMP     M:167 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    168
+ -DELETE TEMP     M:166 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    168  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M:271 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid  TEMP     M:272 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid  TEMP     M:273 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:272 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ found   TEMP     M:161 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      1    168
+ regrid  TEMP     M:168 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      1      2
+ regrid  TEMP     M:169 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      1      2
+ -DELETE TEMP     M:168 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      1      2  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on T axis:        1        2 dset:   2
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 109  complete
 plot/over temp[g=g5_10 at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
  strip --> EX#1[Z=5 at ITP,D=2]
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M:274 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:275 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:276 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:275 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:275 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:276 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:276 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:275 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ reading TEMP     M:170 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ regrid  TEMP     M:171 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ regrid  TEMP     M:172 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:171 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:171 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:172 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:172 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:171 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
  doing --> TEMP[Z=5 at ITP,D=2]
 setting up plot
 PPL plot 110  complete
 plot/over temp[g=u,gt=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- strip moduloing TEMP on T axis:     3   170 dset:   2
- strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:278 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:279 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
- strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:281 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:282 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    170
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ found   TEMP     M:142 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    170
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 111  complete
 plot/over temp[g=g5day,gt=g5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @AVE
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:284 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:286 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:162 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:175 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M:287 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:286 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:176 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:175 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 112  complete
 plot/over temp[g=g5_10,gt=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- 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
+ 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
  strip --> EX#1[Z=5 at ITP,D=2]
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:288 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:290 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:291 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:290 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:162 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:177 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    104
+ regrid  TEMP     M:178 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M:177 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:290 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:291 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:177 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:178 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
  doing --> TEMP[Z=5 at ITP,D=2]
 setting up plot
 PPL plot 113  complete
 plot/over temp[g=g5day,gt=g5day at asn]  ! invalid interpretation of data
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @ASN
- reading TEMP     M:293 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:294 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:162 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:180 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M:295 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:294 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:181 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:180 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 114  complete
@@ -17478,24 +17249,24 @@ let a1 = x[gx=x1pt]	! single point
 let a2 = x[gx=x2pt]
  
 list a1[gx=xoffset at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- 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    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          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: A1 --> (G011)           @AVE
- eval    A1       C:  7 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:296 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:298 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ regrid  A1       M:184 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at AVE
              SUBSET   : 7 points (X)
@@ -17507,22 +17278,19 @@ list a1[gx=xoffset at ave]
  6.1 / 6:     ....
  7.1 / 7:     ....
 list a1[gx=xoffset at sum] ! should sum to 5
- -DELETE X        M:296 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:298 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:182 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G011)          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 (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          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: A1 --> (G011)           @SUM
- eval    A1       C:  7 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:299 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -17534,22 +17302,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
- -DELETE X        M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:299 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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 (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          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: A1 --> (G011)           @VAR
- eval    A1       C:  7 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:299 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:300 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : Variance of X[GX=X1PT]
                         regrid: 1 delta on X at VAR
              SUBSET   : 7 points (X)
@@ -17562,26 +17326,25 @@ list a1[gx=xoffset at var] ! should be all missing
  7.1 / 7:....
  
 list a2[gx=xoffset at ave]
- -DELETE X        M:299 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:300 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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 (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @AVE
- eval    A2       C:  7 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:300 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:301 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A2       C:  7 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ allocate dynamic grid (G011)          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 (G011)          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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at AVE
              SUBSET   : 7 points (X)
@@ -17593,22 +17356,19 @@ list a2[gx=xoffset at ave]
  6.1 / 6:  6.00000
  7.1 / 7:     ....
 list a2[gx=xoffset at sum] ! should sum to 5+6=11
- -DELETE X        M:300 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:301 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:184 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G006)          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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @SUM
- eval    A2       C:  7 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:301 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:302 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -17620,22 +17380,18 @@ list a2[gx=xoffset at sum] ! should sum to 5+6=11
  6.1 / 6:  5.40000
  7.1 / 7:     ....
 list a2[gx=xoffset at var]
- -DELETE X        M:301 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:302 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @VAR
- eval    A2       C:  7 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:302 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:303 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : Variance of X[GX=X2PT]
                         regrid: 1 delta on X at VAR
              SUBSET   : 7 points (X)
@@ -17653,47 +17409,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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:303 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:299 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:300 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:301 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:302 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:296 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:297 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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 (G011)          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
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G011)          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: A1 --> (G011)           @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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:297 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:297 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:298 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:297 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:298 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A1       C:  8 dset:   0 I:      1      1  J:    1    1  K: -999 -999  L:   -999   -999
+ allocate dynamic grid (G006)          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 (G010)          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 (G010)          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 (G006)          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 (G011)          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)
@@ -17707,29 +17458,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 (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:297 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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 (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G011)          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: A1 --> (G011)           @SUM
  strip regrid on Y: A1 --> XNTERMED         @SUM
- eval    A1       C:  8 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:297 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:298 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:298 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:297 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:297 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:298 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:297 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G011)          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)
@@ -17743,29 +17486,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 (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:298 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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 (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G011)          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: A1 --> (G011)           @VAR
  strip regrid on Y: A1 --> XNTERMED         @VAR
- eval    A1       C:  8 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:297 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:297 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:298 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:297 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:298 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G011)          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)
@@ -17780,35 +17515,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 (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:297 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G011)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X2PT      Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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 (G011)          NORMAL    Y2PT      NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          NORMAL    Y2PT      NORMAL    NORMAL
+ allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          X2PT      Y2PT      NORMAL    NORMAL
+ allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G006)          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 (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:297 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:298 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:298 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:297 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:297 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:298 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:297 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A2       C:  8 dset:   0 I:      1      2  J:    1    2  K: -999 -999  L:   -999   -999
+ allocate dynamic grid (G010)          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 (G002)          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 (G002)          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 (G010)          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 (G006)          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)
@@ -17822,29 +17557,21 @@ list a2[gx=xoffset at ave, gy=yoffset at ave]
  6.1 / 6:     ....     ....     ....  11.0000  11.1000  12.0000     ....
  7.1 / 7:     ....     ....     ....     ....     ....     ....     ....
 list a2[gx=xoffset at sum, gy=yoffset at sum] ! should sum to 10+11+11+12=44
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:298 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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 (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G006)          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 (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @SUM
  strip regrid on Y: A2 --> XNTERMED         @SUM
- eval    A2       C:  8 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:298 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:297 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:297 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:298 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:298 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:297 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:298 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G006)          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)
@@ -17859,29 +17586,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 (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:297 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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 (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G006)          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 (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @VAR
  strip regrid on Y: A2 --> XNTERMED         @VAR
- eval    A2       C:  8 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:297 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:298 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:298 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:297 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:297 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:298 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:297 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G006)          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)
@@ -17902,37 +17621,33 @@ define axis/x=5:6:1 x2pt
 define axis/x=5:6.5:.5 x4pt
  
 let a1 = x[gx=x1pt]
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:298 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:299 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:300 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:303 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:296 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:301 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:302 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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 (G011)          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
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          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: A1 --> (G011)           @MAX
- eval    A1       C:  7 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:302 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:296 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ regrid  A1       M:183 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -17944,26 +17659,26 @@ list a1[gx=xoffset at max]
  6.1 / 6:     ....
  7.1 / 7:     ....
 list a2[gx=xoffset at max]
- -DELETE X        M:302 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:296 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:185 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G011)          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 (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @MAX
- eval    A2       C:  7 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:296 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:303 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A2       C:  7 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ allocate dynamic grid (G011)          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 (G011)          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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -17975,26 +17690,26 @@ list a2[gx=xoffset at max]
  6.1 / 6:  6.00000
  7.1 / 7:     ....
 list a4[gx=xoffset at max]
- -DELETE X        M:296 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:303 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:183 dset:   0 I:      1      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G006)          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 (G006)          X4PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          X4PT      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
+ 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: A4 --> (G010)           @MAX
- eval    A4       C:  7 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:303 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A4       M:300 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A4       C:  7 dset:   0 I:      1      4  J: -999 -999  K: -999 -999  L:   -999   -999
+ allocate dynamic grid (G006)          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 (G006)          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 (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -18006,22 +17721,19 @@ list a4[gx=xoffset at max]
  6.1 / 6:  6.50000
  7.1 / 7:     ....
 list a4[gx=xoffset at min]
- -DELETE X        M:303 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A4       M:300 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:182 dset:   0 I:      1      4  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G010)          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 (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G010)          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: A4 --> (G010)           @MIN
- eval    A4       C:  7 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:300 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A4       M:299 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at MIN
              SUBSET   : 7 points (X)
@@ -18033,22 +17745,18 @@ list a4[gx=xoffset at min]
  6.1 / 6:  6.00000
  7.1 / 7:     ....
 list a4[gx=xoffset at sum] ! 5+5.5+6+6.5=23
- -DELETE X        M:300 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A4       M:299 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          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 (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G010)          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: A4 --> (G010)           @SUM
- eval    A4       C:  7 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:299 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A4       M:298 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -18065,26 +17773,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
- -DELETE X        M:299 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A4       M:298 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          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 (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G002)          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 (G002)          X5        NORMAL    NORMAL    NORMAL
  strip regrid on X: A5 --> (G002)           @MAX
- eval    A5       C:  7 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:298 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A5       M:297 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A5       C:  7 dset:   0 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ allocate dynamic grid (G010)          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 (G010)          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 (G002)          X5        NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X5_EDGES]
                         regrid: 1 delta on X at MAX
              SUBSET   : 5 points (X)
@@ -18094,37 +17801,35 @@ list a5[gx=x5 at max]   ! note: top dest axis point, only, looks at point above
  4   / 4:  3.50000
  5   / 5:  5.50000
 let a5 = x[gx=x5_edges, i=3]
- dealloc  dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A5       M:297 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A5       M:299 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:298 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A4       M:296 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A4       M:300 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A4       M:303 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:302 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:301 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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 (G010)          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 (G006)          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 (G011)          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
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G011)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          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 (G011)          X5        NORMAL    NORMAL    NORMAL
  strip regrid on X: A5 --> (G011)           @MAX
- eval    A5       C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:301 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A5       M:303 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ regrid  A5       M:183 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X5_EDGES, I=3]
                         regrid: 1 delta on X at MAX
              SUBSET   : 5 points (X)
@@ -18134,42 +17839,35 @@ list a5[gx=x5 at max]
  4   / 4:     ....
  5   / 5:     ....
 list a5[gx=x5 at max,i=3]
- -DELETE X        M:301 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A5       M:303 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:184 dset:   0 I:      3      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G011)          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 (G011)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          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 (G011)          X5        NORMAL    NORMAL    NORMAL
  strip regrid on X: A5 --> (G011)           @MAX
- eval    A5       C:  7 dset:   0 I:    3    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:303 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A5       M:300 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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 (G011)          X5        NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X5_EDGES, I=3]
                         regrid: 1 delta on X at MAX
              X        : 3
           2.50000
 list a5[gx=x5 at max,i=4]
- -DELETE X        M:303 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A5       M:300 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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 (G011)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          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 (G011)          X5        NORMAL    NORMAL    NORMAL
  strip regrid on X: A5 --> (G011)           @MAX
- eval    A5       C:  7 dset:   0 I:    4    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:300 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ found   A5       M:185 dset:   0 I:      3      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X5_EDGES, I=3]
                         regrid: 1 delta on X at MAX
              X        : 4
@@ -18180,20 +17878,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
- -DELETE X        M:300 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A5       M:296 dset:   0 I:    4    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- eval    ATIME    C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- pseudo  T        M:296 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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 (G011)          NORMAL    NORMAL    NORMAL    TDAY
+ dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY
+ allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY
+ allocate dynamic grid (G011)          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 (G011)          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 (G011)          NORMAL    NORMAL    NORMAL    TDAY
              VARIABLE : T[GT=TDAY]
              SUBSET   : 5 points (TIME)
  01-JAN-1990 00 / 1:  32493.0
@@ -18210,24 +17907,19 @@ show grid
  normal    Y
  normal    Z
  TDAY      TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
- normal    E
- normal    F
 list atime[gt=thour at max]
- -DELETE T        M:296 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- 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 (G006)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
- allocate dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
+ -DELETE T        M:183 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      5
+ dealloc  dynamic grid (G011)          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 (G006)          NORMAL    NORMAL    NORMAL    THOUR
+ dealloc  dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR
+ allocate dynamic grid (G006)          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 (G006)          NORMAL    NORMAL    NORMAL    THOUR
  strip regrid on T: ATIME --> (G006)           @MAX
- eval    ATIME    C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- pseudo  T        M:296 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- regrid  ATIME    M:299 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
+ 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 (G006)          NORMAL    NORMAL    NORMAL    THOUR
              VARIABLE : T[GT=TDAY]
                         regrid: 24 hour on T at MAX
              SUBSET   : 5 points (TIME)
@@ -18245,8 +17937,6 @@ show grid
  normal    Y
  normal    Z
  THOUR     TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
- normal    E
- normal    F
  
 set mode/last diag
  
@@ -18255,9 +17945,11 @@ set mode/last diag
  
  
  
-GO bn_reset		! reordered reset before next test: 2/94
+GO bn_reset bn_axis_limits	! reordered reset before next test: 2/94
 cancel mode verify
-GO bn_axis_limits	! added 10/27/93
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_limits
+GO bn_axis_limits	        ! added 10/27/93
 !bn301_axis_limits.jnl
 ! exercise the new-V301 /XLIMITS and /YLIMITS qualifiers
  
@@ -18409,7 +18101,7 @@ contour/x=160E:160W/t=28000:29000/lev=(-1,1,.25)/xlimits=140e:110w:-9/ylimits=1-
 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)
  
-SET WINDOW/CLEAR/SIZE=0.2 ! added 2/94
+SET WINDOW/CLEAR/SIZE=0.2       ! added 2/94
  
 !GO bn_reset
 !GO bn301_mem_mgmt
@@ -18420,8 +18112,10 @@ MESSAGE/CONTINUE  ***** Its too slow!!!
 MESSAGE/CONTINUE  ***** Remember to run it separately
 ***** Remember to run it separately
  
-GO bn_reset
+GO bn_reset bn_movie
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_movie
 GO bn_movie
 ! bn301_movie.JNL
 ! - test on-HDF movie creation by Program FERRET
@@ -18433,8 +18127,10 @@ GO bn_movie
 exit/script
  
 ! added in bn311
-GO bn_reset
+GO bn_reset bn_ez_order
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ez_order
 GO bn_ez_order	! was bn311 until 9/95
 ! bn420_ez_order
 ! updated from bn311_ez_order 9/95 - improved testing of /FORMAT=STREAM
@@ -18833,7 +18529,7 @@ list v1
 ! *** 2D
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6 test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 points (X-Y)
               1        2     
@@ -18843,7 +18539,7 @@ list v10
  3   / 3:  5.00000  6.00000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6/order=yx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 points (X-Y)
               1        2     
@@ -18853,7 +18549,7 @@ list v10
  3   / 3:  3.00000  6.00000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6yt test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 points (Y-T)
               1        2     
@@ -18863,7 +18559,7 @@ list v10
  3   / 3:  5.00000  6.00000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6yt/order=ty test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 points (Y-T)
               1        2     
@@ -18873,7 +18569,7 @@ list v10
  3   / 3:  3.00000  6.00000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6yt/order=xtyz test_perm48_10.dat
 list v10 ! should be just the same as the last
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 points (Y-T)
               1        2     
@@ -18885,7 +18581,7 @@ list v10 ! should be just the same as the last
 ! *** 3D
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12 test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
               1        2     
@@ -18900,7 +18596,7 @@ list v10
  3   / 3:  11.0000  12.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=xzy test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
               1        2     
@@ -18915,7 +18611,7 @@ list v10
  3   / 3:  11.0000  12.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=yxz test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
               1        2     
@@ -18930,7 +18626,7 @@ list v10
  3   / 3:   9.0000  12.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=yzx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
               1        2     
@@ -18945,7 +18641,7 @@ list v10
  3   / 3:   6.0000  12.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=zxy test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
               1        2     
@@ -18960,7 +18656,7 @@ list v10
  3   / 3:  10.0000  12.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=zyx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
               1        2     
@@ -18976,7 +18672,7 @@ list v10
 ! *** 4D  (incomplete - 24 in all)
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24 test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
               1        2     
@@ -19001,7 +18697,7 @@ list v10
  3   / 3:  23.0000  24.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xytz test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
               1        2     
@@ -19026,7 +18722,7 @@ list v10
  3   / 3:  23.0000  24.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xzyt test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
               1        2     
@@ -19051,7 +18747,7 @@ list v10
  3   / 3:  23.0000  24.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xtyz test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
               1        2     
@@ -19076,7 +18772,7 @@ list v10
  3   / 3:  23.0000  24.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xtzy test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
               1        2     
@@ -19101,7 +18797,7 @@ list v10
  3   / 3:  23.0000  24.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=ytzx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
               1        2     
@@ -19126,7 +18822,7 @@ list v10
  3   / 3:  12.0000  24.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=zytx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
               1        2     
@@ -19151,7 +18847,7 @@ list v10
  3   / 3:  12.0000  24.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=tyzx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
               1        2     
@@ -19176,7 +18872,7 @@ list v10
  3   / 3:  12.0000  24.0000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=tzyx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
               1        2     
@@ -19217,8 +18913,8 @@ list v1
 show data
      currently SET data sets:
     1> ./test_perm10.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       1:3       1:1       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:2       1:3       1:1       ...
  
  
 file/grid=g24/order=xytz test_perm10.dat
@@ -19240,8 +18936,8 @@ list v1
 show data
      currently SET data sets:
     1> ./test_perm10.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       1:3       1:2       1:1       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:2       1:3       1:2       1:1
  
  
 file/grid=g24/order=xzyt test_perm10.dat
@@ -19263,8 +18959,8 @@ list v1
 show data
      currently SET data sets:
     1> ./test_perm10.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       1:3       1:2       1:1       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:2       1:3       1:2       1:1
  
  
  
@@ -19470,8 +19166,10 @@ sp rm -f test_perm48_10.dat
  
  
 ! added in bn312  6/3/94
-GO bn_reset
+GO bn_reset bn_user
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_user
 ! cancel mode metafile   ! needed temporarily 6/94: PLOT+/XGKS interaction bug
 GO bn_user
 ! bn312_user.jnl
@@ -19490,8 +19188,10 @@ exit/script
 set window 1		! clean up
  
 ! added in bn420  1/96
-GO bn_reset
+GO bn_reset bn_stream
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_stream
 GO bn_stream
 ! bn420_stream.jnl
  
@@ -19505,7 +19205,7 @@ define axis/y=1:5:1 y5
 define grid/x=x10/y=y5 g10x5
 file/var=myvar/grid=g10x5/format=stream stream_data_link.unf
 list myvar
-             VARIABLE : MYVAR
+             VARIABLE : myvar
              FILENAME : stream_data_link.unf
              SUBSET   : 10 by 5 points (X-Y)
               1        2        3        4        5        6        7        8        9       10     
@@ -19526,8 +19226,8 @@ list myv1,myv2
              DATA SET: ./stream_data_link.unf
              X: 0.5 to 10.5
              Y: 0.5 to 2.5
- Column  1: MYV1
- Column  2: MYV2
+ Column  1: MYV1 is myv1
+ Column  2: MYV2 is myv2
               MYV1    MYV2
  ---- J:1 Y:   1
 1    /  1:  11.0000  31.0000
@@ -19555,8 +19255,10 @@ cancel data stream_data_link.unf
  
  
 !added in bn430 9/96 *kob*
-GO bn_reset
+GO bn_reset bn_mc
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_mc
 GO bn_mc
 !bn430_mc.jnl
 ! kob - 9/5/96
@@ -19569,8 +19271,8 @@ CAN MODE VERIFY
      currently SET data sets:
     1> ./coads_clim.des  (default)
      COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6
              Deg C on grid GHB1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -19582,8 +19284,6 @@ CAN MODE VERIFY
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME1     T (hour)             6 r   366                  4018.4              full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO
        1>  366                   730.485    0.7575
@@ -19638,8 +19338,8 @@ CAN MODE VERIFY
      currently SET data sets:
     1> ./coads_clim.des
      COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6
              Deg C on grid GHB1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -19647,8 +19347,8 @@ CAN MODE VERIFY
  
     2> ./coads_clim_irreg.des  (default)
      COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
              Deg C on grid GJR1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -19660,8 +19360,6 @@ CAN MODE VERIFY
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME2     T (hour)             3 i   366                  3287.9              full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO
        1>  366                   730.485    0.7575
@@ -19707,8 +19405,8 @@ CAN MODE VERIFY
      currently SET data sets:
     1> ./coads_clim_missing_step1.des  (default)
      COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
              Deg C on grid GQO1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -19717,8 +19415,8 @@ CAN MODE VERIFY
      currently SET data sets:
     1> ./coads_clim_missing_stepN.des  (default)
      COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
              Deg C on grid GCQ1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -20008,8 +19706,10 @@ CAN MODE VERIFY
  
  
 !added in bn450 10/97 *kob*
-GO bn_reset
+GO bn_reset bn_negative_t
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_negative_t
 GO bn_negative_t
 ! bn450_negative_t - 10/97
  
@@ -21034,8 +20734,10 @@ CANCEL MODE ignore_error
  
  
 !added in bn450 10/97 *kob*
-GO bn_reset
+GO bn_reset bn_xact_regrid
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_xact_regrid
 GO bn_xact_regrid
 ! BN450_xact_regrid.jnl
  
@@ -22435,8 +22137,10 @@ LIST Sfineoffset[G$1=$1Dcoarse at XACT]! non-aligning grid points fine to coarse
  
 !added in bn450 11/97 *kob*
 ! replace w/ bn500 *kob* 5/99
-GO bn_reset
+GO bn_reset bn_gc_functions
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_gc_functions
 GO bn_gc_functions
 ! bn500_gc_functions.jnl
  
@@ -23026,10 +22730,11 @@ shade/x=0/l=1/ylim=0:200:-20/lev ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[z=0:2
  
 !added in bn491 - originally had this in run_all, but moved it here to
 ! properly echo commands  *kob*
-GO bn_reset
-cancel mode verify
 set mode verify  ! somehow this was off
- 
+GO bn_reset bn491_bug_fixes.jnl
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn491_bug_fixes.jnl
 GO bn491_bug_fixes.jnl
 ! bn491_bug_fixes.jnl
 ! test various fixes that went into version 4.91
@@ -23072,6 +22777,7 @@ message/continue ********File successfully written******
 ! command parser
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err490_command_parser
 ! err490_command_parser.jnl 12/1/98 - reported by billy kessler
  
@@ -23105,6 +22811,7 @@ message/continue ****Variable defined successfully******
 !repeat error
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err490_repeat_first_echo
 ! err490_repeat_first_echo (created later 23/98)
  
@@ -23320,6 +23027,7 @@ list tgap[t=-5:-8 at fav]  ! value at T=-6 should be -6
 ! l=@ave compression failure
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err490_l_ave.jnl
 ! err490_lave.jnl 12/1/97 - *sh* (reported by Weimin Wang)
 ! L=@AVE is failing to compress to a point
@@ -23403,6 +23111,7 @@ quit
 ! neg time axis grid failure
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err490_neg_time_show_grid.jnl
 ! err490_neg_time_show_grid
  
@@ -23417,8 +23126,6 @@ show grid/t=15-JAN-1982:15-JAN-1983 temp
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME4     TIME               168mr   15-JAN-1982 14:00    07-JUN-1983 13:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (hour)
        1>  15-JAN-1982 14:00:00  73         14-JAN-1982 01:30:00    52632
@@ -23547,6 +23254,7 @@ show grid/t=15-JAN-1982:15-JAN-1983 temp
 !explicit limit problem
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_explicit_limits.jnl
 ! err491_explicit_limits
 ! 2/98 *sh*
@@ -23597,6 +23305,7 @@ list timestamp[i=1:1]
 !regridding by association problem  *kob* 4/98
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_asn.jnl
 ! err491_asn.jnl 4/98 *sh* (extracted from bug reported by Jennifer Adams)
 ! Ferret crashes on regridding by association where destination
@@ -23676,6 +23385,7 @@ exit/script
 !double precision attribute problem *kob* 4/98
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_attrib_dp.jnl
 ! err491_attrib_dp.jnl
 ! kob  4/23/98
@@ -23832,8 +23542,10 @@ list elev
  
 ! ******** V500 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_odd_variable_name
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_odd_variable_name
 GO bn_odd_variable_name
 ! make sure memory is limited; otherwise the abstract axis will list
 let save_mem = ($ferret_memory)
@@ -23843,13 +23555,13 @@ use weird_name1.cdf
 sh data
      currently SET data sets:
     1> ./weird_name1.cdf  (default)
- name     title                             I         J         K         L         M         N
- v1       lower case v1                    1:20      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ v1       lower case v1                    1:20      ...       ...       ...
  v2-and-minus
-          SIN(2+I/10)                      1:20      ...       ...       ...       ...       ...
- V1       Upper case V1                    1:20      ...       ...       ...       ...       ...
- I        SIN(4+I/10)                      1:20      ...       ...       ...       ...       ...
- X        SIN(5+I/10)                      1:20      ...       ...       ...       ...       ...
+          SIN(2+I/10)                      1:20      ...       ...       ...
+ V1       Upper case V1                    1:20      ...       ...       ...
+ I        SIN(4+I/10)                      1:20      ...       ...       ...
+ X        SIN(5+I/10)                      1:20      ...       ...       ...
  
 set mode ignore
 list v1
@@ -24125,8 +23837,10 @@ list 'v2-and-minus'[i=5:15 at ddc] ! Now the proper syntax
 set mem /size=`save_mem`
  !-> set mem /size=25.6
  
-GO bn_reset
+GO bn_reset bn_test_stream
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_test_stream
 GO bn_test_stream
  
 canc data/all
@@ -24156,6 +23870,11 @@ def grid/x=xax/y=yax/z=zax/t=tax mygrid
  
 file/format=stream/var=num/grid=mygrid junk.dat
 load num
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 25.6 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 0 (0%)
+    The size of the requested object was: : 24000000000 (93750%)
  
 !
 ! Semilarge grid
@@ -24171,6 +23890,11 @@ def grid/x=xax/y=yax/z=zax/t=tax mygrid
  
 file/format=stream/var=num/grid=mygrid junk.dat
 load num
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 25.6 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 0 (0%)
+    The size of the requested object was: : 1000000000 (3906%)
  
 canc data/all
  
@@ -24213,7 +23937,7 @@ canc mode ignore
 !!OK, load file in 'normal order'
 file/format=str/var=num,num1/grid=mygrid/order=xyztv permutedBinaryTest.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24236,7 +23960,7 @@ list num
  2   / 2:  21.0000  22.0000
  3   / 3:  23.0000  24.0000
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24262,7 +23986,7 @@ list num1
 !! Load file w/o order qualifier (should be same as above)
 file/format=str/var=num,num1/grid=mygrid/order=xyztv permutedBinaryTest.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24285,7 +24009,7 @@ list num
  2   / 2:  21.0000  22.0000
  3   / 3:  23.0000  24.0000
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24312,7 +24036,7 @@ list num1
 !! Permute tzyxv
 file/format=str/var=num,num1/grid=mygrid/order=tzyxv permutedBinaryTest.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24335,7 +24059,7 @@ list num
  2   / 2:   8.0000  20.0000
  3   / 3:  12.0000  24.0000
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24361,7 +24085,7 @@ list num1
 !!Try permuted v
 file/format=str/var=num,num1/grid=mygrid/order=vxyzt permutedBinaryTest.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24384,7 +24108,7 @@ list num
  2   / 2:  41.0000  43.0000
  3   / 3:  45.0000  47.0000
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24411,7 +24135,7 @@ list num1
 !! for big endian architecture)
 file/format=str/var=num,num1/grid=mygrid/type=i1 byte.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : byte.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24436,7 +24160,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=i2/swap short.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : short.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24461,7 +24185,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=i4/swap int.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : int.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24486,7 +24210,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=r4/swap float.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : float.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24511,7 +24235,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=r8/swap double.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : double.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24538,7 +24262,7 @@ list num1
 !! Test swapped
 file/format=str/var=num,num1/grid=mygrid/type=i1 byteSwapped.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : byteSwapped.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24563,7 +24287,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=i2 shortSwapped.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : shortSwapped.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24588,7 +24312,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=i4 intSwapped.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : intSwapped.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24613,7 +24337,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=r4 floatSwapped.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : floatSwapped.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24638,7 +24362,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=r8 doubleSwapped.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : doubleSwapped.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24667,7 +24391,7 @@ list num1
 ! get correct result with /skip=2 (??)
 file/format=str/var=num,num1/grid=mygrid/type=r8/skip=2/swap skip.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : skip.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24694,7 +24418,7 @@ list num1
 ! Try list of types
 file/format=str/var=num,num1/grid=mygrid/type=r8,i1/swap twoType.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : twoType.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24717,7 +24441,7 @@ list num
  2   / 2:  20.0000  21.0000
  3   / 3:  22.0000  23.0000
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : twoType.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24743,7 +24467,7 @@ list num1
 ! Grand finale of xyvzt permutation with r4,i2 types
 file/format=str/var=num,num1/grid=mygrid/type=r4,i2/order=xyvzt/swap finale.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : finale.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24766,7 +24490,7 @@ list num
  2   / 2:  20.0000  21.0000
  3   / 3:  22.0000  23.0000
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : finale.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24789,12 +24513,16 @@ list num1
  2   / 2:  20.0000  21.0000
  3   / 3:  22.0000  23.0000
  
-GO bn_reset
+GO bn_reset bn_define_axes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_define_axes
 GO bn_define_axes
 ! bn_define_axes.jnl
 ! *sh* 5/99
-! *sh* 12/99 - with streamlined syntax
+! *sh* 12/99 -  with streamlined syntax
+! *acm* 12/16 - change to a comment only
+! 1/2017 *acm* changes in output due to backing off auto-detection of truemonth axes, tkt 2497
  
 ! exercise the DEFINE AXIS command
  
@@ -25017,6 +24745,10 @@ T0 = 1-JAN-1990
        2>  04-JAN-1990 12:00:00  3          03-JAN-1990 00:00:00    3.5
  
 ! real monthly calendar
+! (Note: when running pre-true-month Ferret versions, the timestep output from
+! show axis/l below was eliminated by the "clean_draconian" script)
+! 1/17/2017 changes due to backing off auto-detection of truemonth axes, tkt 2497
+ 
 let month = MOD(l-1,12)+1
 let add_year = INT((l-1)/12)
 let tstep = DAYS1900(1980+add_year,month,1)
@@ -25261,10 +24993,13 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! GO bn_external_functions  ! move to tests of shared-obj efs.
  
-GO bn_reset
+GO bn_reset bn_pattern
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_pattern
 GO bn_pattern
 ! pattern_bench.jnl
 ! Quick demo of Ferret pattern feature *jd* 12.18.98
@@ -25310,8 +25045,10 @@ can win 2
 set win 1
 can mode meta
  
-GO bn_reset
+GO bn_reset bn_polygon
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_polygon
 GO bn_polygon
 ! Demo of new POLYGON command
 ! *jd * 3.99
@@ -25333,8 +25070,10 @@ polygon/trans/line=4/over/i=1:100/nolabel xpts+xsqr-.25, ypts+ysqr, x*x/10
  
 can mode meta
  
-GO bn_reset
+GO bn_reset bn500_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn500_bug_fixes
 GO bn500_bug_fixes
 ! bn500_bug_fixes.jnl
 ! test various fixes that went into version 5.00
@@ -25342,6 +25081,7 @@ GO bn500_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_RESHAPE_ctx.jnl
 ! err491_RESHAPE_ctx
  
@@ -25402,61 +25142,36 @@ let out_grid = x[g=gsrc] + y[g=gsrc] + z[gz=zmonth] + t[gt=tyear]
 let out = reshape(src,out_grid)
 list out
              VARIABLE : RESHAPE(SRC,OUT_GRID)
-             SUBSET   : 5 by 12 by 2 points (X-Z-T)
+             SUBSET   : 12 by 2 points (Z-T)
              Y        : 0.5 to 1.5
-                1        2        3        4        5     
-                1        2        3        4        5
- ---- L:1 T:   1951
- 1    /  1:  438289.  438290.  438291.  438292.  438293.
- 2    /  2:  439019.  439020.  439021.  439022.  439023.
- 3    /  3:  439750.  439751.  439752.  439753.  439754.
- 4    /  4:  440480.  440481.  440482.  440483.  440484.
- 5    /  5:  441211.  441212.  441213.  441214.  441215.
- 6    /  6:  441941.  441942.  441943.  441944.  441945.
- 7    /  7:  442672.  442673.  442674.  442675.  442676.
- 8    /  8:  443402.  443403.  443404.  443405.  443406.
- 9    /  9:  444132.  444133.  444134.  444135.  444136.
- 10   / 10:  444863.  444864.  444865.  444866.  444867.
- 11   / 11:  445593.  445594.  445595.  445596.  445597.
- 12   / 12:  446324.  446325.  446326.  446327.  446328.
- ---- L:2 T:   1952
- 1    /  1:  447054.  447055.  447056.  447057.  447058.
- 2    /  2:  447785.  447786.  447787.  447788.  447789.
- 3    /  3:  448515.  448516.  448517.  448518.  448519.
- 4    /  4:  449246.  449247.  449248.  449249.  449250.
- 5    /  5:  449976.  449977.  449978.  449979.  449980.
- 6    /  6:  450706.  450707.  450708.  450709.  450710.
- 7    /  7:  451437.  451438.  451439.  451440.  451441.
- 8    /  8:  452167.  452168.  452169.  452170.  452171.
- 9    /  9:  452898.  452899.  452900.  452901.  452902.
- 10   / 10:  453628.  453629.  453630.  453631.  453632.
- 11   / 11:  454359.  454360.  454361.  454362.  454363.
- 12   / 12:  455089.  455090.  455091.  455092.  455093.
+                 1        2        3        4        5        6        7        8        9       10       11       12     
+                 1        2        3        4        5        6        7        8        9       10       11       12
+ 1951   / 1:  438289.  438290.  438291.  438292.  438293.  439019.  439020.  439021.  439022.  439023.  439750.  439751.
+ 1952   / 2:  439752.  439753.  439754.  440480.  440481.  440482.  440483.  440484.  441211.  441212.  441213.  441214.
  
 ! NOW THE ERROR: L LIMITS PASSED INCORRECTLY(ERRONEOUSLY) TO SRC
 list/l=1 out
              VARIABLE : RESHAPE(SRC,OUT_GRID)
-             SUBSET   : 5 by 12 points (X-Z)
+             SUBSET   : 12 points (Z)
              Y        : 0.5 to 1.5
              T        : 1951
-                1        2        3        4        5     
-                1        2        3        4        5
- 1    /  1:  438289.  438290.  438291.  438292.  438293.
- 2    /  2:  439019.  439020.  439021.  439022.  439023.
- 3    /  3:  439750.  439751.  439752.  439753.  439754.
- 4    /  4:  440480.  440481.  440482.  440483.  440484.
- 5    /  5:  441211.  441212.  441213.  441214.  441215.
- 6    /  6:  441941.  441942.  441943.  441944.  441945.
- 7    /  7:  442672.  442673.  442674.  442675.  442676.
- 8    /  8:  443402.  443403.  443404.  443405.  443406.
- 9    /  9:  444132.  444133.  444134.  444135.  444136.
- 10   / 10:  444863.  444864.  444865.  444866.  444867.
- 11   / 11:  445593.  445594.  445595.  445596.  445597.
- 12   / 12:  446324.  446325.  446326.  446327.  446328.
+ 1    /  1:  438289.
+ 2    /  2:  438290.
+ 3    /  3:  438291.
+ 4    /  4:  438292.
+ 5    /  5:  438293.
+ 6    /  6:  439019.
+ 7    /  7:  439020.
+ 8    /  8:  439021.
+ 9    /  9:  439022.
+ 10   / 10:  439023.
+ 11   / 11:  439750.
+ 12   / 12:  439751.
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_delete_child_var.jnl
 ! err491_delete_child_var.jnl
 ! *sh* 4/99
@@ -25494,6 +25209,7 @@ list  ypolymark	! incorrect values: 10, 20, 30
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_dp_time_write.jnl
 ! err491_dp_time_write.jnl
 ! *sh* 10/98
@@ -25516,6 +25232,7 @@ sp ncdump out.cdf >> all_ncdump.out
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_gmax.jnl
 ! err491_gmax.jnl
 ! 9 Dec. 1998 *sh*
@@ -25532,6 +25249,7 @@ load ts[gt=t24 at max]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_grid_from_name.jnl
 ! err491_grid_from_name.jnl
 ! *sh* 3/99
@@ -25552,12 +25270,11 @@ show grid
  normal    Y
  Z10       Z                   10 r   1                    10                  full
  normal    T
- normal    E
- normal    F
 can mode ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_let_d.jnl
 ! err491_let_d.jnl
 ! *sh* 10/98
@@ -25588,6 +25305,7 @@ stat/i=1:3/j=1:3 a
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_sh_var_templates.jnl
 ! SHOW VARIABLE templates are not robust
  
@@ -25602,6 +25320,7 @@ sho var mld*dec		! works
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_single_char_replace.jnl
 ! err491_single_char_replace.jnl
  
@@ -25620,6 +25339,7 @@ hh
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_spawn_quotes.jnl
 ! err491_spawn_quotes.jnl
  
@@ -25627,10 +25347,11 @@ GO err491_spawn_quotes.jnl
  
 ! this should be a valid command
 SPAWN "date"
-Wed Jun 15 12:05:50 PDT 2016
+Mon Apr 17 16:46:15 PDT 2017
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_time_regridding.jnl
 ! err491_time_regridding.jnl
 ! from Jon 10/16/98
@@ -25666,6 +25387,7 @@ plot/over bad[t=@sbx:3]
 ! 3/01 *kob* uncomment the below - seems to run on all systems
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_unknown_function.jnl
 ! err491_unknown_function
 ! 3/99 *sh*
@@ -25683,6 +25405,7 @@ can mode ignore
 ! *kob* added 6/11/1999
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err500_IF_THEN_ELSE_quote.jnl
 ! err500_IF_THEN_ELSE_quote.jnl
  
@@ -25696,8 +25419,10 @@ I is too big
  
 ! ******** V510 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_sample
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_sample
 GO bn_sample			! internal (optimized) SAMPLE* functions
 ! bn_sample.jnl
 ! 10/99 *sh*
@@ -25754,45 +25479,41 @@ list SAMPLEI(sst[l=1:3,y=-2:2],{30,40,50})
  1N   / 46:  29.1373  28.9243  28.3264
  1S   / 45:  28.8965  28.8240  28.5357
 SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 12800
- 
-            number of free memory blocks: 1987
-            largest free region: 1984
-            number of free regions: 4
-            free memory table slots: 487
-            number of UN-CACHED variables: 0
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 39 words
+    Current cache: 63 words
+    Total table slots: 500
+    Free table slots: 487
+    Un-cached variables: 0
  
 ! these should break sampling up into separate reads
 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     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     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     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G006)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  7 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    (C09,V02 C: 11 dset:   1 I:   30   30  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading SST      M: 29 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 11 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 25 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 11 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 23 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 31 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE (C01,V02 M: 33 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 27 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ const_v {30,...} M:181 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing sampling tpry on I axis:        1        3 dset:   1
+ eval    (C09,V02 C: 11 dset:   1 I:     30     30  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading SST      M:174 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ eval    (C09,V02 C: 11 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:154 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ eval    (C09,V02 C: 11 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:151 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:175 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE (C01,V02 M:177 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:163 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:181 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST[L=1,Y=-2:2],{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 2 points (LATITUDE)
@@ -25802,32 +25523,32 @@ list/i=2 SAMPLEI(sst[l=1,y=-2:2],{30,40,50})	! only I=2 from result
                 2
  1N   / 46:  28.1992
  1S   / 45:  28.5607
- -DELETE (C01,V02 M: 34 dset:   1 I:    2    2  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE (C01,V02 M:181 dset:   1 I:      2      2  J:   45   46  K: -999 -999  L:      1      1
 cancel memory/all
- -DELETE (C09,V02 M: 21 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 23 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C09,V02 M: 24 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C09,V02 M: 28 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 29 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C01,V02 M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE (C09,V02 M:148 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:151 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE (C09,V02 M:152 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:154 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE (C09,V02 M:173 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:174 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ -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     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     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 (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G006)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 33 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 25 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 23 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 21 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE          M: 28 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M: 29 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 24 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 33 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ reading SST      M:154 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:151 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:148 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE          M:173 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE SST      M:174 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:152 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:177 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25837,30 +25558,30 @@ list/l=1/y=-2:2  SAMPLEI(sst,{30,40,50})
  1N   / 46:  28.2222  28.1992  28.4514
  1S   / 45:  28.1514  28.5607  28.8326
 cancel memory/all
- -DELETE SST      M: 21 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 23 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 29 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M:148 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:151 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ -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     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 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     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    A        C:  9 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 21 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  9 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 28 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  9 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 27 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 23 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 24 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ eval    A        C:  9 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:148 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ eval    A        C:  9 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:173 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ eval    A        C:  9 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:163 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:151 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE SST      M:154 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:152 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:174 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(A  ,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25872,32 +25593,32 @@ list/l=1/y=-2:2  SAMPLEI(a  ,{30,40,50})
  
 ! these should NOT break up the access into chunks
 cancel memory/all
- -DELETE SST      M: 21 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 25 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 27 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 28 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 31 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 33 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 34 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M:148 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE EX#1     M:154 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:163 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:173 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE A        M:175 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -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     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     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  7 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    (C09,V02 C: 11 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 31 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE A        M: 33 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 25 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ const_v {30,...} M:181 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing sampling tpry on I axis:        1        3 dset:   1
+ eval    (C09,V02 C: 11 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:173 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE A        M:175 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE A        M:177 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:154 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:181 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST[I=30:40],{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25907,29 +25628,29 @@ list/l=1/y=-2:2  SAMPLEI(sst[i=30:40],{30,40,50})
  1N   / 46:  28.2222  28.1992     ....
  1S   / 45:  28.1514  28.5607     ....
 let/quiet a = sst[i=30:40]
- -DELETE (C09,V02 M: 27 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE (C01,V02 M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -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 GSQ1            COADSX    COADSY    NORMAL    TIME4
 cancel memory/all
- -DELETE SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M:173 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
 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     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     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 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 28 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    A        C:  9 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE          M: 27 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE          M: 33 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 31 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 28 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ eval    A        C:  9 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:181 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE          M:163 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE          M:177 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:175 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:173 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(A,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25939,23 +25660,23 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  1N   / 46:  28.2222  28.1992     ....
  1S   / 45:  28.1514  28.5607     ....
 cancel memory/all
- -DELETE A        M: 25 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:154 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -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     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 (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30}     M: 34 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     1 dset:   1
- eval    A        C:  9 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 25 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 33 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 27 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30}     M: 34 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        1 dset:   1
+ eval    A        C:  9 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:173 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE A        M:154 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      1  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M:177 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:163 dset:   1 I:      1      1  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30}     M:181 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(A,{30})
              FILENAME : coads_climatology.cdf
              SUBSET   : 2 points (LATITUDE)
@@ -25966,28 +25687,28 @@ list/l=1/y=-2:2  SAMPLEI(a,{30})		! sample at just 1 point
  1N   / 46:  28.2222
  1S   / 45:  28.1514
 cancel memory/all
- -DELETE SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 31 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 33 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M:173 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -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     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 (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     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  7 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C11,V02 C:  9 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- constan cnst     M: 33 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 33 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     1 dset:   1
- eval    A        C: 11 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 28 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 33 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 25 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ eval    (C11,V02 C:  9 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ constan cnst     M:177 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:177 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ doing sampling tpry on I axis:        1        1 dset:   1
+ eval    A        C: 11 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:181 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:173 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      1  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:177 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:154 dset:   1 I:      1      1  J:   45   46  K: -999 -999  L:      1      1
              VARIABLE : SAMPLEI(A,30)
              FILENAME : coads_climatology.cdf
              SUBSET   : 2 points (LATITUDE)
@@ -25998,40 +25719,40 @@ list/l=1/y=-2:2  SAMPLEI(a,30)			! sample at just 1 point
  1N   / 46:  28.2222
  1S   / 45:  28.1514
 cancel memory/all
- -DELETE A        M: 27 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C11,V02 M: 31 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V02 M: 33 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:163 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE (C11,V02 M:175 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE (C01,V02 M:177 dset:   1 I:      1      1  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
 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     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G006)          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
- getgrid A        C:  8 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- 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     NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     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 A        C:  8 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    A        C:  9 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ eval    A        C:  9 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
  strip --> FSST[X=20E:20E(380)@IIN,D=1]
- eval    FSST     C: 12 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    FSST     C: 12 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
  strip --> SST[I=1:180 at FLN:1,D=1]
- strip moduloing SST on X axis:     0   181 dset:   1
- reading SST      M: 27 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing SST on X axis:     1   180 dset:   1
+ strip moduloing SST on X axis:        0      181 dset:   1
+ reading SST      M:163 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ doing moduloing SST on X axis:        1      180 dset:   1
  doing --> SST[I=1:180 at FLN:1,D=1]
  doing --> FSST[X=20E:20E(380)@IIN,D=1]
- -DELETE          M: 31 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE          M: 33 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 23 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE          M:175 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE          M:177 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:151 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:181 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(A,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -26041,38 +25762,36 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  1N   / 46:  182881720.  245818833.  306844239.
  1S   / 45:  183667676.  246892478.  309487473.
 cancel memory/all
- -DELETE FSST     M: 21 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 24 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:    0  181  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 27 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 28 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE FSST     M: 29 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE FSST     M:148 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE A        M:152 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:154 dset:   1 I:      0    181  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:163 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:173 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE FSST     M:174 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE EX#1     M:177 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
  
 ! 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     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 33 dset:   1 I:   30   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:177 dset:   1 I:     30     50  J:   45   45  K: -999 -999  L:      1      1
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 25 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 21 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 34 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 27 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M: 28 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 24 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ found   SST      M:177 dset:   1 I:     30     50  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE SST      M:163 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE SST      M:173 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:154 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:174 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -26084,33 +25803,30 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  2   / 2:  28.5607
  3   / 3:  28.8326
 cancel memory/all
- -DELETE SST      M: 21 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 28 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 33 dset:   1 I:   30   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 34 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 34 dset:   1 I:   30   39  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:177 dset:   1 I:     30     39  J:   45   45  K: -999 -999  L:      1      1
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 33 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 21 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 24 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 27 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 28 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 29 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 33 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ found   SST      M:177 dset:   1 I:     30     39  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:152 dset:   1 I:     40     40  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:148 dset:   1 I:     50     50  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE tpry     M:154 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M:174 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:163 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:173 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -26122,33 +25838,31 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  2   / 2:  28.5607
  3   / 3:  28.8326
 cancel memory/all
- -DELETE SST      M: 21 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 24 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 27 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 28 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 34 dset:   1 I:   30   39  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M:148 dset:   1 I:     50     50  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE SST      M:152 dset:   1 I:     40     40  J:   45   45  K: -999 -999  L:      1      1
+ -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     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 34 dset:   1 I:   30   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:177 dset:   1 I:     30     40  J:   45   45  K: -999 -999  L:      1      1
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 28 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 21 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 29 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 25 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 24 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M: 27 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 33 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 28 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ found   SST      M:177 dset:   1 I:     30     40  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:163 dset:   1 I:     50     50  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE SST      M:148 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE SST      M:152 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:173 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:174 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -26160,33 +25874,30 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  2   / 2:  28.5607
  3   / 3:  28.8326
 cancel memory/all
- -DELETE SST      M: 21 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 27 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 29 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 34 dset:   1 I:   30   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M:152 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
+ -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     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 34 dset:   1 I:   30   41  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:177 dset:   1 I:     30     41  J:   45   45  K: -999 -999  L:      1      1
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M: 21 dset:   1 I:   30   30  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 33 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 24 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 27 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 28 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 29 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ found   SST      M:177 dset:   1 I:     30     41  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:148 dset:   1 I:     50     50  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE EX#1     M:174 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M:152 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:173 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:163 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -26254,18 +25965,6 @@ Dynamic grids:
  (AX004)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-    GRID (G006)                          use count:   1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX004)   LATITUDE             5 r   1S                   1N
- normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX004)                         use count:   2
 cancel memory/all
 let/quiet a = sst[l=1,y=1s:1n:.5]
 list SAMPLEI(a,{30,40,50})
@@ -26288,18 +25987,6 @@ Dynamic grids:
  (AX012)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-    GRID (G017)                          use count:   1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX012)   LATITUDE             5 r   1S                   1N
- normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX012)                         use count:   2
  
 ! sampling a pseudo-variable
 list SAMPLEI(X[x=1:12],{3,4,7,15})
@@ -26456,29 +26143,29 @@ 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  (AX004)   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  (AX004)   NORMAL    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 (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     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {31-,48} M: 34 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     7 dset:   1
- eval    (C09,V02 C: 10 dset:   1 I:   31   35  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading SST      M: 29 dset:   1 I:   31   35  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 10 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 24 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 10 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 21 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE Y        M: 31 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
- -DELETE SST      M: 32 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 25 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {31-,48} M: 34 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G017)          NORMAL    (AX004)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ABSTRACT  (AX004)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          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
+ 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
+ doing sampling tpry on I axis:        1        7 dset:   1
+ eval    (C09,V02 C: 10 dset:   1 I:     31     35  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading SST      M:157 dset:   1 I:     31     35  J:   48   48  K: -999 -999  L:      1      1
+ eval    (C09,V02 C: 10 dset:   1 I:     37     37  J:   48   48  K: -999 -999  L:      1      1
+ reading SST      M:148 dset:   1 I:     37     37  J:   48   48  K: -999 -999  L:      1      1
+ eval    (C09,V02 C: 10 dset:   1 I:     44     48  J:   48   48  K: -999 -999  L:      1      1
+ reading SST      M:173 dset:   1 I:     44     48  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE (C01,V02 M:161 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:      7      7  M: -999 -999  N: -999 -999
+ -DELETE SST      M:174 dset:   1 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:150 dset:   1 I:      1      7  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE {31,...} M:175 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
              FILENAME : coads_climatology.cdf
              SUBSET   : 7 points (X)
@@ -26496,20 +26183,17 @@ list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
  
 ! test cache hits
 list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48}) !   <-- CACHE HIT FAILS!!!
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {31-,48} M: 34 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     7 dset:   1
- eval    (C09,V02 C: 10 dset:   1 I:   31   35  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading SST      M: 18 dset:   1 I:   31   35  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 10 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 33 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 10 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 16 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE Y        M: 31 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 25 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 28 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {31-,48} M: 34 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        7 dset:   1
+ found   (C09,V02 M:152 dset:   1 I:     31     35  J:   48   48  K: -999 -999  L:      1      1
+ found   (C09,V02 M:146 dset:   1 I:     37     37  J:   48   48  K: -999 -999  L:      1      1
+ found   (C09,V02 M:176 dset:   1 I:     44     48  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE (C01,V02 M:161 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:      7      7  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:150 dset:   1 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:154 dset:   1 I:      1      7  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE {31,...} M:175 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
              FILENAME : coads_climatology.cdf
              SUBSET   : 7 points (X)
@@ -26529,21 +26213,18 @@ let a = SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
 load a
 set mode diagnostic
 list a 			!   <-- CACHE HIT FAILS!!!
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V01 C:  8 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {31-,48} M: 19 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     7 dset:   1
- eval    (C09,V01 C: 12 dset:   1 I:   31   35  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading SST      M: 14 dset:   1 I:   31   35  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V01 C: 12 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 11 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V01 C: 12 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  9 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE Y        M: 31 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
- -DELETE          M: 27 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 12 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {31-,48} M: 19 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V01 C:  8 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ const_v {31,...} M:146 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing sampling tpry on I axis:        1        7 dset:   1
+ found   (C09,V01 M:152 dset:   1 I:     31     35  J:   48   48  K: -999 -999  L:      1      1
+ found   (C09,V01 M:175 dset:   1 I:     37     37  J:   48   48  K: -999 -999  L:      1      1
+ found   (C09,V01 M:154 dset:   1 I:     44     48  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE          M:161 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:      7      7  M: -999 -999  N: -999 -999
+ -DELETE          M:176 dset:   1 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:143 dset:   1 I:      1      7  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE {31,...} M:146 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
              FILENAME : coads_climatology.cdf
              SUBSET   : 7 points (X)
@@ -26561,16 +26242,12 @@ list a 			!   <-- CACHE HIT FAILS!!!
 set mode/last diagnostic
  
 SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 12800
- 
-            number of free memory blocks: 1978
-            largest free region: 1976
-            number of free regions: 3
-            free memory table slots: 478
-            number of UN-CACHED variables: 0
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 38 words
+    Current cache: 50 words
+    Total table slots: 500
+    Free table slots: 490
+    Un-cached variables: 0
  
 ! test SAMPLEJ
 let/quiet a = sst + Z[z=0:500:5]
@@ -26788,8 +26465,10 @@ list SAMPLEL(X[x=110:200:10],{3,4,7})	! normal axis
  3   / 3:........................................
  
  
-GO bn_reset
+GO bn_reset bn_strides_revs_perms
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_strides_revs_perms
 GO bn_strides_revs_perms	! netCDF fancy reads
 ! bn_strides_revs_perms.jnl
 ! *sh* 6/99
@@ -26895,8 +26574,6 @@ show grid xytvar
  YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
  TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
- normal    E
- normal    F
 list xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -26921,8 +26598,6 @@ show grid xytvar
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
- normal    E
- normal    F
 list xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -26947,8 +26622,6 @@ show grid xytvar
  YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
  XLON      T (degrees_east)    40mr   141                  180                 full
- normal    E
- normal    F
 list xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -26973,8 +26646,6 @@ show grid xytvar
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  YLAT      T (degrees_north)   30 r   1                    30                  full
- normal    E
- normal    F
 list xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -27000,8 +26671,6 @@ show grid xytvar
  XLON      Y (degrees_east)    40mr   141                  180                 full
  YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
- normal    E
- normal    F
 list/k=1:2 xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -27027,8 +26696,6 @@ show grid xytvar
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  YLAT      T (degrees_north)   30 r   1                    30                  full
- normal    E
- normal    F
 list xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -27054,8 +26721,6 @@ show grid xytvar
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  YLAT      T (degrees_north)   30 r   1                    30                  full
- normal    E
- normal    F
 show grid var
     GRID GPC1
  name       axis              # pts   start                end                 subset
@@ -27063,8 +26728,6 @@ show grid var
  XAX1_4    Y                    4 r   1                    4                   full
  YAX1_3    Z                    3 r   1                    3                   full
  ZAX1_2    T                    2 r   1                    2                   full
- normal    E
- normal    F
 canc data/all
  
 ! * * * * * STRIDES * * * * *
@@ -27075,28 +26738,28 @@ cancel memory/all
 SHOW DATA
      currently SET data sets:
     1> ./bn_strides.cdf  (default)
- name     title                             I         J         K         L         M         N
- VAR      L*1000 + K*100 + J*10 + I        1:4       1:3       1:2       1:1       ...       ...
- MIDVAR   VAR                              1:9       1:8       1:7       1:6       ...       ...
- BIGVAR   VAR                              1:40      1:30      1:20      1:10      ...       ...
+ name     title                             I         J         K         L
+ VAR      L*1000 + K*100 + J*10 + I        1:4       1:3       1:2       1:1
+ MIDVAR   VAR                              1:9       1:8       1:7       1:6
+ BIGVAR   VAR                              1:40      1:30      1:20      1:10
  UNEVENVAR
-          L*1000 + K*100 + J[GY=YUNEVEN]*  1:10      1:8       1:6       1:4       ...       ...
- XYTVAR   L*1000 + J*10 + I                1:40      1:30      ...       1:20      ...       ...
+          L*1000 + K*100 + J[GY=YUNEVEN]*  1:10      1:8       1:6       1:4
+ XYTVAR   L*1000 + J*10 + I                1:40      1:30      ...       1:20
  
  
 ! 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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    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 (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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 44 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 52 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27115,13 +26778,10 @@ 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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G018)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 52 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27141,23 +26801,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    NORMAL    NORMAL
- -DELETE VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 44 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  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 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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
+ 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
- rdstride VAR      C:  9 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 44 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : VAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
@@ -27173,14 +26832,8 @@ list a
  2   / 2:  1222.00  1224.00
  3   / 3:  1232.00  1234.00
 list a		! from cache ...
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G018)           @XACT
- rdstride VAR      C:  9 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 40 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 52 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
+ found   A        M:179 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
              VARIABLE : VAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
@@ -27198,29 +26851,27 @@ list a		! from cache ...
  
 ! cache hit from full region cache -- bypass use of strides
 cancel memory/all
- -DELETE VAR      M: 40 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 44 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 52 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -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    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 GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- reading VAR      M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
+ reading VAR      M:180 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
 LIST VAR[i=2:4:2]
- dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    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 (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 44 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27237,18 +26888,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    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 (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 44 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27263,26 +26914,26 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.00  1214.00
  3   / 2:  1232.00  1234.00
 CANC MEM/ALL
- -DELETE VAR      M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:170 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
+ -DELETE VAR      M:173 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
+ -DELETE VAR      M:180 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  
 ! 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    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 (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
+ 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
- strip moduloing VAR on X axis:     1    10 dset:   1
- reading VAR      M: 52 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing VAR on X axis:     1     4 dset:   1
- regrid  VAR      M: 40 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX030)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -27297,24 +26948,24 @@ LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
  7    / 3:  1113.00
  10   / 4:  1112.00
 cancel axis/modulo XAX1_4
- -DELETE VAR      M: 40 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 43 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 52 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:170 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
+ -DELETE VAR      M:173 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
+ -DELETE VAR      M:180 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  
 ! 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    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 (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 43 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 52 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27329,19 +26980,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    NORMAL    NORMAL
- -DELETE VAR      M: 43 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  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 (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 43 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX029)   (AX030)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27358,24 +27009,24 @@ 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    NORMAL    NORMAL
- -DELETE VAR      M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  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 GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
  
 ! averaging causes bypass of strides
 LIST VAR[i=2:4:2 at ave]
- dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    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 (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
+ 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
- reading VAR      M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- regrid  VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X at AVE
              FILENAME : bn_strides.cdf
@@ -27394,25 +27045,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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M: 43 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (AX029)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G018)          (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   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   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 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    3    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- rdstride BIGVAR   C: 10 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 40 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 43 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -27424,26 +27075,26 @@ list/j=1/k=1/l=1 a[i=3:5]
  11   / 3:  1121.00
  16   / 4:  1126.00
  21   / 5:  1131.00
- -DELETE A        M: 44 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -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   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 (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- eval    A        C:  8 dset:   1 I:    3    5  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- rdstride BIGVAR   C: 11 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 39 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 44 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- regrid  A        M: 38 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX030)   (AX031)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27460,13 +27111,13 @@ 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   NORMAL    NORMAL
- -DELETE A        M: 38 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  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 GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading UNE-NVAR M: 38 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
+ reading UNE-NVAR M:166 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
              FILENAME : bn_strides.cdf
              SUBSET   : 4 points (X)
@@ -27477,28 +27128,28 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR
              1        2        3        4
           1111.00  1112.00  1113.00  1114.00
 cancel mem/all
- -DELETE UNE-NVAR M: 38 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 39 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 40 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 43 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 44 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M:166 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
+ -DELETE BIGVAR   M:168 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
+ -DELETE BIGVAR   M:170 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
+ -DELETE A        M:173 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
+ -DELETE A        M:179 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
+ -DELETE VAR      M:180 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
  
 ! basic strides
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    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 (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 44 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27513,13 +27164,10 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
 ! cache hit after changes to COMPLETE_MISSING_LIMS and FLESH_OUT_AXIS
 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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27533,26 +27181,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 44 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX030)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    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 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C: 10 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 44 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : UNEVENVAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 points (X)
@@ -27564,14 +27211,8 @@ list/order=x/j=1/k=1/l=1 a
           1112.00  1114.00
 list/order=x/j=1/k=1/l=1 a		! from cache ...
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G018)           @XACT
- rdstride UNE-NVAR C: 10 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 40 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
+ found   A        M:179 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
              VARIABLE : UNEVENVAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 points (X)
@@ -27584,31 +27225,29 @@ list/order=x/j=1/k=1/l=1 a		! from cache ...
  
 ! cache hit from full region cache -- bypass use of strides
 cancel memory/all
- -DELETE UNE-NVAR M: 40 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 44 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 52 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -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    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 GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading UNE-NVAR M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
+ reading UNE-NVAR M:180 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
 LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    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 (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 44 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27621,19 +27260,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    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 (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 40 dset:   1 I:    1    2  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 44 dset:   1 I:    2    4  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
  doing limits reconciliation on Y axis: UNEVENVAR
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
@@ -27646,28 +27285,28 @@ LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:5:2]
                1
  0.3  / 1:  1112.00
  0.6  / 2:  1114.00
- -DELETE UNE-NVAR M: 44 dset:   1 I:    1    1  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M:179 dset:   1 I:      1      1  J:    1    2  K:    1    1  L:      1      1
 CANC MEM/ALL
- -DELETE UNE-NVAR M: 40 dset:   1 I:    1    2  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M:170 dset:   1 I:      1      2  J:    1    3  K:    1    1  L:      1      1
+ -DELETE UNE-NVAR M:173 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
+ -DELETE UNE-NVAR M:180 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
  
 ! 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    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 (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
+ 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
- strip moduloing UNEVENVAR on X axis:     1    29 dset:   1
- reading UNE-NVAR M: 52 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing UNEVENVAR on X axis:     1    10 dset:   1
- regrid  UNE-NVAR M: 40 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27679,25 +27318,25 @@ LIST/order=x UNEVENVAR[I=1:30:7,j=1,k=1,l=1]    ! 1, 8, 15(5), 22(2)
              1        2        3        4        5
           1111.00  1118.00  1115.00  1112.00  1119.00
 cancel axis/modulo XUNEVEN
- -DELETE UNE-NVAR M: 40 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 43 dset:   1 I:    1   29  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M:170 dset:   1 I:      1      5  J:    1    1  K:    1    1  L:      1      1
+ -DELETE UNE-NVAR M:173 dset:   1 I:      1     29  J:    1    1  K:    1    1  L:      1      1
+ -DELETE UNE-NVAR M:180 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
  
 ! 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    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 (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    2    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX029)   (AX031)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
              FILENAME : bn_strides.cdf
@@ -27709,20 +27348,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 43 dset:   1 I:    1    2  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  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 (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    6  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 52 dset:   1 I:    1    3  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 43 dset:   1 I:    2    6  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX030)   (AX032)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
              FILENAME : bn_strides.cdf
@@ -27737,19 +27376,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1    3  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  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 (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- reading UNE-NVAR M: 52 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- regrid  UNE-NVAR M: 43 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X at AVE
              FILENAME : bn_strides.cdf
@@ -27764,20 +27403,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 43 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  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 (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 40 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 43 dset:   1 I:    2    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX032)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27794,19 +27433,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 40 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  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 (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- reading UNE-NVAR M: 40 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- regrid  UNE-NVAR M: 43 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX030)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X at AVE
              FILENAME : bn_strides.cdf
@@ -27829,19 +27468,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 43 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  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 (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 44 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 43 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX032)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27858,19 +27497,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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 44 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  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 (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 43 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 44 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XAX1_40   (AX030)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27887,19 +27526,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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 43 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  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 (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 43 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX032)   (AX031)   (AX033)   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -27916,26 +27555,26 @@ 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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 44 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX029)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (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
  canceling dset ./bn_strides.cdf
- -DELETE UNE-NVAR M: 40 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -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
  
 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   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10   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 (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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 40 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 52 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27952,19 +27591,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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 40 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  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 (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 52 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 40 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          ZAX1_20   (AX029)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27981,19 +27620,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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 52 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  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 (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 52 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28010,23 +27649,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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10   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 (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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 52 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 40 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX031)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -28043,19 +27682,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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 52 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  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 (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 40 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 52 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          ZAX1_20   (AX032)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -28072,19 +27711,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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 40 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  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 (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 40 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28101,8 +27740,8 @@ 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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
  
 ! now with xytvar
@@ -28110,29 +27749,27 @@ cancel region
 set region/i=1:4/j=1:3/l=1:2
 use bn_strides
 show grid xytvar
- 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 GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ 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 GPC5            XLON      YLAT      NORMAL    TTIME
     GRID GPC5
  name       axis              # pts   start                end                 subset
  XLON      LONGITUDE           40mr   141E                 180E                full
  YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
  TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
- normal    E
- normal    F
 list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     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 (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ 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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
              FILENAME : bn_strides.cdf
@@ -28148,19 +27785,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     NORMAL    NORMAL
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          XLON      (AX029)   NORMAL    TTIME     NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28176,19 +27813,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     NORMAL    NORMAL
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          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)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -28204,35 +27841,33 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
  
 use/order=yx bn_strides
 show grid xytvar
- 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 GPC5            YLAT      XLON      NORMAL    TTIME     NORMAL    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 GPC5            YLAT      XLON      NORMAL    TTIME
     GRID GPC5
  name       axis              # pts   start                end                 subset
  YLAT      X (degrees_north)   30 r   1                    30                  full
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
- normal    E
- normal    F
 list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            YLAT      XLON      NORMAL    TTIME     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 (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ 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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
              FILENAME : bn_strides.cdf
@@ -28248,19 +27883,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     NORMAL    NORMAL
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          YLAT      (AX032)   NORMAL    TTIME     NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28276,19 +27911,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     NORMAL    NORMAL
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          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)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -28304,35 +27939,33 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
  
 use/order=tyx bn_strides
 show grid xytvar
- 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 GPC5            TTIME     YLAT      NORMAL    XLON      NORMAL    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 GPC5            TTIME     YLAT      NORMAL    XLON
     GRID GPC5
  name       axis              # pts   start                end                 subset
  TTIME     X (DAYS)            20 r   34319                34338               full
  YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
  XLON      T (degrees_east)    40mr   141                  180                 full
- normal    E
- normal    F
 list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            TTIME     YLAT      NORMAL    XLON      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 (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ 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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28348,19 +27981,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      NORMAL    NORMAL
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
- allocate dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          TTIME     (AX029)   NORMAL    XLON      NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28376,19 +28009,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      NORMAL    NORMAL
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          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)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   NORMAL    (AX032)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
              FILENAME : bn_strides.cdf
@@ -28404,35 +28037,33 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
  
 use/order=txy bn_strides
 show grid xytvar
- 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 GPC5            TTIME     XLON      NORMAL    YLAT      NORMAL    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 GPC5            TTIME     XLON      NORMAL    YLAT
     GRID GPC5
  name       axis              # pts   start                end                 subset
  TTIME     X (DAYS)            20 r   34319                34338               full
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  YLAT      T (degrees_north)   30 r   1                    30                  full
- normal    E
- normal    F
 list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            TTIME     XLON      NORMAL    YLAT      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 (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ 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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX031)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28448,19 +28079,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      NORMAL    NORMAL
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
- allocate dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          TTIME     (AX032)   NORMAL    YLAT      NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28476,19 +28107,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      NORMAL    NORMAL
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          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)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   NORMAL    (AX029)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
              FILENAME : bn_strides.cdf
@@ -28504,37 +28135,35 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
  
 ! map into Z instead of T
 use/order=zxy bn_strides
 show grid xytvar
- 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 GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    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 GPC5            TTIME     XLON      YLAT      NORMAL
     GRID GPC5
  name       axis              # pts   start                end                 subset
  TTIME     X (DAYS)            20 r   34319                34338               full
  XLON      Y (degrees_east)    40mr   141                  180                 full
  YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
- normal    E
- normal    F
 list/k=1:2 xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      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 (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ 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
- rdstride XYTVAR   C:  8 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28550,20 +28179,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    NORMAL    NORMAL
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  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 (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
+ 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
- rdstride XYTVAR   C:  8 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          TTIME     (AX029)   YLAT      NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28579,19 +28208,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    NORMAL    NORMAL
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  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 (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 52 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -28607,8 +28236,8 @@ 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    NORMAL    NORMAL
- -DELETE XYTVAR   M: 40 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
  
  
@@ -28631,17 +28260,17 @@ cancel region; set region/l=1
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    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 (G018)          (AX031)   (AX033)   (AX029)   TAX1_6
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6
+ allocate dynamic grid (G018)          (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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28656,26 +28285,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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6    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 (G018)          (AX033)   (AX031)   (AX032)   TAX1_6
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6
+ allocate dynamic grid (G018)          (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
- 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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M: 52 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   TAX1_6    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28690,26 +28319,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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    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 (G018)          (AX031)   (AX033)   (AX029)   TAX1_6
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6
+ allocate dynamic grid (G018)          (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
- 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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on X axis:     1     5 dset:   1
- -DELETE MIDVAR   M: 52 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   TAX1_6    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28724,24 +28353,24 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
  
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    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 (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7
+ allocate dynamic grid (G018)          (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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 52 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28756,27 +28385,27 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    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 (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7
+ allocate dynamic grid (G018)          (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
- 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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on X axis:     1     5 dset:   1
- -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 52 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28791,24 +28420,24 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 40 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
  
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    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 (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7
+ dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7
+ allocate dynamic grid (G018)          (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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX033)   (AX031)   (AX032)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28823,26 +28452,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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    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 (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7
+ dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7
+ allocate dynamic grid (G018)          (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
- 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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M: 52 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 40 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX031)   (AX033)   (AX029)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28857,12 +28486,14 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G018)          (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
  
-GO bn_reset
+GO bn_reset bn_non_COARDS_netCDF	
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_non_COARDS_netCDF
 GO bn_non_COARDS_netCDF		! non-standard netCDF files
 ! bn_non_COARDS_netCDF.jnl
 ! *sh* 3/99
@@ -28875,31 +28506,31 @@ use non_COARDS
 show data
      currently SET data sets:
     1> ./non_COARDS.cdf  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  UNORDERED_AXIS
-          disordered axis                  1:5       ...       ...       ...       ...       ...
+          disordered axis                  1:5       ...       ...       ...
        (invalid coordinate axis)
  GAPPY_AXIS
-          gappy axis                       1:5       ...       ...       ...       ...       ...
+          gappy axis                       1:5       ...       ...       ...
        (invalid coordinate axis)
  SCALAR_VAR
-          a good way to encode model parm  1:1       ...       ...       ...       ...       ...
+          a good way to encode model parm  1:1       ...       ...       ...
  TRUE_SCALAR
-          with no dims at all              ...       ...       ...       ...       ...       ...
+          with no dims at all              ...       ...       ...       ...
  MASKED_SST
-          SST * MP_MASK                    1:180     1:90      ...       1:1       ...       ...
- COADSX   Longitude page positions         1:180     1:90      ...       ...       ...       ...
- COADSY   Latitude page positions          1:180     1:90      ...       ...       ...       ...
+          SST * MP_MASK                    1:180     1:90      ...       1:1
+ COADSX   Longitude page positions         1:180     1:90      ...       ...
+ COADSY   Latitude page positions          1:180     1:90      ...       ...
  HAS_NO_AXIS
-          variable with no axis            1:5       ...       ...       ...       ...       ...
+          variable with no axis            1:5       ...       ...       ...
  HAS_UNORDERED_AXIS
-          variable with disordered axis    1:5       ...       ...       ...       ...       ...
+          variable with disordered axis    1:5       ...       ...       ...
  HAS_GAPPY_AXIS
-          variable with gappy axis         1:5       ...       ...       ...       ...       ...
+          variable with gappy axis         1:5       ...       ...       ...
  HAS_BACKWARDS_AXIS
-          variable with backwards axis     1:5       ...       ...       ...       ...       ...
+          variable with backwards axis     1:5       ...       ...       ...
  USES_BIG_IRREG
-          variable defined on too-long ir  ...       ...       ...       1:200000  ...       ...
+          variable defined on too-long ir  ...       ...       ...       1:200000
  
 show grid/x HAS_NO_AXIS
     GRID GAB7
@@ -28908,8 +28539,6 @@ show grid/x HAS_NO_AXIS
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -28924,8 +28553,6 @@ show grid/x HAS_UNORDERED_AXIS
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -28940,8 +28567,6 @@ show grid/x HAS_GAPPY_AXIS
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -28956,8 +28581,6 @@ show grid/x HAS_BACKWARDS_AXIS
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -28972,8 +28595,6 @@ show grid/x SCALAR_VAR
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -28985,8 +28606,6 @@ show grid/i=1:5 USES_BIG_IRREG
  normal    Y
  normal    Z
  BIG_IRREG T (hours)       200000 i   1                    200000              full
- normal    E
- normal    F
  
 show grid MASKED_SST
     GRID GAB5
@@ -28995,8 +28614,6 @@ show grid MASKED_SST
  COADSY1   LATITUDE            90 r   1N                   90N                 full
  normal    Z
  TIME4     TIME                 1mr   16-JAN 06:00         16-JAN 06:00        full
- normal    E
- normal    F
 show grid COADSX
     GRID GAB6
  name       axis              # pts   start                end                 subset
@@ -29004,8 +28621,6 @@ show grid COADSX
  COADSY1   LATITUDE            90 r   1N                   90N                 full
  normal    Z
  normal    T
- normal    E
- normal    F
 show grid COADSY
     GRID GAB6
  name       axis              # pts   start                end                 subset
@@ -29013,37 +28628,35 @@ show grid COADSY
  COADSY1   LATITUDE            90 r   1N                   90N                 full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 show data
      currently SET data sets:
     1> ./non_COARDS.cdf  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  UNORDERED_AXIS
-          disordered axis                  1:5       ...       ...       ...       ...       ...
+          disordered axis                  1:5       ...       ...       ...
        (invalid coordinate axis)
  GAPPY_AXIS
-          gappy axis                       1:5       ...       ...       ...       ...       ...
+          gappy axis                       1:5       ...       ...       ...
        (invalid coordinate axis)
  SCALAR_VAR
-          a good way to encode model parm  1:1       ...       ...       ...       ...       ...
+          a good way to encode model parm  1:1       ...       ...       ...
  TRUE_SCALAR
-          with no dims at all              ...       ...       ...       ...       ...       ...
+          with no dims at all              ...       ...       ...       ...
  MASKED_SST
-          SST * MP_MASK                    1:180     1:90      ...       1:1       ...       ...
- COADSX   Longitude page positions         1:180     1:90      ...       ...       ...       ...
- COADSY   Latitude page positions          1:180     1:90      ...       ...       ...       ...
+          SST * MP_MASK                    1:180     1:90      ...       1:1
+ COADSX   Longitude page positions         1:180     1:90      ...       ...
+ COADSY   Latitude page positions          1:180     1:90      ...       ...
  HAS_NO_AXIS
-          variable with no axis            1:5       ...       ...       ...       ...       ...
+          variable with no axis            1:5       ...       ...       ...
  HAS_UNORDERED_AXIS
-          variable with disordered axis    1:5       ...       ...       ...       ...       ...
+          variable with disordered axis    1:5       ...       ...       ...
  HAS_GAPPY_AXIS
-          variable with gappy axis         1:5       ...       ...       ...       ...       ...
+          variable with gappy axis         1:5       ...       ...       ...
  HAS_BACKWARDS_AXIS
-          variable with backwards axis     1:5       ...       ...       ...       ...       ...
+          variable with backwards axis     1:5       ...       ...       ...
  USES_BIG_IRREG
-          variable defined on too-long ir  ...       ...       ...       1:200000  ...       ...
+          variable defined on too-long ir  ...       ...       ...       1:200000
  
 list UNORDERED_AXIS
              VARIABLE : disordered axis
@@ -29090,8 +28703,10 @@ list HAS_BACKWARDS_AXIS
  
 ! list/i=1:5 BIG_IRREG
  
-GO bn_reset
+GO bn_reset bn_cache_hits
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cache_hits
 GO bn_cache_hits		! cache hits on unspecified (full) regions
 ! bn_cache_hits.jnl
  
@@ -29113,10 +28728,10 @@ GO bn_cache_hits.sub sst
  
 stat $1
  !-> stat sst
- getgrid EX#1     C:  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     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 52 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ reading SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              LONGITUDE: 20E to 20E(380)
@@ -29134,21 +28749,21 @@ stat $1
  Mean    value: 16.52 (unweighted average)
  Standard deviation: 10.139
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 44 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:179 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1
  !-> stat sst
- -DELETE I        M: 44 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 44 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              LONGITUDE: 20E to 20E(380)
@@ -29169,17 +28784,17 @@ stat $1
 define axis/x=130e:80w:1 xtrop
 stat $1[gx=xtrop]
  !-> stat sst[gx=xtrop]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
+ 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
- reading SST      M: 43 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 40 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -29198,28 +28813,28 @@ stat $1[gx=xtrop]
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 40 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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
+ dealloc  dynamic grid (G002)          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
- 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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 40 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:179 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[gx=xtrop]
  !-> stat sst[gx=xtrop]
- -DELETE I        M: 40 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -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
+ 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
- reading SST      M: 40 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 38 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -29242,21 +28857,21 @@ let $1x = $1[gx=xtrop]
  !-> DEFINE VARIABLE sstx = sst[gx=xtrop]
 stat $1x
  !-> stat sstx
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 38 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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 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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTX     C:  6 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
+ 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
- reading SST      M: 38 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 39 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  
              SST[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -29274,26 +28889,21 @@ stat $1x
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     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
+ dealloc  dynamic grid (G002)          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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 35 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:170 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1x
  !-> stat sstx
- -DELETE I        M: 35 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTX     C:  6 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST --> (G002)           @LIN
- reading SST      M: 35 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 34 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -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
+ 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
  
              SST[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -29312,24 +28922,22 @@ stat $1x
  Standard deviation: 9.8848
  
 define grid/x=xtrop gx
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTX     M: 33 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTX     M: 36 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 34 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 39 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G002)          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
+ -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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     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
+ 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
- reading SST      M: 39 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 34 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -29348,28 +28956,28 @@ stat $1[g=gx]
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 34 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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
+ dealloc  dynamic grid (G002)          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
- 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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 34 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:179 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[g=gx]
  !-> stat sst[g=gx]
- -DELETE I        M: 34 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -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
+ 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
- reading SST      M: 34 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 36 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -29391,19 +28999,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     NORMAL    NORMAL
- -DELETE SST      M: 36 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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 (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
+ 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
- reading SST      M: 36 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid XY
- regrid  SST      M: 33 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X, 1 deg on Y
@@ -29422,29 +29030,29 @@ 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     NORMAL    NORMAL
- -DELETE SST      M: 33 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  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
+ dealloc  dynamic grid (G002)          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
- 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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 33 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:179 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[gx=xtrop,gy=ytrop]
  !-> stat sst[gx=xtrop,gy=ytrop]
- -DELETE I        M: 33 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
+ -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
+ 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
- reading SST      M: 33 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid XY
- regrid  SST      M: 30 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X, 1 deg on Y
@@ -29465,19 +29073,19 @@ 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     NORMAL    NORMAL
- -DELETE SST      M: 30 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- 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     NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
 stat $1[g=gxyt]
  !-> stat sst[g=gxyt]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 30 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid XY
- regrid  SST      M: 29 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST      M:179 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              regrid: GXYT
@@ -29496,23 +29104,20 @@ stat $1[g=gxyt]
  Mean    value: 26.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 26 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:173 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[g=gxyt]
  !-> stat sst[g=gxyt]
- -DELETE I        M: 26 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 26 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST      M: 25 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M:173 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST      M:179 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              regrid: GXYT
@@ -29535,15 +29140,12 @@ let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sstxyt = sst[g=gxyt]
 stat $1xyt
  !-> stat sstxyt
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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 SSTXYT   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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXYT   C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 24 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST      M: 23 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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 SSTXYT   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:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ eval    SSTXYT   C:  6 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST      M:179 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29561,24 +29163,20 @@ stat $1xyt
  Mean    value: 26.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 21 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:170 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xyt
  !-> stat sstxyt
- -DELETE I        M: 21 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXYT   C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 21 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST      M: 20 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SSTXYT   M:173 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29598,20 +29196,16 @@ stat $1xyt
  
 let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sstxyt = sst[g=gxyt]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTXYT   M: 19 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTXYT   M: 22 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ -DELETE SSTXYT   M:173 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
 stat $1xyt
  !-> stat sstxyt
- getgrid 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 SSTXYT   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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXYT   C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 22 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST      M: 19 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  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 SSTXYT   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:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ eval    SSTXYT   C:  6 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST      M:179 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29629,24 +29223,20 @@ stat $1xyt
  Mean    value: 26.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 17 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:170 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xyt
  !-> stat sstxyt
- -DELETE I        M: 17 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXYT   C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST --> GXYT             @LIN
- reading SST      M: 17 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST      M: 16 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SSTXYT   M:173 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29666,13 +29256,14 @@ stat $1xyt
  
 stat $1[x=@ave]
  !-> stat sst[x=@ave]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  strip --> SST[X=20E:20E(380)@AVE,D=1]
- reading SST      M: 14 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  doing --> SST[X=20E:20E(380)@AVE,D=1]
+ final --> SST[X=20E:20E(380)@AVE,D=1]
  
              SEA SURFACE TEMPERATURE
              LONGITUDE: 20E to 20E(380) (averaged)
@@ -29690,23 +29281,21 @@ stat $1[x=@ave]
  Mean    value: 14.429 (unweighted average)
  Standard deviation: 10.445
 CONFUSE	
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 12 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:166 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[x=@ave]
  !-> stat sst[x=@ave]
- -DELETE I        M: 12 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST[X=20E:20E(380)@AVE,D=1]
- reading SST      M: 12 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing --> SST[X=20E:20E(380)@AVE,D=1]
+ -DELETE I        M:166 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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:170 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              LONGITUDE: 20E to 20E(380) (averaged)
@@ -29728,16 +29317,14 @@ let $1xave = $1[x=@ave]
  !-> DEFINE VARIABLE sstxave = sst[x=@ave]
 stat $1xave
  !-> stat sstxave
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 SSTXAVE  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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXAVE  C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST[X=20E:20E(380)@AVE,D=1]
- reading SST      M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing --> SST[X=20E:20E(380)@AVE,D=1]
+ 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
+ getgrid SSTXAVE  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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ eval    SSTXAVE  C:  6 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:170 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SST[X=@AVE]
              LONGITUDE: 20E to 20E(380)
@@ -29755,24 +29342,21 @@ stat $1xave
  Mean    value: 14.429 (unweighted average)
  Standard deviation: 10.445
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  5 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:168 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xave
  !-> stat sstxave
- -DELETE I        M:  5 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXAVE  C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST[X=20E:20E(380)@AVE,D=1]
- reading SST      M:  5 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing --> SST[X=20E:20E(380)@AVE,D=1]
+ -DELETE I        M:168 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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SSTXAVE  M:166 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SST[X=@AVE]
              LONGITUDE: 20E to 20E(380)
@@ -29792,14 +29376,14 @@ stat $1xave
  
 stat $1[x=@sbx]
  !-> stat sst[x=@sbx]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  strip --> SST[X=20E:20E(380)@SBX:3,D=1]
- strip moduloing SST on X axis:     0   181 dset:   1
- reading SST      M:  2 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing SST on X axis:     1   180 dset:   1
+ strip moduloing SST on X axis:        0      181 dset:   1
+ found   SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ doing moduloing SST on X axis:        1      180 dset:   1
  doing --> SST[X=20E:20E(380)@SBX:3,D=1]
  
              SEA SURFACE TEMPERATURE
@@ -29819,25 +29403,21 @@ stat $1[x=@sbx]
  Mean    value: 16.633 (unweighted average)
  Standard deviation: 10.112
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 46 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:153 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[x=@sbx]
  !-> stat sst[x=@sbx]
- -DELETE I        M: 46 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST[X=20E:20E(380)@SBX:3,D=1]
- strip moduloing SST on X axis:     0   181 dset:   1
- reading SST      M: 46 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing SST on X axis:     1   180 dset:   1
- doing --> SST[X=20E:20E(380)@SBX:3,D=1]
+ -DELETE I        M:153 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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:157 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              box smoothed by 3 pts on X
@@ -29860,18 +29440,14 @@ let $1sbx = $1[x=@sbx]
  !-> DEFINE VARIABLE sstsbx = sst[x=@sbx]
 stat $1sbx
  !-> stat sstsbx
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 SSTSBX   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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTSBX   C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST[X=20E:20E(380)@SBX:3,D=1]
- strip moduloing SST on X axis:     0   181 dset:   1
- reading SST      M: 27 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing SST on X axis:     1   180 dset:   1
- doing --> SST[X=20E:20E(380)@SBX:3,D=1]
+ 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
+ getgrid SSTSBX   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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ eval    SSTSBX   C:  6 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:157 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST[X=@SBX]
              LONGITUDE: 20E to 20E(380)
@@ -29889,26 +29465,21 @@ stat $1sbx
  Mean    value: 16.633 (unweighted average)
  Standard deviation: 10.112
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 55 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:152 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1sbx
  !-> stat sstsbx
- -DELETE I        M: 55 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTSBX   C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST[X=20E:20E(380)@SBX:3,D=1]
- strip moduloing SST on X axis:     0   181 dset:   1
- reading SST      M: 55 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing SST on X axis:     1   180 dset:   1
- doing --> SST[X=20E:20E(380)@SBX:3,D=1]
+ -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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SSTSBX   M:153 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST[X=@SBX]
              LONGITUDE: 20E to 20E(380)
@@ -29936,16 +29507,16 @@ GO bn_cache_hits.sub sst5
  
 stat $1
  !-> stat sst5
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 SST5     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5     C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 48 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 53 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 53 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ getgrid SST5     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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ eval    SST5     C:  6 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:168 dset:   1 I:      0    181  J:    1   90  K: -999 -999  L:      1      1
+ constan cnst     M:152 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:152 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  
              SST+5
              LONGITUDE: 20E to 20E(380)
@@ -29963,24 +29534,21 @@ stat $1
  Mean    value: 21.52 (unweighted average)
  Standard deviation: 10.139
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 53 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:152 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1
  !-> stat sst5
- -DELETE I        M: 53 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5     C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 53 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5     M:151 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST+5
              LONGITUDE: 20E to 20E(380)
@@ -30001,20 +29569,17 @@ stat $1
 define axis/x=130e:80w:1 xtrop
 stat $1[gx=xtrop]
  !-> stat sst5[gx=xtrop]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
+ 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
- eval    SST5     C:  7 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 50 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 42 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 42 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 42 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  
              SST+5
              regrid: 1 deg on X
@@ -30033,31 +29598,28 @@ stat $1[gx=xtrop]
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5     M: 42 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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
+ dealloc  dynamic grid (G002)          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
- 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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 42 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:152 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[gx=xtrop]
  !-> stat sst5[gx=xtrop]
- -DELETE I        M: 42 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -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
+ 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
- eval    SST5     C:  7 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 42 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 45 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 45 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 45 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  
              SST+5
              regrid: 1 deg on X
@@ -30080,24 +29642,21 @@ let $1x = $1[gx=xtrop]
  !-> DEFINE VARIABLE sst5x = sst5[gx=xtrop]
 stat $1x
  !-> stat sst5x
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5     M: 45 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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 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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5X    C:  6 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
+ 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
- eval    SST5     C:  9 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 45 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 58 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 58 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 58 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ 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
  
              SST5[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -30115,29 +29674,21 @@ stat $1x
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     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
+ dealloc  dynamic grid (G002)          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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 61 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:148 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1x
  !-> stat sst5x
- -DELETE I        M: 61 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5X    C:  6 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST5 --> (G002)           @LIN
- eval    SST5     C:  9 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 61 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 62 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -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
+ 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
  
              SST5[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -30158,20 +29709,15 @@ stat $1x
 define grid/x=xtrop gx
 stat $1[g=gx]
  !-> stat sst5[g=gx]
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST5 --> (G002)           @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 65 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 66 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
+ 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
+ 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
  
              SST+5
              regrid: 1 deg on X
@@ -30190,30 +29736,25 @@ stat $1[g=gx]
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     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
+ dealloc  dynamic grid (G002)          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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 68 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:148 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[g=gx]
  !-> stat sst5[g=gx]
- -DELETE I        M: 68 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST5 --> (G002)           @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 68 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 69 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 69 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 69 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -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
+ 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
+ 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
  
              SST+5
              regrid: 1 deg on X
@@ -30235,16 +29776,13 @@ 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     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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G002)          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
- eval    SST5     C:  7 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 71 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 72 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 72 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ found   SST5     M:151 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid XY
- regrid  SST5     M: 72 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST5     M:148 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST+5
              regrid: GXYT
@@ -30263,26 +29801,20 @@ stat $1[gx=xtrop,gy=ytrop]
  Mean    value: 31.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 74 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:146 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[gx=xtrop,gy=ytrop]
  !-> stat sst5[gx=xtrop,gy=ytrop]
- -DELETE I        M: 74 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 74 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 75 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 75 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST5     M: 75 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M:146 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5     M:148 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST+5
              regrid: GXYT
@@ -30303,21 +29835,15 @@ stat $1[gx=xtrop,gy=ytrop]
  
 define grid/like=$1/x=xtrop/y=ytrop gxyt
  !-> define grid/like=sst5/x=xtrop/y=ytrop gxyt
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- 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     NORMAL    NORMAL
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ 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
 stat $1[g=gxyt]
  !-> stat sst5[g=gxyt]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 77 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 78 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 78 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST5     M: 78 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5     M:148 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST+5
              regrid: GXYT
@@ -30336,26 +29862,20 @@ stat $1[g=gxyt]
  Mean    value: 31.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 80 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:146 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[g=gxyt]
  !-> stat sst5[g=gxyt]
- -DELETE I        M: 80 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 80 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 81 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 81 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST5     M: 81 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M:146 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5     M:148 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST+5
              regrid: GXYT
@@ -30378,18 +29898,12 @@ let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sst5xyt = sst5[g=gxyt]
 stat $1xyt
  !-> stat sst5xyt
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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 SST5XYT  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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XYT  C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  9 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 83 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 84 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 84 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST5     M: 84 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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 SST5XYT  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:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ eval    SST5XYT  C:  6 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5     M:148 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST5[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -30407,27 +29921,20 @@ stat $1xyt
  Mean    value: 31.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 87 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:143 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xyt
  !-> stat sst5xyt
- -DELETE I        M: 87 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XYT  C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  9 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 87 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 88 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 88 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST5     M: 88 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M:143 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5XYT  M:146 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST5[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -30447,62 +29954,36 @@ stat $1xyt
  
 let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sst5xyt = sst5[g=gxyt]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5XYT  M: 86 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5XYT  M: 90 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5X    M: 60 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5X    M: 64 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5     M: 58 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 62 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 66 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 69 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 31 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 41 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 51 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 57 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 59 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 63 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 67 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 70 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 72 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 73 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 75 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 76 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 78 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 79 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 81 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 82 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 84 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 85 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 88 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 89 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTSBX   M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTSBX   M: 56 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTXAVE  M:  3 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTXAVE  M:  7 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTXYT   M: 15 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTXYT   M: 18 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ -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
+ -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
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ -DELETE SSTSBX   M:153 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ -DELETE SSTXAVE  M:166 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ -DELETE SSTXYT   M:173 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
 stat $1xyt
  !-> stat sst5xyt
- getgrid 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 SST5XYT  C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid SST5     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XYT  C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  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 SST5XYT  C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid SST5     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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ eval    SST5XYT  C:  6 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  9 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 18 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 15 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 15 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    SST5     C:  9 dset:   1 I:     55    131  J:   35   56  K: -999 -999  L:      1      1
+ found   SST      M:168 dset:   1 I:      0    181  J:    1   90  K: -999 -999  L:      1      1
+ constan cnst     M:173 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:173 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  regrid XY
- regrid  SST5     M: 15 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST5     M:173 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST5[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -30520,27 +30001,20 @@ stat $1xyt
  Mean    value: 31.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 56 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:151 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xyt
  !-> stat sst5xyt
- -DELETE I        M: 56 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XYT  C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  9 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 56 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M:  1 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  1 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST5     M:  1 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M:151 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5XYT  M:153 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST5[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -30560,16 +30034,17 @@ stat $1xyt
  
 stat $1[x=@ave]
  !-> stat sst5[x=@ave]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  strip --> SST5[X=20E:20E(380)@AVE,D=1]
- eval    SST5     C:  7 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 85 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 84 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 84 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    SST5     C:  7 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:168 dset:   1 I:      0    181  J:    1   90  K: -999 -999  L:      1      1
+ constan cnst     M:151 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:151 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  doing --> SST5[X=20E:20E(380)@AVE,D=1]
+ final --> SST5[X=20E:20E(380)@AVE,D=1]
  
              SST+5
              LONGITUDE: 20E to 20E(380) (averaged)
@@ -30587,26 +30062,21 @@ stat $1[x=@ave]
  Mean    value: 19.429 (unweighted average)
  Standard deviation: 10.445
 CONFUSE	
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 81 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:152 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[x=@ave]
  !-> stat sst5[x=@ave]
- -DELETE I        M: 81 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST5[X=20E:20E(380)@AVE,D=1]
- eval    SST5     C:  7 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 81 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 79 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 79 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing --> SST5[X=20E:20E(380)@AVE,D=1]
+ -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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5     M:151 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SST+5
              LONGITUDE: 20E to 20E(380) (averaged)
@@ -30628,19 +30098,14 @@ let $1xave = $1[x=@ave]
  !-> DEFINE VARIABLE sst5xave = sst5[x=@ave]
 stat $1xave
  !-> stat sst5xave
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 SST5XAVE 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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XAVE C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST5[X=20E:20E(380)@AVE,D=1]
- eval    SST5     C:  9 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 76 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 75 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 75 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing --> SST5[X=20E:20E(380)@AVE,D=1]
+ 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
+ getgrid SST5XAVE 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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ eval    SST5XAVE C:  6 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5     M:151 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SST5[X=@AVE]
              LONGITUDE: 20E to 20E(380)
@@ -30658,27 +30123,21 @@ stat $1xave
  Mean    value: 19.429 (unweighted average)
  Standard deviation: 10.445
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 70 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:150 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xave
  !-> stat sst5xave
- -DELETE I        M: 70 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XAVE C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST5[X=20E:20E(380)@AVE,D=1]
- eval    SST5     C:  9 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 70 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 67 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 67 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing --> SST5[X=20E:20E(380)@AVE,D=1]
+ -DELETE I        M:150 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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5XAVE M:152 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SST5[X=@AVE]
              LONGITUDE: 20E to 20E(380)
@@ -30698,17 +30157,14 @@ stat $1xave
  
 stat $1[x=@sbx]
  !-> stat sst5[x=@sbx]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  strip --> SST5[X=20E:20E(380)@SBX:3,D=1]
- strip moduloing SST5 on X axis:     0   181 dset:   1
- eval    SST5     C:  9 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 57 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 51 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 51 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing SST5 on X axis:     1   180 dset:   1
+ strip moduloing SST5 on X axis:        0      181 dset:   1
+ found   SST5     M:148 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ doing moduloing SST5 on X axis:        1      180 dset:   1
  doing --> SST5[X=20E:20E(380)@SBX:3,D=1]
  
              SST+5
@@ -30728,28 +30184,21 @@ stat $1[x=@sbx]
  Mean    value: 21.633 (unweighted average)
  Standard deviation: 10.112
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 69 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:143 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[x=@sbx]
  !-> stat sst5[x=@sbx]
- -DELETE I        M: 69 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST5[X=20E:20E(380)@SBX:3,D=1]
- strip moduloing SST5 on X axis:     0   181 dset:   1
- eval    SST5     C:  9 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 69 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing SST5 on X axis:     1   180 dset:   1
- doing --> SST5[X=20E:20E(380)@SBX:3,D=1]
+ -DELETE I        M:143 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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5     M:146 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST+5
              box smoothed by 3 pts on X
@@ -30772,21 +30221,14 @@ let $1sbx = $1[x=@sbx]
  !-> DEFINE VARIABLE sst5sbx = sst5[x=@sbx]
 stat $1sbx
  !-> stat sst5sbx
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 SST5SBX  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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5SBX  C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST5[X=20E:20E(380)@SBX:3,D=1]
- strip moduloing SST5 on X axis:     0   181 dset:   1
- eval    SST5     C: 11 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 64 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 60 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 60 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing SST5 on X axis:     1   180 dset:   1
- doing --> SST5[X=20E:20E(380)@SBX:3,D=1]
+ 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
+ getgrid SST5SBX  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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ eval    SST5SBX  C:  6 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5     M:146 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST5[X=@SBX]
              LONGITUDE: 20E to 20E(380)
@@ -30804,29 +30246,21 @@ stat $1sbx
  Mean    value: 21.633 (unweighted average)
  Standard deviation: 10.112
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 92 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:142 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1sbx
  !-> stat sst5sbx
- -DELETE I        M: 92 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5SBX  C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- strip --> SST5[X=20E:20E(380)@SBX:3,D=1]
- strip moduloing SST5 on X axis:     0   181 dset:   1
- eval    SST5     C: 11 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 92 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 93 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 93 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing SST5 on X axis:     1   180 dset:   1
- doing --> SST5[X=20E:20E(380)@SBX:3,D=1]
+ -DELETE I        M:142 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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5SBX  M:143 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST5[X=@SBX]
              LONGITUDE: 20E to 20E(380)
@@ -30857,25 +30291,24 @@ set mode diag
  
 let a = i[i=1:10]
 say `a,return=isize`     ! no evaluation of a required -- just context
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ 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
+ getgrid A        C:  7 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 A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 97 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pass #2 A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  I        M:142 dset:   0 I:      1     10  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 10
 10
 list/nohead a            ! evaluate it now
- -DELETE I        M: 97 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 97 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M:142 dset:   0 I:      1     10  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
+ found   A        M:177 dset:   0 I:      1     10  J: -999 -999  K: -999 -999  L:   -999   -999
  1    /  1:   1.0000
  2    /  2:   2.0000
  3    /  3:   3.0000
@@ -30888,70 +30321,46 @@ list/nohead a            ! evaluate it now
  10   / 10:  10.0000
  
 let a = XSEQUENCE(j[j=1:5])
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 98 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M: 99 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE I        M: 97 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE SST5SBX  M: 91 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5SBX  M: 96 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5XAVE M: 59 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5XAVE M: 72 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5XYT  M:  3 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5XYT  M: 88 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5     M:  1 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M:  7 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 15 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 31 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 41 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 51 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 58 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 60 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 62 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 63 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 66 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 67 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 73 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 75 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 78 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 79 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 82 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 84 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 86 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 89 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 90 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 93 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 94 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 95 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE A        M:177 dset:   0 I:      1     10  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE SST5SBX  M:143 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ -DELETE SST5XAVE M:152 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ -DELETE SST5XYT  M:153 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ -DELETE SST5     M:146 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ -DELETE SST5     M:148 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ -DELETE SST5     M:150 dset:   1 I:      0    181  J:    1   90  K: -999 -999  L:      1      1
+ -DELETE SST5     M:151 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
+ -DELETE SST5     M:166 dset:   1 I:     55    131  J:   35   56  K: -999 -999  L:      1      1
+ -DELETE SST5     M:173 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
 say `a,return=isize`     ! evaluate it now
- getgrid 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
- getgrid (C01,V11 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C11,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  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 A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C01,V11 C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C11,V11 C: 11 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 (C11,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C11,V11 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M: 95 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pass #2 (C11,V11 C: 11 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V11 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C11,V11 C: 10 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  J        M:173 dset:   0 I:   -999   -999  J:    1    5  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 5
 5
 list/nohead a            ! cache hit
- -DELETE J        M: 95 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C11,V11 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M: 95 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE J        M:173 dset:   0 I:   -999   -999  J:    1    5  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V11 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ found   (C11,V11 M:166 dset:   0 I:   -999   -999  J:    1    5  K: -999 -999  L:   -999   -999
  1   / 1:  1.00000
  2   / 2:  2.00000
  3   / 3:  3.00000
@@ -30959,54 +30368,51 @@ list/nohead a            ! cache hit
  5   / 5:  5.00000
  
 let a = SAMPLEI(I[i=1:100], {8,5,3})
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C11,V11 M: 89 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C11,V11 M: 94 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid YABSTRACT       NORMAL    ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE J        M: 95 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 86 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 93 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 84 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M: 90 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE (C11,V11 M:166 dset:   0 I:   -999   -999  J:    1    5  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid YABSTRACT       NORMAL    ABSTRACT  NORMAL    NORMAL
+ -DELETE (C01,V11 M:151 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE (C01,V11 M:173 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE A        M:148 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE A        M:150 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
 say `a,return=isize`     ! evaluate it now
- getgrid 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
- getgrid (C01,V11 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- 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
+ getgrid 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
+ getgrid (C01,V11 C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {8,5,3}  M: 90 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   0
- eval    (C09,V11 C: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 86 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 93 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE A        M: 84 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 94 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE {8,5,3}  M: 90 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ 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
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V11 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ const_v {8,5,3}  M:150 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing sampling tpry on I axis:        1        3 dset:   0
+ eval    (C09,V11 C: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  I        M:151 dset:   0 I:      1    100  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE (C01,V11 M:173 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE A        M:148 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:146 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE {8,5,3}  M:150 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 3
 3
 list/nohead a            ! cache hit
- -DELETE I        M: 86 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {8,5,3}  M: 86 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   0
- eval    (C09,V11 C: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 89 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 93 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 94 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 79 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE {8,5,3}  M: 86 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M:151 dset:   0 I:      1    100  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V11 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ const_v {8,5,3}  M:151 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing sampling tpry on I axis:        1        3 dset:   0
+ found   (C09,V11 M:166 dset:   0 I:      1    100  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE (C01,V11 M:173 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:146 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:153 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE {8,5,3}  M:151 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  1   / 1:  8.00000
  2   / 2:  5.00000
  3   / 3:  3.00000
@@ -31014,88 +30420,74 @@ list/nohead a            ! cache hit
 spawn rm -f foo.bar*
 spawn touch foo.bar1 foo.bar2 foo.bar3
 let a = SPAWN("ls foo.bar*")
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C09,V11 M: 82 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C09,V11 M: 95 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C01,V11 M: 84 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 94 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 86 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M: 90 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE I        M: 89 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE (C09,V11 M:166 dset:   0 I:      1    100  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE (C01,V11 M:146 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE (C01,V11 M:148 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE A        M:150 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE A        M:151 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
 say `a,return=isize`     ! evaluate it now
- getgrid 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
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- string str      M: 89 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  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 A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ string str      M:151 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 3
 3
 list/nohead a            ! cache hit
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- string str      M: 86 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:150 dset:   0 I:      1      3  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
+ found   A        M:148 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  1   / 1:"foo.bar1"
  2   / 2:"foo.bar2"
  3   / 3:"foo.bar3"
  
 ! RESHAPE, alone, is set to require matched limits in order to make a cache hit
 let a = RESHAPE(I[I=1:3]+10*j[j=1:3], I[i=1:9])
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 90 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M: 94 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE A        M:148 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
 say `a,return=isize`
- getgrid 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
- getgrid (C01,V11 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C31,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  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 A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C01,V11 C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C31,V11 C: 11 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 (C31,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- 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
+ pass #2 (C31,V11 C: 11 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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    NORMAL    NORMAL
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C09,V11 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 94 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- constan cnst     M: 90 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M: 84 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE J        M: 84 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 90 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 95 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE I        M: 94 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C31,V11 C: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 94 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ 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
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V11 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C09,V11 C: 10 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  I        M:148 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ constan cnst     M:150 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  J        M:146 dset:   0 I:   -999   -999  J:    1    3  K: -999 -999  L:   -999   -999
+ -DELETE J        M:146 dset:   0 I:   -999   -999  J:    1    3  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:150 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE tpry     M:166 dset:   0 I:   -999   -999  J:    1    3  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE I        M:148 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C31,V11 C: 11 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  I        M:148 dset:   0 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 9
 9
 list/nohead a            ! no cache hit
- -DELETE I        M: 94 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C09,V11 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 94 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- constan cnst     M: 79 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M: 93 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE J        M: 93 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 79 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 78 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE I        M: 94 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C31,V11 C: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 94 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M:148 dset:   0 I:      1      9  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
+ found   A        M:153 dset:   0 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
  1   / 1:  11.0000
  2   / 2:  12.0000
  3   / 3:  13.0000
@@ -31111,91 +30503,26 @@ set mode/last diag
 ! v5.4 *kob* 10/01 - need to add exit/script - new exit command qualifiers
 EXIT/SCRIPT
  
-GO bn_reset
-cancel mode verify
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C31,V11 M: 78 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C31,V11 M: 95 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C09,V11 M: 79 dset:   0 I:    1    3  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C09,V11 M: 90 dset:   0 I:    1    3  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          ABSTRACT  ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C01,V11 M: 84 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 93 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 75 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M: 82 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE I        M: 94 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+GO bn_reset bn_regrid_to_user
+cancel mode verify
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -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
+ -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
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
  canceling dset ./coads_climatology.cdf
- -DELETE SST      M:  2 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  4 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  5 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  8 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  9 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 11 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 12 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 13 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 14 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 16 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 17 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 18 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 19 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 20 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 21 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 22 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 23 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 24 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 27 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 28 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 29 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 30 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 32 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 33 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 34 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 35 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 36 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 37 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 38 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 39 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 40 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 42 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 43 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 44 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 45 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 46 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 47 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 48 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 49 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 50 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 52 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 53 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 54 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 55 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 56 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 57 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 61 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 64 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 65 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 68 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 69 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 70 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 71 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 74 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 76 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 77 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 80 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 81 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 83 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 85 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 87 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 92 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE str      M: 86 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE str      M: 89 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE SST      M:157 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ -DELETE SST      M:168 dset:   1 I:      0    181  J:    1   90  K: -999 -999  L:      1      1
+ -DELETE SST      M:170 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
+ -DELETE SST      M:179 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ -DELETE SST      M:180 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ -DELETE str      M:151 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regrid_to_user
 GO bn_regrid_to_user		! G=user_var and related
 ! bn_regrid_to_user
 ! 8/99 *sh*
@@ -31243,8 +30570,6 @@ show grid
  COADSY    LATITUDE            90 r   89S                  89N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! per axis regrid
 ! 5/01 note: changed from y=0 yo y=5s to accomodate Y-truncated
@@ -31274,8 +30599,6 @@ show grid
  YAX       LATITUDE            81 r   20S                  20N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! combined full grid and per-axis
 list/x=160e/y=5s temp[d=2,k=1,g=gg,gx=a[d=1]]
@@ -31303,8 +30626,6 @@ show grid
  YAX       LATITUDE            81 r   20S                  20N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! pseudo-variable access
 list/i=1:4 i[g=a]		! a is previously loaded
@@ -31344,8 +30665,6 @@ show grid gg1
  COADSY    LATITUDE            90 r   89S                  89N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
 let f = sst[y=20s:20n:.1,d=coads_climatology]
 DEFINE GRID/LIKE=f/x=temp[d=levitus_climatology] gg2
 cancel variable f
@@ -31356,8 +30675,6 @@ show grid gg2
  (AX009)   LATITUDE           401 r   20S                  20N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     no implicit grids
@@ -31379,8 +30696,6 @@ show grid gg2
  YAXLEVITR1_90 LATITUDE        90 r   89.5S                0.5S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     no implicit grids
@@ -31399,8 +30714,6 @@ show grid
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! The SET GRID (default) definition should be protected -- not altered
 load/d=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
@@ -31410,11 +30723,9 @@ show grid
     GRID (G012)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX018)   LATITUDE           201 r   10S                  10N                 200 pts
+ (AX018)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     GRID (G012)                          use count:   1
@@ -31423,20 +30734,6 @@ Dynamic grids:
  (AX018)   LATITUDE           201 r   10S                  10N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-    GRID (G006)                          use count:   1
- name       axis              # pts   start                end
- (AX026)   LONGITUDE          301 r   0E                   30E
- COADSY    LATITUDE            90 r   89S                  89N
- normal    Z
- TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX018)                         use count:   1
-    AXIS (AX026)                         use count:   1
-    AXIS (AX009)                         use count:   1
  
 ! deliberate errors
 set mode ignore
@@ -31554,63 +30851,49 @@ SHOW GRID temp[d=2,gx=sst[d=1],y=10s:2s:.2]             ! implicit Y axis
     GRID (G018)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX025)   LATITUDE            41 r   10S                  2S                  40 pts
+ (AX025)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
 SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5"
     GRID (G018)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX018)   LATITUDE            41 r   10S                  2S                  40 pts
+ (AX018)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
 SHOW GRID FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) ! imposed T axis
     GRID (G011)
  name       axis              # pts   start                end                 subset
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
- (AX025)   LATITUDE            41 r   10S                  2S                  40 pts
+ (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)
- normal    E
- normal    F
 SHOW GRID SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])      ! abstract X axis
     GRID (G018)
  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                  40 pts
+ (AX025)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
 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)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX012)   LATITUDE            41 r   10S                  2S                  40 pts
+ (AX012)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
     GRID (G011)
  name       axis              # pts   start                end                 subset
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
- (AX025)   LATITUDE            41 r   10S                  2S                  40 pts
+ (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)
- normal    E
- normal    F
     GRID (G018)
  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                  40 pts
+ (AX025)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
  
 load/x=160e/y=5s temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5
 SHOW GRID
@@ -31619,11 +30902,9 @@ SHOW GRID
     GRID (G018)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX018)   LATITUDE            41 r   10S                  2S                  40 pts
+ (AX018)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
 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)
@@ -31634,8 +30915,6 @@ SHOW GRID
  (AX025)   LATITUDE            41 r   10S                  2S                  full
  normal    Z
  (AX012)   T (CYC/hour)         2 r   0.00034224           0.00068448          full
- normal    E
- normal    F
 list/j=1:5 j
              VARIABLE : J
                         axis (AX025)
@@ -31653,8 +30932,6 @@ SHOW GRID MYGRID
  (AX025)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
- normal    E
- normal    F
 SHOW GRID/DYNAMIC
 Dynamic grids:
     GRID (G011)                          use count:   1
@@ -31663,18 +30940,14 @@ Dynamic grids:
  (AX025)   LATITUDE            41 r   10S                  2S
  normal    Z
  (AX012)   T (CYC/hour)         2 r   0.00034224           0.00068448
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX012)                         use count:   1
-    AXIS (AX025)                         use count:   2
-    AXIS (AX009)                         use count:   1
  
  
 ! ******** V53 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_calendar
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_calendar
 GO bn_calendar
 ! bn_calendar.jnl
 ! Version 5.3
@@ -31816,8 +31089,8 @@ use calsst
 sh data
      currently SET data sets:
     1> ./calsst.cdf  (default)
- name     title                             I         J         K         L         M         N
- NDATA    TEMP[GT=TGRID]                   1:10      1:13      1:1       1:21      ...       ...
+ name     title                             I         J         K         L
+ NDATA    TEMP[GT=TGRID]                   1:10      1:13      1:1       1:21
  
 sh grid ndata
     GRID GSH1
@@ -31826,8 +31099,6 @@ sh grid ndata
  PSYT39_51 LATITUDE            13 i   2.167S               1.833N              full
  PSZT1_1   DEPTH (m)            1 r-  5                    5                   full
  TWEEKS1   TIME                21 r   20-AUG-1982 00:00    07-JAN-1983 00:00   full
- normal    E
- normal    F
 sh axis tweeks
  name       axis              # pts   start                end
  TWEEKS    TIME                21 r   20-AUG-1982 00:00    07-JAN-1983 00:00
@@ -31896,7 +31167,7 @@ list/t="5-dec-1982":"8-dec-1982" ndata
              DEPTH (m): 5
                          132.5W  
                           98
- 05-DEC-1982 00 / 108:     ....
+ 05-DEC-1982 00 / 108:  32.9283
  06-DEC-1982 00 / 109:  32.9340
  07-DEC-1982 00 / 110:  32.9401
  08-DEC-1982 00 / 111:  32.9462
@@ -31959,8 +31230,10 @@ 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).
  
-GO bn_reset
+GO bn_reset bn_dash_dot
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dash_dot
 GO bn_dash_dot
 ! new PLOT/DASH and PLOT/SYMBOL=DOT  qualifiers
 ! *acm* 5/01
@@ -31982,8 +31255,10 @@ 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) )
  
-GO bn_reset
+GO bn_reset bn_flowlines
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_flowlines
 GO bn_flowlines
 ! bn_flowlines.jnl
 ! VECTOR/FLOW
@@ -32004,6 +31279,7 @@ vector/flow/over/len=10  u,v
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 set mode meta flowlines.plt
 can mode logo
  
@@ -32016,6 +31292,7 @@ can mode meta
 ! curvilinear flowline plots
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 use coads_climatology
 go mp_sinusoidal
@@ -32033,8 +31310,10 @@ set mode logo
  
 ! ******** V533 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_logaxes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_logaxes
 GO bn_logaxes
 !  Test the qualifiers /HLOG and /VLOG for setting
 !  log axes.  On a depth axis, inverse log plot.
@@ -32080,8 +31359,10 @@ plot/hlog fcn
  
 ! *kob* same tests for internal external functions but moved out of
 !       the bn_external_function jnl file.
-GO bn_reset
+GO bn_reset bn_internal_external_functions
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_internal_external_functions
 GO bn_internal_external_functions
 ! test internal external functions.  These moved from bn_external_functions
 !  6/01 because on systems w/out external functions support, the internal
@@ -32098,6 +31379,7 @@ GO bn_internal_external_functions
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_fft
 ! Benchmark Ferret script for FFT.  Uses analytic function of time.
  
@@ -32131,8 +31413,6 @@ SH GRID tgrid
  normal    Y
  normal    Z
  DAYT      TIME               365 r   01-JAN-1990 00:00    31-DEC-1990 00:00
- normal    E
- normal    F
 SET GRID tgrid
  
 LET fcn1 = sin(kt*tpts - phase) /2.
@@ -32238,6 +31518,7 @@ CANCEL MODE IGNORE_ERRORS
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_gridding
 ! bench_gridding.jnl
 ! *acm* 8/99
@@ -32435,6 +31716,7 @@ can axis x10
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_scat2grid_test
 ! bn_scat2grid_test.jnl
 ! From JonCallahan's insitu_gaussian_*.jnl
@@ -32505,8 +31787,6 @@ show grid xy_laplace_gridded
  Y_20      LATITUDE            20 r   10N                  20N                 full
  normal    Z
  normal    T
- normal    E
- normal    F
 ! when the result grid axes were extended, the axis coordinates in the following were messed up
 list xy_laplace_gridded
              VARIABLE : SCAT2GRIDLAPLACE_XY(XAX,YAX,O2_UMOL_KG,X[GX=X_20],Y[GY=Y_20],2,2)
@@ -32584,6 +31864,7 @@ can axis x_20
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_scat2grid_gl
 ! bn_scat2grid_gl.jnl
 ! test the scat2gridgauss and scat2gridlaplace functions,
@@ -33111,6 +32392,7 @@ can axis x_15
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_scat2gridlaplace_tarasoff
 ! bn_scat2gridlaplace_tarasoff
 ! check for error reported by Lev Tarasoff 5/10/2006
@@ -33136,8 +32418,6 @@ show grid wgtl
  YLATEF    LATITUDE            73 r   47.25N               83.25N              full
  normal    Z
  normal    T
- normal    E
- normal    F
 load wgtl
 ! shade wgtl ! Result is shifted in X:
 ! data shows up at 70e that should be at 35e
@@ -33214,6 +32494,7 @@ cancel axis ylatef
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_scat2grid_nobs
 ! bn_scat2grid_nobs.jnl
 ! test of scat2grid_nobs functions,
@@ -33517,6 +32798,7 @@ can axis x_15
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_scat2grid_t
 ! bn_scat2grid_t.jnl
 ! test the ave_scat2grid_t and scat2grid_t functions,
@@ -33596,6 +32878,7 @@ can axis t_32
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_transpose
 ! bn_tranpose.jnl
 ! test the transpose functions,
@@ -33956,6 +33239,979 @@ list transpose_zt(myvar)
  2   / 3:  110.000  111.000  112.000  113.000  114.000
  3   / 4:  115.000  116.000  117.000  118.000  119.000
  
+def axis /X=0.0:4.0:1.0/units=degrees_east xaxs
+def axis /Y=0.0:3.0:1.0/units=degrees_north yaxs
+def axis /Z=0.0:1.4:0.2/units=m/depth zaxs
+def axis /T=0.0:6.0:1.0/units=days/t0=1-jan-2001 taxs
+def axis /E=0.0:10.0:5 eaxs
+def axis /F=0.0:100.0:20 faxs
+def grid /X=xaxs /Y=yaxs /Z=zaxs /T=taxs /E=eaxs /F=faxs mygrd
+ 
+set grid mygrd
+let myvar = X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+ 
+ 
+! * * * * Simple XYZTEF examples * * *
+ 
+list/x=1/y=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 3 by 6 points (E-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : JAN-2001
+                0        5       10     
+                1        2        3
+ 0     / 1:  86.0000  91.0000  96.0000
+ 20    / 2:  66.0000  71.0000  76.0000
+ 40    / 3:  46.0000  51.0000  56.0000
+ 60    / 4:  26.0000  31.0000  36.0000
+ 80    / 5:   6.0000  11.0000  16.0000
+ 100   / 6: -14.0000  -9.0000  -4.0000
+list/x=1/y=1/z=1/t=1 transpose_ef(myvar)
+             VARIABLE : TRANSPOSE_EF(MYVAR)
+             SUBSET   : 6 by 3 points (E-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : JAN-2001
+              1        2        3        4        5        6     
+              1        2        3        4        5        6
+ 1   / 1:  86.0000  66.0000  46.0000  26.0000   6.0000 -14.0000
+ 2   / 2:  91.0000  71.0000  51.0000  31.0000  11.0000  -9.0000
+ 3   / 3:  96.0000  76.0000  56.0000  36.0000  16.0000  -4.0000
+ 
+list/e=5/y=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 6 points (LONGITUDE-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             E        : 5
+               0E       1E       2E       3E       4E     
+                1        2        3        4        5
+ 0     / 1:  90.0000  91.0000  92.0000  93.0000  94.0000
+ 20    / 2:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 40    / 3:  50.0000  51.0000  52.0000  53.0000  54.0000
+ 60    / 4:  30.0000  31.0000  32.0000  33.0000  34.0000
+ 80    / 5:  10.0000  11.0000  12.0000  13.0000  14.0000
+ 100   / 6: -10.0000  -9.0000  -8.0000  -7.0000  -6.0000
+list/e=5/y=1/z=1/t=1 transpose_xf(myvar)
+             VARIABLE : TRANSPOSE_XF(MYVAR)
+             SUBSET   : 6 by 5 points (X-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             E        : 5
+              1        2        3        4        5        6     
+              1        2        3        4        5        6
+ 1   / 1:  90.0000  70.0000  50.0000  30.0000  10.0000 -10.0000
+ 2   / 2:  91.0000  71.0000  51.0000  31.0000  11.0000  -9.0000
+ 3   / 3:  92.0000  72.0000  52.0000  32.0000  12.0000  -8.0000
+ 4   / 4:  93.0000  73.0000  53.0000  33.0000  13.0000  -7.0000
+ 5   / 5:  94.0000  74.0000  54.0000  34.0000  14.0000  -6.0000
+list/F=25/y=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 3 points (LONGITUDE-E)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             F        : 20
+              0E       1E       2E       3E       4E     
+               1        2        3        4        5
+ 0    / 1:  65.0000  66.0000  67.0000  68.0000  69.0000
+ 5    / 2:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 10   / 3:  75.0000  76.0000  77.0000  78.0000  79.0000
+list/F=25/y=1/z=1/t=1 transpose_xe(myvar)
+             VARIABLE : TRANSPOSE_XE(MYVAR)
+             SUBSET   : 3 by 5 points (X-E)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             F        : 20
+              1        2        3     
+              1        2        3
+ 1   / 1:  65.0000  70.0000  75.0000
+ 2   / 2:  66.0000  71.0000  76.0000
+ 3   / 3:  67.0000  72.0000  77.0000
+ 4   / 4:  68.0000  73.0000  78.0000
+ 5   / 5:  69.0000  74.0000  79.0000
+ 
+list/e=5/x=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 4 by 6 points (LATITUDE-F)
+             LONGITUDE: 1E
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             E        : 5
+                0       1N       2N       3N     
+                1        2        3        4
+ 0     / 1:   86.000   91.000   96.000  101.000
+ 20    / 2:   66.000   71.000   76.000   81.000
+ 40    / 3:   46.000   51.000   56.000   61.000
+ 60    / 4:   26.000   31.000   36.000   41.000
+ 80    / 5:    6.000   11.000   16.000   21.000
+ 100   / 6:  -14.000   -9.000   -4.000    1.000
+list/e=5/x=1/z=1/t=1 transpose_yf(myvar)
+             VARIABLE : TRANSPOSE_YF(MYVAR)
+             SUBSET   : 6 by 4 points (Y-F)
+             LONGITUDE: 1E
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             E        : 5
+              1        2        3        4        5        6     
+              1        2        3        4        5        6
+ 1   / 1:   86.000   66.000   46.000   26.000    6.000  -14.000
+ 2   / 2:   91.000   71.000   51.000   31.000   11.000   -9.000
+ 3   / 3:   96.000   76.000   56.000   36.000   16.000   -4.000
+ 4   / 4:  101.000   81.000   61.000   41.000   21.000    1.000
+list/F=25/x=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 4 by 3 points (LATITUDE-E)
+             LONGITUDE: 1E
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             F        : 20
+               0       1N       2N       3N     
+               1        2        3        4
+ 0    / 1:  61.0000  66.0000  71.0000  76.0000
+ 5    / 2:  66.0000  71.0000  76.0000  81.0000
+ 10   / 3:  71.0000  76.0000  81.0000  86.0000
+list/F=25/x=1/z=1/t=1 transpose_ye(myvar)
+             VARIABLE : TRANSPOSE_YE(MYVAR)
+             SUBSET   : 3 by 4 points (Y-E)
+             LONGITUDE: 1E
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             F        : 20
+              1        2        3     
+              1        2        3
+ 1   / 1:  61.0000  66.0000  71.0000
+ 2   / 2:  66.0000  71.0000  76.0000
+ 3   / 3:  71.0000  76.0000  81.0000
+ 4   / 4:  76.0000  81.0000  86.0000
+ 
+list/e=5/x=1/y=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 8 by 6 points (DEPTH (m)-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             TIME     : JAN-2001
+             E        : 5
+               0        0.2      0.4      0.6      0.8      1        1.2      1.4    
+                1        2        3        4        5        6        7        8
+ 0     / 1:  71.0000  75.0000  79.0000  83.0000  87.0000  91.0000  95.0000  99.0000
+ 20    / 2:  51.0000  55.0000  59.0000  63.0000  67.0000  71.0000  75.0000  79.0000
+ 40    / 3:  31.0000  35.0000  39.0000  43.0000  47.0000  51.0000  55.0000  59.0000
+ 60    / 4:  11.0000  15.0000  19.0000  23.0000  27.0000  31.0000  35.0000  39.0000
+ 80    / 5:  -9.0000  -5.0000  -1.0000   3.0000   7.0000  11.0000  15.0000  19.0000
+ 100   / 6: -29.0000 -25.0000 -21.0000 -17.0000 -13.0000  -9.0000  -5.0000  -1.0000
+list/e=5/x=1/y=1/t=1 transpose_zf(myvar)
+             VARIABLE : TRANSPOSE_ZF(MYVAR)
+             SUBSET   : 6 by 8 points (Z-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             TIME     : JAN-2001
+             E        : 5
+              1        2        3        4        5        6     
+              1        2        3        4        5        6
+ 1   / 1:  71.0000  51.0000  31.0000  11.0000  -9.0000 -29.0000
+ 2   / 2:  75.0000  55.0000  35.0000  15.0000  -5.0000 -25.0000
+ 3   / 3:  79.0000  59.0000  39.0000  19.0000  -1.0000 -21.0000
+ 4   / 4:  83.0000  63.0000  43.0000  23.0000   3.0000 -17.0000
+ 5   / 5:  87.0000  67.0000  47.0000  27.0000   7.0000 -13.0000
+ 6   / 6:  91.0000  71.0000  51.0000  31.0000  11.0000  -9.0000
+ 7   / 7:  95.0000  75.0000  55.0000  35.0000  15.0000  -5.0000
+ 8   / 8:  99.0000  79.0000  59.0000  39.0000  19.0000  -1.0000
+list/F=25/x=1/y=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 8 by 3 points (DEPTH (m)-E)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             TIME     : JAN-2001
+             F        : 20
+              0        0.2      0.4      0.6      0.8      1        1.2      1.4    
+               1        2        3        4        5        6        7        8
+ 0    / 1:  46.0000  50.0000  54.0000  58.0000  62.0000  66.0000  70.0000  74.0000
+ 5    / 2:  51.0000  55.0000  59.0000  63.0000  67.0000  71.0000  75.0000  79.0000
+ 10   / 3:  56.0000  60.0000  64.0000  68.0000  72.0000  76.0000  80.0000  84.0000
+list/F=25/x=1/y=1/t=1 transpose_ze(myvar)
+             VARIABLE : TRANSPOSE_ZE(MYVAR)
+             SUBSET   : 3 by 8 points (Z-E)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             TIME     : JAN-2001
+             F        : 20
+              1        2        3     
+              1        2        3
+ 1   / 1:  46.0000  51.0000  56.0000
+ 2   / 2:  50.0000  55.0000  60.0000
+ 3   / 3:  54.0000  59.0000  64.0000
+ 4   / 4:  58.0000  63.0000  68.0000
+ 5   / 5:  62.0000  67.0000  72.0000
+ 6   / 6:  66.0000  71.0000  76.0000
+ 7   / 7:  70.0000  75.0000  80.0000
+ 8   / 8:  74.0000  79.0000  84.0000
+ 
+list/e=5/x=1/y=1/z=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 7 by 6 points (TIME-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             E        : 5
+               2001     2001     2001     2001     2001     2001     2001   
+                1        2        3        4        5        6        7
+ 0     / 1:   31.000   91.000  151.000  211.000  271.000  331.000  391.000
+ 20    / 2:   11.000   71.000  131.000  191.000  251.000  311.000  371.000
+ 40    / 3:   -9.000   51.000  111.000  171.000  231.000  291.000  351.000
+ 60    / 4:  -29.000   31.000   91.000  151.000  211.000  271.000  331.000
+ 80    / 5:  -49.000   11.000   71.000  131.000  191.000  251.000  311.000
+ 100   / 6:  -69.000   -9.000   51.000  111.000  171.000  231.000  291.000
+list/e=5/x=1/y=1/z=1 transpose_tf(myvar)
+             VARIABLE : TRANSPOSE_TF(MYVAR)
+             SUBSET   : 6 by 7 points (T-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             E        : 5
+              1        2        3        4        5        6     
+              1        2        3        4        5        6
+ 1   / 1:   31.000   11.000   -9.000  -29.000  -49.000  -69.000
+ 2   / 2:   91.000   71.000   51.000   31.000   11.000   -9.000
+ 3   / 3:  151.000  131.000  111.000   91.000   71.000   51.000
+ 4   / 4:  211.000  191.000  171.000  151.000  131.000  111.000
+ 5   / 5:  271.000  251.000  231.000  211.000  191.000  171.000
+ 6   / 6:  331.000  311.000  291.000  271.000  251.000  231.000
+ 7   / 7:  391.000  371.000  351.000  331.000  311.000  291.000
+list/F=25/x=1/y=1/z=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 7 by 3 points (TIME-E)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             F        : 20
+              2001     2001     2001     2001     2001     2001     2001   
+               1        2        3        4        5        6        7
+ 0    / 1:    6.000   66.000  126.000  186.000  246.000  306.000  366.000
+ 5    / 2:   11.000   71.000  131.000  191.000  251.000  311.000  371.000
+ 10   / 3:   16.000   76.000  136.000  196.000  256.000  316.000  376.000
+list/F=25/x=1/y=1/z=1 transpose_te(myvar)
+             VARIABLE : TRANSPOSE_TE(MYVAR)
+             SUBSET   : 3 by 7 points (T-E)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             F        : 20
+              1        2        3     
+              1        2        3
+ 1   / 1:    6.000   11.000   16.000
+ 2   / 2:   66.000   71.000   76.000
+ 3   / 3:  126.000  131.000  136.000
+ 4   / 4:  186.000  191.000  196.000
+ 5   / 5:  246.000  251.000  256.000
+ 6   / 6:  306.000  311.000  316.000
+ 7   / 7:  366.000  371.000  376.000
+ 
+ 
+! * * * *  XYZTEF examples with another dimension * * *
+ 
+list/y=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 3 by 6 points (LONGITUDE-E-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : JAN-2001
+              0E       1E       2E       3E       4E     
+               1        2        3        4        5
+ ---- N:1 F:   0
+ 0    / 1:  85.0000  86.0000  87.0000  88.0000  89.0000
+ 5    / 2:  90.0000  91.0000  92.0000  93.0000  94.0000
+ 10   / 3:  95.0000  96.0000  97.0000  98.0000  99.0000
+ ---- N:2 F:   20
+ 0    / 1:  65.0000  66.0000  67.0000  68.0000  69.0000
+ 5    / 2:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 10   / 3:  75.0000  76.0000  77.0000  78.0000  79.0000
+ ---- N:3 F:   40
+ 0    / 1:  45.0000  46.0000  47.0000  48.0000  49.0000
+ 5    / 2:  50.0000  51.0000  52.0000  53.0000  54.0000
+ 10   / 3:  55.0000  56.0000  57.0000  58.0000  59.0000
+ ---- N:4 F:   60
+ 0    / 1:  25.0000  26.0000  27.0000  28.0000  29.0000
+ 5    / 2:  30.0000  31.0000  32.0000  33.0000  34.0000
+ 10   / 3:  35.0000  36.0000  37.0000  38.0000  39.0000
+ ---- N:5 F:   80
+ 0    / 1:   5.0000   6.0000   7.0000   8.0000   9.0000
+ 5    / 2:  10.0000  11.0000  12.0000  13.0000  14.0000
+ 10   / 3:  15.0000  16.0000  17.0000  18.0000  19.0000
+ ---- N:6 F:   100
+ 0    / 1: -15.0000 -14.0000 -13.0000 -12.0000 -11.0000
+ 5    / 2: -10.0000  -9.0000  -8.0000  -7.0000  -6.0000
+ 10   / 3:  -5.0000  -4.0000  -3.0000  -2.0000  -1.0000
+list/y=1/z=1/t=1 transpose_ef(myvar)
+             VARIABLE : TRANSPOSE_EF(MYVAR)
+             SUBSET   : 5 by 6 by 3 points (LONGITUDE-E-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             0E       1E       2E       3E       4E     
+              1        2        3        4        5
+ ---- N:1 F:   1
+ 1   / 1:  85.0000  86.0000  87.0000  88.0000  89.0000
+ 2   / 2:  65.0000  66.0000  67.0000  68.0000  69.0000
+ 3   / 3:  45.0000  46.0000  47.0000  48.0000  49.0000
+ 4   / 4:  25.0000  26.0000  27.0000  28.0000  29.0000
+ 5   / 5:   5.0000   6.0000   7.0000   8.0000   9.0000
+ 6   / 6: -15.0000 -14.0000 -13.0000 -12.0000 -11.0000
+ ---- N:2 F:   2
+ 1   / 1:  90.0000  91.0000  92.0000  93.0000  94.0000
+ 2   / 2:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 3   / 3:  50.0000  51.0000  52.0000  53.0000  54.0000
+ 4   / 4:  30.0000  31.0000  32.0000  33.0000  34.0000
+ 5   / 5:  10.0000  11.0000  12.0000  13.0000  14.0000
+ 6   / 6: -10.0000  -9.0000  -8.0000  -7.0000  -6.0000
+ ---- N:3 F:   3
+ 1   / 1:  95.0000  96.0000  97.0000  98.0000  99.0000
+ 2   / 2:  75.0000  76.0000  77.0000  78.0000  79.0000
+ 3   / 3:  55.0000  56.0000  57.0000  58.0000  59.0000
+ 4   / 4:  35.0000  36.0000  37.0000  38.0000  39.0000
+ 5   / 5:  15.0000  16.0000  17.0000  18.0000  19.0000
+ 6   / 6:  -5.0000  -4.0000  -3.0000  -2.0000  -1.0000
+ 
+list/e=5/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 4 by 6 points (LONGITUDE-LATITUDE-F)
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             E        : 5
+              0E       1E       2E       3E       4E     
+               1        2        3        4        5
+ ---- N:1 F:   0
+ 3N   / 4:  100.000  101.000  102.000  103.000  104.000
+ 2N   / 3:   95.000   96.000   97.000   98.000   99.000
+ 1N   / 2:   90.000   91.000   92.000   93.000   94.000
+ 0    / 1:   85.000   86.000   87.000   88.000   89.000
+ ---- N:2 F:   20
+ 3N   / 4:   80.000   81.000   82.000   83.000   84.000
+ 2N   / 3:   75.000   76.000   77.000   78.000   79.000
+ 1N   / 2:   70.000   71.000   72.000   73.000   74.000
+ 0    / 1:   65.000   66.000   67.000   68.000   69.000
+ ---- N:3 F:   40
+ 3N   / 4:   60.000   61.000   62.000   63.000   64.000
+ 2N   / 3:   55.000   56.000   57.000   58.000   59.000
+ 1N   / 2:   50.000   51.000   52.000   53.000   54.000
+ 0    / 1:   45.000   46.000   47.000   48.000   49.000
+ ---- N:4 F:   60
+ 3N   / 4:   40.000   41.000   42.000   43.000   44.000
+ 2N   / 3:   35.000   36.000   37.000   38.000   39.000
+ 1N   / 2:   30.000   31.000   32.000   33.000   34.000
+ 0    / 1:   25.000   26.000   27.000   28.000   29.000
+ ---- N:5 F:   80
+ 3N   / 4:   20.000   21.000   22.000   23.000   24.000
+ 2N   / 3:   15.000   16.000   17.000   18.000   19.000
+ 1N   / 2:   10.000   11.000   12.000   13.000   14.000
+ 0    / 1:    5.000    6.000    7.000    8.000    9.000
+ ---- N:6 F:   100
+ 3N   / 4:    0.000    1.000    2.000    3.000    4.000
+ 2N   / 3:   -5.000   -4.000   -3.000   -2.000   -1.000
+ 1N   / 2:  -10.000   -9.000   -8.000   -7.000   -6.000
+ 0    / 1:  -15.000  -14.000  -13.000  -12.000  -11.000
+list/e=5/z=1/t=1 transpose_xf(myvar)
+             VARIABLE : TRANSPOSE_XF(MYVAR)
+             SUBSET   : 6 by 4 by 5 points (X-LATITUDE-F)
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             E        : 5
+               1        2        3        4        5        6     
+               1        2        3        4        5        6
+ ---- N:1 F:   1
+ 3N   / 4:  100.000   80.000   60.000   40.000   20.000    0.000
+ 2N   / 3:   95.000   75.000   55.000   35.000   15.000   -5.000
+ 1N   / 2:   90.000   70.000   50.000   30.000   10.000  -10.000
+ 0    / 1:   85.000   65.000   45.000   25.000    5.000  -15.000
+ ---- N:2 F:   2
+ 3N   / 4:  101.000   81.000   61.000   41.000   21.000    1.000
+ 2N   / 3:   96.000   76.000   56.000   36.000   16.000   -4.000
+ 1N   / 2:   91.000   71.000   51.000   31.000   11.000   -9.000
+ 0    / 1:   86.000   66.000   46.000   26.000    6.000  -14.000
+ ---- N:3 F:   3
+ 3N   / 4:  102.000   82.000   62.000   42.000   22.000    2.000
+ 2N   / 3:   97.000   77.000   57.000   37.000   17.000   -3.000
+ 1N   / 2:   92.000   72.000   52.000   32.000   12.000   -8.000
+ 0    / 1:   87.000   67.000   47.000   27.000    7.000  -13.000
+ ---- N:4 F:   4
+ 3N   / 4:  103.000   83.000   63.000   43.000   23.000    3.000
+ 2N   / 3:   98.000   78.000   58.000   38.000   18.000   -2.000
+ 1N   / 2:   93.000   73.000   53.000   33.000   13.000   -7.000
+ 0    / 1:   88.000   68.000   48.000   28.000    8.000  -12.000
+ ---- N:5 F:   5
+ 3N   / 4:  104.000   84.000   64.000   44.000   24.000    4.000
+ 2N   / 3:   99.000   79.000   59.000   39.000   19.000   -1.000
+ 1N   / 2:   94.000   74.000   54.000   34.000   14.000   -6.000
+ 0    / 1:   89.000   69.000   49.000   29.000    9.000  -11.000
+list/F=25/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 4 by 3 points (LONGITUDE-LATITUDE-E)
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             F        : 20
+              0E       1E       2E       3E       4E     
+               1        2        3        4        5
+ ---- M:1 E:   0
+ 3N   / 4:  75.0000  76.0000  77.0000  78.0000  79.0000
+ 2N   / 3:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 1N   / 2:  65.0000  66.0000  67.0000  68.0000  69.0000
+ 0    / 1:  60.0000  61.0000  62.0000  63.0000  64.0000
+ ---- M:2 E:   5
+ 3N   / 4:  80.0000  81.0000  82.0000  83.0000  84.0000
+ 2N   / 3:  75.0000  76.0000  77.0000  78.0000  79.0000
+ 1N   / 2:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 0    / 1:  65.0000  66.0000  67.0000  68.0000  69.0000
+ ---- M:3 E:   10
+ 3N   / 4:  85.0000  86.0000  87.0000  88.0000  89.0000
+ 2N   / 3:  80.0000  81.0000  82.0000  83.0000  84.0000
+ 1N   / 2:  75.0000  76.0000  77.0000  78.0000  79.0000
+ 0    / 1:  70.0000  71.0000  72.0000  73.0000  74.0000
+list/F=25/z=1/t=1 transpose_xe(myvar)
+             VARIABLE : TRANSPOSE_XE(MYVAR)
+             SUBSET   : 3 by 4 by 5 points (X-LATITUDE-E)
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             F        : 20
+               1        2        3     
+               1        2        3
+ ---- M:1 E:   1
+ 3N   / 4:  75.0000  80.0000  85.0000
+ 2N   / 3:  70.0000  75.0000  80.0000
+ 1N   / 2:  65.0000  70.0000  75.0000
+ 0    / 1:  60.0000  65.0000  70.0000
+ ---- M:2 E:   2
+ 3N   / 4:  76.0000  81.0000  86.0000
+ 2N   / 3:  71.0000  76.0000  81.0000
+ 1N   / 2:  66.0000  71.0000  76.0000
+ 0    / 1:  61.0000  66.0000  71.0000
+ ---- M:3 E:   3
+ 3N   / 4:  77.0000  82.0000  87.0000
+ 2N   / 3:  72.0000  77.0000  82.0000
+ 1N   / 2:  67.0000  72.0000  77.0000
+ 0    / 1:  62.0000  67.0000  72.0000
+ ---- M:4 E:   4
+ 3N   / 4:  78.0000  83.0000  88.0000
+ 2N   / 3:  73.0000  78.0000  83.0000
+ 1N   / 2:  68.0000  73.0000  78.0000
+ 0    / 1:  63.0000  68.0000  73.0000
+ ---- M:5 E:   5
+ 3N   / 4:  79.0000  84.0000  89.0000
+ 2N   / 3:  74.0000  79.0000  84.0000
+ 1N   / 2:  69.0000  74.0000  79.0000
+ 0    / 1:  64.0000  69.0000  74.0000
+ 
+list/e=5/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 4 by 6 points (LONGITUDE-LATITUDE-F)
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             E        : 5
+              0E       1E       2E       3E       4E     
+               1        2        3        4        5
+ ---- N:1 F:   0
+ 3N   / 4:  100.000  101.000  102.000  103.000  104.000
+ 2N   / 3:   95.000   96.000   97.000   98.000   99.000
+ 1N   / 2:   90.000   91.000   92.000   93.000   94.000
+ 0    / 1:   85.000   86.000   87.000   88.000   89.000
+ ---- N:2 F:   20
+ 3N   / 4:   80.000   81.000   82.000   83.000   84.000
+ 2N   / 3:   75.000   76.000   77.000   78.000   79.000
+ 1N   / 2:   70.000   71.000   72.000   73.000   74.000
+ 0    / 1:   65.000   66.000   67.000   68.000   69.000
+ ---- N:3 F:   40
+ 3N   / 4:   60.000   61.000   62.000   63.000   64.000
+ 2N   / 3:   55.000   56.000   57.000   58.000   59.000
+ 1N   / 2:   50.000   51.000   52.000   53.000   54.000
+ 0    / 1:   45.000   46.000   47.000   48.000   49.000
+ ---- N:4 F:   60
+ 3N   / 4:   40.000   41.000   42.000   43.000   44.000
+ 2N   / 3:   35.000   36.000   37.000   38.000   39.000
+ 1N   / 2:   30.000   31.000   32.000   33.000   34.000
+ 0    / 1:   25.000   26.000   27.000   28.000   29.000
+ ---- N:5 F:   80
+ 3N   / 4:   20.000   21.000   22.000   23.000   24.000
+ 2N   / 3:   15.000   16.000   17.000   18.000   19.000
+ 1N   / 2:   10.000   11.000   12.000   13.000   14.000
+ 0    / 1:    5.000    6.000    7.000    8.000    9.000
+ ---- N:6 F:   100
+ 3N   / 4:    0.000    1.000    2.000    3.000    4.000
+ 2N   / 3:   -5.000   -4.000   -3.000   -2.000   -1.000
+ 1N   / 2:  -10.000   -9.000   -8.000   -7.000   -6.000
+ 0    / 1:  -15.000  -14.000  -13.000  -12.000  -11.000
+list/e=5/z=1/t=1 transpose_yf(myvar)
+             VARIABLE : TRANSPOSE_YF(MYVAR)
+             SUBSET   : 5 by 6 by 4 points (LONGITUDE-Y-F)
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             E        : 5
+             0E       1E       2E       3E       4E     
+              1        2        3        4        5
+ ---- N:1 F:   1
+ 1   / 1:   85.000   86.000   87.000   88.000   89.000
+ 2   / 2:   65.000   66.000   67.000   68.000   69.000
+ 3   / 3:   45.000   46.000   47.000   48.000   49.000
+ 4   / 4:   25.000   26.000   27.000   28.000   29.000
+ 5   / 5:    5.000    6.000    7.000    8.000    9.000
+ 6   / 6:  -15.000  -14.000  -13.000  -12.000  -11.000
+ ---- N:2 F:   2
+ 1   / 1:   90.000   91.000   92.000   93.000   94.000
+ 2   / 2:   70.000   71.000   72.000   73.000   74.000
+ 3   / 3:   50.000   51.000   52.000   53.000   54.000
+ 4   / 4:   30.000   31.000   32.000   33.000   34.000
+ 5   / 5:   10.000   11.000   12.000   13.000   14.000
+ 6   / 6:  -10.000   -9.000   -8.000   -7.000   -6.000
+ ---- N:3 F:   3
+ 1   / 1:   95.000   96.000   97.000   98.000   99.000
+ 2   / 2:   75.000   76.000   77.000   78.000   79.000
+ 3   / 3:   55.000   56.000   57.000   58.000   59.000
+ 4   / 4:   35.000   36.000   37.000   38.000   39.000
+ 5   / 5:   15.000   16.000   17.000   18.000   19.000
+ 6   / 6:   -5.000   -4.000   -3.000   -2.000   -1.000
+ ---- N:4 F:   4
+ 1   / 1:  100.000  101.000  102.000  103.000  104.000
+ 2   / 2:   80.000   81.000   82.000   83.000   84.000
+ 3   / 3:   60.000   61.000   62.000   63.000   64.000
+ 4   / 4:   40.000   41.000   42.000   43.000   44.000
+ 5   / 5:   20.000   21.000   22.000   23.000   24.000
+ 6   / 6:    0.000    1.000    2.000    3.000    4.000
+list/F=25/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 4 by 3 points (LONGITUDE-LATITUDE-E)
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             F        : 20
+              0E       1E       2E       3E       4E     
+               1        2        3        4        5
+ ---- M:1 E:   0
+ 3N   / 4:  75.0000  76.0000  77.0000  78.0000  79.0000
+ 2N   / 3:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 1N   / 2:  65.0000  66.0000  67.0000  68.0000  69.0000
+ 0    / 1:  60.0000  61.0000  62.0000  63.0000  64.0000
+ ---- M:2 E:   5
+ 3N   / 4:  80.0000  81.0000  82.0000  83.0000  84.0000
+ 2N   / 3:  75.0000  76.0000  77.0000  78.0000  79.0000
+ 1N   / 2:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 0    / 1:  65.0000  66.0000  67.0000  68.0000  69.0000
+ ---- M:3 E:   10
+ 3N   / 4:  85.0000  86.0000  87.0000  88.0000  89.0000
+ 2N   / 3:  80.0000  81.0000  82.0000  83.0000  84.0000
+ 1N   / 2:  75.0000  76.0000  77.0000  78.0000  79.0000
+ 0    / 1:  70.0000  71.0000  72.0000  73.0000  74.0000
+list/F=25/z=1/t=1 transpose_ye(myvar)
+             VARIABLE : TRANSPOSE_YE(MYVAR)
+             SUBSET   : 5 by 3 by 4 points (LONGITUDE-Y-E)
+             DEPTH (m): 1
+             TIME     : JAN-2001
+             F        : 20
+             0E       1E       2E       3E       4E     
+              1        2        3        4        5
+ ---- M:1 E:   1
+ 1   / 1:  60.0000  61.0000  62.0000  63.0000  64.0000
+ 2   / 2:  65.0000  66.0000  67.0000  68.0000  69.0000
+ 3   / 3:  70.0000  71.0000  72.0000  73.0000  74.0000
+ ---- M:2 E:   2
+ 1   / 1:  65.0000  66.0000  67.0000  68.0000  69.0000
+ 2   / 2:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 3   / 3:  75.0000  76.0000  77.0000  78.0000  79.0000
+ ---- M:3 E:   3
+ 1   / 1:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 2   / 2:  75.0000  76.0000  77.0000  78.0000  79.0000
+ 3   / 3:  80.0000  81.0000  82.0000  83.0000  84.0000
+ ---- M:4 E:   4
+ 1   / 1:  75.0000  76.0000  77.0000  78.0000  79.0000
+ 2   / 2:  80.0000  81.0000  82.0000  83.0000  84.0000
+ 3   / 3:  85.0000  86.0000  87.0000  88.0000  89.0000
+ 
+list/e=5/y=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 8 by 6 points (LONGITUDE-DEPTH (m)-F)
+             LATITUDE : 1N
+             TIME     : JAN-2001
+             E        : 5
+               0E       1E       2E       3E       4E     
+                1        2        3        4        5
+ ---- N:1 F:   0
+ 0     / 1:   70.000   71.000   72.000   73.000   74.000
+ 0.2   / 2:   74.000   75.000   76.000   77.000   78.000
+ 0.4   / 3:   78.000   79.000   80.000   81.000   82.000
+ 0.6   / 4:   82.000   83.000   84.000   85.000   86.000
+ 0.8   / 5:   86.000   87.000   88.000   89.000   90.000
+ 1     / 6:   90.000   91.000   92.000   93.000   94.000
+ 1.2   / 7:   94.000   95.000   96.000   97.000   98.000
+ 1.4   / 8:   98.000   99.000  100.000  101.000  102.000
+ ---- N:2 F:   20
+ 0     / 1:   50.000   51.000   52.000   53.000   54.000
+ 0.2   / 2:   54.000   55.000   56.000   57.000   58.000
+ 0.4   / 3:   58.000   59.000   60.000   61.000   62.000
+ 0.6   / 4:   62.000   63.000   64.000   65.000   66.000
+ 0.8   / 5:   66.000   67.000   68.000   69.000   70.000
+ 1     / 6:   70.000   71.000   72.000   73.000   74.000
+ 1.2   / 7:   74.000   75.000   76.000   77.000   78.000
+ 1.4   / 8:   78.000   79.000   80.000   81.000   82.000
+ ---- N:3 F:   40
+ 0     / 1:   30.000   31.000   32.000   33.000   34.000
+ 0.2   / 2:   34.000   35.000   36.000   37.000   38.000
+ 0.4   / 3:   38.000   39.000   40.000   41.000   42.000
+ 0.6   / 4:   42.000   43.000   44.000   45.000   46.000
+ 0.8   / 5:   46.000   47.000   48.000   49.000   50.000
+ 1     / 6:   50.000   51.000   52.000   53.000   54.000
+ 1.2   / 7:   54.000   55.000   56.000   57.000   58.000
+ 1.4   / 8:   58.000   59.000   60.000   61.000   62.000
+ ---- N:4 F:   60
+ 0     / 1:   10.000   11.000   12.000   13.000   14.000
+ 0.2   / 2:   14.000   15.000   16.000   17.000   18.000
+ 0.4   / 3:   18.000   19.000   20.000   21.000   22.000
+ 0.6   / 4:   22.000   23.000   24.000   25.000   26.000
+ 0.8   / 5:   26.000   27.000   28.000   29.000   30.000
+ 1     / 6:   30.000   31.000   32.000   33.000   34.000
+ 1.2   / 7:   34.000   35.000   36.000   37.000   38.000
+ 1.4   / 8:   38.000   39.000   40.000   41.000   42.000
+ ---- N:5 F:   80
+ 0     / 1:  -10.000   -9.000   -8.000   -7.000   -6.000
+ 0.2   / 2:   -6.000   -5.000   -4.000   -3.000   -2.000
+ 0.4   / 3:   -2.000   -1.000    0.000    1.000    2.000
+ 0.6   / 4:    2.000    3.000    4.000    5.000    6.000
+ 0.8   / 5:    6.000    7.000    8.000    9.000   10.000
+ 1     / 6:   10.000   11.000   12.000   13.000   14.000
+ 1.2   / 7:   14.000   15.000   16.000   17.000   18.000
+ 1.4   / 8:   18.000   19.000   20.000   21.000   22.000
+ ---- N:6 F:   100
+ 0     / 1:  -30.000  -29.000  -28.000  -27.000  -26.000
+ 0.2   / 2:  -26.000  -25.000  -24.000  -23.000  -22.000
+ 0.4   / 3:  -22.000  -21.000  -20.000  -19.000  -18.000
+ 0.6   / 4:  -18.000  -17.000  -16.000  -15.000  -14.000
+ 0.8   / 5:  -14.000  -13.000  -12.000  -11.000  -10.000
+ 1     / 6:  -10.000   -9.000   -8.000   -7.000   -6.000
+ 1.2   / 7:   -6.000   -5.000   -4.000   -3.000   -2.000
+ 1.4   / 8:   -2.000   -1.000    0.000    1.000    2.000
+list/e=5/y=1/t=1 transpose_zf(myvar)
+             VARIABLE : TRANSPOSE_ZF(MYVAR)
+             SUBSET   : 5 by 6 by 8 points (LONGITUDE-Z-F)
+             LATITUDE : 1N
+             TIME     : JAN-2001
+             E        : 5
+             0E       1E       2E       3E       4E     
+              1        2        3        4        5
+ ---- N:1 F:   1
+ 1   / 1:   70.000   71.000   72.000   73.000   74.000
+ 2   / 2:   50.000   51.000   52.000   53.000   54.000
+ 3   / 3:   30.000   31.000   32.000   33.000   34.000
+ 4   / 4:   10.000   11.000   12.000   13.000   14.000
+ 5   / 5:  -10.000   -9.000   -8.000   -7.000   -6.000
+ 6   / 6:  -30.000  -29.000  -28.000  -27.000  -26.000
+ ---- N:2 F:   2
+ 1   / 1:   74.000   75.000   76.000   77.000   78.000
+ 2   / 2:   54.000   55.000   56.000   57.000   58.000
+ 3   / 3:   34.000   35.000   36.000   37.000   38.000
+ 4   / 4:   14.000   15.000   16.000   17.000   18.000
+ 5   / 5:   -6.000   -5.000   -4.000   -3.000   -2.000
+ 6   / 6:  -26.000  -25.000  -24.000  -23.000  -22.000
+ ---- N:3 F:   3
+ 1   / 1:   78.000   79.000   80.000   81.000   82.000
+ 2   / 2:   58.000   59.000   60.000   61.000   62.000
+ 3   / 3:   38.000   39.000   40.000   41.000   42.000
+ 4   / 4:   18.000   19.000   20.000   21.000   22.000
+ 5   / 5:   -2.000   -1.000    0.000    1.000    2.000
+ 6   / 6:  -22.000  -21.000  -20.000  -19.000  -18.000
+ ---- N:4 F:   4
+ 1   / 1:   82.000   83.000   84.000   85.000   86.000
+ 2   / 2:   62.000   63.000   64.000   65.000   66.000
+ 3   / 3:   42.000   43.000   44.000   45.000   46.000
+ 4   / 4:   22.000   23.000   24.000   25.000   26.000
+ 5   / 5:    2.000    3.000    4.000    5.000    6.000
+ 6   / 6:  -18.000  -17.000  -16.000  -15.000  -14.000
+ ---- N:5 F:   5
+ 1   / 1:   86.000   87.000   88.000   89.000   90.000
+ 2   / 2:   66.000   67.000   68.000   69.000   70.000
+ 3   / 3:   46.000   47.000   48.000   49.000   50.000
+ 4   / 4:   26.000   27.000   28.000   29.000   30.000
+ 5   / 5:    6.000    7.000    8.000    9.000   10.000
+ 6   / 6:  -14.000  -13.000  -12.000  -11.000  -10.000
+ ---- N:6 F:   6
+ 1   / 1:   90.000   91.000   92.000   93.000   94.000
+ 2   / 2:   70.000   71.000   72.000   73.000   74.000
+ 3   / 3:   50.000   51.000   52.000   53.000   54.000
+ 4   / 4:   30.000   31.000   32.000   33.000   34.000
+ 5   / 5:   10.000   11.000   12.000   13.000   14.000
+ 6   / 6:  -10.000   -9.000   -8.000   -7.000   -6.000
+ ---- N:7 F:   7
+ 1   / 1:   94.000   95.000   96.000   97.000   98.000
+ 2   / 2:   74.000   75.000   76.000   77.000   78.000
+ 3   / 3:   54.000   55.000   56.000   57.000   58.000
+ 4   / 4:   34.000   35.000   36.000   37.000   38.000
+ 5   / 5:   14.000   15.000   16.000   17.000   18.000
+ 6   / 6:   -6.000   -5.000   -4.000   -3.000   -2.000
+ ---- N:8 F:   8
+ 1   / 1:   98.000   99.000  100.000  101.000  102.000
+ 2   / 2:   78.000   79.000   80.000   81.000   82.000
+ 3   / 3:   58.000   59.000   60.000   61.000   62.000
+ 4   / 4:   38.000   39.000   40.000   41.000   42.000
+ 5   / 5:   18.000   19.000   20.000   21.000   22.000
+ 6   / 6:   -2.000   -1.000    0.000    1.000    2.000
+list/F=25/y=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 8 by 3 points (LONGITUDE-DEPTH (m)-E)
+             LATITUDE : 1N
+             TIME     : JAN-2001
+             F        : 20
+               0E       1E       2E       3E       4E     
+                1        2        3        4        5
+ ---- M:1 E:   0
+ 0     / 1:  45.0000  46.0000  47.0000  48.0000  49.0000
+ 0.2   / 2:  49.0000  50.0000  51.0000  52.0000  53.0000
+ 0.4   / 3:  53.0000  54.0000  55.0000  56.0000  57.0000
+ 0.6   / 4:  57.0000  58.0000  59.0000  60.0000  61.0000
+ 0.8   / 5:  61.0000  62.0000  63.0000  64.0000  65.0000
+ 1     / 6:  65.0000  66.0000  67.0000  68.0000  69.0000
+ 1.2   / 7:  69.0000  70.0000  71.0000  72.0000  73.0000
+ 1.4   / 8:  73.0000  74.0000  75.0000  76.0000  77.0000
+ ---- M:2 E:   5
+ 0     / 1:  50.0000  51.0000  52.0000  53.0000  54.0000
+ 0.2   / 2:  54.0000  55.0000  56.0000  57.0000  58.0000
+ 0.4   / 3:  58.0000  59.0000  60.0000  61.0000  62.0000
+ 0.6   / 4:  62.0000  63.0000  64.0000  65.0000  66.0000
+ 0.8   / 5:  66.0000  67.0000  68.0000  69.0000  70.0000
+ 1     / 6:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 1.2   / 7:  74.0000  75.0000  76.0000  77.0000  78.0000
+ 1.4   / 8:  78.0000  79.0000  80.0000  81.0000  82.0000
+ ---- M:3 E:   10
+ 0     / 1:  55.0000  56.0000  57.0000  58.0000  59.0000
+ 0.2   / 2:  59.0000  60.0000  61.0000  62.0000  63.0000
+ 0.4   / 3:  63.0000  64.0000  65.0000  66.0000  67.0000
+ 0.6   / 4:  67.0000  68.0000  69.0000  70.0000  71.0000
+ 0.8   / 5:  71.0000  72.0000  73.0000  74.0000  75.0000
+ 1     / 6:  75.0000  76.0000  77.0000  78.0000  79.0000
+ 1.2   / 7:  79.0000  80.0000  81.0000  82.0000  83.0000
+ 1.4   / 8:  83.0000  84.0000  85.0000  86.0000  87.0000
+list/F=25/y=1/t=1 transpose_ze(myvar)
+             VARIABLE : TRANSPOSE_ZE(MYVAR)
+             SUBSET   : 5 by 3 by 8 points (LONGITUDE-Z-E)
+             LATITUDE : 1N
+             TIME     : JAN-2001
+             F        : 20
+             0E       1E       2E       3E       4E     
+              1        2        3        4        5
+ ---- M:1 E:   1
+ 1   / 1:  45.0000  46.0000  47.0000  48.0000  49.0000
+ 2   / 2:  50.0000  51.0000  52.0000  53.0000  54.0000
+ 3   / 3:  55.0000  56.0000  57.0000  58.0000  59.0000
+ ---- M:2 E:   2
+ 1   / 1:  49.0000  50.0000  51.0000  52.0000  53.0000
+ 2   / 2:  54.0000  55.0000  56.0000  57.0000  58.0000
+ 3   / 3:  59.0000  60.0000  61.0000  62.0000  63.0000
+ ---- M:3 E:   3
+ 1   / 1:  53.0000  54.0000  55.0000  56.0000  57.0000
+ 2   / 2:  58.0000  59.0000  60.0000  61.0000  62.0000
+ 3   / 3:  63.0000  64.0000  65.0000  66.0000  67.0000
+ ---- M:4 E:   4
+ 1   / 1:  57.0000  58.0000  59.0000  60.0000  61.0000
+ 2   / 2:  62.0000  63.0000  64.0000  65.0000  66.0000
+ 3   / 3:  67.0000  68.0000  69.0000  70.0000  71.0000
+ ---- M:5 E:   5
+ 1   / 1:  61.0000  62.0000  63.0000  64.0000  65.0000
+ 2   / 2:  66.0000  67.0000  68.0000  69.0000  70.0000
+ 3   / 3:  71.0000  72.0000  73.0000  74.0000  75.0000
+ ---- M:6 E:   6
+ 1   / 1:  65.0000  66.0000  67.0000  68.0000  69.0000
+ 2   / 2:  70.0000  71.0000  72.0000  73.0000  74.0000
+ 3   / 3:  75.0000  76.0000  77.0000  78.0000  79.0000
+ ---- M:7 E:   7
+ 1   / 1:  69.0000  70.0000  71.0000  72.0000  73.0000
+ 2   / 2:  74.0000  75.0000  76.0000  77.0000  78.0000
+ 3   / 3:  79.0000  80.0000  81.0000  82.0000  83.0000
+ ---- M:8 E:   8
+ 1   / 1:  73.0000  74.0000  75.0000  76.0000  77.0000
+ 2   / 2:  78.0000  79.0000  80.0000  81.0000  82.0000
+ 3   / 3:  83.0000  84.0000  85.0000  86.0000  87.0000
+ 
+list/e=5/y=1/z=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 7 by 6 points (LONGITUDE-TIME-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             E        : 5
+                        0E       1E       2E       3E       4E     
+                         1        2        3        4        5
+ ---- N:1 F:   0
+ 01-JAN-2001 00 / 1:   30.000   31.000   32.000   33.000   34.000
+ 02-JAN-2001 00 / 2:   90.000   91.000   92.000   93.000   94.000
+ 03-JAN-2001 00 / 3:  150.000  151.000  152.000  153.000  154.000
+ 04-JAN-2001 00 / 4:  210.000  211.000  212.000  213.000  214.000
+ 05-JAN-2001 00 / 5:  270.000  271.000  272.000  273.000  274.000
+ 06-JAN-2001 00 / 6:  330.000  331.000  332.000  333.000  334.000
+ 07-JAN-2001 00 / 7:  390.000  391.000  392.000  393.000  394.000
+ ---- N:2 F:   20
+ 01-JAN-2001 00 / 1:   10.000   11.000   12.000   13.000   14.000
+ 02-JAN-2001 00 / 2:   70.000   71.000   72.000   73.000   74.000
+ 03-JAN-2001 00 / 3:  130.000  131.000  132.000  133.000  134.000
+ 04-JAN-2001 00 / 4:  190.000  191.000  192.000  193.000  194.000
+ 05-JAN-2001 00 / 5:  250.000  251.000  252.000  253.000  254.000
+ 06-JAN-2001 00 / 6:  310.000  311.000  312.000  313.000  314.000
+ 07-JAN-2001 00 / 7:  370.000  371.000  372.000  373.000  374.000
+ ---- N:3 F:   40
+ 01-JAN-2001 00 / 1:  -10.000   -9.000   -8.000   -7.000   -6.000
+ 02-JAN-2001 00 / 2:   50.000   51.000   52.000   53.000   54.000
+ 03-JAN-2001 00 / 3:  110.000  111.000  112.000  113.000  114.000
+ 04-JAN-2001 00 / 4:  170.000  171.000  172.000  173.000  174.000
+ 05-JAN-2001 00 / 5:  230.000  231.000  232.000  233.000  234.000
+ 06-JAN-2001 00 / 6:  290.000  291.000  292.000  293.000  294.000
+ 07-JAN-2001 00 / 7:  350.000  351.000  352.000  353.000  354.000
+ ---- N:4 F:   60
+ 01-JAN-2001 00 / 1:  -30.000  -29.000  -28.000  -27.000  -26.000
+ 02-JAN-2001 00 / 2:   30.000   31.000   32.000   33.000   34.000
+ 03-JAN-2001 00 / 3:   90.000   91.000   92.000   93.000   94.000
+ 04-JAN-2001 00 / 4:  150.000  151.000  152.000  153.000  154.000
+ 05-JAN-2001 00 / 5:  210.000  211.000  212.000  213.000  214.000
+ 06-JAN-2001 00 / 6:  270.000  271.000  272.000  273.000  274.000
+ 07-JAN-2001 00 / 7:  330.000  331.000  332.000  333.000  334.000
+ ---- N:5 F:   80
+ 01-JAN-2001 00 / 1:  -50.000  -49.000  -48.000  -47.000  -46.000
+ 02-JAN-2001 00 / 2:   10.000   11.000   12.000   13.000   14.000
+ 03-JAN-2001 00 / 3:   70.000   71.000   72.000   73.000   74.000
+ 04-JAN-2001 00 / 4:  130.000  131.000  132.000  133.000  134.000
+ 05-JAN-2001 00 / 5:  190.000  191.000  192.000  193.000  194.000
+ 06-JAN-2001 00 / 6:  250.000  251.000  252.000  253.000  254.000
+ 07-JAN-2001 00 / 7:  310.000  311.000  312.000  313.000  314.000
+ ---- N:6 F:   100
+ 01-JAN-2001 00 / 1:  -70.000  -69.000  -68.000  -67.000  -66.000
+ 02-JAN-2001 00 / 2:  -10.000   -9.000   -8.000   -7.000   -6.000
+ 03-JAN-2001 00 / 3:   50.000   51.000   52.000   53.000   54.000
+ 04-JAN-2001 00 / 4:  110.000  111.000  112.000  113.000  114.000
+ 05-JAN-2001 00 / 5:  170.000  171.000  172.000  173.000  174.000
+ 06-JAN-2001 00 / 6:  230.000  231.000  232.000  233.000  234.000
+ 07-JAN-2001 00 / 7:  290.000  291.000  292.000  293.000  294.000
+list/e=5/y=1/z=1 transpose_tf(myvar)
+             VARIABLE : TRANSPOSE_TF(MYVAR)
+             SUBSET   : 5 by 6 by 7 points (LONGITUDE-T-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             E        : 5
+             0E       1E       2E       3E       4E     
+              1        2        3        4        5
+ ---- N:1 F:   1
+ 1   / 1:   30.000   31.000   32.000   33.000   34.000
+ 2   / 2:   10.000   11.000   12.000   13.000   14.000
+ 3   / 3:  -10.000   -9.000   -8.000   -7.000   -6.000
+ 4   / 4:  -30.000  -29.000  -28.000  -27.000  -26.000
+ 5   / 5:  -50.000  -49.000  -48.000  -47.000  -46.000
+ 6   / 6:  -70.000  -69.000  -68.000  -67.000  -66.000
+ ---- N:2 F:   2
+ 1   / 1:   90.000   91.000   92.000   93.000   94.000
+ 2   / 2:   70.000   71.000   72.000   73.000   74.000
+ 3   / 3:   50.000   51.000   52.000   53.000   54.000
+ 4   / 4:   30.000   31.000   32.000   33.000   34.000
+ 5   / 5:   10.000   11.000   12.000   13.000   14.000
+ 6   / 6:  -10.000   -9.000   -8.000   -7.000   -6.000
+ ---- N:3 F:   3
+ 1   / 1:  150.000  151.000  152.000  153.000  154.000
+ 2   / 2:  130.000  131.000  132.000  133.000  134.000
+ 3   / 3:  110.000  111.000  112.000  113.000  114.000
+ 4   / 4:   90.000   91.000   92.000   93.000   94.000
+ 5   / 5:   70.000   71.000   72.000   73.000   74.000
+ 6   / 6:   50.000   51.000   52.000   53.000   54.000
+ ---- N:4 F:   4
+ 1   / 1:  210.000  211.000  212.000  213.000  214.000
+ 2   / 2:  190.000  191.000  192.000  193.000  194.000
+ 3   / 3:  170.000  171.000  172.000  173.000  174.000
+ 4   / 4:  150.000  151.000  152.000  153.000  154.000
+ 5   / 5:  130.000  131.000  132.000  133.000  134.000
+ 6   / 6:  110.000  111.000  112.000  113.000  114.000
+ ---- N:5 F:   5
+ 1   / 1:  270.000  271.000  272.000  273.000  274.000
+ 2   / 2:  250.000  251.000  252.000  253.000  254.000
+ 3   / 3:  230.000  231.000  232.000  233.000  234.000
+ 4   / 4:  210.000  211.000  212.000  213.000  214.000
+ 5   / 5:  190.000  191.000  192.000  193.000  194.000
+ 6   / 6:  170.000  171.000  172.000  173.000  174.000
+ ---- N:6 F:   6
+ 1   / 1:  330.000  331.000  332.000  333.000  334.000
+ 2   / 2:  310.000  311.000  312.000  313.000  314.000
+ 3   / 3:  290.000  291.000  292.000  293.000  294.000
+ 4   / 4:  270.000  271.000  272.000  273.000  274.000
+ 5   / 5:  250.000  251.000  252.000  253.000  254.000
+ 6   / 6:  230.000  231.000  232.000  233.000  234.000
+ ---- N:7 F:   7
+ 1   / 1:  390.000  391.000  392.000  393.000  394.000
+ 2   / 2:  370.000  371.000  372.000  373.000  374.000
+ 3   / 3:  350.000  351.000  352.000  353.000  354.000
+ 4   / 4:  330.000  331.000  332.000  333.000  334.000
+ 5   / 5:  310.000  311.000  312.000  313.000  314.000
+ 6   / 6:  290.000  291.000  292.000  293.000  294.000
+list/F=25/y=1/z=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 7 by 3 points (LONGITUDE-TIME-E)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             F        : 20
+                        0E       1E       2E       3E       4E     
+                         1        2        3        4        5
+ ---- M:1 E:   0
+ 01-JAN-2001 00 / 1:    5.000    6.000    7.000    8.000    9.000
+ 02-JAN-2001 00 / 2:   65.000   66.000   67.000   68.000   69.000
+ 03-JAN-2001 00 / 3:  125.000  126.000  127.000  128.000  129.000
+ 04-JAN-2001 00 / 4:  185.000  186.000  187.000  188.000  189.000
+ 05-JAN-2001 00 / 5:  245.000  246.000  247.000  248.000  249.000
+ 06-JAN-2001 00 / 6:  305.000  306.000  307.000  308.000  309.000
+ 07-JAN-2001 00 / 7:  365.000  366.000  367.000  368.000  369.000
+ ---- M:2 E:   5
+ 01-JAN-2001 00 / 1:   10.000   11.000   12.000   13.000   14.000
+ 02-JAN-2001 00 / 2:   70.000   71.000   72.000   73.000   74.000
+ 03-JAN-2001 00 / 3:  130.000  131.000  132.000  133.000  134.000
+ 04-JAN-2001 00 / 4:  190.000  191.000  192.000  193.000  194.000
+ 05-JAN-2001 00 / 5:  250.000  251.000  252.000  253.000  254.000
+ 06-JAN-2001 00 / 6:  310.000  311.000  312.000  313.000  314.000
+ 07-JAN-2001 00 / 7:  370.000  371.000  372.000  373.000  374.000
+ ---- M:3 E:   10
+ 01-JAN-2001 00 / 1:   15.000   16.000   17.000   18.000   19.000
+ 02-JAN-2001 00 / 2:   75.000   76.000   77.000   78.000   79.000
+ 03-JAN-2001 00 / 3:  135.000  136.000  137.000  138.000  139.000
+ 04-JAN-2001 00 / 4:  195.000  196.000  197.000  198.000  199.000
+ 05-JAN-2001 00 / 5:  255.000  256.000  257.000  258.000  259.000
+ 06-JAN-2001 00 / 6:  315.000  316.000  317.000  318.000  319.000
+ 07-JAN-2001 00 / 7:  375.000  376.000  377.000  378.000  379.000
+list/F=25/y=1/z=1 transpose_te(myvar)
+             VARIABLE : TRANSPOSE_TE(MYVAR)
+             SUBSET   : 5 by 3 by 7 points (LONGITUDE-T-E)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             F        : 20
+             0E       1E       2E       3E       4E     
+              1        2        3        4        5
+ ---- M:1 E:   1
+ 1   / 1:    5.000    6.000    7.000    8.000    9.000
+ 2   / 2:   10.000   11.000   12.000   13.000   14.000
+ 3   / 3:   15.000   16.000   17.000   18.000   19.000
+ ---- M:2 E:   2
+ 1   / 1:   65.000   66.000   67.000   68.000   69.000
+ 2   / 2:   70.000   71.000   72.000   73.000   74.000
+ 3   / 3:   75.000   76.000   77.000   78.000   79.000
+ ---- M:3 E:   3
+ 1   / 1:  125.000  126.000  127.000  128.000  129.000
+ 2   / 2:  130.000  131.000  132.000  133.000  134.000
+ 3   / 3:  135.000  136.000  137.000  138.000  139.000
+ ---- M:4 E:   4
+ 1   / 1:  185.000  186.000  187.000  188.000  189.000
+ 2   / 2:  190.000  191.000  192.000  193.000  194.000
+ 3   / 3:  195.000  196.000  197.000  198.000  199.000
+ ---- M:5 E:   5
+ 1   / 1:  245.000  246.000  247.000  248.000  249.000
+ 2   / 2:  250.000  251.000  252.000  253.000  254.000
+ 3   / 3:  255.000  256.000  257.000  258.000  259.000
+ ---- M:6 E:   6
+ 1   / 1:  305.000  306.000  307.000  308.000  309.000
+ 2   / 2:  310.000  311.000  312.000  313.000  314.000
+ 3   / 3:  315.000  316.000  317.000  318.000  319.000
+ ---- M:7 E:   7
+ 1   / 1:  365.000  366.000  367.000  368.000  369.000
+ 2   / 2:  370.000  371.000  372.000  373.000  374.000
+ 3   / 3:  375.000  376.000  377.000  378.000  379.000
+ 
 can var /all
 set grid abstract
 can grid mygrd
@@ -33963,10 +34219,12 @@ can axis taxs
 can axis zaxs
 can axis yaxs
 can axis xaxs
- 
+can axis eaxs
+can axis faxs
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_unique_str2int
 ! bn_unique_str2int.jnl
  
@@ -34046,6 +34304,7 @@ list unique_str2int(blist), blist
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_sort
  
  
@@ -34779,6 +35038,7 @@ list my_vwnd
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_eof
 ! Benchmark for EOF functions
 ! Statically linked as of ferret V5.34
@@ -34849,6 +35109,7 @@ exit/script
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_compress_by
 let mask = {1,,1,,1} + 0*L[l=101:102] + 0*K[k=10:11]
 list compressi_by({10,20,30,40,50},mask)
@@ -34886,6 +35147,7 @@ list compressi_by({10,20,30,40,50},mask2)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_compress
  ! NOAA/PMEL TMAP
  ! Program FERRET
@@ -35034,6 +35296,7 @@ list compressk(a[i=91,j=35,l=1])
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bench_internal_string_functions
 ! test internal string functions:
 !       strlen
@@ -35129,6 +35392,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_ef_bench_extrema.jnl
 ! bench_extrema.jnl
 !  benchmark tests for findhi and findlo
@@ -35185,6 +35449,7 @@ list a[i=@ngd]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_ef_err541_date_delim.jnl
 ! err541_date_delim.jnl
 ! Fix errors occurring with delimted reads - four digit years were
@@ -35257,6 +35522,7 @@ if `date_check` then say **** DELIMTED READ DATE CHECK FAILED
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_ef_zaxr_fcns.jnl
 ! bn_ef_zaxr_functions.jnl
 ! 04-apr-05 *acm* move to tests of shared-obj efs.
@@ -35308,6 +35574,7 @@ list ddat_a, ddat_b, ddat_c
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_ef_curv_to_rect.jnl
 ! bn_ef_curv_to_rect.jnl
 ! Test of curvilinear to rectilinear regridding
@@ -35457,6 +35724,7 @@ shade fill_xy(sst[l=1], mask[l=1], 4)
 ! Compare SAMPLEXY and SAMPLEIJ
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_samplexy_sampleij
 ! bn_samplexy_sampleij
  
@@ -35493,8 +35761,10 @@ list/l=1 samplexy(sst,{321,323.5,325}, {1,1,1}), sampleij(sst,{321,323,324.5}, {
  
  
  
-GO bn_reset
+GO bn_reset bn_modulo_strides
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_modulo_strides
 GO bn_modulo_strides
 ! bn_modulo_strides.jnl
 ! 6/01 *sh*
@@ -35514,43 +35784,43 @@ cancel memory/all
 set mode diag
 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 (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    B        C:  6 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    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 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 (G022)          (AX015)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   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 (G022)          (AX015)   NORMAL    NORMAL    NORMAL
  strip regrid on X: A --> (G022)           @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  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:    18    20 dset:   1
- -DELETE A        M:339 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- rdstride A        C: 11 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:     2     2 dset:   1
- -DELETE A        M:339 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  A        M:339 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:332 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ -DELETE A        M:238 dset:   1 I:     18     20  J: -999 -999  K: -999 -999  L:   -999   -999
+ rdstride A        C: 11 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing A on X axis:        2        2 dset:   1
+ -DELETE A        M:238 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ nulrgd  A        M:238 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE A        M:243 dset:   1 I:     18     22  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL
  18   / 1:  18.0000
  20   / 2:  20.0000
  22   / 3:   2.0000
 list/nohead a[i=1:25:3]  ! no strides --> reads full region without strides
- dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    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 (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G022)          (AX015)   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 (G023)          (AX017)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX017)   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 (G023)          (AX017)   NORMAL    NORMAL    NORMAL
  strip regrid on X: A --> (G023)           @XACT
- strip moduloing A on X axis:     1    25 dset:   1
- reading A        M:327 dset:   1 I:    1   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:     1    20 dset:   1
- regrid  A        M:334 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ strip moduloing A on X axis:        1       25 dset:   1
+ reading A        M:241 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:231 dset:   1 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL
  1    / 1:   1.0000
  4    / 2:   4.0000
  7    / 3:   7.0000
@@ -35561,24 +35831,12 @@ list/nohead a[i=1:25:3]  ! no strides --> reads full region without strides
  22   / 8:   2.0000
  25   / 9:   5.0000
 list/nohead b            ! reuse of cached result
- dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M:334 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  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 (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    B        C:  6 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A --> (G022)           @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  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:    18    20 dset:   1
- -DELETE A        M:334 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- rdstride A        C: 11 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:     2     2 dset:   1
- -DELETE A        M:334 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  A        M:334 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:330 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL
+ -DELETE A        M:231 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 (G022)          (AX015)   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:243 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  18   / 1:  18.0000
  20   / 2:  20.0000
  22   / 3:   2.0000
@@ -35779,42 +36037,42 @@ list/nohead a[i=106:145:5]
 !  ***** STRING TESTS *****
 set mode diag
 list/nohead str[i=18:23:2] ! using rdstride
- dealloc  dynamic grid (G023)          (AX028)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M:337 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  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 (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX028)   NORMAL    NORMAL    NORMAL
+ -DELETE A        M:231 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 (G022)          (AX015)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G022)          (AX015)   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 (G022)          (AX015)   NORMAL    NORMAL    NORMAL
  strip regrid on X: STR --> (G022)           @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  M: -999 -999  N: -999 -999
- doing moduloing STR on X axis:    18    20 dset:   1
- -DELETE STR      M:337 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- rdstride STR      C:  9 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing STR on X axis:     2     2 dset:   1
- -DELETE STR      M:337 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  STR      M:337 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE STR      M:325 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX015)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ -DELETE STR      M:231 dset:   1 I:     18     20  J: -999 -999  K: -999 -999  L:   -999   -999
+ rdstride STR      C:  9 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing STR on X axis:        2        2 dset:   1
+ -DELETE STR      M:231 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ nulrgd  STR      M:231 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE STR      M:244 dset:   1 I:     18     22  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G022)          (AX015)   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 (G022)          (AX015)   NORMAL    NORMAL    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 (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G022)          (AX015)   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 (G023)          (AX017)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G023)          (AX017)   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 (G023)          (AX017)   NORMAL    NORMAL    NORMAL
  strip regrid on X: STR --> (G023)           @XACT
- strip moduloing STR on X axis:     1    25 dset:   1
- reading STR      M:325 dset:   1 I:    1   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing STR on X axis:     1    20 dset:   1
- regrid  STR      M:322 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ strip moduloing STR on X axis:        1       25 dset:   1
+ reading STR      M:244 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:240 dset:   1 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid (G023)          (AX017)   NORMAL    NORMAL    NORMAL
  1    / 1:"a"
  4    / 2:"d"
  7    / 3:"g"
@@ -35889,8 +36147,10 @@ list/nohead str[i=105:145:5]
  
 ! ******** V54 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_axis_viewports
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_viewports
 GO bn_axis_viewports
 ! bn_axis_viewports
 ! *sh* 9/01
@@ -36228,8 +36488,10 @@ ppl list yaxis
          AUTO    NORMAL NMTC=  0 LINT=  2 LABEL= -1 NSIG=  2 NTIC= 10
          YORG= 1.40E+00  AUTO LABELLING
  
-GO bn_reset
+GO bn_reset bn_strings
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_strings
 GO bn_strings
 ! bn_strings.jnl
  
@@ -36240,7 +36502,7 @@ GO bn_strings
  
 sh mode stupid
       MODE            STATE        ARGUMENT
-      STUPID           SET
+      STUPID        CANCELED
 cancel mode stupid  ! for testing in double precision
  
  
@@ -36364,8 +36626,8 @@ use test_string
 sh dat test_string
      currently SET data sets:
     1> ./test_string.cdf  (default)
- name     title                             I         J         K         L         M         N
- A        {"hello"}                        1:1       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        {"hello"}                        1:1       ...       ...       ...
  
 list a
              VARIABLE : {"hello"}
@@ -36381,8 +36643,8 @@ use test_string
 sh dat test_string
      currently SET data sets:
     1> ./test_string.cdf  (default)
- name     title                             I         J         K         L         M         N
- B        "one line of text"               ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ B        "one line of text"               ...       ...       ...       ...
  
 list b
              VARIABLE : "one line of text"
@@ -36404,11 +36666,11 @@ use test_string.cdf
 show data test_string
      currently SET data sets:
     1> ./test_string.cdf  (default)
- name     title                             I         J         K         L         M         N
- A        {"hello","goodbye", "wave to me  1:3       ...       ...       ...       ...       ...
- B        "one line of text"               ...       ...       ...       ...       ...       ...
- D        {"INITIALIZE", SPAWN:"ls *.str_  1:19      ...       ...       ...       ...       ...
- B2       "two line of text"               ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        {"hello","goodbye", "wave to me  1:3       ...       ...       ...
+ B        "one line of text"               ...       ...       ...       ...
+ D        {"INITIALIZE", SPAWN:"ls *.str_  1:19      ...       ...       ...
+ B2       "two line of text"               ...       ...       ...       ...
  
 list/nohead a
  1   / 1:"hello"     
@@ -36427,8 +36689,8 @@ use test_string
 show data test_string
      currently SET data sets:
     1> ./test_string.cdf  (default)
- name     title                             I         J         K         L         M         N
- D        partial filename list            2:5       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ D        partial filename list            2:5       ...       ...       ...
  
 list d
              VARIABLE : partial filename list
@@ -36527,8 +36789,6 @@ sh grid
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 list/nohead  ysequence({"a","b","c","d","e"})
  1   / 1:"a"
  2   / 2:"b"
@@ -36544,8 +36804,6 @@ sh grid
  ABSTRACT  Y             99999999 r   1                    1.E+08              full
  normal    Z
  normal    T
- normal    E
- normal    F
 list/nohead  zsequence({"a","b","c","d","e"})
  1   / 1:"a"
  2   / 2:"b"
@@ -36561,8 +36819,6 @@ sh grid
  normal    Y
  ABSTRACT  Z             99999999 r   1                    1.E+08              full
  normal    T
- normal    E
- normal    F
 list/nohead  tsequence({"a","b","c","d","e"})
  1   / 1:"a"
  2   / 2:"b"
@@ -36578,8 +36834,6 @@ sh grid
  normal    Y
  normal    Z
  ABSTRACT  T             99999999 r   1                    1.E+08              full
- normal    E
- normal    F
 let a = TSEQUENCE({"a","b","c","d","e"})
 list/l=2:3 a
              VARIABLE : TSEQUENCE({"a","b","c","d","e"})
@@ -36799,8 +37053,10 @@ list a[i=@rsum]
  
 set mode/last stupid
  
-GO bn_reset
+GO bn_reset bn_axcontrol
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axcontrol
 GO bn_axcontrol
  ! NOAA/PMEL TMAP
  ! Program FERRET (alpha)
@@ -36841,8 +37097,10 @@ 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}
  
-GO bn_reset
+GO bn_reset bn_vec_curv
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_vec_curv
 GO bn_vec_curv
 ! bn_vec_curv.jnl
 !
@@ -36915,8 +37173,10 @@ vec/title="Stretched grid" a,b,mxpage,mypage
 can mode meta
 set mode logo
  
-GO bn_reset
+GO bn_reset bn_delimited_read
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_delimited_read
 GO bn_delimited_read
 ! bn_delimited_read.jnl
 ! 10/01 *sh*
@@ -36940,53 +37200,53 @@ show data/var
      currently SET data sets:
     1> ./bn_delimited_read_1.dat  (default)
  
- name     title                             I         J         K         L         M         N
- V1       V1                               1:7       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G023) with -1.E+34 for missing data
              X=0.5:7.5  
- V2       V2                               1:7       ...       ...       ...       ...       ...
+ V2       V2                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G023) with -1.E+34 for missing data
              X=0.5:7.5  
- V3       V3                               1:7       ...       ...       ...       ...       ...
+ V3       V3                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G023) with -1.E+34 for missing data
              X=0.5:7.5  
- V4       V4                               1:7       ...       ...       ...       ...       ...
+ V4       V4                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G023) with -1.E+34 for missing data
              X=0.5:7.5  
- V5       V5                               1:7       ...       ...       ...       ...       ...
+ V5       V5                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G023) with -1.E+34 for missing data
              X=0.5:7.5  
- V6       V6                               1:7       ...       ...       ...       ...       ...
+ V6       V6                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G023) with -1.E+34 for missing data
              X=0.5:7.5  
- V7       V7                               1:7       ...       ...       ...       ...       ...
+ V7       V7                               1:7       ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G023) with -1.E+34 for missing data
              X=0.5:7.5  
- V8       V8                               1:7       ...       ...       ...       ...       ...
+ V8       V8                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G023) with -1.E+34 for missing data
              X=0.5:7.5  
- V9       V9                               1:7       ...       ...       ...       ...       ...
+ V9       V9                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G023) with -1.E+34 for missing data
              X=0.5:7.5  
- V10      V10                              1:7       ...       ...       ...       ...       ...
+ V10      V10                              1:7       ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G023) with -1.E+34 for missing data
@@ -37020,13 +37280,13 @@ file/format=delim/var=a1,a2,a3,a4,a5,a6,a7 bn_delimited_read_1.dat
 list a1,a2,a3,a4,a5,a6,a7
              DATA SET: ./bn_delimited_read_1.dat
              X: 0.5 to 7.5
- Column  1: A1
- Column  2: A2
- Column  3: A3
- Column  4: A4
- Column  5: A5
- Column  6: A6
- Column  7: A7
+ Column  1: A1 is a1
+ Column  2: A2 is a2
+ Column  3: A3 is a3
+ Column  4: A4 is a4
+ Column  5: A5 is a5
+ Column  6: A6 is a6
+ Column  7: A7 is a7
                   A1    A2     A3     A4     A5    A6     A7
 1   / 1: "col1"       "col2" "col3" "col4" "col5" " "      ....
 2   / 2: "one"        " "    "1.1"  "24S"  "130E" " "    10.000
@@ -37088,21 +37348,21 @@ file/format=delim/skip=1/type=text/var=a1,a2,a3,a4,a5 bn_delimited_read_1.dat
 show data
      currently SET data sets:
     1> ./bn_delimited_read_1.dat  (default)
- name     title                             I         J         K         L         M         N
- A1       A1                               1:7       ...       ...       ...       ...       ...
- A2       A2                               1:7       ...       ...       ...       ...       ...
- A3       A3                               1:7       ...       ...       ...       ...       ...
- A4       A4                               1:7       ...       ...       ...       ...       ...
- A5       A5                               1:7       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A1       a1                               1:7       ...       ...       ...
+ A2       a2                               1:7       ...       ...       ...
+ A3       a3                               1:7       ...       ...       ...
+ A4       a4                               1:7       ...       ...       ...
+ A5       a5                               1:7       ...       ...       ...
  
 list a1,a2,a3,a4,a5
              DATA SET: ./bn_delimited_read_1.dat
              X: 0.5 to 6.5
- Column  1: A1
- Column  2: A2
- Column  3: A3
- Column  4: A4
- Column  5: A5
+ Column  1: A1 is a1
+ Column  2: A2 is a2
+ Column  3: A3 is a3
+ Column  4: A4 is a4
+ Column  5: A5 is a5
                   A1   A2   A3    A4    A5
 1   / 1: "one"        " " "1.1" "24S" "130E"
 2   / 2: "two"        " " "2.2" "24N" "130W"
@@ -37183,11 +37443,11 @@ columns/grid=g1/var=c1,c2,c3,c4,c5 bn_delimited_read_1.dat
 list c1,c2,c3,c4,c5
              DATA SET: ./bn_delimited_read_1.dat
              X: 1
- Column  1: C1
- Column  2: C2
- Column  3: C3
- Column  4: C4
- Column  5: C5
+ Column  1: C1 is c1
+ Column  2: C2 is c2
+ Column  3: C3 is c3
+ Column  4: C4 is c4
+ Column  5: C5 is c5
              C1    C2     C3     C4     C5
 I / *:    "col1" "col2" "col3" "col4" "col5"
  
@@ -37196,23 +37456,25 @@ cancel data/all
 ! file using blank as a delimiter
 ! Note record 1 has blanks at end of record
 ! Note record of many blanks sandwiched in as record 2
+! (note prev. to 7/13/2016 the file had incorrect date formats with the year first.
+!  File replaced so it can be read after the fix for ticket 2449.)
 file/form=delimited bn_delimited_read_2.dat
 show data
      currently SET data sets:
     1> ./bn_delimited_read_2.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:3       ...       ...       ...
  
 file/form=delimited/delimiter=" " bn_delimited_read_2.dat
 show data
      currently SET data sets:
     1> ./bn_delimited_read_2.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:3       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V2       V2                               1:3       ...       ...       ...       ...       ...
+ V2       V2                               1:3       ...       ...       ...
        (Time of day)
- V3       V3                               1:3       ...       ...       ...       ...       ...
+ V3       V3                               1:3       ...       ...       ...
        (all values missing)
  
 list v1,v2
@@ -37221,9 +37483,9 @@ list v1,v2
  Column  1: V1 is V1 (days)(Julian days since 1-Jan-1900)
  Column  2: V2 is V2 (hours)(Time of day)
               V1     V2
-1   / 1:  37965.0  12.5833
+1   / 1:  29921.0  12.5833
 2   / 2:     ....     ....
-3   / 3:  39051.0  13.7514
+3   / 3:  -1790.0  13.7514
  
 ! ==========
 ! look at the date/time file
@@ -37255,18 +37517,18 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
- V2       V2                               1:4       ...       ...       ...       ...       ...
- V3       V3                               1:4       ...       ...       ...       ...       ...
- V4       V4                               1:4       ...       ...       ...       ...       ...
- V5       V5                               1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:4       ...       ...       ...
+ V2       V2                               1:4       ...       ...       ...
+ V3       V3                               1:4       ...       ...       ...
+ V4       V4                               1:4       ...       ...       ...
+ V5       V5                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V6       V6                               1:4       ...       ...       ...       ...       ...
+ V6       V6                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V7       V7                               1:4       ...       ...       ...       ...       ...
+ V7       V7                               1:4       ...       ...       ...
        (Time of day)
- V8       V8                               1:4       ...       ...       ...       ...       ...
+ V8       V8                               1:4       ...       ...       ...
        (Time of day)
  
  
@@ -37304,22 +37566,22 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V2       V2                               1:4       ...       ...       ...       ...       ...
+ V2       V2                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V3       V3                               1:4       ...       ...       ...       ...       ...
+ V3       V3                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V4       V4                               1:4       ...       ...       ...       ...       ...
+ V4       V4                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V5       V5                               1:4       ...       ...       ...       ...       ...
+ V5       V5                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V6       V6                               1:4       ...       ...       ...       ...       ...
+ V6       V6                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V7       V7                               1:4       ...       ...       ...       ...       ...
+ V7       V7                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V8       V8                               1:4       ...       ...       ...       ...       ...
+ V8       V8                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
  
  
@@ -37343,22 +37605,22 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:4       ...       ...       ...
        (Time of day)
- V2       V2                               1:4       ...       ...       ...       ...       ...
+ V2       V2                               1:4       ...       ...       ...
        (Time of day)
- V3       V3                               1:4       ...       ...       ...       ...       ...
+ V3       V3                               1:4       ...       ...       ...
        (Time of day)
- V4       V4                               1:4       ...       ...       ...       ...       ...
+ V4       V4                               1:4       ...       ...       ...
        (Time of day)
- V5       V5                               1:4       ...       ...       ...       ...       ...
+ V5       V5                               1:4       ...       ...       ...
        (Time of day)
- V6       V6                               1:4       ...       ...       ...       ...       ...
+ V6       V6                               1:4       ...       ...       ...
        (Time of day)
- V7       V7                               1:4       ...       ...       ...       ...       ...
+ V7       V7                               1:4       ...       ...       ...
        (Time of day)
- V8       V8                               1:4       ...       ...       ...       ...       ...
+ V8       V8                               1:4       ...       ...       ...
        (Time of day)
  
  
@@ -37382,22 +37644,22 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V2       V2                               1:4       ...       ...       ...       ...       ...
+ V2       V2                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V3       V3                               1:4       ...       ...       ...       ...       ...
+ V3       V3                               1:4       ...       ...       ...
        (Time of day)
- V4       V4                               1:4       ...       ...       ...       ...       ...
+ V4       V4                               1:4       ...       ...       ...
        (Time of day)
- V5       V5                               1:4       ...       ...       ...       ...       ...
+ V5       V5                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V6       V6                               1:4       ...       ...       ...       ...       ...
+ V6       V6                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V7       V7                               1:4       ...       ...       ...       ...       ...
+ V7       V7                               1:4       ...       ...       ...
        (Time of day)
- V8       V8                               1:4       ...       ...       ...       ...       ...
+ V8       V8                               1:4       ...       ...       ...
        (Time of day)
  
  
@@ -37417,14 +37679,14 @@ list v1,v3,v5,v7
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V3       V3                               1:4       ...       ...       ...       ...       ...
+ V3       V3                               1:4       ...       ...       ...
        (Time of day)
- V5       V5                               1:4       ...       ...       ...       ...       ...
+ V5       V5                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V7       V7                               1:4       ...       ...       ...       ...       ...
+ V7       V7                               1:4       ...       ...       ...
        (Time of day)
  
  
@@ -37512,364 +37774,364 @@ show data/full
      currently SET data sets:
     1> ./bn_delimited_read_CO2.dat  (default)
  
- name     title                             I         J         K         L         M         N
- V1       V1                               1:20      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:20      ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V2       V2                               1:20      ...       ...       ...       ...       ...
+ V2       V2                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V3       V3                               1:20      ...       ...       ...       ...       ...
+ V3       V3                               1:20      ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V4       V4                               1:20      ...       ...       ...       ...       ...
+ V4       V4                               1:20      ...       ...       ...
        (Julian days since 1-Jan-1900)
             Data type = NUMERIC
             Conversion /TYPE=DATE
              days on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V5       V5                               1:20      ...       ...       ...       ...       ...
+ V5       V5                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V6       V6                               1:20      ...       ...       ...       ...       ...
+ V6       V6                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V7       V7                               1:20      ...       ...       ...       ...       ...
+ V7       V7                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V8       V8                               1:20      ...       ...       ...       ...       ...
+ V8       V8                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V9       V9                               1:20      ...       ...       ...       ...       ...
+ V9       V9                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V10      V10                              1:20      ...       ...       ...       ...       ...
+ V10      V10                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V11      V11                              1:20      ...       ...       ...       ...       ...
+ V11      V11                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V12      V12                              1:20      ...       ...       ...       ...       ...
+ V12      V12                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V13      V13                              1:20      ...       ...       ...       ...       ...
+ V13      V13                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V14      V14                              1:20      ...       ...       ...       ...       ...
+ V14      V14                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V15      V15                              1:20      ...       ...       ...       ...       ...
+ V15      V15                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V16      V16                              1:20      ...       ...       ...       ...       ...
+ V16      V16                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V17      V17                              1:20      ...       ...       ...       ...       ...
+ V17      V17                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V18      V18                              1:20      ...       ...       ...       ...       ...
+ V18      V18                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V19      V19                              1:20      ...       ...       ...       ...       ...
+ V19      V19                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V20      V20                              1:20      ...       ...       ...       ...       ...
+ V20      V20                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V21      V21                              1:20      ...       ...       ...       ...       ...
+ V21      V21                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V22      V22                              1:20      ...       ...       ...       ...       ...
+ V22      V22                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V23      V23                              1:20      ...       ...       ...       ...       ...
+ V23      V23                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V24      V24                              1:20      ...       ...       ...       ...       ...
+ V24      V24                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V25      V25                              1:20      ...       ...       ...       ...       ...
+ V25      V25                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V26      V26                              1:20      ...       ...       ...       ...       ...
+ V26      V26                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V27      V27                              1:20      ...       ...       ...       ...       ...
+ V27      V27                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V28      V28                              1:20      ...       ...       ...       ...       ...
+ V28      V28                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V29      V29                              1:20      ...       ...       ...       ...       ...
+ V29      V29                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V30      V30                              1:20      ...       ...       ...       ...       ...
+ V30      V30                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V31      V31                              1:20      ...       ...       ...       ...       ...
+ V31      V31                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V32      V32                              1:20      ...       ...       ...       ...       ...
+ V32      V32                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V33      V33                              1:20      ...       ...       ...       ...       ...
+ V33      V33                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V34      V34                              1:20      ...       ...       ...       ...       ...
+ V34      V34                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V35      V35                              1:20      ...       ...       ...       ...       ...
+ V35      V35                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V36      V36                              1:20      ...       ...       ...       ...       ...
+ V36      V36                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V37      V37                              1:20      ...       ...       ...       ...       ...
+ V37      V37                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V38      V38                              1:20      ...       ...       ...       ...       ...
+ V38      V38                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V39      V39                              1:20      ...       ...       ...       ...       ...
+ V39      V39                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V40      V40                              1:20      ...       ...       ...       ...       ...
+ V40      V40                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V41      V41                              1:20      ...       ...       ...       ...       ...
+ V41      V41                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V42      V42                              1:20      ...       ...       ...       ...       ...
+ V42      V42                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V43      V43                              1:20      ...       ...       ...       ...       ...
+ V43      V43                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V44      V44                              1:20      ...       ...       ...       ...       ...
+ V44      V44                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V45      V45                              1:20      ...       ...       ...       ...       ...
+ V45      V45                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V46      V46                              1:20      ...       ...       ...       ...       ...
+ V46      V46                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V47      V47                              1:20      ...       ...       ...       ...       ...
+ V47      V47                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V48      V48                              1:20      ...       ...       ...       ...       ...
+ V48      V48                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V49      V49                              1:20      ...       ...       ...       ...       ...
+ V49      V49                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V50      V50                              1:20      ...       ...       ...       ...       ...
+ V50      V50                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V51      V51                              1:20      ...       ...       ...       ...       ...
+ V51      V51                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V52      V52                              1:20      ...       ...       ...       ...       ...
+ V52      V52                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V53      V53                              1:20      ...       ...       ...       ...       ...
+ V53      V53                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V54      V54                              1:20      ...       ...       ...       ...       ...
+ V54      V54                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V55      V55                              1:20      ...       ...       ...       ...       ...
+ V55      V55                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V56      V56                              1:20      ...       ...       ...       ...       ...
+ V56      V56                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V57      V57                              1:20      ...       ...       ...       ...       ...
+ V57      V57                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V58      V58                              1:20      ...       ...       ...       ...       ...
+ V58      V58                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V59      V59                              1:20      ...       ...       ...       ...       ...
+ V59      V59                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V60      V60                              1:20      ...       ...       ...       ...       ...
+ V60      V60                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V61      V61                              1:20      ...       ...       ...       ...       ...
+ V61      V61                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V62      V62                              1:20      ...       ...       ...       ...       ...
+ V62      V62                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V63      V63                              1:20      ...       ...       ...       ...       ...
+ V63      V63                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V64      V64                              1:20      ...       ...       ...       ...       ...
+ V64      V64                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V65      V65                              1:20      ...       ...       ...       ...       ...
+ V65      V65                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V66      V66                              1:20      ...       ...       ...       ...       ...
+ V66      V66                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V67      V67                              1:20      ...       ...       ...       ...       ...
+ V67      V67                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V68      V68                              1:20      ...       ...       ...       ...       ...
+ V68      V68                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V69      V69                              1:20      ...       ...       ...       ...       ...
+ V69      V69                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V70      V70                              1:20      ...       ...       ...       ...       ...
+ V70      V70                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V71      V71                              1:20      ...       ...       ...       ...       ...
+ V71      V71                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
              X=0.5:20.5  
- V72      V72                              1:20      ...       ...       ...       ...       ...
+ V72      V72                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G022) with -1.E+34 for missing data
@@ -37981,8 +38243,10 @@ cancel mode ignore
  
 ! ******** V5.41 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn541_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn541_bug_fixes
 GO bn541_bug_fixes
 ! bn541_bug_fixes.jnl
 ! test various fixes that went into version 5.41
@@ -37990,6 +38254,7 @@ GO bn541_bug_fixes
 !
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! tics on horiz log axes were wrong; (plot only)
 ! GO bn_reset
@@ -37999,6 +38264,7 @@ cancel mode verify
 !missing vertices in polygon call
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_polymissing
 ! err540_polymissing.jnl
 ! 3/02 *acm*
@@ -38030,6 +38296,7 @@ polygon  xvertex1,yvertex,values
 ! formatting axis label numbers
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_ill_format.jnl
 ! err540_ill_format.jnl
 ! 3/02 *acm*
@@ -38048,6 +38315,7 @@ plot/trans/i=1:100  0.001 - 0.002/ i
 ! variable permutation in netCDF writes
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_write_order
 ! err540_write_order.jnl
 ! *sh* 3/02
@@ -38126,6 +38394,7 @@ sp rm -f test_bad_order.cdf
 !@AVE error when plotting unlike grids together
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_ax_ave
 !err540_ax_ave.jnl
 ! 3/02 *acm
@@ -38142,6 +38411,7 @@ plot/x=140w/y=0/sym/line sst,sst[gt=t2 at ave]
 !Make PPL AXSET settings persist, but not settings made w/ qualifiers /AXES= or /NOAXES
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_axset
 !err540_axset.jnl
 ! 3/02 *acm
@@ -38176,6 +38446,7 @@ PPL axset 1,1,1,1
 !Previously couldn't do PLOT/VS/DASH, but no reason not to allow it.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_vs_dash
 ! PLOT/VS/DASH  previously was not allowed.
  
@@ -38219,6 +38490,7 @@ plot/over/thick/dash/color=blue 50*sin(ypts/3)+700, 30*cos(ypts/3)+800, 20*cos(y
 !overlay on polygon plots
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_poly_overlay
 !overlay on polygon plots
  
@@ -38228,6 +38500,7 @@ shade/over/i=1:2/j=0:2/patt i+j
 !polytube failed on plot/over; go polytube, because YAXIS_MIN, _MAX not defined.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_axis_symbols
 ! err540_axis_symbols.jnl
 ! 3/02 *acm*
@@ -38260,6 +38533,7 @@ XAXIS_MAX = "10.00000"
 !nested repeat loops and parsing parentheses
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_parse_repeat
 ! err540_parse_repeat.jnl
 ! 3/03 *acm
@@ -38305,6 +38579,7 @@ why not
 ! appending a scalar to NetCDF file
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_cd_use_recdim
 ! err540_cd_use_recdim
 ! 3/02 *sh*
@@ -38326,9 +38601,9 @@ use profiles.nc
 sh data
      currently SET data sets:
     1> ./profiles.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     X[GX=XPROFILE] + Y[GY=YLON] + Z  1:50      1:10      1:10      1:10      ...       ...
- MAXPROF  5                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ TEMP     X[GX=XPROFILE] + Y[GY=YLON] + Z  1:50      1:10      1:10      1:10
+ MAXPROF  5                                ...       ...       ...       ...
  
 sp rm -f profiles.nc
  
@@ -38347,6 +38622,7 @@ sp rm -f profiles.nc
 !missing data in xpts,ypts sample points wasnt checked
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_samplexy_missing
 ! err540_samplexy_missing.jnl
 ! 3/03 *acm
@@ -38379,8 +38655,10 @@ list asst
 ! test the fixed delta stride bug
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_strides_rev.jnl
 ! err540_strides_rev.jnl
+! V702: *sh* 2/2017 - modified this bench script
  
 ! reported Feb '02
 ! fixed April 17, '02
@@ -38415,35 +38693,34 @@ cancel var/all
  
 set mode stupid
 set mode diag
-set mem/size=0.05
+! *sh* 2/17 - such a small memory size makes it impossible to succeed
+! with the command under the new dynamic memory management
+!set mem/size=0.05
+set mem/size=1   ! use this larger size, instead
 show mem/free
- Current size of FERRET memory cache: 0.2 MegaWords  (1 word = 8 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 100
- 
-            number of free memory blocks: 2000
-            largest free region: 2000
-            number of free regions: 1
-            free memory table slots: 500
-            number of UN-CACHED variables: 0
+    SET MEMORY/SIZE: 1000000 words
+    Peak demand: 0 words
+    Current cache: 0 words
+    Total table slots: 500
+    Free table slots: 500
+    Un-cached variables: 0
  
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  100  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    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 (G005)          (AX015)   YAX1_100  NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL
+ allocate dynamic grid (G005)          (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
- 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  M: -999 -999  N: -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  M: -999 -999  N: -999 -999
- nulrgd  A        M:  1 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:  2 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : IF I EQ J THEN 1 ELSE A0
                         regrid: 10 delta on X
              FILENAME : test_100x100.nc
@@ -38555,27 +38832,25 @@ show grid
  Last successful data access was on grid (G005)
     GRID (G005)
  name       axis              # pts   start                end                 subset
- (AX015)   X                   10 r   1                    91                  9 pts
+ (AX015)   X                   10 r   1                    91                  10 pts
  YAX1_100  Y                  100 r   1                    100                 full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! 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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    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
- 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  M: -999 -999  N: -999 -999
- doing reversing A on Y axis:     1   100 dset:   1
- -DELETE A        M:  2 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  A        M:  2 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:  3 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G005)          (AX015)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ 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
 setting up 2D plot
- -DELETE A        M:  3 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M:247 dset:   1 I:      1     10  J:    1  100  K: -999 -999  L:   -999   -999
 PPL plot 279  complete
 ppl list stats
 
@@ -38809,6 +39084,7 @@ set mem/size=25.6
 ! unknown data type for clauses with constants only
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_data_type.jnl
 ! err540_data_type
 ! 2/19/02 *sh*
@@ -38842,6 +39118,7 @@ plot IF {1,3,5} GE 3 THEN 1  ! data type unknown
 ! gridding scattered points to modulo axis had bug
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_modscat.jnl
 ! test gridding scattered points to modulo axis.
 ! Show Southern hemisphere.
@@ -38865,6 +39142,7 @@ plot/vs/over xpts[i=1:1000]+360, ypts[i=1:1000]
 ! make sure the USE bug reported 5/01 by A Wittenberg is fixed
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_use.jnl
 ! err540_use.jnl
 !
@@ -38895,17 +39173,17 @@ use g.nc
 sh data
      currently SET data sets:
     1> ./f.nc
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        1                                ...       ...       ...       ...
  
     2> ./f2.nc
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
- B        2                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        1                                ...       ...       ...       ...
+ B        2                                ...       ...       ...       ...
  
     3> ./g.nc  (default)
- name     title                             I         J         K         L         M         N
- B        2                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ B        2                                ...       ...       ...       ...
  
 can data/all
  
@@ -38914,19 +39192,19 @@ use f.nc
 sh data
      currently SET data sets:
     1> ./f.nc  (default)
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        1                                ...       ...       ...       ...
  
 use g.nc
 sh data
      currently SET data sets:
     1> ./f.nc
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        1                                ...       ...       ...       ...
  
     2> ./g.nc  (default)
- name     title                             I         J         K         L         M         N
- B        2                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ B        2                                ...       ...       ...       ...
  
 can dat 1
  
@@ -38937,13 +39215,13 @@ use f2.nc
 show dat
      currently SET data sets:
     1> ./f2.nc  (default)
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
- B        2                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        1                                ...       ...       ...       ...
+ B        2                                ...       ...       ...       ...
  
     2> ./g.nc
- name     title                             I         J         K         L         M         N
- B        2                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ B        2                                ...       ...       ...       ...
  
  
 ! This should work
@@ -38954,8 +39232,10 @@ list b[d=1]
  
  
  
-GO bn_reset
+GO bn_reset bn_cancel_axes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cancel_axes
 GO bn_cancel_axes
 ! bn_cancel_axes.jnl
  
@@ -38968,6 +39248,7 @@ set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! longax cancel axis axname
 repeat/k=1:10 go bn_cancel_axes_1.sub
 !-> REPEAT: K=1
@@ -39093,6 +39374,7 @@ can data longax.dat
  
  go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! longax cancel axis/all
  
 ! Note: cancel axes/all tested in err541_cancel_axes.jnl
@@ -39103,6 +39385,7 @@ cancel mode verify
 ! test remaining axes are intact when we cancel one.
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 define axis/x ax1={2,4,5,6,9}
 define axis/x ax2={30,60,90,100}
 sh axis/x ax2
@@ -39206,8 +39489,10 @@ T0 = 01-JAN-0000 00:00:00
  
 ! ******** V5.42 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn542_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn542_bug_fixes
 GO bn542_bug_fixes
 ! bn542_bug_fixes.jnl
 ! test various fixes that went into version 5.42
@@ -39217,6 +39502,7 @@ GO bn542_bug_fixes
 ! Interior tics disappear on FILL plots
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err541_fill_tics
 ! pplus tics bug - pre 5.42, fill plots overlaid interior tics.
  
@@ -39235,6 +39521,7 @@ ppl tics,,.25,,.25,-1,-1
 ! are used rather than date specifications
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err541_non_gregorian
 !From Andrew Wittenberg, non-Gregorian time axis bug 01 Oct 2002
 ! pre-542, second axis has just one point.
@@ -39267,6 +39554,7 @@ CALENDAR = JULIAN
 ! Could not write or read a NetCDF file with a 4-D string variable.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err541_string4d
  ! Write a 4-D NetCDF file with a string variable.
  
@@ -39324,8 +39612,8 @@ use string4d.nc
 sh data
      currently SET data sets:
     1> ./string4d.nc  (default)
- name     title                             I         J         K         L         M         N
- AXY      RESHAPE (A,RVAR)                 1:2       1:3       1:4       1:2       ...       ...
+ name     title                             I         J         K         L
+ AXY      RESHAPE (A,RVAR)                 1:2       1:3       1:4       1:2
  
 list axy
              VARIABLE : RESHAPE (A,RVAR)
@@ -39372,6 +39660,7 @@ list axy
 ! Cancel axis/all did not check whether axes were in use
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err541_cancel_axes
 ! Check that an axis in use cannot be cancelled.
 ! 4/2013 changes for Ferret with climatological axes
@@ -39417,13 +39706,16 @@ show axis test_i*
 ! 5/4/05 *acm* Move to bn_ef_err541_date_delim; pulling all jnls that call shared-obj efs out
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! GO err541_date_delim
  
  
 ! ******** V5.50 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_subspan_modulo
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_subspan_modulo
 GO bn_subspan_modulo
 ! bn_subspan_modulo.jnl
 ! *sh* 11/02
@@ -39719,11 +40011,11 @@ set mode diag
 set mode stupid  ! always re-read and recompute
 lsx $1  ! default avoids void points
  !-> list/order=x vreg
- dealloc  dynamic grid GFJ3            XAX_SUBSPANORMAL    NORMAL    TAX_SUBSPANORMAL    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 GFJ1            XAX_SUBSPANORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VREG     M:  2 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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 GFJ1            XAX_SUBSPANORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VREG     M:247 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : X[GX=XAX_SUBSPAN] -40 + 10
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 6 points (X)
@@ -39733,36 +40025,36 @@ lsx $1  ! default avoids void points
 lsxn/x=100 $1  ! void point above, alone (via "modulo-void-filling")
  !-> list/order=x/nohead/x=100 vreg
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     7     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VREG     M:  5 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing modulo-void-filling VREG on X axis:     6     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        7        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VREG     M:249 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing modulo-void-filling VREG on X axis:        6        6 dset:   1
         ....
 lsxn/x=0 $1 ! void point below, alone (via modulo)
  !-> list/order=x/nohead/x=0 vreg
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    0    0  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VREG on X axis:     0     0 dset:   1
- reading VREG     M:  8 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing VREG on X axis:     6     6 dset:   1
+ eval    EX#1     C:  5 dset:   1 I:      0      0  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing VREG on X axis:        0        0 dset:   1
+ reading VREG     M:229 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing VREG on X axis:        6        6 dset:   1
         ....
 lsxn/x=45:100 $1  ! void above (via subspan-fill)
  !-> list/order=x/nohead/x=45:100 vreg
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     5     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VREG     M:  3 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing modulo-void-filling VREG on X axis:     5     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        5        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      5      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VREG     M:239 dset:   1 I:      5      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing modulo-void-filling VREG on X axis:        5        6 dset:   1
           15.0000  16.0000     ....
 lsxn/x=0:100 $1  ! voids above & below (via modulo)
  !-> list/order=x/nohead/x=0:100 vreg
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     0     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    0    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VREG on X axis:     0     6 dset:   1
- reading VREG     M:  9 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing VREG on X axis:     1     6 dset:   1
- doing modulo-void-filling VREG on X axis:     0     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        0        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing VREG on X axis:        0        6 dset:   1
+ reading VREG     M:248 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing VREG on X axis:        1        6 dset:   1
+ doing modulo-void-filling VREG on X axis:        0        6 dset:   1
              ....  11.0000  12.0000  13.0000  14.0000  15.0000  16.0000     ....
 set mode/last diag
 lsxn/x=50:160 $1  ! modulo above
@@ -40015,39 +40307,39 @@ l200n/order=x $2[l=1,i=0:14]
              ....  11.0000  12.0000  13.0000  14.0000  15.0000  16.0000     ....  11.0000  12.0000  13.0000  14.0000  15.0000  16.0000     ....
 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_SUBSPANORMAL    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)          (AX025)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- dealloc  dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- allocate dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ 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
+ 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
- found   V2D_REG  M: 71 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  V2D_REG  M: 72 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          (AX025)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ 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
              ....  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_SUBSPANORMAL    NORMAL
- -DELETE V2D_REG  M: 73 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  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 (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)   NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)   NORMAL    NORMAL
- allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)   NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          (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)
+ 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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  V2D_REG  M: 73 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- -DELETE V2D_REG  M: 74 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX025)   NORMAL    NORMAL
+ 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)
  16-JAN-0000 / 1:   11.000
  16-MAR-0000 / 2:   71.000
  15-MAY-0000 / 3:  131.000
@@ -40250,11 +40542,11 @@ set mode diag
 set mode stupid  ! always re-read and recompute
 lsx $1  ! default avoids void points
  !-> list/order=x virr
- dealloc  dynamic grid GFJ4            XIRREG_SUBNORMAL    NORMAL    TIRREG_SUBNORMAL    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 GFJ2            XIRREG_SUBNORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VIRR     M: 80 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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 GFJ2            XIRREG_SUBNORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VIRR     M:170 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : X[GX=XIRREG_SUBSPAN] -40 + 10
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 6 points (X)
@@ -40264,36 +40556,36 @@ lsx $1  ! default avoids void points
 lsxn/x=100 $1  ! void point above, alone (via "modulo-void-filling")
  !-> list/order=x/nohead/x=100 virr
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     7     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VIRR     M: 81 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing modulo-void-filling VIRR on X axis:     6     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        7        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VIRR     M:169 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing modulo-void-filling VIRR on X axis:        6        6 dset:   1
         ....
 lsxn/x=0 $1 ! void point below, alone (via modulo)
  !-> list/order=x/nohead/x=0 virr
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    0    0  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VIRR on X axis:     0     0 dset:   1
- reading VIRR     M: 83 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing VIRR on X axis:     6     6 dset:   1
+ eval    EX#1     C:  5 dset:   1 I:      0      0  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing VIRR on X axis:        0        0 dset:   1
+ reading VIRR     M:167 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing VIRR on X axis:        6        6 dset:   1
         ....
 lsxn/x=45:100 $1  ! void above (via subspan-fill)
  !-> list/order=x/nohead/x=45:100 virr
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     5     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VIRR     M: 85 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing modulo-void-filling VIRR on X axis:     5     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        5        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      5      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VIRR     M:165 dset:   1 I:      5      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing modulo-void-filling VIRR on X axis:        5        6 dset:   1
           15.0000  16.0000     ....
 lsxn/x=0:100 $1  ! voids above & below (via modulo)
  !-> list/order=x/nohead/x=0:100 virr
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     0     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    0    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VIRR on X axis:     0     6 dset:   1
- reading VIRR     M: 87 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing VIRR on X axis:     1     6 dset:   1
- doing modulo-void-filling VIRR on X axis:     0     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        0        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing VIRR on X axis:        0        6 dset:   1
+ reading VIRR     M:163 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing VIRR on X axis:        1        6 dset:   1
+ doing modulo-void-filling VIRR on X axis:        0        6 dset:   1
              ....  11.0000  12.0000  12.1000  14.0000  15.0000  16.0000     ....
 set mode/last diag
 lsxn/x=50:160 $1  ! modulo above
@@ -40546,39 +40838,39 @@ l200n/order=x $2[l=1,i=0:14]
              ....  11.0000  12.0000  12.1000  14.0000  15.0000  16.0000     ....  11.0000  12.0000  12.1000  14.0000  15.0000  16.0000     ....
 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_SUBNORMAL    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)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- allocate dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ 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
+ 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
- found   V2D_IRR  M:150 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  V2D_IRR  M:151 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ 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
              ....  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_SUBNORMAL    NORMAL
- -DELETE V2D_IRR  M:152 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  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 (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
- allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (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)
+ 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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  V2D_IRR  M:152 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- -DELETE V2D_IRR  M:153 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX017)   NORMAL    NORMAL
+ 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)
  16-JAN-0000 / 1:   11.000
  15-MAR-0000 / 2:   70.249
  15-MAY-0000 / 3:  131.249
@@ -40672,8 +40964,10 @@ list $1_strings[i=1013:1024] 	! via IS_MODULO
  
  
  
-GO bn_reset
+GO bn_reset bn_dots
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dots
 GO bn_dots
 ! PLOT/SYMBOL=DOT  qualifiers
 ! *acm* 12/02
@@ -40695,8 +40989,10 @@ 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)
 set mode logo
  
-GO bn_reset
+GO bn_reset bn_lev_symbols
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_lev_symbols
 GO bn_lev_symbols
 ! Test symbols which capture the latest LEVELS settings
 ! LEV_TEXT  The argument, if any, to the LEV qualifier
@@ -40773,12 +41069,13 @@ LEV_MAX = "33"
 LEV_NUM = "1"
 LEV_DEL = "none"
  
-GO bn_reset
-cancel mode verify
+! GO bn_reset
 ! GO bench_extrema  ! moved to bn_ef_bench_extrema; tests of shared-obj efs.
  
-GO bn_reset
+GO bn_reset bn_mode_logo_lab
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_mode_logo_lab
 GO bn_mode_logo_lab
  
 ! bn_mode_logo_lab.jnl
@@ -40801,12 +41098,12 @@ can mode labels
 can mode logo
 show modes
       MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
+      DIAGNOSTIC    CANCELED            99
       VERIFY           SET         DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
-      JOURNAL       CANCELLED      ferret.jnl
+      INTERPOLATE   CANCELED
+      IGNORE_ERROR  CANCELED
+      STUPID        CANCELED
+      JOURNAL       CANCELED       ferret.jnl
       LONG_LABEL       SET              -4
       LATIT_LABEL      SET              -4
       DEPTH_LABEL      SET              -4
@@ -40815,24 +41112,25 @@ show modes
       F_LABEL          SET         months
       ASCII_FONT       SET
       SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
+      WAIT          CANCELED
+      DESPERATE     CANCELED       2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      dots.plt
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
-      LOGO          CANCELLED
-      LABELS        CANCELLED
-      GRATICULE     CANCELLED
+      METAFILE      CANCELED       dots.plt
+      PPLLIST       CANCELED       ppllist.out
+      GUI           CANCELED
+      LOGO          CANCELED
+      LABELS        CANCELED
+      GRATICULE     CANCELED
       LINECOLORS       SET               6
       UPCASE_OUTPU     SET
       NLEVELS          SET              30
       NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      LAYERZ        CANCELLED
+      SHRINK_YLAB   CANCELED
+      CURVILINEAR   CANCELED
+      LAYERZ        CANCELED
       6D_LAB           SET
+      FRUGAL           SET              30
 contour/i=1:10/j=1:10 i/j
  
 ! restore the labels, logo still gone
@@ -40875,8 +41173,10 @@ cancel view
 set mode logo
 set mode labels
  
-GO bn_reset
+GO bn_reset bn_modulo_attribute
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_modulo_attribute
 GO bn_modulo_attribute
 ! Ferret V5.50 m
  
@@ -40935,8 +41235,10 @@ T0 = 01-JAN-0000 00:00:00
    Axis span (to cell edges) = 1460.97 (modulo length = 8765.82)
  
  
-GO bn_reset
+GO bn_reset bn550_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn550_bug_fixes
 GO bn550_bug_fixes
 ! bn550_bug_fixes.jnl
 ! test various fixes that went into version 5.5
@@ -40946,6 +41248,7 @@ GO bn550_bug_fixes
 ! Polygon/overlay calendar axis bug
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err542_poly_over_calendar
 ! POLY/OVER when data has a non-standard calendar caused
 ! calendar mismatch error, even on a plot with no time axis.
@@ -40957,8 +41260,10 @@ poly/over/color=red/line=2/title="polygon" {220,240,280,250},{-20,70,40,-30}
  
 ! ******** V5.51 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn551_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn551_bug_fixes
 GO bn551_bug_fixes
 ! bn551_bug_fixes.jnl
 ! test various fixes that went into version 5.51
@@ -40970,6 +41275,7 @@ GO bn551_bug_fixes
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_view_axes_fill.jnl
 ! err550_view_axes_fill.jnl
 ! acm 2/5/03
@@ -41059,6 +41365,7 @@ set win/aspect=0.75
 ! defined as a VIEW/AXES viewport.
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_view_axes_position.jnl
 ! err550_view_axes_position.jnl
 ! acm 2/5/03
@@ -41077,6 +41384,7 @@ shade/x=1:10/y=1:10 x-y
 ! SHADE bug: hlimits, vlimits without effect
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_shade_limits.jnl
 ! err550_shade_limits.jnl
 ! acm 2/5/03
@@ -41091,6 +41399,7 @@ set view lower; shade/hlimits=212:324/vlimits=-34:23 sst[l=1]
 ! Redefining an axis with a new calendar definition
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_redefine_calendar_axis.jnl
 ! err550_redefine_calendar_axis.jnl
 ! different calendar axis not recognized as a different specifier,
@@ -41114,6 +41423,7 @@ CALENDAR = JULIAN
 ! Bug in defining axis from an expression.
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_define_axis_expression.jnl
 ! err550_define_axis_expression.jnl
 ! reported by A. Wittenberg.
@@ -41165,6 +41475,7 @@ list x[gx=xax]
 ! Bug in reading seconds from time origin in nc file.
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_nc_seconds.jnl
 ! err550_nc_seconds.jnl
 ! 2/12/03 ACM
@@ -41191,6 +41502,7 @@ list t[gt=height]    ! Seconds should be 36, 37, 38...
 ! Bug in plotting polymarker dots with pen numbers gt 6
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_dots_thickpens.jnl
 ! err550_dots_thickpens.jnl
 ! For pen code higher than 6, get *  rather than dot.
@@ -41329,8 +41641,10 @@ ppl plot
  
 ppl rlabs,4,0
  
-GO bn_reset
+GO bn_reset bn552_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn552_bug_fixes
 GO bn552_bug_fixes
 ! bn552_bug_fixes.jnl
 ! test various fixes that went into version 5.52
@@ -41341,6 +41655,7 @@ GO bn552_bug_fixes
 ! Default behavior (all axes on) was not reset after a plot/set/AXES=
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_axes_set.jnl
 ! Default behavior (all axes on) was not reset after a PLOT/SET/AXES=
  
@@ -41360,6 +41675,7 @@ plot/i=1:100/title="PLOT (no quals); all axes plotted" i*cos(i/12)
 ! test on SHADE and POLYGON plots, and these crashed Ferret.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_num_levels.jnl
 ! Test whether too many levels specified. Previous to v552, no
 ! test was made on SHADE and POLYGON plots, and these crashed Ferret.
@@ -41386,6 +41702,7 @@ SET WIN/CLEAR
 ! Check for invalid value of calendar attribute on reading NetCDF files.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_invalid_calendar.jnl
 ! check on input for invalid calendar name
 ! If file gives calendar attribute with unrecognized name,
@@ -41395,14 +41712,15 @@ set data err_calendar.nc
 sh data
      currently SET data sets:
     1> ./err_calendar.nc  (default)
- name     title                             I         J         K         L         M         N
- TIME     observation time                 ...       ...       ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ TIME     observation time                 ...       ...       ...       1:12
        (invalid coordinate axis)
  
  
 ! String bug fixes *kob*
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_strings.jnl
  
  
@@ -41472,6 +41790,7 @@ list strcmp("b", mystring)
 ! 2-D @AVE bug fix
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_2dave.jnl
 ! Bug in 2-D averaging, if source data thats loaded has a
 ! larger range than the dest data, code didnt check whether
@@ -41501,6 +41820,7 @@ list/l=1/y=20 sst[gx=xax at ave,gy=yax at ave]
 ! RETURN error message, and new var,RETURN=dsettitle  argument
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_return_message.jnl
  ! err551_return_message.jnl
  ! 4/15/03 ACM
@@ -41524,6 +41844,7 @@ SET MODE/LAST IGNORE_ERROR
 !  file/form=stream didnt see file in another directory
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_streamread_directory.jnl
 ! Bug: file/form=stream doesnt see file in another directory
  
@@ -41534,7 +41855,7 @@ def grid/x=xax g
 list/clobber/form=stream/file="a.dat" 1
 file/form=stream/grid=g/var=a "a.dat"
 list a
-             VARIABLE : A
+             VARIABLE : a
              FILENAME : a.dat
              X        : 1
           1.00000
@@ -41544,7 +41865,7 @@ sp mkdir -p subdir
 sp mv a.dat subdir
 file/form=stream/grid=g/var=a "subdir/a.dat"
 list a
-             VARIABLE : A
+             VARIABLE : a
              FILENAME : a.dat
              FILEPATH : subdir/
              X        : 1
@@ -41553,6 +41874,7 @@ list a
 ! GXY=var  regridding syntax, when the variable hasnt been loaded
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_regrid_undef_grid.jnl
 ! err551_regrid_undef_grid.jnl
 ! 5/03 *acm* based on bn_regrid_to_user; more testing of multi-axis GXY=var
@@ -41602,8 +41924,6 @@ show grid
  COADSY    LATITUDE            90 r   89S                  89N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 can data/all
 can var/all
@@ -41690,6 +42010,7 @@ list dzdt_anom
 ! Symbol substituted on each repetition of REPEAT
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_repeat_sym.jnl
  
 ! This had worked, but stopped working in v541
@@ -41717,6 +42038,7 @@ def sym a 0; rep/i=1:3:1 (def sym a `i`; say ($a))
 ! another time axis, some times have missing data
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_modulo_nc_regrid.jnl
 ! data from nc file with time axis having modulo=value, when regridded
 ! to another time axis, some times have missing data
@@ -41778,6 +42100,7 @@ list/l=23:27 vwnd_clim[gt=vwnd[d=1]]
 ! FFT frequency axis not computed accurately enough.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_fft_freqaxis.jnl
  
 DEFINE AXIS/t=1:4998:1 dayt
@@ -41805,6 +42128,7 @@ list `tpts,return=lend`
 ! No error message on request for time on bad time axis
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_no_taxis_errmsg.jnl
 ! The time axis is bad, having repeated values, so an abstract axis is
 ! used by Ferret and the list/t=time should result in an error.
@@ -41816,8 +42140,10 @@ list/t=1-jan-1990 dummy
  
 SET MODE/LAST IGNORE_ERROR
  
-GO bn_reset
+GO bn_reset bn_set_var_scale_off.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_var_scale_off.jnl
 GO bn_set_var_scale_off.jnl
 ! Qualifiers /SCALEFACTOR=  and /OFFSET  for SET VARIABLE.
 ! Only for NetCDF datasets
@@ -41864,8 +42190,10 @@ SET VAR/SCALE=10 x2
  
 SET MODE/LAST IGNORE_ERROR
  
-GO bn_reset
+GO bn_reset bn_longvarnames.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_longvarnames.jnl
 GO bn_longvarnames.jnl
 ! variable names up to 128 characters long
 ! 3/2006 make them 127 to be able to add the null terminator for C strings
@@ -41908,14 +42236,13 @@ SHOW GRID
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
  
  
 ! save to a file a variable that is 128 long
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 LET a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567 = {12,14,20,28,22,10}
 SAVE/CLOBBER/FILE=longvname.nc a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
@@ -41923,6 +42250,7 @@ SAVE/CLOBBER/FILE=longvname.nc a234567890b234567890c234567890d234567890e23456789
 ! read from the file
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 USE longvname
 LIST a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
              VARIABLE : {12,14,20,28,22,10}
@@ -41938,11 +42266,13 @@ LIST a234567890b234567890c234567890d234567890e234567890f234567890g234567890h2345
 ! save a 4-D variable
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 LET a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567 = I[I=1:5] * J[J=1:4] * K[K=1:3] + L[L=1:3]
 SAVE/CLOBBER/FILE=longvname.nc a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 USE longvname.nc
 lIST/I=1/J=2 a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
              VARIABLE : I[I=1:5] * J[J=1:4] * K[K=1:3] + L[L=1:3]
@@ -41968,8 +42298,10 @@ LIST/K=2/L=3 a234567890b234567890c234567890d234567890e234567890f234567890g234567
  3   / 3:   9.0000  15.0000  21.0000  27.0000  33.0000
  4   / 4:  11.0000  19.0000  27.0000  35.0000  43.0000
  
-GO bn_reset
+GO bn_reset bn_shakey.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_shakey.jnl
 GO bn_shakey.jnl
 ! Changes to shade key:
 ! - Default size is a little bigger
@@ -42096,8 +42428,10 @@ ppl list shakey
          X LO     X HI     Y LO     Y HI
          1.20     9.94    -1.40    -1.31
  
-GO bn_reset
+GO bn_reset bn_eof_4d.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_eof_4d.jnl
 GO bn_eof_4d.jnl
 ! bn_eof_4d.jnl
 ! test EOFs on XYZT grids
@@ -42306,8 +42640,10 @@ list/nohead/i=1:5/j=3/k=9 eofst
  
 exit/script
  
-GO bn_reset
+GO bn_reset bn_abstract_axis_names.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_abstract_axis_names.jnl
 GO bn_abstract_axis_names.jnl
 ! bn_abstract_axis_names.jnl
 ! acm 6/12/03
@@ -42372,8 +42708,6 @@ sh grid r
  normal    Y
  XXX       Z                    6 r   -4                   1                   full
  normal    T
- normal    E
- normal    F
 can data 1
  
 use confuse_yz.nc
@@ -42384,8 +42718,6 @@ sh grid s
  THE       Y                    8 r   10                   80                  full
  XXX       Z                    6 r   -4                   1                   full
  normal    T
- normal    E
- normal    F
 can data 1
  
 use confuse_yt.nc
@@ -42396,8 +42728,6 @@ sh grid u
  THE       Y                    8 r   10                   80                  full
  normal    Z
  LONG      T                    7 r   1                    13                  full
- normal    E
- normal    F
 can data 1
  
 use confuse_yzt.nc
@@ -42408,8 +42738,6 @@ sh grid v
  THE       Y                    8 r   10                   80                  full
  XXX       Z                    6 r   -4                   1                   full
  LONG      T                    7 r   1                    13                  full
- normal    E
- normal    F
 can data 1
  
  
@@ -42468,8 +42796,6 @@ sh grid r
  normal    Y
  CCC       Z                    6 r   -4                   1                   full
  normal    T
- normal    E
- normal    F
 can data 1
  
 use confuse_yz.nc
@@ -42480,8 +42806,6 @@ sh grid s
  BBB       Y                    8 r   10                   80                  full
  CCC       Z                    6 r   -4                   1                   full
  normal    T
- normal    E
- normal    F
 can data 1
  
 use confuse_yt.nc
@@ -42492,8 +42816,6 @@ sh grid u
  BBB       Y                    8 r   10                   80                  full
  normal    Z
  DDD       T                    7 r   1                    13                  full
- normal    E
- normal    F
 can data 1
  
 use confuse_yzt.nc
@@ -42504,12 +42826,12 @@ sh grid v
  BBB       Y                    8 r   10                   80                  full
  CCC       Z                    6 r   -4                   1                   full
  DDD       T                    7 r   1                    13                  full
- normal    E
- normal    F
 can data 1
  
-GO bn_reset
+GO bn_reset bn_many_polygons.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_many_polygons.jnl
 GO bn_many_polygons.jnl
 ! testing large number of polygons in a plot.  Map plot has
 ! 130501 polygons; previously we had an upper limit of 100K polygons
@@ -42539,12 +42861,13 @@ 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]
  
-GO bn_reset
-cancel mode verify
+! GO bn_reset
 ! GO bn_zaxr_fcns.jnl ! move to tests of shared-obj efs.
  
-GO bn_reset
+GO bn_reset bn_fill_irregular.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_fill_irregular.jnl
 GO bn_fill_irregular.jnl
 ! FILL on vars with irregular axes
  
@@ -42568,17 +42891,23 @@ use coads_clim_irreg.des
 fill/x=180 sst
  
 ! ******** V5.53 Additions below ***********
-GO bn_reset
+GO bn_reset bn_xml_output.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_xml_output.jnl
 GO 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.
- 
+!
 ! 22-Feb-2005 USE SHO AXIS/XML `temp,return=taxis` instead
 ! of naming the axes; other axes of the same name (e.g. TIME)
 ! may have been defined in other benchmark scrips.
+!
+! 24-Oct-2016 Changes in Ferret, handling of grid and datatype
+! info. Order of listing in xml output, ferret_data_type is listed
+* for all variables
  
 USE levitus_climatology.cdf
  
@@ -42650,6 +42979,7 @@ save/clobber/file=b.nc ddat
 can var/all
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 USE a.nc
 USE b.nc
@@ -42708,12 +43038,12 @@ SHO DATA/VAR/XML 1
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
 <attribute name="long_name" type="char">
    <value><![CDATA[DDAT[D=2,X=@AVE]]]></value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <zaxis>ZAX1_5</zaxis>
@@ -42789,6 +43119,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <zaxis>ZAX1_5</zaxis>
@@ -42802,6 +43135,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="ABSTRACT">
 <axes>
 </axes>
@@ -42814,6 +43150,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <zaxis>ZAX1_5</zaxis>
@@ -42835,6 +43174,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <zaxis>ZAX1_5</zaxis>
@@ -42848,6 +43190,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="ABSTRACT">
 <axes>
 </axes>
@@ -42867,6 +43212,9 @@ SHOW VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="ABSTRACT">
 <axes>
 </axes>
@@ -42893,6 +43241,9 @@ SHOW VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GSI1">
 <axes>
 <taxis>TIME6</taxis>
@@ -42906,6 +43257,9 @@ SHOW VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GSI1">
 <axes>
 <taxis>MONTH_REG</taxis>
@@ -42914,9 +43268,126 @@ SHOW VAR/XML
 </var>
 </global>
  
+! Test getting the data type of a user-defined variable
  
-GO bn_reset
+let/d=a dates = tax_datestring(t[gt=tvar], tvar, "days")
+SHOW VAR/XML dates
+<global>
+<var name="DATES[D=./a.nc]">
+<attribute name="definition" type="char">
+   <value><![CDATA[TAX_DATESTRING(T[GT=TVAR], TVAR, "days")]]></value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[STRING]]></value>
+</attribute>
+<grid name="GSI1">
+<axes>
+<taxis>MONTH_REG</taxis>
+</axes>
+</grid>
+</var>
+</global>
+SHO DATA/VAR/XML 1
+<datasets>
+<dataset name="./a.nc" default="true">
+<title> </title>
+<var name="TVAR">
+<attribute name="long_name" type="char">
+   <value><![CDATA[T[GT=MONTH_REG]]]></value>
+</attribute>
+<attribute name="_FillValue" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
+</attribute>
+<grid name="GSI1">
+<axes>
+<taxis>MONTH_REG</taxis>
+</axes>
+</grid>
+</var>
+<var name="dates">
+<attribute name="definition" type="char">
+   <value><![CDATA[TAX_DATESTRING(T[GT=TVAR], TVAR, "days")]]></value>
+</attribute>
+<attribute name="_FillValue" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="long_name" type="char">
+   <value><![CDATA[TAX_DATESTRING(T[GT=TVAR], TVAR, "days")]]></value>
+</attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[STRING]]></value>
+</attribute>
+<grid name="GSI1">
+<axes>
+<taxis>MONTH_REG</taxis>
+</axes>
+</grid>
+</var>
+</dataset>
+</datasets>
+<axes>
+<axis name="MONTH_REG">
+<attribute name="direction" type="char">
+   <value><![CDATA[L]]></value>
+</attribute>
+<attribute name="units" type="char">
+   <value><![CDATA[hour since 0000-01-01 00:00:00]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>12</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>0000-01-16 06:00:00</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>0000-12-16 01:20:00</value>
+</attribute>
+<attribute name="point_spacing" type="char">
+   <value><![CDATA[even]]></value>
+</attribute>
+<attribute name="modulo" type="char">
+   <value><![CDATA[yes]]></value>
+</attribute>
+<attribute name="time_origin" type="char">
+   <value><![CDATA[0000-01-01 00:00:00]]></value>
+</attribute>
+<attribute name="calendar" type="char">
+   <value><![CDATA[GREGORIAN]]></value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
+</attribute>
+<attribute name="axis" type="char">
+   <value><![CDATA[T]]></value>
+</attribute>
+<attribute name="standard_name" type="char">
+   <value><![CDATA[time]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[MONTH_REG]]></value>
+</attribute>
+</axis>
+</axes>
+ 
+GO bn_reset bn_test_nan.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_test_nan.jnl
 GO bn_test_nan.jnl
 !bn_test_nan.jnl
 ! test to make sure that NaN is able to be set by user
@@ -42994,8 +43465,10 @@ can var/all
  
  
  
-GO bn_reset
+GO bn_reset bn553_bug_fixes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn553_bug_fixes.jnl
 GO bn553_bug_fixes.jnl
 ! bn553_bug_fixes.jnl
 ! test various fixes that went into version 5.52
@@ -43005,6 +43478,7 @@ GO bn553_bug_fixes.jnl
 ! Make sure numeric filenames works
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_numeric_filename.jnl
 ! err553_numeric_filename.jnl
 ! 9/03 kob
@@ -43040,6 +43514,7 @@ list vwnd_clim
 ! Make sure long string variables work
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_long_string_var_name.jnl
 ! err553_long_string_var_name.jnl
 ! 9/03 kob
@@ -43063,6 +43538,7 @@ list a
 ! Fixes for colorbar key labelling
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_colorkey.jnl
  
 ! colorkey label bugs
@@ -43085,8 +43561,10 @@ ppl shade
  
 ! ******** V5.6Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_graticules.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_graticules.jnl
 GO bn_graticules.jnl
 ! /GRAT, /HGRAT and /VGRAT to set graticule lines
 ! ACM March 12, 2004
@@ -43172,7 +43650,7 @@ plot/trans/thick/vg="(line,color=blue)"/hg="large(line,color=blue),small(line,co
 ! Tests for MODE GRATICULE  added in Ferret v5.7
 show mode graticule
       MODE            STATE        ARGUMENT
-      GRATICULE     CANCELLED
+      GRATICULE     CANCELED
 set mode graticule
 show mode graticule
       MODE            STATE        ARGUMENT
@@ -43195,8 +43673,10 @@ can mode graticule
 pplus/reset   ! restore tics etc
  
  
-GO bn_reset
+GO bn_reset bn_repeat_range.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_repeat_range.jnl
 GO bn_repeat_range.jnl
 ! REPEAT/RANGE=[/NAME=]  for looping without depending
 ! on the grid\
@@ -43552,19 +44032,20 @@ set mode diag
 set reg/y=0:50/L=1
 repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
 !-> REPEAT: M:300
- getgrid 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  M: -999 -999  N: -999 -999
- constan cnst     M:157 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:152 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1  M: -999 -999  N: -999 -999
+ constan cnst     M:249 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:244 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:300 at ave,y=@ave]
- -DELETE cnst     M:157 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:249 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- getgrid EX#1     C:  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     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J:   46   70  K: -999 -999  L:      1      1
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M:157 dset:   1 I:  131  140  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:249 dset:   1 I:    131    140  J:   46   70  K: -999 -999  L:      1      1
  doing --> SST[Y=0:50N at AV4,D=1]
+ final --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
              LONGITUDE: 80W to 60W (XY ave)
@@ -43572,20 +44053,21 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
              TIME     : JAN
           20.7890
 !-> REPEAT: M:330
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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  M: -999 -999  N: -999 -999
- constan cnst     M:147 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:144 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1  M: -999 -999  N: -999 -999
+ constan cnst     M:239 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:236 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:330 at ave,y=@ave]
- -DELETE cnst     M:147 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:239 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- getgrid EX#1     C:  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     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J:   46   70  K: -999 -999  L:      1      1
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M:147 dset:   1 I:  131  155  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:239 dset:   1 I:    131    155  J:   46   70  K: -999 -999  L:      1      1
  doing --> SST[Y=0:50N at AV4,D=1]
+ final --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
              LONGITUDE: 80W to 30W (XY ave)
@@ -43593,20 +44075,21 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
              TIME     : JAN
           21.2500
 !-> REPEAT: M:360
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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  M: -999 -999  N: -999 -999
- constan cnst     M:138 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:133 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1  M: -999 -999  N: -999 -999
+ constan cnst     M:230 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:225 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:360 at ave,y=@ave]
- -DELETE cnst     M:138 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:230 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- getgrid EX#1     C:  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     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  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 GSQ1            COADSX    COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J:   46   70  K: -999 -999  L:      1      1
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M:138 dset:   1 I:  131  170  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:230 dset:   1 I:    131    170  J:   46   70  K: -999 -999  L:      1      1
  doing --> SST[Y=0:50N at AV4,D=1]
+ final --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
              LONGITUDE: 80W to 0E(360) (XY ave)
@@ -43695,8 +44178,10 @@ repeat/range=1:4/name=a (repeat/range=3:1:-1/name=a list a)
 !-> REPEAT: A:4
 cancel mode ignore
  
-GO bn_reset
+GO bn_reset bn554_bug_fixes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn554_bug_fixes.jnl
 GO bn554_bug_fixes.jnl
 ! bn554_bug_fixes.jnl
 ! test various fixes that went into version 5.54
@@ -43706,6 +44191,7 @@ GO bn554_bug_fixes.jnl
 ! Test use of longer strings in region names
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_regionname_lengths.jnl
 ! In v5.50, we upped the region name storage to
 ! allow 24-characters.  Wasnt fully implemented.
@@ -43762,6 +44248,7 @@ SET MODE/LAST IGNORE_ERRORS
 ! Reqests for data at times outside range of data
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_timeregion.jnl
 ! try to apply a region whose limits are both below,
 ! or both above, the data bounds. In v5.53 the error
@@ -43780,6 +44267,7 @@ SET MODE/LAST IGNORE_ERRORS
 ! Contour plot on fine grid has precision problems
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_contour_fine_grid.jnl
 ! err553_contour_find_grid.jnl
 ! 11/21/03 ACM
@@ -43815,6 +44303,7 @@ PPLUS/RESET   ! reset aspect ratio
 ! PLOT/SYM/SIZE= did not change the size
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_symsize.jnl
 ! PLOT/SYM/SIZE= does not change the size from the default.
 ! acm 11/03
@@ -43825,6 +44314,7 @@ plot/over/i=1:10/sym=20/siz=0.2 i
 ! test labels on shade keys; consistent number of digits set by 5th shakey arg
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_shakey_labels.jnl
 ! The 5th argument to shakey is supposed to define
 ! number of digits in the label.
@@ -43841,6 +44331,7 @@ ppl shade
 ! couldnt set the number of small tics with arg to %xaxis, %yaxis commands
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_xaxis_nsmtc.jnl
 ! Bug: 5th argument failed to set the number of small
 ! tics for the axis.
@@ -43857,6 +44348,7 @@ ppl %yaxis/nouser 1,100,10,2,6
 ! vs DEFINE AXIS/UNIT=yr
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_year_yr.jnl
 ! err553_year_yr.jnl
 ! 2/2004 ACM
@@ -44048,60 +44540,61 @@ can mode ignore
 ! strides, Ferret did a regridding instead.  Test the fix for this
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_stride_def_grid.jnl
  
 use gtsa056_2.cdf
 set mode diag
 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)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- allocate dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   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 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)
+ 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
- rdstride TAUX     C:  9 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- nulrgd  TAUX     M:153 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M:141 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
+ 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)
 can mem/all
- -DELETE A        M:141 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M:153 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -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)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
- 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     NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (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     NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX024)   (AX013)   NORMAL    (AX033)   NORMAL    NORMAL
+ dealloc  dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME6
+ dealloc  dynamic grid (G023)          (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)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- allocate dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   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 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)
+ 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
- rdstride TAUX     C:  9 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- nulrgd  TAUX     M:141 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M:153 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ 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)
  
 can mem/all
- -DELETE TAUX     M:141 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE A        M:153 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -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)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX013)   (AX024)   NORMAL    (AX022)   NORMAL    NORMAL
+ dealloc  dynamic grid (G023)          (AX013)   (AX023)   NORMAL    (AX024)
+ dealloc  dynamic grid (G023)          (AX013)   (AX023)   NORMAL    (AX024)
  canceling dset ./gtsa056_2.cdf
  
 ! Some tests taken from  bn_strides_revs_perms.jnl but with
@@ -44111,26 +44604,26 @@ can data/all
 set region/i=3:6/j=2:4/k=1:2/l=1
 use bn_strides
 define grid/like=var agrid
- getgrid EX#1     C:  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    NORMAL    NORMAL
- dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    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 GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
 define grid/like=midvar bgrid
- 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 GPC2            XAX1_9    YAX1_8    ZAX1_7    TAX1_6    NORMAL    NORMAL
+ 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 GPC2            XAX1_9    YAX1_8    ZAX1_7    TAX1_6
 define grid/like=bigvar cgrid
- dealloc  dynamic grid GPC2            XAX1_9    YAX1_8    ZAX1_7    TAX1_6    NORMAL    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 GPC3            XAX1_40   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid GPC2            XAX1_9    YAX1_8    ZAX1_7    TAX1_6
+ 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 GPC3            XAX1_40   YAX1_30   ZAX1_20   TAX1_10
 define grid/like=unevenvar dgrid
- dealloc  dynamic grid GPC3            XAX1_40   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- getgrid EX#1     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 GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid GPC3            XAX1_40   YAX1_30   ZAX1_20   TAX1_10
+ getgrid EX#1     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 GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
 define grid/like=xytvar egrid
- dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- getgrid EX#1     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 GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
+ getgrid EX#1     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 GPC5            XLON      YLAT      NORMAL    TTIME
 canc data/all
- dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME
  canceling dset ./bn_strides.cdf
  
  
@@ -44138,22 +44631,22 @@ canc data/all
 cancel memory/all
 use bn_strides
 load var
- getgrid 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:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- reading VAR      M:153 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  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
+ eval    EX#1     C:  4 dset:   1 I:      3      4  J:    2    3  K:    1    2  L:      1      1
+ reading VAR      M:245 dset:   1 I:      3      4  J:    2    3  K:    1    2  L:      1      1
 LIST VAR[i=2:4:2]
- dealloc  dynamic grid AGRID           XAX1_4    YAX1_3    ZAX1_2    TAX1_1    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 (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:148 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:141 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX045)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -44168,19 +44661,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    NORMAL    NORMAL
- -DELETE VAR      M:148 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  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 (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:141 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:148 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX018)   (AX046)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44195,25 +44688,25 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.00  1214.00
  3   / 2:  1232.00  1234.00
 CANC MEM/ALL
- -DELETE VAR      M:141 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:153 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:233 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
+ -DELETE VAR      M:245 dset:   1 I:      3      4  J:    2    3  K:    1    2  L:      1      1
  
 ! 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    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 (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (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
+ 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
- strip moduloing VAR on X axis:     1    10 dset:   1
- reading VAR      M:153 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing VAR on X axis:     1     4 dset:   1
- regrid  VAR      M:148 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX018)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -44228,24 +44721,24 @@ LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
  7    / 3:  1113.00
  10   / 4:  1112.00
 cancel axis/modulo XAX1_4
- -DELETE VAR      M:141 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:148 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:153 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:233 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
+ -DELETE VAR      M:240 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
+ -DELETE VAR      M:245 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  
 ! 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    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 (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:148 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:153 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX046)   (AX045)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44260,19 +44753,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    NORMAL    NORMAL
- -DELETE VAR      M:148 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  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 (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:148 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX046)   (AX018)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44289,24 +44782,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    NORMAL    NORMAL
- -DELETE VAR      M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (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   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   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 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    3    6  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    3    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- rdstride BIGVAR   C: 10 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:148 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:153 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -44318,26 +44811,26 @@ list/j=1/k=1/l=1 a[i=3:5]
  11   / 3:  1121.00
  16   / 4:  1126.00
  21   / 5:  1131.00
- -DELETE A        M:141 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -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   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 (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G014)          (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
+ allocate dynamic grid (G001)          (AX046)   (AX045)   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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ eval    EX#1     C:  5 dset:   1 I:      3      6  J:    2    4  K:    1    1  L:      1      1
+ 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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- rdstride BIGVAR   C: 11 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:140 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:141 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- regrid  A        M:152 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
+ 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]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -44354,27 +44847,27 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
 ! ****** unequally spaced points on parent axis
  
 cancel mem/all
- -DELETE BIGVAR   M:140 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:141 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:148 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:152 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:153 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE BIGVAR   M:232 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
+ -DELETE A        M:233 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
+ -DELETE BIGVAR   M:240 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
+ -DELETE A        M:244 dset:   1 I:      3      5  J:    1    4  K:    1    1  L:      1      1
+ -DELETE A        M:245 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
  
 ! basic strides
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid (G001)          (AX046)   (AX045)   ZAX1_20   TAX1_10   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 (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G001)          (AX046)   (AX045)   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)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G001)          (AX018)   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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ eval    EX#1     C:  5 dset:   1 I:      3      6  J:    1    1  K:    1    1  L:      1      1
+ allocate dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4
  strip regrid on X: UNEVENVAR --> (G001)           @XACT
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M:152 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:153 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ rdstride UNE-NVAR C:  8 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
+ nulrgd  UNE-NVAR M:244 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
+ -DELETE UNE-NVAR M:245 dset:   1 I:      2      4  J:    1    1  K:    1    1  L:      1      1
+ dealloc  dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -44392,19 +44885,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 (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M:152 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  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 (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G001)          (AX018)   YUNEVEN   ZAX1_6    TAX1_4
+ -DELETE UNE-NVAR M:244 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 (G001)          (AX045)   (AX047)   (AX048)   TAX1_10
+ dealloc  dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10
+ allocate dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10
+ eval    EX#1     C:  4 dset:   1 I:      3      6  J:    2    4  K:    1    2  L:      1      1
+ allocate dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10
  strip regrid on X: BIGVAR --> (G001)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:153 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:152 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
+ rdstride BIGVAR   C:  7 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
+ nulrgd  BIGVAR   M:245 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
+ -DELETE BIGVAR   M:244 dset:   1 I:      3      9  J:    2    6  K:    1    3  L:      1      1
+ dealloc  dynamic grid (G001)          (AX045)   (AX047)   (AX048)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44421,24 +44914,24 @@ 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 (G001)          (AX045)   (AX047)   (AX048)   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M:153 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX046)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
  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   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10   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 (G014)          (AX048)   (AX047)   (AX045)   TAX1_10
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10
+ allocate dynamic grid (G014)          (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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:152 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:153 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44455,8 +44948,8 @@ 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   NORMAL    NORMAL
- -DELETE BIGVAR   M:152 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (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
  
 ! now with xytvar
@@ -44465,17 +44958,17 @@ set region/i=1:4/j=1:3/l=1:2
 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)   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)   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 (G014)          (AX047)   (AX048)   NORMAL    (AX046)
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)
+ allocate dynamic grid (G014)          (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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:153 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:152 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   NORMAL    (AX046)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -44493,31 +44986,29 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M:153 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- 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
+ dealloc  dynamic grid (G014)          (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
  name       axis              # pts   start                end                 subset
  XLON      LONGITUDE           40mr   141E                 180E                full
  YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
  TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
- normal    E
- normal    F
  
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid EGRID           XLON      YLAT      NORMAL    TTIME     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 (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
+ 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)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:152 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:153 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   NORMAL    (AX045)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -44533,37 +45024,35 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M:152 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (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
  
 ! map into Z instead of T
 use/order=zxy bn_strides
 show grid xytvar
- 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 GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    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 GPC5            TTIME     XLON      YLAT      NORMAL
     GRID GPC5
  name       axis              # pts   start                end                 subset
  TTIME     X (DAYS)            20 r   34319                34338               full
  XLON      Y (degrees_east)    40mr   141                  180                 full
  YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
- normal    E
- normal    F
  
 list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
- dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      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 (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
+ 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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:153 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:152 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -44579,8 +45068,8 @@ 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    NORMAL    NORMAL
- -DELETE XYTVAR   M:153 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (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
  
  
@@ -44589,17 +45078,17 @@ cancel region; set region/l=1
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6    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 (G014)          (AX048)   (AX047)   (AX045)   TAX1_6
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6
+ allocate dynamic grid (G014)          (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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:153 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   TAX1_6    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44614,26 +45103,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    NORMAL    NORMAL
- -DELETE MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (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    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6    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 (G014)          (AX047)   (AX048)   (AX046)   TAX1_6
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6
+ allocate dynamic grid (G014)          (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
- 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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M:152 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:153 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   TAX1_6    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44648,24 +45137,24 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (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
  
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    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 (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7
+ allocate dynamic grid (G014)          (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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:152 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44680,27 +45169,27 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (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
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    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 (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7
+ allocate dynamic grid (G014)          (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
- 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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on X axis:     1     5 dset:   1
- -DELETE MIDVAR   M:153 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:152 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44715,24 +45204,24 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M:153 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (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
  
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    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 (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7
+ dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7
+ allocate dynamic grid (G014)          (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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:153 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX048)   (AX047)   (AX045)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44747,26 +45236,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    NORMAL    NORMAL
- -DELETE MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (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    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    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 (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7
+ dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7
+ allocate dynamic grid (G014)          (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
- 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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M:152 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:153 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX047)   (AX048)   (AX046)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -44781,13 +45270,14 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M:152 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G014)          (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
  
 ! DEFINE AXIS can get the axis too long (bug 673)
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_axis_too_long.jnl
 ! From Ned Cokelet
 ! First definition of axis had last grid cell completely
@@ -44818,6 +45308,7 @@ LIST X[GX=x_ax], XBOXLO[GX=x_ax], XBOXHI[GX=x_ax]
 ! non-centered shade key
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_lev_c.jnl
  ! under linux only, this has a non-centered shade key
  
@@ -44847,6 +45338,7 @@ ppl list shakey
 ! At lon = 0, we used to have an E; remove this.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_lon_ax_0_label.jnl
 ! Label longitude axes with the degree sign only
 ! at x=0 (previously had an E).
@@ -44860,6 +45352,7 @@ shade/x=-20:20/y=-40:40/L=1 sst
 ! Errors listing string and numeric data together
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_list_string_numeric.jnl
 ! err553_list_string_numeric.jnl
 ! 2/2004 ACM
@@ -44955,6 +45448,7 @@ list/i=3:4/l=1:2 b, c, v
 ! Bug in setting axis to depth when reading from nc file
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_set_axis_depth.jnl
  ! NOAA/PMEL TMAP
  ! FERRET v5.53
@@ -44974,6 +45468,7 @@ q
 ! Set symbols showing levels settings when poly command is called
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_symbol_lev.jnl
 ! err553_symbol_lev.jnl
 ! 2/2004 ACM
@@ -44994,7 +45489,7 @@ LEV_TEXT = "C"
 LEV_MIN = "1"
 LEV_MAX = "10.2"
 LEV_NUM = "46"
-LEV_DEL = "irregular"
+LEV_DEL = "0.2"
  
 can sym lev*
 ! Now with /LEV=(min,max,del)
@@ -45031,6 +45526,7 @@ can sym lev*
 ! Fixes for modulo striding bugs
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_stride_modulo.jnl
 ! err553_stride_modulo_neg.jnl
 ! *acm* 3/31/2004
@@ -45133,6 +45629,7 @@ can mem; list/y=0 var[i=68]
 ! Fixes bug creating format for listing a very long line
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_list_width.jnl
 ! err553_list_width.jnl
 ! *acm* 4/1/2004
@@ -45162,8 +45659,10 @@ can mode ignore
  
 ! ******** V5.7 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_bounds.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_bounds.jnl
 GO bn_bounds.jnl
  
 ! bn_bounds.jnl
@@ -45527,8 +46026,10 @@ sh axis/t tax
        4>  10                    1          9.5
        5>  11                    1          10.5
  
-GO bn_reset
+GO bn_reset bn_all_leap.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_all_leap.jnl
 GO bn_all_leap.jnl
 ! bn_all_leap.jnl
 ! ACM 6/2004
@@ -45580,8 +46081,10 @@ def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
  
 can mode ignore
  
-GO bn_reset
+GO bn_reset bn_reset_attributes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_reset_attributes.jnl
 GO bn_reset_attributes.jnl
 ! bn_reset_attributes.jnl
 ! acm 6/14/2004
@@ -45886,8 +46389,6 @@ show grid temp
  PSYT      Y (seconds)        100 i   -28.836              48.568              full
  PSZT      Z (zorro)           27 i-  5                    3824                full
  TIME11    T (meters)          25 r   22702                26206               full
- normal    E
- normal    F
  
 ! assign time units to an abstract axis
 def axis/t=1:5:1 tax
@@ -45930,8 +46431,10 @@ list x[gx=xax]
  120E   / 7:  120.000
  
  
-GO bn_reset
+GO bn_reset bn570_bug_fixes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn570_bug_fixes.jnl
 GO bn570_bug_fixes.jnl
 ! bn554_bug_fixes.jnl
 ! test various fixes that went into version 5.70
@@ -45941,6 +46444,7 @@ GO bn570_bug_fixes.jnl
 ! Test use of automatic levels in SHADE
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_shade_levels.jnl
 ! err560_shade_levels.jnl  *acm* 4/28/04
 ! Missing levels on SHADE auto-level
@@ -45955,6 +46459,7 @@ set view lower; shade/i=1:10/j=1:10 -1*i*j*0.0034
 ! Test use of reading irregular-time mc datasets
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_mc_irreg_t.jnl
 ! err560_mc_irreg_t.jnl
 ! 4/2004  ACM
@@ -45991,6 +46496,7 @@ list/x=180/y=0/t=2000 sst
 ! Crashed on SHADE of variable with NOLEAP axis, and subregion.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_shade_noleap.jnl
 ! err560_shade_noleap.jnl
 ! 4/30/04 ACM
@@ -46008,6 +46514,7 @@ shade/t=4-jan-2000:10-nov-2000 a
 ! -111, was treated as missing rather than a valid index.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_regridding_gaps.jnl
 ! err560_regrid
 !
@@ -46133,6 +46640,7 @@ sp rm xlongshift.nc
 ! bug in drawing the time axis.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_leap_years.jnl
 ! err560_leap_years.jnl
 ! Fixes for bug 882, inconsistency in computing whether
@@ -46151,6 +46659,7 @@ plot v[gt=tax at asn]
 ! Century portion of years were not properly tested in numdm1.F
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_century
 ! err560_century.jnl.jnl  *acm* 4/28/04
 ! Century portion of years were not properly tested in numdm1.F
@@ -46172,8 +46681,10 @@ plot t[gt=tt]
  
 ! ******** V5.8 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_modstats.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_modstats.jnl
 GO bn_modstats.jnl
 ! bn_modstats.jnl
 ! acm 8/25/04
@@ -46322,8 +46833,10 @@ list var[gt=month_reg at modngd]
  15-NOV      / 11:  10.0000
  16-DEC      / 12:  10.0000
  
-GO bn_reset
+GO bn_reset bn_mc_vary_scale.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_mc_vary_scale.jnl
 GO bn_mc_vary_scale.jnl
 ! bn_mc_vary_scale.jnl
 !   Allow stepfiles to have different internal scale and offset.
@@ -46403,8 +46916,10 @@ list/quiet/nohead `tt,return=nc_scale`, `tt,return=nc_offset`
 I / *:     2.00000 -0.0200000
  
  
-GO bn_reset
+GO bn_reset bn_plot_nokey.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_nokey.jnl
 GO bn_plot_nokey.jnl
 ! bn_plot_nokey.jnl (bug 1089)
 ! 22-nov-2004
@@ -46425,8 +46940,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn580_bug_fixes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn580_bug_fixes.jnl
 GO bn580_bug_fixes.jnl
 ! bn580_bug_fixes.jnl
 ! test various fixes that went into version 5.80
@@ -46436,6 +46953,7 @@ GO bn580_bug_fixes.jnl
 ! POLYGON (or SHADE) plots with a single level had no fill color
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_singlecolor.jnl
 ! err570_singlecolor.jnl
 ! 7/6/2004
@@ -46479,6 +46997,7 @@ poly/lev=2 {0,1,2},{1,2,1},a ! OR lev=1
 ! colorbar labels too close to the bar, when user sets bar location
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_shakeylab.jnl
  
 ! err570_shakeylab.jnl
@@ -46540,6 +47059,7 @@ ppl dfltfnt sr
 ! Null input gives wierd error message
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_null_symbol.jnl
 ! err570_null_symbol.jnl
 ! null input -- > wierd error message see bug 919
@@ -46557,6 +47077,7 @@ can mode ignore
 ! Replace text expression with its value: string variable was too short
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_parse_labelcommand.jnl
 ! err570_parse_labelcommand.jnl
 ! fix for bug 956.
@@ -46587,6 +47108,7 @@ label/nouser 3.6,`($ppl$ylen)+0.2`,0,0,0.08, `tsulab`
 ! result of COMPRESSK_BY function does not vary in X
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_compressk_by.jnl
 ! err570_compress_by.jnl
 ! fix for bug 925
@@ -46680,6 +47202,7 @@ list tlev[k=1]
 ! Command parsing on PPL side had string lengths too short
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_long_label.jnl
 ! err570_long_label.jnl
 ! Fix for bug 956
@@ -46730,6 +47253,7 @@ set mode/last verify
 ! Allow PPL POLYGON after a POLY/SET (previously was PPL FILLPOL)
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_ppl_poly.jnl
 ! err570_ppl_poly.jnl
  
@@ -46752,6 +47276,7 @@ ppl polygon
 ! Fix formatting of coordinates on LIST/FORMAT=tab or /FORMAT=comma
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_list_tab_coords.jnl
 ! err570_list_tab_coords.jnl
 ! acm 9/7/04
@@ -46795,6 +47320,7 @@ list/form=comma aa
 ! Fix bug in HASH_CX for large numbers of varibles
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_many_variables.jnl
 ! err570_many_variables.jnl
 ! 27-sep-2004  ACM
@@ -47058,6 +47584,7 @@ list str4a
 ! Fix bug in @CNNN within multi-line labels
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_cnnn_multiline.jnl
 ! Changing pen with @Cnnn did not work in
 ! multi-line labels
@@ -47072,6 +47599,7 @@ label 0.1, 0.3, 0, 0, 0.2, "greek<NL>@SGt at SR_y<NL>works"
 ! For a very fine grid, coordinates not listed with enough precision.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_fine_grid_list.jnl
 ! err570_fine_grid_list.jnl
 ! ACM 10/2004
@@ -47176,6 +47704,7 @@ cancel list/precision
 ! Plot using /HLIM
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_hlimit_onepoint
 !err570_hlimit_onepoint.jnl
 ! 15-Oct-2004  ACM
@@ -47198,6 +47727,7 @@ set mode/last ignore_error
 ! caused a segfault.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_index111.jnl
 ! err570_index111.jnl
 ! 3-nov-04 ACM
@@ -47244,6 +47774,7 @@ LIST/T=1-jan-1997:1-jan-1998 s2[GT=s1 at NRST]
 ! crashed on trying to format value for the output buffer.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_sh_dat_nan.jnl
 ! err570_sh_dat_nan.jnl
 ! 4-Nov-2004 acm
@@ -47257,8 +47788,8 @@ show data/full
      currently SET data sets:
     1> ./nan_missing.nc  (default)
      NCEP Ocean Analysis
- name     title                             I         J         K         L         M         N
- TEMP     temperature                      1:1       1:1       1:19      1:1       ...       ...
+ name     title                             I         J         K         L
+ TEMP     temperature                      1:1       1:1       1:19      1:1
              degree_Celsius on grid GGH1 with -1.E+34 & NaN for missing data
              X=139.8E:140.8E  Y=0.5S:0.5N  Z=0:375  
  
@@ -47269,6 +47800,7 @@ show data/full
 ! Time reqest out of range on NOLEAP axes.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_time_range.jnl
 ! err570_time_range.jnl  bug1080
 ! time request out of range with calendar axis and RETURN=
@@ -47293,6 +47825,7 @@ set var/units="`a[gx=var1_grid_,gy=var1_grid_,d=2,t="16-Jan-1861 12:00:00"],retu
 ! a non-standard calendar axis
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_poly_over_julian.jnl
 ! err570_poly_over_julian.jnl
 ! ACM 11/12/04
@@ -47315,6 +47848,7 @@ poly/ov/pal=green {400,900,900,400}, {25.5,25.5,26.5,25.5}
 ! string substitution returns the user-given error message
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_coaching hello
 ! err570_coaching.jnl
 ! ACM 11/12/04  Bug 1077
@@ -47359,6 +47893,7 @@ set mode/last ignore_errors
 ! name of the script
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_dollar_zero.jnl
 ! err570_dollar_zero.jnl
 ! (bug 485) Got a command syntax error;
@@ -47374,6 +47909,7 @@ SET MODE/LAST ignore_error
 ! Fix for bug 596; list/i=0:300:0 var crashed Ferret
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_illegal_stride.jnl
 ! err570_illegal_stride.jnl
 ! (bug 596) list/i=0:300:0 var crashed Ferret
@@ -47387,6 +47923,7 @@ SET MODE/LAST ignore_error
 ! Fix for bug 1085; /THICK without color specifier caused all lines to revert to black
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_thick_colors.jnl
 ! err570_thick_colors.jnl  bug1085
 ! /THICK without color specifier causes all lines to revert to black
@@ -47412,6 +47949,7 @@ PLOT/OVER/VS/LINE/THICK=1/I=1:314 i*cos(i/14), i*sin(i/14)
 ! starts with a digit.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_digit_filename.jnl
 ! err570_digit_filename.jnl
 ! Bug 1102: under linux, var[d=filename] fails if filename
@@ -47477,13 +48015,14 @@ list a[i=1:4,d=10a.nc]
 ! Fix for bug 1098: DODS URL label was cut off
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_dods_url_label.jnl
 ! err570_dods_url_label.jnl
 !
 ! Bug 1098. Look for the label with the URL: it should include
 ! everything up to the last slash.
 ! acm 11/04
- 
+! acm* 3/17 check the URL with TEST_OPENDAP befor trying to open it.
  
 !! Change to another dataset, our server down...
 !!use  "http://www.ferret.noaa.gov/cgi-bin/nph-nc/data/bn_strides.cdf"
@@ -47513,32 +48052,35 @@ GO err570_dods_url_label.jnl
 !!plot/x=180/y=0/k=1 temp
 !!ppl list labels
  
+! If we cant open this, just bail on the test
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/coads_climatology.nc") NE 0` THEN EXIT/SCRIPT
+ !-> IF 0 THEN EXIT/SCRIPT
  
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/coads_climatology.nc"
+use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/coads_climatology.nc"
 sh data
      currently SET data sets:
-    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/coads_climatology.nc  (default)
- name     title                             I         J         K         L         M         N
- 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      ...       ...
+    1> http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/coads_climatology.nc  (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
  
 plot/x=180/y=0 sst
 ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C)                                             
+ @ACSEA SURFACE TEMPERATURE                                                     
                                                                                 
  @ASDeg C                                                                       
 
           XPOS       YPOS     HGT   ROT   UNITS
- LAB 1  8.000E+00  7.200E+00 0.060    0  SYSTEM  @ASFERRET (beta/dbg) Ver.7
+ LAB 1  8.000E+00  7.200E+00 0.060    0  SYSTEM  @ASFERRET (beta/debug) Ver.7.1
  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  @AS15-JUN-2016 12:06:19
+ LAB 3  8.000E+00  7.000E+00 0.060    0  SYSTEM  @AS17-APR-2017 16:46:47
  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
@@ -47548,13 +48090,14 @@ ppl list labels
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  LAB 7  4.000E+00  6.330E+00 0.120    0  SYSTEM  @A
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
- LAB 8  8.000E+00  6.790E+00 0.064    0  SYSTEM  @ASOPeNDAP <NL>URL: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
+ LAB 8  8.000E+00  6.790E+00 0.058    0  SYSTEM  @ASOPeNDAP <NL>URL: http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  
  
 ! Fix for bug 906: auto-formatting of labels on color keys loses precision
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_keylabels.jnl
 ! err570_keylabels.jnl
 ! 11/2004
@@ -47570,6 +48113,7 @@ shade/lev=(370,382,0.5) a
 ! where polygon arguments have latitude or longitude units
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_poly_lonlat_axis.jnl
 ! err570_poly_lonlat_axis.jnl
 ! 12/14/04
@@ -47594,8 +48138,10 @@ POLYGON XT, YT, I[I=1:10]
 PLOT/VS XT, YT
  
 ! ******** V5.81 Additions below ***********
-GO bn_reset
+GO bn_reset bn_inf_levels.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_inf_levels.jnl
 GO bn_inf_levels.jnl
 ! Run FERRET/fer/ferretdods_gui
 ! test open upper and lower levels (-INF) (INF)
@@ -47620,8 +48166,8 @@ set view left
 fill/x=20e:150e/lev=(-inf),(4,28,0.5)(inf) sst[l=1]
 sh sym lev*
 LEV_TEXT = "(-INF),(4,28,0.5)(INF)"
-LEV_MIN = "-2.8"
-LEV_MAX = "32"
+LEV_MIN = "open-ended"
+LEV_MAX = "open-ended"
 LEV_NUM = "50"
 LEV_DEL = "irregular"
  
@@ -47629,8 +48175,8 @@ set view right
 shade/lev=(-inf),(4,28,0.5)(inf)/key=cont sst[l=1]
 sh sym lev*
 LEV_TEXT = "(-INF),(4,28,0.5)(INF)"
-LEV_MIN = "-2.8"
-LEV_MAX = "32"
+LEV_MIN = "open-ended"
+LEV_MAX = "open-ended"
 LEV_NUM = "50"
 LEV_DEL = "irregular"
  
@@ -47688,8 +48234,10 @@ go polymark poly/key/title="polygons"/lev=(-inf)(4,26,1)(inf), lon, lat, xsequen
  
  
  
-GO bn_reset
+GO bn_reset bn_regulart.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regulart.jnl
 GO bn_regulart.jnl
 ! bn_regulart.jnl
 ! 5/12/2005 ACM
@@ -47735,8 +48283,10 @@ list/l=1:6 t[gt=tcoads], tbox[gt=tcoads]
 17-JUN-1946 / 6:  90017.  30.44
  
  
-GO bn_reset
+GO bn_reset bn_labwid.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_labwid.jnl
 GO bn_labwid.jnl
 ! LABWID returns the length in Denbo inches of the
 ! string.  For multi-line strings, returns length of
@@ -47790,8 +48340,10 @@ let wid = labwid("@P2 at IILine1<NL>@IIA LONGER LINE",.15)
 label/nouser `wid`, 3, -1, 0, .15,  "@P4 at IIMulti-line<NL>Length is longest of ALL lines<NL>Line three"
  !-> PPL %LABEL/nouser 2.019230842590332, 3, -1, 0, .15,  "@P4 at IIMulti-line<NL>Length is longest of ALL lines<NL>Line three"
  
-GO bn_reset
+GO bn_reset bn_redefine_taxis_mc.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_redefine_taxis_mc.jnl
 GO bn_redefine_taxis_mc.jnl
 ! bn_redefine_taxis_mc.jnl
 ! ACM 15-Apr-2005
@@ -47856,8 +48408,10 @@ list/x=180/y=0 sst
  5   / 5:  28.49
  6   / 6:  28.32
  
-GO bn_reset
+GO bn_reset bn_illegal_axisname.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_illegal_axisname.jnl
 GO bn_illegal_axisname.jnl
 ! 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.
@@ -47869,12 +48423,12 @@ use illeg_axname.nc
 sh data
      currently SET data sets:
     1> ./illeg_axname.nc  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:21      1:16      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:21      1:16      ...       ...
  NEW.LONGITUDES
-          X[GX=SST]                        1:21      ...       ...       ...       ...       ...
+          X[GX=SST]                        1:21      ...       ...       ...
  NEW.LATITUDES
-          Y[GY=SST]                        ...       1:16      ...       ...       ...       ...
+          Y[GY=SST]                        ...       1:16      ...       ...
  
 list/i=1:5 x[gx=sst]
              VARIABLE : X
@@ -47909,11 +48463,11 @@ sh grid sst
  'COADSY.ILLEGAL' LATITUDE     16 r   35N                  65N                 full
  normal    Z
  normal    T
- normal    E
- normal    F
  
-GO bn_reset
+GO bn_reset bn_exit_script.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_exit_script.jnl
 GO bn_exit_script.jnl
 ! bn_exit_script.jnl
 ! 5/2005 ACM
@@ -48001,8 +48555,10 @@ loop
 3
 loop
  
-GO bn_reset
+GO bn_reset bn_exit_cycle.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_exit_cycle.jnl
 GO bn_exit_cycle.jnl
 ! bn_exit_cycle.jnl
 ! 5/2005 ACM
@@ -48032,8 +48588,10 @@ say 16384 if bigger than 500
  
 loop finished 16384 gt 10000
  
-GO bn_reset
+GO bn_reset bn_curv_mod.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_curv_mod.jnl
 GO bn_curv_mod.jnl
 ! bn_curv_mod
 ! Test of fill/mod and contour/mod
@@ -48053,8 +48611,10 @@ 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]
  
  
-GO bn_reset
+GO bn_reset bn_shade_keycont.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_shade_keycont.jnl
 GO bn_shade_keycont.jnl
 ! Continuous shade key
 ! test setting it and whether default is restored on next command.
@@ -48149,8 +48709,10 @@ ppl shakey ,0,-.12,3,,,`x1`,`x2`,`y1`
  !-> ppl shakey ,0,-.12,3,,,2.2,5.212,1.4
 ppl fill
  
-GO bn_reset
+GO bn_reset bn581_bug_fixes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn581_bug_fixes.jnl
 GO bn581_bug_fixes.jnl
 ! bn581_bug_fixes.jnl
 ! test various fixes that went into version 5.81
@@ -48160,6 +48722,7 @@ GO bn581_bug_fixes.jnl
 ! Bug 1160 short axis with irreg bounds seen as regular.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_irreg_bounds.jnl
 ! err580_irreg_bounds.jnl
 ! Define a short irregular time axis with some time_bounds,
@@ -48176,8 +48739,6 @@ show grid/t a
  normal    Y
  normal    Z
  TIME      T                    2 i   0.5                  2                   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO
        1>  0.5                   1          0
@@ -48200,8 +48761,6 @@ show grid/t a
  normal    Y
  normal    Z
  TIME7     T                    2 i   0.5                  2                   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO
        1>  0.5                   1          0
@@ -48210,6 +48769,7 @@ show grid/t a
 ! Bug 1179 Cartesian_axis and positive="down" resulted in depth axis not being recognized
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_cartesian_depth.jnl
  ! err580_cartesian_depth.jnl
 ! cartesian_axis attribute
@@ -48225,12 +48785,11 @@ sh grid temp
  GRID_Y_T  LATITUDE             1 r   0.25S                0.25S               full
  ZT        DEPTH (m)           10 i-  22.5                 158                 full
  TIME7     TIME                 1mr   15-FEB-1900 03:00    15-FEB-1900 03:00   full
- normal    E
- normal    F
  
 ! Bug 1181 Titles were truncated at 80 characters
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_long_title.jnl
  
  ! err580_long_title.jnl
@@ -48244,6 +48803,7 @@ sp ncdump longtitle.nc >> all_ncdump.out
 ! Bug 1180 Allow "use filename.des"
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_use_des.jnl
 ! err580_use_des.jnl
 ! Allow "use filename.des"   (previously gave an "is this a CDF file?" error)
@@ -48252,14 +48812,15 @@ use vary_scale.des
 sh data
      currently SET data sets:
     1> ./vary_scale.des  (default)
- name     title                             I         J         K         L         M         N
- TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20
  
  
  
 ! Bug 1180 Allow "use filename.des"
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_use_des.jnl
 ! err580_use_des.jnl
 ! Allow "use filename.des"   (previously gave an "is this a CDF file?" error)
@@ -48268,13 +48829,14 @@ use vary_scale.des
 sh data
      currently SET data sets:
     1> ./vary_scale.des  (default)
- name     title                             I         J         K         L         M         N
- TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20
  
  
 ! fix for bug 1181: dataset title was limited to 80 characters.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_long_dsettitle.jnl
 ! err580_long_dsettitle
 ! fix for bug 1181
@@ -48297,6 +48859,7 @@ sp ncdump longtitle.nc >> all_ncdump.out
 ! fix for bug 1200:crash due to the long veckey format spec.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_long_veckey.jnl
 ! err580_long_veckey.jnl
 ! Bug 1200 The following caused a crash due to the long veckey format spec.
@@ -48312,6 +48875,7 @@ ppl veckey,0,0,,"(1PG10.3)"
 ! fix for bug 1201: mistranslation of time region.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_cal360_region.jnl
 ! err580_cal360_region.jnl
 ! Wrong output region: the set region mistakenly tranlated
@@ -48333,6 +48897,7 @@ default region:
 ! fix for bug 1203: crash if time range left off.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_def_tax_norange.jnl
 ! err580_def_t_norange.jnl
 ! bug 1203. without the T range, these statements cause a STOP.
@@ -48345,6 +48910,7 @@ DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
 ! fix for bug 1207: closest distance and closest index transformations.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_cdb.jnl
 ! err580_cdb.jnl
 ! bug 1207
@@ -48388,6 +48954,7 @@ list var[i=5 at cia:10]
 ! fix for bug 1214: crash on repeating a SET VIEW when viewport defined with /AXES
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_def_view_axes.jnl
 ! err580_def_view_axes.jnl
 ! BUG 1214
@@ -48428,6 +48995,7 @@ sp rm -f viewaxes.plt*
 ! fix for bug 1205: symbol LEV_DEL wrong when single level specified
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_lev_del.jnl
 ! err580_lev_del.jnl
 ! demonstrates bug 1205; precision of LEV_DEL when single level specified.
@@ -48456,6 +49024,7 @@ LEV_DEL = "1.2"
 ! Fix for bug 1174: strfloat_c("nonsense") gave result of 0 rather than missing.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_strfloat_errors.jnl
 ! err580_strfloat_errors.jnl
 ! Previously a nonsense input gave a result of 0.
@@ -48477,6 +49046,7 @@ list/prec=6 strfloat(b)
 ! Fixes for bugs 1249, 1250: uppercase not recognized for qualifier argument
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_arg_case.jnl
 ! err580_arg_case.jnl
 ! 5/2005
@@ -48496,6 +49066,7 @@ plot/step=CONN/i=1:10 sin(i)
 ! Fixes for bugs 1019: kludge for CDC time axes made time origin incorrect on outputs
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_cdc_timeaxis.jnl
 ! err580_cdc_timeaxis.jnl
 ! 6/3/05
@@ -48545,6 +49116,7 @@ sp rm -f my_cdc_timeaxis.nc
 ! Fix for bug 1272: show axis/t= with NOLEAP calendar
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_show_axis_t.jnl
 ! err580_show_axis_t
 ! bug 1272: wrong range shown when nonstd calendar
@@ -48591,6 +49163,7 @@ T0 = 15-JAN-1901
 ! Fix for bug 1279 which was only in the first iteration of v5.81 release
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_nlev.jnl
 ! err580_nlev.jnl
 ! bug 1279
@@ -48605,6 +49178,7 @@ fill/lev=30 sst[l=2]
 ! acm 8/29/2005
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_vs_poly_axis.jnl
 ! err581_vs_poly_axis.jnl
 ! Test fix of bug 1349: formatted axis labels on PLOT/VS and POLYGON plot
@@ -48633,8 +49207,10 @@ POLYGON/LINE/fill xp, yp, ypts
  
  
 ! ******** V6.00 Additions below ***********
-GO bn_reset
+GO bn_reset bn_tab_comma_multivar.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_tab_comma_multivar.jnl
 GO bn_tab_comma_multivar.jnl
 ! bn_tab_comma_multivar.jnl
 !
@@ -48678,8 +49254,10 @@ COUNTRY	ID	AA	BB	NEWCOUNTRY	THE_DATA_VAR
 "JP"	2	8000	2000500	"c"	5  
 "US"	3	12000	3000500	"e"	4  
  
-GO bn_reset
+GO bn_reset bn_element_functions.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_element_functions.jnl
 GO bn_element_functions.jnl
  ! NOAA/PMEL TMAP
  ! FERRET v5.81
@@ -48805,8 +49383,10 @@ list element_index_str_n (axy[k=1:2,j=1:2], {"a10", "a2", "d4", "c5"})
  2   / 2:   ....  3.000
  
  
-GO bn_reset
+GO bn_reset bn_long_revision_num.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_long_revision_num.jnl
 GO bn_long_revision_num.jnl
 ! bn_long_revision_num.jnl
 ! ACM 8/30/05
@@ -48815,7 +49395,7 @@ GO bn_long_revision_num.jnl
  
 ! ferret version
 sh sym FERRET_VERSION
-FERRET_VERSION = "7"
+FERRET_VERSION = "7.1"
  
 ! history attribute
 let a = 12
@@ -48833,7 +49413,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/dbg) version7:
+ Commands in Program FERRET (beta/debug) version7.1:
  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
@@ -48861,12 +49441,12 @@ sho command
  SHOW EXPRSION/ALL
  SHOW LIST/ALL
  SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
-       /HIDDEN
+       /HIDDEN/MEMBERS
  SHOW MODE/ALL
  SHOW MOVIE/ALL
  SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
  SHOW COMMANDS/ALL/BRIEF
- SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+ SHOW MEMORY/ALL/DIAGNOST/TEMPORY/PERMANT/FREE
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
  SHOW VIEWPORT/ALL
  SHOW TRANFORM/ALL
@@ -48919,7 +49499,7 @@ sho command
  DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+         /EDGES/CALENDAR/BOUNDS/QUIET/MONTHLY/LIKE
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
  DEFINE ALIAS
  DEFINE SYMBOL
@@ -48936,13 +49516,12 @@ sho command
  PPLUS/RESET
  FRAME/FORMAT/FILE/TRANSPAR
  REPEAT/I/J/K/L/M/N/X/Y/Z/T/E/F/ANIMATE/LOOP/RANGE/NAME
- STAT/BRIEF/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET
+ STAT/BRIEF/PRECISIO/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET
  SHADE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/TRIM
         /LINE/NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/AXES
         /NOAXES/PATTERN/HGRATICU/VGRATICU/GRATICUL/MODULO/HLIMITS/VLIMITS
         /DEGMINSE/HALFSPAC
  SPAWN
- USER/OPT1/OPT2/COMMAND/I/J/K/L/X/Y/Z/T/DATASET/FILE/FORMAT
  WIRE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/VIEWPOIN/ZLIMITS
        /TRANPOSE/NOLABEL/ZSCALE/TITLE
  QUERY/ALL/FILE/IGNORE
@@ -48958,8 +49537,10 @@ sho command
  
  Use SHOW ALIAS to see alternative command names
  
-GO bn_reset
+GO bn_reset bn_window_title.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_window_title.jnl
 GO bn_window_title.jnl
 ! bn_window_title.jnl
 ! Define a title for windows rather than just FERRET_1, FERRET_2, ...
@@ -48972,7 +49553,7 @@ go ptest
 PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
  
 sh sym win_title
-WIN_TITLE = "15-Jun-16:12:05"
+WIN_TITLE = "17-Apr-17:16:45"
  
 set win/title="set the title"
 sho sym win_title
@@ -48990,7 +49571,7 @@ sho sym win_title
 WIN_TITLE = "_"
  
 set win/title="($session_date):($session_time)"
- !-> set win/title="15-Jun-16:12:05"
+ !-> set win/title="17-Apr-17:16:45"
  
 ! If the date or time starts with a blank then we get an extra
 ! underscore in the window title. Evaluating the symbols into
@@ -48999,19 +49580,21 @@ set win/title="($session_date):($session_time)"
 ! If so substitute another string.
  
 DEFINE SYMBOL the_date = ($session_date"SESSION_DATE")
- !-> DEFINE SYMBOL the_date = 15-Jun-16
+ !-> DEFINE SYMBOL the_date = 17-Apr-17
 DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 12:05
+ !-> DEFINE SYMBOL the_time = 16:45
 SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="15-Jun-16:12:05"
+ !-> SET WIN/TITLE="17-Apr-17:16:45"
  
 can win/all
 set win/new
 sh sym win_title
-WIN_TITLE = "15-Jun-16:12:05"
+WIN_TITLE = "17-Apr-17:16:45"
  
-GO bn_reset
+GO bn_reset bn_last_error.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_last_error.jnl
 GO bn_last_error.jnl
 ! bn_last_error.jnl
 ! acm Nov 2005
@@ -49066,8 +49649,10 @@ FER_LAST_ERROR = "**ERROR: error in external function. Bailing out of external f
  
 SET MODE/LAST IGNORE_ERROR
  
-GO bn_reset
+GO bn_reset bn_deg_min.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_deg_min.jnl
 GO bn_deg_min.jnl
 ! bn_deg_min.jnl
 ! label axes with degrees and minutes rather than degrees and decimal degrees.
@@ -49119,8 +49704,10 @@ plot/x=223./DEGMIN/HALFSP rose
 plot/y=58.52/DEGMIN=2/HALFSP rose
 plot/vs/HALFSP  xpts, ypts
  
-GO bn_reset
+GO bn_reset bn_dp_readscale.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dp_readscale.jnl
 GO bn_dp_readscale.jnl
 ! bn_dp_readscale.jnl
 ! 9-Feb-2006 ACM
@@ -49198,8 +49785,10 @@ list xax
  
 cancel list/precision
  
-GO bn_reset
+GO bn_reset bn_bounds_defineax.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_bounds_defineax.jnl
 GO bn_bounds_defineax.jnl
 ! bn_bounds_defineax.jnl
 ! 3/22/2006
@@ -49403,8 +49992,10 @@ list zboxlo[gz=zax2], z[gz=zax2], zboxhi[gz=zax2]
 1678.5 / 12:  1158.  1679.  2199.
 2849   / 13:  2199.  2849.  3499.
  
-go bn_reset
+go bn_reset bn_attributes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_attributes.jnl
 go bn_attributes.jnl
 ! bn_attributes
 ! test attribute handling on netcdf intput/output and
@@ -49414,6 +50005,7 @@ go bn_attributes.jnl
 ! 31Aug2006 ACM Remove OPeNDAP references; not essential to the
 ! benchmark tests.
  
+! small addition below 1/17 *sh*
  
 !-----
  
@@ -49769,6 +50361,7 @@ can mode ignore
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! attributes of string variables
@@ -49784,6 +50377,7 @@ sp ncdump a.nc >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Demonstrate `var,return=` output for attributes
@@ -49828,6 +50422,7 @@ say `broiled.acf,return=size`
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! define variables to contain attribute value(s)
@@ -49862,6 +50457,7 @@ list s
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Variables containing number of variables, attributes, dimensions,
@@ -50070,6 +50666,7 @@ let anames = `names[i=2]`.attnames
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
  
 !-----
@@ -50111,6 +50708,7 @@ say `(yax_lev94).nattrs[d=1]`
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! more on access to attribute names and values as variables
@@ -50130,12 +50728,10 @@ list/d=3 a
 list temp.units[d=3]
              VARIABLE : TEMP.UNITS[D=ocean_atlas_temp]
              FILENAME : ocean_atlas_temp.cdf
-             X        : 1
         "Deg C"
 list/d=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : ocean_atlas_temp.cdf
-             X        : 1
         "From ocean_atlas_monthly"
  
 can data/all
@@ -50252,6 +50848,7 @@ list a[i=1]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! keyword . to refer to global properties and attributes
@@ -50279,24 +50876,23 @@ list/d=2 ..nvars
 sh data
      currently SET data sets:
     1> ./gt4d011.cdf
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
+ SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
+ U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
+ V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
+ W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
+ TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
+ TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
+ PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  
     2> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
 list/d=2 ..varnames
              VARIABLE : ..VARNAMES
              FILENAME : coads_climatology.cdf
-             X        : 1
         "SST"
  
 list/d=2 ..dimnames
@@ -50340,7 +50936,6 @@ list/d=1 ..nattrs
 list/d=1 ..attnames
              VARIABLE : ..ATTNAMES
              FILENAME : gt4d011.cdf
-             X        : 1
         "history"
  
 list/d=1 ..ndims
@@ -50389,6 +50984,7 @@ list/d=2 pp
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Editing attributes: add new attributes to a variable.
@@ -50441,6 +51037,7 @@ sh att/all temp[d=1]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Edit existing attributes on variables
@@ -50474,12 +51071,10 @@ use coads_climatology
 list (coadsx).units
              VARIABLE : (COADSX).UNITS
              FILENAME : coads_climatology.cdf
-             X        : 1
         "degrees_east"
 list (coadsx).modulo
              VARIABLE : (COADSX).MODULO
              FILENAME : coads_climatology.cdf
-             X        : 1
         " "
 sho att/all (coadsx)
      attributes for dataset: ./coads_climatology.cdf
@@ -50609,6 +51204,7 @@ can view
 can mode ignore
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Edit attributes: inherit all attrs from another variable
@@ -50628,11 +51224,11 @@ sh att/all salt
 set att/like=temp salt
 sh att/all salt
      attributes for dataset: ./gt4d011.cdf
+ SALT.missing_value = 0.01
+ SALT._FillValue = 0.01
  SALT.parent_grid = PS3DT2 
  SALT.slab_min_index = 91, 35, 1, 0
  SALT.slab_max_index = 108, 56, 10, 0
- SALT.missing_value = -1.E+34
- SALT._FillValue = -1.E+34
  SALT.long_name = TEMPERATURE 
  SALT.history = From gt4d011 
  SALT.units = deg. C 
@@ -50663,11 +51259,10 @@ let temp3 = temp*3
 set att/like=temp temp3
 sh att/all temp3
      attributes for user-defined variables
+ temp3.missing_value = -1.E+34
  temp3.parent_grid = PS3DT2 
  temp3.slab_min_index = 91, 35, 1, 0
  temp3.slab_max_index = 108, 56, 10, 0
- temp3.missing_value = -1.E+34
- temp3._FillValue = -1.E+34
  temp3.long_name = TEMPERATURE 
  temp3.history = From gt4d011 
  temp3.units = deg. C 
@@ -50675,7 +51270,7 @@ sh att/all temp3
  
 can var temp2
 let/units="degrees C"/title="my new TEMP"/bad=`temp,return=bad` temp2 = temp*2
- !-> DEFINE VARIABLE/units="degrees C"/title="my new TEMP"/bad= -9.999999790214768E+33 temp2 = temp*2
+ !-> DEFINE VARIABLE/units="degrees C"/title="my new TEMP"/bad=-9.999999790214768E+33 temp2 = temp*2
 sh att/all temp2
      attributes for user-defined variables
  temp2.long_name = my new TEMP 
@@ -50684,6 +51279,7 @@ sh att/all temp2
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Edit attributes, changing type
@@ -50773,6 +51369,7 @@ list pq
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! When we CANCEL MODE upcase_output, writing a netcdf file preserves
 ! case of variable and axis names. This file has lower case and some
@@ -50794,6 +51391,7 @@ set mode/last upcase_output
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
  
@@ -50841,6 +51439,7 @@ sp ncdump -c a.nc >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
  
 !-----
@@ -50904,6 +51503,7 @@ sp ncdump -h a.nc >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Read EZ ascii, delimited, and stream data files,
@@ -50915,9 +51515,9 @@ file/var="a1,a2,a3" EZ.DAT
 def att a1.three={1,2,3}
 sh att/all a1
      attributes for dataset: ./EZ.DAT
- A1.long_name = A1 
- A1.missing_value = -1.E+34
- A1.three = 1, 2, 3
+ a1.long_name = a1 
+ a1.missing_value = -1.E+34
+ a1.three = 1, 2, 3
 sh dat/att
      currently SET data sets:
     1> ./EZ.DAT  (default)
@@ -50926,14 +51526,14 @@ sh dat/att
   
  .                               history         CHAR        6    F       EZ.DAT
   
- A1                    FLOAT     long_name       CHAR        2    T       A1
+ a1                    FLOAT     long_name       CHAR        2    T       a1
                                  missing_value   FLOAT       1    T       -1.E+34
                                  three           FLOAT       3    T       1 2 3
   
- A2                    FLOAT     long_name       CHAR        2    T       A2
+ a2                    FLOAT     long_name       CHAR        2    T       a2
                                  missing_value   FLOAT       1    T       -1.E+34
   
- A3                    FLOAT     long_name       CHAR        2    T       A3
+ a3                    FLOAT     long_name       CHAR        2    T       a3
                                  missing_value   FLOAT       1    T       -1.E+34
   
 save/file=a.nc/clobber a1,a2,a3
@@ -50968,11 +51568,12 @@ file/format=str/var=num,num1/grid=mygrid/order=xyztv permutedBinaryTest.dat
 define att/type=string num.new = "a string attribute"
 sh att/all num
      attributes for dataset: ./permutedBinaryTest.dat
- NUM.long_name = NUM 
- NUM.missing_value = -1.E+34
- NUM.new = a string attribute 
+ num.long_name = num 
+ num.missing_value = -1.E+34
+ num.new = a string attribute 
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! manipulate attributes of user-defined variables
@@ -51025,6 +51626,7 @@ sp ncdump -h a.nc >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
  
@@ -51090,6 +51692,7 @@ sp ncdump a.nc  >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Set type of data on output, uses netcdf call to output
@@ -51157,6 +51760,7 @@ can data test0
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! More tests of user-defined variables. Bug 1427, now fixed, problem with varid of user vars
@@ -51232,6 +51836,7 @@ set var/outtype=garbage broiled
 can mode ignore
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
  
 !---!!!---
@@ -51279,6 +51884,7 @@ save/file=a.nc/clobber/L=1 t2
 sp ncdump -h a.nc >> all_ncdump.out
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! User-defined axes and variables
  
@@ -51309,6 +51915,7 @@ sh att/all (x2ax)
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 use levitus_climatology
 define att/out (`temp,return=xaxis`).new_att = "something"
@@ -51352,6 +51959,7 @@ save/file=a.nc/clobber/y=0:5 two
 sp ncdump -h a.nc >> all_ncdump.out
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! defining more axes with attributes
  
@@ -51385,6 +51993,7 @@ sp ncdump -h string4d.nc >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! For SET ATT timeaxis.units or SET ATT timeaxis.time_origin
 ! include the correct time origin as part of the units attribute.
  
@@ -51485,12 +52094,11 @@ set att/like=sst sst2
 list sst2.attnames
              VARIABLE : SST2.ATTNAMES
              FILENAME : coads_climatology.cdf
-             SUBSET   : 5 points (X)
+             SUBSET   : 4 points (X)
  1   / 1:"missing_value"
- 2   / 2:"_FillValue"   
- 3   / 3:"long_name"    
- 4   / 4:"history"      
- 5   / 5:"units"        
+ 2   / 2:"long_name"    
+ 3   / 3:"history"      
+ 4   / 4:"units"        
  
  
 ! Add a global attribute
@@ -51679,14 +52287,27 @@ sho att .
      attributes for dataset: ./levitus_climatology.cdf
  ..history = FERRET V5.22    5-Apr-01 
  
+! 1/17 *sh*
+! added a test of shifting attributes in is_attrib_val.F
+define att temp.test_counter = {1, 2, 3, 4, 5}
+list temp.test_counter[i=3:5]
+             VARIABLE : TEMP.TEST_COUNTER[I=3:5]
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 3 points (X)
+ 3   / 3:  3.000
+ 4   / 4:  4.000
+ 5   / 5:  5.000
+ 
 !=======
 ! 10/06 *acm* Remove tests of nco funcions: we dont want to require them to be installed
 !             on a system in order for it to pass the benchmarks.
 !go bn_reset
 !go bn_nco_functions.jnl
  
-go bn_reset
+go bn_reset bn_transforms.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_transforms.jnl
 go bn_transforms.jnl
 ! Test the transforms
  
@@ -51892,8 +52513,10 @@ 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    ....
  
-go bn_reset
+go bn_reset bn_variance.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_variance.jnl
 go bn_variance.jnl
  ! bn_variance.jnl
  ! the @VAR transform is not tested in bn_transforms.jnl script.
@@ -51931,8 +52554,10 @@ list/y=3/l=1/x=233 u[z=@var]
              TIME     : AUG-1982
           11.33
  
-go bn_reset
+go bn_reset bn_linecolors.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_linecolors.jnl
 go bn_linecolors.jnl
 ! bn_linecolors.jnl
 ! 5/2006 ACM
@@ -51999,8 +52624,10 @@ can win/all
 set win/new
  
  
-go bn_reset
+go bn_reset bn_cdf_errmsg.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cdf_errmsg.jnl
 go bn_cdf_errmsg.jnl
 ! bn_cdf_errmsg.jnl
 ! ACM 7/13/2006
@@ -52025,10 +52652,13 @@ use this_is_not_a_file.nc
 !!use "http://iridl.ldeo.columbia.edu/SOURCES/.FSU/.FULL/.tauyyyyy/dods"
  
 ! This is a valid address
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_air.cdf"
+use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_air.cdf"
+ 
+ 
+! Intentional errors
  
 ! change the variable name to something nonexistent
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
+use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
  
 ! bad server
 use  "http://noserver/a/nofile.cdf"
@@ -52044,8 +52674,10 @@ use asc.nc
 set mode/last ignore
  
  
-GO bn_reset
+GO bn_reset bn600_bug_fixes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn600_bug_fixes.jnl
 GO bn600_bug_fixes.jnl
 ! bn600_bug_fixes.jnl
 ! test various fixes that went into version 6.00
@@ -52055,6 +52687,7 @@ GO bn600_bug_fixes.jnl
 ! Bug 1129 axis formatting when /HLIM sets axis length < 0.15 deg
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_hlim_axislab.jnl
 ! err581_hlim_axislab.jn
 ! bug 1129
@@ -52089,6 +52722,7 @@ ppl list xaxis
 ! Bug 1275 stray characters appear in data lines listing string data
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_list_stray_chars.jnl
 ! err581_list_stray_chars.jnl
 ! 8/2005 (acm) bug 1275  stray characters in data listing
@@ -52126,6 +52760,7 @@ list/i=1:5 id, country, type
 ! pattern matching for SHO FUNC failed to match all EF's
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_sho_func_pattern_match.jnl
 ! err581_sho_func_pattern_match.jnl
 ! bug 1186
@@ -52170,6 +52805,7 @@ IS_ELEMENT_OF_STR_N(VAR,VALUES)
 ! FILL on data with subspan modulo axis, got wrong data
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_subspanx_fill_bug.jnl
 ! err581_subspanx_fill_bug.jnl
 ! bug 900: subspan longitude axis and hlimits gets wrong data
@@ -52195,6 +52831,7 @@ sp rm -f err581_subspanx_fill_bug.nc
 ! bug 1318 Spurious error message on USE file where file has axes with bounds.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_use_bounds.jnl
 ! err581_use_bounds.jnl
 ! bug 1318 Spurious error message on USE file where file has axes with bounds.
@@ -52210,6 +52847,7 @@ use xyir
 ! Bug 1332 variable not scaled unless it is first variable in stepfile.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_des_scale.jnl
 ! err581_des_scale.jnl  bug 1332. When using a descriptor file and
 ! a varriable has scale_factor and/or add_offset attributes, the
@@ -52229,6 +52867,7 @@ EXIT/SCRIPT   ! error in namelist record...
 ! Bug 1335 Zero-contour should be dark line.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_contour_zero_lev.jnl
 ! err581_contour_zero_lev.jnl
 ! acm 9/7/2005
@@ -52241,6 +52880,7 @@ contour/lev=(-20,20,2) sst[L=1] - 20
 ! Bug 1339, code hangs with this combination of (-INF)(INF) levels and shakey
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_shakey_inf.jnl
 ! err581_shakey_inf.jnl
 ! acm 9/7/2005
@@ -52259,6 +52899,7 @@ ppl/reset  ! undo the SHAKEY setting.
 ! Bug 918, immediate mode parsing in IF blocks
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_if_conditional.jnl
 ! err581_if_conditional.jnl  bug 918.
 ! acm 10/2005
@@ -52469,6 +53110,7 @@ palette rainbow
 ! Ungraceful STOP if we asl for multi-var transformations on axis where there is no data
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_illegal_trans.jnl
 ! err581_illegal_trans.jnl
 ! Ungraceful STOP if we do @VAR on an axis where there is no data
@@ -52485,6 +53127,7 @@ can mode ignore_error
 ! missing flag gets scaled by scale and offset factors!
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_missing_scale_off.jnl
 ! err581_missing_scale_off.jnl
 ! ACM 11/8/05
@@ -52518,6 +53161,7 @@ list tt
 ! SHOW GRID and other output have wrong dates, non-std calendar axesv
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_cal_dates_output.jnl
 ! err581_cal_dates_output.jnl
 ! bug 1363:
@@ -52539,13 +53183,12 @@ sho grid t3
  normal    Y
  normal    Z
  T360      TIME                61 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
- normal    E
- normal    F
  
 ! bug 1365
 ! STOP on shade command when modulo-regridding a time-limited nonstd calendar
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_noleap_mod.jnl
 ! err581_noleap_mod.jnl
 ! This is bug 1365: STOP on shade command
@@ -52565,6 +53208,7 @@ shade/y=0/k=1 a_clim
 ! CANCEL DATA errors
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_cancel_data.jnl
 ! err581_cancel_data.jnl
  
@@ -52585,8 +53229,8 @@ use "subdir/a.nc"
 sh data
      currently SET data sets:
     1> subdir/a.nc  (default)
- name     title                             I         J         K         L         M         N
- A        {1,5,6}                          1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        {1,5,6}                          1:3       ...       ...       ...
  
 can data "subdir/a.nc"
 sh data
@@ -52596,8 +53240,8 @@ set data "subdir/0000_a.nc"
 sh data
      currently SET data sets:
     1> subdir/0000_a.nc  (default)
- name     title                             I         J         K         L         M         N
- A        {1,5,6}                          1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        {1,5,6}                          1:3       ...       ...       ...
  
 can dat 0000_a
 set data "subdir/0000_a.nc"
@@ -52617,6 +53261,7 @@ sp rm -f subdir/0000_a.nc
 ! CANCEL DATA errors
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_since_units.jnl
 ! err581_since_units.jnl
 ! bug 1394: units of months_since_event
@@ -52649,6 +53294,7 @@ list a
 ! CANCEL DATA errors
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_exp_spaces.jnl
 ! err581_exp_spaces.jnl
 ! bug 1395
@@ -52705,6 +53351,7 @@ can mode ignore
 ! bugs 439,1390: applying command context
 GO bn_reset.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_command_cx.jnl
 ! err590_command_cx.jnl
 ! bugs 439 and 1390: the command context should apply to immed. mode evaluation
@@ -52731,6 +53378,7 @@ can mode ignore
 ! bug 1401: define 1-point axis with bounds; gets bounds wrong
 GO bn_reset.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_define_1pt_bounds.jnl
 ! err581_define_1pt_bounds.jnl
 ! see bug 1401:
@@ -52774,6 +53422,7 @@ list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
 ! Bug in strrindex when 1st argument is a list of strings
 GO bn_reset.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_strrindex.jnl
 ! err581_strrindex.jnl
 ! 5/2/2006
@@ -52793,6 +53442,7 @@ list strrindex(var,"s")
 ! POLYGON/LINE over a depth axis.
 GO bn_reset.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_poly_rev.jnl
 ! err581_poly_rev.jnl
 ! POLYGON/LINE mis-locates the line when there is a depth or
@@ -52848,8 +53498,10 @@ set mem /size=25.6
  
  
 ! ******** V6.01 Additions below ***********
-GO bn_reset
+GO bn_reset bn601_bug_fixes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn601_bug_fixes.jnl
 GO bn601_bug_fixes.jnl
 ! bn601_bug_fixes.jnl
 ! test various fixes that went into version 6.01
@@ -52859,6 +53511,7 @@ GO bn601_bug_fixes.jnl
 ! Bug 1443
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_long_bounds_name
 ! err600_long_bounds_name.jnl
 ! Long name for bounds attribute was not read by Ferret
@@ -52891,6 +53544,7 @@ list  x[gx=var], xbox[gx=var], xboxlo[gx=var], xboxhi[gx=var]
 ! bug1434
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_check_bounds_regular.jnl
 ! err600_check_bounds_regular.jnl
 ! Previously TM_CHECK_BNDS had not been used to check bounds on regular axes.
@@ -52911,6 +53565,7 @@ use b
 ! Bug 1439
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_long_symbol_string.jnl
 ! err600_longsym_symbol_string.jnl
 ! Long values for symbols: previously strings were cut off at 255 characters.
@@ -52954,6 +53609,7 @@ CANCEL SYMBOL longsym*
 ! bug 1445
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_missing_flag.jnl
 ! noglobalhistory.nc has no global history attribute, and
 ! also the variable B has no missing or fill value flag
@@ -52977,6 +53633,7 @@ list b
 ! ( a parsing error, confusing the dot in the filename with dot in `var.att,return=size` )
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_returnsize.jnl
 ! err600_returnsize.jnl
 ! ACM 10-4-2006
@@ -53004,6 +53661,7 @@ say `(($the_x_axis)).units,return=size`
 ! thrown off and we got an error about an invalid ENDIF
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_if_comments_tab.jnl
 ! err600_if_comments_tab.jnl
 ! ACM 10-4-2006
@@ -53021,6 +53679,7 @@ ENDIF
 ! Bug 1454 Settings made by SET VAR/TITLE=/UNITS= were not saved in output file
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_set_var_title.jnl
 ! err600_set_var_title.jnl
 ! Bug 1454
@@ -53078,6 +53737,7 @@ use a.nc
 ! be labelled with the var name but it only has units label
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_var_label.jnl
 ! err600_var_label.jnl
 ! bug1442
@@ -53123,6 +53783,7 @@ list/i=70/l=1/j=30/k=1 temp
 ! Bug 1461 upcasing of axis name on creating bounds variable for output
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_upcase.jnl
  ! err600_upcase.jnl
  ! 10/23/2006
@@ -53147,6 +53808,7 @@ SET MODE/LAST ignore_error
 ! structure fail, and the list of variable names was incorrect.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_let_d.jnl
 ! err600_let_d.jnl
 ! Making a LET/D= assignment caused the return of dimension
@@ -53174,6 +53836,7 @@ list ..varnames
 ! Bug 1459 order of multiple descriptor file opening causes netCDF error
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_nc_des_order.jnl
 ! err600_nc_des_order.jnl
 ! 11/07/2006 ACM
@@ -53235,6 +53898,7 @@ stat rose[j=12,d=1]
 ! in the attribute structure.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_reset_redefine_axis.jnl
 ! err600_reset_redefine_axis.jnl
 ! Bug 1470; redefine or reset attributes of an axis
@@ -53368,6 +54032,7 @@ show axis ($zax)
 ! orig_file_axname keeps the input name.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_ferret_axis_names.jnl
 ! err600_ferret_axis_names.jnl
 ! If Ferret needed to rename an axis on file initialization for uniqueness,
@@ -53425,7 +54090,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -53474,7 +54139,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -53525,6 +54190,7 @@ sho dat/att
 ! should output a comma or tab as placeholder for the missing value
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_tab_comma_missingdat.jnl
 ! err600_tab_comma_missingdat.jnl
 ! 11/21/2006 acm
@@ -53597,6 +54263,7 @@ list/form=tab a,b,a
 ! VECTOR/ASPECT plots are wrong (incorrect fix for bug 1348)
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_vec_aspect.jnl
 ! err600_vec_aspect.jnl
 ! VECTOR/ASPECT plots are wrong (incorrect fix for bug 1348)
@@ -53620,6 +54287,7 @@ vec/asp/over a,b
 ! when checking whether 2nd variable has same grid.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_save_two.jnl
 ! err600_save_two.jnl
 ! 12/11/2006
@@ -53637,6 +54305,7 @@ save/clobber/file="out.nc" olr[d=1], swdn_toa[d=2]
 ! Bug 1459 order of multiple descriptor file opening causes netCDF error
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_nc_des_order.jnl
 ! err600_nc_des_order.jnl
 ! 11/07/2006 ACM
@@ -53694,8 +54363,10 @@ stat rose[j=12,d=1]
  Standard deviation: 156.25
  
 ! ******** V6.02 Additions below ***********
-GO bn_reset
+GO bn_reset bn_set_strides.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_strides.jnl
 GO bn_set_strides.jnl
 ! bn_set_strides.jnl
 ! Jing Li, 11/2006
@@ -53985,8 +54656,8 @@ use/order=yzt coads_climatology
 show data/all
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          ...       1:180     1:90      1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          ...       1:180     1:90      1:3
  
 set axis/stride=5 `sst,return=yaxis`
  !-> set axis/stride=5 COADSX
@@ -54136,8 +54807,10 @@ show axis `sst,return=taxis`
 T0 = 01-JAN-0000 00:00:00
    Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
  
-GO bn_reset
+GO bn_reset bn_lsl_lowpass.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_lsl_lowpass.jnl
 GO bn_lsl_lowpass.jnl
 ! bn_lsl_lowpass.jnl
 ! Test lsl_lowpass, now included as a statically-linked external function
@@ -54172,8 +54845,10 @@ LIST/L=10:20 MY_TEMP[L=1:110], F_FILTERED[L=1:110]
 14-MAR-1982 09 / 20:   27.42   27.43
  
  
-GO bn_reset
+GO bn_reset bn_return_xmod_tmod.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_return_xmod_tmod.jnl
 GO bn_return_xmod_tmod.jnl
 ! New `var,return=xmod` `var,return=tmod`
 ! Return modulo lengths, or blank if not modulo
@@ -54186,8 +54861,6 @@ sh grid temp
  YAX_LEV94 LATITUDE           180 r   89.5S                89.5N               full
  ZAXLEVIT191_1 DEPTH (m)        1 r-  0                    0                   full
  TIME3     TIME                 2mr   16-JAN 06:00         15-FEB 16:29        full
- normal    E
- normal    F
 sh axis XAX_LEV9421_380
  name       axis              # pts   start                end
  XAX_LEV9421_380 LONGITUDE    360mr   20.5E                19.5E(379.5)
@@ -54237,8 +54910,6 @@ sh grid axy
  Y3AX      Y                    3 r   1                    3                   full
  Z4AX      Z                    4 r   1                    4                   full
  T2AX1     T                    2 r   1                    2                   full
- normal    E
- normal    F
 show axis x2ax
  name       axis              # pts   start                end
  X2AX      X                    2mr   1                    2
@@ -54247,8 +54918,10 @@ say `axy,return=xmod`
  !-> MESSAGE/CONTINUE 2
 2
  
-GO bn_reset
+GO bn_reset bn602_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn602_bug_fixes
 GO bn602_bug_fixes
 ! bn602_bug_fixes.jnl
 ! test various fixes that went into version 6.02
@@ -54258,6 +54931,7 @@ GO bn602_bug_fixes
 ! bug 1468: SHOW AXIS/ALL/XML listed the wrong info for the calendar
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err601_sho_ax_xml_calendar.jnl
 ! err601_sho_ax_xml_calendar.jnl
 ! 11/8/2006 ACM
@@ -54312,6 +54986,7 @@ sh axis/xml timenoleap
 ! with unspecified_int4.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err601_index_111.jnl
  
 ! err601_index_111.jnl
@@ -54338,6 +55013,7 @@ list x[gx=sst,x=-193:-203]
 ! Check for irregular axis actually being irregular failed; bug 1483
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err601_irregular_axis.jnl
 ! err601_irregular_axis.jnl
 ! V6.0 had a new scheme to check for irregular axes; for an axis
@@ -54352,8 +55028,6 @@ SHOW GRID/Z atmos
  normal    Y
  ALTITUDE  Z (Pa)              50 i   6.791595619E-10      1400                full
  TIME11    TIME                 1mr   01-JAN 04:00         01-JAN 04:00        full
- normal    E
- normal    F
  
        K     Z                   ZBOX      ZBOXLO
        1>  6.791595619227E-10    6.885E-10  3.349092392302E-10
@@ -54412,6 +55086,7 @@ SHOW GRID/Z atmos
 ! see bug 1485, check on missing coordinates for 3-argument graphics
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err601_check_missing_3arg.jnl
 ! err601_check_missing_3arg.jnl
 ! see bug 1485: if missing coordinates in a curvilinear dataset, we should be
@@ -54495,6 +55170,7 @@ sp rm -f tripolar_missing_lon.nc
 !  when the last element is missing.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err601_missing_string_element.jnl
 ! err601_missing_string_element.jnl
 !  Bug 1488. Seg fault when try to list a string variable
@@ -54511,8 +55187,10 @@ list a
  
  
 ! ******** V6.03 Additions below ***********
-GO bn_reset
+GO bn_reset bn_modnbd.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_modnbd.jnl
 GO bn_modnbd.jnl
 ! Test MODNBD regridding statistic.
  
@@ -54576,8 +55254,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn_fifty_files.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_fifty_files.jnl
 GO bn_fifty_files.jnl
 ! bn_fifty_files.jnl
 ! We build OPeNDAP so that 100 files can be opened at a time.
@@ -54639,8 +55319,10 @@ use weird_name1.cdf
 cancel mode ignore_error
  
  
-GO bn_reset
+GO bn_reset bn603_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn603_bug_fixes
 GO bn603_bug_fixes
 ! bn603_bug_fixes.jnl
 ! test various fixes that went into version 6.03
@@ -54650,6 +55332,7 @@ GO bn603_bug_fixes
 ! SHADE/LEV did not keep same levels after a SHADE/LINE
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err602_shade_line_lev.jnl
 ! err602_shade_line_lev.jnl
 ! Bug 904.
@@ -54690,6 +55373,7 @@ LEV_DEL = "0.05"
 ! Draw correct SHADE and FILL plots across the modulo branch cut.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err602_curvi_modulo_cut
 ! err602_curvi_modulo_cut.jnl
 ! 5/07  bug 1302
@@ -54712,6 +55396,7 @@ fill/hlim=75:85/vlim=-10:0/mod u,geolon_c,geolat_c
 ! SET LIST/PREC worked for multi-var listings, LIST/PREC= var1,var2 did not
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err602_list_prec
 ! err602_list_prec.jnl
 ! fixes for bug 1388: SET LIST/PREC worked for multi-variable listings,
@@ -54758,8 +55443,10 @@ LIST/NOHEAD/I=91:94/J=37/K=1/L=1 TEMP,SALT
  
 ! ******** V6.05 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_set_var_name.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_var_name.jnl
 GO 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!
@@ -54772,12 +55459,10 @@ SET VAR/NAME=my_sst sst
 SHOW DATA
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- MY_SST   SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ MY_SST   SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
  
-Unable to allocate 500000.0 Mwords of memory.
-Restoring previous memory of 0.2 Mwords.
 LIST/X=179:183/Y=40/L=3 my_sst
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
@@ -54808,15 +55493,16 @@ LIST/X=179:183/Y=40/L=3 sst
  177W   / 82:  36.23927
  
  
-GO bn_reset
-cancel mode verify
+!GO bn_reset
 ! This routine executes a ppl error which exits us from Ferret
 ! when run in the benchmark suite. Should test this, but dont do it
 ! here, for now.
 !GO bn_ppl_errors.jnl
  
-GO bn_reset
+GO bn_reset bn_memory_symbol
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_memory_symbol
 GO bn_memory_symbol
 ! bn_memory_symbol.jnl
 ! Ferret v6.06 15-Aug-07
@@ -54829,22 +55515,28 @@ set mem/siz=90
 sh sym ferret_memory
 FERRET_MEMORY = "90"
 show memory
- Current size of FERRET memory cache: 90 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 90 megawords
+    Peak demand: 0 words
+    Current cache: 0 words
  
 set mem/size=0.05
 sh sym ferret_memory
-FERRET_MEMORY = "0.2"
+FERRET_MEMORY = "0.05"
  
 set mem/siz=500000  ! too large to allow
 sho sym ferret_memory
-FERRET_MEMORY = "0.2"
+FERRET_MEMORY = "500000"
  
 set mem/siz=25.6  ! return to the default setting
 show memory
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 0 words
+    Current cache: 0 words
  
-GO bn_reset
+GO bn_reset bn605_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn605_bug_fixes
 GO bn605_bug_fixes
 ! bn604_bug_fixes.jnl
 ! test various fixes that went into version 6.05
@@ -54853,6 +55545,7 @@ GO bn605_bug_fixes
 ! Fix for Bug 1524: irregular axis detected as REGULAR
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err604_irreg_axis.jnl
 ! Bug 1524: irregular axis detected as REGULAR!
  
@@ -54884,6 +55577,7 @@ list t[gt=month_irreg], tbox[gt=month_irreg]
 ! SHOW FUNCTIONS caused a crash or a message
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err605_show_func.jnl
 ! err605_show_func.jnl
 ! Reported by Andrew W.
@@ -54941,6 +55635,8 @@ DNCASE(STR)
 STRCAT(STR1,STR2)
 SUBSTRING(STR,OFFSET,LENGTH)
 STRFLOAT(STR)
+INNERPRODUCT(VAR1,VAR2,IDIM)
+TRANSPOSE(VAR,DIM1,DIM2)
  
 Externally defined functions available to Ferret:
 AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
@@ -55075,11 +55771,20 @@ TAX_YEARFRAC(A,B)
 TCAT(A,B)
 TCAT_STR(A,B)
 TEST_OPENDAP(url)
+TRANSPOSE_EF(VAR)
+TRANSPOSE_TE(VAR)
+TRANSPOSE_TF(VAR)
+TRANSPOSE_XE(VAR)
+TRANSPOSE_XF(VAR)
 TRANSPOSE_XT(VAR)
 TRANSPOSE_XY(VAR)
 TRANSPOSE_XZ(VAR)
+TRANSPOSE_YE(VAR)
+TRANSPOSE_YF(VAR)
 TRANSPOSE_YT(VAR)
 TRANSPOSE_YZ(VAR)
+TRANSPOSE_ZE(VAR)
+TRANSPOSE_ZF(VAR)
 TRANSPOSE_ZT(VAR)
 TREVERSE(A)
 UNIQUE_STR2INT(A)
@@ -55123,6 +55828,15 @@ 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)
@@ -55153,8 +55867,10 @@ STUDENT_T_CUTOFF(P,nf)
 SUBTRACT(A,B)
  
  
-GO bn_reset
+GO bn_reset bn608_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn608_bug_fixes
 GO bn608_bug_fixes
 ! bn608_bug_fixes
 ! test various fixes that went into version 6.08
@@ -55163,6 +55879,7 @@ GO bn608_bug_fixes
 ! Fix for Bug 1539: SHOW VAR/XML
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err607_show_var_xml
 ! Bug 1539 SHOW VAR/XML didnt show all vars.
  
@@ -55201,6 +55918,9 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <xaxis>XAX1_15</xaxis>
@@ -55215,6 +55935,9 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <xaxis>XAX1_15</xaxis>
@@ -55229,6 +55952,9 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GSI1">
 <axes>
 <zaxis>TIME10</zaxis>
@@ -55240,6 +55966,7 @@ show var/xml
 ! err607_set_new_history_att
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err607_set_new_history_att
 ! err607_set_new_history_att.jnl
 ! Previously if we set a history attribute on a user-defined variable that
@@ -55256,8 +55983,8 @@ use a.nc
 show data
      currently SET data sets:
     1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- VAR      SST                              1:10      1:1       ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ VAR      SST                              1:10      1:1       ...       1:3
  
 show att/all var
      attributes for user-defined variables
@@ -55268,6 +55995,7 @@ show att/all var
 ! Symbols YAXIS_MIN, YAXIS_MAX were 0 when values small
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err607_axis_minmax_syms
 ! Bug 1542
 ! Symbols YAXIS_MIN, YAXIS_MAX were 0 when values small
@@ -55315,6 +56043,7 @@ YAXNAM = "YAX_LEV94"
 ! Error message for too many contour levels requested
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err607_lev_errmsg
 ! err607_lev_errmsg.F
 ! Make the error message more detailed, saying it is the choice of
@@ -55328,8 +56057,10 @@ SET MODE/LAST ignore
  
 ! ******** V6.1 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn_shade_trim
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_shade_trim
 GO bn_shade_trim
 ! bn_shade_trim.jnl
 ! Test new qualifier SHADE/TRIM which trims the region of
@@ -55365,8 +56096,10 @@ YAXIS_MIN = "30.5000000"
 YAXIS_MAX = "43.5000000"
  
  
-GO bn_reset
+GO bn_reset bn_mode_nlevels
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_mode_nlevels
 GO bn_mode_nlevels
 ! bn_mode_nlevels.jnl
 ! 3-mar-2008
@@ -55409,8 +56142,10 @@ LEV_DEL = "0.5"
 set mode nlevels 40
  
  
-GO bn_reset
+GO bn_reset bn61_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn61_bug_fixes
 GO bn61_bug_fixes
 ! bn608_bug_fixes
 ! test various fixes that went into version 6.1
@@ -55420,6 +56155,7 @@ GO bn61_bug_fixes
 ! Error processing parentheses on abstract axis names.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err608_bug1556
 ! err608_bug1556.jnl
 ! Error processing parentheses on abstract axis names.
@@ -55447,6 +56183,7 @@ SAVE/FILE=a.nc/CLOBBER sst[i=1:5:1,j=1:5:1,l=1:1:1]
 ! Precision of immediate-mode output of negative values
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err608_precision_neg_numbers
 ! err608_precision_neg_numbers.jnl
 ! ACM 1/2/2008
@@ -55468,8 +56205,10 @@ SAY `1.23456789e-15,prec=10`
  
  
 ! ******** V6.11 Additions below ***********
-GO bn_reset
+GO bn_reset bn_test_opendap
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_test_opendap
 GO bn_test_opendap
 ! Test the test_opendap function: returns 0 if successful, or error code if not.
 SET MODE IGNORE
@@ -55479,8 +56218,8 @@ SET MODE IGNORE
 !!list test_opendap ("http://iridl.ldeo.NOT.columbia.edu/SOURCES/.LEVITUS/.MONTHLY/.temp/dods")
  
 !! Change to another server, this one not working 8/2012
-list test_opendap ("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
-             VARIABLE : TEST_OPENDAP ("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
+list test_opendap ("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
+             VARIABLE : TEST_OPENDAP ("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
              X        : 1
           0.0000000
 list test_opendap ("http://ferret.pmel.NOT.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
@@ -55491,14 +56230,17 @@ list test_opendap ("http://ferret.pmel.NOT.noaa.gov/thredds/dodsC/data/PMEL/WOA0
  
 CANCEL MODE IGNORE
  
-GO bn_reset
+GO bn_reset bn611_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn611_bug_fixes
 GO bn611_bug_fixes
 ! bn611_bug_fixes.jnl
 ! Fixes that go into v6.11 release
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_write_bounds
 ! err61_write_bounds.jnl
 ! test fixes for bugzilla 1534: write correct bounds
@@ -55528,6 +56270,7 @@ sp ncdump a.nc >> all_ncdump.out
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_poly_shade_over_noaxes
 ! err61_poly_shade_over_noaxes.jnl
 ! See bug 1571
@@ -55578,6 +56321,7 @@ go polymark poly/lev=(-5,30,1)/fill/line=1/nolab/over v1 v2 v3 circle 2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_context_scalar_strings
 ! err61_context_scalar_strings.jnl
 ! Bug 1558, first present in Ferret v6.02
@@ -55594,6 +56338,7 @@ say `"a" EQ "a"`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_exit_script
 ! Bug 1566 Andrew Wittenberb
 !
@@ -55740,6 +56485,7 @@ exit/script
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_new_attr_on_axis
 ! err61_new_attr_on_axis.jnl
 ! For any var or axis, allow adding an attribute
@@ -55749,8 +56495,8 @@ use ocean_atlas_temp
 sh dat
      currently SET data sets:
     1> ./ocean_atlas_temp.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     Temperature                      1:360     1:180     1:1       1:2       ...       ...
+ name     title                             I         J         K         L
+ TEMP     Temperature                      1:360     1:180     1:1       1:2
  
 define att/output (`temp,return=xaxis`).long_name = "Here is a long name for the x axis of TEMP"
  !-> define att/output (XAX_LEV9421_380).long_name = "Here is a long name for the x axis of TEMP"
@@ -55772,6 +56518,7 @@ sp ncdump -h a.nc >> all_ncdump.out
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_varcontext_attributes
 ! Examples from bn_attributes, where instead of var.att[specifiers]
 ! we use var[specifiers].att  where appropriate.
@@ -55832,6 +56579,7 @@ list lnames
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
  
 !-----
@@ -55872,6 +56620,7 @@ say `($yaxnam)[d=1].nattrs`
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! more on access to attribute names and values as variables
@@ -55890,12 +56639,10 @@ list/d=3 a
 list temp[d=3].units
              VARIABLE : TEMP[D=ocean_atlas_temp].UNITS
              FILENAME : gt4d011.cdf
-             X        : 1
         "Deg C"
 list/d=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : ocean_atlas_temp.cdf
-             X        : 1
         "From ocean_atlas_monthly"
  
 can data/all
@@ -55915,6 +56662,7 @@ list a[i=2]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! When the variable context is given in an attribute
 ! spec, we want to ignore the information except for the
@@ -55926,7 +56674,6 @@ list ($ferret_plot_var).long_name
  !-> list sst[x=30:39,y=-90:90].long_name
              VARIABLE : SST[X=30:39,Y=-90:90].LONG_NAME
              FILENAME : coads_climatology.cdf
-             X        : 1
         "SEA SURFACE TEMPERATURE"
  
 use coads_climatology
@@ -55935,7 +56682,6 @@ list ($ferret_plot_var).units
  !-> list sst[d=1,x=30:35,y=-90:90].units
              VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].UNITS
              FILENAME : coads_climatology.cdf
-             X        : 1
         "Deg C"
  
 use coads_climatology
@@ -55945,11 +56691,11 @@ list ($ferret_plot_var).history
  !-> list sst[d=1,x=30:35,y=-90:90].history
              VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].HISTORY
              FILENAME : levitus_climatology.cdf
-             X        : 1
         "From coads_climatology"
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 use levitus_climatology
 use coads_climatology
@@ -55963,18 +56709,17 @@ list ($xaxnam)[d=1].modulo
  !-> list (XAXLEVITR1_160)[d=1].modulo
              VARIABLE : (XAXLEVITR1_160)[D=levitus_climatology].MODULO
              FILENAME : coads_climatology.cdf
-             X        : 1
         " "
 list ($yaxnam).point_spacing[d=1]
  !-> list (YAXLEVITR1_90).point_spacing[d=1]
              VARIABLE : (YAXLEVITR1_90).POINT_SPACING[D=levitus_climatology]
              FILENAME : levitus_climatology.cdf
-             X        : 1
         "even"
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_show_dat_var_xml
 ! err61_show_dat_var_xml.jnl
 ! See bug 1580. Intermediate variablels associated with a
@@ -56012,9 +56757,9 @@ LET/D=2 ddat_a = ZAXREPLACE(ddat_orig[d=1], cycle_orig[d=2], dummy)
 SHOW DATA 2
      currently SET data sets:
     2> ./z2.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  CYCLE_ORIG
-          CYCLE[GZ=ZAXIS_ORIG at ASN]         ...       ...       1:5       ...       ...       ...
+          CYCLE[GZ=ZAXIS_ORIG at ASN]         ...       ...       1:5       ...
  ------------------------------
  DDAT_A[D=z2] = ZAXREPLACE(DDAT_ORIG[D=1], CYCLE_ORIG[D=2], DUMMY)
  
@@ -56058,13 +56803,13 @@ SHOW DATA/VAR/XML 2
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
 <attribute name="long_name" type="char">
    <value><![CDATA[ZAXREPLACE(DDAT_ORIG[D=1], CYCLE_ORIG[D=2], DUMMY)]]></value>
 </attribute>
-<grid name="(G104)">
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<grid name="(G106)">
 <axes>
 <zaxis>ZAXIS_DES</zaxis>
 </axes>
@@ -56135,6 +56880,7 @@ SHOW DATA/VAR/XML 2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_360_calendar
 ! err61_360_calendar.jnl
 !
@@ -56160,6 +56906,7 @@ define axis/t=30-feb-1909:07-mar-1909:2/units=days/t0=1-jan-1909/calendar=d360 t
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_exit_if.jnl
 ! err611_exit_if.jnl
 !
@@ -56186,6 +56933,7 @@ exit/script
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_save_irreg.jnl
 ! err611_save_irreg.jnl
 !
@@ -56210,8 +56958,10 @@ save/clob/file=b.nc b
  
  
 ! ******** V6.13 Additions below ***********
-GO bn_reset
+GO bn_reset bn_no_valid_on_plot
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_no_valid_on_plot
 GO bn_no_valid_on_plot
 ! bn_no_valid_on_plot.jnl
 ! Bug 1038 points out that the No Valid Data label that is
@@ -56222,7 +56972,7 @@ GO bn_no_valid_on_plot
 use coads_climatology
 plot/x=56e:100e/y=40 sst[L=1]
 ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C) No Valid Data                               
+ @ACSEA SURFACE TEMPERATURE No Valid Data                                       
  @ASLONGITUDE                                                                   
  @ASDeg C                                                                       
 
@@ -56291,8 +57041,10 @@ VECTOR/Y=80:90 sst[L=1], sst[L=1]
  
 SET MODE/last nodata_lab
  
-GO bn_reset
+GO bn_reset bn_median
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_median
 GO bn_median
 ! Test median smoothing tranform
 ! Default length is 3
@@ -56399,14 +57151,17 @@ plot/trans var, var[z=@med:4]
 set mode/last ignore
  
  
-GO bn_reset
+GO bn_reset bn614_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn614_bug_fixes
 GO bn614_bug_fixes
 ! bn614_bug_fixes.jnl
 ! Fixes that go into v6.14 release
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_axislab
 ! err611_axislab.jnl
 ! Fix bug 1582: Horizontal axis label disappeared
@@ -56421,6 +57176,7 @@ ppl plot
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_360_calendar
 ! err61_360_calendar.jnl
 !
@@ -56446,6 +57202,7 @@ define axis/t=30-feb-1909:07-mar-1909:2/units=days/t0=1-jan-1909/calendar=d360 t
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_exit_if.jnl
 ! err611_exit_if.jnl
 !
@@ -56472,6 +57229,7 @@ exit/script
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_save_irreg.jnl
 ! err611_save_irreg.jnl
 !
@@ -56496,6 +57254,7 @@ save/clob/file=b.nc b
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_wrong_fineaxis_range
 ! err611_wrong_fineaxis_range.jnl
 ! Bug 1594
@@ -56517,8 +57276,6 @@ sh grid sst
  LAT1800_1800 LATITUDE          1 r   0.025S               0.025S              full
  ENS       Z (count)            1 r   1                    1                   full
  TIME11    TIME                 1 r   01-APR-2006 00:00    01-APR-2006 00:00   full
- normal    E
- normal    F
  
 ! This first was wrong, returned data at x=-180
 list/x=180 sst
@@ -56568,6 +57325,7 @@ say `the_plot_var,return=size`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_digit_filename
 ! err611_digit_filename.jnl
 ! Under linux, FILE command fails if filename
@@ -56582,7 +57340,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=1a.dat i
  !-> SET DATA/EZ/VAR="a1" 1a.dat
  !-> LIST a1
-             VARIABLE : A1
+             VARIABLE : a1
              FILENAME : 1a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000000
@@ -56592,7 +57350,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=3a.dat i
  !-> SET DATA/EZ/VAR="a3" 3a.dat
  !-> LIST a3
-             VARIABLE : A3
+             VARIABLE : a3
              FILENAME : 3a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000000
@@ -56602,7 +57360,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=5a.dat i
  !-> SET DATA/EZ/VAR="a5" 5a.dat
  !-> LIST a5
-             VARIABLE : A5
+             VARIABLE : a5
              FILENAME : 5a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000000
@@ -56612,7 +57370,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=7a.dat i
  !-> SET DATA/EZ/VAR="a7" 7a.dat
  !-> LIST a7
-             VARIABLE : A7
+             VARIABLE : a7
              FILENAME : 7a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000000
@@ -56622,7 +57380,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=9a.dat i
  !-> SET DATA/EZ/VAR="a9" 9a.dat
  !-> LIST a9
-             VARIABLE : A9
+             VARIABLE : a9
              FILENAME : 9a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000000
@@ -56632,7 +57390,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=11a.dat i
  !-> SET DATA/EZ/VAR="a11" 11a.dat
  !-> LIST a11
-             VARIABLE : A11
+             VARIABLE : a11
              FILENAME : 11a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000000
@@ -56641,32 +57399,33 @@ REPEAT/RANGE=1:12:2/name=m \
 SHOW DATA
      currently SET data sets:
     1> ./1a.dat
- name     title                             I         J         K         L         M         N
- A1       A1                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A1       a1                               1:3       ...       ...       ...
  
     2> ./3a.dat
- name     title                             I         J         K         L         M         N
- A3       A3                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A3       a3                               1:3       ...       ...       ...
  
     3> ./5a.dat
- name     title                             I         J         K         L         M         N
- A5       A5                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A5       a5                               1:3       ...       ...       ...
  
     4> ./7a.dat
- name     title                             I         J         K         L         M         N
- A7       A7                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A7       a7                               1:3       ...       ...       ...
  
     5> ./9a.dat
- name     title                             I         J         K         L         M         N
- A9       A9                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A9       a9                               1:3       ...       ...       ...
  
     6> ./11a.dat  (default)
- name     title                             I         J         K         L         M         N
- A11      A11                              1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A11      a11                              1:3       ...       ...       ...
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_parse_semicolon
 ! err611_parse_semicolon.jnl
 ! Bug 1608. The first time it was issued, the first command
@@ -56687,6 +57446,7 @@ c (d; say a ; b
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_ov_ax
 ! err611_ov_ax.jnl
 !
@@ -56707,6 +57467,7 @@ set v lr; ppl axlabp 0 0; plot/nolab {-1,1,6}
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_context_after_error
 ! err611_context_after_error.jnl
 ! ACM 11/12/08
@@ -56728,12 +57489,12 @@ USE bug1421_b
 SHOW DATA
      currently SET data sets:
     1> ./bug1421_a.nc
- name     title                             I         J         K         L         M         N
- A        zonal wind stress                1:1       1:1       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ A        zonal wind stress                1:1       1:1       ...       1:20
  
     2> ./bug1421_b.nc  (default)
- name     title                             I         J         K         L         M         N
- B        T[GT=MON_IRREG_NLP]              ...       ...       ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ B        T[GT=MON_IRREG_NLP]              ...       ...       ...       1:12
  
 SHOW AXIS LON88_88
  name       axis              # pts   start                end
@@ -56791,6 +57552,7 @@ SET MODE/LAST ignore_error
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_isize_gc_fcns
 ! err611_isize_gc_fcns.jnl
 ! ACM 11/13/2008
@@ -56834,6 +57596,7 @@ SAY `XSEQUENCE(a),RETURN=size`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_return_precision
 ! err611_return_precision.jnl
 ! 17-Nov-08 ACM
@@ -56984,6 +57747,7 @@ a-950
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_set_var_ez
 ! err611_set_var_ez.jnl
 ! 6-Jan-2009
@@ -57011,7 +57775,7 @@ SHOW DAT/ATT
   
  .                               history         CHAR        7    F       dat.dat
   
- MY_ASC                FLOAT     long_name       CHAR        11   T       chlorophyll
+ my_asc                FLOAT     long_name       CHAR        11   T       chlorophyll
                                  missing_value   FLOAT       1    T       3
                                  units           CHAR        12   T       micrograms/L
   
@@ -57030,6 +57794,7 @@ SP ncdump -h a.nc >> all_ncdump.out
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_convert_missing_type
 ! err611_convert_missing_type.jnl
 ! Fix for bug 1620 message about converting data type of
@@ -57052,6 +57817,7 @@ SAVE/CLOBBER/FILE=lonlat.nc lat, lon
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_shade_fill_levs
 ! err611_shade_fill_levs.jnl
 ! 2/27/2009
@@ -57075,6 +57841,7 @@ LEV_DEL = "0.02"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_set_uvar_outtyp
 ! err611_set_uvar_outtyp.jnl
 ! fix for bug 1646: set outtype for user variables.
@@ -57097,6 +57864,7 @@ SP ncdump a.nc >> all_ncdump.out
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_save_from_desc
 ! err611_save_from_desc.jnl
 !
@@ -57108,6 +57876,7 @@ save/clobber/file=a.nc/i=100 sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_irregular_axis
  ! err611_irregular_axis.jnl
  
@@ -57134,12 +57903,11 @@ sh grid cc
  normal    Y
  normal    Z
  TAX3      TIME               142 i   30-DEC-2007 00:00    30-DEC-2007 00:02   full
- normal    E
- normal    F
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_ef_string_result
 ! err611_ef_string_result.jnl
 ! testing the fix for bug 1621
@@ -57225,6 +57993,7 @@ list xt
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_contour_subspan_reps
 ! err61_contour_subspan_reps.jnl
 ! Bug 1659.
@@ -57262,8 +58031,10 @@ cont/ov/x=-360:360 b
  
  
 ! ******** V6.14 Additions below ***********
-GO bn_reset
+GO bn_reset bn_mode_nodata_lab
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_mode_nodata_lab
 GO bn_mode_nodata_lab
 ! bn_mode_nodata_lab
 ! turns off the No Valid Data label on plots
@@ -57294,8 +58065,10 @@ contour/fill/y=40:50/x=70e:110e/L=1 vwnd
 set mode/last nodata_lab
  
  
-GO bn_reset
+GO bn_reset bn_proleptic_gregorian_calendar
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_proleptic_gregorian_calendar
 GO bn_proleptic_gregorian_calendar
 ! proleptic_gregorian_calendar.jnl
 ! Allow PROLEPTIC_GREGORIAN as a calendar attribute
@@ -57305,8 +58078,8 @@ set data proleptic_gregorian.nc
 show data
      currently SET data sets:
     1> ./proleptic_gregorian.nc  (default)
- name     title                             I         J         K         L         M         N
- MY_DATA  SIN(L[GT=TDAYS])                 ...       ...       ...       1:32      ...       ...
+ name     title                             I         J         K         L
+ MY_DATA  SIN(L[GT=TDAYS])                 ...       ...       ...       1:32
  
 show axis tdays
  name       axis              # pts   start                end
@@ -57315,8 +58088,10 @@ T0 = 15-JAN-1901
 CALENDAR = ALL_LEAP
    Axis span (to cell edges) = 733
  
-GO bn_reset
+GO bn_reset bn_string_ngd_nbd
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_string_ngd_nbd
 GO bn_string_ngd_nbd
 ! @NGD and @NBD for strings
 ! Bad data is taken to be the null string
@@ -57634,8 +58409,10 @@ list av[i=@ngd,j=@ngd,k=@ngd,L=@ngd]
              T        : 0.5 to 2.5 (XYZT # valid)
           16.00000
  
-GO bn_reset
+GO bn_reset bn_cat_string
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cat_string
 GO bn_cat_string
 ! bn_cat_string.jnl
 ! Test concatenation functions for string variables
@@ -57703,8 +58480,10 @@ list tcat(a,b)
  5   / 5:"V"
  6   / 6:"W"
  
-GO bn_reset
+GO bn_reset bn_sort_strings
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_sort_strings
 GO bn_sort_strings
 ! bn_sort_strings.jnl
 ! 11/08 acm
@@ -57882,8 +58661,10 @@ list indx_bl, samplel(bl,indx_bl)
 7   / 7:      .... ""   
  
  
-GO bn_reset
+GO bn_reset bn_samplexyt
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_samplexyt
 GO bn_samplexyt
 ! bn_samplexyt.jnl
 ! 1/2009
@@ -57955,8 +58736,10 @@ plot/vs/color=red/over tpts, sampl_pts
  
 set mode calendar
  
-GO bn_reset
+GO bn_reset bn_last_go_file.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_last_go_file.jnl
 GO bn_last_go_file.jnl
 ! bn_last_go_file.jnl
 ! test the automatically-defined symbol LAST_GO_FILE
@@ -57965,8 +58748,10 @@ show sym last_go_file
 LAST_GO_FILE = "./bn_last_go_file.jnl"
  
  
-GO bn_reset
+GO bn_reset bn_cancel_upcase_uservar.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cancel_upcase_uservar.jnl
 GO bn_cancel_upcase_uservar.jnl
 ! bn_cancel_upcase_uservar.jnl
 !
@@ -58000,8 +58785,10 @@ SP ncdump -h a.nc >> all_ncdump.out
  
 SET MODE/LAST upcase_output
  
-GO bn_reset
+GO bn_reset bn_cdf_keepax.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_cdf_keepax.jnl
 GO bn_cdf_keepax.jnl
 ! bn320_cdf
 ! benchmark to test netCDF input and output
@@ -58046,8 +58833,8 @@ set data/format=cdf test0a, test0b, test0c, test0d, test0e, test0f, test0g, test
 show data 1
      currently SET data sets:
     1> ./test0a.cdf
- name     title                             I         J         K         L         M         N
- L_       L                                ...       ...       ...       1:500     ...       ...
+ name     title                             I         J         K         L
+ L_       L                                ...       ...       ...       1:500
        (axis ABSTRACT)
  
 show data/br
@@ -58202,78 +58989,78 @@ show data/full
      currently SET data sets:
     1> ./test_abs.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       I                                1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       I                                1:10      ...       ...       ...
                on grid GEU1 with -1.E+34 for missing data
              X=0.5:10.5  
- J1       J                                ...       1:20      ...       ...       ...       ...
+ J1       J                                ...       1:20      ...       ...
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- K1       K                                ...       ...       1:100     ...       ...       ...
+ K1       K                                ...       ...       1:100     ...
                on grid GEU3 with -1.E+34 for missing data
              Z=0.5:100.5  
- L1       L[G=GCENTURY]                    ...       ...       ...       1:12      ...       ...
+ L1       L[G=GCENTURY]                    ...       ...       ...       1:12
                on grid GEU4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:10      ...       ...
+ L2       L                                ...       ...       ...       1:10
                on grid GEU5 with -1.E+34 for missing data
              
- IJ       I+J                              1:10      1:20      ...       ...       ...       ...
+ IJ       I+J                              1:10      1:20      ...       ...
                on grid GEU6 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IK       I+K                              1:10      ...       1:100     ...       ...       ...
+ IK       I+K                              1:10      ...       1:100     ...
                on grid GEU7 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IL       I+L1                             1:10      ...       ...       1:12      ...       ...
+ IL       I+L1                             1:10      ...       ...       1:12
                on grid GEU8 with -1.E+34 for missing data
              X=0.5:10.5  
- JK       J+K                              ...       1:20      1:100     ...       ...       ...
+ JK       J+K                              ...       1:20      1:100     ...
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJK      I+J+K                            1:10      1:20      1:100     ...       ...       ...
+ IJK      I+J+K                            1:10      1:20      1:100     ...
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IKL      I+K+L1                           1:10      ...       1:100     1:12      ...       ...
+ IKL      I+K+L1                           1:10      ...       1:100     1:12
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJL      I+J+L1                           1:10      1:20      ...       1:12      ...       ...
+ IJL      I+J+L1                           1:10      1:20      ...       1:12
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- JKL      J+K+L1                           ...       1:20      1:100     1:12      ...       ...
+ JKL      J+K+L1                           ...       1:20      1:100     1:12
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJKL     I+J+K+L1                         1:10      1:20      1:100     1:12      ...       ...
+ IJKL     I+J+K+L1                         1:10      1:20      1:100     1:12
                on grid GEU14 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IJK2     I+J+K                            ...       1:20      1:100     ...       ...       ...
+ IJK2     I+J+K                            ...       1:20      1:100     ...
        (X=0.5:10.5 at AVE)
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IKL2     I+K+L1                           ...       ...       1:100     1:12      ...       ...
+ IKL2     I+K+L1                           ...       ...       1:100     1:12
        (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
                on grid GEU15 with -1.E+34 for missing data
              Z=0.5:100.5  
- IJL2     I+J+L1                           ...       ...       ...       1:12      ...       ...
+ IJL2     I+J+L1                           ...       ...       ...       1:12
        (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
                on grid GEU4 with -1.E+34 for missing data
              
- JKL2     J+K+L1                           ...       1:20      ...       ...       ...       ...
+ JKL2     J+K+L1                           ...       1:20      ...       ...
        (Z=0.5:100.5 at AV4, T=JAN-1902:JAN-1902 at AV4)
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:12      ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:12
        (X=0.5:10.5)
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:12      ...       ...
+ IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:12
        (Y=0.5:20.5)
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:12      ...       ...
+ IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:12
        (Z=0.5:100.5)
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...
        (T=JAN-1902:JAN-1902)
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
@@ -58288,8 +59075,6 @@ show grid ijkl
  YAX1      Y                   20 r   1                    20                  full
  ZAX1      Z                  100 r   1                    100                 full
  TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00   full
- normal    E
- normal    F
 cancel data test_abs
  
 ! make the time axis irregular by leaving out l=13
@@ -58299,78 +59084,78 @@ show data/full
      currently SET data sets:
     1> ./test_abs.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       I                                1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       I                                1:10      ...       ...       ...
                on grid GEU1 with -1.E+34 for missing data
              X=0.5:10.5  
- J1       J                                ...       1:20      ...       ...       ...       ...
+ J1       J                                ...       1:20      ...       ...
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- K1       K                                ...       ...       1:100     ...       ...       ...
+ K1       K                                ...       ...       1:100     ...
                on grid GEU3 with -1.E+34 for missing data
              Z=0.5:100.5  
- L1       L[G=GCENTURY]                    ...       ...       ...       1:15      ...       ...
+ L1       L[G=GCENTURY]                    ...       ...       ...       1:15
                on grid GEU4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:10      ...       ...
+ L2       L                                ...       ...       ...       1:10
                on grid GEU5 with -1.E+34 for missing data
              
- IJ       I+J                              1:10      1:20      ...       ...       ...       ...
+ IJ       I+J                              1:10      1:20      ...       ...
                on grid GEU6 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IK       I+K                              1:10      ...       1:100     ...       ...       ...
+ IK       I+K                              1:10      ...       1:100     ...
                on grid GEU7 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IL       I+L1                             1:10      ...       ...       1:15      ...       ...
+ IL       I+L1                             1:10      ...       ...       1:15
                on grid GEU8 with -1.E+34 for missing data
              X=0.5:10.5  
- JK       J+K                              ...       1:20      1:100     ...       ...       ...
+ JK       J+K                              ...       1:20      1:100     ...
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJK      I+J+K                            1:10      1:20      1:100     ...       ...       ...
+ IJK      I+J+K                            1:10      1:20      1:100     ...
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IKL      I+K+L1                           1:10      ...       1:100     1:15      ...       ...
+ IKL      I+K+L1                           1:10      ...       1:100     1:15
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJL      I+J+L1                           1:10      1:20      ...       1:15      ...       ...
+ IJL      I+J+L1                           1:10      1:20      ...       1:15
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- JKL      J+K+L1                           ...       1:20      1:100     1:15      ...       ...
+ JKL      J+K+L1                           ...       1:20      1:100     1:15
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJKL     I+J+K+L1                         1:10      1:20      1:100     1:15      ...       ...
+ IJKL     I+J+K+L1                         1:10      1:20      1:100     1:15
                on grid GEU14 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IJK2     I+J+K                            ...       1:20      1:100     ...       ...       ...
+ IJK2     I+J+K                            ...       1:20      1:100     ...
        (X=0.5:10.5 at AVE)
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IKL2     I+K+L1                           ...       ...       1:100     1:15      ...       ...
+ IKL2     I+K+L1                           ...       ...       1:100     1:15
        (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
                on grid GEU15 with -1.E+34 for missing data
              Z=0.5:100.5  
- IJL2     I+J+L1                           ...       ...       ...       1:15      ...       ...
+ IJL2     I+J+L1                           ...       ...       ...       1:15
        (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
                on grid GEU4 with -1.E+34 for missing data
              
- JKL2     J+K+L1                           ...       1:20      ...       ...       ...       ...
+ JKL2     J+K+L1                           ...       1:20      ...       ...
        (Z=0.5:100.5 at AV4, T=JAN-1902:JAN-1902 at AV4)
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:15      ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:15
        (X=0.5:10.5)
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:15      ...       ...
+ IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:15
        (Y=0.5:20.5)
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:15      ...       ...
+ IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:15
        (Z=0.5:100.5)
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...
        (T=JAN-1902:JAN-1902)
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
@@ -58384,8 +59169,6 @@ show grid ijkl
  YAX1      Y                   20 r   1                    20                  full
  ZAX1      Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
  
  
 ! list long time series using a rigid (non-record axis) time axis --> FAST
@@ -58418,40 +59201,30 @@ show grid j1 jkl jkl2 iavejkl ijkl
  YAX1      Y                   20 r   1                    20                  full
  normal    Z
  normal    T
- normal    E
- normal    F
     GRID GEU13
  name       axis              # pts   start                end                 subset
  normal    X
  YAX1      Y                   20 r   1                    20                  full
  ZAX1      Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
     GRID GEU2
  name       axis              # pts   start                end                 subset
  normal    X
  YAX1      Y                   20 r   1                    20                  full
  normal    Z
  normal    T
- normal    E
- normal    F
     GRID GEU13
  name       axis              # pts   start                end                 subset
  normal    X
  YAX1      Y                   20 r   1                    20                  full
  ZAX1      Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
     GRID GEU14
  name       axis              # pts   start                end                 subset
  XAX1      X                   10 r   1                    10                  full
  YAX1      Y                   20 r   1                    20                  full
  ZAX1      Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
 cancel data test_abs
  
 ! test TMAP data io
@@ -58535,29 +59308,29 @@ show data/full
      currently SET data sets:
     1> ./gtbc011.cdf
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.84S:51.43N  
  
@@ -58565,67 +59338,67 @@ show data/full
  
     2> ./test_fil0.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...
                on grid PS3DT1_NYZT with -1.E+34 for missing data
              X=130E:140E  
- J1       Y[G=TEMP,J=5:10]                 ...       5:10      ...       ...       ...       ...
+ J1       Y[G=TEMP,J=5:10]                 ...       5:10      ...       ...
                on grid PS3DT1_NXZT with -1.E+34 for missing data
              Y=21.11S:12.52S  
- K1       Z[G=U,K=5:15]                    ...       ...       5:15      ...       ...       ...
+ K1       Z[G=U,K=5:15]                    ...       ...       5:15      ...
                on grid PS3DU1_NXYT with -1.E+34 for missing data
              Z=40:190  
- L1       L[G=U,L=1:3]                     ...       ...       ...       1:3       ...       ...
+ L1       L[G=U,L=1:3]                     ...       ...       ...       1:3
                on grid GRH1 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:2       ...       ...
+ L2       L                                ...       ...       ...       1:2
                on grid GRH2 with -1.E+34 for missing data
              
- IJ       TAUX[L=@AVE]                    69:71      1:100     ...       ...       ...       ...
+ IJ       TAUX[L=@AVE]                    69:71      1:100     ...       ...
        (T=MAR-1983:MAR-1983)
                on grid PS2DU1_NT with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- IK       I1+K1                            1:10      ...       5:15      ...       ...       ...
-               on grid G093_NYT with -1.E+34 for missing data
+ IK       I1+K1                            1:10      ...       5:15      ...
+               on grid G095_NYT with -1.E+34 for missing data
              X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
-               on grid G093_NYZ with -1.E+34 for missing data
+ IL       I1+L1                            1:10      ...       ...       1:3
+               on grid G095_NYZ with -1.E+34 for missing data
              X=130E:140E  
- JK       J1+K1                            ...       5:10      5:15      ...       ...       ...
-               on grid G104_NXT with -1.E+34 for missing data
+ JK       J1+K1                            ...       5:10      5:15      ...
+               on grid G106_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      ...       ...       ...
+ IJK      TEMP[L=@AVE]                    70:72      1:100     1:27      ...
        (T=MAR-1983:MAR-1983)
                on grid PS3DT1_NT with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- IKL      TEMP[J=@AVE]                    70:72      ...       1:27      1:3       ...       ...
+ IKL      TEMP[J=@AVE]                    70:72      ...       1:27      1:3
        (Y=30S:50N)
                on grid PS3DT1_NY with -1.E+34 for missing data
              X=161W:158W  Z=0:4149  
- IJL      TEMP[K=@AVE]                    70:72      1:100     ...       1:3       ...       ...
+ IJL      TEMP[K=@AVE]                    70:72      1:100     ...       1:3
        (Z=0:4149)
                on grid PS3DT1_NZ with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  
- JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130E:70W)
                on grid GRH3 with -1.E+34 for missing data
              Y=30S:50N  Z=0:4149  
- IJKL     U                               69:72      1:100     1:27      1:3       ...       ...
+ IJKL     U                               69:72      1:100     1:27      1:3
                on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130.5E:69.5W)
                on grid GRH4 with -1.E+34 for missing data
              Y=28.84S:51.43N  Z=0:4149  
- IJAVEKL  IJKL[J=@AVE]                    69:72      ...       1:27      1:3       ...       ...
+ IJAVEKL  IJKL[J=@AVE]                    69:72      ...       1:27      1:3
        (Y=28.84S:51.43N)
                on grid PS3DU1_NY with -1.E+34 for missing data
              X=161.5W:157.5W  Z=0:4149  
- IJKAVEL  IJKL[K=@AVE]                    69:72      1:100     ...       1:3       ...       ...
+ IJKAVEL  IJKL[K=@AVE]                    69:72      1:100     ...       1:3
        (Z=0:4149)
                on grid PS3DU1_NZ with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  
- IJKLAVE  IJKL[L=@AVE]                    69:72      1:100     1:27      ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                    69:72      1:100     1:27      ...
        (T=MAR-1983:MAR-1983)
                on grid PS3DU1_NT with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
@@ -58640,8 +59413,6 @@ show grid ijkl
  PSYU      LATITUDE           100 i   27.672S              50N                 full
  PSZT1     DEPTH (m)           27 i-  5                    3824                full
  TIME12    TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
- normal    E
- normal    F
 cancel data test_fil0
 ! 5/99 moved old bn230_cdf.sub3 to bn_cdf_keepax.sub4 to stay inline w/ old benchmarks *kob*
 GO bn_cdf_keepax.sub4
@@ -58729,29 +59500,29 @@ show data/full
      currently SET data sets:
     1> ./gtbc011.cdf
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.84S:51.43N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.84S:51.43N  
  
@@ -58759,33 +59530,33 @@ show data/full
  
     2> ./test_fil.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...
                on grid GLZ1 with -1.E+34 for missing data
              X=130E:140E  
- J1       Y[G=TEMP,J=5:10]                 ...       1:6       ...       ...       ...       ...
+ J1       Y[G=TEMP,J=5:10]                 ...       1:6       ...       ...
                on grid GLZ2 with -1.E+34 for missing data
              Y=21.11S:12.52S  
- K1       Z[G=U,K=5:15]                    ...       ...       1:11      ...       ...       ...
+ K1       Z[G=U,K=5:15]                    ...       ...       1:11      ...
                on grid GLZ3 with -1.E+34 for missing data
              Z=40:190  
- L1       L[G=U,L=1:3]                     ...       ...       ...       1:3       ...       ...
+ L1       L[G=U,L=1:3]                     ...       ...       ...       1:3
                on grid GLZ4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:2       ...       ...
+ L2       L                                ...       ...       ...       1:2
                on grid GLZ5 with -1.E+34 for missing data
              
- IJ       TAUX[L=@AVE]                     1:3       1:100     ...       ...       ...       ...
+ IJ       TAUX[L=@AVE]                     1:3       1:100     ...       ...
        (T=MAR-1983:MAR-1983)
                on grid GLZ6 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- IK       I1+K1                            1:10      ...       1:11      ...       ...       ...
+ IK       I1+K1                            1:10      ...       1:11      ...
                on grid GLZ7 with -1.E+34 for missing data
              X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
+ IL       I1+L1                            1:10      ...       ...       1:3
                on grid GLZ8 with -1.E+34 for missing data
              X=130E:140E  
- JK       J1+K1                            ...       1:6       1:11      ...       ...       ...
+ JK       J1+K1                            ...       1:6       1:11      ...
                on grid GLZ9 with -1.E+34 for missing data
              Y=21.11S:12.52S  Z=40:190  
  
@@ -58812,15 +59583,15 @@ show data/var
      currently SET data sets:
     1> ./reverse_axes.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...
                on grid GAF1 with -1.E+34 for missing data
              X=129.5E:179.5W  Y=10.5S:10.5N  
- FCN_REV  COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...       ...       ...
+ FCN_REV  COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...
                on grid GAF2 with -1.E+34 for missing data
              X=129.5E:179.5W  Y=10.5S:10.5N  
  FCN_REV_SUB
-          COS(X/10)*SIN(Y/2)               1:51     10:19      ...       ...       ...       ...
+          COS(X/10)*SIN(Y/2)               1:51     10:19      ...       ...
                on grid GREV with -1.E+34 for missing data
              X=129.5E:179.5W  Y=1.5S:8.5N  
  
@@ -58871,8 +59642,10 @@ list/x=180 fcn_rev_sub
  0    / 11:  0.0000000
  1S   / 10:  0.3165727
  
-GO bn_reset
+GO bn_reset bn_keep_axisnames.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_keep_axisnames.jnl
 GO bn_keep_axisnames.jnl
 ! bn_keep_axisnames.jnl
 ! 2/2009 ACM
@@ -58901,8 +59674,10 @@ sp echo "bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES" >> all_ncdump.out
 sp ncdump -h a.nc >> all_ncdump.out
  
  
-GO bn_reset
+GO bn_reset bn_key_label_minmax.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_key_label_minmax.jnl
 GO bn_key_label_minmax.jnl
 ! bn_key_label_minmax.jnl
  
@@ -58985,14 +59760,17 @@ shade/lev=35 sst[L=1]
  
  
 ! ******** V6.2 Additions below ***********
-GO bn_reset
+GO bn_reset bn62_bug_fixes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn62_bug_fixes.jnl
 GO bn62_bug_fixes.jnl
 ! bn62_bug_fixes.jnl
 ! Fixes that go into v6.2 release
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err618_julday.jnl
 ! err618_julday.jnl
 ! Bug 1639
@@ -59042,6 +59820,7 @@ list/t=27-feb-1999:02-mar-1999 rjulianday
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_polygons.jnl
 ! err611_polygons.jnl
 ! bug 1661
@@ -59059,8 +59838,10 @@ plot/title="vertical profile" yp4
 GO error_bars polygon/color=red/thickness=2/title="variability" yp4 errors
  
  
-GO bn_reset
+GO bn_reset bn_convolve.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_convolve.jnl
 GO bn_convolve.jnl
 ! bn_convolve.jnl
 ! test convolutions, including with missing-data.
@@ -59190,8 +59971,10 @@ list a, a[i=@spz], convolvei(a,{.25,.5,.25})
  
  
  
-GO bn_reset
+GO bn_reset bn_tax_tstep.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_tax_tstep.jnl
 GO bn_tax_tstep.jnl
 ! bn_tax_tstep.jnl
 !
@@ -59305,8 +60088,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn_grads_z.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_grads_z.jnl
 GO bn_grads_z.jnl
 ! bn_grads_z.jnl
 ! acm 3/31/09
@@ -59328,13 +60113,13 @@ USE grads_bug_file.nc
 SHOW DATA
      currently SET data sets:
     1> ./grads_bug_file.nc  (default)
- name     title                             I         J         K         L         M         N
- AM       Z[GZ=CAXIS] + Y[GY=BAXIS] + X[G  1:10      1:5       1:5       ...       ...       ...
- AR       Z[GZ=DAXIS]+ Y[GY=BAXIS] + X[GX  1:10      1:5       1:6       ...       ...       ...
- A1                                        ...       ...       1:5       ...       ...       ...
- A2                                        ...       ...       1:5       ...       ...       ...
- A3                                        ...       ...       1:5       ...       ...       ...
- A4                                        ...       ...       1:5       ...       ...       ...
+ name     title                             I         J         K         L
+ AM       Z[GZ=CAXIS] + Y[GY=BAXIS] + X[G  1:10      1:5       1:5       ...
+ AR       Z[GZ=DAXIS]+ Y[GY=BAXIS] + X[GX  1:10      1:5       1:6       ...
+ A1                                        ...       ...       1:5       ...
+ A2                                        ...       ...       1:5       ...
+ A3                                        ...       ...       1:5       ...
+ A4                                        ...       ...       1:5       ...
  
  
 ! The z axis of AM has no useful clues about its direction.
@@ -59346,8 +60131,6 @@ SH GRID am
  BAXIS     Y (METERS)           5 r   1                    9                   full
  CAXIS     Z (METERS)           5 r   2                    10                  full
  normal    T
- normal    E
- normal    F
  
 ! This axis has long_name = "depth" so it is (now) reversed.
 ! Previously it was not.
@@ -59358,8 +60141,6 @@ SH GRID ar
  BAXIS     Y (METERS)           5 r   1                    9                   full
  DAXIS     DEPTH (m)            6 i-  0                    8                   full
  normal    T
- normal    E
- normal    F
  
 ! Can redefine the axis for variable AM to make it a z depth axis
  
@@ -59374,15 +60155,17 @@ SH GRID am
  BAXIS     Y (METERS)           5 r   1                    9                   full
  CAXIS     DEPTH (m)            5 r-  2                    10                  full
  normal    T
- normal    E
- normal    F
  
+GO bn_reset bn_clock_syms
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_clock_syms
 GO bn_clock_syms
 SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "34.0038"
-CLOCK_SECS = "66.314"
-CURRENT_DATE = "15-Jun-16"
-CURRENT_TIME = "12:06:42"
+DELTA_CPU = "47.0518"
+CLOCK_SECS = "76.913"
+CURRENT_DATE = "17-Apr-17"
+CURRENT_TIME = "16:47:14"
 ! test special symbols DELTA_CPU, CLOCK_SECS
 !
 ! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -59391,8 +60174,8 @@ CURRENT_TIME = "12:06:42"
 use gt4d011
 shade/k=1 temp[L=@ave]
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.041994"
-CLOCK_SECS = "66.467"
+DELTA_CPU = "0.040994"
+CLOCK_SECS = "77.068"
  
 repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=1
@@ -59406,60 +60189,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.245962
+ !-> DEFINE VARIABLE ten_plots = 0.266959
 sh sym DELTA_CPU, CLOCK_SECS
 DELTA_CPU = "0"
-CLOCK_SECS = "67.697"
+CLOCK_SECS = "78.427"
  
 let  sumclock = 0
 let  sumcpu = 0
 sh sym CLOCK_SECS
-CLOCK_SECS = "67.698"
+CLOCK_SECS = "78.428"
 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.025996
- !-> DEFINE VARIABLE sumcpu =0.025996
+ !-> DEFINE VARIABLE dt = 0.033994
+ !-> DEFINE VARIABLE sumcpu =0.033994
 !-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.032995
- !-> DEFINE VARIABLE sumcpu =0.058991
+ !-> DEFINE VARIABLE dt = 0.028996
+ !-> DEFINE VARIABLE sumcpu =0.06299
 !-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.025997
- !-> DEFINE VARIABLE sumcpu =0.084988
+ !-> DEFINE VARIABLE dt = 0.031995
+ !-> DEFINE VARIABLE sumcpu =0.094985
 !-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.029995
- !-> DEFINE VARIABLE sumcpu =0.114983
+ !-> DEFINE VARIABLE dt = 0.032995
+ !-> DEFINE VARIABLE sumcpu =0.12798
 !-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.031995
- !-> DEFINE VARIABLE sumcpu =0.146978
+ !-> DEFINE VARIABLE dt = 0.030995
+ !-> DEFINE VARIABLE sumcpu =0.158975
 !-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.029995
- !-> DEFINE VARIABLE sumcpu =0.176973
+ !-> DEFINE VARIABLE dt = 0.033995
+ !-> DEFINE VARIABLE sumcpu =0.19297
 !-> REPEAT: K=7
  !-> DEFINE VARIABLE dt = 0.028996
- !-> DEFINE VARIABLE sumcpu =0.205969
+ !-> DEFINE VARIABLE sumcpu =0.221966
 !-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.030995
- !-> DEFINE VARIABLE sumcpu =0.236964
+ !-> DEFINE VARIABLE dt = 0.029996
+ !-> DEFINE VARIABLE sumcpu =0.251962
 !-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.026996
- !-> DEFINE VARIABLE sumcpu =0.26396
+ !-> DEFINE VARIABLE dt = 0.035994
+ !-> DEFINE VARIABLE sumcpu =0.287956
 !-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.027996
- !-> DEFINE VARIABLE sumcpu =0.291956
+ !-> DEFINE VARIABLE dt = 0.032995
+ !-> DEFINE VARIABLE sumcpu =0.320951
  
 say `sumcpu`
- !-> MESSAGE/CONTINUE 0.291956
-0.291956
+ !-> MESSAGE/CONTINUE 0.320951
+0.320951
 sh sym CLOCK_SECS
-CLOCK_SECS = "69.893"
+CLOCK_SECS = "80.781"
  
 SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "15-Jun-16"
-SESSION_TIME = "12:05"
-CURRENT_DATE = "15-Jun-16"
-CURRENT_TIME = "12:06:45"
+SESSION_DATE = "17-Apr-17"
+SESSION_TIME = "16:45"
+CURRENT_DATE = "17-Apr-17"
+CURRENT_TIME = "16:47:18"
  
  
 ! ******** V6.3 Additions below ***********
@@ -59467,14 +60250,17 @@ CURRENT_TIME = "12:06:45"
 ! window, not only in window 1, is implemented in v6.3. Not
 ! tested in the benchmarks.
  
-GO bn_reset
+GO bn_reset bn63_bug_fixes.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn63_bug_fixes.jnl
 GO bn63_bug_fixes.jnl
 ! bn63_bug_fixes.jnl
 ! Fixes that go into v6.3 release
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_string_write_nc
 ! err62_string_write_nc.jnl
 ! Bug 1664: string variable written as a float.
@@ -59553,6 +60339,7 @@ list cruise_id_xz
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_levset
 ! err62_levset.jnl
 ! fix for bug 1672, top color level chopped off in some circumstances
@@ -59564,6 +60351,7 @@ shade/x=350:390/y=1:10/lev=(376.6,379.0,0.8)(379.0,385.4,0.2) var
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_thick_tic_time_axis
 ! err62_thick_tic_time_axis.jnl
 ! Fixing bug 1668
@@ -59617,6 +60405,7 @@ set win/new
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_reset_after_inf
 ! err62_reset_after_inf.jnl
 ! Bug 1292
@@ -59636,6 +60425,7 @@ cancel mode meta
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_reversed_up
 ! err62_reversed_up.jnl
 !
@@ -59682,6 +60472,7 @@ list z[gz=temp], zboxlo[gz=temp], zboxhi[gz=temp]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_samplexy
 ! err62_samplexy
 ! bug 1677
@@ -59716,6 +60507,7 @@ list sr
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_one_point_bounds
 ! err62_one_point_bounds.jnl
 ! Bug 1680
@@ -59748,6 +60540,7 @@ I / *:     5.000000  4.890000  5.110000
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_cos_lat_uncentered
 !err62_cos_lat_uncentered.jnl
 ! See this thread, here is the esample, with his test.nc renamed to uncentered.nc
@@ -59896,6 +60689,7 @@ list cell18[x=@din,y=@din]/total_area
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_if_inside_repeat
 ! err62_if_inside_repeat.jnl
 ! Bug 1681. Parsing error when, inside the REPEAT, we have
@@ -59962,6 +60756,7 @@ done
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_title_curvi_plot
 ! err62_title_curvi_plot.jnl
 ! bug 1669; when the variable and its coordinate variables
@@ -59999,6 +60794,7 @@ LABTIT = "SEA SURFACE TEMPERATURE (Deg C)"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err62_save_missingcoordvar
 ! err62_save_missingcoordvar.jnl
 ! see bug 1686
@@ -60015,6 +60811,7 @@ save/clobber/file=a.nc sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_contourbug
 ! err62_contourbug.jnl
 ! Bug 1688
@@ -60037,6 +60834,7 @@ fill/hlimits=-100:400:50 0.0000001*(xb2+zb)^3,xb2,zb
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_append_irreg_to_reg
 ! err62_append_irreg_to_reg.jnl
 ! bug 1692
@@ -60069,9 +60867,11 @@ SET MODE/LAST IGNORE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_axis_stride_off
 ! err62_axis_stride_off.jnl
 ! fixing bug 1689: offset shifted by 1 so /OFFSET=0 >> start index = 1
+! 1/2017 *acm* changes in output due to backing off auto-detection of truemonth axes, tkt 2497
  
 USE truemonth.nc
  
@@ -60102,7 +60902,7 @@ LIST var
  16-JAN-1969 / 20:  0.6617913
  
 CAN AXIS/STRIDE `var,return=taxis`
- !-> CAN AXIS/STRIDE (AX144)
+ !-> CAN AXIS/STRIDE (AX143)
 SET AXIS/STRIDE=12/OFFSET=11 truemonth ! every December
 LIST var
              VARIABLE : COS(T[GT=TRUEMONTH]/100)
@@ -60131,7 +60931,7 @@ LIST var
 SET MODE IGNORE_ERRROR
 ! Previously didnt check for negative offset value
 CAN AXIS/STRIDE `var,return=taxis`
- !-> CAN AXIS/STRIDE (AX135)
+ !-> CAN AXIS/STRIDE (AX137)
 SET AXIS/STRIDE=12/OFFSET=-1 truemonth
  
 ! Previously didnt give err msg; just ignored non-positive stride value
@@ -60145,6 +60945,7 @@ SET MODE/LAST IGNORE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_compound_string_conditional
 ! err62_compound_string_conditional
 ! Bug 1380
@@ -60175,8 +60976,10 @@ LIST 1 EQ 2 OR "A" EQ "B"    ! should be 0
           0.0000000
  
  
-GO bn_reset
+GO bn_reset bn_axis_reversed_syms
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_reversed_syms
 GO bn_axis_reversed_syms
 ! bn_axis_reversed_syms.jnl
 ! XAXIS_REVERSED and YAXIS_REVERSED are
@@ -60262,8 +61065,10 @@ XAXIS_REVERSED = "0"
 YAXIS_REVERSED = "1"
  
  
-GO bn_reset
+GO bn_reset bn_isdepth
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_isdepth
 GO bn_isdepth
 ! Tests of `var,RETURN=ISDEPTH`
  
@@ -60298,8 +61103,10 @@ say `temp,return=isdepth`
 0
  
  
-GO bn_reset
+GO bn_reset bn_var_hist_levels.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_var_hist_levels.jnl
 GO bn_var_hist_levels.jnl
 ! bn_var_hist_levels.jnl
 ! Syntax for variance-based or histogram-based levels
@@ -60314,7 +61121,7 @@ shade/line/lev=50v/title="/LEV=50v" temp[K=1]
 sh sym lev*
 LEV_TEXT = "50V"
 LEV_MIN = "-2"
-LEV_MAX = "30.74"
+LEV_MAX = "open-ended"
 LEV_NUM = "56"
 LEV_DEL = "irregular"
 LEV_OPNLEVS = "(-2,3.05,0.505)(3.5,25.5,0.5)(25.5,25.5,0.505)(inf)"
@@ -60361,8 +61168,10 @@ shade/line/key/lev=50h/title="/LEV=50h" cvar[K=1]
  
 ! ******** V6.4 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn64_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn64_bug_fixes
 GO bn64_bug_fixes
 ! bn64_bug_fixes.jnl
 ! Fixes that go into v6.4 release
@@ -60372,6 +61181,7 @@ GO bn64_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err63_days1900toydmhms
 ! err63_days1900toydmhms.jnl
 !
@@ -60396,6 +61206,7 @@ list/k=2:3 tpts
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err63_log_vaxis
 ! err63_log_vaxis.jnl
 ! fix for bug 1708
@@ -60414,6 +61225,7 @@ plot/vlog z[gz=vert_axis_dn]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err63_delim_E.jnl
 ! err63_delim_E.jnl
 ! bug 1700
@@ -60451,8 +61263,10 @@ list v1
              X        : 1
         "ZAIRA"
  
-GO bn_reset
+GO bn_reset bn_long_grid_names
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_long_grid_names
 GO bn_long_grid_names
 ! bn_long_grid_names.jnl
 ! test longer grid names (16 --> 64 chars)
@@ -60467,11 +61281,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:3       1:20480   ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:3       1:20480   ...       ...
                on grid ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 with -1.E+34 for missing data
              X=0.5:3.5  Y=0.5:20481  
- X2       X2                               1:3       1:20480   ...       ...       ...       ...
+ X2       X2                               1:3       1:20480   ...       ...
                on grid ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 with -1.E+34 for missing data
              X=0.5:3.5  Y=0.5:20481  
  
@@ -60492,9 +61306,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:3       1:5       ...       ...       ...       ...
- X2       X2                               1:3       1:5       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:3       1:5       ...       ...
+ X2       X2                               1:3       1:5       ...       ...
  
 CAN DATA/ALL
  
@@ -60661,6 +61475,7 @@ stat v1234[g=even]-veven, v1234
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! regrid_transforms
 use gtsa056_1
 use gtsa056_2
@@ -60669,15 +61484,15 @@ set mode diag
 define axis/t=15-jan-1982:15-mar-1984:120/unit=hour tax5day
 define axis/x=120e:60w:10/unit=degrees xax10
 define grid/like=u/t=tax5day g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day
- getgrid EX#1     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 PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
+ getgrid EX#1     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 PS3DU1          PSXU      PSYU      PSZT2     TIME14
 define grid/like=u/x=xax10/z=w/t=tax5day g5_10g00abcdefghijklmnopqrstuvwxyz1234567890
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- getgrid EX#1     C:  8 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- getgrid EX#1     C:  9 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DW11         PSXT      PSYT1     PSZW      TIME14    NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ getgrid EX#1     C:  8 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ getgrid EX#1     C:  9 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DW11         PSXT      PSYT1     PSZW      TIME14
  
 set reg/x=130w:125w/y=0:1.5/z=0:15/t=21-JAN-1982:24-jan-1982
 !set reg/i=101:105/j=41:42/k=1:2/l=3:4
@@ -60685,19 +61500,19 @@ set reg/x=130w:125w/y=0:1.5/z=0:15/t=21-JAN-1982:24-jan-1982
 use gtsa056_1    	!kob 4/99
  
 LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc  dynamic grid PS3DW11         PSXT      PSYT1     PSZW      TIME14    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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DW11         PSXT      PSYT1     PSZW      TIME14
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M: 43 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 42 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 36 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 42 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M:249 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M:248 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M:247 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M:248 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 42 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 36 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:248 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M:247 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10G00ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 on X at AAV, on Y at AAV*
              FILENAME : gtsa056_1.cdf
@@ -60709,21 +61524,21 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
  20-JAN-1982 00 / 2:  23.88290  23.97420  24.14894  24.37499  24.62556
  25-JAN-1982 00 / 3:  23.88501  23.98344  24.16565  24.39832  24.65027
 LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gx=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M: 43 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 36 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 32 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 36 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 36 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 32 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 32 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 36 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:249 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M:247 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M:245 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M:247 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:247 dset:   1 I:     95    106  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M:245 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:245 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M:247 dset:   1 I:     95    106  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at AVE, on Y at LIN, on Z at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -60736,19 +61551,19 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gx=g5_10g00abcdefghijkl
  25-JAN-1982 00 / 3:  23.87741  23.97277  24.15346  24.38574  24.63814
  
 LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- found   TEMP     M: 43 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 36 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 29 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 36 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:249 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M:247 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M:244 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M:247 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 36 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 29 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:247 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M:244 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at LIN, on Z at LIN, on T at ASN
              FILENAME : gtsa056_1.cdf
@@ -60764,211 +61579,211 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijkl
 use gtsa056_2	!kob  4/99
 set region/x=180W/y=0/z=5/t=21-JAN-1982:13-JUN-1983
 load temp[i=50:51,j=45:56,k=1:2,l=1:172]  ! preload to save time
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DT1          PSXT      PSYT1     PSZT2     TIME14    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     1   172 dset:   2
- reading TEMP     M: 29 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME14
+ eval    EX#1     C:  4 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing TEMP on T axis:        1      172 dset:   2
+ reading TEMP     M:244 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
 plot temp
- dealloc  dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME14    NORMAL    NORMAL
- 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 PS3DT1          PSXT      PSYT1     PSZT2     TIME14    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME14
+ 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 PS3DT1          PSXT      PSYT1     PSZT2     TIME14
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ found   TEMP     M:246 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
 setting up plot
 PPL plot 760  complete
 plot/over temp[g=u]
- dealloc  dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME14    NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ dealloc  dynamic grid PS3DT1          PSXT      PSYT1     PSZT2     TIME14
+ 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 PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @LIN
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ found   TEMP     M:246 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
  regrid XY
- regrid  TEMP     M: 28 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ regrid  TEMP     M:243 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    168
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @LIN
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ found   TEMP     M:246 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
  regrid XY
- regrid  TEMP     M: 20 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ regrid  TEMP     M:236 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      1      2
+ doing moduloing TEMP on T axis:        1        2 dset:   2
 setting up plot
 PPL plot 761  complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ 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
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 18 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:246 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
+ regrid  TEMP     M:234 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M: 15 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 18 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:232 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:234 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 762  complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890]
- dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT2     TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 15 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -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
- eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT2     TAX5DAY
+ -DELETE TEMP     M:232 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ 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
+ eval    EX#1     C:  4 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 15 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 18 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 15 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:246 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
+ regrid  TEMP     M:232 dset:   2 I:     50     51  J:   45   46  K:    1    2  L:      2    104
+ regrid  TEMP     M:234 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M:232 dset:   2 I:     50     51  J:   45   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 15 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 18 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:232 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:234 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 763  complete
 plot/over temp[g=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @AAV
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ found   TEMP     M:246 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
  regrid XY
- regrid  TEMP     M: 18 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ regrid  TEMP     M:234 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    168
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @AAV
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ found   TEMP     M:246 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
  regrid XY
- regrid  TEMP     M: 13 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ regrid  TEMP     M:230 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      1      2
+ doing moduloing TEMP on T axis:        1        2 dset:   2
 setting up plot
 PPL plot 764  complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ 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
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 12 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:246 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
+ regrid  TEMP     M:229 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M: 11 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 12 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:228 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:229 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 765  complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT2     TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 11 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -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
- eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT2     TAX5DAY
+ -DELETE TEMP     M:228 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ 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
+ eval    EX#1     C:  4 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M: 11 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:  9 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 23 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  9 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ strip moduloing TEMP on T axis:        2      171 dset:   2
+ reading TEMP     M:228 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
+ regrid  TEMP     M:226 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    104
+ regrid  TEMP     M:239 dset:   2 I:     45     56  J:   45   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M:226 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:  9 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 23 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:226 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:239 dset:   2 I:     45     56  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 766  complete
 plot/over temp[g=u at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 12 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 23 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 26 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 23 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ found   TEMP     M:229 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:239 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    168
+ regrid  TEMP     M:241 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    168
+ -DELETE TEMP     M:239 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    168  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 11 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 27 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 22 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 27 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ found   TEMP     M:228 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      1    168
+ regrid  TEMP     M:242 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      1      2
+ regrid  TEMP     M:237 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      1      2
+ -DELETE TEMP     M:242 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      1      2  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on T axis:        1        2 dset:   2
 setting up plot
 PPL plot 767  complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ 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
+ eval    EX#1     C:  4 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M: 27 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 19 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 10 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 19 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 19 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 10 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 10 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 19 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ reading TEMP     M:242 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ regrid  TEMP     M:235 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ regrid  TEMP     M:227 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:235 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:235 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:227 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:227 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:235 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 768  complete
 plot/over temp[g=u,gt=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- found   TEMP     M: 17 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ found   TEMP     M:233 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
 setting up plot
 PPL plot 769  complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14
+ 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
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
  strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M: 12 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 19 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:229 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:235 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M: 25 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 19 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:240 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:235 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 770  complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT2     TAX5DAY   NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT2     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
+ eval    EX#1     C:  4 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- found   TEMP     M: 12 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 19 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 19 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:229 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:235 dset:   2 I:     50     51  J:   45   46  K:    1    2  L:      2    104
+ regrid  TEMP     M:238 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M:235 dset:   2 I:     50     51  J:   45   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 19 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:235 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:238 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 771  complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at asn]  ! invalid interpretation of data
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
  strip regrid on T: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 12 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:229 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:238 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M:  8 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:225 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:238 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 772  complete
  
@@ -60977,6 +61792,7 @@ set mode/last diag
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! regrid_to_user
  
 use coads_climatology
@@ -61010,15 +61826,13 @@ list/x=160e/y=5s temp[d=2,k=1,g=a[d=1]]
           29.51700
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G106)
-    GRID (G106)
+ Last successful data access was on grid (G104)
+    GRID (G104)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! per axis regrid
 ! 5/01 note: changed from y=0 yo y=5s to accomodate Y-truncated
@@ -61041,15 +61855,13 @@ list/x=160e/y=5s temp[d=2,k=1,gy=yax,gx=a[d=1]]
           29.51700
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G106)
-    GRID (G106)
+ Last successful data access was on grid (G104)
+    GRID (G104)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  YAX       LATITUDE            81 r   20S                  20N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! combined full grid and per-axis
 list/x=160e/y=5s temp[d=2,k=1,g=gg12345678901234567890,gx=a[d=1]]
@@ -61070,15 +61882,13 @@ list/x=160e/y=5s temp[d=2,k=1,gx=a[d=1],g=gg12345678901234567890]
           29.51700
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G106)
-    GRID (G106)
+ Last successful data access was on grid (G104)
+    GRID (G104)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  YAX       LATITUDE            81 r   20S                  20N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! pseudo-variable access
 list/i=1:4 i[g=a]		! a is previously loaded
@@ -61118,8 +61928,6 @@ show grid gg123456789012345678901
  COADSY    LATITUDE            90 r   89S                  89N
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
 let f = sst[y=20s:20n:.1,d=coads_climatology]
 DEFINE GRID/LIKE=f/x=temp[d=levitus_climatology] gg123456789012345678902
 cancel variable f
@@ -61130,8 +61938,6 @@ show grid gg123456789012345678902
  (AX009)   LATITUDE           401 r   20S                  20N
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     no implicit grids
@@ -61157,8 +61963,6 @@ show grid gg123456789012345678902
  YAXLEVITR1_90 LATITUDE        90 r   89.5S                0.5S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     no implicit grids
@@ -61179,37 +61983,26 @@ show grid
  YAXLEVITR1_90 LATITUDE        90 r   89.5S                0.5S                full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
  
 ! 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 G
- Last successful data access was on grid (G106)
-    GRID (G106)
+ Last successful data access was on grid (G104)
+    GRID (G104)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX121)   LATITUDE           201 r   10S                  10N                 200 pts
+ (AX121)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
-    GRID (G106)                          use count:   1
+    GRID (G104)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
  (AX121)   LATITUDE           201 r   10S                  10N
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX121)                         use count:   1
-    AXIS (AX054)                         use count:  13
-    AXIS (AX052)                         use count:  13
-    AXIS (AX009)                         use count:   2
  
 ! deliberate errors
 set mode ignore
@@ -61219,6 +62012,7 @@ set mode/last ignore
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! dynamic grid commands
  
@@ -61233,11 +62027,11 @@ SHOW GRID mygrid_123456789012345678901234567890
  (AX132)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
- normal    E
- normal    F
  
-GO bn_reset
+GO bn_reset bn_xml_repl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_xml_repl
 GO bn_xml_repl
 ! bn_xml_repl.jnl
 ! replace > and < and & with their html equivalents.
@@ -61286,14 +62080,17 @@ sh dat/xml/var
  
 ! ******** V6.5 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn65_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn65_bug_fixes
 GO bn65_bug_fixes
 ! bn65_bug_fixes.jnl
 ! Fixes that go into v6.5 release
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_very_small_latlon
 ! err64_very_small_latlon.jnl
 ! Based on a report and data file from Jean Newman.
@@ -61308,6 +62105,7 @@ shade/i=1:10/j=1:10 bathy
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_packed_data
 ! err64_packed_data.jnl
 ! Test writing packed data. Prior to v6.4 this example shows the
@@ -61400,6 +62198,7 @@ list/i=1:15 sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_repl_9999999
 ! bn_repl_9999999.jnl
 ! Bug 1717
@@ -61414,6 +62213,7 @@ can view view9999999
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_shakey_missingdata
 ! err64_shakey_missingdata.jnl
 ! starting with v6.2 a polygon plot with all missing data.
@@ -61438,6 +62238,7 @@ go polytube polygon/over/key/lev=(0,6,1) xpts,ypts,zpts
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_return_precision
 !err64_return_precision.jnl
 ! most of these resulted in *** - format too small.
@@ -61470,6 +62271,7 @@ say `999.999,p=-2`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_parse_equals
 ! err64_parse_equals
 ! Bug1469 (and duplicate 1690)
@@ -61490,6 +62292,7 @@ DEFINE SYMBOL my_sym  = `UPCASE("/lev=(0,30,2)")`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_regrid_noleap
 ! err64_regrid_noleap.jnl
 !
@@ -61533,6 +62336,7 @@ list b[t=15-feb-1150]  ! Now ok??
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_polymark_over_calendar
 ! err64_polymark_over_calendar.jnl
 ! bug1722.  Polymark script failed with calendar mismatch
@@ -61550,8 +62354,10 @@ go polymark "poly/ov/nolab/pal=red/line=1" pos pos " " circle .5
  
  
  
-GO bn_reset
+GO bn_reset bn_txtype_dmy
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_txtype_dmy
 GO bn_txtype_dmy
 ! bn_txtype_dmy.jnl
 ! 2/2010 ACM
@@ -61676,8 +62482,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn_n_open_dsets_sym
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_n_open_dsets_sym
 GO bn_n_open_dsets_sym
  !  bn_n_open_dsets_sym.jnl
 ! Ferret v6.5
@@ -61720,8 +62528,10 @@ sh sym N_OPEN_DSETS
 N_OPEN_DSETS = "0"
  
  
-GO bn_reset
+GO bn_reset bn_multi_decade
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_multi_decade
 GO bn_multi_decade
 ! bn_multi_decade.jnl
 ! New default no-small tics for multi-decade plots
@@ -61784,8 +62594,10 @@ set view v8; plot/trans/nolab/ax=0,0,1,0/hlim=0:1/set tvar
   ppl tics,0.1,0.25
   ppl plot
  
-GO bn_reset
+GO bn_reset bn_show_xml_file
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_show_xml_file
 GO bn_show_xml_file
 ! bn_show_xml_file.jnl
 ! Testing SHOW DATA/OUTFILE
@@ -61905,18 +62717,18 @@ sp cat the_xml_file.xml
    <value><![CDATA[MONTH_IRREG]]></value>
 </attribute>
 </axis>
-<axis name="XAX1_15">
+<axis name="YAX1_5">
 <attribute name="direction" type="char">
-   <value><![CDATA[I]]></value>
+   <value><![CDATA[J]]></value>
 </attribute>
 <attribute name="length" type="short">
-   <value>15</value>
+   <value>5</value>
 </attribute>
 <attribute name="start" type="double">
    <value>1</value>
 </attribute>
 <attribute name="end" type="double">
-   <value>15</value>
+   <value>5</value>
 </attribute>
 <attribute name="point_spacing" type="char">
    <value><![CDATA[even]]></value>
@@ -61928,24 +62740,24 @@ sp cat the_xml_file.xml
    <value><![CDATA[DOUBLE]]></value>
 </attribute>
 <attribute name="axis" type="char">
-   <value><![CDATA[X]]></value>
+   <value><![CDATA[Y]]></value>
 </attribute>
 <attribute name="orig_file_axname" type="char">
-   <value><![CDATA[XAX1_15]]></value>
+   <value><![CDATA[YAX1_5]]></value>
 </attribute>
 </axis>
-<axis name="YAX1_5">
+<axis name="XAX1_15">
 <attribute name="direction" type="char">
-   <value><![CDATA[J]]></value>
+   <value><![CDATA[I]]></value>
 </attribute>
 <attribute name="length" type="short">
-   <value>5</value>
+   <value>15</value>
 </attribute>
 <attribute name="start" type="double">
    <value>1</value>
 </attribute>
 <attribute name="end" type="double">
-   <value>5</value>
+   <value>15</value>
 </attribute>
 <attribute name="point_spacing" type="char">
    <value><![CDATA[even]]></value>
@@ -61957,10 +62769,10 @@ sp cat the_xml_file.xml
    <value><![CDATA[DOUBLE]]></value>
 </attribute>
 <attribute name="axis" type="char">
-   <value><![CDATA[Y]]></value>
+   <value><![CDATA[X]]></value>
 </attribute>
 <attribute name="orig_file_axname" type="char">
-   <value><![CDATA[YAX1_5]]></value>
+   <value><![CDATA[XAX1_15]]></value>
 </attribute>
 </axis>
 </axes>
@@ -61968,13 +62780,15 @@ sp cat the_xml_file.xml
  
  
  
-! GO bn_reset
+! GO bn_reset O bn_encode_url
 ! GO bn_encode_url
  
 ! ******** V6.6 Additions below ***********
  
-GO bn_reset
+GO bn_reset bn66_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn66_bug_fixes
 GO bn66_bug_fixes
 ! bn66_bug_fixes.jnl
 ! Fixes that go into v6.6 release
@@ -61982,6 +62796,7 @@ GO bn66_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err65_averages.jnl
  
 use gt4d011
@@ -62072,8 +62887,10 @@ stat temp[z=@ave,t=@ave,y=-2:2]
  
 cancel region
  
-GO bn_reset
+GO bn_reset bn_netcdf4
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_netcdf4
 GO bn_netcdf4
 ! bn_netcdf4.jnl
 ! test syntax for controling NetCDF-4 intput and output.
@@ -62129,13 +62946,13 @@ save/file=nc4_deflate4_defaultchunk.nc/clobber/ncformat=4/deflate/shuffle sst
 ! history attribute; e.g. changing the Ferret version name from v6.97 to v7
  
 sp stat nc4_nodeflate3.nc --printf="Bytes: %s\n"
-Bytes: 197524
+Bytes: 197528
 sp stat nc4_deflate4bigchunk.nc --printf="Bytes: %s\n"
-Bytes: 125224
+Bytes: 125228
 sp stat nc4_deflate4_xyt.nc --printf="Bytes: %s\n"
-Bytes: 124812
+Bytes: 124816
 sp stat nc4_deflate4_defaultchunk.nc --printf="Bytes: %s\n"
-Bytes: 118877
+Bytes: 118881
  
 ! Write variable as INT
 CAN DAT/all; can var/all; can mem/all
@@ -62150,11 +62967,11 @@ save/clobber/shuffle=1/file=nc4_inttemp_shuffle_set_list_deflate_chunk.nc temp
  
 ! get the file sizes
 sp stat nc4_inttemp_classic.nc --printf="Bytes: %s\n"
-Bytes: 60556
+Bytes: 60560
 sp stat nc4_inttemp_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
-Bytes: 32400
+Bytes: 32404
 sp stat nc4_inttemp_shuffle_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
-Bytes: 32577
+Bytes: 32581
  
 cancel list/all
 set list/ncformat=classic
@@ -62210,8 +63027,10 @@ save/file=nc4_deflate4chunktoobig.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychun
 can mode ignore
  
  
-GO bn_reset
+GO bn_reset bn_scat2grid_bin.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_scat2grid_bin.jnl
 GO bn_scat2grid_bin.jnl
 ! bn_scat2grid_bin.jnl
 ! Tests of scat2grid_bin and scat2grid_nbin functions.
@@ -62222,14 +63041,12 @@ 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 (G091)
+    GRID (G099)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
- TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   9 pts
- normal    E
- normal    F
+ TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   10 pts
  
  
 define axis/x=0:10:0.05 x10
@@ -62429,14 +63246,12 @@ list/x=2:3 sgrid
  
 let tpts = 39798 + 87*RANDU(I)
 show grid tt
-    GRID (G089)
+    GRID (G093)
  name       axis              # pts   start                end                 subset
  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   9 pts
- normal    E
- normal    F
+ TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   10 pts
  
 let sgrid = scat2grid_bin_xyt (xpts, ypts, tpts, sample_function, x[gx=xax5], y[gy=yax5], tt)
 SAVE/FILE=a.nc/clobber sgrid
@@ -62552,8 +63367,10 @@ can axis tin
  
 ! *********** v6.62 Additions ***********
  
-GO bn_reset
+GO bn_reset bn_axis_dir_symbols
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_dir_symbols
 GO bn_axis_dir_symbols
 ! bn_axis_dir_symbols.jnl
 ! 5/2010
@@ -62584,8 +63401,10 @@ AX_VERT = "Y"
  
 ! *********** v6.63 Additions ***********
  
-GO bn_reset
+GO bn_reset bn663_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn663_bug_fixes
 GO bn663_bug_fixes
 ! bn663_bug_fixes.jnl
 ! Fixes that go into v6.63 release
@@ -62593,6 +63412,7 @@ GO bn663_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err65_dots_in_dashes.jnl
 ! err65_dots_in_dashes.jnl
 ! Test fix to bug 1396: dots where there should
@@ -62613,6 +63433,7 @@ cancel mode meta
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err66_all_missing_lev_v.jnl
 ! err66_all_missing_lev_v.jnl
 ! Ferret hangs with /LEV=V and all missing data
@@ -62622,8 +63443,10 @@ SHADE/L=1/X=60:70/Y=40:50/LEV=v sst
  
 FILL/L=2/X=60:70/Y=40:50/LEV=v sst
  
-GO bn_reset
+GO bn_reset bn_set_axis_regular
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_axis_regular
 GO bn_set_axis_regular
 ! bn_set_axis_regular.jnl
 ! Karl Smith, 5/2010
@@ -62700,8 +63523,6 @@ show grid
  MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! --- force the x axis to be regular
 set axis /regular myx
@@ -62761,8 +63582,6 @@ show grid
  MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! --- setting a regular axis as regular does nothing
 set axis /regular myx
@@ -62822,12 +63641,11 @@ show grid
  MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! --- clean up
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 cancel grid mygrid
  
 ! --- read a NetCDF file with the irregular axes and data
@@ -62835,8 +63653,8 @@ use bn_set_axis_regular
 show data
      currently SET data sets:
     1> ./bn_set_axis_regular.nc  (default)
- name     title                             I         J         K         L         M         N
- MYDATA   2 * X + Y                        1:10      1:10      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ MYDATA   2 * X + Y                        1:10      1:10      ...       ...
  
 list mydata
              VARIABLE : 2 * X + Y
@@ -62863,8 +63681,6 @@ show grid
  MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! --- force the x axis to be regular
 set axis /regular `..dimnames[i=1]`
@@ -62894,12 +63710,12 @@ show grid
  MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
- normal    E
- normal    F
  
  
-GO bn_reset
+GO bn_reset bn_set_cancel_redirect
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_cancel_redirect
 GO bn_set_cancel_redirect
 ! bn_set_cancel_redirect.jnl
 ! Karl Smith, 5/2010
@@ -62949,8 +63765,6 @@ show grid mygrid
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 go /help
  
 ! --- 5. show the contents of the redirect file
@@ -63039,8 +63853,6 @@ show grid mygrid
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 go /help
  
 ! --- 10. results of CANCEL REDIRECT when nothing is redirected
@@ -63210,8 +64022,6 @@ show grid mygrid
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 go /help
  
 ! --- 18. see what happens to messages (say, warn, error)
@@ -63228,7 +64038,7 @@ let contents = { spawn:"cat redirect_stdout.txt" }
 ! ---     should be the stdout of 17, whatever stdout of 18, and cancel redirect from 19
 list contents
              VARIABLE : { SPAWN:"cat redirect_stdout.txt" }
-             SUBSET   : 24 points (X)
+             SUBSET   : 22 points (X)
  1    /  1:"set redirect /tee /file="redirect_stderr.txt" /clobber stderr"   
  2    /  2:" "                                                               
  3    /  3:"! --- 17. produce some output"                                   
@@ -63239,20 +64049,18 @@ list contents
  8    /  8:" normal    Y"                                                    
  9    /  9:" normal    Z"                                                    
  10   / 10:" normal    T"                                                    
- 11   / 11:" normal    E"                                                    
- 12   / 12:" normal    F"                                                    
- 13   / 13:"go /help"                                                        
- 14   / 14:" "                                                               
- 15   / 15:"! --- 18. see what happens to messages (say, warn, error)"       
- 16   / 16:"say "   This is a say message""                                  
- 17   / 17:"   This is a say message"                                        
- 18   / 18:"set axis /regular myaxis"                                        
- 19   / 19:"set mode ignore_error"                                           
- 20   / 20:"show grid garbage"                                               
- 21   / 21:"cancel mode ignore_error"                                        
- 22   / 22:" "                                                               
- 23   / 23:"! --- 19. cancel redirections and show the contents of the files"
- 24   / 24:"cancel redirect"                                                 
+ 11   / 11:"go /help"                                                        
+ 12   / 12:" "                                                               
+ 13   / 13:"! --- 18. see what happens to messages (say, warn, error)"       
+ 14   / 14:"say "   This is a say message""                                  
+ 15   / 15:"   This is a say message"                                        
+ 16   / 16:"set axis /regular myaxis"                                        
+ 17   / 17:"set mode ignore_error"                                           
+ 18   / 18:"show grid garbage"                                               
+ 19   / 19:"cancel mode ignore_error"                                        
+ 20   / 20:" "                                                               
+ 21   / 21:"! --- 19. cancel redirections and show the contents of the files"
+ 22   / 22:"cancel redirect"                                                 
 cancel var contents
 let contents = { spawn:"cat redirect_stderr.txt" }
 ! ---     should be the stderr of 17.
@@ -63313,8 +64121,6 @@ show grid mygrid
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 go /help
  
 ! --- 26. turn off journal mode
@@ -63347,11 +64153,11 @@ cancel redirect
 let contents = { spawn:"cat redirect_journal.txt" }
 list contents
              VARIABLE : { SPAWN:"cat redirect_journal.txt" }
-             SUBSET   : 47 points (X)
+             SUBSET   : 45 points (X)
  1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! FERRET v7 (beta/dbg)"                                                    
- 3    /  3:" ! Linux 2.6.32-642.1.1.el6.x86_64 64-bit - 06/15/16"                       
- 4    /  4:" ! 15-Jun-16 12:05     "                                                    
+ 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     "                                                    
  5    /  5:""                                                                           
  6    /  6:"! "                                                                         
  7    /  7:"!! --- 22. produce some output to stdout and stderr"                        
@@ -63385,16 +64191,14 @@ list contents
  35   / 35:"! normal    Y"                                                              
  36   / 36:"! normal    Z"                                                              
  37   / 37:"! normal    T"                                                              
- 38   / 38:"! normal    E"                                                              
- 39   / 39:"! normal    F"                                                              
- 40   / 40:"!go /help"                                                                  
- 41   / 41:"! Use the GO command to name a file of FERRET commands to be executed."     
- 42   / 42:"!     e.g.   yes? GO filename"                                              
+ 38   / 38:"!go /help"                                                                  
+ 39   / 39:"! Use the GO command to name a file of FERRET commands to be executed."     
+ 40   / 40:"!     e.g.   yes? GO filename"                                              
+ 41   / 41:"! "                                                                         
+ 42   / 42:"! Use "GO/HELP filename" to read documentation in  the file to be executed."
  43   / 43:"! "                                                                         
- 44   / 44:"! Use "GO/HELP filename" to read documentation in  the file to be executed."
- 45   / 45:"! "                                                                         
- 46   / 46:"!! --- 26. turn off journal mode"                                           
- 47   / 47:"!set mode journal:ferret.jnl"                                               
+ 44   / 44:"!! --- 26. turn off journal mode"                                           
+ 45   / 45:"!set mode journal:ferret.jnl"                                               
 cancel var contents
  
 ! --- clean-up: get rid of mygrid
@@ -63403,8 +64207,10 @@ cancel grid mygrid
  
 !!! NOTE: journal mode is now turned off !!!
  
-GO bn_reset
+GO bn_reset bn_min_max_smoothers
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_min_max_smoothers
 GO bn_min_max_smoothers
 ! bn_min_max_smoothers.jnl
 ! New transforms @SMN and @SMX, smoothers based on the
@@ -63694,8 +64500,10 @@ 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
  
  
-GO bn_reset
+GO bn_reset bn_vector_symbols
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_vector_symbols
 GO bn_vector_symbols
 ! bn_vector_symbols.jnl
 ! ACM 7/16/21010 Ferret V6.6.3
@@ -63742,8 +64550,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn_variance_large
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_variance_large
 GO bn_variance_large
 ! bn_variance_large.jnl
 ! Previous to v6.6.4, these returned messages **too big**
@@ -63791,8 +64601,10 @@ SHADE/L=1/LEV=v huge
  
 CANCEL SYMBOL lev*
  
-GO bn_reset
+GO bn_reset bn_labnum_calendar
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_labnum_calendar
 GO bn_labnum_calendar
 ! bn_labnum_calendar.jn.
 ! Define new symbol, when a Calendar label is on
@@ -63814,8 +64626,10 @@ LAB4 = "CALENDAR: NOLEAP"
  
  
 ! *********** v6.65 Additions ***********
-GO bn_reset
+GO bn_reset bn665_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn665_bug_fixes
 GO bn665_bug_fixes
 ! bn65_bug_fixes.jnl
 ! test various fixes that went into version 6.6.5
@@ -63824,6 +64638,7 @@ GO bn665_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err664_xml_keep_case
 ! err664_xml_keep_case.jnl
 !
@@ -64013,6 +64828,7 @@ REPEAT/RANGE=1:`nd`/name=m (DEFINE SYMBOL m = `m`; SH AXIS/XML `axis_names[i=($m
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err664_xml_one_point_axis
 ! err664_xml_one_point_axis.jnl
 ! See LAS ticket 969.
@@ -64024,8 +64840,8 @@ USE a_cartesian_bug1179.nc
 SH DAT
      currently SET data sets:
     1> ./a_cartesian_bug1179.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
+ name     title                             I         J         K         L
+ TEMP     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1
  
  
 LET/D=1 a = temp
@@ -64040,6 +64856,9 @@ SH VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GHU1">
 <axes>
 <xaxis>GRID_X_T</xaxis>
@@ -64065,6 +64884,9 @@ SH VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GHU1">
 <axes>
 <xaxis>GRID_X_T</xaxis>
@@ -64078,6 +64900,7 @@ SH VAR/XML
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err65_read_epic_cdf
 ! Ned Cokelet reports that the time coordinate is read incorrectly
 ! from this file.  Should translate to  04-MAY-2007 05:02
@@ -64116,6 +64939,7 @@ list ..dimnames
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err664_tax_fcns
 ! err664_tax_fcns.jnl
 ! Fixes for tickets 1766 and 1765
@@ -64186,8 +65010,10 @@ list tax_year(a,a)
  JUL-0005 / 6:"01-JUL-0005"
  
  
-GO bn_reset
+GO bn_reset bn_floatstr
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_floatstr
 GO bn_floatstr
 ! bn_floatstr.jnl
 ! testing new function to convert floating-point
@@ -64311,8 +65137,10 @@ LIST/X=165W:135W/Y=-50/L=1 STRLEN(var)
  135W   / 103:  0.000
  
 ! *********** v6.7 Additions ***********
-GO bn_reset
+GO bn_reset bn67_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn67_bug_fixes
 GO bn67_bug_fixes
 ! bn67_bug_fixes.jnl
 ! test various fixes that went into version 6.7
@@ -64320,6 +65148,7 @@ GO bn67_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err665_sum_4d_labels
 ! A multi-dimensioned sum is now done as a 4D transformation.
 ! the labels on a LISTing of the result contained ???
@@ -64336,6 +65165,7 @@ list sst[X=125E,Y=75S:75N at sum,l=1:12 at sum]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err665_din
 ! err665_din
 ! Fixing incorrect latitude corrections for single-point y axis,
@@ -64405,6 +65235,7 @@ list p[x=279:380 at din,z=0:10 at din]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err665_centered_lev
 ! err665_centered_lev
 ! Bug 1803; computation of new levels isnt requested for
@@ -64445,6 +65276,7 @@ LEV_DEL = "5"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err665_hours_since_T
 ! err665_hours_since_T.jnl
 ! Ticket 1806: allow time-axis units string to
@@ -64463,6 +65295,7 @@ T0 = 15-JAN-1901 12:00:00
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_att_too_long
 ! err667_att_too_long.jnl
 ! 3/25/2011 ACM
@@ -64513,6 +65346,7 @@ save/file=aa.nc/clobber sfco2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_mode_desperate
 ! err667_mode_desperate
 ! 3/25/2011 ACM
@@ -64524,22 +65358,22 @@ set mode ignore
  
 ! setting too large
 set mode desperate `9999999999`
- !-> set mode desperate   9999999999.000000
+ !-> set mode desperate 9999999999.
 show mode desperate
       MODE            STATE        ARGUMENT
-      DESPERATE     CANCELLED      2560000
+      DESPERATE     CANCELED       2560000
  
 ! another setting too large (previously value
 ! was set to the first 10 digits of this)
 set mode desperate 1234567890123456789
 show mode desperate
       MODE            STATE        ARGUMENT
-      DESPERATE     CANCELLED      2560000
+      DESPERATE     CANCELED       2560000
  
 ! Previously couldnt handle a floating point
 ! input. Now we can.
 set mode desperate `96 * 1024 * 1024`
- !-> set mode desperate   100663296.0000000
+ !-> set mode desperate 100663296.
 show mode desperate
       MODE            STATE        ARGUMENT
       DESPERATE        SET           100663296
@@ -64549,6 +65383,7 @@ cancel mode desperate
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_dup_axnames
 ! err667_dup_axnames.jnl
 ! See bug 1750
@@ -64579,6 +65414,7 @@ save/clob/file="justg.nc" g[d=1]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_string_if
 ! err667_string_if.jnl
 ! Previously both of these LIST commands caused a crash.
@@ -64604,6 +65440,7 @@ list IF strings EQ "a" THEN "" ELSE strings
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_show_var_twice
  ! err667_show_var_twice.jnl
  ! ticket 1825
@@ -64625,11 +65462,13 @@ sh var airt2[d=1]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_5d_netcdf
 exit/script  ! this test is not valid for 6D Ferret.
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_save_append_open
 ! err67_save_append_open.jnl
 ! ticket 1832
@@ -64652,8 +65491,8 @@ save/append/file=a.nc temp_mm
 sh dat
      currently SET data sets:
     1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25
  
 can dat/all
  
@@ -64663,14 +65502,16 @@ use a.nc
 sh dat
      currently SET data sets:
     1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
- TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25
+ TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25
  
  
  
-GO bn_reset
+GO bn_reset bn_NaN_note
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_NaN_note
 GO bn_NaN_note
 ! bn_NaN_note.jnl
 ! Ferret v6.7  2/2011
@@ -64685,13 +65526,16 @@ USE test0
 ! Now we get the NOTE
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 SET MODE diag
 USE test0
 CANCEL MODE diag
  
 ! *********** v6.71 Additions ***********
-GO bn_reset
+GO bn_reset bn671_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn671_bug_fixes
 GO bn671_bug_fixes
 ! bn671_bug_fixes.jnl
 ! test various fixes that went into version 6.71
@@ -64699,6 +65543,7 @@ GO bn671_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_tax_modtime
 ! err67_tax_modtime.jnl
 ! 5/17/2011
@@ -64769,6 +65614,7 @@ list tax_units(tvar)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_save_append_open
 ! err67_save_append_open.jnl
 ! ticket 1832
@@ -64791,8 +65637,8 @@ save/append/file=a.nc temp_mm
 sh dat
      currently SET data sets:
     1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25
  
 can dat/all
  
@@ -64802,13 +65648,14 @@ use a.nc
 sh dat
      currently SET data sets:
     1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
- TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25
+ TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_regridding_dyn
 ! err67_regridding_dyn.jnl
 !  6/2011
@@ -64916,6 +65763,7 @@ list/x=330/y=40:90 filled[d=3,gxy=filled[d=2]]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_reverse_bounds
 ! err67_reverse_bounds.jnl
 !
@@ -64958,6 +65806,7 @@ list lev_var, zboxlo[gz=lev_var], zboxhi[gz=lev_var]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_nrst_trans
 ! err67_nrst_trans.jnl
 !
@@ -64984,14 +65833,17 @@ list var
  400   / 11:   ....
  
 ! *********** v6.8 Additions ***********
-GO bn_reset
+GO bn_reset bn68_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn68_bug_fixes
 GO bn68_bug_fixes
 ! bn68_bug_fixes.jnl
 ! test various fixes that went into version 6.8
 !
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_stray_line
 ! err672_stray_line.jnl
 ! bug 1545, present in older versions of Ferret too.
@@ -65012,6 +65864,7 @@ plot/over/vs/nolab/line/sym {148.83, 148.17}, {-29.96, -29.68}
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_tax_functions_prec
 ! See ticket 1642: arg 1 of TAX_* functions
 ! is a single-precision variale representing double-precision coords.
@@ -65309,6 +66162,7 @@ can mode ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_subscr_precision
 ! err672_subscr_precision.jnl
 ! See ticket 1888.
@@ -65336,6 +66190,7 @@ list/t="02-JUN-2010:13:34:40":"02-JUN-2010:13:34:50" tt
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_vert_axislabel
 ! err672_vert_axislabel.jnl
 ! bug 1896
@@ -65366,6 +66221,7 @@ SET MODE/LAST shrink_ylab
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_axis_label_prec
 ! See ticket 1907
 ! Axis label format didnt give enough precision for accurate labels
@@ -65399,6 +66255,7 @@ plot v
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_long_show_axis
 ! See ticket 1905 - axes with very large number of points overflowed
 ! the format in SHOW AXIS commands
@@ -65414,6 +66271,7 @@ can axis huge
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_axis_order
 ! err672_axis_order
 ! See comment 5 under ticket 1774.
@@ -65425,20 +66283,20 @@ use err67_axis_order_copy.nc
 sh dat
      currently SET data sets:
     1> ./err67_axis_order.nc
- name     title                             I         J         K         L         M         N
- UCOV     UCOV                             1:6       1:9       1:3       1:1       ...       ...
- CONTROLE CONTROLE                         1:6       ...       ...       ...       ...       ...
- NIVSIGS  NIVSIGS                          ...       ...       1:3       ...       ...       ...
- NIVSIG   NIVSIG                           1:6       ...       ...       ...       ...       ...
- AP       AP                               1:6       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ UCOV     UCOV                             1:6       1:9       1:3       1:1
+ CONTROLE CONTROLE                         1:6       ...       ...       ...
+ NIVSIGS  NIVSIGS                          ...       ...       1:3       ...
+ NIVSIG   NIVSIG                           1:6       ...       ...       ...
+ AP       AP                               1:6       ...       ...       ...
  
     2> ./err67_axis_order_copy.nc  (default)
- name     title                             I         J         K         L         M         N
- UCOV     UCOV                             1:6       1:9       1:3       1:1       ...       ...
- CONTROLE CONTROLE                         1:6       ...       ...       ...       ...       ...
- NIVSIGS  NIVSIGS                          ...       ...       1:3       ...       ...       ...
- NIVSIG   NIVSIG                           1:6       ...       ...       ...       ...       ...
- AP       AP                               1:6       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ UCOV     UCOV                             1:6       1:9       1:3       1:1
+ CONTROLE CONTROLE                         1:6       ...       ...       ...
+ NIVSIGS  NIVSIGS                          ...       ...       1:3       ...
+ NIVSIG   NIVSIG                           1:6       ...       ...       ...
+ AP       AP                               1:6       ...       ...       ...
  
  
 ! Listings should be identical with the bug they are reversed.
@@ -65482,6 +66340,7 @@ list/k=3/i=1 ucov[d=2]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_runoff_page
 ! err672_runoff_page
 ! acm 5/3/2012
@@ -65502,6 +66361,7 @@ SET MODE/LAST shrink_ylab
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_samplexy_modulo
 ! err672_samplexy_modulo.jnl
 ! See ticket 1950: samplexy doesnt correctly do modulo operations.
@@ -65560,6 +66420,7 @@ list samplexyt(sst,{160,180,-20},{0,0,0},{`t1`,`t1`,`t1`})
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_varnames
 ! err672_varnames.jnl
 ! ticket 1938
@@ -65590,6 +66451,7 @@ CAN MODE IGNORE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_dset_cx
 ! err672_dset_cx.jnl
 ! Ticket 1951: The dataset specified in list x[gx=a[d=1,i=1:3]] is not applied.
@@ -65597,14 +66459,12 @@ GO err672_dset_cx
  
 let a = x[gx=0:2:1]; save/clob/file=a1.nc a
 sho grid/x a
-    GRID (G101)
+    GRID (G103)
  name       axis              # pts   start                end                 subset
- (AX137)   X                    3 r   0                    2                   2 pts
+ (AX084)   X                    3 r   0                    2                   3 pts
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  0                     1          -0.5
@@ -65613,14 +66473,12 @@ sho grid/x a
  
 let a = x[gx=1:3:1]; save/clob/file=a2.nc a
 sho grid/x a
-    GRID (G101)
+    GRID (G103)
  name       axis              # pts   start                end                 subset
- (AX121)   X                    3 r   1                    3                   2 pts
+ (AX121)   X                    3 r   1                    3                   3 pts
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -65636,14 +66494,14 @@ can var/all; can dat/all
 use a1
 list x[gx=a[d=1]]
              VARIABLE : X
-                        axis AX137
+                        axis AX084
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
  2   / 3:  2.000
 list x[gx=a[d=1,i=1:3]]
              VARIABLE : X
-                        axis AX137
+                        axis AX084
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -65658,7 +66516,7 @@ use a2
  
 list x[gx=a[d=1]]
              VARIABLE : X
-                        axis AX137
+                        axis AX084
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -65667,7 +66525,7 @@ list x[gx=a[d=1]]
 ! The bug was that this listed 1,2,3 rather than 0,1,2
 list x[gx=a[d=1,i=1:3]]
              VARIABLE : X
-                        axis AX137
+                        axis AX084
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
@@ -65683,14 +66541,16 @@ list x[gx=a[d=1,i=1:3]]
 ! Why is the following different?
 list x[gx=a[d=1],i=1:3]
              VARIABLE : X
-                        axis AX137
+                        axis AX084
              SUBSET   : 3 points (X)
  0   / 1:  0.000
  1   / 2:  1.000
  2   / 3:  2.000
  
-GO bn_reset
+GO bn_reset bn_ifv
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ifv
 GO bn_ifv
 ! bn_ifv.jnl
 ! test IFV IfValid masking for a variety of combos
@@ -65827,8 +66687,10 @@ list IFV strings EQ "a" THEN "" ELSE strings
  2   / 2:"b"
  3   / 3:"" 
  
-GO bn_reset
+GO bn_reset bn_randu2_randn2
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_randu2_randn2
 GO bn_randu2_randn2
 ! Test randu2 and randn2 with newer random-number algorithm.
 ! 9/2011 acm
@@ -65846,40 +66708,40 @@ can mode ver
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.529
-randu2_randn2       0.341
-randu2_randn2       0.230
-randu2_randn2       0.630
-randu2_randn2       0.124
+randu2_randn2       0.148
+randu2_randn2       0.852
+randu2_randn2       0.072
+randu2_randn2       0.121
+randu2_randn2       0.649
              VARIABLE : RANDU2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.443
-randu2_randn2       0.524
-randu2_randn2       0.980
-randu2_randn2       0.163
-randu2_randn2       0.050
+randu2_randn2       0.522
+randu2_randn2       0.962
+randu2_randn2       0.365
+randu2_randn2       0.973
+randu2_randn2       0.332
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.521
-randu2_randn2       0.423
-randu2_randn2       0.214
-randu2_randn2       0.845
-randu2_randn2       0.964
-randu2_randn2       0.191
+randu2_randn2       0.329
+randu2_randn2       0.680
+randu2_randn2       0.442
+randu2_randn2       0.609
+randu2_randn2       0.777
+randu2_randn2       0.799
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.958
-randu2_randn2       0.815
-randu2_randn2       0.822
-randu2_randn2       0.733
-randu2_randn2       0.435
-randu2_randn2       0.205
+randu2_randn2       0.438
+randu2_randn2       0.052
+randu2_randn2       0.123
+randu2_randn2       0.274
+randu2_randn2       0.719
+randu2_randn2       0.166
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -65904,40 +66766,40 @@ randu2_randn2       0.638
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.115
-randu2_randn2      -1.256
-randu2_randn2       0.121
-randu2_randn2       0.787
-randu2_randn2      -0.249
+randu2_randn2       0.255
+randu2_randn2       0.053
+randu2_randn2       1.155
+randu2_randn2      -0.079
+randu2_randn2      -1.461
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2      -0.070
-randu2_randn2       0.494
-randu2_randn2      -0.838
-randu2_randn2      -0.672
-randu2_randn2       0.125
+randu2_randn2       1.544
+randu2_randn2      -0.576
+randu2_randn2      -0.874
+randu2_randn2       0.399
+randu2_randn2      -0.532
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       1.413
-randu2_randn2      -0.974
-randu2_randn2      -2.053
-randu2_randn2       0.331
-randu2_randn2       0.613
-randu2_randn2       0.548
+randu2_randn2       0.805
+randu2_randn2       0.884
+randu2_randn2       0.535
+randu2_randn2       0.086
+randu2_randn2      -0.192
+randu2_randn2       0.304
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       1.353
-randu2_randn2       0.941
-randu2_randn2      -0.798
-randu2_randn2      -1.328
-randu2_randn2       1.195
-randu2_randn2      -0.131
+randu2_randn2      -1.786
+randu2_randn2       1.110
+randu2_randn2      -1.738
+randu2_randn2       1.397
+randu2_randn2      -0.281
+randu2_randn2      -0.459
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -65962,17 +66824,19 @@ 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.238       1.238       0.415
-randu2_randn2       0.847       0.847       0.415
-randu2_randn2       0.415       0.415       0.174
-randu2_randn2       0.174       0.174       0.415
-randu2_randn2      -0.205      -0.205       0.415
-randu2_randn2      -0.475      -0.288       0.415
-randu2_randn2      -0.288      -0.288       0.415
-randu2_randn2       0.689       0.689       0.689
- 
-GO bn_reset
-cancel mode verify
+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
+ 
+GO bn_reset bn_axis_cf
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_cf
 GO bn_axis_cf
 ! Ticket 1792: Write axes with CF-compliant units
 ! and with standard name attributes for geophysical attrs.
@@ -66040,8 +66904,10 @@ sp ncdump -h a.nc >> all_ncdump.out
  
  
  
-GO bn_reset
+GO bn_reset bn_repeated_coords
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_repeated_coords
 GO bn_repeated_coords
 ! Test the use of micro-adjusting on NetCDF read
 ! when coordinates are repeated.
@@ -66057,8 +66923,6 @@ show grid a
  normal    Y
  normal    Z
  TMIN      TIME                71 i   01-JAN-2001 00:00    01-JAN-2001 01:10   full
- normal    E
- normal    F
 show axis tmin
  name       axis              # pts   start                end
  TMIN      TIME                71 i   01-JAN-2001 00:00    01-JAN-2001 01:10
@@ -66090,8 +66954,6 @@ show grid a
  normal    Y
  normal    Z
  TMIN      T                   71 r   1                    71                  full
- normal    E
- normal    F
 show axis tmin
  name       axis              # pts   start                end
  TMIN      T                   71 r   1                    71
@@ -66115,8 +66977,10 @@ list aa[L=1:71:10]
  01-JAN-2001 01:10:00 / 8:  0.6997
  
  
-GO bn_reset
+GO bn_reset bn_xml_header
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_xml_header
 GO bn_xml_header
 ! bn_xml_header.jnl
 ! run the exact script that LAS uses to make XML header files
@@ -66333,8 +67197,10 @@ sp grep -A5 dimension xml_out_string.xml
 </dimensions>
 </data>
  
-GO bn_reset
+GO bn_reset bn_eof_simple
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_eof_simple
 GO bn_eof_simple
 ! bn_eof_simple
 ! Define a simple function with two known functions.
@@ -66367,8 +67233,6 @@ show grid spacetime
  YAXIS     Y                    1 r   1                    1                   full
  normal    Z
  TAXIS     T                  240 r   0                    59.75               full
- normal    E
- normal    F
  
 show func eofsvd_stat
 EOFSVD_STAT(A)
@@ -66958,8 +67822,10 @@ can axis xaxis
  
 exit/script
  
-GO bn_reset
+GO bn_reset bn_eof_simple2
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_eof_simple2
 GO bn_eof_simple2
 ! bn_eof_simple2
 ! Define a simple function with four known functions, two of which are degenerate.
@@ -66992,8 +67858,6 @@ show grid spacetime
  YAXIS     Y                    2 r   1                    2                   full
  normal    Z
  TAXIS     T                  240 r   0                    23.9                full
- normal    E
- normal    F
  
 show func eofsvd_stat
 EOFSVD_STAT(A)
@@ -67323,8 +68187,10 @@ exit/script
  
 ! 6D tests for Ferret v6.8
  
-GO bn_reset
+GO bn_reset bn_interpolate_6d
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_interpolate_6d
 GO bn_interpolate_6d
 ! bn_interpolate_6d.JNL
 ! benchmark interpolation along various axes
@@ -67726,8 +68592,10 @@ LIST v[@xpt, at ypt, at ept, at fpt]
  
 set mode/last calendar
  
-GO bn_reset
+GO bn_reset bn_regrid_6d
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regrid_6d
 GO bn_regrid_6d
 ! bn_regrid_6d.jnl
 ! version of bn_regrid, using E and F directions.
@@ -69112,8 +69980,10 @@ set mode/last long_label
 set mode/last calendar
  
  
-GO bn_reset
+GO bn_reset bn_syntax_6d
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_syntax_6d
 GO bn_syntax_6d
 ! bn_syntax_6d.JNL
 ! - test syntax interpretation of Program FERRET 6D
@@ -69242,8 +70112,10 @@ cancel variables/all;\
      currently SET data sets:
           3.00000
  
-GO bn_reset
+GO bn_reset bn_expressions_6d
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_expressions_6d
 GO bn_expressions_6d
 ! bn_expressions_6d.jnl
 ! testing expressions syntax in E and F directions.
@@ -69725,8 +70597,10 @@ LIST/n=5:7 FBOXLO, FBOXHI
 6   / 6:  5.50000  6.50000
 7   / 7:  6.50000  7.50000
  
-GO bn_reset
+GO bn_reset bn_direction_fcns_6d
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_direction_fcns_6d
 GO bn_direction_fcns_6d
 ! bn_direction_functions_6d
 ! Tests of sort, sample, reverse, convolve, compress, and compess_by
@@ -69945,8 +70819,10 @@ list compressn_by(fsequence({10,20,30,40,50}),mask)
  4   / 4:     ....     ....
  5   / 5:     ....     ....
  
-GO bn_reset
+GO bn_reset bn_regrid_transforms_6d
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_regrid_transforms_6d
 GO bn_regrid_transforms_6d
 ! bn_regrid_transforms_6d.jnl
 ! benchmark to test regridding transformations and syntax
@@ -69960,7 +70836,7 @@ set mode calendar:years
 define axis/f=23-jan-1982:30-jan-1982:20/unit=hour fax20
 define axis/x=120e:60w:10/unit=degrees xax10
 define grid/like=temp/f=fax20 g5day
- 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
+ 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 GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
  dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
  
@@ -69969,15 +70845,15 @@ set reg/x=130w:125w/y=0:1.5/e=1:2/f=23-JAN-1982:24-jan-1982/t=21-JAN-1982/z=5
 use gtsa056_1_ef    	!kob 4/99
  
 stat temp[g=g5day] - temp[g=g5day at ave]
- getgrid 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 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=1982 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
  strip regrid on F: TEMP --> G5DAY            @LIN
- reading TEMP     M:120 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- regrid  TEMP     M:118 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ reading TEMP     M:248 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:236 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
  strip regrid on F: TEMP --> G5DAY            @AVE
- reading TEMP     M:114 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- regrid  TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ found   TEMP     M:248 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:232 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
  doing --> EX#1[T=1982 at ITP,D=1]
  
              TEMP[G=G5DAY] - TEMP[G=G5DAY at AVE]
@@ -69998,17 +70874,17 @@ stat temp[g=g5day] - temp[g=g5day at ave]
  
 ! basic regrid tests
 LIST temp[g=g5day at ave]
- -DELETE EX#1     M: 94 dset:   1 I:  101  105  J:   41   46  K:    1    1  L: -999 -999  M:    1    2  N:    1    2
- -DELETE EX#1     M:112 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ -DELETE EX#1     M:226 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ -DELETE EX#1     M:234 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:   -999   -999  M:    1    2  N:    1    2
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- -DELETE TEMP     M:118 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    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
+ -DELETE TEMP     M:232 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ -DELETE TEMP     M:236 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    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
  strip --> EX#1[T=1982 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
  strip regrid on F: TEMP --> G5DAY            @AVE
- reading TEMP     M:118 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- regrid  TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ found   TEMP     M:248 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:236 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
  doing --> TEMP[T=1982 at ITP,D=1]
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on F at AVE
@@ -70050,14 +70926,14 @@ LIST temp[g=g5day at ave]
  0.17S / 41:  43.3538  43.2657  43.1716  43.1285  43.2282
 LIST temp[g=g5day]	
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- -DELETE TEMP     M:112 dset:   1 I:  101  105  J:   41   46  K:    1    1  L: -999 -999  M:    1    2  N:    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
+ -DELETE TEMP     M:232 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:   -999   -999  M:    1    2  N:    1    2
+ -DELETE TEMP     M:236 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    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
  strip --> EX#1[T=1982 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
  strip regrid on F: TEMP --> G5DAY            @LIN
- reading TEMP     M:112 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- regrid  TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ found   TEMP     M:248 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:236 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    1    2
  doing --> TEMP[T=1982 at ITP,D=1]
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY
@@ -70118,16 +70994,16 @@ use gtsa056_1_ef 		!kob 4/99
 set region/x=180E/y=0/f=23-JAN-1982/t=21-JAN-1982/z=5
 plot temp
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 94 dset:   1 I:  101  105  J:   41   46  K:    1    1  L: -999 -999  M:    1    2  N:    1    2
- -DELETE TEMP     M:104 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    2    3  M:    1    2  N:    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
+ -DELETE TEMP     M:232 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:   -999   -999  M:    1    2  N:    1    2
+ -DELETE TEMP     M:236 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      2      3  M:    1    2  N:    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 GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
  strip --> EX#1[F=1982 at ITP,D=1]
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  8 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- reading TEMP     M:104 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ eval    EX#1     C:  8 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ reading TEMP     M:236 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
@@ -70136,14 +71012,14 @@ setting up plot
 PPL plot 869  complete
 plot/over temp[g=g5day]
  dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
- getgrid 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 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ eval    EX#1     C:  7 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @LIN
- reading TEMP     M: 86 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- regrid  TEMP     M: 58 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ found   TEMP     M:236 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:216 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
@@ -70151,18 +71027,18 @@ setting up plot
 PPL plot 870  complete
 plot/over temp[g=g5day at ave]
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 58 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 72 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
- -DELETE TEMP     M: 88 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 96 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    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
+ -DELETE TEMP     M:216 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:220 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:228 dset:   1 I:   -999   -999  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:242 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:   -999   -999  M:    1    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
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ eval    EX#1     C:  7 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @AVE
- reading TEMP     M: 96 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- regrid  TEMP     M: 88 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ found   TEMP     M:236 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:242 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
@@ -70170,18 +71046,18 @@ setting up plot
 PPL plot 871  complete
 plot/over temp[g=g5day at asn]
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 58 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 72 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 80 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
- -DELETE TEMP     M: 88 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    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
+ -DELETE TEMP     M:216 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:   -999   -999  M:    1    2  N:    1    1
+ -DELETE TEMP     M:220 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:228 dset:   1 I:   -999   -999  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:242 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    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
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ eval    EX#1     C:  7 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @ASN
- reading TEMP     M: 88 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- regrid  TEMP     M: 80 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ found   TEMP     M:236 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:242 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
@@ -70192,17 +71068,17 @@ PPL plot 872  complete
 set region/x=180/y=20s:20n/e=2/t=21-JAN-1982/z=5
 plot temp
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 58 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 72 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 78 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
- -DELETE TEMP     M: 80 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    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
+ -DELETE TEMP     M:216 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:   -999   -999  M:    1    2  N:    1    1
+ -DELETE TEMP     M:220 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:228 dset:   1 I:   -999   -999  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:242 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    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
  allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
  strip --> EX#1[F=1982 at ITP,D=1]
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
- reading TEMP     M: 80 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
+ eval    EX#1     C:  7 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
+ reading TEMP     M:242 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
  doing --> TEMP[F=1982 at ITP,D=1]
@@ -70210,45 +71086,45 @@ setting up plot
 PPL plot 873  complete
 plot/over temp[g=g5day]
  dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAXIS
- getgrid 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 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ eval    EX#1     C:  6 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @LIN
- reading TEMP     M:106 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
- regrid  TEMP     M: 98 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ found   TEMP     M:242 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
+ regrid  TEMP     M:224 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
 PPL plot 874  complete
 plot/over temp[g=g5day at ave]
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 74 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
- -DELETE TEMP     M: 82 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- -DELETE TEMP     M: 98 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
+ -DELETE TEMP     M:212 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:   -999   -999  M:    2    2  N:    1    1
+ -DELETE TEMP     M:224 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
+ -DELETE TEMP     M:240 dset:   1 I:   -999   -999  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
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ eval    EX#1     C:  6 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @AVE
- reading TEMP     M: 98 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- regrid  TEMP     M: 82 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ found   TEMP     M:242 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
+ regrid  TEMP     M:240 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
 PPL plot 875  complete
 plot/over temp[g=g5day at asn]
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 70 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
- -DELETE TEMP     M: 74 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- -DELETE TEMP     M: 82 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
+ -DELETE TEMP     M:212 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:   -999   -999  M:    2    2  N:    1    1
+ -DELETE TEMP     M:224 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
+ -DELETE TEMP     M:240 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
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ eval    EX#1     C:  6 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @ASN
- reading TEMP     M: 82 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- regrid  TEMP     M: 74 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ found   TEMP     M:242 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
+ regrid  TEMP     M:240 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
@@ -70274,36 +71150,36 @@ let a2 = _e[ge=e2pt]+_f[gf=f2pt]
  
 list a1[ge=eoffset at ave, gf=fax4day at ave]
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME21    EAXIS     FAX20
- -DELETE TEMP     M: 66 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
- -DELETE TEMP     M: 70 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- -DELETE TEMP     M: 74 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 (G087)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- dealloc  dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- allocate dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- dealloc  dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- allocate dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      F1PT
- allocate dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G092)          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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A1 --> (G092)           @AVE
+ -DELETE TEMP     M:212 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:   -999   -999  M:    2    2  N:    1    1
+ -DELETE TEMP     M:224 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
+ -DELETE TEMP     M:240 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 (G089)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
+ dealloc  dynamic grid (G089)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
+ allocate dynamic grid (G089)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ dealloc  dynamic grid (G089)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ allocate dynamic grid (G089)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      F1PT
+ allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G091)          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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A1 --> (G091)           @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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- pseudo  _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- pseudo  _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- -DELETE _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- -DELETE _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- regrid  A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- regrid  A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ 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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ pseudo  _E       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N: -999 -999
+ allocate dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
+ pseudo  _F       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    1
+ -DELETE _F       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    1
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
+ -DELETE _E       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N: -999 -999
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ regrid  A1       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
+ regrid  A1       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ -DELETE A1       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
+ dealloc  dynamic grid (G091)          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)
@@ -70326,29 +71202,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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A1       M: 70 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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G092)          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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A1 --> (G092)           @SUM
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ -DELETE A1       M:224 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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G091)          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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A1 --> (G091)           @SUM
  strip regrid on F: A1 --> ENTERMED         @SUM
- 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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- pseudo  _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- -DELETE _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- -DELETE _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- regrid  A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- regrid  A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ found   A1       M:212 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1    1
+ regrid  A1       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
+ regrid  A1       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ -DELETE A1       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
+ dealloc  dynamic grid (G091)          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)
@@ -70371,29 +71239,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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A1       M: 74 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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G092)          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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A1 --> (G092)           @VAR
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ -DELETE A1       M:240 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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G091)          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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A1 --> (G091)           @VAR
  strip regrid on F: A1 --> ENTERMED         @VAR
- 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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- pseudo  _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- pseudo  _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- -DELETE _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    1
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F1PT
- -DELETE _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- regrid  A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- regrid  A1       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A1       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1   16
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ found   A1       M:212 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1    1
+ regrid  A1       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
+ regrid  A1       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ -DELETE A1       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1   16
+ dealloc  dynamic grid (G091)          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)
@@ -70417,35 +71277,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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A1       M: 70 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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- allocate dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- allocate dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      F2PT
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G101)          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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A2 --> (G101)           @AVE
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ -DELETE A1       M:224 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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
+ allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      F2PT
+ allocate dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G103)          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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A2 --> (G103)           @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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- pseudo  _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- -DELETE _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- -DELETE _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- regrid  A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- regrid  A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ 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 (G094)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ pseudo  _E       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
+ allocate dynamic grid (G108)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
+ pseudo  _F       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1   48
+ -DELETE _F       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1   48
+ dealloc  dynamic grid (G108)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
+ -DELETE _E       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ regrid  A2       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ regrid  A2       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ -DELETE A2       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ dealloc  dynamic grid (G103)          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)
@@ -70468,29 +71328,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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A2       M: 74 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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G101)          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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A2 --> (G101)           @SUM
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ -DELETE A2       M:240 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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G103)          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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A2 --> (G103)           @SUM
  strip regrid on F: A2 --> ENTERMED         @SUM
- 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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- pseudo  _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- pseudo  _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- -DELETE _F       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- -DELETE _E       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- regrid  A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- regrid  A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ found   A2       M:208 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   48
+ regrid  A2       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ regrid  A2       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ -DELETE A2       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ dealloc  dynamic grid (G103)          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)
@@ -70513,29 +71365,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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A2       M: 70 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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- allocate dynamic grid (G101)          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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- strip regrid on E: A2 --> (G101)           @VAR
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ -DELETE A2       M:224 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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ allocate dynamic grid (G103)          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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ strip regrid on E: A2 --> (G103)           @VAR
  strip regrid on F: A2 --> ENTERMED         @VAR
- 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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- pseudo  _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- allocate dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- -DELETE _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1   48
- dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    F2PT
- -DELETE _E       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- regrid  A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- regrid  A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A2       M: 70 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ found   A2       M:208 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   48
+ regrid  A2       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ regrid  A2       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ -DELETE A2       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ dealloc  dynamic grid (G103)          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)
@@ -70561,133 +71405,122 @@ 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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
- -DELETE A2       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   16
- -DELETE A2       M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   48
- -DELETE A2       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   48
- -DELETE A2       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N:    1   48
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      F2PT
- -DELETE A1       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1    1
- -DELETE A1       M: 64 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1    1
- -DELETE A1       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1    1
- dealloc  dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      F1PT
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   FAX4DAY
+ -DELETE A2       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   16
+ -DELETE A2       M:208 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N:    1   48
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      F2PT
+ -DELETE A1       M:212 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N:    1    1
+ dealloc  dynamic grid (G089)          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 (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- dealloc  dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- allocate dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- allocate dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G092)          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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A1 --> (G092)           @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 (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- pseudo  _E       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G087)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
- regrid  A1       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   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 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 (G089)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ dealloc  dynamic grid (G089)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ allocate dynamic grid (G089)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G091)          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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ strip regrid on E: A1 --> (G091)           @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 (G089)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ pseudo  _E       M:212 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N: -999 -999
+ dealloc  dynamic grid (G089)          NORMAL    NORMAL    NORMAL    NORMAL    E1PT      NORMAL
+ regrid  A1       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E1PT]
                         regrid: 1 delta on E at MAX
              SUBSET   : 2 points (E)
  1.1 / 1:     ....
  2.1 / 2:  2.50000
 list a2[ge=eoffset at max]
- -DELETE _E       M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A1       M: 54 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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- allocate dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G101)          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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A2 --> (G101)           @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 (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- pseudo  _E       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G092)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
- regrid  A2       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ -DELETE _E       M:212 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    1  N: -999 -999
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ -DELETE A1       M:240 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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ allocate dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ allocate dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G103)          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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ strip regrid on E: A2 --> (G103)           @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 (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ pseudo  _E       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
+ dealloc  dynamic grid (G091)          NORMAL    NORMAL    NORMAL    NORMAL    E2PT      NORMAL
+ regrid  A2       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E2PT]
                         regrid: 1 delta on E at MAX
              SUBSET   : 2 points (E)
  1.1 / 1:  1.50000
  2.1 / 2:  2.50000
 list a4[ge=eoffset at max]
- -DELETE _E       M: 54 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A2       M: 62 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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- allocate dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G096)          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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A4 --> (G096)           @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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- pseudo  _E       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- regrid  A4       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ -DELETE _E       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ -DELETE A2       M:224 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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
+ allocate dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
+ allocate dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G094)          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 (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ strip regrid on E: A4 --> (G094)           @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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
+ pseudo  _E       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
+ dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
+ regrid  A4       M:244 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E4PT]
                         regrid: 1 delta on E at MAX
              SUBSET   : 2 points (E)
  1.1 / 1:  1.50000
  2.1 / 2:  2.50000
 list a4[ge=eoffset at min]
- -DELETE _E       M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A4       M: 56 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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G096)          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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A4 --> (G096)           @MIN
- 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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- pseudo  _E       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- regrid  A4       M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ -DELETE _E       M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ -DELETE A4       M:244 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 (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G094)          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 (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ strip regrid on E: A4 --> (G094)           @MIN
+ found   A4       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
+ regrid  A4       M:244 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
+ dealloc  dynamic grid (G094)          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.50000
  2.1 / 2:  2.00000
 list a4[ge=eoffset at sum] ! 5+5.5+6+6.5=23
- -DELETE _E       M: 56 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A4       M: 50 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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- allocate dynamic grid (G096)          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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- strip regrid on E: A4 --> (G096)           @SUM
- 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 (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- pseudo  _E       M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G101)          NORMAL    NORMAL    NORMAL    NORMAL    E4PT      NORMAL
- regrid  A4       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ -DELETE A4       M:244 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 (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ allocate dynamic grid (G094)          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 (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ strip regrid on E: A4 --> (G094)           @SUM
+ found   A4       M:240 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    3  N: -999 -999
+ regrid  A4       M:244 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M:    1    2  N: -999 -999
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
              VARIABLE : _E[GE=E4PT]
                         regrid: 1 delta on E at SUM
              SUBSET   : 2 points (E)
@@ -70699,20 +71532,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
- -DELETE _E       M: 50 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
- -DELETE A4       M: 74 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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- allocate dynamic grid (G096)          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 (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    EOFFSET   NORMAL
+ -DELETE A4       M:244 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 (G094)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ allocate dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ allocate dynamic grid (G094)          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 (G094)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
+ pseudo  _F       M:244 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
+ dealloc  dynamic grid (G094)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
              VARIABLE : _F[GF=EDAY]
              SUBSET   : 5 points (FORECAST)
  01-JAN-1990 00 / 1:  32493.0
@@ -70722,8 +71554,8 @@ list afcst
  05-JAN-1990 00 / 5:  32497.0
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G096)
-    GRID (G096)
+ Last successful data access was on grid (G094)
+    GRID (G094)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
@@ -70732,21 +71564,18 @@ show grid
  normal    E
  EDAY      FORECAST             5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
 list afcst[gf=ehour at max]
- -DELETE _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
- dealloc  dynamic grid (G096)          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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
- dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
- allocate dynamic grid (G103)          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 (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
- strip regrid on F: AFCST --> (G103)           @MAX
- eval    AFCST    C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
- allocate dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- pseudo  _F       M: 74 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
- dealloc  dynamic grid (G096)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EDAY
- regrid  AFCST    M: 46 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
- dealloc  dynamic grid (G103)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
+ -DELETE _F       M:244 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
+ dealloc  dynamic grid (G094)          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 (G108)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
+ dealloc  dynamic grid (G108)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
+ allocate dynamic grid (G108)          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 (G108)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
+ strip regrid on F: AFCST --> (G108)           @MAX
+ found   AFCST    M:224 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
+ regrid  AFCST    M:244 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N:    1    5
+ dealloc  dynamic grid (G108)          NORMAL    NORMAL    NORMAL    NORMAL    NORMAL    EHOUR
              VARIABLE : _F[GF=EDAY]
                         regrid: 24 hour on F at MAX
              SUBSET   : 5 points (FORECAST)
@@ -70757,8 +71586,8 @@ list afcst[gf=ehour at max]
  05-JAN-1990 00 / 5:  32497.0
 show grid
  Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G103)
-    GRID (G103)
+ Last successful data access was on grid (G108)
+    GRID (G108)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
@@ -70770,8 +71599,10 @@ show grid
 set mode/last diag
 set mode/last calendar
  
-GO bn_reset
+GO bn_reset bn_aggregate_e
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_aggregate_e
 GO bn_aggregate_e
 ! bn_aggregate_e.jnl
 ! using the DEFINE DATA/AGGREGATE/E command
@@ -70796,25 +71627,26 @@ 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 (G103)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
+ 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 (G108)          COADSX116_COADSY52_6NORMAL    TIME13    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
+ 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]
- strip aggregate gathering SST on E axis:     1     4 dset:   5
- reading SST      M:120 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering SST on E axis:     1     1 dset:   1
- -DELETE SST      M:120 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:120 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering SST on E axis:     2     2 dset:   3
- -DELETE SST      M:120 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:120 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering SST on E axis:     3     3 dset:   2
- -DELETE SST      M:120 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:120 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering SST on E axis:     4     4 dset:   4
- -DELETE SST      M:120 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ strip aggregate gathering SST on E axis:        1        4 dset:   5
+ reading SST      M:248 dset:   1 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering SST on E axis:        1        1 dset:   1
+ -DELETE SST      M:248 dset:   1 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:248 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering SST on E axis:        2        2 dset:   3
+ -DELETE SST      M:248 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:248 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering SST on E axis:        3        3 dset:   2
+ -DELETE SST      M:248 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:248 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering SST on E axis:        4        4 dset:   4
+ -DELETE SST      M:248 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
  doing --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
+ final --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
              VARIABLE : SST_IN (Deg C)
              DATA SET : Ensemble series of 4 datasets patterned on ens1
              FILENAME : fourfiles
@@ -70829,23 +71661,27 @@ list/i=3 sst[T=@ave]
  4   / 4:  114.051  113.765  111.568  109.826  106.903  102.245     ....     ....     ....
  
 show memory/all  ! show memory-resident variables before canceling dataset
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 540 words
+    Current cache: 504 words
 all data in memory:
- SST[D=fourfiles]                  YE    mr:120  blk1:1  nblk:1
-    3  /106W           1  /12N          ...  / ...         ...  /01-JAN 00:45   1  /0.5          ...  / ...
-    3  /104W           9  /30N          ...  / ...         ...  /31-DEC 06:34   4  /4.5          ...  / ...
+ SST[D=fourfiles]                  YE    mr:248 size:72
+         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:118  blk1:2  nblk:1
-    3  /106W           1  /12N          ...  / ...           1  /01-JAN 00:45   1  /0.5          ...  / ...
-    3  /104W           9  /30N          ...  / ...          12  /31-DEC 06:34   4  /4.5          ...  / ...
+ SST[D=fourfiles]                  YTE   mr:242 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              ... / ...
  
 cancel data fourfiles
- dealloc  dynamic grid (G103)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
+ dealloc  dynamic grid (G108)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
  canceling dset fourfiles
- -DELETE SST      M:118 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M:    1    4  N: -999 -999
- -DELETE SST      M:120 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L: -999 -999  M:    1    4  N: -999 -999
+ -DELETE SST      M:242 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12  M:    1    4  N: -999 -999
+ -DELETE SST      M:248 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:   -999   -999  M:    1    4  N: -999 -999
 show memory/all  ! show memory-resident variables after  canceling dataset
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 540 words
+    Current cache: 0 words
 all data in memory:
  
 ! 12/15 now do again adding COADS to de-align toe dset #s from the sequence #s
@@ -70861,8 +71697,8 @@ define data/agg/E/hide fourfiles = ens1, ens3, ens2, ens4
 show data
      currently SET data sets:
     1> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
     6> fourfiles  (default)  Ensemble aggregation
  name     title                             I         J         K         L         M         N
@@ -70885,12 +71721,12 @@ let/d=ens3 airt = sst + 1
 let/d=ens4 airt = sst + 1
  
 ENSEMBLE fourfiles = ens1, ens3, ens2, ens4
- getgrid AIRT     C:  5 dset:   4 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
- getgrid AIRT     C:  5 dset:   3 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
- getgrid AIRT     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 GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
+ getgrid AIRT     C:  5 dset:   4 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13
+ getgrid AIRT     C:  5 dset:   3 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13
+ getgrid AIRT     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 GOH1            COADSX116_COADSY52_6NORMAL    TIME13
 show data fourfiles
      currently SET data sets:
     6> fourfiles  (default)  Ensemble aggregation
@@ -70900,34 +71736,35 @@ 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 (G092)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
+ 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 (G091)          COADSX116_COADSY52_6NORMAL    TIME13    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
+ 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]
- strip aggregate gathering AIRT on E axis:     1     4 dset:   6
- reading AIRT     M:120 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     1     1 dset:   2
- -DELETE AIRT     M:120 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- eval    AIRT     C:  9 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:120 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     2     2 dset:   4
- -DELETE AIRT     M:112 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- eval    AIRT     C:  9 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:112 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     3     3 dset:   3
- -DELETE AIRT     M:110 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- eval    AIRT     C:  9 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:110 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:114 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     4     4 dset:   5
- -DELETE AIRT     M:106 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ strip aggregate gathering AIRT on E axis:        1        4 dset:   6
+ reading AIRT     M:248 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering AIRT on E axis:        1        1 dset:   2
+ -DELETE AIRT     M:248 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ eval    AIRT     C:  9 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:248 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:236 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:236 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing aggregate gathering AIRT on E axis:        2        2 dset:   4
+ -DELETE AIRT     M:234 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ eval    AIRT     C:  9 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:234 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:236 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:236 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing aggregate gathering AIRT on E axis:        3        3 dset:   3
+ -DELETE AIRT     M:232 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ eval    AIRT     C:  9 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:232 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:236 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:236 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing aggregate gathering AIRT on E axis:        4        4 dset:   5
+ -DELETE AIRT     M:228 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
  doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
+ final --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
              VARIABLE : AIR TEMPERATURE (DEG C)
              DATA SET : Ensemble series of 4 datasets patterned on ens1
              FILENAME : fourfiles
@@ -70943,10 +71780,10 @@ list/i=3 airt[T=@ave]
  
 ! create an ensemble where one member is missing
 ENSEMBLE fourfiles_gap = ens1, -, ens3, ens4
- getgrid AIRT     C:  5 dset:   4 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
- getgrid AIRT     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 GOH1            COADSX116_COADSY52_6NORMAL    TIME13    NORMAL    NORMAL
+ getgrid AIRT     C:  5 dset:   4 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME13
+ getgrid AIRT     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 GOH1            COADSX116_COADSY52_6NORMAL    TIME13
 show data/files fourfiles_gap
      currently SET data sets:
     7> fourfiles_gap  (default)  Ensemble aggregation
@@ -70954,37 +71791,38 @@ show data/files fourfiles_gap
  SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
  AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      1:4       ...
  
-          Aggregated datasets:
-      1: ./ens1.nc
-      2: (dummy)
-      3: ./ens3.nc
-      4: ./ens4.nc
+          Member datasets:
+      7.1: ./ens1.nc
+      7.2: (dummy)
+      7.3: ./ens3.nc
+      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 (G092)          COADSX116_COADSY52_6NORMAL    TIME13    ENSEMBLE  NORMAL
+ 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 (G091)          COADSX116_COADSY52_6NORMAL    TIME13    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
+ 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]
- strip aggregate gathering AIRT on E axis:     1     4 dset:   7
- reading AIRT     M:114 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     1     1 dset:   2
- -DELETE AIRT     M:114 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- dummy AIRT     M:114 dset: 401 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     2     2 dset: 401
- -DELETE AIRT     M:114 dset: 401 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- eval    AIRT     C:  9 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:114 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:102 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:102 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     3     3 dset:   4
- -DELETE AIRT     M: 98 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- eval    AIRT     C:  9 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M: 98 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:102 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:102 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     4     4 dset:   5
- -DELETE AIRT     M: 96 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ strip aggregate gathering AIRT on E axis:        1        4 dset:   7
+ reading AIRT     M:236 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering AIRT on E axis:        1        1 dset:   2
+ -DELETE AIRT     M:236 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ dummy AIRT     M:236 dset:5001 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering AIRT on E axis:        2        2 dset:5001
+ -DELETE AIRT     M:236 dset:5001 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ eval    AIRT     C:  9 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ found   SST      M:248 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:236 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:236 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing aggregate gathering AIRT on E axis:        3        3 dset:   4
+ -DELETE AIRT     M:220 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ eval    AIRT     C:  9 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ found   SST      M:232 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:220 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:220 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing aggregate gathering AIRT on E axis:        4        4 dset:   5
+ -DELETE AIRT     M:236 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
  doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=7]
+ final --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=7]
              VARIABLE : AIR TEMPERATURE (DEG C)
              DATA SET : Ensemble series of 4 datasets patterned on ens1
              FILENAME : fourfiles_gap
@@ -71040,15 +71878,15 @@ let/d=2/units="`vin,return=units`"/title="`vin,return=title`" \
 show data
      currently SET data sets:
     1> ./coads_uw.nc
- name     title                             I         J         K         L         M         N
- UWND     ZONAL WIND                       1:30      1:30      ...       1:12      ...       ...
- VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      ...       ...
- SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12
+ VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12
+ SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12
  
     2> ./navy_uw.nc  (default)
- name     title                             I         J         K         L         M         N
- UIN      ZONAL WIND                       1:30      1:30      ...       1:30      ...       ...
- VIN      MERIDIONAL WIND                  1:30      1:30      ...       1:30      ...       ...
+ name     title                             I         J         K         L
+ UIN      ZONAL WIND                       1:30      1:30      ...       1:30
+ VIN      MERIDIONAL WIND                  1:30      1:30      ...       1:30
  ------------------------------
  VWND[D=navy_uw] = VIN[D=2,GXY=VWND[D=1],GT=VWND[D=1]@MOD]
  UWND[D=navy_uw] = UIN[D=2,GXY=UWND[D=1],GT=UWND[D=1]@MOD]
@@ -71142,7 +71980,7 @@ show command define
  DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+         /EDGES/CALENDAR/BOUNDS/QUIET/MONTHLY/LIKE
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
  DEFINE ALIAS
  DEFINE SYMBOL
@@ -71158,12 +71996,12 @@ show command show
  SHOW EXPRSION/ALL
  SHOW LIST/ALL
  SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
-       /HIDDEN
+       /HIDDEN/MEMBERS
  SHOW MODE/ALL
  SHOW MOVIE/ALL
  SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
  SHOW COMMANDS/ALL/BRIEF
- SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+ SHOW MEMORY/ALL/DIAGNOST/TEMPORY/PERMANT/FREE
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
  SHOW VIEWPORT/ALL
  SHOW TRANFORM/ALL
@@ -71256,20 +72094,20 @@ show data/brief/files
      currently SET data sets:
     1> ./coads_climatology.cdf
     6> fourfiles     Ensemble aggregation
-          Aggregated datasets:
-      1: ./ens1.nc
-      2: ./ens2.nc
-      3: ./ens3.nc
-      4: ./ens4.nc
+          Member datasets:
+      6.1: ./ens1.nc
+      6.2: ./ens2.nc
+      6.3: ./ens3.nc
+      6.4: ./ens4.nc
     7> some     Ensemble aggregation
-          Aggregated datasets:
-      1: ./ens1.nc
-      2: ./ens2.nc
+          Member datasets:
+      7.1: ./ens1.nc
+      7.2: ./ens2.nc
     8> more  (default)  Ensemble aggregation
-          Aggregated datasets:
-      1: ./ens2.nc
-      2: ./ens3.nc
-      3: ./ens4.nc
+          Member datasets:
+      8.1: ./ens2.nc
+      8.2: ./ens3.nc
+      8.3: ./ens4.nc
  
 ! Cancel a member of all the ensembles.  All the ensembles get deleted.
 cancel data ens2
@@ -71278,8 +72116,10 @@ show data/brief
     1> ./coads_climatology.cdf  (default)
  
  
-GO bn_reset
+GO bn_reset bn_6d_lab_mode
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_6d_lab_mode
 GO bn_6d_lab_mode
 ! bn_6d_lab_mode.jnl
 !
@@ -71293,15 +72133,15 @@ set mode 6d_lab  ! this is the default setting
 show data
      currently SET data sets:
     1> ./gt4d011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
+ SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
+ U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
+ V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
+ W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
+ TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
+ TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
+ PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  
 cancel mode 6d_lab
 show data
@@ -71328,8 +72168,6 @@ show grid temp
  PSYT1     LATITUDE           100 i   28.836S              48.568N             full
  PSZT2     DEPTH (m)           27 i-  5                    3824                full
  TIME14    TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
- normal    E
- normal    F
 cancel mode 6d_lab
 show grid temp
     GRID PS3DT21
@@ -71381,14 +72219,15 @@ stat temp
 set mode diag
 set mode 6d_lab
 list/L=1:8 taux[x=@ave,y=@ave]
- dealloc  dynamic grid PS3DT21         PSXT      PSYT1     PSZT2     TIME14    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 PS2DU2          PSXU      PSYU      NORMAL    TIME14    NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT21         PSXT      PSYT1     PSZT2     TIME14
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME14
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1  160  J:    1  100  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1    160  J:    1  100  K: -999 -999  L:      1      8
  strip --> TAUX[Y=28.8361S:51.4321N at AV4,D=1]
- reading TAUX     M:104 dset:   1 I:   91  108  J:   35   55  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
+ reading TAUX     M:226 dset:   1 I:     91    108  J:   35   55  K: -999 -999  L:      1      8
  doing --> TAUX[Y=3.5S:3.5N at AV4,D=1]
+ final --> TAUX[Y=3.5S:3.5N at AV4,D=1]
              VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
              FILENAME : gt4d011.cdf
              SUBSET   : 8 points (TIME)
@@ -71405,12 +72244,12 @@ list/L=1:8 taux[x=@ave,y=@ave]
 cancel mode 6d_lab
 list/L=1:8 taux[x=@sum,y=@sum]
  dealloc  dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME14
- getgrid EX#1     C:  5 dset:   1 I:    1    1  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 PS2DU2          PSXU      PSYU      NORMAL    TIME14
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1  160  J:    1  100  K: -999 -999  L:    1    8
+ eval    EX#1     C:  5 dset:   1 I:      1    160  J:    1  100  K: -999 -999  L:      1      8
  strip --> TAUX[Y=28.8361S:51.4321N at SM4,D=1]
- reading TAUX     M: 94 dset:   1 I:   91  108  J:   35   55  K: -999 -999  L:    1    8
+ found   TAUX     M:226 dset:   1 I:     91    108  J:   35   55  K: -999 -999  L:      1      8
  doing --> TAUX[Y=3.5S:3.5N at SM4,D=1]
              VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
              FILENAME : gt4d011.cdf
@@ -71432,8 +72271,10 @@ set mode 6d_lab
  
  
 ! *********** v6.82 Additions ***********
-GO bn_reset
+GO bn_reset bn682_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn682_bug_fixes
 GO bn682_bug_fixes
 ! bn682_bug_fixes.jnl
 ! test various fixes that went into version 6.82
@@ -71441,6 +72282,7 @@ GO bn682_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err681_dims_direction
 ! err681_dims_direction.jnl
 ! ticket 1955: Code still existed that determined axis direction
@@ -71468,10 +72310,10 @@ use dims_not_coord
 sh dat
      currently SET data sets:
     1> ./dims_not_coord.nc  (default)
- name     title                             I         J         K         L         M         N
- U        zonal current                    1:4       1:7       1:1       ...       ...       ...
- LON_C    uv longitude                     1:4       1:7       ...       ...       ...       ...
- LAT_C    uv latitude                      1:4       1:7       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ U        zonal current                    1:4       1:7       1:1       ...
+ LON_C    uv longitude                     1:4       1:7       ...       ...
+ LAT_C    uv latitude                      1:4       1:7       ...       ...
  
 sho grid lon_c
     GRID GOS2
@@ -71480,15 +72322,15 @@ sho grid lon_c
  TAU1      Y                    7 r   1                    7                   full
  normal    Z
  normal    T
- normal    E
- normal    F
  
  
 ! *********** v6.83 Additions ***********
 !  (was released as v6.84)
  
-GO bn_reset
+GO bn_reset bn683_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn683_bug_fixes
 GO bn683_bug_fixes
 ! bn683_bug_fixes.jnl
 ! test various fixes that went into version 6.83
@@ -71496,6 +72338,7 @@ GO bn683_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_shrink_axlab
 ! err682_shrink_axlab.jnl
 ! See ticket 1958. Scripts may want the axis labels to
@@ -71523,6 +72366,7 @@ set mode/last shrink_ylab
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_xact_high_prec
 ! err682_xact_high_prec.jnl
 ! based on an example from the Users List,
@@ -71530,6 +72374,8 @@ GO err682_xact_high_prec
  
 ! shows that the @XACT regridding in double-precision Ferret is broken.
  
+! 3/17 *sh* - broke after change to RESHAPE in GCF_IMPOSE_AXES
+!           - fixed it by cleaning up the definition of var_regrid
  
 Let time = {\
  22585.3295833333,\
@@ -71546,11 +72392,14 @@ Let time = {\
 Define Axis /T /From /T0=1-JAN-1950 /Units=days my_axis = time
  
 Let fake_var = T[GT=my_axis]
-Let var = RANDU( fake_var )
-Let var_regrid = RESHAPE( var, fake_var )
+! this was the definition prior to 3/17
+!Let var = RANDU( fake_var )
+!Let var_regrid = RESHAPE( var, fake_var )
+Let var_regrid = RANDU( fake_var )   ! new definition
+ 
  
 List /T="2-nov-2011 07:54":"2-nov-2011 08:04" var_regrid
-             VARIABLE : RESHAPE( VAR, FAKE_VAR )
+             VARIABLE : RANDU( FAKE_VAR )
              SUBSET   : 10 points (TIME)
  02-NOV-2011 07:54:36 /  1:  0.625140
  02-NOV-2011 07:55:36 /  2:  0.220931
@@ -71608,6 +72457,7 @@ List /T="2-nov-2011 07:54:30":"2-nov-2011 07:54:50" var_sec
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_if_yes_exit
 ! err682_if_yes_exit.jnl
 ! Ticket 1965
@@ -71624,6 +72474,7 @@ if `test` then exit
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_use_no_quotes
 ! err682_use_no_quotes.jnl
 ! See ticket 1974 - on 64-bit machines, this statement causes a crash.
@@ -71637,6 +72488,7 @@ CANCEL MODE ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_axis_no_clue
 ! err682_axis_no_clue.jnl
 ! See ticket 1975. The axis sax is intended to be
@@ -71648,12 +72500,13 @@ use xsz.nc
 sh dat
      currently SET data sets:
     1> ./xsz.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:5       1:7       1:3       ...       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:5       1:7       1:3       ...
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_grid_merge
 ! err682_grid_merge.jnl
 ! Bug 1972. When merging contexts, the calendar time-axis
@@ -71700,6 +72553,7 @@ list b[T=1-JAN-1960:1-JAN-1961]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_scale_no_offset
 ! err682_scale_no_offset.jnl
 ! See ticket 1980 and the report on the Ferret list at
@@ -71735,6 +72589,7 @@ say `sst_rms[x=@nbd,y=@nbd]`  SHOULD BE 30
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_append_packed
 ! err682_append_packed.jnl
 ! See ticket 2004. Write packed variable with scale attributes
@@ -71775,8 +72630,10 @@ list temp  ! values should match those above.
  
 set mode/last upcase_output
  
-GO bn_reset
+GO bn_reset bn_outtype
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_outtype
 GO bn_outtype
 ! bn_outtype
 ! Tests of output-type control:
@@ -71810,7 +72667,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -71863,7 +72720,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -71905,7 +72762,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -71947,7 +72804,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -71980,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        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72014,7 +72871,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72077,7 +72934,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72125,7 +72982,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72182,7 +73039,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72220,7 +73077,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72258,7 +73115,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72296,7 +73153,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72330,7 +73187,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72364,8 +73221,10 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
 ! Go back to default setting.
 can list/outtype
  
-GO bn_reset
+GO bn_reset bn_ribbon_plot
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ribbon_plot
 GO bn_ribbon_plot
 ! bn_ribbon_plot.jnl
 ! Test color-line-by variable style of plots
@@ -72510,8 +73369,10 @@ RIBBON/vs/over/nolab/thick=3/sym=20/key/set xpts, ypts, var
 ppl shakey,1,0
 ppl ribbon/over
  
-GO bn_reset
+GO bn_reset bn_descr_4digit
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_descr_4digit
 GO bn_descr_4digit
  ! bn_descr_4digit.jnl
  ! See ticket 1969: step files have 3- or 4-digit extensions
@@ -72521,8 +73382,8 @@ use coads_clim_4digit.des
 sh dat
      currently SET data sets:
     1> ./coads_clim_4digit.des  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:4       1:4       ...       1:6       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:4       1:4       ...       1:6
  
 list/x=180/y=0 sst
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
@@ -72538,8 +73399,10 @@ list/x=180/y=0 sst
  17-MAY-1900 / 5:  28.41
  17-JUN-1900 / 6:  28.23
  
-GO bn_reset
+GO bn_reset bn_axis_outtype
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_outtype
 GO bn_axis_outtype
 ! bn_axis_outtype.jnl
 !  SET AXIS/OUTTYPE
@@ -72562,7 +73425,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
@@ -72596,7 +73459,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
@@ -72640,7 +73503,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
@@ -72681,7 +73544,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -72707,7 +73570,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -72733,7 +73596,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -72774,8 +73637,10 @@ save/clobber/file=mytype.nc my_data
 cancel mode ignore
  
  
-GO bn_reset
+GO bn_reset bn_axis_nonmonotonic
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_axis_nonmonotonic
 GO bn_axis_nonmonotonic
 ! bn_axis_nonmonotonic.jnl
 ! bn_define_axis doesnt test the case where the varible is not monotonic
@@ -72789,8 +73654,10 @@ define axis/t/units=days tax = tvar
  
 cancel mode ignore
  
-GO bn_reset
+GO bn_reset bn_vec_mod
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_vec_mod
 GO bn_vec_mod
 ! bn_vec_mod.jnl
 ! /MODULO qualifier for the vector command.
@@ -72814,8 +73681,10 @@ vec/MOD/HLIM=-180:180 u,fakev,geolon_c,geolat_c
 can view
  
 ! *********** v6.85 Additions ***********
-GO bn_reset
+GO bn_reset bn685_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn685_bug_fixes
 GO bn685_bug_fixes
 ! bn685_bug_fixes.jnl
 ! test various fixes that went into version 6.85
@@ -72823,6 +73692,7 @@ GO bn685_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_label_quotes
 ! err684_label_quotes.jnl
 ! See ticket 1298.
@@ -72850,6 +73720,7 @@ label 4.5 .5 0 0 .3 "'hello'"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_context_shape
 ! when limits are omitted with a compressing transformation the grave
 ! accent R=SHAPE erroneously includes the corresponding axis in the shape
@@ -72880,6 +73751,7 @@ XY
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_tax_fcns
 !err684_tax_fcns.jnl
 ! See ticket 2043, bug in workaround for single-precision arguments
@@ -72968,6 +73840,7 @@ GO err684_tax_fcns
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_save_subset
 ! err684_bug_save_subset
 ! see ticke 2064, precision in internal comparison of coordinate data
@@ -72980,6 +73853,7 @@ save/clobber/file=aa.nc/i=5:15 sh
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_save_subset
 ! err684_bug_save_subset
 ! see ticke 2064, precision in internal comparison of coordinate data
@@ -72992,6 +73866,7 @@ save/clobber/file=aa.nc/i=5:15 sh
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_line_plot_zero
 ! err684_line_plot_zero.jnl
 ! plot all-zero variable gave blank plot.
@@ -73006,6 +73881,7 @@ YAXIS_MAX = "1.00000000"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_delimited_precision
 ! err684_delimited_precision.jnl
 ! 5/2013 Fixing bug 2066
@@ -73040,10 +73916,10 @@ set data/ez/format=delim/del=" "/var="day,lon,lat,tim"/type="numeric,longitude,l
 list/prec=10 day, lon, lat, tim
              DATA SET: ./delim_prec.dat
              X: 0.5 to 4.5
- Column  1: DAY
- Column  2: LON is LON (degrees_east)(Longitude)
- Column  3: LAT is LAT (degrees_north)(Latitude)
- Column  4: TIM is TIM (hours)(Time of day)
+ Column  1: DAY is day
+ Column  2: LON is lon (degrees_east)(Longitude)
+ Column  3: LAT is lat (degrees_north)(Latitude)
+ Column  4: TIM is tim (hours)(Time of day)
                  DAY       LON          LAT            TIM
 1   / 1:  734654.0000  330.1234500  42.00001000  2.777777806E-04
 2   / 2:  734654.0104  330.1234600  42.00004000  2.777777861E-04
@@ -73053,6 +73929,7 @@ list/prec=10 day, lon, lat, tim
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err6842_context_shape
 ! err6842_context_shape.jnl
 ! 5/2013 acm
@@ -73105,6 +73982,7 @@ XYT
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_evnt_z
 ! err684_evnt_z.jnl
 ! see ticket 2054
@@ -73145,6 +74023,7 @@ list my_var, my_event
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_save_expression
 ! err684_save_expression.jnl
 ! Bug 2076. If we write out an expression that has not been defined
@@ -73174,13 +74053,13 @@ variables:
 		A:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
  TIME10 = 366, 1096.485, 1826.97 ;
 
- A = -0.0994369294620974, -0.0415768591396031, 0.141480238198142 ;
+ A = -0.0994369294620867, -0.0415768591395924, 0.141480238198152 ;
 }
  
 save/clob/file=aa.nc sst[x=@ave,y=@ave]-sst[x=@ave,y=@ave,t=@ave]
@@ -73203,13 +74082,13 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
  TIME10 = 366, 1096.485, 1826.97 ;
 
- E410 = -0.0994369294620974, -0.0415768591396031, 0.141480238198142 ;
+ E410 = -0.0994369294620867, -0.0415768591395924, 0.141480238198152 ;
 }
  
 ! Double check the missing-value matches what is written.
@@ -73254,7 +74133,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73289,6 +74168,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_degC_axlab
 ! err684_degC_axlab.jnl
 ! ACM 6/2013
@@ -73308,6 +74188,7 @@ set mode/last logo
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_null_stringwrite
 ! err684_null_stringwrite.jnl
 ! 18-Jun-2013 ACM
@@ -73330,11 +74211,12 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_FillValue_xml
 ! err684_FillValue_xml.jnl
 ! ACM 6/2013
 !
-! See the dataset at http://ferret.pmel.noaa.gov/thredds/dodsC/woa09_1deg_monthly
+! See the dataset at http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/woa09_1deg_monthly
 ! where the "number of" variables have  _FillValues attributes = -2147483647
 ! This value was being written to the xml headers as a float, without enough precision.
 ! See las ticket #761, fixes in show_data_set_vars_xml.F
@@ -73355,7 +74237,7 @@ sh dat/var/xml
    <value><![CDATA[Number of O2 Utilization Observations]]></value>
 </attribute>
 <attribute name="_FillValue" type="float">
-   <value> -2147483647.</value>
+   <value>-2147483647.</value>
 </attribute>
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
@@ -73408,6 +74290,7 @@ sh dat/var/xml
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_axticlab
 ! err684_axticlab
 ! 7/10/2013 *acm
@@ -73431,6 +74314,7 @@ cancel mode meta
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_dotstart
 ! err684_dotstart.jnl
 ! 12-Jul-2013 ACM
@@ -73457,6 +74341,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_vfine_to_coarse
  ! err684_vfine_to_coarse
  ! see ticket 2070.
@@ -73586,6 +74471,7 @@ list v eq v_coarse[gf=v at ave]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_repeated_coordindates
 ! err685_repeated_coordindates.jnl
 !  The NOTE about repeated axis coordaintes reported the wrong index location.
@@ -73595,6 +74481,7 @@ use latestOb.nc
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_packed_output
 ! err684_packed_output.jnl
 ! See ticket 2089
@@ -73635,6 +74522,7 @@ list/i=1:3 sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_string_dim_name
 ! err685_string_dim_name.jnl
 ! Ticket 2091. If the string variable shares its dimension name,
@@ -73658,6 +74546,7 @@ list ..varnames
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_define_grid
 ! err684_define_grid.jnl
 ! 25-Oct-2013 ACM
@@ -73672,8 +74561,10 @@ 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
  
  
-GO bn_reset
+GO bn_reset bn_dsg_e_x
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dsg_e_x
 GO bn_dsg_e_x
 ! bn_dsg_e.jnl
 !
@@ -73687,7 +74578,7 @@ use dsg.nc
 sh dat
      currently SET data sets:
     1> ./dsg.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  ROWSIZE  number of obs for this profile   ...       ...       ...       ...       1:3       ...
  PROFILE  profile ID: Cruise and Station   ...       ...       ...       ...       1:3       ...
  TIME     time                             ...       ...       ...       ...       1:3       ...
@@ -73695,8 +74586,8 @@ sh dat
  LONGITUDE
           station longitude                ...       ...       ...       ...       1:3       ...
  POT_TEMP_DEGC
-          pot_temp_degc                    1:34      ...       ...       ...       ...       ...
- SAL      sal                              1:34      ...       ...       ...       ...       ...
+          pot_temp_degc                    1:34      ...       ...       ...
+ SAL      sal                              1:34      ...       ...       ...
  
 sh att profile
      attributes for dataset: ./dsg.nc
@@ -73721,8 +74612,6 @@ sh grid sal
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! This file from the datset "West Coast Carbon cruises" in our
 ! example erdadp, has the cf_role attribute on a coordinate variable.
@@ -73734,15 +74623,15 @@ use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
 sh dat 2
      currently SET data sets:
     2> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  PROF     Prof                             ...       ...       ...       ...       1:21      ...
  TIME     Time                             ...       ...       ...       ...       1:21      ...
  LATITUDE Latitude                         ...       ...       ...       ...       1:21      ...
  LONGITUDE
           Longitude                        ...       ...       ...       ...       1:21      ...
  ROWSIZE  Number of Observations for this  ...       ...       ...       ...       1:21      ...
- PRESS_DB PRESS_DB                         1:373     ...       ...       ...       ...       ...
- PCO2     PCO2                             1:373     ...       ...       ...       ...       ...
+ PRESS_DB PRESS_DB                         1:373     ...       ...       ...
+ PCO2     PCO2                             1:373     ...       ...       ...
  
 sh att (profile)
      attributes for dataset: ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
@@ -73769,11 +74658,11 @@ sh grid pco2
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
-GO bn_reset
+GO bn_reset bn_nco_append
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_nco_append
 GO bn_nco_append
 ! bn_nco_append.jnl
 ! 5/2013 add a test appending files with ncks
@@ -73789,14 +74678,14 @@ use z2
 sh dat
      currently SET data sets:
     1> ./z1.nc
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  DDAT_ORIG
-          DDAT[GZ=ZAXIS_ORIG at ASN]          ...       ...       1:5       ...       ...       ...
+          DDAT[GZ=ZAXIS_ORIG at ASN]          ...       ...       1:5       ...
  
     2> ./z2.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  CYCLE_ORIG
-          CYCLE[GZ=ZAXIS_ORIG at ASN]         ...       ...       1:5       ...       ...       ...
+          CYCLE[GZ=ZAXIS_ORIG at ASN]         ...       ...       1:5       ...
  
  
 ! Write a file to be appended to and append variable in z1.nc to the file.
@@ -73823,14 +74712,16 @@ variables:
 		DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
 
 // global attributes:
-		:history = "Wed Jun 15 12:07:03 2016: ncks -h -A -h z1.nc append_to_this.nc\n",
-			"FERRET V7 (beta/dbg) 15-Jun-16" ;
+		: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" ;
 		:Conventions = "CF-1.6" ;
 		:NCO = "4.4.6" ;
 }
  
-GO bn_reset
+GO bn_reset bn_nobounds
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_nobounds
 GO bn_nobounds
 ! bn_nobounds.jnl
 ! The SAVE/NOBOUNDS qualifier causes bounds never to be written
@@ -73858,7 +74749,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73889,7 +74780,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -73904,8 +74795,8 @@ use gappy_bounds.nc
 sh dat
      currently SET data sets:
     1> ./gappy_bounds.nc  (default)
- name     title                             I         J         K         L         M         N
- A        SST[X=150:180 at AVE,Y=-10:0 at AVE]   ...       ...       ...       1:6       ...       ...
+ name     title                             I         J         K         L
+ A        SST[X=150:180 at AVE,Y=-10:0 at AVE]   ...       ...       ...       1:6
  
  
 ! See the bounds attribute on the t axis
@@ -73952,7 +74843,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -73980,13 +74871,15 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
  
-GO bn_reset
+GO bn_reset bn_write_integer_att
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_write_integer_att
 GO bn_write_integer_att
 ! bn_write_integer_att.jnl
 !  ACM 6/2013
@@ -74019,8 +74912,10 @@ sp ncdump a.nc | grep numberOfObservations
  
  
  
-GO bn_reset
+GO bn_reset bn_descriptor_mc
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_descriptor_mc
 GO bn_descriptor_mc
 ! bn_descriptor_mc.jnl
 ! 7/2013 ACM
@@ -74057,8 +74952,10 @@ list /x=300/y=10 sst
  16-MAY-0000 / 3:  27.39
  16-JUN-0000 / 4:  27.65
  
-GO bn_reset
+GO bn_reset bn_plot_color_only
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_color_only
 GO bn_plot_color_only
 ! bn_plot_color_only.jnl
 ! 9/20/2013 ACM
@@ -74135,8 +75032,10 @@ set mode/last ignore
  
  
  
-GO bn_reset
+GO bn_reset bn_vtree
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_vtree
 GO bn_vtree
 ! bn_tree.jnl
  
@@ -75295,8 +76194,10 @@ vtree=all tempz4
  
  
 ! *********** v6.86 Additions ***********
-GO bn_reset
+GO bn_reset bn686_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn686_bug_fixes
 GO bn686_bug_fixes
 ! bn686_bug_fixes
 ! test various fixes that went into version 6.86
@@ -75304,6 +76205,7 @@ GO bn686_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_ribbon_by_val
 ! err685_ribbon_by_val.jnl
 ! 11/21/2013
@@ -75319,6 +76221,7 @@ plot/vs/line/thick/ribbon/MISS=black/PAL=ocean_temp xpts, ypts, fpts
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_ppl_palette
 ! err685_ppl_palette.jnl
 ! Further fix for ticket 2049. If the palette or pattern file
@@ -75348,6 +76251,7 @@ pattern solid
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_show_grid_e
 ! err685_show_grid_e.jnl
 ! See ticket 2122
@@ -75414,6 +76318,7 @@ sh grid /f gensy
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_lowercaseAxis
 ! err685_lowercaseAxis.jnl
 ! Ticket  2126
@@ -75424,9 +76329,9 @@ use lowercaseTime.nc
 sh dat
      currently SET data sets:
     1> ./lowercaseTime.nc  (default)
- name     title                             I         J         K         L         M         N
- AA                                        ...       ...       ...       1:15      ...       ...
- BB                                        ...       ...       ...       1:8       ...       ...
+ name     title                             I         J         K         L
+ AA                                        ...       ...       ...       1:15
+ BB                                        ...       ...       ...       1:8
  
 ! This axis has uppercase in the file
 set axis/t0=1-jan-2001/units=days uppercasetime
@@ -75444,8 +76349,6 @@ show grid bb
  normal    Y
  normal    Z
  UPPERCASETIME TIME             8 r   02-JAN-2001 00:00    09-JAN-2001 00:00   full
- normal    E
- normal    F
  
 ! This variable has axis time, lowercase in the file
 sh grid aa
@@ -75455,8 +76358,6 @@ sh grid aa
  normal    Y
  normal    Z
  TIME17    T                   15 r   1                    15                  full
- normal    E
- normal    F
 set axis/t0=1-jan-2001/units=days time
  
 ! showed no output
@@ -75483,6 +76384,7 @@ list/L=1:5 aa
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_redefine_uvar_att
 ! err685_redefine_uvar_att.jnl
 ! ticket 2127 Redefine an attribute for a
@@ -75495,6 +76397,7 @@ define att/type=STRING  a.ival = 99
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_use_no_extension
 ! Ticket 2128: if no extension, we should try .cdf, .nc, .des
 !  but .des was not being tried.
@@ -75510,8 +76413,8 @@ use duplicate
 sh dat
      currently SET data sets:
     1> ./duplicate.nc  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:1       1:10      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:1       1:10      ...       1:3
  
  
 set mode ignore
@@ -75531,6 +76434,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_samplexy
 ! err685_samplexy.jnl
 ! Fix for ticket 2137. out-of-bounds error
@@ -75553,6 +76457,7 @@ list  samplexy(sst[x=290:310,y=0:20], lon, lat)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_shade_set
 ! err685_shade_set.jnl
 !
@@ -75600,6 +76505,7 @@ set mode/last logo
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_individual_levels
 ! err686_individual_levels.jnl
 ! Ticket 2142
@@ -75628,8 +76534,10 @@ LEV_NUM = "4"
 LEV_DEL = "5"
  
  
-GO bn_reset
+GO bn_reset bn_long_symnames
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_long_symnames
 GO bn_long_symnames
 ! bn_long_symnames.jnl
 ! *ACM* 11/22/2013
@@ -75668,8 +76576,10 @@ show symbol q*
 Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890 = "5"
 Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567XXX = "6"
  
-GO bn_reset
+GO bn_reset bn_strdim
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_strdim
 GO bn_strdim
 ! bn_strdim.jnl
 ! Keep the string dimension name and size from the intput file
@@ -75696,7 +76606,7 @@ variables:
 		LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75719,13 +76629,15 @@ variables:
 		STRVAR:long_name = "mystrings" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
  
-GO bn_reset
+GO bn_reset bn_single_colorlev
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_single_colorlev
 GO bn_single_colorlev
 ! bn_single_colorlev.jnl
 ! Ticket 2123, mis-labeled color bars when
@@ -75746,8 +76658,10 @@ fill/lev=(20,30,10)/L=1 sst
  
  
 ! *********** v6.9 Additions ***********
-GO bn_reset
+GO bn_reset bn69_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn69_bug_fixes
 GO bn69_bug_fixes
 ! bn69_bug_fixes
 ! test various fixes that went into version 6.9
@@ -75755,6 +76669,7 @@ GO bn69_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_long_list_varnames
 ! err686_long_list_varnames.jnl
 !
@@ -75824,7 +76739,7 @@ longvarnames.tsv
 ! Try to load a variable later than that in the list.
  
 list etopo2_depth
-             VARIABLE : ETOPO2_DEPTH
+             VARIABLE : etopo2_depth
              FILENAME : longvarnames.tsv
              SUBSET   : 10 points (X)
  1    /  1: -97.00
@@ -75842,6 +76757,7 @@ list etopo2_depth
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_faxis_label
 ! err686_faxis_label.jnl
 ! 3/11/2014 ACM
@@ -75875,6 +76791,7 @@ LAB5 = "FORECAST : 03-JAN-2000 00:00 JULIAN"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_dup_axnames
 ! err686_dup_axnames
 ! Ticket 1750
@@ -75895,12 +76812,12 @@ use a; use b
 sh dat
      currently SET data sets:
     1> ./a.nc
- name     title                             I         J         K         L         M         N
- A        X[GX=XAXIS_TEST]                 1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        X[GX=XAXIS_TEST]                 1:4       ...       ...       ...
  
     2> ./b.nc  (default)
- name     title                             I         J         K         L         M         N
- B        X[GX=XAXIS_TEST]                 1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ B        X[GX=XAXIS_TEST]                 1:4       ...       ...       ...
  
 sh grid a[d=1]
     GRID GSI1
@@ -75909,8 +76826,6 @@ sh grid a[d=1]
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 sh grid b[d=2]
     GRID GRR1
  name       axis              # pts   start                end                 subset
@@ -75918,8 +76833,6 @@ sh grid b[d=2]
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! Write b with its Ferret internal axis name XAXIS_TEST1
 save/clob/file=c.nc a[d=1],b
@@ -75947,7 +76860,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75977,7 +76890,7 @@ variables:
 		A:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -75998,7 +76911,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76019,7 +76932,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76041,7 +76954,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -76054,9 +76967,12 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_cancel_invalid_var
 ! err686_cancel_invalid_var
 ! ticket 2159
+! (Note that the shade of a one-cell or less region is
+!  allowed fully as of Ferret v7.1.  See ticket 2494)
  
 ! The cancel variable ran into an incorrect setting
 ! for variable-in-memory
@@ -76075,6 +76991,7 @@ shade/x=161.1:161.3/y=0.2:0.4/L=1 sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_redef_ascii_att
 ! err686_redef_ascii_att.jnl
 ! Bug 2161
@@ -76113,6 +77030,7 @@ sh att v1
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_sho_nonexist_att
 ! err686_sho_nonexist_att.jnl
 ! See ticket 2133
@@ -76128,6 +77046,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_set_var_name
 ! err686_set_var_name.jnl
 ! ticket 2152
@@ -76163,30 +77082,30 @@ set var/name=temp salt
 show dat
      currently SET data sets:
     1> ./gt4d011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
+ SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
+ U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
+ V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
+ W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
+ TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
+ TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
+ PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  
 ! This rename is ok
 set var/name=salinity salt
 show dat
      currently SET data sets:
     1> ./gt4d011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALINITY (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
+ SALINITY (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
+ U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
+ V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
+ W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
+ TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
+ TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
+ PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  
  
 ! Test LET/D variables:
@@ -76198,15 +77117,15 @@ set var/name=diff myvar
 show dat
      currently SET data sets:
     1> ./gt4d011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALINITY (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
+ SALINITY (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
+ U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
+ V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
+ W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
+ TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
+ TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
+ PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  ------------------------------
  DIFF[D=gt4d011] = TAUX - TAUY
  
@@ -76216,8 +77135,10 @@ set var/name=diff w
  
 SET MODE/LAST ignore
  
-GO bn_reset
+GO bn_reset bn_bad_axis_bounds
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_bad_axis_bounds
 GO bn_bad_axis_bounds
 ! bn_bad_axis_bounds
 ! Ticket 2146 If there are invalid axis bounds
@@ -76227,15 +77148,17 @@ use badbounds.nc
 show data
      currently SET data sets:
     1> ./badbounds.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  MONTH_IRREG_BNDS
-                                           1:2       ...       ...       1:12      ...       ...
+                                           1:2       ...       ...       1:12
        (invalid axis bounds)
- TEMP2    TEMP[GT=MONTH_IRREG at ASN]         1:1       1:1       1:1       1:12      ...       ...
+ TEMP2    TEMP[GT=MONTH_IRREG at ASN]         1:1       1:1       1:1       1:12
  
  
-GO bn_reset
+GO bn_reset bn_enter_exit_GO
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_enter_exit_GO
 GO bn_enter_exit_GO
 ! GO bn_enter_exit_GO
 ! Lines to allow trace of GO scripts:
@@ -76304,8 +77227,10 @@ plot/i=1:15/color=red/thick i
  
 cancel redirect
  
-GO bn_reset
+GO bn_reset bn_stddev
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_stddev
 GO bn_stddev
 ! bn_std.jnl
 ! New StdDev transform
@@ -76368,8 +77293,10 @@ list/y=3/l=1 temp[z=@std,x=@std]
              TIME     : 17-AUG-1982 12:00
           1.037
  
-GO bn_reset
+GO bn_reset bn_set_axis_name
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_set_axis_name
 GO bn_set_axis_name
 ! bn_set_axis_name.jnl
 ! ticket 2160 Implementing new qualifier SET AXIS/NAME
@@ -76408,9 +77335,7 @@ sh grid a
  normal    X
  normal    Y
  normal    Z
- daysaxis  TIME                 5 r   01-MAY-2010 00:00    05-MAY-2010 00:00   full
- normal    E
- normal    F
+ DAYSAXIS  TIME                 5 r   01-MAY-2010 00:00    05-MAY-2010 00:00   full
  
 cancel data/all
  
@@ -76445,14 +77370,14 @@ X13AXIS
 ! Rename the axis
 set axis/name=x_in_meters x13axis
 say `a[d=1],return=xaxis`
- !-> MESSAGE/CONTINUE x_in_meters
-x_in_meters
+ !-> MESSAGE/CONTINUE X_IN_METERS
+X_IN_METERS
 say `b[d=2],return=xaxis`
- !-> MESSAGE/CONTINUE x_in_meters
-x_in_meters
+ !-> MESSAGE/CONTINUE X_IN_METERS
+X_IN_METERS
 say `c[d=3],return=xaxis`
- !-> MESSAGE/CONTINUE x_in_meters
-x_in_meters
+ !-> MESSAGE/CONTINUE X_IN_METERS
+X_IN_METERS
  
 ! For SHOW DAT/ATT we get info from the attribute structure.
 ! It has the udated name.
@@ -76462,7 +77387,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -76479,7 +77404,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -76496,7 +77421,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -76523,22 +77448,213 @@ set axis/name=.fr x_in_meters
  
 set mode/last ignore
  
-GO bn_reset
+GO bn_reset bn_let_remote
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_let_remote
 GO bn_let_remote
 ! 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
  
 ! 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")
 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/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]
+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]
+ >>> 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")
+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
+             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]
+             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]
+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]
+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/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"
+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
+ name     title                             I         J         K         L
+ T0112MN1 Temperature                      1:360     1:180     1:24      1:12
+ 
+    2> http://ferret.pmel.noaa.gov/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/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]
+ Column  2: AIRTSUM is AIRT[L=1:5 at SUM]
+           SSTSUM  AIRTSUM
+51E   / 16:  141.4   139.2
+53E   / 17:  140.8   138.9
+55E   / 18:  141.4   139.4
+57E   / 19:  141.2   138.7
+59E   / 20:  141.6   139.4
+ 
+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
+             LONGITUDE: 50E to 59E
+             LATITUDE: 10S (interpolated)
+ 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:  141.4   139.2  280.5
+53E   / 17:  140.8   138.9  279.7
+55E   / 18:  141.4   139.4  280.7
+57E   / 19:  141.2   138.7  279.9
+59E   / 20:  141.6   139.4  281.0
+ 
+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"
+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/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/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
+ 
+! This is ok let/remote/D=
+let/D=1/remote myvar = t0112mn1[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 = t0112mn1[d=1,z=1:100 at ave]
+ 
+ 
+! But, require LET/D= with /REMOTE
+let/remote rvar = t0112mn1[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]
+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/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl  (default)
+ name     title                             I         J         K         L
+ T0112MN1 Temperature                      1:360     1:180     1:24      1:12
+ ------------------------------
+ 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]
+ 
+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/
+             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
+ 
+can dat/all; can var/all
+ 
  
 ! *********** v6.93 Additions ***********
-GO bn_reset
+GO bn_reset bn691_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn691_bug_fixes
 GO bn691_bug_fixes
 ! bn691_bug_fixes
 ! test various fixes that went into version 6.91
@@ -76546,6 +77662,7 @@ GO bn691_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_arg_type_error
 ! err69_arg_type_error
 ! See ticket 2169
@@ -76608,6 +77725,7 @@ set mode /last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_bad_bounds
 ! err69_bad_bounds.jnl
 ! See ticket 2170
@@ -76680,6 +77798,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_const_array
 ! err69_const_array.jnl
 ! 5/8/2014  ACM
@@ -76715,6 +77834,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_multi_label_ascii
 ! err69_multi_label_ascii.jnl
 ! 5/2014  ACM
@@ -76748,6 +77868,7 @@ label .55 .2 0 0 .16 "@ASEscape_color_not_font<NL>@P2 at SRred_1<NL>@P3 at SRgreen_2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_ens_badvalue
 ! err69_ens_badvalue.jnl
 !
@@ -76783,6 +77904,7 @@ list/y=29.25  MAIZE_YIELD[d=1], MAIZE_YIELD[d=2], MAIZE_YIELD[d=3],  MAIZE_YIELD
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_ribbon_by_levels
 ! err69_ribbon_by_levels.jnl
 ! ACM 5/19/2014
@@ -76808,6 +77930,7 @@ RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels xpts,ypts,var
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_ribbon_histogram
 ! err69_ribbon_histogram.jnl
 ! ACM 5/24/2014
@@ -76835,6 +77958,7 @@ ribbon/vs/line/thick/lev=10h xpts,ypts,var
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_repl_scinot
 ! err69_repl_scinot.jnl
 ! ticket 2175
@@ -76862,6 +77986,7 @@ say (`a`)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err691_bnds_case
 ! err691_bnds_case
 ! 6/30/14
@@ -76876,6 +78001,7 @@ set mode/last upcase_output
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_plot_vs_labs
 ! err69_plot_vs_labs.jnl
 ! ticket 2187: the axis labels on the dependent axis
@@ -76913,6 +78039,7 @@ LABY = "A[X=150W:90W at AVE]"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_levels_v
 ! err69_levels_v.jnl
 ! Ferret ticket 2186, and LAS ticket 1598
@@ -76933,11 +78060,12 @@ LEV_OPNLEVS = "(290,330,10)(332,402,2)(400,450,10)(inf)"
 LEV_MIN = "290"
 LEV_NUM = "45"
 LEV_DEL = "irregular"
-LEV_MAX = "114930.72"
+LEV_MAX = "open-ended"
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_letd_dsetnum
 ! err69_letd_dsetnum.jnl
 !  Ticket 2189. Previously the grave-accent expression didn't get
@@ -76949,14 +78077,15 @@ let/d=`sst,r=dsetnum` a = 1
 sh dat
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
  A[D=coads_climatology] = 1
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_long_string_to_xml
 ! err69_long_string_to_xml.jnl
 ! ticket 2190  8-8-2014
@@ -76975,6 +78104,7 @@ sp cat out.xml
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_fill_trans
 ! err69_fill_trans.jnl
 ! ticket 2196. Visible only if bounds-checking is turned on.
@@ -77023,6 +78153,7 @@ list myvar[x=6 at fav:18]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_load_big_grid
 ! err69_load_big_grid
 ! ticket 1758
@@ -77040,33 +78171,40 @@ 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 (G089)
+    GRID (G093)
  name       axis              # pts   start                end                 subset
  XAXIS     X                  360 r   1                    360                 full
  YAXIS     Y                  180 r   1                    180                 full
  ZAXIS     Z                   20 r   1                    20                  full
  LONGTIME  TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
- normal    E
- normal    F
 load bigvar
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 25.6 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 1297828 (5.1%)
+    The size of the requested object was: : 2369088000 (9254%)
  
 ! also was an incorrect size.
 define axis/t=1-jan-2000:1-jan-2010:1/units=days  longtime
 sh grid bigvar
-    GRID (G089)
+    GRID (G093)
  name       axis              # pts   start                end                 subset
  XAXIS     X                  360 r   1                    360                 full
  YAXIS     Y                  180 r   1                    180                 full
  ZAXIS     Z                   20 r   1                    20                  full
  LONGTIME  TIME              3654 r   01-JAN-2000 00:00    01-JAN-2010 00:00   full
- normal    E
- normal    F
 load bigvar
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 25.6 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 1299654 (5.1%)
+    The size of the requested object was: : 4735584000 (18498%)
  
 cancel mode ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_write_attribute
 ! err69_write_attribute.jnl
 ! Bug 1863
@@ -77079,8 +78217,6 @@ sh grid temp
  PSYT1     LATITUDE           100 i   28.836S              48.568N             full
  PSZT2     DEPTH (m)           27 i-  5                    3824                full
  TIME17    TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
- normal    E
- normal    F
 let a = temp[x=@ave,y=@ave,L=1]
  
 ! The attribute we ask not to write is not written for this variable
@@ -77207,6 +78343,7 @@ sp rm aa.nc bb.nc
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_isready_status_errmsgs
 ! err69_isready_status_errmsgs
 ! ticket 2197
@@ -77230,6 +78367,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_isready_status_errmsgs
 ! err69_isready_status_errmsgs
 ! ticket 2197
@@ -77253,6 +78391,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_countervar_context
 ! err69_countervar_context.jnl
 ! ACM 10/3/2014
@@ -77277,6 +78416,7 @@ can region
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_label_backspace
 ! err69_label_backspace
 ! Ticket 2203:  \\ before a character backspaces before
@@ -77288,6 +78428,7 @@ label .5 .5 0 0 1 "El Nin\\^@MA45 at SRo\!"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_isready_and_regridding
 ! err69_isready_and_regridding.jnl
 ! Ticket 2204: A `var,return=isready` sends Ferret into a hanged
@@ -77333,6 +78474,7 @@ ENDIF
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_vtree_and_uvar_regrid
 ! err69_vtree_and_uvar_regrid.jnl
 ! Ticket 2206: This lead to a crash.
@@ -77358,6 +78500,7 @@ c is ready and AVAILABLE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_vtree_cancel_axis
 ! err69_vtree_cancel_axis
 ! Ticket 2201: After a return=isready,
@@ -77385,6 +78528,7 @@ cancel axis xax2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_isready_bugs
 ! err69_isready_bugs.jnl
 ! Tickets 2201 and 2215
@@ -77439,6 +78583,7 @@ m
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err691_substring_arg
 ! err693_substring_arg
 ! ACM 12/10/2014
@@ -77450,8 +78595,10 @@ list substring("hello",1,-3)
  
 set mode/last ignore
  
-GO bn_reset
+GO bn_reset bn_append_dsg
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_append_dsg
 GO bn_append_dsg
 ! bn_append_dsg.jnl
 !From SOCAT 3: appending to a dsg file where the new variable is on the obs
@@ -77530,14 +78677,16 @@ 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 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 }
  
 set mode/last upcase
  
  
-GO bn_reset
+GO bn_reset bn_global_atts
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_global_atts
 GO bn_global_atts
 ! bn_global_atts
 ! NOTE With the fix for ticket 2241, we need to add CANCEL MODE UPCASE.
@@ -77626,7 +78775,7 @@ variables:
 		lon360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "CruiseDsgNcFile 1.0FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:featureType = "Trajectory" ;
 		:Conventions = "Some other conventionsCF-1.6" ;
 		:geospatial_lon_min = -92.77 ;
@@ -77653,15 +78802,17 @@ can dat/all; use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
  ..history = Subset of etopo20,
- FERRET V7 (beta/dbg) 15-Jun-16 
+ FERRET V7.1 (beta/debug) 17-Apr-17 
  ..Conventions = Existing conventions note, , CF-1.6 
  
  
 set mode/last upcase
  
  
-GO bn_reset
+GO bn_reset bn_conventions_history
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_conventions_history
 GO bn_conventions_history
 ! bn_conventions_history.jnl
 ! ticket 2169:
@@ -77686,11 +78837,13 @@ can dat/all; use conventions_history
 ! The new attibutes
 sh att .
      attributes for dataset: ./conventions_history.nc
- ..history = The history of the fileFERRET V7 (beta/dbg) 15-Jun-16 
+ ..history = The history of the fileFERRET V7.1 (beta/debug) 17-Apr-17 
  ..Conventions = Conventions for variables named V2CF-1.6 
  
-GO bn_reset
+GO bn_reset bn_center_key_labels
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_center_key_labels
 GO bn_center_key_labels
 ! bn_center_key_labels
 !  6/2014
@@ -77737,8 +78890,10 @@ can data coads_climatology
 shade temp
  
  
-GO bn_reset
+GO bn_reset bn_wgt_transform
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_wgt_transform
 GO bn_wgt_transform
 ! bn_wgt_transform.jnl  test new @WGT transform,
 ! returns weights used in the equiv. average or integral transform
@@ -77844,8 +78999,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn_show_outfile
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_show_outfile
 GO bn_show_outfile
 ! bn_show_outfile
 ! Adding tests for SHOW/OUTFILE=
@@ -77916,8 +79073,6 @@ sp cat a.txt
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! show var/outfile
  
@@ -77944,8 +79099,8 @@ sp cat a.txt
  TWO = 2
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
  
 ! combinations of /append and /clobber
@@ -77958,8 +79113,8 @@ SAY ---------------- Just show data, two show data/clobber commands in a row
 sp cat a.txt
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
  
 show grid/clobber/outfile=a.txt sst
@@ -77973,8 +79128,6 @@ sp cat a.txt
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 use coads_climatology
 use levitus_climatology
@@ -77986,8 +79139,8 @@ SAY ---------------- Just dataset 1
 sp cat a.txt
      currently SET data sets:
     1> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
  
 show data/append/outfile=a.txt levitus_climatology
@@ -77997,13 +79150,13 @@ SAY ---------------- appending datset 2 by name
 sp cat a.txt
      currently SET data sets:
     1> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
      currently SET data sets:
     2> ./levitus_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:160     1:90      1:1       ...       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:160     1:90      1:1       ...
  
 show grid/clobber/outfile=a.txt PS3*
  
@@ -78514,8 +79667,10 @@ f is ready and AVAILABLE
  
  
  
-GO bn_reset
+GO bn_reset bn_date1900_array
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_date1900_array
 GO bn_date1900_array
 ! bn_date1900_array.jnl
 ! Let date1900 accept an array of date strings, returning a list
@@ -78566,66 +79721,92 @@ list t[gt=taxis]
  30-JUL-2002 00 / 3:  37465.
  
  
-GO bn_reset
+GO bn_reset bn_spawn_size
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_spawn_size
 GO bn_spawn_size
 ! bn_spawn_size.jnl
+! Added 9/9/2014
+! Fix for ticket 981
 ! Return the size of the result of a spawn, not
-! the nominalabstract axis length.
- 
-! ticket 981
- 
-let files = {spawn:"ls *cdf*.jnl"}
+! the nominal abstract axis length.
+ 
+! 1/2017 *acm* change this script so the results are always consistent,
+! not depending on the contents of the directory which may change.
+ 
+! Make some files to operate on
+let a = x + 1
+save/clobber/i=1:5/file=bn_spawn_size1.cdf a
+save/clobber/i=1:5/file=bn_spawn_size2.cdf a
+save/clobber/i=1:5/file=bn_spawn_size3.cdf a
+save/clobber/i=1:5/file=bn_spawn_size4.cdf a
+save/clobber/i=1:5/file=bn_spawn_size5.cdf a
+ 
+list/clobber/i=1:7/file=bn_spawn_size02.dat a
+list/clobber/i=1:7/file=bn_spawn_size04.dat a
+list/clobber/i=1:7/file=bn_spawn_size06.dat a
+list/clobber/i=1:7/file=bn_spawn_size08.dat a
+list/clobber/i=1:7/file=bn_spawn_size10.dat a
+list/clobber/i=1:7/file=bn_spawn_size12.dat a
+list/clobber/i=1:7/file=bn_spawn_size14.dat a
+ 
+! Previously these return=isize results returned 2000
+ 
+let files = {spawn:"ls *bn_spawn_size*4.*"}
 list files
-             VARIABLE : {SPAWN:"ls *cdf*.jnl"}
-             SUBSET   : 9 points (X)
- 1   / 1:"bn_cdf_errmsg.jnl"      
- 2   / 2:"bn_cdf.jnl"             
- 3   / 3:"bn_cdf_keepax.jnl"      
- 4   / 4:"bn_netcdf4.jnl"         
- 5   / 5:"cdf.jnl"                
- 6   / 6:"err490_cdf_childax.jnl" 
- 7   / 7:"err491_cdf_childax.jnl" 
- 8   / 8:"err65_read_epic_cdf.jnl"
- 9   / 9:"err667_5d_netcdf.jnl"   
+             VARIABLE : {SPAWN:"ls *bn_spawn_size*4.*"}
+             SUBSET   : 3 points (X)
+ 1   / 1:"bn_spawn_size04.dat"
+ 2   / 2:"bn_spawn_size14.dat"
+ 3   / 3:"bn_spawn_size4.cdf" 
 say `files,return=isize`
- !-> MESSAGE/CONTINUE 9
-9
+ !-> MESSAGE/CONTINUE 3
+3
  
 ! Evaluate size without loading the variable first
-let datfiles = {spawn:"ls *.dat"}
+let datfiles = {spawn:"ls bn_spawn_size1*.dat"}
 say `datfiles,return=isize`
- !-> MESSAGE/CONTINUE 37
-37
+ !-> MESSAGE/CONTINUE 3
+3
  
 ! expression syntax
-say `{spawn:"ls xml*.jnl"},return=isize`
- !-> MESSAGE/CONTINUE 4
-4
-list {spawn:"ls xml*.jnl"}
-             VARIABLE : {SPAWN:"ls xml*.jnl"}
-             SUBSET   : 4 points (X)
- 1   / 1:"xml_header_script.jnl"
- 2   / 2:"xml_letd.jnl"         
- 3   / 3:"xml_use_coads.jnl"    
- 4   / 4:"xml_use_numstring.jnl"
- 
-! Test variables based on output of a spawn.
+say `{spawn:"ls bn_spawn_size*.dat"},return=isize`
+ !-> MESSAGE/CONTINUE 7
+7
+list {spawn:"ls bn_spawn_size*.dat"}
+             VARIABLE : {SPAWN:"ls bn_spawn_size*.dat"}
+             SUBSET   : 7 points (X)
+ 1   / 1:"bn_spawn_size02.dat"
+ 2   / 2:"bn_spawn_size04.dat"
+ 3   / 3:"bn_spawn_size06.dat"
+ 4   / 4:"bn_spawn_size08.dat"
+ 5   / 5:"bn_spawn_size10.dat"
+ 6   / 6:"bn_spawn_size12.dat"
+ 7   / 7:"bn_spawn_size14.dat"
+ 
+! Test variables based on a function operating on output of a spawn.
 ! These already worked correctly, has a grid-changing function.
  
-LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
+LET filesets = XCAT({spawn:"ls bn_spawn_size*.cdf"}, {spawn:"ls bn_spawn_size*.dat"})
 say `filesets, return=isize`
- !-> MESSAGE/CONTINUE 1084
-1084
+ !-> MESSAGE/CONTINUE 12
+12
  
-let files = {spawn:"ls *cdf*.jnl"}
-let name_len = strindex(files, ".sub")
+let files = {spawn:"ls bn_spawn_size*.dat"}
+let name_len = STRINDEX(files, "ze0")
 say `name_len, return=isize`
- !-> MESSAGE/CONTINUE 9
-9
+ !-> MESSAGE/CONTINUE 7
+7
  
-GO bn_reset
+! clean up
+sp rm bn_spawn_size*.dat bn_spawn_size*.cdf
+ 
+ 
+GO bn_reset bn_polygon_log
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_polygon_log
 GO bn_polygon_log
 ! bn_polygon_log.jnl
 ! polygon plots on a log axis need tests
@@ -78663,8 +79844,10 @@ set mode/last ignore
  
 ! *********** v6.94Additions ***********
  
-GO bn_reset
+GO bn_reset bn694_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn694_bug_fixes
 GO bn694_bug_fixes
 ! bn694_bug_fixes
 ! test various fixes that went into version 6.94
@@ -78674,6 +79857,7 @@ GO bn694_bug_fixes
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_upcase_quoted_name
 ! err693_upcase_quoted_name.jnl
 ! ticket 2050. Names are saved in uppercase
@@ -78698,6 +79882,7 @@ set mode/last upcase
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_isready_hang
 ! err693_isready_hang.jnl
 ! ACM 12/10/2014
@@ -78725,6 +79910,7 @@ IF `a,r=isready` THEN; let/title="`a,r=title`" a5 = a; ENDIF
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_isready_dyn_grid_crash   ! 12/23/2014
 let/unit="m" b = x[gx=1:5:1]
 say "`b,r=unit`"     ! this causes dynamic grid of b to be created
@@ -78740,6 +79926,7 @@ VTREE b2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_attr_in_gcfcn
 ! err693_attr_in_gcfcn.jnl
 ! ACM 12/10/2014
@@ -78779,6 +79966,7 @@ list is_element_of_str (a, {"Kelvin", "Celsius", "DEG C"})
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_inconsistent_quote
 ! inconsistent interpretation of surrounding double quotes
 ! the original source of the problem is in PARSE_COMMAND
@@ -78800,6 +79988,7 @@ LIST "foobar"           ! error: lists the value instead
 ! IF-THEN flow tests
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_2214
 ! bug 2214
 ! If we put the "say hi" in parentheses, this seems to work.
@@ -78831,6 +80020,7 @@ CORRECT
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_2211
 ! bug #2211
  
@@ -78841,6 +80031,7 @@ ELSE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_1860
 ! from bug 1860
 ! continue line found within grave accents
@@ -78856,6 +80047,7 @@ CORRECT IF THIS DISPLAYS
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_1446
 ! testing ticket 1446
  
@@ -78870,6 +80062,7 @@ ENDIF
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_1681
 ! testing ticker 1681
  
@@ -78898,6 +80091,7 @@ endif
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_1706
 ! testing ticket 1706
 !
@@ -78914,6 +80108,7 @@ ENDIF
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_1368   ! Jan 28, 2010, Ferret version 5.812
 ! testing ticket 1368 - first found in Ferret v5.812 (Jan 28, 2010)
  
@@ -78946,6 +80141,7 @@ ENDIF
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_ribbon_start_missing
 ! err693_ribbon_start_missing
 ! 1/6/2015 ACM
@@ -78996,6 +80192,7 @@ let vvar = {,1.e7,,271,319}
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err691_pt_in_poly
 ! err691_pt_in_poly
 ! ticket 1961: modulo longitude for pt_in_poly
@@ -79044,6 +80241,7 @@ list minmax(pts)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_undetected_regrid_dset
 ! err693_undetected_regrid_dset.jnl    - Jan 2015
  
@@ -79063,11 +80261,12 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_line_over_axis
 ! Ticket 2232: line plots overlaid the plot axes
 show mode meta
       MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      metafile.plt
+      METAFILE      CANCELED       metafile.plt
 ! line plot with /VS draw on top of the axes
 let xval = {0.0, 0.2, 1.0, 0.8, 0}
 let yval = {0.0, 1.1, 1.1, 0.0, 0}
@@ -79081,6 +80280,7 @@ plot/ribbon/vs/line/thick=3/over/nolab/pal=green_light xval, yval, yval
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_save_packed
 ! err693_save_packed.jnl
 ! ticket 2240: bug writing multiple vars with one SAVE when scaled
@@ -79092,6 +80292,7 @@ save/clobber/file=a.nc QA_OF_SEAICE_CONC_CDR, GODDARD_MERGED_SEAICE_CONC
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_subspan_trans
 ! err693_subspan_trans
 ! bug 2241  3/9/2015
@@ -79106,37 +80307,31 @@ let b = a[x=@min]
  
 set mode diag
 say `a[x=@min]`
- 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 GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 GSI1            COADSX51_1NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   2 I:      0     83  J: -999 -999  K: -999 -999  L:   -999   -999
  strip --> A[X=25E:25E(385)@MIN,D=2]
- strip modulo-void-filling A on X axis:     0    83 dset:   2
- strip moduloing A on X axis:     0    82 dset:   2
- reading A        M: 74 dset:   2 I:    1   82  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:     1    82 dset:   2
- doing modulo-void-filling A on X axis:     0    82 dset:   2
+ strip modulo-void-filling A on X axis:        0       83 dset:   2
+ strip moduloing A on X axis:        0       82 dset:   2
+ reading A        M:246 dset:   2 I:      1     82  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing A on X axis:        1       82 dset:   2
+ doing modulo-void-filling A on X axis:        0       82 dset:   2
  doing --> A[X=25E:25E(385)@MIN,D=2]
- -DELETE A        M: 66 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M:238 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 25.27740573883057
 25.27740573883057
  
 ! This previously resulted in an error.
 say `b`
- dealloc  dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- 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 B        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 GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    B        C:  6 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip --> A[X=25E:25E(385)@MIN,D=2]
- strip modulo-void-filling A on X axis:     0    83 dset:   2
- strip moduloing A on X axis:     0    82 dset:   2
- reading A        M: 66 dset:   2 I:    1   82  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:     1    82 dset:   2
- doing modulo-void-filling A on X axis:     0    82 dset:   2
- doing --> A[X=25E:25E(385)@MIN,D=2]
- -DELETE B        M: 39 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL
+ 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 B        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 GSI1            COADSX51_1NORMAL    NORMAL    NORMAL
+ allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   2 I:      0     83  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    B        C:  6 dset:   2 I:      0     83  J: -999 -999  K: -999 -999  L:   -999   -999
+ found   A        M:241 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE B        M:240 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 25.27740573883057
 25.27740573883057
  
@@ -79172,6 +80367,7 @@ bad
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_repeat_err
 !   err693_repeat_err.jnl
 ! test fix for ticket 2244: Error handling in REPEAT
@@ -79203,6 +80399,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_edit_useratt
 ! err693_edit_useratt.jnl
 ! ticket 2249: set attribute properties for user-defined variable
@@ -79258,6 +80455,7 @@ list/x=135.402W:135.321W/y=58.609 elev
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_redef_rec_axis
 ! err693_redef_rec_axis.jnl
 ! ticket 2271. Redefining the record axis meant
@@ -79282,8 +80480,8 @@ show data/full
      currently SET data sets:
     1> ./a.nc  (default)
  
- name     title                             I         J         K         L         M         N
- VAR      X[GX=XAX] + Y[GY=YAX] + T[GT=TR  1:5       1:5       ...       1:7       ...       ...
+ name     title                             I         J         K         L
+ VAR      X[GX=XAX] + Y[GY=YAX] + T[GT=TR  1:5       1:5       ...       1:7
                on grid GSI1 with -1.E+34 for missing data
              X=0.5:5.5  Y=1:11  
  
@@ -79292,6 +80490,7 @@ show data/full
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_frame_types
 ! bn_frame_types.jnl
 ! Ticket 2275
@@ -79316,6 +80515,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_shape
 ! err693_shape.jnl
 ! bug 2273 shape of variable with various subexpressions
@@ -79340,6 +80540,7 @@ say `sst,r=isize`  `a,r=isize` `a_anom,r=isize`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_ef_axis_precision
  ! NOAA/PMEL TMAP
  ! FERRET v6.94
@@ -79371,6 +80572,7 @@ q
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_string_results
 ! err693_string_results.jnl
 ! Ticket 2234, the LIST B returned the numeric pointer to the string.
@@ -79392,6 +80594,7 @@ list d
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_lev_nv_over
 ! err693_lev_nv_over.jnl
 ! The polygon command with /LEV=20V caused a crash; levels settings incorrect.
@@ -79412,6 +80615,7 @@ GO polymark polygon/over/lev=20v/key/title="SST"  xpts,ypts,sst,square, 0.5
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_fcn_of_attvar
 ! err693_fcn_of_attvar.jnl
 ! Ticket 2291 Function of attribute-expression
@@ -79463,6 +80667,7 @@ list ysequence(dncase(sst.dimnames))
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_isize_and_gcfcn
 ! err693_isize_and_gcfcn.jnl
 ! ticket 2213
@@ -79474,12 +80679,10 @@ can mode verify
 8
     GRID XABSTRACT
  name       axis              # pts   start                end                 subset
- ABSTRACT  X             99999999 r   1                    1.E+08              7 pts
+ ABSTRACT  X             99999999 r   1                    1.E+08              8 pts
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 8
 8 a
 8
@@ -79503,8 +80706,6 @@ can mode verify
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 8
 8 a
 8
@@ -79524,6 +80725,7 @@ can mode verify
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_ribbon_scale
 ! err693_ribbon_scale.jnl
 ! ticket 2295: the vertical scale is mis-computed
@@ -79536,11 +80738,12 @@ 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
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_parse_curly
 ! err693_parse_curly.jnl
 ! the sub-routine defines a string variable containing commands for overlays in
@@ -79654,6 +80857,7 @@ define symbol overcommands = `p1s_ov`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_list_missing
 ! err693_list_missing.jnl
  
@@ -79675,6 +80879,7 @@ list a,b
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_shf_subscr
 ! err693_shf_subscr.jnl
 ! ticket 2231  Subscripts used to compute @SHF-1 at the low end of the axis
@@ -79717,6 +80922,7 @@ list/k=3:4 zdiff_t
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_shift_w_region
 ! err693_shift_w_region
 ! Ticket 2300.  In fact with bounds checking on, the list a[i=@shf] would have
@@ -79750,6 +80956,7 @@ list a[i=@shf]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_scalar_grids
 ! err693_scalar_grids.jnl
 ! See ticket 1602
@@ -79818,8 +81025,10 @@ list b[x=@ave,k=@ave]
  
  
  
-GO bn_reset
+GO bn_reset bn_permute_ascii
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_permute_ascii
 GO bn_permute_ascii
 ! bn_permute_ascii.jnl
 ! test permutations when reading ascii data, in E and F directions
@@ -79837,11 +81046,11 @@ def grid/x=x4ax/t=t12 txgrid
 sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
- name     title                             I         J         K         L         M         N
- TM       TM                               1:4       ...       ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ TM       Tm                               1:4       ...       ...       1:12
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 4 by 12 points (X-T)
                1      2      3      4    
@@ -79867,11 +81076,11 @@ FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
 sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
- name     title                             I         J         K         L         M         N
- TM       TM                               1:4       ...       ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ TM       Tm                               1:4       ...       ...       1:12
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 4 by 12 points (X-T)
                1      2      3      4    
@@ -79900,10 +81109,10 @@ sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
  name     title                             I         J         K         L         M         N
- TM       TM                               1:4       ...       ...       ...       ...       1:12
+ TM       Tm                               1:4       ...       ...       ...       ...       1:12
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 4 by 12 points (X-F)
                1      2      3      4    
@@ -79932,11 +81141,11 @@ FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
 sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
- name     title                             I         J         K         L         M         N
- TM       TM                               ...       1:2       1:4       1:6       ...       ...
+ name     title                             I         J         K         L
+ TM       Tm                               ...       1:2       1:4       1:6
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 2 by 4 by 6 points (Y-Z-T)
              1      2    
@@ -79984,11 +81193,11 @@ FILE/SKIP=4/VAR="Tm"/COL=12/order=tyz/GRID=grid3d fxdata.dat
 sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
- name     title                             I         J         K         L         M         N
- TM       TM                               ...       1:2       1:4       1:6       ...       ...
+ name     title                             I         J         K         L
+ TM       Tm                               ...       1:2       1:4       1:6
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 2 by 4 by 6 points (Y-Z-T)
              1      2    
@@ -80037,10 +81246,10 @@ sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
  name     title                             I         J         K         L         M         N
- TM       TM                               ...       1:2       1:4       ...       1:6       ...
+ TM       Tm                               ...       1:2       1:4       ...       1:6       ...
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 2 by 4 by 6 points (Y-Z-E)
              1      2    
@@ -80087,10 +81296,10 @@ sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
  name     title                             I         J         K         L         M         N
- TM       TM                               ...       1:2       1:4       ...       1:6       ...
+ TM       Tm                               ...       1:2       1:4       ...       1:6       ...
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 2 by 4 by 6 points (Y-Z-E)
              1      2    
@@ -80127,8 +81336,10 @@ list tm
  4   / 4: -28.54  -8.39
  
  
-GO bn_reset
+GO bn_reset bn_lon_lat_time_string
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_lon_lat_time_string
 GO bn_lon_lat_time_string
 ! bn_lon_lat_time_string.jnl
 ! Test function written for LAS, to create profile labels from
@@ -80162,8 +81373,10 @@ list lon_lat_time_string(lon, lat, time, tt, "my_string")
  3   / 3:"my_string_340.5E_15.03S_04-JAN-2001"
  
  
-GO bn_reset
+GO bn_reset bn_save_justdim
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_save_justdim
 GO bn_save_justdim
 ! bn_save_justdim.jnl
 ! When a dataset has axes that are dimensions but not 1-D coordinate variables,
@@ -80195,8 +81408,10 @@ sp ncdump a.nc >> all_ncdump.out
  
 SET MODE/LAST upcase_output
  
-GO bn_reset
+GO bn_reset bn_time2d
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_time2d
 GO bn_time2d
 ! bn_time2d.jnl
 ! 1/30/2015 ACM
@@ -80230,8 +81445,10 @@ set att/like=time time2d
 shade time2d
 shade/trans time2d
  
-GO bn_reset
+GO bn_reset bn_legend_labels
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_legend_labels
 GO bn_legend_labels
 ! bn_legend_labels.jnl
 ! The legend labels on a multi-line plot describe the
@@ -80260,8 +81477,10 @@ LAB7 = "January"
 LAB9 = "March"
 LAB8 = "February"
  
-GO bn_reset
+GO bn_reset bn_DQ
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_DQ
 GO bn_DQ
 ! bn_DQ.jnl  *sh* 2/2015
 ! test the use of _DQ_ and _SQ_ in lieu of " and '
@@ -80670,13 +81889,13 @@ LIST a
 show data   ! to side step dset=-1 left behind by SHOW ATTRIBUTE previously
      currently SET data sets:
     1> ./weird_name1.cdf  (default)
- name     title                             I         J         K         L         M         N
- v1       lower case v1                    1:20      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ v1       lower case v1                    1:20      ...       ...       ...
  v2-and-minus
-          SIN(2+I/10)                      1:20      ...       ...       ...       ...       ...
- V1       Upper case V1                    1:20      ...       ...       ...       ...       ...
- I        SIN(4+I/10)                      1:20      ...       ...       ...       ...       ...
- X        SIN(5+I/10)                      1:20      ...       ...       ...       ...       ...
+          SIN(2+I/10)                      1:20      ...       ...       ...
+ V1       Upper case V1                    1:20      ...       ...       ...
+ I        SIN(4+I/10)                      1:20      ...       ...       ...
+ X        SIN(5+I/10)                      1:20      ...       ...       ...
  
 ! !!!!!!
 ! =========================
@@ -80689,8 +81908,6 @@ show grid gg
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! ======
 LET/TITLE= _DQ_'A title w/ "sq"'. Ship_Ka'imimoana_DQ_ A = 1 ! ' char for emacs
@@ -80763,14 +81980,17 @@ plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980:12:00_DQ_ \
  
 ! *********** v6.95Additions ***********
  
-GO bn_reset
+GO bn_reset bn695_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn695_bug_fixes
 GO bn695_bug_fixes
 ! bn695_bug_fixes
 ! test various fixes that went into version 6.95
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err694_shf_missing
 ! err694_shf_missing.jnl
 ! Test the fix for ticket 2314
@@ -80824,6 +82044,7 @@ list/x=10:30/y=-60/l=1  sst[i=@shf:3]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err694_longname_showdat
 ! err694_longname_showdat.jnl
 ! ticket 2317
@@ -80839,15 +82060,15 @@ use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
 sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
      currently SET data sets:
     1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  PROF     Prof                             ...       ...       ...       ...       1:21      ...
  TIME     Time                             ...       ...       ...       ...       1:21      ...
  LATITUDE Latitude                         ...       ...       ...       ...       1:21      ...
  LONGITUDE
           Longitude                        ...       ...       ...       ...       1:21      ...
  ROWSIZE  Number of Observations for this  ...       ...       ...       ...       1:21      ...
- PRESS_DB PRESS_DB                         1:373     ...       ...       ...       ...       ...
- PCO2     PCO2                             1:373     ...       ...       ...       ...       ...
+ PRESS_DB PRESS_DB                         1:373     ...       ...       ...
+ PCO2     PCO2                             1:373     ...       ...       ...
  
  
 ! If a file matched to 1st 32 characters, the shorter-named
@@ -80857,21 +82078,22 @@ use WestCoastCarbon_9d9c_f562_77b5_5
 sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
      currently SET data sets:
     1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  PROF     Prof                             ...       ...       ...       ...       1:21      ...
  TIME     Time                             ...       ...       ...       ...       1:21      ...
  LATITUDE Latitude                         ...       ...       ...       ...       1:21      ...
  LONGITUDE
           Longitude                        ...       ...       ...       ...       1:21      ...
  ROWSIZE  Number of Observations for this  ...       ...       ...       ...       1:21      ...
- PRESS_DB PRESS_DB                         1:373     ...       ...       ...       ...       ...
- PCO2     PCO2                             1:373     ...       ...       ...       ...       ...
+ PRESS_DB PRESS_DB                         1:373     ...       ...       ...
+ PCO2     PCO2                             1:373     ...       ...       ...
  
  
 sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_std4d
 ! err693_std4d
 ! Check fix to ticket 2319: std transform in multi-dimensions
@@ -80918,8 +82140,10 @@ list astd^2, avar, avar_calc, astd_e_f^2
 I / *:     5.778  5.778   5.778  0.4444
  
  
-GO bn_reset
+GO bn_reset bn_f_tax_fcns
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_f_tax_fcns
 GO bn_f_tax_fcns
 ! bn_f_from_tax_fcns.jnl
 ! test tax_* functions returning results from a
@@ -81187,8 +82411,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn_fmrc
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_fmrc
 GO bn_fmrc
 ! bn_fmrc.jnl
 ! initial test of DEFINE DATA/F
@@ -81203,7 +82429,7 @@ use "run4.nc"
 define data/hide/F/agg fourfiles = 1,2,3,4
  
 sh grid sst
-    GRID (G089)
+    GRID (G093)
  name       axis              # pts   start                end                 subset
  LON1      LONGITUDE           10mr   109W                 91W                 full
  LAT       LATITUDE             9 r   13N                  29N                 full
@@ -81252,8 +82478,10 @@ list/L=1:6/n=1:4 `sst._ftime2d`
  07-JAN-2010 12 / 4:   7.00000   8.00000   9.00000  10.00000  11.00000  12.00000
  
  
-GO bn_reset
+GO bn_reset bn_return_defined
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_return_defined
 GO bn_return_defined
 ! bn_return_defined.jnl
 ! 5/3/2015 *acm*
@@ -81277,8 +82505,10 @@ say `temp,return=defined`
  !-> MESSAGE/CONTINUE 0
 0
  
-GO bn_reset
+GO bn_reset bn_can_var_noerr
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_can_var_noerr
 GO bn_can_var_noerr
 ! bn_can_var_noerr.jnl
 ! CANCEL VARIABLE/NOERROR
@@ -81326,8 +82556,10 @@ cancel var/noerror/all
 show var
  Created by DEFINE VARIABLE:
  
-GO bn_reset
+GO bn_reset bn_annotate
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_annotate
 GO bn_annotate
 ! bn_annotate.jnl
 ! The command ANNOTATE /USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE
@@ -81605,8 +82837,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn_auxiliary
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_auxiliary
 GO bn_auxiliary
 ! bn_auxiliary.jnl:  exercise auxiliary coordinate regridding
  
@@ -81639,24 +82873,24 @@ FILE/VAR=v layerz_test_data.txt
 ! set the layerz link to point to a variable named "depth"
 SET VAR/layerz=depth v
 SHOW VAR/LAYERZ v
-  DEPTH holds the designated vertical (layerz) coordinates of V
+  DEPTH holds the designated vertical (layerz) coordinates of v
 SHOW ATT v
 ! modify the layerz link
 SET VAR/layerz=newdepth v
 SHOW VAR/LAYERZ v
-  NEWDEPTH holds the designated vertical (layerz) coordinates of V
+  NEWDEPTH holds the designated vertical (layerz) coordinates of v
 SHOW ATT v
      attributes for dataset: ./layerz_test_data.txt
- V.long_name = V 
- V.missing_value = -1.E+34
- V.__LayerzRef_ = NEWDEPTH 
+ v.long_name = v 
+ v.missing_value = -1.E+34
+ v.__LayerzRef_ = NEWDEPTH 
 cancel var/layerz v
 SHOW VAR/LAYERZ v
-  No variable holds vertical (layerz) coordinates of V
+  No variable holds vertical (layerz) coordinates of v
 SHOW ATT v
      attributes for dataset: ./layerz_test_data.txt
- V.long_name = V 
- V.missing_value = -1.E+34
+ v.long_name = v 
+ v.missing_value = -1.E+34
 CANCEL DATA layerz_test_data.txt
  
 ! user variable
@@ -81770,10 +83004,8 @@ SHOW GRID
  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                10 pts
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                11 pts
  normal    T
- normal    E
- normal    F
  
 ! use aux var regridding.  Target coordinate points match the source points
 ! identically at 0, 100, 200, ... 500
@@ -81783,33 +83015,33 @@ SHOW GRID
 SET MODE diagnostic
 LET tempz = temp[gz(depth)=zpts]
 LIST/PREC=7 tempz
- dealloc  dynamic grid GAO1            XAXLEVITR1YAXLEVITR4ZAXLEVITR 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 TEMPZ    C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- 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    NORMAL    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 (G094)          NORMAL    NORMAL    (AX113)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G094)          NORMAL    NORMAL    (AX113)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G094)          NORMAL    NORMAL    (AX113)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
- eval    TEMPZ    C:  6 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
- strip regrid on Z: TEMP --> (G086)           @LIN
- eval    DEPTH    C:  9 dset:   1 I:    1    2  J:    1    2  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  Z        M: 86 dset:   1 I: -999 -999  J: -999 -999  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
- constan cnst     M: 82 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading TEMP     M: 80 dset:   1 I:    1    2  J:    1    2  K:    1    1  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 82 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 74 dset:   0 I:    1    2  J:    1    2  K:    1    1  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Z        M: 86 dset:   1 I: -999 -999  J: -999 -999  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
- reading TEMP     M: 86 dset:   1 I:    1    2  J:    1    2  K:    7   12  L: -999 -999  M: -999 -999  N: -999 -999
- auxgrd  TEMP     M: 74 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid GAO1            XAXLEVITR1YAXLEVITR4ZAXLEVITR 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 TEMPZ    C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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 (G096)          NORMAL    NORMAL    (AX113)   NORMAL
+ dealloc  dynamic grid (G096)          NORMAL    NORMAL    (AX113)   NORMAL
+ allocate dynamic grid (G096)          NORMAL    NORMAL    (AX113)   NORMAL
+ allocate dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL
+ dealloc  dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL
+ allocate dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL
+ allocate dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX113)   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 (G088)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL
+ strip regrid on Z: TEMP --> (G088)           @LIN
+ eval    DEPTH    C:  9 dset:   1 I:      1      2  J:    1    2  K:    1   20  L:   -999   -999
+ pseudo  Z        M:246 dset:   1 I:   -999   -999  J: -999 -999  K:    1   20  L:   -999   -999
+ constan cnst     M:244 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ found   TEMP     M:248 dset:   1 I:      1      2  J:    1    2  K:    1   11  L:   -999   -999
+ -DELETE cnst     M:244 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE tpry     M:243 dset:   0 I:      1      2  J:    1    2  K:    1    1  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE Z        M:246 dset:   1 I:   -999   -999  J: -999 -999  K:    1   20  L:   -999   -999
+ reading TEMP     M:246 dset:   1 I:      1      2  J:    1    2  K:    7   12  L:   -999   -999
+ auxgrd  TEMP     M:243 dset:   1 I:      1      2  J:    1    2  K:    1    5  L:   -999   -999
+ dealloc  dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL
              VARIABLE : TEMP[GZ(DEPTH)=ZPTS]
              FILENAME : levitus_3d_subset.nc
              SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
@@ -81831,17 +83063,15 @@ LIST/PREC=7 tempz
  48.5S / 2:  5.835500  6.045001
  49.5S / 1:  4.879000  5.102500
 SHOW GRID tempz
- dealloc  dynamic grid (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    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 (G086)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL    NORMAL    NORMAL
-    GRID (G086)
+ dealloc  dynamic grid (G088)          XAXLEVITR1YAXLEVITR4(AX113)   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 (G088)          XAXLEVITR1YAXLEVITR4(AX113)   NORMAL
+    GRID (G088)
  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
  (AX113)   Z                    5 r   100                  500                 full
  normal    T
- normal    E
- normal    F
 !LET tempz = temp[gz=zpts,layerz]  ! same regrid using semi-automated notation
 !LIST/PREC=7 tempz
 !SHOW GRID tempz
@@ -81884,14 +83114,12 @@ LIST tempzax
  48.5S / 2:  5.835500  6.045001
  49.5S / 1:  4.879000  5.102500
 SHOW GRID tempzax
-    GRID (G109)
+    GRID (G107)
  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                 full
  normal    T
- normal    E
- normal    F
 !LET tempzax = temp[gz=zax,layerz]  ! same regrid using semi-automated notation
 !LIST tempzax
 !SHOW GRID tempzax
@@ -81920,14 +83148,12 @@ LIST/PREC=7 tempz_alt
  48.5S / 2:  7.726000  7.917999
  49.5S / 1:  6.843000  7.021999
 SHOW GRID tempz_alt
-    GRID (G096)
+    GRID (G094)
  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
- (AX122)   Z                    5 r   2                    10                  4 pts
+ (AX122)   Z                    5 r   2                    10                  5 pts
  normal    T
- normal    E
- normal    F
  
 !! do same regrid using the shorhand semi-automated notation
 !LIST/PREC=7 temp[z=2:10:2,layerz]   ! lo:hi:delta notation
@@ -81947,14 +83173,12 @@ 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 (G089)
+    GRID (G093)
  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
  (AX125)   Z                    1 r   6                    6                   1 pt
  normal    T
- normal    E
- normal    F
  
        K     Z                   ZBOX      ZBOXLO
        1>  6                     6.E-05     5.99997
@@ -81978,8 +83202,6 @@ SHOW GRID
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAXLEVITR DEPTH (m)           20 i-  0                    5000                1 pt
  normal    T
- normal    E
- normal    F
  
 ! auxiliary points in reverse order
 ! to get results that we can check for correctness, we will reverse the Z-order
@@ -82014,14 +83236,12 @@ LIST/PREC=7 rvtempzax - tempz
  48.5S / 2:  0.0000000  0.0000000
  49.5S / 1:  0.0000000  0.0000000
 SHOW GRID rvtempzax
-    GRID (G109)
+    GRID (G107)
  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
- normal    E
- normal    F
  
 ! deliberate execution errors:
 LET disordered_depth1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
@@ -83209,14 +84429,12 @@ LIST/PREC=7 rvtempzaxave - tempz
  48.5S / 2:  0.00000000  0.00000000
  49.5S / 1:  0.00000000  0.00000000
 SHOW GRID/z rvtempzaxave
-    GRID (G109)
+    GRID (G107)
  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
- normal    E
- normal    F
  
        K     Z                   ZBOX      ZBOXLO
        1>  100                   100        50
@@ -85392,8 +86610,10 @@ CANC MODE VERIFY
               1         2         3         4         5
           20.75000  24.00000  20.75000      ....  20.75000
  
-GO bn_reset
+GO bn_reset bn_plot_ribbon_gaploc
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_ribbon_gaploc
 GO bn_plot_ribbon_gaploc
 ! bn_plot_ribbon_gaploc.jnl
 ! 7/20/2015 *acm*  new PLOT/VS/RIBBON/GAPLOC
@@ -85434,8 +86654,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn_time_short_axes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_time_short_axes
 GO bn_time_short_axes
 ! bn_time_short_axes.jnl
 ! testing time axis style with HH:MM on the time axis labels.
@@ -85465,8 +86687,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn_floatstr_extended
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_floatstr_extended
 GO bn_floatstr_extended
 ! bn_floatstr_extended.jnl
 ! test use of Integer and zero-filled formats in FLOATSTR function (Ferret v6.95)
@@ -85703,14 +86927,17 @@ LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
  
 ! *********** v6.96 Additions ***********
  
-GO bn_reset
+GO bn_reset bn696_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn696_bug_fixes
 GO bn696_bug_fixes
 ! bn696_bug_fixes
 ! test various fixes that went into version 6.96
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err695_bounds_match_axis
 ! err695_bounds_match_axis.jnl
 ! ticket 2321.
@@ -85730,8 +86957,6 @@ sh grid/l=1:4444 temp
  LAT       LATITUDE             1 r   36.65N               36.65N              full
  PFULL1_1  Z (hpa)              1 r-  3.3236               3.3236              full
  TIME17    TIME                 4 i   19-JUN-1997 00:00    19-JUN-1997 01:30   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  19-JUN-1997 00:00:00  0.0208333  18-JUN-1997 23:30:00    0.02083333
@@ -85741,6 +86966,7 @@ sh grid/l=1:4444 temp
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err695_show_dat_nodata
 ! err695_show_dat_nodata.jnl
 ! ticket 2322
@@ -85753,14 +86979,14 @@ USE coads_climatology
 SHOW DATA 1
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
 SHOW DATA coads_climatology
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
  
 ! intentional errors
@@ -85773,16 +86999,17 @@ SET MODE/LAST ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err695_grave_prec
 ! err695_grave_prec
 ! Bug 2323. Large numbers had incorrect results on grave-accent
 ! evaluations, returning only 8 digits of precision
  
 list/nohead/p=16 1234567890123456, `1234567890123456`
- !-> list/nohead/p=16 1234567890123456,   1234567890123456.
+ !-> list/nohead/p=16 1234567890123456, 1234567890123456.
 I / *:     1234567890123456.  1234567890123456.
 list/nohead/p=16 -1234567890123.456, `-1234567890123.456`
- !-> list/nohead/p=16 -1234567890123.456,  -1234567890123.456
+ !-> list/nohead/p=16 -1234567890123.456, -1234567890123.456
 I / *:    -1234567890123.456 -1234567890123.456
  
 ! this was ok
@@ -85792,10 +87019,10 @@ I / *:     1.234567890123456  1.123456789012346
  
 ! check output when asking for lower precision
 list/nohead/p=9 1234567890123456, `1234567890123456`
- !-> list/nohead/p=9 1234567890123456,   1234567890123456.
+ !-> list/nohead/p=9 1234567890123456, 1234567890123456.
 I / *:     1.23456789E+15  1.23456789E+15
 list/nohead/p=6 1234567890123456, `1234567890123456`
- !-> list/nohead/p=6 1234567890123456,   1234567890123456.
+ !-> list/nohead/p=6 1234567890123456, 1234567890123456.
 I / *:     1.23457E+15  1.23457E+15
  
 let var = 1.23456e+34
@@ -85807,8 +87034,10 @@ say `var,prec=4`
  !-> MESSAGE/CONTINUE 1.235E+34
 1.235E+34
  
-GO bn_reset
+GO bn_reset bn_bin_regrid
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_bin_regrid
 GO bn_bin_regrid
 ! bin regridding tests
  
@@ -85865,9 +87094,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GX=dcoarse]
-             X: 0.5 to 5.5
- Column  1: DEST is _X[GX=DCOARSE]
- Column  2: VAR[G=1 delta on X] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X)
+ Column  1: DEST[X=0.5:5.5] is _X[GX=DCOARSE]
+ Column  2: VAR[G=1 delta on X,X=1.5:5.5] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X)
              DEST     VAR
 1   / 1:  1.000000      ....
 2   / 2:  2.000000      ....
@@ -85928,9 +87156,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GY=dcoarse]
-             Y: 0.5 to 5.5
- Column  1: DEST is _Y[GY=DCOARSE]
- Column  2: VAR[G=1 delta on Y] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y)
+ Column  1: DEST[Y=0.5:5.5] is _Y[GY=DCOARSE]
+ Column  2: VAR[G=1 delta on Y,Y=1.5:5.5] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y)
              DEST     VAR
 1   / 1:  1.000000      ....
 2   / 2:  2.000000      ....
@@ -85991,9 +87218,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GZ=dcoarse]
-             Z: 0.5 to 5.5
- Column  1: DEST is _Z[GZ=DCOARSE]
- Column  2: VAR[G=1 delta on Z] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z)
+ Column  1: DEST[Z=0.5:5.5] is _Z[GZ=DCOARSE]
+ Column  2: VAR[G=1 delta on Z,Z=1.5:5.5] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z)
              DEST     VAR
 1   / 1:  1.000000      ....
 2   / 2:  2.000000      ....
@@ -86054,9 +87280,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GT=dcoarse]
-             T: 0.5 to 5.5
- Column  1: DEST is _T[GT=DCOARSE]
- Column  2: VAR[G=1 delta on T] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T)
+ Column  1: DEST[T=0.5:5.5] is _T[GT=DCOARSE]
+ Column  2: VAR[G=1 delta on T,T=1.5:5.5] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T)
              DEST     VAR
 1   / 1:  1.000000      ....
 2   / 2:  2.000000      ....
@@ -86117,9 +87342,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GE=dcoarse]
-             E: 0.5 to 5.5
- Column  1: DEST is _E[GE=DCOARSE]
- Column  2: VAR[G=1 delta on E] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E)
+ Column  1: DEST[E=0.5:5.5] is _E[GE=DCOARSE]
+ Column  2: VAR[G=1 delta on E,E=1.5:5.5] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E)
              DEST     VAR
 1   / 1:  1.000000      ....
 2   / 2:  2.000000      ....
@@ -86180,9 +87404,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GF=dcoarse]
-             F: 0.5 to 5.5
- Column  1: DEST is _F[GF=DCOARSE]
- Column  2: VAR[G=1 delta on F] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F)
+ Column  1: DEST[F=0.5:5.5] is _F[GF=DCOARSE]
+ Column  2: VAR[G=1 delta on F,F=1.5:5.5] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F)
              DEST     VAR
 1   / 1:  1.000000      ....
 2   / 2:  2.000000      ....
@@ -86192,15 +87415,19 @@ LIST dest, var[G$1=dcoarse]
  
  
 ! *********** v6.97 Additions ***********
+!            (released as V7.0)
  
-GO bn_reset
+GO bn_reset bn697_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn697_bug_fixes
 GO bn697_bug_fixes
 ! bn697_bug_fixes
 ! test various fixes that went into version 6.97
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_only_inf_lev
 ! Bug 2326: levels with only a value and (inf) or (-inf)
 ! should show values less-equal or greater-equal to that level.
@@ -86228,6 +87455,7 @@ set view ur; shade/key=horiz/lev=(-inf)(22)(inf) sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_plot_ax_ppl
 ! err696_plot_ax_ppl.jnl
 ! ticket 2327
@@ -86311,6 +87539,7 @@ plot/i=1:199 i*cos(i/10)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_ft_calendars
 ! err696_ft_calendars.jnl
 ! see ticket 2332: check for matching calendars when
@@ -86337,6 +87566,7 @@ can data/all
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_centerlab_restore
 ! err696_centerlab_restore
 ! Ticket 2331.
@@ -86397,6 +87627,7 @@ polygon/trans/i=1:20/nolab/key=horiz  xpts+xsqr, ypts+ysqr, x*x/10
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_time_overlay
 ! err696_time_overlay
 ! bug 2334, first plot/over takes too long and the line is incorrect.
@@ -86404,23 +87635,24 @@ 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
-Wed Jun 15 12:07:20 PDT 2016
+Mon Apr 17 16:48:02 PDT 2017
 set view upper
 plot t[gt=tax_nlp]
 plot/ov/vs/line/dash {1,1}, 1e6*{-1,1}
 sp date
-Wed Jun 15 12:07:20 PDT 2016
+Mon Apr 17 16:48:02 PDT 2017
  
 sp date
-Wed Jun 15 12:07:20 PDT 2016
+Mon Apr 17 16:48:02 PDT 2017
 set view lower
 plot t[gt=tax_jul]
 plot/ov/vs/line/dash {2,2}, 1e6*{-1,1}
 sp date
-Wed Jun 15 12:07:20 PDT 2016
+Mon Apr 17 16:48:02 PDT 2017
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_save_noupcase
 ! err696_save_noupcase
 ! Ticket 2336: When UPCASE canceled an extra upcase axis
@@ -86473,7 +87705,7 @@ variables:
 		var:long_name = "0*TT + X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -86481,6 +87713,7 @@ set mode/last upcase
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_argument_blanks
 ! err696_argument_blanks.jnl
 ! Ticket 2343: quoted argument with a blank at the end.
@@ -86517,6 +87750,7 @@ Hi Hi there my friend
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_annotate_numeric
 ! err696_annotate_numeric
 ! 1/7/2016
@@ -86549,6 +87783,7 @@ annotate/nouser/xpos=1/ypos=0.5 1,2,3,4,5
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_e_component_mem_crptn
 ! canceling of an E aggregation dataset is leaving
 ! corrupted variables in memory as seen by the variable names "%%"
@@ -86579,28 +87814,37 @@ list/i=3 sst[T=@ave]
  4   / 4:  114.0514  113.7646  111.5685  109.8262  106.9033  102.2446      ....      ....      ....
  
 show mem/all
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 540 words
+    Current cache: 504 words
 all data in memory:
- SST[D=fourfiles]                  YE    mr:188  blk1:1  nblk:1
-    3  /106W           1  /12N          ...  / ...         ...  /01-JAN 00:45   1  /0.5          ...  / ...
-    3  /104W           9  /30N          ...  / ...         ...  /31-DEC 06:34   4  /4.5          ...  / ...
+ SST[D=fourfiles]                  YE    mr:242 size:72
+         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:187  blk1:2  nblk:1
-    3  /106W           1  /12N          ...  / ...           1  /01-JAN 00:45   1  /0.5          ...  / ...
-    3  /104W           9  /30N          ...  / ...          12  /31-DEC 06:34   4  /4.5          ...  / ...
+ SST[D=fourfiles]                  YTE   mr:196 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              ... / ...
  
 cancel data fourfiles
 show mem/all
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 540 words
+    Current cache: 0 words
 all data in memory:
  
 exit
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_mem_err_report
 ! err696_mem_err_report.jnl
 ! 1/21/2016 *acm*
+! V702: *sh* 2/17 - This script depends upon the specific formatting
+! of the error string, when memory is exceeded
+! Tweaked it to match the new formatting
+ 
 ! Ticket 2354: The error message shows the wrong number for memory needed.
 !
 ! Try to load some data larger than the default amount of memory
@@ -86617,37 +87861,34 @@ 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 (G092)
+    GRID (G091)
  name       axis              # pts   start                end                 subset
  XAXIS     X                  360 r   1                    360                 full
  YAXIS     Y                  180 r   1                    180                 full
  ZAXIS     Z                   20 r   1                    20                  full
  LONGTIME  TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
- normal    E
- normal    F
  
  
 set mode ignore
 load/l=1:5 bigvar
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 2 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 1296005 (65%)
+    The size of the requested object was: : 6480000 (324%)
  
 ! Previously the number Mwords shown was too low
 show sym fer_last_error
-FER_LAST_ERROR = "**ERROR: request exceeds memory setting: 13 Mwords were requested. "
+FER_LAST_ERROR = "**ERROR: request exceeds memory setting"
 cancel mode ignore
  
-! Get the number Ferret says it needs
-let ms1 = `strrindex("($fer_last_error)", ":")`
- !-> DEFINE VARIABLE ms1 = 40
-let ms2 = `strindex("($fer_last_error)", "Mword")`
- !-> DEFINE VARIABLE ms2 = 45
-let siz = substring("($fer_last_error)", `ms1+1`, `ms2-ms1-1`)
- !-> DEFINE VARIABLE siz = substring("**ERROR: request exceeds memory setting: 13 Mwords were requested. ", 41, 4)
- 
-! Increase memory accordingly
+! V702:  we no longer have to parse the error string.
+! Instead look at PEAK_MEMORY
  
-set mem/siz=`siz`
- !-> set mem/siz= 13
+SET MEMORY/SIZE=15
 load/l=1:5 bigvar
+SHOW SYMBOL ($PEAK_MEMORY)
+ !-> SHOW SYMBOL 7776005
  
 ! restore default
 set mem/siz=`memsize`
@@ -86656,6 +87897,7 @@ set mem/siz=`memsize`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_multiple_slashes
 ! err696_multiple_slashes.jnl
 ! 1/25/2016 *acm*
@@ -86700,19 +87942,19 @@ fill/($regqual)($plotqual) sst
  !-> CONTOUR/FILL//x=300:360///y=-20:20/L=3/pal=grayscale/line//key=cont sst
  
 ! command lines with urls unchanged
-IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
  !-> IF 1 THEN
-   set data///format=cdf http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+   set data///format=cdf http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
    let//d=coads_sst myvar = 1
    sh dat
      currently SET data sets:
     1> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
-    2> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      Sea Surface Temperature          1:180     1:90      ...       1:1680    ...       ...
+    2> http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+ name     title                             I         J         K         L
+ SST      Sea Surface Temperature          1:180     1:90      ...       1:1680
  ------------------------------
  MYVAR[D=coads_sst] = 1
  
@@ -86794,6 +88036,7 @@ repeat/l=1:2 (set reg/x=1:4//)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_2d_time_overlay
 ! err696_2d_time_overlay.jnl
 ! ticket 2360: 2-D time overlay plots have never worked.
@@ -86843,6 +88086,7 @@ shade/ov/pal=grayscale/lev f2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_singlevec_over
 ! err696_singlevec_over.jnl
 ! Ticket 2365: overlay a single vector. If
@@ -86886,6 +88130,7 @@ PPL_VECLEN = "  27.2"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_return_type
 ! err696_return_type
 ! See ticket #2367
@@ -86939,6 +88184,7 @@ list allcat
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_hovmuller_mod_fill
 ! err696_hovmuller_mod_fill.jnl
 ! 3/7/2016 ACM
@@ -86954,6 +88200,7 @@ fill/lin/t=1-jan-0000:31-dec-0001/hlim=1-jan-0000:1-jan-0001/x=180/lev=8 sst
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_repeat_escapes.jnl
 ! err696_repeat_escapes.jnl
 ! Ticket 2376 - parsing error with escaped grave-accent syntax
@@ -87001,6 +88248,7 @@ repeat/k=1:3 (rep/i=1:2 (sp echo \``a`\`))
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_red_keylab.jnl
 ! err696_red_keylab.jnl
 ! Ticket 2375: outline and labels of color key were
@@ -87015,6 +88263,7 @@ fill/over/nolab/key/lev=v,2min temp
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_poly_over_label
 ! err696_poly_over_label
 ! Tiket 2396: incorrect label in the lower
@@ -87082,6 +88331,7 @@ ppl list labels  ! shows cvar for lab2
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_def_ax_f
 ! err696_def_ax_f.jnl
 ! See ticket 2380
@@ -87129,6 +88379,7 @@ list _t[gt=aax]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_mode_cal_f
 ! err696_mode_cal_f.jnl
 ! ticket 2399 MODE CALENDAR and F calendar axes
@@ -87192,6 +88443,7 @@ LAB1 = "F (DAY) : 1.5"
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_def_ax_edges
 ! err696_def_ax_edges
 ! See ticket 2400
@@ -87309,6 +88561,7 @@ def ax/edge/x xax = edges[i=1:4]; sh axis xax; list x[gx=xax]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_write_no_dim
 ! err696_write_no_dim.jnl
 ! ticket 2241: save a subset of a variable whose grid
@@ -87318,10 +88571,10 @@ use nodim
 sh dat
      currently SET data sets:
     1> ./nodim.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  EXPOCODE expocode                         ...       ...       ...       ...       1:1       ...
  NUM_OBS  Number of observations           ...       ...       ...       ...       1:1       ...
- TEMP     sea surface temperature          1:51      ...       ...       ...       ...       ...
+ TEMP     sea surface temperature          1:51      ...       ...       ...
  
  
 ! previously this gave an error
@@ -87354,7 +88607,7 @@ variables:
 		TEMP:history = "From /home/data/socat/socatV3/11SS/11SS20140225.nc" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -87364,6 +88617,7 @@ data:
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_mod_sub_fln
 ! err696_mod_sub_fln.jnl
 ! Ticket 2366, @FLN on a modulo subspan axis
@@ -87432,6 +88686,7 @@ list/x=-180:720 b, b[x=@fln]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_subspan_transforms
 ! err696_subspan_transforms.jnl
 ! See ticket 2364.  Results previously
@@ -88231,6 +89486,7 @@ can var a; can ax xaxis; use a.nc
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_subspan_mod_in_expr
 ! err696_subspan_mod_in_expr.jnl
 ! ticket 1845: a subspan modulo due to context info buried
@@ -88262,6 +89518,7 @@ XAXIS_MAX = "145.345261"
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_shade_subspan_clim
 ! err696_shade_subspan_clim
 ! See ticket 2404
@@ -88280,7 +89537,7 @@ set view ul; shade a*x[gx=0:10:1]
 sh sym yaxis*
 YAXIS_REVERSED = "0"
 YAXIS_MIN = "31.0000000"
-YAXIS_MAX = "212.242500"
+YAXIS_MAX = "243.000000"
  
 ! But the top-right SHADE plot was all messed up; it shifts the data
 ! later by a full month, and stretches the last (shifted) cell all
@@ -88290,7 +89547,7 @@ set view ur; shade/t=1-jan-0001:1-jan-0002 a*x[gx=0:10:1]
 sh sym yaxis*
 YAXIS_REVERSED = "0"
 YAXIS_MIN = "31.0000000"
-YAXIS_MAX = "212.242500"
+YAXIS_MAX = "243.000000"
  
 ! In the bottom-right line plot, the actual plotted data look ok.
 ! But the plot limits extend all the way from 1-JUL-0000 to 1-MAR-0002,
@@ -88301,14 +89558,16 @@ set view lr; plot/step=con/t=1-jan-0001:1-jan-0002 a
 sh sym xaxis*
 XAXIS_REVERSED = "0"
 XAXIS_MIN = "31.0000000"
-XAXIS_MAX = "212.242500"
+XAXIS_MAX = "243.000000"
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! go err696_subspan_mod_strides  ! do this test in bn_gif
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_def_att
 ! err696_def_att.jnl
 ! tickets 2415, 2416
@@ -88364,6 +89623,7 @@ sp ncdump a.nc | grep -i sst
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_return_prec
 ! err696_return_prec.jnl
 ! ACM 5/16 See ticket 2389.
@@ -88426,7 +89686,7 @@ say `1.55555551e8,p=14`
  !-> MESSAGE/CONTINUE 155555551
 155555551
 say `1.555555001e8,p=14`
- !-> MESSAGE/CONTINUE   155555500.1
+ !-> MESSAGE/CONTINUE 155555500.1
 155555500.1
  
  
@@ -88434,6 +89694,7 @@ say `1.555555001e8,p=14`
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err686_show_xml_letd
 ! ! bn_show_xml_letd
 ! Testing SHOW DATA/VAR/XML with a let/D variable
@@ -88448,8 +89709,8 @@ let/d=1 salt2 = salt[d=2]
 sh dat 1
      currently SET data sets:
     1> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
  SALT2[D=coads_climatology] = SALT[D=2]
  W2[D=coads_climatology] = W[D=2]
@@ -88467,13 +89728,16 @@ sp grep "var name" out.xml
 <var name="v2">
 <var name="u2">
  
-GO bn_reset
+GO bn_reset bn_aggregate_t
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_aggregate_t
 GO bn_aggregate_t
 ! 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
+! 1/2017 *acm* changes in output due to backing off auto-detection of truemonth axes, tkt 2497
  
 spawn "mkdir -p tmp"     ! tmp directory t store files
  
@@ -88682,9 +89946,9 @@ tseries myagg1 =  tmp/tagg_reg_1.nc
 show data myagg1
      currently SET data sets:
     2> myagg1  (default)
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
  
 show grid myvar
     GRID GQC1
@@ -88693,8 +89957,6 @@ show grid myvar
  normal    Y
  normal    Z
  TDAY1     TIME                10 r   01-JAN-1980 00:00    10-JAN-1980 00:00   full
- normal    E
- normal    F
  
 ! double file aggregation
 define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
@@ -88705,8 +89967,6 @@ show grid myvar
  normal    Y
  normal    Z
  TDAY2     TIME                20 r   01-JAN-1980 00:00    20-JAN-1980 00:00   full
- normal    E
- normal    F
 stat myvar
  
              SIN(T[GT=TDAY]/10) + L[GT=TDAY]/10
@@ -88730,9 +89990,9 @@ define data/agg/t myAgg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
 show data myAgg2
      currently SET data sets:
     3> myagg2
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
  
  
 ! *sh* 1/28/2016 addition
@@ -88752,11 +90012,11 @@ show data/full  ! all 4 datasets
      currently SET data sets:
     1> tmp/tagg_reg_1.nc
  
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10
                on grid GTR1 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GTR2 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -88765,11 +90025,11 @@ show data/full  ! all 4 datasets
     2> myagg1
  
      T-aggregation of 1 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10
                on grid GQC1 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GQC2 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -88781,11 +90041,11 @@ show data/full  ! all 4 datasets
     3> myagg2
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20
                on grid GQC3 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GQC4 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -88798,11 +90058,11 @@ show data/full  ! all 4 datasets
     4> myAgg2
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20
                on grid GQC5 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GQC6 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -88815,11 +90075,11 @@ show data/full  ! all 4 datasets
     5> ./bn_aggregate_t.jnl
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20
                on grid GQC7 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GQC8 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -88832,11 +90092,11 @@ show data/full  ! all 4 datasets
     6> myagg8  (default)
  
      T-aggregation of 8 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:80      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:80
                on grid GQC9 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GQC10 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -88859,8 +90119,6 @@ show grid myvar
  normal    Y
  normal    Z
  TDAY3     TIME                80 r   01-JAN-1980 00:00    20-MAR-1980 00:00   full
- normal    E
- normal    F
 plot/line/sym myvar
  
 ! read a time-independent field from the first file of the aggregation
@@ -88954,10 +90212,13 @@ tseries myTindepagg = tmp/tagg_reg_no_T.nc
 ! erroneous file 2 with 15 time steps, goes beyond start of file 3
 define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2_overlarge.nc,tmp/tagg_reg_3.nc
  
+! Try to use dataset names not file names. This is not allowed for Tseries aggregations.
+use tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+define data/agg/t myagg2num = 1,2
+ 
 set mode/last ignore
 canc data/all
  
- 
 ! --- irregularly-spaced axes ---
 ! aggregation of 2 irregular datasets
  define data/agg/t myagg2 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc
@@ -88969,8 +90230,8 @@ define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irr
     1> myagg2
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20
                on grid GCV1 with -1.E+34 for missing data
              
  
@@ -88983,8 +90244,8 @@ define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irr
     2> myagg8  (default)
  
      T-aggregation of 8 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:80      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:80
                on grid GCV2 with -1.E+34 for missing data
              
  
@@ -89003,8 +90264,8 @@ define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irr
   show data myagg2
      currently SET data sets:
     1> myagg2
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20
  
   show grid/t myvar[d=1]
     GRID GCV1
@@ -89013,8 +90274,6 @@ define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irr
  normal    Y
  normal    Z
  TDAY_IR1  TIME                20 i   02-JAN-1980 00:00    21-JAN-1980 14:35   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1980 00:00:00  1.013911   01-JAN-1980 11:49:59    1
@@ -89044,8 +90303,6 @@ define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irr
  normal    Y
  normal    Z
  TDAY_IR2  TIME                80 i   02-JAN-1980 00:00    24-MAR-1980 14:00   full
- normal    E
- normal    F
   plot/line/sym myvar[d=2],myvar[d=1]
  
 ! aggregate collection that mixes regular (file 2) with irregular
@@ -89057,8 +90314,6 @@ define data/agg/t myagg4 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2_reg.nc,tmp/tagg
  normal    Y
  normal    Z
  TDAY_IR3  TIME                40 i   02-JAN-1980 00:00    11-FEB-1980 12:04   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1980 00:00:00  1.013911   01-JAN-1980 11:49:59    1
@@ -89119,8 +90374,8 @@ define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/
     1> myagg2
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8
                on grid GBN1 with -1.E+34 for missing data
              
  
@@ -89133,8 +90388,8 @@ define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/
     2> myagg8  (default)
  
      T-aggregation of 5 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:20
                on grid GBN2 with -1.E+34 for missing data
              
  
@@ -89150,8 +90405,8 @@ define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/
   show data myagg2
      currently SET data sets:
     1> myagg2
- name     title                             I         J         K         L         M         N
- MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8
  
   show grid/t myvar[d=1]
     GRID GBN1
@@ -89160,8 +90415,6 @@ define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/
  normal    Y
  normal    Z
  TDAY_TVAR TIME                 8 r   02-JAN-1980 00:00    09-JAN-1980 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1980 00:00:00  1          01-JAN-1980 12:00:00    1
@@ -89179,8 +90432,6 @@ define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/
  normal    Y
  normal    Z
  TDAY_TVAR1 TIME               20 r   02-JAN-1980 00:00    21-JAN-1980 00:00   full
- normal    E
- normal    F
   plot/line/sym myvar[d=2],myvar[d=1]
  
 canc data/all
@@ -89197,8 +90448,8 @@ define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T
     1> myagg2
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11
                on grid GKQ1 with -1.E+34 for missing data
              
  
@@ -89211,8 +90462,8 @@ define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T
     2> myagg8  (default)
  
      T-aggregation of 8 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:62      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:62
                on grid GKQ2 with -1.E+34 for missing data
              
  
@@ -89231,8 +90482,8 @@ define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T
   show data myagg2
      currently SET data sets:
     1> myagg2
- name     title                             I         J         K         L         M         N
- MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11
  
   show grid/t myvar[d=1]
     GRID GKQ1
@@ -89241,8 +90492,6 @@ define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T
  normal    Y
  normal    Z
  TDAY_TVAR TIME                11 i   02-JAN-1981 00:00    11-JAN-1982 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    1
@@ -89263,8 +90512,6 @@ define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T
  normal    Y
  normal    Z
  TDAY_TVAR1 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
- normal    E
- normal    F
   plot/line/sym/vlim=0:11 myvar[d=2],myvar[d=1]
  
 ! a few tests of using Ferret string variables to get the names of files
@@ -89272,9 +90519,9 @@ define data/agg/t listAgg1 = {"tmp/tagg_reg_1.nc", "tmp/tagg_reg_2.nc"}
 show data/files listAgg1
      currently SET data sets:
     3> listAgg1  (default)
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
  
           time-dependent data files:
 01-JAN-1980 00:00 -> 10-JAN-1980 00:00    tmp/tagg_reg_1.nc
@@ -89287,9 +90534,9 @@ define data/agg/t listAgg2 = file_list
 show data/files listAgg2
      currently SET data sets:
     4> listAgg2  (default)
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:90      ...       ...
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:90
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
  
           time-dependent data files:
 01-JAN-1980 00:00 -> 10-JAN-1980 00:00    tmp/tagg_reg_1.nc
@@ -89326,8 +90573,6 @@ show grid/l=1:8 myvar[d=myagg8]
  normal    Y
  normal    Z
  TDAY_TVAR1 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    1
@@ -89345,8 +90590,6 @@ show grid/l=1:8 myvar[d=myagg8_disordered3]
  normal    Y
  normal    Z
  TDAY_TVAR2 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    -364
@@ -89379,11 +90622,11 @@ show data/full  MYsing_reg_agg6
     1> MYsing_reg_agg6  (default)
  
      T-aggregation of 6 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:6       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:6
                on grid GMI1 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GMI2 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -89404,8 +90647,6 @@ show grid/t myvar
  normal    Y
  normal    Z
  TDAY1     TIME                 6 r   01-JAN-1980 00:00    06-JAN-1980 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  01-JAN-1980 00:00:00  1          31-DEC-1979 12:00:00    28840
@@ -89441,11 +90682,11 @@ show data/full MYsing_irreg_agg4
     2> MYsing_irreg_agg4  (default)
  
      T-aggregation of 4 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:4       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:4
                on grid GMI3 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GMI4 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -89464,8 +90705,6 @@ show grid/t myvar
  normal    Y
  normal    Z
  TDAY2     TIME                 4 i   01-JAN-1980 00:00    05-JAN-1980 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  01-JAN-1980 00:00:00  1          31-DEC-1979 12:00:00    28840
@@ -89532,14 +90771,18 @@ stat/brief TBOXHI[g=myvar[d=MYsing_irreg_agg4]] - TBOXHI[g=myvar[d=MYsing_irreg_
 canc data/all
  
 ! OPeNDAP test
-IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc") EQ 0` THEN
+! (Note: when running pre-true-month Ferret versions, the timestep output from
+! show grid/T below was eliminated by the "clean_draconian" script)
+! 1/17/2017 changes due to backing off auto-detection of truemonth axes, tkt 2497
+ 
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc") EQ 0` THEN
  !-> IF 1 THEN
-   tseries COADS = http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc, http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2013.nc, http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2014.nc
+   tseries COADS = http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc, http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/ferret/test_coads_monthly_air_2013.nc, http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/ferret/test_coads_monthly_air_2014.nc
 show data COADS
      currently SET data sets:
     1> COADS  (default)
- name     title                             I         J         K         L         M         N
- AIR      Air Temperature Monthly Mean_da  1:180     1:90      ...       1:36      ...       ...
+ name     title                             I         J         K         L
+ AIR      Air Temperature Monthly Mean_da  1:180     1:90      ...       1:36
  
 show grid/T air
     GRID GMW1
@@ -89548,8 +90791,6 @@ show grid/T air
  LAT       LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME17    TIME                36 i   16-JAN-2012 12:00    16-DEC-2014 12:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  16-JAN-2012 12:00:00  31         01-JAN-2012 00:00:00    77446.5
@@ -89620,8 +90861,10 @@ show data/br
     1> myagg3  (default)
 cancel data/all
  
-GO bn_reset
+GO bn_reset bn_unquoted_args
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_unquoted_args
 GO bn_unquoted_args
 ! bn_unquoted_args.jnl
 ! 12/2015 -- a hack change to PPARSE_COMMAND to allow users to omit
@@ -89639,10 +90882,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/users/ansley/build/current_trunk/FERRET/bench/tmp/test1.nc
+ !-> define sym use_abs_path = /home/users/ansley/build/working/FERRET/bench/tmp/test1.nc
 say ($use_abs_path)
- !-> MESSAGE/CONTINUE /home/users/ansley/build/current_trunk/FERRET/bench/tmp/test1.nc
-/home/users/ansley/build/current_trunk/FERRET/bench/tmp/test1.nc
+ !-> MESSAGE/CONTINUE /home/users/ansley/build/working/FERRET/bench/tmp/test1.nc
+/home/users/ansley/build/working/FERRET/bench/tmp/test1.nc
  
 use tmp/test1.nc
 show data/brief
@@ -89669,17 +90912,17 @@ show data/brief
 canc data/all
  
 use "($use_abs_path)"
- !-> SET DAT/FORM=CDF "/home/users/ansley/build/current_trunk/FERRET/bench/tmp/test1.nc"
+ !-> SET DAT/FORM=CDF "/home/users/ansley/build/working/FERRET/bench/tmp/test1.nc"
 show data/brief
      currently SET data sets:
-    1> /home/users/ansley/build/current_trunk/FERRET/bench/tmp/test1.nc  (default)
+    1> /home/users/ansley/build/working/FERRET/bench/tmp/test1.nc  (default)
 canc data/all
  
 use ($use_abs_path)
- !-> SET DAT/FORM=CDF /home/users/ansley/build/current_trunk/FERRET/bench/tmp/test1.nc
+ !-> SET DAT/FORM=CDF /home/users/ansley/build/working/FERRET/bench/tmp/test1.nc
 show data/brief
      currently SET data sets:
-    1> /home/users/ansley/build/current_trunk/FERRET/bench/tmp/test1.nc  (default)
+    1> /home/users/ansley/build/working/FERRET/bench/tmp/test1.nc  (default)
 canc data/all
  
 use tmp/test1.nc,tmp/test2.nc,tmp/test3.nc
@@ -89698,24 +90941,24 @@ show data/brief
     3> tmp/test3.nc  (default)
 canc data/all
  
-IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
  !-> IF 1 THEN
-  use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
+  use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
   show data/brief
      currently SET data sets:
-    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+    1> http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
   canc data/all
-  use http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+  use http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
   show data/brief
      currently SET data sets:
-    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+    1> http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
   canc data/all
-  use tmp/test1.nc, "tmp/test2.nc", http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+  use tmp/test1.nc, "tmp/test2.nc", http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
   show data/brief
      currently SET data sets:
     1> tmp/test1.nc
     2> tmp/test2.nc
-    3> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+    3> http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
   canc data/all
 ELSE
 ENDIF
@@ -89745,10 +90988,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/users/ansley/build/current_trunk/FERRET/bench/tmp/testMe.jnl
+ !-> define sym abs_path = /home/users/ansley/build/working/FERRET/bench/tmp/testMe.jnl
 say ($abs_path)
- !-> MESSAGE/CONTINUE /home/users/ansley/build/current_trunk/FERRET/bench/tmp/testMe.jnl
-/home/users/ansley/build/current_trunk/FERRET/bench/tmp/testMe.jnl
+ !-> MESSAGE/CONTINUE /home/users/ansley/build/working/FERRET/bench/tmp/testMe.jnl
+/home/users/ansley/build/working/FERRET/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"
@@ -89761,13 +91004,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/users/ansley/build/current_trunk/FERRET/bench/tmp/testMe.jnl
+ !-> go /home/users/ansley/build/working/FERRET/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/users/ansley/build/current_trunk/FERRET/bench/tmp/testMe.jnl"
+ !-> go "/home/users/ansley/build/working/FERRET/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
@@ -89783,13 +91026,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/users/ansley/build/current_trunk/FERRET/bench/tmp/testMe.jnl 5 hello "bye" "/quoted_path" /unquoted_path
+ !-> go /home/users/ansley/build/working/FERRET/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/users/ansley/build/current_trunk/FERRET/bench/tmp/testMe.jnl" 5 hello "bye" "/quoted_path" /unquoted_path
+ !-> go "/home/users/ansley/build/working/FERRET/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
@@ -89828,8 +91071,10 @@ set mode/last ignore
  
  
  
-GO bn_reset
+GO bn_reset bn_long_lists
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_long_lists
 GO bn_long_lists
 ! bn_long_lists.jnl
 ! See ticket 2337
@@ -89973,8 +91218,10 @@ let file_list = {\
  
 set mode/last ignore
  
-GO bn_reset
+GO bn_reset bn_show_uvar_grid
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_show_uvar_grid
 GO bn_show_uvar_grid
 ! bn_show_uvar_grid.jnl
 ! Add notes to the output of SHOW GRID for variables and expressions
@@ -89989,23 +91236,19 @@ use coads_climatology
 show grid sst[x=240:320,y=0,t=@ave]
     GRID GSQ1
  name       axis              # pts   start                end                 subset
- COADSX    LONGITUDE          180mr   21E                  19E(379)            39 pts
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            40 pts
  COADSY    LATITUDE            90 r   89S                  89N                 1 pt
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        compressed
- normal    E
- normal    F
  
 ! Modulo axes ask for superset
 show grid sst[x=0:540,L=1:15]
     GRID GSQ1
  name       axis              # pts   start                end                 subset
- COADSX    LONGITUDE          180mr   21E                  19E(379)            269 pts
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            270 pts
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        14 pts
- normal    E
- normal    F
+ TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        15 pts
  
 ! Constant: full abstract grid
 show grid 1
@@ -90026,18 +91269,14 @@ show grid {1}
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 let var = {1,2,4,8}  ! Note that show grid {1,2,4,8} fails: bug
 show grid var
     GRID XABSTRACT
  name       axis              # pts   start                end                 subset
- ABSTRACT  X             99999999 r   1                    1.E+08              3 pts
+ ABSTRACT  X             99999999 r   1                    1.E+08              4 pts
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! but don't show any user-var grid info if they just ask for the grid by name
 show grid `sst,return=grid`
@@ -90048,8 +91287,6 @@ show grid `sst,return=grid`
  COADSY    LATITUDE            90 r   89S                  89N
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
  
 ! grid of last variable loaded
 load sst[x=240,y=@iin,t=@ave]
@@ -90062,8 +91299,6 @@ show grid
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        compressed
- normal    E
- normal    F
  
 ! Result grid is full grid
 let var = sst[L=@ave] - sst[x=@max] - sst[y=0]
@@ -90074,8 +91309,6 @@ show grid var
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! transform on single-point range is equiv. to single-point subset
  
@@ -90088,8 +91321,6 @@ show grid var
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
 set mode/last interpolate
 let var = sst[X=30:30.1 at max]
 show grid var
@@ -90099,31 +91330,25 @@ show grid var
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! dynamic grid
 let var = sst[y=-10:10:.1,l=1,x=160e]
 show grid var
-    GRID (G084)
+    GRID (G086)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX113)   LATITUDE           201 r   10S                  10N                 200 pts
+ (AX111)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
- normal    E
- normal    F
  
 ! striding
 show grid sst[i=1:180:3,j=1:90:2]
-    GRID (G088)
+    GRID (G085)
  name       axis              # pts   start                end                 subset
- (AX120)   LONGITUDE           60 r   21E                  15E(375)            59 pts
- (AX133)   LATITUDE            45 r   89S                  87N                 44 pts
+ (AX113)   LONGITUDE           60 r   21E                  15E(375)            60 pts
+ (AX133)   LATITUDE            45 r   89S                  87N                 45 pts
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! regridding
  
@@ -90131,25 +91356,21 @@ 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 (G088)
+    GRID (G085)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- DAX       TIME              1096 r   01-JAN-1980 00:00    31-DEC-1982 00:00   44 pts
- normal    E
- normal    F
+ DAX       TIME              1096 r   01-JAN-1980 00:00    31-DEC-1982 00:00   45 pts
  
 let vwnd_clim = vwnd[gt=month_irreg at mod]
 sh grid vwnd_clim[L=4:9]
-    GRID (G104)
+    GRID (G084)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49        5 pts
- normal    E
- normal    F
+ MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49        6 pts
  
 can dat/all
 use coads_climatology
@@ -90164,19 +91385,15 @@ show grid var
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 let var = sst[y=-30:30 at iin]
 show grid var
     GRID GSQ1
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- COADSY    LATITUDE            90 r   89S                  89N                 29 pts
+ COADSY    LATITUDE            90 r   89S                  89N                 30 pts
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 use levitus_3d_subset
 let var = temp[z=@weq:20]
@@ -90187,8 +91404,6 @@ show grid var
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAXLEVITR DEPTH (m)           20 i-  0                    5000                full
  normal    T
- normal    E
- normal    F
  
 let var = temp[z=1:120 at weq:20]
 show grid var
@@ -90196,10 +91411,8 @@ show grid var
  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                6 pts
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                7 pts
  normal    T
- normal    E
- normal    F
  
  
 ! grid-changing functions
@@ -90208,48 +91421,40 @@ use levitus_3d_subset
 let depth =  Z[G=TEMP]+ 0*TEMP[K=1]
 let depth_rev = zreverse(depth)
 show grid depth_rev
-    GRID (G083)
+    GRID (G106)
  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
  ABSTRACT  Z             99999999 r   1                    1.E+08              (axis from grid-changing func)
  normal    T
- normal    E
- normal    F
  
 DEFINE AXIS/t=1-Jan-1990:31-Dec-1990:24/t0=1-jan-1980 dayt
 let tpts = t[gt=dayt]
 LET sample_function = sin(0.5*tpts - 6.)/2. - cos(0.3*tpts)
  
 show grid ffta(sample_function)
-    GRID (G088)
+    GRID (G085)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  (AX125)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
- normal    E
- normal    F
  
 show grid ffta(sample_function[t=15-jan-1990:15-jun-1990])
-    GRID (G088)
+    GRID (G085)
  name       axis              # pts   start                end                 subset
  normal    X
  normal    Y
  normal    Z
  (AX133)   T (CYC/HOURS)       76 r   0.00027412           0.020833            (axis from grid-changing func)
- normal    E
- normal    F
  
 show grid ffta(sample_function + temp[d=levitus_3d_subset,z=0:40])
-    GRID (G104)
+    GRID (G084)
  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                3 pts
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                4 pts
  (AX125)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
- normal    E
- normal    F
  
 can dat/all
  
@@ -90262,23 +91467,19 @@ LET/D=levitus_3d_subset depth = z[g=temp]+ 0*temp[k=1]
 let  TEMPZ = TEMP[GZ(DEPTH)=ZPTS]
  
 sh grid tempz
-    GRID (G084)
+    GRID (G086)
  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
- (AX113)   Z                    5 r   100                  500                 full
+ (AX111)   Z                    5 r   100                  500                 full
  normal    T
- normal    E
- normal    F
 sh grid tempz[z=100:400]
-    GRID (G084)
+    GRID (G086)
  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
- (AX113)   Z                    5 r   100                  500                 3 pts
+ (AX111)   Z                    5 r   100                  500                 4 pts
  normal    T
- normal    E
- normal    F
  
 ! and with a grid-changing function thrown in
  
@@ -90292,30 +91493,28 @@ LET rvtemp  = rvtemp0[gz=temp at asn]
 LET rvdepth0 = ZREVERSE(depth)
 LET rvtempzax = rvtemp[gz(rvdepth)=zax,z=100:500]
 show grid rvtempzax
-    GRID (G109)
+    GRID (G107)
  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
- normal    E
- normal    F
  
 ! gc func: limits are hidden so a subset not seen
  
 LET rvtempzax = rvtemp[gz(rvdepth)=zax]
 show grid rvtempzax[z=100:300]
-    GRID (G109)
+    GRID (G107)
  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
- normal    E
- normal    F
  
-GO bn_reset
+GO bn_reset bn_aggregate_f
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_aggregate_f
 GO bn_aggregate_f
 ! bn_aggregate_f.F
 ! 12/2015 *sh*
@@ -90442,18 +91641,18 @@ show data/files my_fmrc
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:11
        (L=1:24)
  
-          Aggregated datasets:
-      1 : tmp/fcst_1.nc
-      2 : tmp/fcst_2.nc
-      3 : tmp/fcst_3.nc
-      4 : tmp/fcst_4.nc
-      5 : tmp/fcst_5.nc
-      6 : tmp/fcst_6.nc
-      7 : tmp/fcst_7.nc
-      8 : tmp/fcst_8.nc
-      9 : tmp/fcst_9.nc
-      10: tmp/fcst_10.nc
-      11: tmp/fcst_11.nc
+          Member datasets:
+      12.1 : tmp/fcst_1.nc
+      12.2 : tmp/fcst_2.nc
+      12.3 : tmp/fcst_3.nc
+      12.4 : tmp/fcst_4.nc
+      12.5 : tmp/fcst_5.nc
+      12.6 : tmp/fcst_6.nc
+      12.7 : tmp/fcst_7.nc
+      12.8 : tmp/fcst_8.nc
+      12.9 : tmp/fcst_9.nc
+      12.10: tmp/fcst_10.nc
+      12.11: tmp/fcst_11.nc
 show data/attr my_fmrc
      currently SET data sets:
    12> my_fmrc  (default)  Forecast aggregation
@@ -90699,18 +91898,18 @@ show data/files my_fmrc
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:11
        (L=1:24)
  
-          Aggregated datasets:
-      1 : tmp/fcst_1.nc
-      2 : (dummy)
-      3 : (dummy)
-      4 : tmp/fcst_4.nc
-      5 : tmp/fcst_5.nc
-      6 : tmp/fcst_6.nc
-      7 : tmp/fcst_7.nc
-      8 : tmp/fcst_8.nc
-      9 : (dummy)
-      10: (dummy)
-      11: tmp/fcst_11.nc
+          Member datasets:
+      12.1 : tmp/fcst_1.nc
+      12.2 : (dummy)
+      12.3 : (dummy)
+      12.4 : tmp/fcst_4.nc
+      12.5 : tmp/fcst_5.nc
+      12.6 : tmp/fcst_6.nc
+      12.7 : tmp/fcst_7.nc
+      12.8 : tmp/fcst_8.nc
+      12.9 : (dummy)
+      12.10: (dummy)
+      12.11: tmp/fcst_11.nc
 show data/brief
      currently SET data sets:
     2> tmp/fcst_2.nc
@@ -90738,6 +91937,7 @@ LIST tf_times
  01-JAN-1952 /  9:  19007.50  19098.00  19189.50  19281.50  19373.50  19463.00  19554.50  19646.50
  01-APR-1952 / 10:  19098.00  19189.50  19281.50  19373.50  19463.00  19554.50  19646.50  19738.50
  01-JUL-1952 / 11:  19189.50  19281.50  19373.50  19463.00  19554.50  19646.50  19738.50  19828.00
+ 
 GO bn_aggregate_f.sub
 ! bn_aggregate_f.sub
  
@@ -90960,16 +92160,16 @@ show data/files my_fmrc
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:9
        (L=1:36)
  
-          Aggregated datasets:
-      1: tmp/long_fcst_1.nc
-      2: tmp/fcst_2.nc
-      3: tmp/fcst_3.nc
-      4: tmp/fcst_4.nc
-      5: tmp/fcst_5.nc
-      6: tmp/fcst_6.nc
-      7: tmp/fcst_7.nc
-      8: tmp/fcst_8.nc
-      9: tmp/fcst_9.nc
+          Member datasets:
+      10.1: tmp/long_fcst_1.nc
+      10.2: tmp/fcst_2.nc
+      10.3: tmp/fcst_3.nc
+      10.4: tmp/fcst_4.nc
+      10.5: tmp/fcst_5.nc
+      10.6: tmp/fcst_6.nc
+      10.7: tmp/fcst_7.nc
+      10.8: tmp/fcst_8.nc
+      10.9: tmp/fcst_9.nc
 GO bn_aggregate_f.sub
 ! bn_aggregate_f.sub
  
@@ -91170,15 +92370,15 @@ show data/files my_fmrc
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:8
        (L=1:24)
  
-          Aggregated datasets:
-      1: tmp/fcst_1.nc
-      2: tmp/fcst_2.nc
-      3: tmp/fcst_3.nc
-      4: tmp/fcst_4.nc
-      5: tmp/fcst_5.nc
-      6: tmp/long_fcst_6.nc
-      7: tmp/fcst_7.nc
-      8: tmp/fcst_8.nc
+          Member datasets:
+      9.1: tmp/fcst_1.nc
+      9.2: tmp/fcst_2.nc
+      9.3: tmp/fcst_3.nc
+      9.4: tmp/fcst_4.nc
+      9.5: tmp/fcst_5.nc
+      9.6: tmp/long_fcst_6.nc
+      9.7: tmp/fcst_7.nc
+      9.8: tmp/fcst_8.nc
 GO bn_aggregate_f.sub
 ! bn_aggregate_f.sub
  
@@ -91374,12 +92574,12 @@ show data/files
        (L=7:30)
  TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:5
  
-          Aggregated datasets:
-      1: tmp/fcst_3.nc
-      2: tmp/fcst_4.nc
-      3: tmp/fcst_5.nc
-      4: tmp/one_var_fcst_6.nc
-      5: tmp/fcst_7.nc
+          Member datasets:
+      6.1: tmp/fcst_3.nc
+      6.2: tmp/fcst_4.nc
+      6.3: tmp/fcst_5.nc
+      6.4: tmp/one_var_fcst_6.nc
+      6.5: tmp/fcst_7.nc
 stat/l=1:20 fcst
  
              FIELD + FCST_ERROR
@@ -91423,12 +92623,12 @@ show data/full
  
   time range: 15.228 to 715.73
  
-          Aggregated datasets:
-      1: tmp/fcst_3.nc
-      2: tmp/fcst_4.nc
-      3: tmp/fcst_5.nc
-      4: tmp/one_var_fcst_6.nc
-      5: tmp/fcst_7.nc
+          Member datasets:
+      6.1: tmp/fcst_3.nc
+      6.2: tmp/fcst_4.nc
+      6.3: tmp/fcst_5.nc
+      6.4: tmp/one_var_fcst_6.nc
+      6.5: tmp/fcst_7.nc
     7> my_fmrc  (default)  Forecast aggregation
      Forecast series of 5 datasets patterned on fcst_3.nc
  name     title                             I         J         K         L         M         N
@@ -91442,12 +92642,12 @@ show data/full
  
   time range: 15.228 to 715.73
  
-          Aggregated datasets:
-      1: tmp/fcst_3.nc
-      2: tmp/fcst_4.nc
-      3: tmp/fcst_5.nc
-      4: tmp/one_var_fcst_6.nc
-      5: tmp/fcst_7.nc
+          Member datasets:
+      7.1: tmp/fcst_3.nc
+      7.2: tmp/fcst_4.nc
+      7.3: tmp/fcst_5.nc
+      7.4: tmp/one_var_fcst_6.nc
+      7.5: tmp/fcst_7.nc
  
 ! cancel a component dataset -- used in two aggregations
 cancel data tmp/fcst_4.nc
@@ -91488,14 +92688,14 @@ show data/files
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
        (L=1:24)
  
-          Aggregated datasets:
-      1: tmp/fcst_1.nc
-      2: tmp/fcst_2.nc
-      3: tmp/fcst_3.nc
-      4: tmp/fcst_4.nc
-      5: tmp/fcst_5.nc
-      6: tmp/one_var_fcst_6.nc
-      7: tmp/fcst_7.nc
+          Member datasets:
+      9.1: tmp/fcst_1.nc
+      9.2: tmp/fcst_2.nc
+      9.3: tmp/fcst_3.nc
+      9.4: tmp/fcst_4.nc
+      9.5: tmp/fcst_5.nc
+      9.6: tmp/one_var_fcst_6.nc
+      9.7: tmp/fcst_7.nc
    11> my_fmrc_letd_1     Forecast aggregation
  name     title                             I         J         K         L         M         N
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
@@ -91504,14 +92704,14 @@ show data/files
  FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
        (L=1:24)
  
-          Aggregated datasets:
-      1: tmp/one_var_fcst_1.nc
-      2: tmp/fcst_2.nc
-      3: tmp/fcst_3.nc
-      4: tmp/fcst_4.nc
-      5: tmp/fcst_5.nc
-      6: tmp/fcst_6.nc
-      7: tmp/fcst_7.nc
+          Member datasets:
+      11.1: tmp/one_var_fcst_1.nc
+      11.2: tmp/fcst_2.nc
+      11.3: tmp/fcst_3.nc
+      11.4: tmp/fcst_4.nc
+      11.5: tmp/fcst_5.nc
+      11.6: tmp/fcst_6.nc
+      11.7: tmp/fcst_7.nc
    12> my_fmrc  (default)  Forecast aggregation
  name     title                             I         J         K         L         M         N
  FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
@@ -91520,14 +92720,14 @@ show data/files
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
        (L=1:24)
  
-          Aggregated datasets:
-      1: tmp/fcst_1.nc
-      2: tmp/fcst_2.nc
-      3: tmp/fcst_3.nc
-      4: tmp/fcst_4.nc
-      5: tmp/fcst_5.nc
-      6: tmp/fcst_6.nc
-      7: tmp/fcst_7.nc
+          Member datasets:
+      12.1: tmp/fcst_1.nc
+      12.2: tmp/fcst_2.nc
+      12.3: tmp/fcst_3.nc
+      12.4: tmp/fcst_4.nc
+      12.5: tmp/fcst_5.nc
+      12.6: tmp/fcst_6.nc
+      12.7: tmp/fcst_7.nc
 show data
      currently SET data sets:
     9> my_fmrc_letd_6     Forecast aggregation
@@ -91655,12 +92855,15 @@ SH DATA/BR/HIDDEN
  
 set mode/last ignore
  
-GO bn_reset
+GO bn_reset bn_aggregate_tef
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_aggregate_tef
 GO bn_aggregate_tef
 ! 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
  
 ! to avoid re-creating the test files include argument "0" as in
 !  yes?  GO bn_aggregate_tef 0
@@ -91671,8 +92874,10 @@ 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/files/br
+show data/members/br
      currently SET data sets:
     1> t_f01_e1
           time-dependent data files:
@@ -92016,20 +93221,16 @@ show grid fcst[d=t_f01_e1]
     GRID GFA1
  name       axis              # pts   start                end                 subset
  XAX       LONGITUDE           21mr   140E                 160E                full
- YAX       LATITUDE            11 r   10N                  20N                 full
+ YAX1      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
- normal    E
- normal    F
 show grid fcst[d=t_f01_e2]
     GRID GFA1
  name       axis              # pts   start                end                 subset
  XAX       LONGITUDE           21mr   140E                 160E                full
- YAX       LATITUDE            11 r   10N                  20N                 full
+ YAX1      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
- normal    E
- normal    F
  
 ! ======== TEST SET 1:  aggregate E first, then F
  
@@ -92084,12 +93285,12 @@ SHOW DATA/FULL te_f11
  
   time range: 16-JUL-1952 12:00 to 16-JUN-1955 00:00
  
-          Aggregated datasets:
-      1: t_f11_e1
-      2: t_f11_e2
-      3: t_f11_e3
-      4: t_f11_e4
-      5: t_f11_e5
+          Member datasets:
+      67.1: t_f11_e1
+      67.2: t_f11_e2
+      67.3: t_f11_e3
+      67.4: t_f11_e4
+      67.5: t_f11_e5
 SHOW DATA/ATT te_f11   ! notice the promotion of fcst.im_everywhere
      currently SET data sets:
    67> te_f11  (default)  Ensemble aggregation
@@ -92113,7 +93314,7 @@ SHOW DATA/ATT te_f11   ! notice the promotion of fcst.im_everywhere
  
 ! define tef aggregation
 FMRC/HIDE tef = te_f01, te_f02, te_f03, te_f04, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
-SHOW DATA/brief/files
+SHOW DATA/brief/members
      currently SET data sets:
     1> t_f01_e1
           time-dependent data files:
@@ -92152,18 +93353,18 @@ SHOW DATA/brief/files
 16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e3_t3_1v.nc
  
    68> tef  (default)  Forecast aggregation
-          Aggregated datasets:
-      1 : te_f01
-      2 : te_f02
-      3 : te_f03
-      4 : te_f04
-      5 : te_f05
-      6 : te_f06
-      7 : te_f07
-      8 : te_f08
-      9 : te_f09
-      10: te_f10
-      11: te_f11
+          Member datasets:
+      68.1 : te_f01
+      68.2 : te_f02
+      68.3 : te_f03
+      68.4 : te_f04
+      68.5 : te_f05
+      68.6 : te_f06
+      68.7 : te_f07
+      68.8 : te_f08
+      68.9 : te_f09
+      68.10: te_f10
+      68.11: te_f11
 show data/full tef
      currently SET data sets:
    68> tef  (default)  Forecast aggregation
@@ -92183,18 +93384,18 @@ show data/full tef
  
   time range: 15.214 to 1080.2
  
-          Aggregated datasets:
-      1 : te_f01
-      2 : te_f02
-      3 : te_f03
-      4 : te_f04
-      5 : te_f05
-      6 : te_f06
-      7 : te_f07
-      8 : te_f08
-      9 : te_f09
-      10: te_f10
-      11: te_f11
+          Member datasets:
+      68.1 : te_f01
+      68.2 : te_f02
+      68.3 : te_f03
+      68.4 : te_f04
+      68.5 : te_f05
+      68.6 : te_f06
+      68.7 : te_f07
+      68.8 : te_f08
+      68.9 : te_f09
+      68.10: te_f10
+      68.11: te_f11
  
 ! simplest acess -- compact form -- just demonstrate it doesn't fail
 stat/brief fcst[i=11:12, j=5:6, l=31:32, m=1:2, n=5:6]
@@ -92231,7 +93432,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        30   T       FERRET V7 (beta/dbg) 15-Jun-16
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 11-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (XAX)                  DOUBLE    point_spacing   CHAR        4    T       even
@@ -92242,7 +93443,7 @@ SHOW DATA/ATT t_f04_e3_1v ! note atts im_everwhere vs im_not_everwhere
                                  orig_file_axname
                                                  CHAR        3    F       XAX
   
-(YAX)                  DOUBLE    point_spacing   CHAR        4    T       even
+(YAX1)                 DOUBLE    point_spacing   CHAR        4    T       even
                                  axis            CHAR        1    T       Y
                                  units           CHAR        13   T       degrees_north
                                  standard_name   CHAR        8    F       latitude
@@ -92516,7 +93717,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        32   T       RUN TIME16 TF_TIMES ZAX1 YAX XAX
+                                 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
@@ -92531,7 +93732,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        38   T       TF_CAL_F1 TIME16 TF_TIMES ZAX1 YAX XAX
+                                 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
                                  _lag_f_ax       CHAR        8    T       TF_LAG_F
@@ -92653,18 +93854,18 @@ set mode/last ignore
  
 CANCEL DATA/ALL
  
-GO bn_reset
-cancel mode verify
+!GO bn_reset
 ! Add this to the gif benchmark tests
 ! GO bn_hovmuller_overlays
  
-GO bn_reset
-cancel mode verify
+!GO bn_reset
 ! Add this to the gif benchmark tests
 ! GO bn_labels_on_taxis
  
-GO bn_reset
+GO bn_reset bn_dataset_qualifier
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dataset_qualifier
 GO bn_dataset_qualifier
 ! bn_dataset_qualifier
 ! see ticket 2632
@@ -92729,7 +93930,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
 use a.nc
 sh att .
      attributes for dataset: ./a.nc
- ..history = FERRET V7 (beta/dbg) 15-Jun-16 
+ ..history = FERRET V7.1 (beta/debug) 17-Apr-17 
  ..Conventions = CF-1.6 
  ..dt_internal = 15
 sh att elev
@@ -92750,7 +93951,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
 use a.nc
 sh att .
      attributes for dataset: ./a.nc
- ..history = FERRET V7 (beta/dbg) 15-Jun-16 
+ ..history = FERRET V7.1 (beta/debug) 17-Apr-17 
  ..Conventions = CF-1.6 
 sh att elev
      attributes for dataset: ./a.nc
@@ -92774,11 +93975,9 @@ show grid
     GRID (G200)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX110)   LATITUDE           201 r   10S                  10N                 200 pts
+ (AX114)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
- normal    E
- normal    F
  
 ! LIST/DAT=, LET/DAT=,
 can dat/all
@@ -92797,7 +93996,6 @@ list/DAT=3 a
 list/DAT=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : levitus_climatology.cdf
-             X        : 1
         "From levitus_climatology"
  
 ! PLOT, SHADE, FILL, CONTOUR, VECTOR, STAT
@@ -92807,8 +94005,8 @@ let/DAT=2 temp = sst + 0*z[z=1:5:1]
 sh dat 2
      currently SET data sets:
     2> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
  TEMP[D=coads_climatology] = SST + 0*Z[Z=1:5:1]
  
@@ -92871,18 +94069,22 @@ plot/dash/x=180/z=0/DATASET=1 temp
 ! VECTOR/FLOW/DATA=/DENSITY
 flow/DAT=2/den=3/L=3 taux,tauy
  
-GO bn_reset
+GO bn_reset bn_speedtest
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_speedtest
 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.294  seconds
-Second 10K LET commands LET a = 0 takes  2.96  seconds
-5K LOAD with transform takes  4.171  seconds
+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
  
-GO bn_reset
+GO bn_reset bn_show_noupcase
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_show_noupcase
 GO bn_show_noupcase
 ! bn_show_noupcase.jnl
 ! 1/2016 ticket 1796
@@ -92906,12 +94108,10 @@ show var
 show grid MyUpperLowerCaseVar
     GRID (G204)
  name       axis              # pts   start                end                 subset
- ABSTRACT  X             99999999 r   1                    1.E+08              9 pts
+ ABSTRACT  X             99999999 r   1                    1.E+08              10 pts
  normal    Y
  normal    Z
  tday      TIME                31 r   01-JAN-1999 00:00    31-JAN-1999 00:00   full
- normal    E
- normal    F
  
  
 ! Files have variable and axis names in mixed case.
@@ -92921,14 +94121,14 @@ USE a_cartesian_bug1179.nc
 show data
      currently SET data sets:
     1> ./a1478.nc
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  lat1_5_bnds
-                                           1:2       1:5       ...       ...       ...       ...
- olr      outgoing longwave radiation      1:5       1:5       ...       1:3       ...       ...
+                                           1:2       1:5       ...       ...
+ olr      outgoing longwave radiation      1:5       1:5       ...       1:3
  
     2> ./a_cartesian_bug1179.nc  (default)
- name     title                             I         J         K         L         M         N
- temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
+ name     title                             I         J         K         L
+ temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1
  
  
 ! Previously the RETURN= gave the capitalized axis names
@@ -92962,21 +94162,22 @@ LET/D=2 newvar =  0*zvar[d=2] + olr[d=1]
 show data
      currently SET data sets:
     1> ./a1478.nc
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  lat1_5_bnds
-                                           1:2       1:5       ...       ...       ...       ...
- olr      outgoing longwave radiation      1:5       1:5       ...       1:3       ...       ...
+                                           1:2       1:5       ...       ...
+ olr      outgoing longwave radiation      1:5       1:5       ...       1:3
  ------------------------------
  zvar[D=a1478] = 2*TEMP[D=2]
  
     2> ./a_cartesian_bug1179.nc  (default)
- name     title                             I         J         K         L         M         N
- temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
+ name     title                             I         J         K         L
+ temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1
  ------------------------------
  newvar[D=a_cartesian_bug1179] = 0*ZVAR[D=2] + OLR[D=1]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
  
 ! xml output
@@ -93582,12 +94783,12 @@ SHO DATA/VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
 <attribute name="long_name" type="char">
    <value><![CDATA[TEMP[X=79E:79E at AVE]]]></value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GHU1">
 <axes>
 <yaxis>grid_y_T</yaxis>
@@ -93919,6 +95120,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GHU1">
 <axes>
 <xaxis>grid_x_T</xaxis>
@@ -93932,8 +95136,10 @@ SHO VAR/XML
 set mode/last upcase
  
  
-GO bn_reset
+GO bn_reset bn_letd_attributes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_letd_attributes
 GO bn_letd_attributes
 ! bn_letd_attributes.jnl
 ! Allow for the same variable name defined with LET/D in multiple datasets.
@@ -93953,8 +95159,8 @@ let/d=1/title="coads myvar" myvar = 1
 show dat 1
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
  MYVAR[D=coads_climatology] = 1
  
@@ -94017,8 +95223,8 @@ let/d=2/title="Levitus myvar" myvar = 2
 show dat 2
      currently SET data sets:
     2> ./levitus_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:160     1:90      1:1       ...       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:160     1:90      1:1       ...
  ------------------------------
  MYVAR[D=levitus_climatology] = 2
  
@@ -94091,12 +95297,12 @@ cancel var/all
 show dat
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
     2> ./levitus_climatology.cdf
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:160     1:90      1:1       ...       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:160     1:90      1:1       ...
  
  
 show dat/att 2
@@ -94179,8 +95385,10 @@ save/clobber/file=a.nc myvar[d=2]
 sp ncdump -h a.nc >> all_ncdump.out
  
  
-GO bn_reset
+GO bn_reset bn_list_clim_axes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_list_clim_axes
 GO bn_list_clim_axes
 ! bn_list_clim_axes.jnl
 ! *acm* 3/16
@@ -94321,8 +95529,10 @@ 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
  
-GO bn_reset
+GO bn_reset bn_climatology_attr
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_climatology_attr
 GO bn_climatology_attr
 ! bn_climatology_attr.jnl
 ! *acm* 3/16  See ticket 2278
@@ -94386,8 +95596,31 @@ list/nohead/norow c.climatology_time_range
  "Multiple time ranges used"
  
  
-GO bn_reset
+! The attribute created only for user-defined variables not for an expression
+!
+! Define a monthly axis
+define axis/t=1-feb-1980:1-feb-2003/npoints=276/unit="day"/t0=1-jan-1900 tax
+ 
+let tvar = t[gt=tax]
+let clim1 = tvar[gt=month_irreg at mod]
+save/nobounds/file=a.nc/clobber 3*clim1
+ 
+can dat/all; use a.nc
+ 
+! The variable did not get a climatology_time_range attribute
+let vname = ..varnames
+show att `vname[i=1]`
+ !-> show att E494
+     attributes for dataset: ./a.nc
+ E494.missing_value = -1.E+34
+ E494._FillValue = -1.E+34
+ E494.long_name = 3*CLIM1 
+ 
+ 
+GO bn_reset bn_plot_along
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_along
 GO bn_plot_along
 ! BN_PLOT_ALONG
  
@@ -94461,8 +95694,10 @@ 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]
  
-GO bn_reset
+GO bn_reset bn_show_commands
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_show_commands
 GO bn_show_commands
 ! bn_show_commands.jnl
 ! Testing results for ticket 2078: SHOW COMMAND cmnd subcmnd
@@ -94541,12 +95776,12 @@ sho command sho
  SHOW EXPRSION/ALL
  SHOW LIST/ALL
  SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
-       /HIDDEN
+       /HIDDEN/MEMBERS
  SHOW MODE/ALL
  SHOW MOVIE/ALL
  SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
  SHOW COMMANDS/ALL/BRIEF
- SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+ SHOW MEMORY/ALL/DIAGNOST/TEMPORY/PERMANT/FREE
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
  SHOW VIEWPORT/ALL
  SHOW TRANFORM/ALL
@@ -94569,7 +95804,7 @@ sho command sho l  ! SHOW LIST
  SHOW LIST/ALL
 sho command sho d  ! SHOW DATA
  SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
-       /HIDDEN
+       /HIDDEN/MEMBERS
 sho command sho m  ! SHOW MODE
  SHOW MODE/ALL
 sho command sho mov! SHOW MOVIE
@@ -94579,7 +95814,7 @@ sho command sho v  ! SHOW VARIABLE
 sho command sho c  ! SHOW COMMANDS
  SHOW COMMANDS/ALL/BRIEF
 sho command sho me ! SHOW MEMORY
- SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+ SHOW MEMORY/ALL/DIAGNOST/TEMPORY/PERMANT/FREE
 sho command sho g  ! SHOW GRID
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
 sho command sho vi ! SHOW VIEWPORT
@@ -94662,7 +95897,7 @@ sho command def
  DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+         /EDGES/CALENDAR/BOUNDS/QUIET/MONTHLY/LIKE
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
  DEFINE ALIAS
  DEFINE SYMBOL
@@ -94679,7 +95914,7 @@ sho command def v  ! DEFINE VARIABLE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
 sho command def a  ! DEFINE AXIS
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+         /EDGES/CALENDAR/BOUNDS/QUIET/MONTHLY/LIKE
 sho command def vi ! DEFINE VIEWPORT
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
 sho command def al ! DEFINE ALIAS
@@ -94854,14 +96089,16 @@ sho command/brief sp
 sho command/brief st
  STAT
 sho command/brief u
- USER
+ Not a recognized command: u
+ 
+ Use SHOW ALIAS to see alternative command names
 sho command/brief v
  VECTOR
  
  
 ! All the commands, no subcommands, no qualifiers
 SHOW COMMAND/BRIEF
- Commands in Program FERRET (beta/dbg) version7:
+ Commands in Program FERRET (beta/debug) version7.1:
  SET
  SHOW
  CANCEL
@@ -94881,7 +96118,6 @@ SHOW COMMAND/BRIEF
  STAT
  SHADE
  SPAWN
- USER
  WIRE
  QUERY
  IF
@@ -94923,8 +96159,10 @@ SHOW COMMAND/BRIEF sho da
  SHOW DATA
  
  
-GO bn_reset
+GO bn_reset bn_plot_decimate
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_decimate
 GO bn_plot_decimate
 ! BN_PLOT_SKIP
  
@@ -95013,14 +96251,17 @@ 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]
  
-GO bn_reset
+GO bn_reset bn_auto_tprec
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_auto_tprec
 GO bn_auto_tprec
 ! 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.
 ! (later make this the default setting??)
+! acm* 3/17 check the URL with TEST_OPENDAP befor trying to open it.
  
 set mode calendar:auto
 show mode calendar
@@ -95119,12 +96360,16 @@ shade/title="hours "/l=3/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
 LAB2 = "TIME : 01-JAN-2001 12:00"
  
 ! Reynolds SST weekly, even 7-day spacing
-use http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc
+ 
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc") NE 0` THEN EXIT/SCRIPT
+ !-> IF 0 THEN EXIT/SCRIPT
+ 
+use http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc
 list/x=180/y=0/l=20:25 fsst
              VARIABLE : Filtered Weekly SST Means (deg C)
              DATA SET : Reynolds Optimum Interpolation Weekly SST Analysis
              FILENAME : reynolds_sst_wk.nc
-             FILEPATH : http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
+             FILEPATH : http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/
              SUBSET   : 6 points (TIME)
              LONGITUDE: 180E (interpolated)
              LATITUDE : 0 (interpolated)
@@ -95194,8 +96439,10 @@ LAB2 = "TIME : 16-AUG-1952 12:00"
 !GO bn_reset
 !GO bn_warn_subspan
  
-GO bn_reset
+GO bn_reset bn_coordvars_atts
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_coordvars_atts
 GO bn_coordvars_atts
 ! bn_coordvars_atts.jnl
 ! 5/2016 *acm*  see ticket 2413
@@ -95257,393 +96504,7786 @@ list/nohead ..coordnames
  2   / 2:"ZAX3"   
  3   / 3:"XAX1_10"
  
-!  *********** Always do a bn_reset  ***********
-!  *********** make sure things clean up well **
-GO bn_reset
+ 
+! *********** v7.1 Additions ***********
+ 
+GO bn_reset bn710_bug_fixes
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn710_bug_fixes
+GO bn710_bug_fixes
+! bn710_bug_fixes.jnl
+! test various fixes that went into version 7.1
+! 6/16 *acm*
+!
  
-! version 2.3 requires exit/command *sh* 3/92
-exit/command
-yes? ! bn_all_ef_shell.jnl
-yes? ! 5/05 *acm*
-yes? ! run bn_all_ef tests
-yes? 
-yes? GO bn_all_ef
- 	NOAA/PMEL TMAP
- 	FERRET v7 (beta/dbg)
- 	Linux 2.6.32-642.1.1.el6.x86_64 64-bit - 06/15/16
- 	15-Jun-16 12:07     
-
-SET MODE VERIFY
-! bn_all_ef.jnl
-! - run all the benchmark tests for externally-linked external functions.
+! Bug 2445 missing or repeated coords when axis marked as regular
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_reg_axis_check
+! err700_reg_axis_check.jnl
+! Ticket 2445: regular axis, test for valid line_delta
+! ACM 7/6/2016
+ 
+use bug2445.nc
+show data
+     currently SET data sets:
+    1> ./bug2445.nc  (default)
+ name     title                             I         J         K         L
+ XAX                                       1:5       ...       ...       ...
+       (invalid coordinate axis)
+ YAX                                       ...       1:3       ...       ...
+       (invalid coordinate axis)
+ XX       X[GX=xax]                        1:5       ...       ...       ...
+ YY       Y var                            ...       1:3       ...       ...
  
  
-GO bn_reset
+! Repeated coordinates in first 2 coordinates of x axis.
+list xx
+             VARIABLE : X[GX=xax]
+             FILENAME : bug2445.nc
+             SUBSET   : 5 points (X)
+ 1   / 1:  1.000000
+ 2   / 2:  2.000000
+ 3   / 3:  3.000000
+ 4   / 4:  4.000000
+ 5   / 5:  5.000000
+list xax
+             VARIABLE :  Maize harvest
+                        invalid coordinate axis
+             FILENAME : bug2445.nc
+             SUBSET   : 5 points (X)
+ 1   / 1:  1.000000
+ 2   / 2:  1.000000
+ 3   / 3:  1.000000
+ 4   / 4:  1.000000
+ 5   / 5:  1.000000
+ 
+! Missing coordinate in first 2 coordinates of y axis.
+! Coordinate data cannot be missing.
+list yy
+             VARIABLE : Y var
+             FILENAME : bug2445.nc
+             SUBSET   : 3 points (Y)
+ 1   / 1:  10.00000
+ 2   / 2:  20.00000
+ 3   / 3:  30.00000
+list yax
+             VARIABLE :  Maize harvest
+                        invalid coordinate axis
+             FILENAME : bug2445.nc
+             SUBSET   : 3 points (Y)
+ 1   / 1:  1.000000E+00
+ 2   / 2:  9.969210E+36
+ 3   / 3:  1.000000E+00
+ 
+! Bug 2446 include script name on warning about unclosed IF block
+go bn_reset
 cancel mode verify
-GO bn_ef_external_functions.jnl
-! Tests of external functions that are distributed as shared object files.
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_unclosed_if
+! err71_unclosed_if.jnl
+! Ticket 2446
+! Add the script name when reporting an unclosed IF block
+! ACM 7/2016
  
-! Jon's benchmarks
-go bench_examples
-set mode ignore_error
-show func/ext add_9
-ADD_9(A,B,C,D,E,F,G,H,I)
-    (demonstration function) adds 9 arguments
-show func/ext ave*
-AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
-    Compute average of a variable in each cell of output time axis
-    TPTS: T coordinates of scattered input time coordinates
-    VPTS: Variable at times in TPTS
-    TAXIS: Output time axis
-AVET(A)
-    (demonstration function) returns the time average
-    A: data to be averaged over the time axis
-show func pass_thru
-PASS_THRU(A)
-    (demonstration function) sets result equal to input
-    A: this arg is passed through
-show func sto*
-STORAGE(A)
-    sets result equal to input/10
-    A: input
+go unclosed_if.sub
  
-go bench_add_9
-! Bench_add_9.jnl
-!  ACM  8/99
-!  benchmark script for testing external function add_9.
-! Note: bench_add_9_visual contains plots of similar computations
+let a = 1
+if `a eq 1` THEN
+ !-> if 1 THEN
+SAY YES
+YES
+let b = 1
  
-set mode ignore_errors
  
+! Bug 2446 inheriting attributes
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_inherit_all
+! err700_inherit_all.jnl
+! Ticket 2447: If all attributes are inherited, missing-value flags
+! are wrong.
+ 
+! This non-standardfile has no missing-value attributes.
+use no_miss_att.nc
+sh att a
+     attributes for dataset: ./no_miss_att.nc
+ A.min_value = 1
+ A.max_value = 3
+ A.long_name = {1,2,3} 
+ 
+! Define a variable, using some missing-value flag
+let/bad=9999 b = if a ne 2 then a else 9999
+list b
+             VARIABLE : IF A NE 2 THEN A ELSE 9999
+             FILENAME : no_miss_att.nc
+             SUBSET   : 3 points (X)
+ 1   / 1:  1.000000
+ 2   / 2:      ....
+ 3   / 3:  3.000000
  
-can region
-use coads_climatology
-set region/x=151E:179E/y=0
+! Now inherit the attributes from variable a.
+set att/like=a b
+show att b
+     attributes for user-defined variables
+ b.missing_value = 9999
+ b.min_value = 1
+ b.max_value = 3
+ b.long_name = {1,2,3} 
  
-let a1 = sst[d=1,l=1]
-let a2 = sst[d=1,l=2]
-let a3 = sst[d=1,l=3]
+! The missing-value flag is not written, but the value 9999 is
+save/file=a.nc/clobber b
  
-let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
+can var/all
+use a
  
-list a
-             VARIABLE : ADD_9(A1,A2,A3,A1,A2,A3,A1,A2,A3)
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 16-JAN 06:00
-                1S    
-                45
- 151E   / 66:  263.6
- 153E   / 67:  264.5
- 155E   / 68:  264.2
- 157E   / 69:  261.3
- 159E   / 70:  260.9
- 161E   / 71:  262.4
- 163E   / 72:  264.0
- 165E   / 73:  261.1
- 167E   / 74:  260.9
- 169E   / 75:  261.0
- 171E   / 76:  259.3
- 173E   / 77:  257.9
- 175E   / 78:  257.0
- 177E   / 79:  259.1
- 179E   / 80:  254.8
-list  a - 3 * sst[d=1,l=1:3 at sum]
-             VARIABLE : A - 3 * SST[D=coads_climatology,L=1:3 at SUM]
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 16-JAN 06:00
-                 1S    
-                 45
- 151E   / 66:  0.0000
- 153E   / 67:  0.0000
- 155E   / 68:  0.0000
- 157E   / 69:  0.0000
- 159E   / 70:  0.0000
- 161E   / 71:  0.0000
- 163E   / 72:  0.0000
- 165E   / 73:  0.0000
- 167E   / 74:  0.0000
- 169E   / 75:  0.0000
- 171E   / 76:  0.0000
- 173E   / 77:  0.0000
- 175E   / 78:  0.0000
- 177E   / 79:  0.0000
- 179E   / 80:  0.0000
-set mode/last ignore_errors
-go bench_avet
-! Bench_avet.jnl
-!  ACM  8/99
-!  benchmark script for testing external function avet.
-! Note: bench_avet_visual.jnl contains plots of similar computations
+! Element 2 should be missing. Previously lists out the 9999.
+list b
+             VARIABLE : {1,2,3}
+             FILENAME : a.nc
+             SUBSET   : 3 points (X)
+ 1   / 1:  1.000000
+ 2   / 2:      ....
+ 3   / 3:  3.000000
  
-set mode ignore_errors
  
-can region
-use coads_climatology
-set region/x=151E:179E/y=0
+! Bug 2458  Subspan modulo grids and SAMPLEXY
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_samplexy_subspan_modulo
+! err700_samplexy_subspan_modulo.jnl
+! 7/29/2016 ACM
+! Ticket 2458. The result of SAMPLEXY wrong when it needs
+! to do a modulo operation on a subspan modulo axis
  
-let a = avet(sst)
-list a
-             VARIABLE : AVET(SST)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-                1S    
-                45
- 151E   / 66:  29.28
- 153E   / 67:  29.39
- 155E   / 68:  29.35
- 157E   / 69:  29.03
- 159E   / 70:  28.99
- 161E   / 71:  29.15
- 163E   / 72:  29.33
- 165E   / 73:  29.01
- 167E   / 74:  28.99
- 169E   / 75:  29.00
- 171E   / 76:  28.81
- 173E   / 77:  28.66
- 175E   / 78:  28.56
- 177E   / 79:  28.79
- 179E   / 80:  28.31
-list a - sst[l=@ave]
-             VARIABLE : A - SST[L=@AVE]
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 15 points (LONGITUDE)
-             LATITUDE : 1S
-             TIME     : 01-JAN 00:45 to 01-APR 08:12
-                  1S      
-                  45
- 151E   / 66:  0.000E+00
- 153E   / 67: -3.553E-15
- 155E   / 68:  0.000E+00
- 157E   / 69:  0.000E+00
- 159E   / 70:  3.553E-15
- 161E   / 71:  7.105E-15
- 163E   / 72:  3.553E-15
- 165E   / 73:  0.000E+00
- 167E   / 74:  0.000E+00
- 169E   / 75:  3.553E-15
- 171E   / 76:  0.000E+00
- 173E   / 77:  3.553E-15
- 175E   / 78:  0.000E+00
- 177E   / 79:  3.553E-15
- 179E   / 80:  3.553E-15
+! Define a grid with a subspan longitude axis
  
-can region
-let a = x[i=1:9,k=1:5] + t[l=1:5]
-let b = x[i=1:9,k=1:5]
-let c = avet(a)
-list b, c
-             X: 0.5 to 9.5
- Column  1: B is X[I=1:9,K=1:5]
- Column  2: C is AVET(A)
-             B     C
-1   / 1:  1.000   4.00
-2   / 2:  2.000   5.00
-3   / 3:  3.000   6.00
-4   / 4:  4.000   7.00
-5   / 5:  5.000   8.00
-6   / 6:  6.000   9.00
-7   / 7:  7.000  10.00
-8   / 8:  8.000  11.00
-9   / 9:  9.000  12.00
+define axis/x=-100:-60:5/units=degrees_east xaxis
+define axis/y=18:30:2/units=degrees_north yaxis
+let var = x[gx=xaxis]+100 + 0.3*y[gy=yaxis]
  
-set mode/last ignore_errors
-go bench_pass_thru
-! Bench_pass_thru.jnl
-!  ACM  8/99
-!  benchmark script for testing external function pass_thru.
-! Note: bench_pass_thru_visual.jnl contains plots of similar computations
+save/clobber/file=a.nc var
+can var/all; use a
  
-set mode ignore_errors
+list/y=22 var
+             VARIABLE : X[GX=XAXIS]+100 + 0.3*Y[GY=YAXIS]
+             FILENAME : a.nc
+             SUBSET   : 9 points (LONGITUDE)
+             LATITUDE : 22N
+                 22N     
+                   3
+ 100W    / 1:   6.60000
+ 95W     / 2:  11.60000
+ 90W     / 3:  16.60000
+ 85W     / 4:  21.60000
+ 80W     / 5:  26.60000
+ 75W     / 6:  31.60000
+ 70W     / 7:  36.60000
+ 65W     / 8:  41.60000
+ 60W     / 9:  46.60000
+list samplexy(var, {-80,80}, {22,22})
+             VARIABLE : SAMPLEXY(VAR, {-80,80}, {22,22})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60000
+ 2   / 2:      ....
  
-can region
-let a = pass_thru(x)
-list a[i=1:20]
-             VARIABLE : PASS_THRU(X)
-             SUBSET   : 20 points (X)
- 1    /  1:   1.00
- 2    /  2:   2.00
- 3    /  3:   3.00
- 4    /  4:   4.00
- 5    /  5:   5.00
- 6    /  6:   6.00
- 7    /  7:   7.00
- 8    /  8:   8.00
- 9    /  9:   9.00
- 10   / 10:  10.00
- 11   / 11:  11.00
- 12   / 12:  12.00
- 13   / 13:  13.00
- 14   / 14:  14.00
- 15   / 15:  15.00
- 16   / 16:  16.00
- 17   / 17:  17.00
- 18   / 18:  18.00
- 19   / 19:  19.00
- 20   / 20:  20.00
-set region/i=1:20
-list sin(a)
-             VARIABLE : SIN(A)
-             SUBSET   : 20 points (X)
- 1    /  1:  0.8415
- 2    /  2:  0.9093
- 3    /  3:  0.1411
- 4    /  4: -0.7568
- 5    /  5: -0.9589
- 6    /  6: -0.2794
- 7    /  7:  0.6570
- 8    /  8:  0.9894
- 9    /  9:  0.4121
- 10   / 10: -0.5440
- 11   / 11: -1.0000
- 12   / 12: -0.5366
- 13   / 13:  0.4202
- 14   / 14:  0.9906
- 15   / 15:  0.6503
- 16   / 16: -0.2879
- 17   / 17: -0.9614
- 18   / 18: -0.7510
- 19   / 19:  0.1499
- 20   / 20:  0.9129
-can var/all
-can region
+list samplexy(var, -80, 22)       ! this is ok, in the native range of the axis
+             VARIABLE : SAMPLEXY(VAR, -80, 22)
+             FILENAME : a.nc
+             X        : 1
+          26.60000
+list samplexy(var, `360-80`, 22)  ! this was wrong
+ !-> list samplexy(var, 280, 22)
+             VARIABLE : SAMPLEXY(VAR, 280, 22)
+             FILENAME : a.nc
+             X        : 1
+          26.60000
+list samplexy_closest(var, `360-80`, 22)  ! is ok
+ !-> list samplexy_closest(var, 280, 22)
+             VARIABLE : SAMPLEXY_CLOSEST(VAR, 280, 22)
+             FILENAME : a.nc
+             X        : 1
+          26.60000
+ 
+! Looking for a point that is not, even in a modulo sense, in the subpsan axis
+ 
+list samplexy(var, {-80,80}, {22,22})
+             VARIABLE : SAMPLEXY(VAR, {-80,80}, {22,22})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60000
+ 2   / 2:      ....
+list samplexy(var, {`360-80`,80}, {22,22})
+ !-> list samplexy(var, {280,80}, {22,22})
+             VARIABLE : SAMPLEXY(VAR, {280,80}, {22,22})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60000
+ 2   / 2:      ....
+list samplexy_closest(var, {`360-80`,80}, {22,22})
+ !-> list samplexy_closest(var, {280,80}, {22,22})
+             VARIABLE : SAMPLEXY_CLOSEST(VAR, {280,80}, {22,22})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60000
+ 2   / 2:      ....
+ 
+! interpolation between grid points
+ 
+cancel mode interpolate
+list/y=21.2/x=277.7 var
+             VARIABLE : X[GX=XAXIS]+100 + 0.3*Y[GY=YAXIS]
+             FILENAME : a.nc
+             LONGITUDE: 80W
+             LATITUDE : 22N
+          26.60000
+set mode interpolate; list/y=21.2/x=277.7 var; cancel mode interpolate
+             VARIABLE : X[GX=XAXIS]+100 + 0.3*Y[GY=YAXIS]
+             FILENAME : a.nc
+             LONGITUDE: 82.3W (interpolated)
+             LATITUDE : 21.2N (interpolated)
+          24.06000
+ 
+! These should match the MODE INTERPOLATE result (the second was wrong).
+ 
+list samplexy(var, {-82.3,82.3}, {21.2,21.2})
+             VARIABLE : SAMPLEXY(VAR, {-82.3,82.3}, {21.2,21.2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  24.06000
+ 2   / 2:      ....
+list samplexy(var, {`360-82.3`,82.3}, {21.2,21.2})
+ !-> list samplexy(var, {277.7,82.3}, {21.2,21.2})
+             VARIABLE : SAMPLEXY(VAR, {277.7,82.3}, {21.2,21.2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  24.06000
+ 2   / 2:      ....
+ 
+! this should match the non-MODE INTERPOLATE result
+list samplexy_closest(var, {`360-82.3`,82.3}, {21.2,21.2})
+ !-> list samplexy_closest(var, {277.7,82.3}, {21.2,21.2})
+             VARIABLE : SAMPLEXY_CLOSEST(VAR, {277.7,82.3}, {21.2,21.2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60000
+ 2   / 2:      ....
+ 
+can dat/all
+ 
+! Test samplexyt functions
+ 
+define axis/t=1:5:1 tax
+let vart = x[gx=xaxis]+100 + 0.3*y[gy=yaxis] + 0*t[gt=tax]
+save/clobber/file=a.nc vart
+can var/all; use a
+ 
+list vart[x=-80,y=21,t=2]
+             VARIABLE : X[GX=XAXIS]+100 + 0.3*Y[GY=YAXIS] + 0*T[GT=TAX]
+             FILENAME : a.nc
+             LONGITUDE: 80W(-80)
+             LATITUDE : 20N
+             T        : 2
+          26.00000
+list samplexyt(vart, {-82.3,82.3}, {21.2,21.2}, {2,2})
+             VARIABLE : SAMPLEXYT(VART, {-82.3,82.3}, {21.2,21.2}, {2,2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  24.06000
+ 2   / 2:      ....
+list samplexyt(vart, {`360-82.3`,82.3}, {21.2,21.2}, {2,2})
+ !-> list samplexyt(vart, {277.7,82.3}, {21.2,21.2}, {2,2})
+             VARIABLE : SAMPLEXYT(VART, {277.7,82.3}, {21.2,21.2}, {2,2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  24.06000
+ 2   / 2:      ....
+list samplexyt_nrst(vart, {`360-82.3`,82.3}, {21.2,21.2}, {2,2})
+ !-> list samplexyt_nrst(vart, {277.7,82.3}, {21.2,21.2}, {2,2})
+             VARIABLE : SAMPLEXYT_NRST(VART, {277.7,82.3}, {21.2,21.2}, {2,2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60000
+ 2   / 2:      ....
+ 
+! Full-span modulo grid is ok
  
 use coads_climatology
-let a = pass_thru(sst[l=@ave,y=@sbx:11])
-list/x=50 a
-             VARIABLE : PASS_THRU(SST[L=@AVE,Y=@SBX:11])
+list/l=1/x=-80/y=22 sst
+             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
-             SUBSET   : 90 points (LATITUDE)
-             LONGITUDE: 49E
-             TIME     : 01-JAN 00:45 to 01-APR 08:12
-               49E   
-               15
- 89N   / 90:   ....
- 87N   / 89:   ....
- 85N   / 88:   ....
- 83N   / 87:   ....
- 81N   / 86:   ....
- 79N   / 85:   ....
- 77N   / 84:   ....
- 75N   / 83:   ....
- 73N   / 82:   ....
- 71N   / 81:   ....
- 69N   / 80:   ....
- 67N   / 79:   ....
- 65N   / 78:   ....
- 63N   / 77:   ....
- 61N   / 76:   ....
- 59N   / 75:   ....
- 57N   / 74:   ....
- 55N   / 73:   ....
- 53N   / 72:   ....
- 51N   / 71:   ....
- 49N   / 70:   ....
- 47N   / 69:   ....
- 45N   / 68:   ....
- 43N   / 67:   ....
- 41N   / 66:   ....
- 39N   / 65:   ....
- 37N   / 64:   ....
- 35N   / 63:   ....
- 33N   / 62:   ....
- 31N   / 61:   ....
- 29N   / 60:   ....
- 27N   / 59:   ....
- 25N   / 58:   ....
- 23N   / 57:   ....
- 21N   / 56:   ....
- 19N   / 55:   ....
- 17N   / 54:   ....
- 15N   / 53:   ....
- 13N   / 52:   ....
- 11N   / 51:   ....
- 9N    / 50:   ....
- 7N    / 49:   ....
- 5N    / 48:  26.94
- 3N    / 47:  27.22
- 1N    / 46:  27.48
- 1S    / 45:  27.67
- 3S    / 44:  27.78
- 5S    / 43:  27.92
- 7S    / 42:  28.04
- 9S    / 41:  28.12
- 11S   / 40:  28.18
- 13S   / 39:  28.14
- 15S   / 38:  28.03
- 17S   / 37:  27.82
- 19S   / 36:  27.45
- 21S   / 35:  27.04
- 23S   / 34:  26.52
- 25S   / 33:  25.86
- 27S   / 32:  25.09
- 29S   / 31:  24.17
- 31S   / 30:  23.04
- 33S   / 29:  21.37
- 35S   / 28:  19.60
- 37S   / 27:  17.68
- 39S   / 26:  15.76
- 41S   / 25:  13.87
- 43S   / 24:  11.98
- 45S   / 23:  10.18
- 47S   / 22:   8.45
- 49S   / 21:   6.82
- 51S   / 20:   5.33
- 53S   / 19:   4.03
- 55S   / 18:   3.19
- 57S   / 17:   2.42
- 59S   / 16:   ....
- 61S   / 15:   ....
- 63S   / 14:   ....
- 65S   / 13:   ....
- 67S   / 12:   ....
- 69S   / 11:   ....
- 71S   / 10:   ....
- 73S   /  9:   ....
- 75S   /  8:   ....
- 77S   /  7:   ....
- 79S   /  6:   ....
- 81S   /  5:   ....
- 83S   /  4:   ....
- 85S   /  3:   ....
- 87S   /  2:   ....
- 89S   /  1:   ....
-let a = pass_thru(sst)
-set region/@w
-list/x=50 a[l=1]
-             VARIABLE : PASS_THRU(SST)
+             LONGITUDE: 81W(-81)
+             LATITUDE : 21N
+             TIME     : 16-JAN 06:00
+          26.59093
+list samplexy(sst[l=1], -80, 22)
+             VARIABLE : SAMPLEXY(SST[L=1], -80, 22)
              FILENAME : coads_climatology.cdf
-             SUBSET   : 90 points (LATITUDE)
-             LONGITUDE: 49E
+             X        : 1
              TIME     : 16-JAN 06:00
-               49E   
-               15
- 89N   / 90:   ....
- 87N   / 89:   ....
- 85N   / 88:   ....
- 83N   / 87:   ....
- 81N   / 86:   ....
- 79N   / 85:   ....
- 77N   / 84:   ....
- 75N   / 83:   ....
- 73N   / 82:   0.59
- 71N   / 81:   0.62
- 69N   / 80:   0.45
- 67N   / 79:   ....
- 65N   / 78:   ....
- 63N   / 77:   ....
- 61N   / 76:   ....
- 59N   / 75:   ....
- 57N   / 74:   ....
- 55N   / 73:   ....
- 53N   / 72:   ....
- 51N   / 71:   ....
- 49N   / 70:   ....
- 47N   / 69:   ....
- 45N   / 68:   3.32
+          26.04466
+list samplexy(sst[l=1], `360-80`, 22)
+ !-> list samplexy(sst[l=1], 280, 22)
+             VARIABLE : SAMPLEXY(SST[L=1], 280, 22)
+             FILENAME : coads_climatology.cdf
+             X        : 1
+             TIME     : 16-JAN 06:00
+          26.04466
+list samplexy_closest(sst[l=1], `360-80`, 22)
+ !-> list samplexy_closest(sst[l=1], 280, 22)
+             VARIABLE : SAMPLEXY_CLOSEST(SST[L=1], 280, 22)
+             FILENAME : coads_climatology.cdf
+             X        : 1
+             TIME     : 16-JAN 06:00
+          26.59093
+ 
+list samplexyt(sst, -80, 22, `t[gt=sst,l=1]`)
+ !-> list samplexyt(sst, -80, 22, 366)
+             VARIABLE : SAMPLEXYT(SST, -80, 22, 366)
+             FILENAME : coads_climatology.cdf
+             X        : 1
+          26.04466
+ 
+ 
+! Bug 2463  SHADE/LEVELS and single-color data
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_levels_one_level
+! err700_levels_one_level.jnl
+! Ticket 2436. If the data has just one value, then shade it with
+! the correct color taken from the /LEVELS and /PALETTE settings
+ 
+use coads_climatology
+set view ul
+shade/l=1/lev=(0,30,5)  sst
+ 
+! These single-valued expressions should get the correct color from the color bar
+ 
+set view ur
+shade/l=1/lev=(0,30,5)  if sst gt 25 and sst le 30 then 28
+set view ll
+shade/l=1/lev=(0,30,5)  if sst gt 15 and sst le 20 then 18
+set view lr
+shade/l=1/lev=(0,30,5)  if sst gt  0 and sst le  5 then  3
+frame /file=levels_one_level.gif
+can view
+ 
+! Bug xxxx  Only examine key labels that are actually going to be printed
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_key
+use coads_climatology
+set window/aspect=0.7 1
+shade/levels="(-inf)(0,1.3,0.025)(inf)"/key=continuous/set_up sst[t=@ave]*5e-2
+ppl shakey 1, 1, 0.12, 4, -1, 4
+ppl shade
+frame /file=err700_key.gif
+ 
+! Bug 2468 Symbol AX_HORIZ corrupted by an overlay
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_ax_horiz
+! err700_ax_horiz.jnl
+! 8/30/2016 *acm* Ticket 2468
+! Symbol axis_horiz was corrupted by overlaying a
+! set of points using a list in other than the same
+! direction as the axis.
+ 
+use coads_climatology
+shade/l=1/pal=grayscale/x=100:140/y=-10:30 sst
+ 
+let xpts={111,115,120,129}
+let ypts = {-5,10,20,23}
+ 
+ 
+! this is ok; ax_horiz = X, ax_vert = y
+plot/vs/oversym/color=red/thick/siz=0.2 xpts,ypts
+sh sym ax*
+AX_VERT = "Y"
+AX_HORIZ = "X"
+ 
+! Now overlay points whose grid is in the E direction
+ 
+let expts = esequence(xpts)
+let eypts = esequence(ypts)
+shade/l=1/pal=grayscale/x=100:140/y=-10:30 sst
+plot/vs/oversym/color=red/thick/siz=0.2 expts,eypts
+ 
+! this was incorrect, ax_horiz had changed to E
+sh sym ax*
+AX_VERT = "Y"
+AX_HORIZ = "X"
+ 
+! Bug 2470 Symbol LEV_DEL incorrect on a LEV=(lo,hi,delta)
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_lev_del_symb
+! err700_lev_del_symb.jnl
+! 9/9/2016
+! Ticket 2470: Symbol LEV_DEL was erroneously marked as Irregular
+! Also, the symbols LEV_MIN and LEV_MAX are changed to say open-ended
+! when (-inf), (inf) or /lev=v is used.
+ 
+use coads_climatology
+ 
+ 
+! LEV_DEL should be regular
+shade/lev=(16.4,24.4,0.4) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(16.4,24.4,0.4)"
+LEV_MIN = "16.4"
+LEV_NUM = "20"
+LEV_DEL = "0.4"
+LEV_MAX = "24.4"
+ 
+shade/lev=(16)(16.4)(16.8)(17.2)(17.6) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(16)(16.4)(16.8)(17.2)(17.6)"
+LEV_MIN = "16"
+LEV_NUM = "4"
+LEV_DEL = "0.4"
+LEV_MAX = "17.6"
+ 
+shade/lev=(22) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(22)"
+LEV_MIN = "22"
+LEV_NUM = "1"
+LEV_DEL = "none"
+LEV_MAX = "22"
+ 
+! LEV_DEL should be irregular
+ 
+shade/lev=(16.4,24.4,0.4)(inf) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(16.4,24.4,0.4)(INF)"
+LEV_MIN = "16.4"
+LEV_NUM = "21"
+LEV_DEL = "irregular"
+LEV_MAX = "open-ended"
+ 
+shade/lev=20v sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "20V"
+LEV_MIN = "open-ended"
+LEV_NUM = "19"
+LEV_DEL = "irregular"
+LEV_MAX = "open-ended"
+LEV_OPNLEVS = "(-inf)(16,19.1,1.05)(19.5,26,0.5)(25.7,25.7,1.05)(inf)"
+ 
+shade/lev=(16.4,24.4,0.4)(24.4,28.1,0.1) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(16.4,24.4,0.4)(24.4,28.1,0.1)"
+LEV_MIN = "16.4"
+LEV_NUM = "57"
+LEV_DEL = "irregular"
+LEV_MAX = "28.1"
+ 
+shade/lev=(5)(16.4,24.4,0.4) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(5)(16.4,24.4,0.4)"
+LEV_MIN = "5"
+LEV_NUM = "21"
+LEV_DEL = "irregular"
+LEV_MAX = "24.4"
+ 
+! Bug 2466 Graticule lines too dense on time plots
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_timegrat
+!err700_timegrat.jnl
+! 22-sep-2016 *acm*
+! See ticket 2466, too many graticule lines on axis with short time axis.
+ 
+define axis/t="22-aug-2016:12":"23-aug-2016:18":6/units=hours tax
+define axis/z=0:50:2/depth/units=m zax
+let ztvar = sin(L[Gt=tax]/20) + z[gz=zax]
+ 
+set view upper; shade/grat ztvar
+set view lower; plot/grat=(color=light_blue)/z=20 ztvar
+ 
+can view
+set view left; shade/trans/grat ztvar
+set view right; plot/trans/grat=(color=light_blue)/z=20 ztvar
+ 
+! Axis of few days, likewise
+ 
+define axis/t=16-SEP-2016:21-SEP-2016:15/units=minutes/t0=16-SEP-2016 tax
+ 
+can view
+set view upper; shade/grat ztvar
+set view lower; plot/grat=(color=light_blue)/z=20 ztvar
+ 
+can view
+set view left; shade/trans/grat/t=16-SEP-2016:19-sep-2016 ztvar
+set view right; plot/trans/grat=(color=light_blue)/z=20/t=16-SEP-2016:19-sep-2016 ztvar
+ 
+ 
+ 
+! Bug 2465 parsing errors on commands with expressions involving attrbutes
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_attribute_parsing
+! err700_attribute_parsing.jnl
+! See ticket 2465. Parsing errors for commands with attribute references
+! acm  9/2016
+ 
+! Write a simple file and then try to get at its attributes.
+ 
+let/title="my variable" a = 1
+save/clob/file="a.nc"/title="my file" a
+can var a
+use a.nc
+ 
+! These were ok
+list/nohead ..title
+        "my file"
+list/nohead a.long_name
+        "my variable"
+ 
+! errors
+list/nohead ..title EQ " "
+          0.0000000
+list/nohead (..title)
+        "my file"
+list/nohead ..title + "text"
+        "my filetext"
+list/nohead a.long_name EQ " "
+          0.0000000
+ 
+list/nohead strlen(a.long_name)
+          11.00000
+list/nohead strindex(..title, "file")
+          4.000000
+ 
+ 
+! Note the fix for # 2437 needs documentation: 4D output for grids in X,Y,Z,T only
+! Note the fix for # 2451 needs documentation: -gif mode plots with /HLIM or /VLIM reversing an axis.
+ 
+ 
+! 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
+ 
+! Bug 2483. Fixing axis-ends symbols XAXIS_MIN,XAXIS_MAX, YAXIS_MIN,YAXIS_MAX
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_axis_dates
+! err700_axis_dates.jnl
+! See ticket 2483. 11/10/2016 ACM
+!
+! The axis-ends symbols XAXIS_MIN,XAXIS_MAX, YAXIS_MIN,YAXIS_MAX
+! were not accurate for time axes, which get padded out to the nearest
+! time unit, e.g. whole months etc.
+ 
+! This axis gets plotted from 1-oct-2015 to the end of 30-apr-2016
+ 
+def axis/t=23-oct-2015:17-apr-2016:10/units=hours taxis
+ 
+! Define some variables
+let tt = t[gt=taxis]
+let var = cos(L[gt=taxis]/30)
+define axis/x=1:52:4 xaxis
+define axis/y=1:52:4 yaxis
+let xtvar = x[gx=xaxis] + var
+let ytvar = y[gy=yaxis] + var
+ 
+! 1-D time plot
+plot var
+ 
+! Previously these were set to the axis-coordinate
+! ends not the drawn axis ends.
+list tax_datestring(($xaxis_min), tt, "minutes"), tax_datestring(($xaxis_max), tt, "minutes")
+ !-> list tax_datestring(1005528.00, tt, "minutes"), tax_datestring(1010640.00, tt, "minutes")
+ Column  1: TAX_DATESTRING(1005528.00, TT, "minutes")
+ Column  2: TAX_DATESTRING(1010640.00, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "01-OCT-2015 00:00" "01-MAY-2016 00:00"
+ 
+! 2D plots
+ 
+shade ytvar
+list tax_datestring(($xaxis_min), tt, "minutes"), tax_datestring(($xaxis_max), tt, "minutes")
+ !-> list tax_datestring(1005528.00, tt, "minutes"), tax_datestring(1010640.00, tt, "minutes")
+ Column  1: TAX_DATESTRING(1005528.00, TT, "minutes")
+ Column  2: TAX_DATESTRING(1010640.00, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "01-OCT-2015 00:00" "01-MAY-2016 00:00"
+ 
+shade xtvar ! T axis on the vertical axis
+list tax_datestring(($yaxis_min), tt, "minutes"), tax_datestring(($yaxis_max), tt, "minutes")
+ !-> list tax_datestring(1005528.00, tt, "minutes"), tax_datestring(1010640.00, tt, "minutes")
+ Column  1: TAX_DATESTRING(1005528.00, TT, "minutes")
+ Column  2: TAX_DATESTRING(1010640.00, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "01-OCT-2015 00:00" "01-MAY-2016 00:00"
+ 
+ 
+! Short time axis, plot ends extended out to the nearest hour
+def axis/t="23-oct-2015:01:15":"23-oct-2015:12:30":15/units=minutes taxis
+ 
+plot var
+list tax_datestring(($xaxis_min), tt, "minutes"), tax_datestring(($xaxis_max), tt, "minutes")
+ !-> list tax_datestring(60363420.0, tt, "minutes"), tax_datestring(60364140.0, tt, "minutes")
+ Column  1: TAX_DATESTRING(60363420.0, TT, "minutes")
+ Column  2: TAX_DATESTRING(60364140.0, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "23-OCT-2015 01:00" "23-OCT-2015 13:00"
+ 
+shade ytvar
+list tax_datestring(($xaxis_min), tt, "minutes"), tax_datestring(($xaxis_max), tt, "minutes")
+ !-> list tax_datestring(60363420.0, tt, "minutes"), tax_datestring(60364140.0, tt, "minutes")
+ Column  1: TAX_DATESTRING(60363420.0, TT, "minutes")
+ Column  2: TAX_DATESTRING(60364140.0, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "23-OCT-2015 01:00" "23-OCT-2015 13:00"
+ 
+shade xtvar
+list tax_datestring(($yaxis_min), tt, "minutes"), tax_datestring(($yaxis_max), tt, "minutes")
+ !-> list tax_datestring(60363420.0, tt, "minutes"), tax_datestring(60364140.0, tt, "minutes")
+ Column  1: TAX_DATESTRING(60363420.0, TT, "minutes")
+ Column  2: TAX_DATESTRING(60364140.0, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "23-OCT-2015 01:00" "23-OCT-2015 13:00"
+ 
+ 
+ 
+! Bug 2489. Attribute climatology_time_range not defined on an expression
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_clim_attr_expression
+! err700_clim_attr_expression.jnl
+! Ticket 2489
+! 11/22/2016
+!
+! The attribute climatology_time_range is created whena variable comes
+! from a climatological regridding. It can be created only for user-defined
+! variables not for an expression. Previously the SAVE command resulted in a crash.
+! (See bn_climatology_attr.jnl for more examples).
+ 
+! Define a monthly axis
+define axis/t=1-feb-1980:1-feb-2003/npoints=276/unit="day"/t0=1-jan-1900 tax
+ 
+let tvar = t[gt=tax]
+let clim1 = tvar[gt=month_irreg at mod]
+save/nobounds/file=a.nc/clobber 3*clim1
+ 
+can dat/all; use a.nc
+ 
+! The variable did not get a climatology_time_range attribute
+let vname = ..varnames
+show att `vname[i=1]`
+ !-> show att E494
+     attributes for dataset: ./a.nc
+ E494.missing_value = -1.E+34
+ E494._FillValue = -1.E+34
+ E494.long_name = 3*CLIM1 
+ 
+ 
+! Bug 2491: Location of colorbar labels wrong
+! on /HLOG or /VLOG plots
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_ribbon_vlog
+! err700_ribbon_vlog.jnl
+! 1/3/2017 *acm*
+! See ticket 2491: Location of colorbar labels wrong
+! on /HLOG or /VLOG plots
+ 
+ 
+let a = 0.1* {1,2,3,4,5,6,7,8,9}
+set v ul
+plot/vs/rib/sym=25 a, a, a
+ 
+! Draw with /VLOG, previously put the colorbar labels in the wrong place
+set view lr
+plot/vs/rib/sym=25/vlog a, a, a
+ 
+! likewise /HLOG on a horizontal color key
+set view ll
+plot/vs/rib/sym=25/hlog/key=horiz a,a,a
+ 
+frame/file=bn_ribbon_vlog.gif
+ 
+! Bug 2492: single-variable listings with /form=comma or /form=tab
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_list_comma
+! err700_list_comma.jnl
+! 1/4/2017 Fixes for ticket 2492: for single-variable listings, /FORM=comma and /FORM=tab
+ 
+use gt4d011
+ 
+! Previously for comma and tab listings there was an extra line right after the header
+! that showed a longitude, even on [i=@ave,j=@ave]
+ 
+list/L=1:3/K=1/form=comma taux[i=@ave,j=@ave]
+             VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
+             FILENAME : gt4d011.cdf
+             BAD FLAG : -1.E+34       
+             SUBSET   : 3 points (TIME)
+             LONGITUDE: 139.5W to 121.5W (XY ave)
+             LATITUDE : 3.5S to 3.5N (XY ave)
+17-AUG-1982 12,-0.2742025
+23-AUG-1982 14,-0.2363181
+29-AUG-1982 16,-0.1984337
+ 
+list/nohead/L=1:3/K=1/form=comma taux[i=95,j=@ave]
+17-AUG-1982 12,-0.2737914
+23-AUG-1982 14,-0.2441127
+29-AUG-1982 16,-0.2144341
+ 
+list/nohead/L=1:3/K=1/form=comma taux[i=@ave,j=@ave]
+17-AUG-1982 12,-0.2742025
+23-AUG-1982 14,-0.2363181
+29-AUG-1982 16,-0.1984337
+ 
+! Previously /NOROW had no effect for /form=comma or /tab
+! (for single-variable listings)
+ 
+list/norow/L=1:3/K=1/form=comma taux[i=@ave,j=@ave]
+             VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
+             FILENAME : gt4d011.cdf
+             BAD FLAG : -1.E+34       
+             SUBSET   : 3 points (TIME)
+             LONGITUDE: 139.5W to 121.5W (XY ave)
+             LATITUDE : 3.5S to 3.5N (XY ave)
+-0.2742025 
+-0.2363181 
+-0.1984337 
+ 
+list/norow/nohead/L=1:3/K=1/form=comma taux[i=95,j=@ave]
+-0.2737914 
+-0.2441127 
+-0.2144341 
+ 
+list/norow/nohead/L=1:3/K=1/i=95/j=40/form=comma taux
+-0.3336249 
+-0.297951 
+-0.2622772 
+ 
+list/norow/nohead/L=1:3/K=1/i=95/j=40/form=comma taux
+-0.3336249 
+-0.297951 
+-0.2622772 
+ 
+! Now all the same commands with /form=tab
+ 
+! Previously for comma and tab listings there was an extra line right after the header
+! that showed a longitude, even on [i=@ave,j=@ave]
+ 
+list/L=1:3/K=1/form=tab taux[i=@ave,j=@ave]
+             VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
+             FILENAME : gt4d011.cdf
+             BAD FLAG : -1.E+34       
+             SUBSET   : 3 points (TIME)
+             LONGITUDE: 139.5W to 121.5W (XY ave)
+             LATITUDE : 3.5S to 3.5N (XY ave)
+17-AUG-1982 12	-0.2742025
+23-AUG-1982 14	-0.2363181
+29-AUG-1982 16	-0.1984337
+ 
+list/nohead/L=1:3/K=1/form=tab taux[i=95,j=@ave]
+17-AUG-1982 12	-0.2737914
+23-AUG-1982 14	-0.2441127
+29-AUG-1982 16	-0.2144341
+ 
+list/nohead/L=1:3/K=1/form=tab taux[i=@ave,j=@ave]
+17-AUG-1982 12	-0.2742025
+23-AUG-1982 14	-0.2363181
+29-AUG-1982 16	-0.1984337
+ 
+! Previously /NOROW had no effect for /form=comma or /tab
+! (for single-variable listings)
+ 
+list/norow/L=1:3/K=1/form=tab taux[i=@ave,j=@ave]
+             VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
+             FILENAME : gt4d011.cdf
+             BAD FLAG : -1.E+34       
+             SUBSET   : 3 points (TIME)
+             LONGITUDE: 139.5W to 121.5W (XY ave)
+             LATITUDE : 3.5S to 3.5N (XY ave)
+-0.2742025 
+-0.2363181 
+-0.1984337 
+ 
+list/norow/nohead/L=1:3/K=1/form=tab taux[i=95,j=@ave]
+-0.2737914 
+-0.2441127 
+-0.2144341 
+ 
+list/norow/nohead/L=1:3/K=1/i=95/j=40/form=tab taux
+-0.3336249 
+-0.297951 
+-0.2622772 
+ 
+list/norow/nohead/L=1:3/K=1/i=95/j=40/form=tab taux
+-0.3336249 
+-0.297951 
+-0.2622772 
+ 
+ 
+! Bug 2493: T aggregation when there are E or F axes
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_aggT_5d
+! err700_aggT_5d.jnl
+! 1/6/2017 ACM  Ticket 2493
+! When there are E or F axes in the grid, the multi-file reading
+! for time aggregations or mc files corrupted the data.
+ 
+!  The two files have data in different ranges
+ 
+! data range in 260-270
+use aggT_5d1.nc
+list/i=3/j=2 thetao[d=1]
+             VARIABLE : Sea Water Potential Temperature (K)
+             FILENAME : aggT_5d1.nc
+             SUBSET   : 6 by 10 points (TIME-E)
+             CALENDAR : NOLEAP
+             LONGITUDE: 22.5E
+             LATITUDE : 58.5S
+             DEPTH (m): 5
+                1999      2000      2001      2002      2003      2004   
+                 1         2         3         4         5         6
+ 1    /  1:  265.2445  265.5543  265.9943  266.2097  265.4781  265.3888
+ 2    /  2:  265.5926  265.7931  265.5775  265.6801  265.4617  265.4838
+ 3    /  3:  265.1946  265.4962  265.3313  265.2579  264.9185  265.5124
+ 4    /  4:  263.8972  263.2888  263.1042  263.3890  263.4528  263.3426
+ 5    /  5:  261.8333  261.8194  261.8748  261.8681  262.0607  261.8264
+ 6    /  6:  263.4419  263.4238  263.8016  263.5585  263.6320  263.3513
+ 7    /  7:  264.0194  264.5496  264.1791  263.9616  264.3322  264.0056
+ 8    /  8:  264.2371  264.0885  264.0417  263.3675  263.4375  263.9382
+ 9    /  9:  263.6959  262.6860  262.6703  262.9485  263.2782  263.0330
+ 10   / 10:  263.7841  263.7235  263.9889  263.8297  263.6952  264.1534
+ 
+! data range in 270-280
+use aggT_5d2.nc
+list/i=3/j=2 thetao[d=2]
+             VARIABLE : Sea Water Potential Temperature (K)
+             FILENAME : aggT_5d2.nc
+             SUBSET   : 4 by 10 points (TIME-E)
+             CALENDAR : NOLEAP
+             LONGITUDE: 22.5E
+             LATITUDE : 58.5S
+             DEPTH (m): 5
+                2006      2007      2008      2009   
+                 1         2         3         4
+ 1    /  1:  275.3968  275.1473  275.0237  275.1009
+ 2    /  2:  275.6317  275.8312  275.7987  275.3124
+ 3    /  3:  275.0737  275.2763  274.9668  275.3709
+ 4    /  4:  273.4485  273.3429  273.4418  273.8933
+ 5    /  5:  271.7737  271.7389  271.7704  271.8629
+ 6    /  6:  273.8493  273.5693  273.9382  273.7554
+ 7    /  7:  273.8918  273.9178  274.1768  274.1574
+ 8    /  8:  273.8866  274.0090  274.4641  274.2231
+ 9    /  9:  272.7180  272.8645  273.0202  273.9808
+ 10   / 10:  274.7770  274.9195  274.3940  274.4967
+can data/all
+ 
+! Now make an aggregation. Previously the data was wrapped onto
+! the grid incorrectly, with zero in M=7 and higher
+ 
+define data/agg/t myagg = aggT_5d1.nc, aggT_5d2.nc
+list/i=3/j=2 thetao
+             VARIABLE : Sea Water Potential Temperature (K)
+             FILENAME : myagg
+             SUBSET   : 10 by 10 points (TIME-E)
+             CALENDAR : NOLEAP
+             LONGITUDE: 22.5E
+             LATITUDE : 58.5S
+             DEPTH (m): 5
+                1999      2000      2001      2002      2003      2004      2006      2007      2008      2009   
+                 1         2         3         4         5         6         7         8         9        10
+ 1    /  1:  265.2445  265.5543  265.9943  266.2097  265.4781  265.3888  275.3968  275.1473  275.0237  275.1009
+ 2    /  2:  265.5926  265.7931  265.5775  265.6801  265.4617  265.4838  275.6317  275.8312  275.7987  275.3124
+ 3    /  3:  265.1946  265.4962  265.3313  265.2579  264.9185  265.5124  275.0737  275.2763  274.9668  275.3709
+ 4    /  4:  263.8972  263.2888  263.1042  263.3890  263.4528  263.3426  273.4485  273.3429  273.4418  273.8933
+ 5    /  5:  261.8333  261.8194  261.8748  261.8681  262.0607  261.8264  271.7737  271.7389  271.7704  271.8629
+ 6    /  6:  263.4419  263.4238  263.8016  263.5585  263.6320  263.3513  273.8493  273.5693  273.9382  273.7554
+ 7    /  7:  264.0194  264.5496  264.1791  263.9616  264.3322  264.0056  273.8918  273.9178  274.1768  274.1574
+ 8    /  8:  264.2371  264.0885  264.0417  263.3675  263.4375  263.9382  273.8866  274.0090  274.4641  274.2231
+ 9    /  9:  263.6959  262.6860  262.6703  262.9485  263.2782  263.0330  272.7180  272.8645  273.0202  273.9808
+ 10   / 10:  263.7841  263.7235  263.9889  263.8297  263.6952  264.1534  274.7770  274.9195  274.3940  274.4967
+ 
+! Bug 2495: shift on overlay of time series plot on 2d time plot
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_time_overlay
+! err700_time_overlay.jnl
+! bug 2495
+! Shifting on overlay of time series on 2D plot
+ 
+define axis/t=15-jun-1970:16-jun-1970:60/t0=1-jan-1970/units=seconds  tax
+def axis/y=-2:2:0.2 yaxis
+let tt = t[gt=tax]
+ 
+shade/pal=white/nokey/title="example plot" y[gy=yaxis] + t[gt=tax]
+ 
+! Previously the second plot was shifted in time
+plot/over/color=red  cos(tt/3000)
+plot/over/color=blue cos(tt/3000)+0.5
+ 
+! now vertical time axis
+shade/trans/pal=white/nokey/title="example plot" y[gy=yaxis] + t[gt=tax]
+ 
+plot/trans/over/color=red  cos(tt/3000)
+plot/trans/over/color=blue cos(tt/3000) + 0.5
+ 
+ 
+ 
+! Bug 2494:  drawing a single-cell shade plot
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_shade_singlecell
+! err700_shade_singlecell.jnl
+! Ticket 2494, drawing a single-cell shade plot
+ 
+def axis/x=233.59375:293.90625:0.3125/units=degrees_east xlon
+def axis/y=24.125:50.625:0.25/units=degrees_north ylat
+let iijj = i[gx=xlon] + j[gy=ylat]
+set reg/x=77w:72.5w/y=38.9n:41.5n
+ 
+ 
+shade/pal=grayscale iijj
+shade/pal=blue/ov iijj[i=167:168,j=64:65]
+ 
+! previously this was drawn, but located one cell to the left of where it should be
+shade/pal=black/ov iijj[i=167,j=64]
+ 
+! Specify a cell by X,Y. Previously this gave a dimensions error
+shade/over/pal=green iijj[x=76w,y=40n]
+ 
+! These same sorts of degenerate regions, bug not as an overlay
+ 
+! Previously both of these drew a blank plot
+shade/pal=rnb2 iijj[i=167,j=64]
+shade/pal=rnb2 iijj[i=167,j=64:66]
+ 
+! Specify a cell by X,Y
+! Previously this gave a dimensions error
+shade/pal=green iijj[x=76w,y=40n]
+ 
+! Partial cell, given by xy limits.
+! Previously drew a blank plot
+shade/pal=green iijj[x=74.5w:74.4w,y=39.9:40.0]
+ 
+! Several cells in one direction - partial cells in y at edges
+shade/pal=rnb2 iijj[x=74.5w,y=39.9:40.8]
+ 
+ 
+! Bug 2496: errors using axis with nearly-repeating coordinates
+!           where coordinates are very near grid-cell edges.
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_coords
+! err700_coords.jnl
+! 1/17/2017
+! From bug 2496. Data with almost-repeating values used to define an axis
+ 
+use err700_coords.nc
+list/i=10:20/prec=16 du_coords, du_coords[i=@ddf]
+             DATA SET: ./err700_coords.nc
+             X: 9.5 to 20.5
+ Column  1: DU_COORDS is DU_VU[I=1:20]
+ Column  2: DU_COORDS[X=@DDF] is DU_VU[I=1:20] (forward derivative on X)
+                   DU_COORDS       DU_COORDS
+10   / 10:  23.75000000000000  2.500000000000000
+11   / 11:  26.25000000000000  0.000000000000011
+12   / 12:  26.25000000000001  2.499999999999989
+13   / 13:  28.75000000000000  2.500000000000000
+14   / 14:  31.25000000000000  0.000000000000011
+15   / 15:  31.25000000000001  2.499999999999989
+16   / 16:  33.75000000000000  2.500000000000000
+17   / 17:  36.25000000000000  2.500000000000000
+18   / 18:  38.75000000000000  2.500000000000000
+19   / 19:  41.25000000000000  2.500000000000000
+20   / 20:  43.75000000000000               ....
+ 
+! The data has repeated coords, to 1.e15. Should be reported as micro-adjusted
+ 
+def ax/bounds/x/unit="degrees_east"/modulo=360 c2d_ax_x = du_coords[i=1:160], du_edges[i=1:161]
+ 
+ 
+sh axis c2d_ax_x
+ name       axis              # pts   start                end
+ C2D_AX_X  LONGITUDE           20mi   1.25E                43.75E
+   Axis span (to cell edges) = 45 (modulo length = 360)
+let c = x[gx=c2d_ax_x]
+ 
+! for this region, the setup steps got data in index 11:31, then
+! at the point of writing the index ragne was found to be 12:31
+ 
+set region/x=25:385
+set mode diag
+save/clob/file=a.nc c
+ dealloc  dynamic grid GAY2            XAX1_21   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid GG              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 (G208)          C2D_AX_X  NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G208)          C2D_AX_X  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G208)          C2D_AX_X  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G208)          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 (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
+ 
+set mode /last diag
+ 
+ 
+! Bug 2499: Define a single-point axis with bounds
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_define_1pt_axis
+! err700_define_1pt_axis.jnl
+! Ticket 2499: regular axis, test for valid line_delta
+! ACM 7/6/2016
+ 
+ 
+def ax/t/bounds tax = 1, 0, 2
+show 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
+ 
+! check that reading such an axis from a file is ok
+let twelve = 12*t[gt=tax]
+ 
+save/file=a.nc/clobber twelve
+cancel var/all; cancel axis tax
+use a.nc
+sh dat
+     currently SET data sets:
+    1> ./a.nc  (default)
+ name     title                             I         J         K         L
+ TWELVE   12*T[GT=TAX]                     ...       ...       ...       1:1
+ 
+sh axis/t tax
+ name       axis              # pts   start                end
+ 
+ 
+ 
+! Bug 2498: time unit error in F-aggregation of some OPENDAP datasets
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_aggregate_from_fmrc
+! err700_aggregate_from_fmrc.jnl
+! 1/2017 *acm*
+! (See ticket 2498)
+! Previously an incorrect definition of the F axis when datasets from
+! thredds fmrc.xml are used in a Ferret F aggregation
+! This was a bug in the true-month time axes in an un-released Ferret executable.
+ 
+IF `TEST_OPENDAP(\
+"http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Hawaii_Regional_Ocean_Model_RUN_2017-01-01T00:00:00Z") NE 0` \
+ THEN EXIT/SCRIPT
+ !-> IF 0  THEN EXIT/SCRIPT
+ 
+use http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Hawaii_Regional_Ocean_Model_RUN_2017-01-01T00:00:00Z
+use http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Hawaii_Regional_Ocean_Model_RUN_2017-01-02T00:00:00Z
+use http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Hawaii_Regional_Ocean_Model_RUN_2017-01-03T00:00:00Z
+ 
+DEFINE DATA/AGGREGATE/F testdata = 1,2,3
+! F axis should be  31-DEC-2016 to 02-JAN-2017
+SHOW GRID zeta
+    GRID (G190)
+ name       axis              # pts   start                end                 subset
+ LON1      LONGITUDE          295mr   163.83W(-163.83)     152.52W(-152.52)    full
+ LAT       LATITUDE           195 r   17.018N              23.982N             full
+ normal    Z
+ TF_LAG_T  MODEL ELAPSED TIME  57 r   1.5                  169.5               full
+ normal    E
+ TF_CAL_F  FORECAST             3 r   31-DEC-2016 22:30    02-JAN-2017 22:30   full
+ 
+ 
+! Bug 2504: modulo axes and coordinates
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_modulo
+! err700_modulo.jnl
+! See ticket 2504. Axis defintions where bounds are not given, and Ferret
+! is defining the cell edges. If axis coordinates lie within the modulo range
+! but the cell bounds defined automatically using coordinate midpoints range
+! larger than 360 degrees, or 1 year, need to adjust bounds. This is done only
+! for irregular axes.
+ 
+use modax
+ 
+! The axis 'irreg_no_bounds' is irregular and is stored in the file without
+! bounds. The coordinate range is < 360 but previously the computed bounds
+! made the axis length 369.45, so it was not treated as modulo.
+! Now it is marked modulo.
+ 
+sh axis irreg_no_bounds
+ name       axis              # pts   start                end
+ IRREG_NO_BOUNDS LONGITUDE      8mi   0E                   0.7W
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+list/order=x/nohead x[gx=irreg_no_bounds]
+            0.0000    1.0000   20.0000   30.0000  320.0000  330.0000  340.0000  359.3000
+show axis/x irreg_no_bounds
+ name       axis              # pts   start                end
+ IRREG_NO_BOUNDS LONGITUDE      8mi   0E                   0.7W
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+       I     X                   XBOX      XBOXLO
+       1>  0E                    0.85       0.35W(-0.35)
+       2>  1E                    10         0.5E
+       3>  20E                   14.5       10.5E
+       4>  30E                   150        25E
+       5>  40W                   150        175E
+       6>  30W                   10         35W
+       7>  20W                   14.65      25W
+       8>  0.7W                  10         10.35W
+ 
+ 
+! The axis 'regular_no_bounds' is regular.  Its coordinate range is < 360, but
+! to adjust the grid cells would make it irregular, so this axis is still
+! marked as not modulo.
+ 
+sh axis regular_no_bounds
+ name       axis              # pts   start                end
+ REGULAR_NO_BOUNDS LONGITUDE    8 r   10E                  0E(360)
+   Axis span (to cell edges) = 400
+list/order=x/nohead x[gx=regular_no_bounds]
+           10.0000   60.0000  110.0000  160.0000  210.0000  260.0000  310.0000  360.0000
+show axis/x regular_no_bounds
+ name       axis              # pts   start                end
+ REGULAR_NO_BOUNDS LONGITUDE    8 r   10E                  0E(360)
+   Axis span (to cell edges) = 400
+ 
+       I     X                   XBOX      XBOXLO
+       1>  10E                   50         15W(-15)
+       2>  60E                   50         35E
+       3>  110E                  50         85E
+       4>  160E                  50         135E
+       5>  150W                  50         175W
+       6>  100W                  50         125W
+       7>  50W                   50         75W
+       8>  0E(360)               50         25W
+ 
+! The axis 'irreg_with_bounds' is irregular, stored with bounds in the file.
+! Its coordinate range is < 360, but the range of the bounds is larger than
+! 360. Because the bounds are in the file, nothing is changed; it is marked
+! as not modulo.
+ 
+sh axis irreg_with_bounds
+ name       axis              # pts   start                end
+ IRREG_WITH_BOUNDS LONGITUDE    8 i   0E                   1W
+   Axis span (to cell edges) = 362
+list/order=x/nohead x[gx=irreg_with_bounds]
+            0.0000    1.0000   20.0000   30.0000  320.0000  330.0000  340.0000  359.0000
+show axis/x irreg_with_bounds
+ name       axis              # pts   start                end
+ IRREG_WITH_BOUNDS LONGITUDE    8 i   0E                   1W
+   Axis span (to cell edges) = 362
+ 
+       I     X                   XBOX      XBOXLO
+       1>  0E                    1.5        1W(-1)
+       2>  1E                    9.5        0.5E
+       3>  20E                   15         10E
+       4>  30E                   150        25E
+       5>  40W                   150        175E
+       6>  30W                   10         35W
+       7>  20W                   14         25W
+       8>  1W                    12         11W
+ 
+cancel data/all
+ 
+! DEFINE AXIS examples
+ 
+! Likewise define an irregular axis whose coordinate range is < 360 but
+! the default midpoint grid cell bounds would make it larger than 360.
+! Previously this axis was not modulo, now bounds are set so it is.
+ 
+define axis/x/units=degrees_east xax = {0, 10, 20, 340, 358}
+show axis xax
+ name       axis              # pts   start                end
+ XAX       LONGITUDE            5mi   0E                   2W
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+! Now define a regular axis whose coordinate range is < 360 but the
+! default midpoint grid cell bounds would make it larger than 360.
+! To keep it regular, mark as not modulo.
+ 
+define axis/x=5:355:50/units=degrees_east xax
+show axis xax
+ name       axis              # pts   start                end
+ XAX       LONGITUDE            8 r   5E                   5W
+   Axis span (to cell edges) = 400
+ 
+! tests for time axes
+! Regular time axis with bounds that make it longer than a year.
+! leave this one so it stays regular and is not modulo.
+ 
+define axis/t=3:363:10/units=days/t0=1-jan-0000 treg
+show axis treg
+ name       axis              # pts   start                end
+ TREG      TIME                37 r   04-JAN-0000 00:00    29-DEC-0000 00:00
+T0 = 1-JAN-0000
+   Axis span (to cell edges) = 370
+ 
+! An irregular axis where moving the bounds can make it a modulo calendar axis.
+define axis/t0=1-jan-0000/units=days/t tax2 = { 3, 55, 103, 153, 203, 253, 303, 353}
+sh axis tax2
+ name       axis              # pts   start                end
+ TAX2      TIME                 8mi   04-JAN 00:00         19-DEC 00:00
+T0 = 1-JAN-0000
+   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ 
+ 
+! Bug 1480: saving modulo axis with too big a region
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_save_mod_att
+! err700_save_mod_att.jnl
+! ticket 1480: do not write a modulo axis when saving a modulo
+! axis with region longer than the modulo length.
+! If it's just one grid-cell too long, write one cell less so
+! the axis can still be a valid modulo axis
+ 
+! write a dataset to use, modulo attribute
+define axis/x=20:377.5:2.5/units=degrees_east/modulo xlon
+sh axis xlon
+ name       axis              # pts   start                end
+ XLON      LONGITUDE          144mr   20E                  17.5E(377.5)
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+let var = x[gx=xlon]
+ 
+save/clobber/file=a1.nc var
+sp ncdump -h a1.nc
+netcdf a1 {
+dimensions:
+	XLON = 144 ;
+variables:
+	double XLON(XLON) ;
+		XLON:units = "degrees_east" ;
+		XLON:modulo = 360. ;
+		XLON:point_spacing = "even" ;
+		XLON:axis = "X" ;
+		XLON:standard_name = "longitude" ;
+	double VAR(XLON) ;
+		VAR:missing_value = -1.e+34 ;
+		VAR:_FillValue = -1.e+34 ;
+		VAR:long_name = "X[GX=XLON]" ;
+
+// global attributes:
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+}
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+ 
+! Now set a region and write data. The axis length would be 362.5
+use a1
+sh axis xlon
+ name       axis              # pts   start                end
+ XLON      LONGITUDE          144mr   20E                  17.5E(377.5)
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+set region/x=0:360
+stat x[gx=xlon] ! 145 points
+ 
+             X
+             axis XLON
+             LONGITUDE: 0E to 0E(360)
+             Y:  N/A
+             Z:  N/A
+             T:  N/A
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 145 (145*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 360
+ Mean    value: 180 (unweighted average)
+ Standard deviation: 105
+ 
+! but we see that the region is just one cell too big, and
+! save it with length 360.
+save/clobber/file=a.nc var
+ 
+! previously the x axis had a modulo attribute and length 362.5
+! The modulo=360 didnt match the length of the axis so on using the
+! file there was a note, modulo attribute ignored. Now the axis is
+! the intended length.
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	XLONN7_136 = 144 ;
+variables:
+	double XLONN7_136(XLONN7_136) ;
+		XLONN7_136:units = "degrees_east" ;
+		XLONN7_136:modulo = 360. ;
+		XLONN7_136:point_spacing = "even" ;
+		XLONN7_136:axis = "X" ;
+		XLONN7_136:standard_name = "longitude" ;
+	double VAR(XLONN7_136) ;
+		VAR:missing_value = -1.e+34 ;
+		VAR:_FillValue = -1.e+34 ;
+		VAR:long_name = "X[GX=XLON]" ;
+		VAR:history = "From a1" ;
+
+// global attributes:
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+use a
+sh axis `var,return=xaxis`
+ !-> sh axis XLONN7_136
+ name       axis              # pts   start                end
+ XLONN7_136 LONGITUDE         144mr   0E                   2.5W
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+ 
+! Now set a bigger region and write data. The axis length is 372.5
+use a1
+sh axis xlon
+ name       axis              # pts   start                end
+ XLON      LONGITUDE          144mr   20E                  17.5E(377.5)
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+set region/x=0:370
+ 
+! Now issues a note, not writing modulo attribute.
+save/clobber/file=a.nc var
+ 
+! previously the x axis still had the modulo attribute
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	XLONN7_141 = 149 ;
+variables:
+	double XLONN7_141(XLONN7_141) ;
+		XLONN7_141:units = "degrees_east" ;
+		XLONN7_141:point_spacing = "even" ;
+		XLONN7_141:axis = "X" ;
+		XLONN7_141:standard_name = "longitude" ;
+	double VAR(XLONN7_141) ;
+		VAR:missing_value = -1.e+34 ;
+		VAR:_FillValue = -1.e+34 ;
+		VAR:long_name = "X[GX=XLON]" ;
+		VAR:history = "From a1" ;
+
+// global attributes:
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+use a
+sh axis `var,return=xaxis`
+ !-> sh axis XLONN7_141
+ name       axis              # pts   start                end
+ XLONN7_141 LONGITUDE         149 r   0E                   10E(370)
+   Axis span (to cell edges) = 372.5
+ 
+! test the machinery for a file with attribute modulo=" "
+ 
+use coads_climatology
+sh att (`sst,return=xaxis`)
+ !-> sh att (COADSX)
+     attributes for dataset: ./coads_climatology.cdf
+ (COADSX).units = degrees_east 
+ (COADSX).modulo =   
+ (COADSX).point_spacing = even 
+ (COADSX).orig_file_axname = COADSX 
+set region/x=1:361
+ 
+save/clobber/file=a.nc/y=0/l=1 sst
+ 
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+use a
+sh att (`sst,return=xaxis`)
+ !-> sh att (COADSXN9_170)
+     attributes for dataset: ./a.nc
+ (COADSXN9_170).units = degrees_east 
+ (COADSXN9_170).modulo =   
+ (COADSXN9_170).point_spacing = even 
+ (COADSXN9_170).axis = X 
+ (COADSXN9_170).standard_name = longitude 
+ (COADSXN9_170).orig_file_axname = COADSXN9_170 
+ 
+! previously the axis, of length 362, was marked modulo.
+show axis `sst,return=xaxis`
+ !-> show axis COADSXN9_170
+ name       axis              # pts   start                end
+ COADSXN9_170 LONGITUDE       180mr   1E                   1W
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+ 
+ 
+! Bug 2502: FMRC regridding sensitive to insignificant floating-point differences in time
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_fmrcdiag
+! err700_fmrcdiag.jnl
+! these particular datasets (quarterly forecasts of two years of monthly data)
+! have times at regular intervals but at values (for 25 and 26) that are difficult
+! to represent in binary
+!
+USE forecast24.nc
+USE forecast25.nc
+USE forecast26.nc
+USE forecast27.nc
+DEFINE DATA/AGGREGATE/F testdata = 1,2,3,4
+!
+! using the values of actual gives perfect forecasts;
+! using the values of quirks has a sinusoidal error that get worse with greater lead time
+!
+SHOW GRID actual
+    GRID (G181)
+ name       axis              # pts   start                end                 subset
+ XAX1      LONGITUDE            7mr   140W                 110W                full
+ YAX2      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
+ TF_CAL_F  FORECAST             4 r   01-OCT-2010 21:36    02-JUL-2011 19:12   full
+LIST /WIDTH=600 /X=120W/Y=50N/Z=50 actual
+             VARIABLE : actual
+             DATA SET : Forecast series of 4 datasets patterned on forecast24
+             FILENAME : testdata
+             SUBSET   : 25 by 4 points (MODEL ELAPSED TIME (day)-FORECAST)
+             LONGITUDE: 120W
+             LATITUDE : 50N
+             Z (meter): 50
+             Verification time increases across row.  Initialization time increases down page. 
+                      15.2      45.6      76.1     106.5     136.9     167.4     197.8     228.2     258.7     289.1     319.5     350       380.4     410.8     441.3     471.7     502.1     532.6     563       593.4     623.9     654.3     684.7     715.2     745.6   
+                       1         2         3         4         5         6         7         8         9        10        11        12        13        14        15        16        17        18        19        20        21        22        23        24        25
+ 01-OCT-2010 / 1:  3.112250  3.063082  3.547819  4.433232  5.475539  6.387525  6.917689  6.919604  6.392356  5.480903  4.436224  3.546203  3.056299  3.101849  3.670677  4.606352  5.651203  6.517281  6.965714  6.872593  6.263211  5.305189  4.262375  3.422174  3.016333
+ 01-JAN-2011 / 2:  4.433232  5.475539  6.387525  6.917689  6.919604  6.392356  5.480903  4.436224  3.546203  3.056299  3.101849  3.670677  4.606352  5.651203  6.517281  6.965714  6.872593  6.263211  5.305189  4.262375  3.422174  3.016333  3.157027  3.805846  4.784283
+ 02-APR-2011 / 3:  6.917689  6.919604  6.392356  5.480903  4.436224  3.546203  3.056299  3.101849  3.670677  4.606352  5.651203  6.517281  6.965714  6.872593  6.263211  5.305189  4.262375  3.422174  3.016333  3.157027  3.805846  4.784283  5.822848  6.635293  6.997507
+ 02-JUL-2011 / 4:  5.480903  4.436224  3.546203  3.056299  3.101849  3.670677  4.606352  5.651203  6.517281  6.965714  6.872593  6.263211  5.305189  4.262375  3.422174  3.016333  3.157027  3.805846  4.784283  5.822848  6.635293  6.997507  6.809341  6.122295  5.125425
+SHADE /X=120W/Y=50N/Z=50 actual
+FRAME /FILE=forecast_actual.gif
+!
+! the diagonal should be a regular 3:1 stairstep on lower and upper
+! using actual should show single color on horizontal
+!
+LET /TITLE="actual (diag view)" diagview = actual[gt(tf_times)=tf_cal_t]
+SHOW GRID diagview
+    GRID (G181)
+ name       axis              # pts   start                end                 subset
+ XAX1      LONGITUDE            7mr   140W                 110W                full
+ YAX2      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
+ TF_CAL_F  FORECAST             4 r   01-OCT-2010 21:36    02-JUL-2011 19:12   full
+LIST /WIDTH=600 /X=120W/Y=50N/Z=50 diagview
+             VARIABLE : actual (diag view)
+             DATA SET : Forecast series of 4 datasets patterned on forecast24
+             FILENAME : testdata
+             SUBSET   : 34 by 4 points (TIME-FORECAST)
+             LONGITUDE: 120W
+             LATITUDE : 50N
+             Z (meter): 50
+             Verification time increases across row.  Initialization time increases down page. 
+                      2010      2010      2010      2011      2011      2011      2011      2011      2011      2011      2011      2011      2011      2011      2011      2012      2012      2012      2012      2012      2012      2012      2012      2012      2012      2012      2012      2013      2013      2013      2013      2013      2013      2013   
+                       1         2         3         4         5         6         7         8         9        10        11        12        13        14        15        16        17        18        19        20        21        22        23        24        25        26        27        28        29        30        31        32        33        34
+ 01-OCT-2010 / 1:  3.112250  3.063082  3.547819  4.433232  5.475539  6.387525  6.917689  6.919604  6.392356  5.480903  4.436224  3.546203  3.056299  3.101849  3.670677  4.606352  5.651203  6.517281  6.965714  6.872593  6.263211  5.305189  4.262375  3.422174  3.016333      ....      ....      ....      ....      ....      ....      ....      ....      ....
+ 01-JAN-2011 / 2:      ....      ....      ....  4.433232  5.475539  6.387525  6.917689  6.919604  6.392356  5.480903  4.436224  3.546203  3.056299  3.101849  3.670677  4.606352  5.651203  6.517281  6.965714  6.872593  6.263211  5.305189  4.262375  3.422174  3.016333  3.157027  3.805846  4.784283      ....      ....      ....      ....      ....      ....
+ 02-APR-2011 / 3:      ....      ....      ....      ....      ....      ....  6.917689  6.919604  6.392356  5.480903  4.436224  3.546203  3.056299  3.101849  3.670677  4.606352  5.651203  6.517281  6.965714  6.872593  6.263211  5.305189  4.262375  3.422174  3.016333  3.157027  3.805846  4.784283  5.822848  6.635293  6.997507      ....      ....      ....
+ 02-JUL-2011 / 4:      ....      ....      ....      ....      ....      ....      ....      ....      ....  5.480903  4.436224  3.546203  3.056299  3.101849  3.670677  4.606352  5.651203  6.517281  6.965714  6.872593  6.263211  5.305189  4.262375  3.422174  3.016333  3.157027  3.805846  4.784283  5.822848  6.635293  6.997507  6.809341  6.122295  5.125425
+SHADE /X=120W/Y=50N/Z=50 diagview
+FRAME /FILE=forecast_diagview.gif
+!
+! using actual should show single color on horizontal
+!
+LET /TITLE="actual (lead view)" leadview = actual[gt(tf_times)=tf_cal_t,gf(tf_times)=tf_lag_f]
+SHOW GRID leadview
+    GRID (G201)
+ name       axis              # pts   start                end                 subset
+ XAX1      LONGITUDE            7mr   140W                 110W                full
+ YAX2      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
+ TF_LAG_F  FORECAST LEAD TIME ( 9 r   45.65                776.05              full
+LIST /WIDTH=600 /X=120W/Y=50N/Z=50 leadview
+             VARIABLE : actual (lead view)
+             DATA SET : Forecast series of 4 datasets patterned on forecast24
+             FILENAME : testdata
+             SUBSET   : 34 by 9 points (TIME-FORECAST LEAD TIME (day))
+             LONGITUDE: 120W
+             LATITUDE : 50N
+             Z (meter): 50
+             Verification time increases across row.  Initialization time increases down page. 
+                2010      2010      2010      2011      2011      2011      2011      2011      2011      2011      2011      2011      2011      2011      2011      2012      2012      2012      2012      2012      2012      2012      2012      2012      2012      2012      2012      2013      2013      2013      2013      2013      2013      2013   
+                 1         2         3         4         5         6         7         8         9        10        11        12        13        14        15        16        17        18        19        20        21        22        23        24        25        26        27        28        29        30        31        32        33        34
+ 45.6  / 1:  3.112250  3.063082  4.433232  5.475539  6.917689  6.919604  5.480903  4.436224      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
+ 136.9 / 2:      ....      ....  3.547819  4.433232  6.387525  6.917689  6.392356  5.480903  3.546203  3.056299      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
+ 228.2 / 3:      ....      ....      ....      ....  5.475539  6.387525  6.919604  6.392356  4.436224  3.546203  3.101849  3.670677      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
+ 319.5 / 4:      ....      ....      ....      ....      ....      ....  6.917689  6.919604  5.480903  4.436224  3.056299  3.101849  4.606352  5.651203      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
+ 410.8 / 5:      ....      ....      ....      ....      ....      ....      ....      ....  6.392356  5.480903  3.546203  3.056299  3.670677  4.606352  6.517281  6.965714      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
+ 502.1 / 6:      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....  4.436224  3.546203  3.101849  3.670677  5.651203  6.517281  6.872593  6.263211      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
+ 593.4 / 7:      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....  3.056299  3.101849  4.606352  5.651203  6.965714  6.872593  5.305189  4.262375      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
+ 684.7 / 8:      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....  3.670677  4.606352  6.517281  6.965714  6.263211  5.305189  3.422174  3.016333      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
+ 776   / 9:      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....  5.651203  6.517281  6.872593  6.263211  4.262375  3.422174  3.157027  3.805846      ....      ....      ....      ....      ....      ....      ....      ....      ....      ....
+SHADE /X=120W/Y=50N/Z=50 leadview
+FRAME /FILE=forecast_leadview.gif
+ 
+! Bug 2331: Labeling the labels in line-plot legends.
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Go err700_legend_labels
+! err700_legend_labels.jnl
+! See ticket 2231:
+!   - consistent labeling of units
+!   - PLOT/KEY=title applies to PLOT/VS
+ 
+cancel symbol lab*
+use gt4d011.cdf
+ 
+! Previously vertical label had Deg C, legend labels had units.
+! Now label only the legend labels show the different units.
+set v ul; plot/l=1/k=1/y=0/key=title temp, taux, tauy
+annotate/norm/xpos=1/ypos=.5/halign=0/valign=-4/angle=-90/size=0.14 "Each label with units"
+ 
+sh sym lab*  ! laby is not used
+LABX = "LONGITUDE"
+LAB1 = "DEPTH (m) : 5"
+LABNUM_Z = "1"
+LAB2 = "TIME : 17-AUG-1982 12:00"
+LABNUM_T = "2"
+LAB3 = "DATA SET: gt4d011"
+LABNUM_DSET = "3"
+LAB4 = ""
+LABNUM_DATITL = "4"
+LAB5 = "TEMPERATURE (deg. C)"
+LABKEY = "MERIDIONAL WIND STRESS (dynes/cm**2)"
+LAB6 = "ZONAL WIND STRESS (dynes/cm**2)"
+LAB7 = "MERIDIONAL WIND STRESS (dynes/cm**2)"
+can sym lab*
+ 
+! Previously vertical label and legend labels had units.
+! Now label only the vertical axis with the common units.
+set v ur; plot/l=1/k=1/y=0/key=title taux, tauy
+annotate/norm/xpos=1/ypos=.5/halign=0/valign=-4/angle=-90/size=0.14 "Common Units, labeled on left"
+ 
+! legend labels now do not include units
+sh sym lab*
+LABX = "LONGITUDE"
+LAB1 = "LATITUDE : 0.00002N"
+LABNUM_Y = "1"
+LAB2 = "TIME : 17-AUG-1982 12:00"
+LABNUM_T = "2"
+LAB3 = "DATA SET: gt4d011"
+LABNUM_DSET = "3"
+LAB4 = ""
+LABNUM_DATITL = "4"
+LABY = "dynes/cm**2"
+LAB5 = "ZONAL WIND STRESS"
+LABKEY = "MERIDIONAL WIND STRESS"
+LAB6 = "MERIDIONAL WIND STRESS"
+can sym lab*
+ 
+! Define some variables with titles
+let/title="Temperature Avg"/units="`temp,return=units`" tmpave = temp[L=@ave,z=@ave]
+ !-> DEFINE VARIABLE/title="Temperature Avg"/units="deg. C" tmpave = temp[L=@ave,z=@ave]
+let/title="September Taux"/units="`taux,return=units`" taux_s = taux[t=23-SEP-1982, k=1]
+ !-> DEFINE VARIABLE/title="September Taux"/units="dynes/cm**2" taux_s = taux[t=23-SEP-1982, k=1]
+let/title="January Taux"/units="`taux,return=units`" taux_j = taux[t=4-jan-1983, k=1]
+ !-> DEFINE VARIABLE/title="January Taux"/units="dynes/cm**2" taux_j = taux[t=4-jan-1983, k=1]
+ 
+! Set up a common set of axes for all variables
+set v lower
+plot/vs/sym=dot/y=0/nokey tmpave,taux_s,taux_j
+annotate/norm/xpos=1/ypos=.5/halign=0/valign=-4/angle=-90/size=0.14 "PLOT/VS with KEY=title"
+ 
+! Overlay; the legend titles are variable titles.
+plot/over/vs/color=red/thick/siz=0.14/y=0/key=title tmpave,taux_s
+plot/over/vs/color=green/thick/siz=0.14/y=0/key=title tmpave,taux_j
+ 
+frame/file=legend_1d_plots.gif
+ 
+! legend labels are titles
+sh sym lab*
+LABX = "Temperature Avg (deg. C)"
+LAB1 = "DEPTH (m) : 0 to 4149"
+LABNUM_Z = "1"
+LAB2 = "DATA SET: gt4d011"
+LABNUM_DSET = "2"
+LAB3 = ""
+LABNUM_DATITL = "3"
+LABY = "dynes/cm**2"
+LAB4 = "September Taux"
+LABKEY = "January Taux"
+LAB5 = "January Taux"
+ 
+! Overlaying on a 2D field
+ 
+DEFINE AXIS/T="1-JAN-1980":"1-JAN-1990":5/UNITS=DAYS tdays
+DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
+ 
+LET/TITLE=XY my_var = 10*cos(T[gt=tdays]/2000)*EXP((-1)*y[gy=yax]/20)
+LET my_var2 = 10*cos(T[gt=tdays]/2000)*EXP((-1)*y[gy=yax]/20)
+ 
+! make a Hovmoller plot
+SHADE/nolab my_var
+ 
+! PLOT/OVER without key=title shows the def in the line key
+PLOT/OVER my_var[Y=@loc:-4]
+PLOT/OVER my_var2[Y=@loc:-3]
+ 
+! with /KEY=TITLE, the variable with a title uses that,
+! variable without a title uses the variable name,
+! an expression just puts the expression (same as w/o /key=title)
+ 
+PLOT/OVER/KEY=TITLE my_var[Y=@loc:-2]
+PLOT/OVER/KEY=TITLE my_var2[Y=@loc:-1]
+ 
+PLOT/OVER/KEY=TITLE 10+cos(T[gt=tdays]/200)
+ 
+ 
+! Bug 2507: time aggregations with same time axis in different grids per file
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Go err700_aggt_dup_grids
+! err700_aggt_dup_grids
+! 2/15/2017 ACM
+! Bug 2507: new time axis is identical in two tseries aggregation.
+!  It exists in more than one grid. Previously the new time axis
+!  was swapped into only one of the grids for the second aggregation.
+ 
+! Define some datsets, with two variables with different grids each
+! using a common time axis.
+ 
+use  tmp/tagg_irreg_1.nc
+define axis/x=1:1:1 xax1
+let newvar = x[gx=xax1] + myvar
+save/clobber/file=a1.nc myvar, newvar
+can dat/all
+use  tmp/tagg_irreg_2.nc
+save/clobber/file=a2.nc myvar, newvar
+ 
+can dat/all; can var/all
+ 
+! Define two aggregations; the second should share the time axis
+! that was set up in the first.
+sp ln -sf a1.nc b1.nc
+sp ln -sf a2.nc b2.nc
+ 
+tseries a2var = a1.nc, a2.nc
+tseries b2var = b1.nc, b2.nc
+ 
+! previously the time axis of the second variable in b2var was
+! listed as length 10
+sh dat
+     currently SET data sets:
+    1> a2var
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20
+ NEWVAR   X[GX=XAX1] + MYVAR               1:1       ...       ...       1:20
+ 
+    2> b2var  (default)
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20
+ NEWVAR   X[GX=XAX1] + MYVAR               1:1       ...       ...       1:20
+ 
+ 
+ 
+GO bn_reset bn_delim_datetime
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_delim_datetime
+GO bn_delim_datetime
+! bn_delim_datetime.jnl
+! ACM 7/2016
+!
+! Tickets 2448, 2449, 2450: Improvements to date reading in delimited files.
+! New: date/time fields for US and European style dates.
+! Also report incorrect date/time spec (causes months out of range)
+! and put 2-digit years prior to 50 in the 21st century. (prev. cutoff was year 20)
+!
+ 
+! File contains index,euro-date-time, us-date-time, us-date, eurodate
+! The years in variables 3 and 4 are 2-digit years after year 2020.
+ 
+! Ticket 2472: Allow yyyy/dd/mm in any of the date specs.
+ 
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,datime,date,eurodate" delim_datetime.csv
+sh dat
+     currently SET data sets:
+    1> ./delim_datetime.csv  (default)
+ name     title                             I         J         K         L
+ INDEX    index                            1:8       ...       ...       ...
+ EDTIM    edtim                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ UDTIM    udtim                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ UDATE    udate                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ EDATE    edate                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ 
+list index,edtim,udtim,udate,edate
+             DATA SET: ./delim_datetime.csv
+             X: 0.5 to 5.5
+ Column  1: INDEX is index
+ Column  2: EDTIM is edtim (days)(Julian days since 1-Jan-1900)
+ Column  3: UDTIM is udtim (days)(Julian days since 1-Jan-1900)
+ Column  4: UDATE is udate (days)(Julian days since 1-Jan-1900)
+ Column  5: EDATE is edate (days)(Julian days since 1-Jan-1900)
+            INDEX    EDTIM     UDTIM     UDATE     EDATE
+1   / 1:  1.000000  41659.04  43850.28  34837.00  33376.00
+2   / 2:  2.000000  41659.10  44216.32  38490.00  33407.00
+3   / 3:  3.000000  41659.15  44581.36  42142.00  33437.00
+4   / 4:  4.000000  41659.17  44946.40  45795.00  33468.00
+5   / 5:  5.000000  41659.22  45311.44  49447.00  33529.00
+ 
+! axis January 2014
+define axis/t/t0=1-jan-1900/units=days timax = edtim
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 5 i   22-JAN-2014 01:00    22-JAN-2014 05:20
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 0.2361111
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  22-JAN-2014 01:00:00  0.0555556  22-JAN-2014 00:20:00    41659.04
+       2>  22-JAN-2014 02:20:00  0.0555556  22-JAN-2014 01:40:00    41659.1
+       3>  22-JAN-2014 03:40:00  0.0347222  22-JAN-2014 03:00:00    41659.15
+       4>  22-JAN-2014 04:00:00  0.0347222  22-JAN-2014 03:50:00    41659.17
+       5>  22-JAN-2014 05:20:00  0.0555556  22-JAN-2014 04:40:00    41659.22
+ 
+! time axis in 1991
+define axis/t/t0=1-jan-1900/units=days timax = edate
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 5 i   20-MAY-1991 00:00    20-OCT-1991 00:00
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 199
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  20-MAY-1991 00:00:00  31         04-MAY-1991 12:00:00    33376
+       2>  20-JUN-1991 00:00:00  30.5       04-JUN-1991 12:00:00    33407
+       3>  20-JUL-1991 00:00:00  30.5       05-JUL-1991 00:00:00    33437
+       4>  20-AUG-1991 00:00:00  46         04-AUG-1991 12:00:00    33468
+       5>  20-OCT-1991 00:00:00  61         19-SEP-1991 12:00:00    33529
+ 
+! time axis in 2020 - 2024
+define axis/t/t0=1-jan-1900/units=days timax = udtim
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 5 i   22-JAN-2020 06:40    22-JAN-2024 10:40
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 1826.708
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  22-JAN-2020 06:40:00  366.0417   23-JUL-2019 06:10:00    43850.28
+       2>  22-JAN-2021 07:40:00  365.5417   23-JUL-2020 07:10:00    44216.32
+       3>  22-JAN-2022 08:40:00  365.0417   23-JUL-2021 20:10:00    44581.36
+       4>  22-JAN-2023 09:40:00  365.0417   23-JUL-2022 21:10:00    44946.4
+       5>  22-JAN-2024 10:40:00  365.0417   23-JUL-2023 22:10:00    45311.44
+ 
+! time axis in 1995 - 2035
+define axis/t/t0=1-jan-1900/units=days timax = udate
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 5 i   20-MAY-1995 00:00    20-MAY-2035 00:00
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 18262.5
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  20-MAY-1995 00:00:00  3653       19-MAY-1990 12:00:00    34837
+       2>  20-MAY-2005 00:00:00  3652.5     19-MAY-2000 12:00:00    38490
+       3>  20-MAY-2015 00:00:00  3652.5     20-MAY-2010 00:00:00    42142
+       4>  20-MAY-2025 00:00:00  3652.5     19-MAY-2020 12:00:00    45795
+       5>  20-MAY-2035 00:00:00  3652       20-MAY-2030 00:00:00    49447
+ 
+! Dates of yyyy/dd/mm
+! Dates with 00/00/00 return missing-data
+ 
+columns/skip=2/var="index,udate,udtim"/type="num,date,datime" delim_yyyy.csv
+sh dat
+     currently SET data sets:
+    1> ./delim_datetime.csv
+ name     title                             I         J         K         L
+ INDEX    index                            1:5       ...       ...       ...
+ EDTIM    edtim                            1:5       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ UDTIM    udtim                            1:5       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ UDATE    udate                            1:5       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ EDATE    edate                            1:5       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ 
+    2> ./delim_yyyy.csv  (default)
+ name     title                             I         J         K         L
+ INDEX    index                            1:8       ...       ...       ...
+ UDATE    udate                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ UDTIM    udtim                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ 
+list/prec=10 index,udate,udtim
+             DATA SET: ./delim_yyyy.csv
+             X: 0.5 to 6.5
+ Column  1: INDEX is index
+ Column  2: UDATE is udate (days)(Julian days since 1-Jan-1900)
+ Column  3: UDTIM is udtim (days)(Julian days since 1-Jan-1900)
+               INDEX      UDATE        UDTIM
+1   / 1:  1.000000000  40920.00000  37243.27778
+2   / 2:  2.000000000  40921.00000  37243.31944
+3   / 3:  3.000000000  40923.00000  37243.36111
+4   / 4:  4.000000000  40924.00000  37243.40278
+5   / 5:  5.000000000         ....  37243.48611
+6   / 6:  6.000000000  40925.00000  37243.61111
+ 
+! axis January 2014
+define axis/t/t0=1-jan-1900/units=days timax = udate[i=1:4]
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 4 i   14-JAN-2012 00:00    18-JAN-2012 00:00
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 5
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  14-JAN-2012 00:00:00  1          13-JAN-2012 12:00:00    40920
+       2>  15-JAN-2012 00:00:00  1.5        14-JAN-2012 12:00:00    40921
+       3>  17-JAN-2012 00:00:00  1.5        16-JAN-2012 00:00:00    40923
+       4>  18-JAN-2012 00:00:00  1          17-JAN-2012 12:00:00    40924
+! axis December 2001
+define axis/t/t0=1-jan-1900/units=days timax = udtim
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 6 i   20-DEC-2001 06:40    20-DEC-2001 14:40
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 0.4166667
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  20-DEC-2001 06:40:00  0.0416667  20-DEC-2001 06:10:00    37243.28
+       2>  20-DEC-2001 07:40:00  0.0416667  20-DEC-2001 07:10:00    37243.32
+       3>  20-DEC-2001 08:40:00  0.0416667  20-DEC-2001 08:10:00    37243.36
+       4>  20-DEC-2001 09:40:00  0.0625     20-DEC-2001 09:10:00    37243.4
+       5>  20-DEC-2001 11:40:00  0.1041667  20-DEC-2001 10:40:00    37243.49
+       6>  20-DEC-2001 14:40:00  0.125      20-DEC-2001 13:10:00    37243.61
+ 
+ 
+! Intentional errors, specifying the wrong date field type (catches the first error)
+! The error is found upon reading the file.
+ 
+set mode ignore
+can dat/all
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,datime,datime,date,date" delim_datetime.csv
+list index,edtim,udtim,udate,edate
+ 
+can dat/all
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,edatime,date,eurodate" delim_datetime.csv
+list index,edtim,udtim,udate,edate
+ 
+can dat/all
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,datime,eurodate,date" delim_datetime.csv
+list index,edtim,udtim,udate,edate
+ 
+can dat/all
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,datime,date,date" delim_datetime.csv
+list index,edtim,udtim,udate,edate
+ 
+set mode/last ignore
+ 
+ 
+ 
+GO bn_reset bn_aggregate_u
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_aggregate_u
+GO bn_aggregate_u
+! bn_aggregate_u.jnl
+! Union aggregations including tests of UNION in combination
+! with TSERIES, ENSEMBLE, and FMRC aggregations
+! acm 7/15/2016
+! create some variables in separate datasets.
+define axis/t=1-jan-2010:10-jan-2010:1/units=days/t0=1-jan-2010 tax
+let/title=sst  sst = x[x=1:5] + 1.3*y[y=1:4] + t[gt=tax]
+let/title=temp temp = 0.8*x[x=1:5] - y[y=1:4] + t[gt=tax]
+let/title=U    u = x[x=1:5] + 0.4*y[y=1:4] - 1.1* t[gt=tax]
+let/title=V    v = x[x=1:5] - 0.2*y[y=1:4] + 1.1* t[gt=tax]
+ 
+save/clobber/file="tmp/uagg_1.nc" sst
+save/clobber/file="tmp/uagg_2.nc" temp
+save/clobber/file="tmp/uagg_3.nc" u
+save/clobber/file="tmp/uagg_4.nc" v
+ 
+save/l=1:3/clobber/file="tmp/uagg_1_t1.nc" sst
+save/l=4:6/clobber/file="tmp/uagg_1_t2.nc" sst
+save/l=7:10/clobber/file="tmp/uagg_1_t3.nc" sst
+ 
+can dat/all
+union tmp/uagg_1.nc,tmp/uagg_2.nc,tmp/uagg_3.nc,tmp/uagg_4.nc
+sh dat
+     currently SET data sets:
+    5> ./bn_aggregate_u.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
+ 
+vec/l=5 u,v
+ 
+cancel dat/all
+ 
+! issue a note if a variable is already in the Union
+! a new file with different defiontions of sst and temp
+!
+let/title="sst in uagg_5"  sst = 1.1*x[x=1:5] + 1.3*y[y=1:4] + t[gt=tax]
+let/title="temp in uagg_5" temp = 0.9*x[x=1:5] - y[y=1:4] + t[gt=tax]
+save/clobber/file="tmp/uagg_5.nc" sst,temp
+ 
+! In the union set, sst comes from uagg_1, temp comes from uagg_5
+union uu = tmp/uagg_1.nc,tmp/uagg_5.nc
+sh dat/att
+     currently SET data sets:
+    3> uu  (default)  Union aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        2    F       uu
+  
+ SST                   FLOAT     long_name       CHAR        3    T       sst
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ TEMP                  FLOAT     long_name       CHAR        14   T       temp in uagg_5
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+can dat/all
+ 
+! Or use /quiet to supress the note
+union/quiet uu = tmp/uagg_1.nc,tmp/uagg_5.nc
+ 
+let tnames = SPAWN("ls -1 tmp/uagg_1_*.nc")
+tseries  temp_time_agg = tnames
+sh dat
+     currently SET data sets:
+    3> uu     Union aggregation
+ name     title                             I         J         K         L
+ SST      sst                              1:5       1:4       ...       1:10
+ TEMP     temp in uagg_5                   1:5       1:4       ...       1:10
+ 
+    4> temp_time_agg  (default)
+ name     title                             I         J         K         L
+ SST      sst                              1:5       1:4       ...       1:10
+ 
+union temp_time_agg, tmp/uagg_2.nc,tmp/uagg_3.nc,tmp/uagg_4.nc
+ 
+shade/l=2 sst - temp
+ 
+ 
+can dat/all; can var/all; can sym/all
+ 
+! exercise 6D aggregations: UNION with T, E, and F simultaneously
+ 
+! do not bother to echo the creation of files and the definitions of the
+! many time aggregations
+CANCEL MODE VERIFY
+! define T aggregations
+ 
+! timeseries of files with variable fcst_1
+repeat/name=fdate/range=1:7:3 (\
+  let tstart = t[gt=truemonth,l=`fdate`];\
+  repeat/name=ens/range=1:2:1 (\
+    let realization = `ens`;\
+    TSERIES  t_f`(fdate-1)/3+1,zw=2`_e`ens` = SPAWN("ls -1 tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_t?.nc")  ))
+!-> REPEAT: FDATE:1
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=1]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f01_e1 = SPAWN("ls -1 tmp/f01_e1_t?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f01_e2 = SPAWN("ls -1 tmp/f01_e2_t?.nc")
+!-> REPEAT: FDATE:4
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=4]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f02_e1 = SPAWN("ls -1 tmp/f02_e1_t?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f02_e2 = SPAWN("ls -1 tmp/f02_e2_t?.nc")
+!-> REPEAT: FDATE:7
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=7]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f03_e1 = SPAWN("ls -1 tmp/f03_e1_t?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f03_e2 = SPAWN("ls -1 tmp/f03_e2_t?.nc")
+ 
+! timeseries of files with variable fcst_3
+repeat/name=fdate/range=1:7:3 (\
+  let tstart = t[gt=truemonth,l=`fdate`];\
+  repeat/name=ens/range=1:2:1 (\
+    let realization = `ens`;\
+    TSERIES  t_f`(fdate-1)/3+1,zw=2`_e`ens`_3 = SPAWN("ls -1 tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_tu?.nc")  ))
+!-> REPEAT: FDATE:1
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=1]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f01_e1_3 = SPAWN("ls -1 tmp/f01_e1_tu?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f01_e2_3 = SPAWN("ls -1 tmp/f01_e2_tu?.nc")
+!-> REPEAT: FDATE:4
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=4]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f02_e1_3 = SPAWN("ls -1 tmp/f02_e1_tu?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f02_e2_3 = SPAWN("ls -1 tmp/f02_e2_tu?.nc")
+!-> REPEAT: FDATE:7
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=7]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f03_e1_3 = SPAWN("ls -1 tmp/f03_e1_tu?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f03_e2_3 = SPAWN("ls -1 tmp/f03_e2_tu?.nc")
+ 
+cancel variable realization
+ 
+SET MODE VERIFY
+! now union these to make datsets with fcnst_1 and fcst_3.
+ 
+show data/files/br;
+     currently SET data sets:
+    1> t_f01_e1
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_t3.nc
+ 
+    2> t_f01_e2
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_t3.nc
+ 
+    3> t_f02_e1
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e1_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e1_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e1_t3.nc
+ 
+    4> t_f02_e2
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e2_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e2_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e2_t3.nc
+ 
+    5> t_f03_e1
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e1_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e1_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e1_t3.nc
+ 
+    6> t_f03_e2
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e2_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e2_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e2_t3.nc
+ 
+    7> t_f01_e1_3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_tu1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_tu2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_tu3.nc
+ 
+    8> t_f01_e2_3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_tu1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_tu2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_tu3.nc
+ 
+    9> t_f02_e1_3
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e1_tu1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e1_tu2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e1_tu3.nc
+ 
+   10> t_f02_e2_3
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e2_tu1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e2_tu2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e2_tu3.nc
+ 
+   11> t_f03_e1_3
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e1_tu1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e1_tu2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e1_tu3.nc
+ 
+   12> t_f03_e2_3  (default)
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e2_tu1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e2_tu2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e2_tu3.nc
+ 
+ 
+DEFINE DATA/AGGREGAT/U  u1 = t_f01_e1_3, t_f01_e1
+DEFINE DATA/AGGREGAT/U  u2 = t_f01_e2, t_f01_e2_3
+show data u1 u2
+     currently SET data sets:
+   13> u1     Union aggregation
+ name     title                             I         J         K         L
+ FCST_3   another variable                 1:21      1:11      1:1       1:36
+       (L=1:12)
+ REALIZATION
+          1                                ...       ...       ...       ...
+ FCST     some variable                    1:21      1:11      1:1       1:36
+       (L=1:12)
+ FCST_2   another variable                 1:21      1:11      1:1       1:36
+       (L=1:12)
+ 
+can data u1 u2
+ 
+! Make a batch of files, timeseries aggregations union-ed.
+! the /QUIET supresses the note about skipping duplicate variables.
+repeat/name=fdate/range=1:7:3 (\
+  let tstart = t[gt=truemonth,l=`fdate`];\
+  repeat/name=ens/range=1:2:1 (\
+    let realization = `ens`;\
+    UNION/quiet  t_f_u`(fdate-1)/3+1,zw=2`_e`ens` = t_f`(fdate-1)/3+1,zw=2`_e`ens`, t_f`(fdate-1)/3+1,zw=2`_e`ens`_3;\
+    show data/br t_f_u`(fdate-1)/3+1,zw=2`_e`ens`))
+!-> REPEAT: FDATE:1
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=1]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u01_e1 = t_f01_e1, t_f01_e1_3
+ !-> show data/br t_f_u01_e1
+     currently SET data sets:
+   13> t_f_u01_e1  (default)  Union aggregation
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u01_e2 = t_f01_e2, t_f01_e2_3
+ !-> show data/br t_f_u01_e2
+     currently SET data sets:
+   14> t_f_u01_e2  (default)  Union aggregation
+!-> REPEAT: FDATE:4
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=4]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u02_e1 = t_f02_e1, t_f02_e1_3
+ !-> show data/br t_f_u02_e1
+     currently SET data sets:
+   15> t_f_u02_e1  (default)  Union aggregation
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u02_e2 = t_f02_e2, t_f02_e2_3
+ !-> show data/br t_f_u02_e2
+     currently SET data sets:
+   16> t_f_u02_e2  (default)  Union aggregation
+!-> REPEAT: FDATE:7
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=7]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u03_e1 = t_f03_e1, t_f03_e1_3
+ !-> show data/br t_f_u03_e1
+     currently SET data sets:
+   17> t_f_u03_e1  (default)  Union aggregation
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u03_e2 = t_f03_e2, t_f03_e2_3
+ !-> show data/br t_f_u03_e2
+     currently SET data sets:
+   18> t_f_u03_e2  (default)  Union aggregation
+ 
+cancel variable realization
+ 
+! should share the same time axis
+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
+ 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
+ ZAX1      Z (m)                1 r   250                  250                 full
+ TRUEMONTH3 TIME               36 i   16-JAN-1950 12:00    16-DEC-1952 12:00   full
+ 
+! Now go on and aggregate these time & union aggregations, in E and F
+ 
+! ======== TEST SET 1:  aggregate E first, then F
+ 
+! define tue aggregations -- only the first remains unhidden
+ENSEMBLE      tue_f01 = t_f_u01_e1, t_f_u01_e2
+ENSEMBLE/hide tue_f02 = t_f_u02_e1, t_f_u02_e1
+ENSEMBLE/hide tue_f03 = t_f_u03_e1, t_f_u03_e2
+SHOW DATA/brief
+     currently SET data sets:
+    1> t_f01_e1
+    2> t_f01_e2
+    3> t_f02_e1
+    4> t_f02_e2
+    5> t_f03_e1
+    6> t_f03_e2
+    7> t_f01_e1_3
+    8> t_f01_e2_3
+    9> t_f02_e1_3
+   10> t_f02_e2_3
+   11> t_f03_e1_3
+   12> t_f03_e2_3
+   13> t_f_u01_e1     Union aggregation
+   14> t_f_u01_e2     Union aggregation
+   16> t_f_u02_e2     Union aggregation
+   19> tue_f01     Ensemble aggregation
+   20> tue_f02     Ensemble aggregation
+   21> tue_f03  (default)  Ensemble aggregation
+SHOW DATA/FULL tue_f03
+     currently SET data sets:
+   21> tue_f03  (default)  Ensemble aggregation
+     Ensemble series of 2 datasets patterned on t_f_u03_e1
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:2       ...
+       (L=7:18)
+               on grid GEN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:2       ...
+       (L=7:18)
+               on grid GEN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  
+ REALIZATION
+          1                                ...       ...       ...       ...       1:2       ...
+               on grid GEN3 with -1.E+34 for missing data
+             E=0.5:2.5  
+ FCST_3   another variable                 1:21      1:11      1:1       1:36      1:2       ...
+       (L=7:18)
+               on grid GEN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  
+ 
+  time range: 16-JUL-1950 12:00 to 16-JUN-1953 00:00
+ 
+          Member datasets:
+      21.1: t_f_u03_e1
+      21.2: t_f_u03_e2
+SHOW DATA/ATT tue_f03   ! notice the promotion of fcst.im_everywhere
+     currently SET data sets:
+   21> tue_f03  (default)  Ensemble aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        7    F       tue_f03
+  
+ FCST                  FLOAT     long_name       CHAR        13   T       some variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ FCST_2                FLOAT     long_name       CHAR        16   T       another variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ REALIZATION           FLOAT     long_name       CHAR        1    T       1
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ FCST_3                FLOAT     long_name       CHAR        16   T       another variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ 
+! define tuef aggregation
+FMRC/HIDE tuef = tue_f01, tue_f02, tue_f03
+SHOW DATA/brief/files
+     currently SET data sets:
+    1> t_f01_e1
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_t3.nc
+ 
+    2> t_f01_e2
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_t3.nc
+ 
+    3> t_f02_e1
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e1_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e1_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e1_t3.nc
+ 
+    4> t_f02_e2
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e2_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e2_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e2_t3.nc
+ 
+    5> t_f03_e1
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e1_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e1_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e1_t3.nc
+ 
+    6> t_f03_e2
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e2_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e2_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e2_t3.nc
+ 
+    7> t_f01_e1_3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_tu1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_tu2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_tu3.nc
+ 
+    8> t_f01_e2_3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_tu1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_tu2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_tu3.nc
+ 
+    9> t_f02_e1_3
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e1_tu1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e1_tu2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e1_tu3.nc
+ 
+   10> t_f02_e2_3
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e2_tu1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e2_tu2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e2_tu3.nc
+ 
+   11> t_f03_e1_3
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e1_tu1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e1_tu2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e1_tu3.nc
+ 
+   12> t_f03_e2_3
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e2_tu1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e2_tu2.nc
+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
+ 
+   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
+ 
+   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
+ 
+   22> tuef  (default)  Forecast aggregation
+          Member datasets:
+      22.1: tue_f01
+      22.2: tue_f02
+      22.3: tue_f03
+show data/full tuef
+     currently SET data sets:
+   22> tuef  (default)  Forecast aggregation
+     Forecast series of 3 datasets patterned on tue_f01
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+               on grid GFN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  F=16-NOV-1949 18:00:15-AUG-1950 06:00  
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:36      ...       1:3
+             days since 01-JAN-1900 00:00:00 on grid FTI1 with -1.E+34 for missing data
+             F=16-NOV-1949 18:00:15-AUG-1950 06:00  
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+               on grid GFN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  F=16-NOV-1949 18:00:15-AUG-1950 06:00  
+ FCST_3   another variable                 1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+               on grid GFN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  F=16-NOV-1949 18:00:15-AUG-1950 06:00  
+ 
+  time range: 15.214 to 1080.2
+ 
+          Member datasets:
+      22.1: tue_f01
+      22.2: tue_f02
+      22.3: tue_f03
+ 
+! The time-union-ensemble-forecast aggregation
+ 
+set data tuef
+show data tuef
+     currently SET data sets:
+   22> tuef  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:36      ...       1:3
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+ FCST_3   another variable                 1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+ 
+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
+ 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
+ TF_CAL_F  FORECAST             3 i   01-JAN-1950 00:00    01-JUL-1950 00:00   full
+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
+ 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
+ TF_CAL_F  FORECAST             3 i   01-JAN-1950 00:00    01-JUL-1950 00:00   full
+ 
+! simplest acess -- compact form -- just demonstrate it doesn't fail
+stat/brief fcst[i=11:12, j=5:6, l=31:32, m=1:2, n=2:3]
+ 
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad  data: 0
+ Minimum value: 224.8
+ Maximum value: 237.7
+ Mean    value: 228.19 (unweighted average)
+stat/brief fcst_3[i=11:12, j=5:6, l=31:32, m=1:2, n=2:3]
+ 
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad  data: 0
+ Minimum value: 227.8
+ Maximum value: 240.74
+ Mean    value: 231.21 (unweighted average)
+ 
+! diagonal forecast view of ensemble mean
+let diag_fcst = fcst[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]
+shade/x=150E/y=15n diag_fcst[m=1:2 at ave]
+ 
+let diag_fcst_3 = fcst_3[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]
+shade/x=150E/y=15n diag_fcst[m=1:2 at ave]
+ 
+! the difference will be just a small variation from the value 3
+let diff_of_union = diag_fcst - diag_fcst_3
+ 
+shade/x=150E/y=15n  diff_of_union[m=1:2 at ave]
+CANCEL DATA/ALL
+ 
+ 
+ 
+GO bn_reset bn_ez_noupcase
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ez_noupcase
+GO bn_ez_noupcase
+! bn_ez_noupcase.jnl
+! 7/2016 *acm* see ticket 2454
+!
+! Handle variable-name upcasing for Ascii data
+! in the same way as for netcdf variables.
+! Previously they were resolutely up-cased and the
+! lowercase version was unavailable.
+ 
+can mode upcase
+ 
+let abc = {2,4,6,8,6}
+list/clobber/nohead/norow/file=abc.dat abc
+can var/all
+file/var=abc abc.dat
+sh dat
+     currently SET data sets:
+    1> ./abc.dat  (default)
+ name     title                             I         J         K         L
+ abc      abc                              1:5       ...       ...       ...
+ 
+sh dat/att
+     currently SET data sets:
+    1> ./abc.dat  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        7    F       abc.dat
+  
+ abc                   FLOAT     long_name       CHAR        3    T       abc
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+save/clobber/file=a.nc abc
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	AX043 = 5 ;
+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 ;
+		abc:long_name = "abc" ;
+		abc:history = "From abc.dat" ;
+
+// global attributes:
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+! Delimited read
+columns/skip=1/var="lab,nothing,var,latitude,longitude"/type="text,text,num,latitude,longitude" bn_delimited_read_1.dat
+sh dat
+     currently SET data sets:
+    1> ./abc.dat
+ name     title                             I         J         K         L
+ abc      abc                              1:5       ...       ...       ...
+ 
+    2> ./bn_delimited_read_1.dat  (default)
+ name     title                             I         J         K         L
+ lab      lab                              1:7       ...       ...       ...
+ nothing  nothing                          1:7       ...       ...       ...
+ var      var                              1:7       ...       ...       ...
+ latitude latitude                         1:7       ...       ...       ...
+       (Latitude)
+ longitude
+          longitude                        1:7       ...       ...       ...
+       (Longitude)
+ 
+sh dat/att
+     currently SET data sets:
+    1> ./abc.dat
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        7    F       abc.dat
+  
+ abc                   FLOAT     long_name       CHAR        3    T       abc
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+    2> ./bn_delimited_read_1.dat  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               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
+  
+ nothing               CHAR      long_name       CHAR        7    T       nothing
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ var                   FLOAT     long_name       CHAR        3    T       var
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ latitude              FLOAT     long_name       CHAR        8    T       latitude
+                                 units           CHAR        13   T       degrees_north
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ longitude             FLOAT     long_name       CHAR        9    T       longitude
+                                 units           CHAR        12   T       degrees_east
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+sav/file=a.nc/clobber var,longitude,latitude
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	AX103 = 6 ;
+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 ;
+		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 ;
+		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 ;
+		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" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+set mode/last upcase
+ 
+GO bn_reset bn_spawn_fail
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_spawn_fail
+GO bn_spawn_fail
+! bn_spawn_fail.jnl
+!  See ticket 2453
+!  If a no-success flag is returned from a SPAWN,
+!  report that as a warning.
+!  8/2016 *acm*
+ 
+sp ls notafile.nowhere
+sp grep "this text is not in the file" bn_all.jnl
+sp rm nothing.dat
+sp grep modulus non_COARDS.cdl
+sp cp nofile.dat not_either.dat
+ 
+GO bn_reset bn_ave_of_ave
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_ave_of_ave
+GO bn_ave_of_ave
+! bn_ave_of_ave.jnl
+! see ticket 2469
+ 
+let a = x[gx=1:3:1] + t[gt=1:7:1]
+let a_xav = a[x=@ave]
+let a_dev = a - a_xav
+ 
+list a_dev[x=@ave]
+             VARIABLE : A - A_XAV
+             SUBSET   : 7 points (T)
+             X        : 0.5 to 3.5 (averaged)
+ 1   / 1:  0.0000000
+ 2   / 2:  0.0000000
+ 3   / 3:  0.0000000
+ 4   / 4:  0.0000000
+ 5   / 5:  0.0000000
+ 6   / 6:  0.0000000
+ 7   / 7:  0.0000000
+ 
+! Previously this was an error
+list a[x=@ave] - a_xav[x=@ave]
+             VARIABLE : A[X=@AVE] - A_XAV[X=@AVE]
+             SUBSET   : 7 points (T)
+             X        : 0.5 to 3.5
+ 1   / 1:  0.0000000
+ 2   / 2:  0.0000000
+ 3   / 3:  0.0000000
+ 4   / 4:  0.0000000
+ 5   / 5:  0.0000000
+ 6   / 6:  0.0000000
+ 7   / 7:  0.0000000
+ 
+! Combine with functions, regridding
+let a = x[gx=1:3:1] + t[gt=1:7:1]
+let a_xav = a[x=@ave]
+let a_xav_xav = a_xav[x=@ave]
+let b = samplel(a_xav_xav, l[gl=1:3:1])
+let c = b[gt=1:3:1]
+ 
+! Previously an error
+list c
+             VARIABLE : B[GT=1:3:1]
+             SUBSET   : 3 points (T)
+ 1   / 1:  3.000000
+ 2   / 2:  4.000000
+ 3   / 3:  5.000000
+ 
+! Likewise for @SUM, @MIN, @MAX.
+ 
+let a = TSEQUENCE({1,2,3})
+let a_xtrns = a[t=@SUM]
+list a[t=@SUM] - a_xtrns[t=@SUM]
+             VARIABLE : A[T=@SUM] - A_XTRNS[T=@SUM]
+             T        : 0.5 to 3.5
+          0.0000000
+ 
+let a_xtrns = a[t=@MIN]
+list a[t=@MIN] - a_xtrns[t=@MIN]
+             VARIABLE : A[T=@MIN] - A_XTRNS[T=@MIN]
+             T        : 0.5 to 3.5
+          0.0000000
+ 
+let a_xtrns = a[t=@MAX]
+list a[t=@MAX] - a_xtrns[t=@MAX]
+             VARIABLE : A[T=@MAX] - A_XTRNS[T=@MAX]
+             T        : 0.5 to 3.5
+          0.0000000
+ 
+ 
+GO bn_reset bn_agg_member_syntax
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_agg_member_syntax
+GO bn_agg_member_syntax
+! bn_agg_member_syntax
+ 
+! *sh* 11/16
+ 
+! running of this benchmark assumes that a tmp directory has been created
+! and that it contains the aggregation member files created by bn_aggregate_f
+ 
+ 
+! define an 11-member FMRC aggregation
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+fmrc my_fmrc = files
+show data/members my_fmrc   ! /FILES is deprecated
+     currently SET data sets:
+   12> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:11
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ 
+          Member datasets:
+      12.1 : tmp/fcst_1.nc
+      12.2 : tmp/fcst_2.nc
+      12.3 : tmp/fcst_3.nc
+      12.4 : tmp/fcst_4.nc
+      12.5 : tmp/fcst_5.nc
+      12.6 : tmp/fcst_6.nc
+      12.7 : tmp/fcst_7.nc
+      12.8 : tmp/fcst_8.nc
+      12.9 : tmp/fcst_9.nc
+      12.10: tmp/fcst_10.nc
+      12.11: tmp/fcst_11.nc
+ 
+show data 12.3   ! turns out to be dset=5
+     currently SET data sets:
+    5> tmp/fcst_3.nc
+ name     title                             I         J         K         L
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24
+       (L=7:30)
+ FCST_2   another variable                 1:21      1:21      ...       1:24
+       (L=7:30)
+ 
+ 
+! these are now all allowable references to the parent aggregation
+stat fcst[d=12]
+ 
+             FIELD + FCST_ERROR
+             LONGITUDE: 139.5E to 160.5E
+             LATITUDE: 19.5N to 40.5N
+             Z:  N/A
+             MODEL ELAPSED TIME (day): 0 to 729.39
+             E:  N/A
+             FORECAST: 16-NOV-1949 09:36 to 15-AUG-1952 14:24
+             DATA SET: my_fmrc
+ 
+ Total # of data points: 116424 (21*21*1*24*1*11)
+ # flagged as bad  data: 0
+ Minimum value: -1.0038
+ Maximum value: 1.4046
+ Mean    value: 0.13342 (unweighted average)
+ Standard deviation: 0.55306
+stat/br fcst[d=12.]
+ 
+ Total # of data points: 116424 (21*21*1*24*1*11)
+ # flagged as bad  data: 0
+ Minimum value: -1.0038
+ Maximum value: 1.4046
+ Mean    value: 0.13342 (unweighted average)
+stat/br fcst[d=12.0]
+ 
+ Total # of data points: 116424 (21*21*1*24*1*11)
+ # flagged as bad  data: 0
+ Minimum value: -1.0038
+ Maximum value: 1.4046
+ Mean    value: 0.13342 (unweighted average)
+ 
+! reference a member
+stat fcst[d=12.3]
+ 
+             FIELD + FCST_ERROR
+             L=7:30
+             LONGITUDE: 139.5E to 160.5E
+             LATITUDE: 19.5N to 40.5N
+             Z:  N/A
+             TIME: 01-JUL-1950 00:00 to 01-JUL-1952 00:00
+             E:  N/A
+             F:  N/A
+             DATA SET: tmp/fcst_3.nc
+ 
+ Total # of data points: 10584 (21*21*1*24*1*1)
+ # flagged as bad  data: 0
+ Minimum value: -0.9973
+ Maximum value: 1.4046
+ Mean    value: 0.1338 (unweighted average)
+ Standard deviation: 0.54369
+stat fcst[d=12.3] - fcst[d=5]   ! v-v=0
+ 
+             FCST[D=fcst_3.nc] - FCST[D=fcst_3.nc]
+             LONGITUDE: 139.5E to 160.5E
+             LATITUDE: 19.5N to 40.5N
+             Z:  N/A
+             TIME: 01-JUL-1950 00:00 to 01-JUL-1952 00:00
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 10584 (21*21*1*24*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ Standard deviation: 0
+ 
+! note that FMRC members have distinct time axes. Specify "L=1"
+stat fcst[d=12.3,l=1] - fcst[d=12.1,l=1]
+ 
+             FCST[D=fcst_3.nc,L=1] - FCST[D=fcst_1.nc,L=1]
+             LONGITUDE: 139.5E to 160.5E
+             LATITUDE: 19.5N to 40.5N
+             Z:  N/A
+             TIME: 16-JUL-1950 12:00
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 441 (21*21*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: -0.12028
+ Maximum value: 0.12005
+ Mean    value: -0.007033 (unweighted average)
+ Standard deviation: 0.07443
+ 
+! deliberate errors
+set mode ignore
+ 
+stat/br fcst[d=5.3]       ! d=5 is not an aggregation
+stat/br fcst[d=12.30]     ! not this many members
+stat/br fcst[d=12.300000]
+ 
+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
+ 
+          time-dependent data files:
+31-DEC-2009 23:59 -> 31-DEC-2009 23:59    bn_agg_member_syntax.jnl
+ 
+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
+sh data/members my_ens
+     currently SET data sets:
+    5> my_ens  (default)  Ensemble aggregation
+ name     title                             I         J         K         L         M         N
+ SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
+ 
+          Member datasets:
+      5.1: ./ens1.nc
+      5.2: ./ens2.nc
+      5.3: ./ens3.nc
+      5.4: ./ens4.nc
+ 
+show data 5.3
+     currently SET data sets:
+    3> ./ens3.nc
+ name     title                             I         J         K         L
+ SST      SST_IN                           1:10      1:9       ...       1:12
+ 
+stat sst[d=5]
+ 
+             SST_IN
+             LONGITUDE: 110W to 90W
+             LATITUDE: 12N to 30N
+             Z:  N/A
+             TIME: 01-JAN 00:45 to 31-DEC 06:34
+             E (realization): 0.5 to 4.5 (ens1.nc)
+             F:  N/A
+             DATA SET: my_ens
+ 
+ Total # of data points: 4320 (10*9*1*12*4*1)
+ # flagged as bad  data: 1156
+ Minimum value: 16.844
+ Maximum value: 123.32
+ Mean    value: 67.406 (unweighted average)
+ Standard deviation: 30.975
+stat sst[d=5.2]
+ 
+             SST_IN
+             LONGITUDE: 110W to 90W
+             LATITUDE: 12N to 30N
+             Z:  N/A
+             TIME: 01-JAN 00:45 to 31-DEC 06:34
+             E:  N/A
+             F:  N/A
+             DATA SET: ./ens2.nc
+ 
+ Total # of data points: 1080 (10*9*1*12*1*1)
+ # flagged as bad  data: 289
+ Minimum value: 33.688
+ Maximum value: 61.66
+ Mean    value: 53.925 (unweighted average)
+ Standard deviation: 5.1904
+ 
+can data my_ens
+ 
+! do them in another order
+ENSEMBLE fourfiles = ens1, ens3, ens2, ens4
+ 
+! not this is dataset 2
+show data 5.3
+     currently SET data sets:
+    3> ./ens2.nc
+ name     title                             I         J         K         L
+ SST      SST_IN                           1:10      1:9       ...       1:12
+ 
+ 
+stat sst[d=5] - sst[d=5.3]   ! ensemble minus member #3
+ 
+             SST[D=fourfiles] - SST[D=ens2]
+             LONGITUDE: 110W to 90W
+             LATITUDE: 12N to 30N
+             Z:  N/A
+             TIME: 01-JAN 00:45 to 31-DEC 06:34
+             E (realization): 0.5 to 4.5
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 4320 (10*9*1*12*4*1)
+ # flagged as bad  data: 1156
+ Minimum value: -30.83
+ Maximum value: 61.66
+ Mean    value: 13.481 (unweighted average)
+ Standard deviation: 30.317
+ 
+ 
+! deliberate errors
+set mode ignore
+ 
+stat/br sst[d=4.1]     ! not an ensemble
+stat/br sst[d=5.30]    ! not this many members
+ 
+set mode/last ignore
+ 
+ 
+GO bn_reset bn_true_monthly
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_true_monthly
+GO bn_true_monthly
+! 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
+! When writing a TRUEMONTH axis, write the correct coordinates using the original
+! units if it came from a dataset, or using units of days if it's user-defined.
+ 
+! See known error conditions below
+ 
+ 
+! For comparison, define regularly-spaced monthly axis of the sort we've always defined
+ 
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2000/units=month/edges t_reg_month
+sh axis/t t_reg_month
+ name       axis              # pts   start                end
+ T_REG_MONTH TIME              19 r   16-JAN-2010 05:14    18-JUL-2011 01:58
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (MONTH)
+       1>  16-JAN-2010 05:14:33  1          01-JAN-2010 00:00:00   120.5189
+       2>  15-FEB-2010 15:43:39  1          31-JAN-2010 10:29:06   121.5189
+       3>  18-MAR-2010 02:12:45  1          02-MAR-2010 20:58:12   122.5189
+       4>  17-APR-2010 12:41:51  1          02-APR-2010 07:27:18   123.5189
+       5>  17-MAY-2010 23:10:57  1          02-MAY-2010 17:56:24   124.5189
+       6>  17-JUN-2010 09:40:03  1          02-JUN-2010 04:25:30   125.5189
+       7>  17-JUL-2010 20:09:09  1          02-JUL-2010 14:54:36   126.5189
+       8>  17-AUG-2010 06:38:15  1          02-AUG-2010 01:23:42   127.5189
+       9>  16-SEP-2010 17:07:21  1          01-SEP-2010 11:52:48   128.5189
+      10>  17-OCT-2010 03:36:27  1          01-OCT-2010 22:21:54   129.5189
+      11>  16-NOV-2010 14:05:33  1          01-NOV-2010 08:51:00   130.5189
+      12>  17-DEC-2010 00:34:39  1          01-DEC-2010 19:20:06   131.5189
+      13>  16-JAN-2011 11:03:45  1          01-JAN-2011 05:49:12   132.5189
+      14>  15-FEB-2011 21:32:51  1          31-JAN-2011 16:18:18   133.5189
+      15>  18-MAR-2011 08:01:57  1          03-MAR-2011 02:47:24   134.5189
+      16>  17-APR-2011 18:31:03  1          02-APR-2011 13:16:30   135.5189
+      17>  18-MAY-2011 05:00:09  1          02-MAY-2011 23:45:36   136.5189
+      18>  17-JUN-2011 15:29:15  1          02-JUN-2011 10:14:42   137.5189
+      19>  18-JUL-2011 01:58:21  1          02-JUL-2011 20:43:48   138.5189
+ 
+! true-monthly axes, t0 at start of axis
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2010/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2010             JUL-2011 (True Monthly)
+T0 = 1-JAN-2010
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2010              31         01-JAN-2010           0
+       2>  FEB-2010              28         01-FEB-2010           1
+       3>  MAR-2010              31         01-MAR-2010           2
+       4>  APR-2010              30         01-APR-2010           3
+       5>  MAY-2010              31         01-MAY-2010           4
+       6>  JUN-2010              30         01-JUN-2010           5
+       7>  JUL-2010              31         01-JUL-2010           6
+       8>  AUG-2010              31         01-AUG-2010           7
+       9>  SEP-2010              30         01-SEP-2010           8
+      10>  OCT-2010              31         01-OCT-2010           9
+      11>  NOV-2010              30         01-NOV-2010           10
+      12>  DEC-2010              31         01-DEC-2010           11
+      13>  JAN-2011              31         01-JAN-2011           12
+      14>  FEB-2011              28         01-FEB-2011           13
+      15>  MAR-2011              31         01-MAR-2011           14
+      16>  APR-2011              30         01-APR-2011           15
+      17>  MAY-2011              31         01-MAY-2011           16
+      18>  JUN-2011              30         01-JUN-2011           17
+      19>  JUL-2011              31         01-JUL-2011           18
+ 
+! t0 before start of axis
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2010             JUL-2011 (True Monthly)
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2010              31         01-JAN-2010           120
+       2>  FEB-2010              28         01-FEB-2010           121
+       3>  MAR-2010              31         01-MAR-2010           122
+       4>  APR-2010              30         01-APR-2010           123
+       5>  MAY-2010              31         01-MAY-2010           124
+       6>  JUN-2010              30         01-JUN-2010           125
+       7>  JUL-2010              31         01-JUL-2010           126
+       8>  AUG-2010              31         01-AUG-2010           127
+       9>  SEP-2010              30         01-SEP-2010           128
+      10>  OCT-2010              31         01-OCT-2010           129
+      11>  NOV-2010              30         01-NOV-2010           130
+      12>  DEC-2010              31         01-DEC-2010           131
+      13>  JAN-2011              31         01-JAN-2011           132
+      14>  FEB-2011              28         01-FEB-2011           133
+      15>  MAR-2011              31         01-MAR-2011           134
+      16>  APR-2011              30         01-APR-2011           135
+      17>  MAY-2011              31         01-MAY-2011           136
+      18>  JUN-2011              30         01-JUN-2011           137
+      19>  JUL-2011              31         01-JUL-2011           138
+ 
+! default time origin is start of month of first month
+define axis/t=1-jul-2010:1-jan-2012:1/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JUL-2010             JAN-2012 (True Monthly)
+T0 = 01-JAN-2010
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JUL-2010              31         01-JUL-2010           6
+       2>  AUG-2010              31         01-AUG-2010           7
+       3>  SEP-2010              30         01-SEP-2010           8
+       4>  OCT-2010              31         01-OCT-2010           9
+       5>  NOV-2010              30         01-NOV-2010           10
+       6>  DEC-2010              31         01-DEC-2010           11
+       7>  JAN-2011              31         01-JAN-2011           12
+       8>  FEB-2011              28         01-FEB-2011           13
+       9>  MAR-2011              31         01-MAR-2011           14
+      10>  APR-2011              30         01-APR-2011           15
+      11>  MAY-2011              31         01-MAY-2011           16
+      12>  JUN-2011              30         01-JUN-2011           17
+      13>  JUL-2011              31         01-JUL-2011           18
+      14>  AUG-2011              31         01-AUG-2011           19
+      15>  SEP-2011              30         01-SEP-2011           20
+      16>  OCT-2011              31         01-OCT-2011           21
+      17>  NOV-2011              30         01-NOV-2011           22
+      18>  DEC-2011              31         01-DEC-2011           23
+      19>  JAN-2012              31         01-JAN-2012           24
+ 
+! Cell edges at mid-month
+define axis/t=15-mar-2010:15-dec-2011:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                22 i   MAR-2010             DEC-2011 (True Monthly)
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 22
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2010              31         01-MAR-2010           122
+       2>  APR-2010              30         01-APR-2010           123
+       3>  MAY-2010              31         01-MAY-2010           124
+       4>  JUN-2010              30         01-JUN-2010           125
+       5>  JUL-2010              31         01-JUL-2010           126
+       6>  AUG-2010              31         01-AUG-2010           127
+       7>  SEP-2010              30         01-SEP-2010           128
+       8>  OCT-2010              31         01-OCT-2010           129
+       9>  NOV-2010              30         01-NOV-2010           130
+      10>  DEC-2010              31         01-DEC-2010           131
+      11>  JAN-2011              31         01-JAN-2011           132
+      12>  FEB-2011              28         01-FEB-2011           133
+      13>  MAR-2011              31         01-MAR-2011           134
+      14>  APR-2011              30         01-APR-2011           135
+      15>  MAY-2011              31         01-MAY-2011           136
+      16>  JUN-2011              30         01-JUN-2011           137
+      17>  JUL-2011              31         01-JUL-2011           138
+      18>  AUG-2011              31         01-AUG-2011           139
+      19>  SEP-2011              30         01-SEP-2011           140
+      20>  OCT-2011              31         01-OCT-2011           141
+      21>  NOV-2011              30         01-NOV-2011           142
+      22>  DEC-2011              31         01-DEC-2011           143
+ 
+! other calendars JULIAN
+define axis/cal=julian/t=1-jan-2011:31-jul-2012:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2011             JUL-2012 (True Monthly)
+T0 = 1-JAN-2000
+CALENDAR = JULIAN
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2011              31         01-JAN-2011           132
+       2>  FEB-2011              28         01-FEB-2011           133
+       3>  MAR-2011              31         01-MAR-2011           134
+       4>  APR-2011              30         01-APR-2011           135
+       5>  MAY-2011              31         01-MAY-2011           136
+       6>  JUN-2011              30         01-JUN-2011           137
+       7>  JUL-2011              31         01-JUL-2011           138
+       8>  AUG-2011              31         01-AUG-2011           139
+       9>  SEP-2011              30         01-SEP-2011           140
+      10>  OCT-2011              31         01-OCT-2011           141
+      11>  NOV-2011              30         01-NOV-2011           142
+      12>  DEC-2011              31         01-DEC-2011           143
+      13>  JAN-2012              31         01-JAN-2012           144
+      14>  FEB-2012              29         01-FEB-2012           145
+      15>  MAR-2012              31         01-MAR-2012           146
+      16>  APR-2012              30         01-APR-2012           147
+      17>  MAY-2012              31         01-MAY-2012           148
+      18>  JUN-2012              30         01-JUN-2012           149
+      19>  JUL-2012              31         01-JUL-2012           150
+ 
+! default time origin
+define axis/cal=julian/t=15-mar-2010:15-dec-2011:1/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                22 i   MAR-2010             DEC-2011 (True Monthly)
+T0 = 01-JAN-2010
+CALENDAR = JULIAN
+   Axis span (to cell edges) = 22
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2010              31         01-MAR-2010           2
+       2>  APR-2010              30         01-APR-2010           3
+       3>  MAY-2010              31         01-MAY-2010           4
+       4>  JUN-2010              30         01-JUN-2010           5
+       5>  JUL-2010              31         01-JUL-2010           6
+       6>  AUG-2010              31         01-AUG-2010           7
+       7>  SEP-2010              30         01-SEP-2010           8
+       8>  OCT-2010              31         01-OCT-2010           9
+       9>  NOV-2010              30         01-NOV-2010           10
+      10>  DEC-2010              31         01-DEC-2010           11
+      11>  JAN-2011              31         01-JAN-2011           12
+      12>  FEB-2011              28         01-FEB-2011           13
+      13>  MAR-2011              31         01-MAR-2011           14
+      14>  APR-2011              30         01-APR-2011           15
+      15>  MAY-2011              31         01-MAY-2011           16
+      16>  JUN-2011              30         01-JUN-2011           17
+      17>  JUL-2011              31         01-JUL-2011           18
+      18>  AUG-2011              31         01-AUG-2011           19
+      19>  SEP-2011              30         01-SEP-2011           20
+      20>  OCT-2011              31         01-OCT-2011           21
+      21>  NOV-2011              30         01-NOV-2011           22
+      22>  DEC-2011              31         01-DEC-2011           23
+ 
+! other calendars NOLEAP
+define axis/cal=noleap/t=1-jan-2011:31-jul-2012:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2011             JUL-2012 (True Monthly)
+T0 = 1-JAN-2000
+CALENDAR = NOLEAP
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2011              31         01-JAN-2011           132
+       2>  FEB-2011              28         01-FEB-2011           133
+       3>  MAR-2011              31         01-MAR-2011           134
+       4>  APR-2011              30         01-APR-2011           135
+       5>  MAY-2011              31         01-MAY-2011           136
+       6>  JUN-2011              30         01-JUN-2011           137
+       7>  JUL-2011              31         01-JUL-2011           138
+       8>  AUG-2011              31         01-AUG-2011           139
+       9>  SEP-2011              30         01-SEP-2011           140
+      10>  OCT-2011              31         01-OCT-2011           141
+      11>  NOV-2011              30         01-NOV-2011           142
+      12>  DEC-2011              31         01-DEC-2011           143
+      13>  JAN-2012              31         01-JAN-2012           144
+      14>  FEB-2012              28         01-FEB-2012           145
+      15>  MAR-2012              31         01-MAR-2012           146
+      16>  APR-2012              30         01-APR-2012           147
+      17>  MAY-2012              31         01-MAY-2012           148
+      18>  JUN-2012              30         01-JUN-2012           149
+      19>  JUL-2012              31         01-JUL-2012           150
+ 
+! not at first of month
+define axis/cal=julian/t=15-mar-2010:15-dec-2011:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                22 i   MAR-2010             DEC-2011 (True Monthly)
+T0 = 1-JAN-2000
+CALENDAR = JULIAN
+   Axis span (to cell edges) = 22
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2010              31         01-MAR-2010           122
+       2>  APR-2010              30         01-APR-2010           123
+       3>  MAY-2010              31         01-MAY-2010           124
+       4>  JUN-2010              30         01-JUN-2010           125
+       5>  JUL-2010              31         01-JUL-2010           126
+       6>  AUG-2010              31         01-AUG-2010           127
+       7>  SEP-2010              30         01-SEP-2010           128
+       8>  OCT-2010              31         01-OCT-2010           129
+       9>  NOV-2010              30         01-NOV-2010           130
+      10>  DEC-2010              31         01-DEC-2010           131
+      11>  JAN-2011              31         01-JAN-2011           132
+      12>  FEB-2011              28         01-FEB-2011           133
+      13>  MAR-2011              31         01-MAR-2011           134
+      14>  APR-2011              30         01-APR-2011           135
+      15>  MAY-2011              31         01-MAY-2011           136
+      16>  JUN-2011              30         01-JUN-2011           137
+      17>  JUL-2011              31         01-JUL-2011           138
+      18>  AUG-2011              31         01-AUG-2011           139
+      19>  SEP-2011              30         01-SEP-2011           140
+      20>  OCT-2011              31         01-OCT-2011           141
+      21>  NOV-2011              30         01-NOV-2011           142
+      22>  DEC-2011              31         01-DEC-2011           143
+ 
+! other calendars 360_day
+define axis/cal=360_day/t=1-jan-2010:30-jul-2011:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 r   JAN-2010             JUL-2011 (True Monthly)
+T0 = 1-JAN-2000
+CALENDAR = 360_DAY
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2010              30         01-JAN-2010           120
+       2>  FEB-2010              30         01-FEB-2010           121
+       3>  MAR-2010              30         01-MAR-2010           122
+       4>  APR-2010              30         01-APR-2010           123
+       5>  MAY-2010              30         01-MAY-2010           124
+       6>  JUN-2010              30         01-JUN-2010           125
+       7>  JUL-2010              30         01-JUL-2010           126
+       8>  AUG-2010              30         01-AUG-2010           127
+       9>  SEP-2010              30         01-SEP-2010           128
+      10>  OCT-2010              30         01-OCT-2010           129
+      11>  NOV-2010              30         01-NOV-2010           130
+      12>  DEC-2010              30         01-DEC-2010           131
+      13>  JAN-2011              30         01-JAN-2011           132
+      14>  FEB-2011              30         01-FEB-2011           133
+      15>  MAR-2011              30         01-MAR-2011           134
+      16>  APR-2011              30         01-APR-2011           135
+      17>  MAY-2011              30         01-MAY-2011           136
+      18>  JUN-2011              30         01-JUN-2011           137
+      19>  JUL-2011              30         01-JUL-2011           138
+ 
+! Writing data, including a leap year
+ 
+define axis/t=3-mar-2011:3-jan-2013:1/monthly/t0=1-jan-2010 taxis
+def var tt = t[gt=taxis]
+save/clobber/file=a.nc tt
+ 
+can var/all
+use a
+sh dat/att
+     currently SET data sets:
+    1> ./a.nc  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+                                 Conventions     CHAR        6    F       CF-1.6
+  
+(TAXIS1)               DOUBLE    axis            CHAR        1    T       T
+                                 bounds          CHAR        10   T       TAXIS_bnds
+                                 time_origin     CHAR        10   T       1-JAN-2010
+                                 units           CHAR        30   T       days since 2010-01-01 00:00:00
+                                 standard_name   CHAR        4    F       time
+                                 orig_file_axname
+                                                 CHAR        5    F       TAXIS
+  
+ TAXIS_bnds            DOUBLE
+  
+ TT                    DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
+                                 _FillValue      DOUBLE      1    T       -1.E+34
+                                 long_name       CHAR        11   T       T[GT=TAXIS]
+  
+sh grid tt
+    GRID GSI1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TAXIS1    TIME                23 i   16-MAR-2011 12:00    16-JAN-2013 12:00   full
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                23 i   MAR-2011             JAN-2013 (True Monthly)
+T0 = 1-JAN-2010
+   Axis span (to cell edges) = 23
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2011              31         01-MAR-2011           14
+       2>  APR-2011              30         01-APR-2011           15
+       3>  MAY-2011              31         01-MAY-2011           16
+       4>  JUN-2011              30         01-JUN-2011           17
+       5>  JUL-2011              31         01-JUL-2011           18
+       6>  AUG-2011              31         01-AUG-2011           19
+       7>  SEP-2011              30         01-SEP-2011           20
+       8>  OCT-2011              31         01-OCT-2011           21
+       9>  NOV-2011              30         01-NOV-2011           22
+      10>  DEC-2011              31         01-DEC-2011           23
+      11>  JAN-2012              31         01-JAN-2012           24
+      12>  FEB-2012              29         01-FEB-2012           25
+      13>  MAR-2012              31         01-MAR-2012           26
+      14>  APR-2012              30         01-APR-2012           27
+      15>  MAY-2012              31         01-MAY-2012           28
+      16>  JUN-2012              30         01-JUN-2012           29
+      17>  JUL-2012              31         01-JUL-2012           30
+      18>  AUG-2012              31         01-AUG-2012           31
+      19>  SEP-2012              30         01-SEP-2012           32
+      20>  OCT-2012              31         01-OCT-2012           33
+      21>  NOV-2012              30         01-NOV-2012           34
+      22>  DEC-2012              31         01-DEC-2012           35
+      23>  JAN-2013              31         01-JAN-2013           36
+ 
+can dat/all
+ 
+define axis/t=3-mar-2011:3-jan-2013:1/monthly/t0=1-jan-2010/calendar=julian taxis
+def var tt = t[gt=taxis]
+save/clobber/file=a.nc tt
+ 
+can var/all
+use a
+sh dat/att
+     currently SET data sets:
+    1> ./a.nc  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+                                 Conventions     CHAR        6    F       CF-1.6
+  
+(TAXIS1)               DOUBLE    axis            CHAR        1    T       T
+                                 bounds          CHAR        10   T       TAXIS_bnds
+                                 time_origin     CHAR        10   T       1-JAN-2010
+                                 calendar        CHAR        6    T       JULIAN
+                                 units           CHAR        30   T       days since 2010-01-01 00:00:00
+                                 standard_name   CHAR        4    F       time
+                                 orig_file_axname
+                                                 CHAR        5    F       TAXIS
+  
+ TAXIS_bnds            DOUBLE
+  
+ TT                    DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
+                                 _FillValue      DOUBLE      1    T       -1.E+34
+                                 long_name       CHAR        11   T       T[GT=TAXIS]
+  
+sh grid tt
+    GRID GSI1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TAXIS1    TIME                23 i   16-MAR-2011 12:00    16-JAN-2013 12:00   full
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                23 i   MAR-2011             JAN-2013 (True Monthly)
+T0 = 1-JAN-2010
+CALENDAR = JULIAN
+   Axis span (to cell edges) = 23
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2011              31         01-MAR-2011           14
+       2>  APR-2011              30         01-APR-2011           15
+       3>  MAY-2011              31         01-MAY-2011           16
+       4>  JUN-2011              30         01-JUN-2011           17
+       5>  JUL-2011              31         01-JUL-2011           18
+       6>  AUG-2011              31         01-AUG-2011           19
+       7>  SEP-2011              30         01-SEP-2011           20
+       8>  OCT-2011              31         01-OCT-2011           21
+       9>  NOV-2011              30         01-NOV-2011           22
+      10>  DEC-2011              31         01-DEC-2011           23
+      11>  JAN-2012              31         01-JAN-2012           24
+      12>  FEB-2012              29         01-FEB-2012           25
+      13>  MAR-2012              31         01-MAR-2012           26
+      14>  APR-2012              30         01-APR-2012           27
+      15>  MAY-2012              31         01-MAY-2012           28
+      16>  JUN-2012              30         01-JUN-2012           29
+      17>  JUL-2012              31         01-JUL-2012           30
+      18>  AUG-2012              31         01-AUG-2012           31
+      19>  SEP-2012              30         01-SEP-2012           32
+      20>  OCT-2012              31         01-OCT-2012           33
+      21>  NOV-2012              30         01-NOV-2012           34
+      22>  DEC-2012              31         01-DEC-2012           35
+      23>  JAN-2013              31         01-JAN-2013           36
+ 
+can dat/all
+ 
+define axis/t=3-mar-2011:3-jan-2013:1/monthly/t0=1-jan-2010/calendar=360_day taxis
+def var tt = t[gt=taxis]
+save/clobber/file=a.nc tt
+ 
+can var/all
+use a
+sh dat/att
+     currently SET data sets:
+    1> ./a.nc  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        34   T       FERRET V7.1 (beta/debug) 17-Apr-17
+                                 Conventions     CHAR        6    F       CF-1.6
+  
+(TAXIS1)               DOUBLE    axis            CHAR        1    T       T
+                                 bounds          CHAR        10   T       TAXIS_bnds
+                                 time_origin     CHAR        10   T       1-JAN-2010
+                                 calendar        CHAR        7    T       360_DAY
+                                 units           CHAR        30   T       days since 2010-01-01 00:00:00
+                                 standard_name   CHAR        4    F       time
+                                 orig_file_axname
+                                                 CHAR        5    F       TAXIS
+  
+ TAXIS_bnds            DOUBLE
+  
+ TT                    DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
+                                 _FillValue      DOUBLE      1    T       -1.E+34
+                                 long_name       CHAR        11   T       T[GT=TAXIS]
+  
+sh grid tt
+    GRID GSI1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TAXIS1    TIME                22 r   16-MAR-2011 00:00    16-DEC-2012 00:00   full
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                22 r   MAR-2011             DEC-2012 (True Monthly)
+T0 = 1-JAN-2010
+CALENDAR = 360_DAY
+   Axis span (to cell edges) = 22
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2011              30         01-MAR-2011           14
+       2>  APR-2011              30         01-APR-2011           15
+       3>  MAY-2011              30         01-MAY-2011           16
+       4>  JUN-2011              30         01-JUN-2011           17
+       5>  JUL-2011              30         01-JUL-2011           18
+       6>  AUG-2011              30         01-AUG-2011           19
+       7>  SEP-2011              30         01-SEP-2011           20
+       8>  OCT-2011              30         01-OCT-2011           21
+       9>  NOV-2011              30         01-NOV-2011           22
+      10>  DEC-2011              30         01-DEC-2011           23
+      11>  JAN-2012              30         01-JAN-2012           24
+      12>  FEB-2012              30         01-FEB-2012           25
+      13>  MAR-2012              30         01-MAR-2012           26
+      14>  APR-2012              30         01-APR-2012           27
+      15>  MAY-2012              30         01-MAY-2012           28
+      16>  JUN-2012              30         01-JUN-2012           29
+      17>  JUL-2012              30         01-JUL-2012           30
+      18>  AUG-2012              30         01-AUG-2012           31
+      19>  SEP-2012              30         01-SEP-2012           32
+      20>  OCT-2012              30         01-OCT-2012           33
+      21>  NOV-2012              30         01-NOV-2012           34
+      22>  DEC-2012              30         01-DEC-2012           35
+ 
+! Without date range spec,
+def axis/monthly/t0=1-jan-0000/t=1:24:1 taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                24 i   JAN-0000             DEC-0001 (True Monthly)
+T0 = 1-JAN-0000
+   Axis span (to cell edges) = 24
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-0000              31         01-JAN-0000           0
+       2>  FEB-0000              29         01-FEB-0000           1
+       3>  MAR-0000              31         01-MAR-0000           2
+       4>  APR-0000              30         01-APR-0000           3
+       5>  MAY-0000              31         01-MAY-0000           4
+       6>  JUN-0000              30         01-JUN-0000           5
+       7>  JUL-0000              31         01-JUL-0000           6
+       8>  AUG-0000              31         01-AUG-0000           7
+       9>  SEP-0000              30         01-SEP-0000           8
+      10>  OCT-0000              31         01-OCT-0000           9
+      11>  NOV-0000              30         01-NOV-0000           10
+      12>  DEC-0000              31         01-DEC-0000           11
+      13>  JAN-0001              31         01-JAN-0001           12
+      14>  FEB-0001              28         01-FEB-0001           13
+      15>  MAR-0001              31         01-MAR-0001           14
+      16>  APR-0001              30         01-APR-0001           15
+      17>  MAY-0001              31         01-MAY-0001           16
+      18>  JUN-0001              30         01-JUN-0001           17
+      19>  JUL-0001              31         01-JUL-0001           18
+      20>  AUG-0001              31         01-AUG-0001           19
+      21>  SEP-0001              30         01-SEP-0001           20
+      22>  OCT-0001              31         01-OCT-0001           21
+      23>  NOV-0001              30         01-NOV-0001           22
+      24>  DEC-0001              31         01-DEC-0001           23
+ 
+! With T0 later than year 0
+def axis/monthly/t0=1-jan-2000/t=1:24:1 taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                24 i   JAN-2000             DEC-2001 (True Monthly)
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 24
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2000              31         01-JAN-2000           0
+       2>  FEB-2000              29         01-FEB-2000           1
+       3>  MAR-2000              31         01-MAR-2000           2
+       4>  APR-2000              30         01-APR-2000           3
+       5>  MAY-2000              31         01-MAY-2000           4
+       6>  JUN-2000              30         01-JUN-2000           5
+       7>  JUL-2000              31         01-JUL-2000           6
+       8>  AUG-2000              31         01-AUG-2000           7
+       9>  SEP-2000              30         01-SEP-2000           8
+      10>  OCT-2000              31         01-OCT-2000           9
+      11>  NOV-2000              30         01-NOV-2000           10
+      12>  DEC-2000              31         01-DEC-2000           11
+      13>  JAN-2001              31         01-JAN-2001           12
+      14>  FEB-2001              28         01-FEB-2001           13
+      15>  MAR-2001              31         01-MAR-2001           14
+      16>  APR-2001              30         01-APR-2001           15
+      17>  MAY-2001              31         01-MAY-2001           16
+      18>  JUN-2001              30         01-JUN-2001           17
+      19>  JUL-2001              31         01-JUL-2001           18
+      20>  AUG-2001              31         01-AUG-2001           19
+      21>  SEP-2001              30         01-SEP-2001           20
+      22>  OCT-2001              31         01-OCT-2001           21
+      23>  NOV-2001              30         01-NOV-2001           22
+      24>  DEC-2001              31         01-DEC-2001           23
+ 
+! Default T0, non-calendar t def
+define axis/monthly/t=1:36:1 taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                36 i   JAN-0000             DEC-0002 (True Monthly)
+T0 = 01-JAN-0000
+   Axis span (to cell edges) = 36
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-0000              31         01-JAN-0000           0
+       2>  FEB-0000              29         01-FEB-0000           1
+       3>  MAR-0000              31         01-MAR-0000           2
+       4>  APR-0000              30         01-APR-0000           3
+       5>  MAY-0000              31         01-MAY-0000           4
+       6>  JUN-0000              30         01-JUN-0000           5
+       7>  JUL-0000              31         01-JUL-0000           6
+       8>  AUG-0000              31         01-AUG-0000           7
+       9>  SEP-0000              30         01-SEP-0000           8
+      10>  OCT-0000              31         01-OCT-0000           9
+      11>  NOV-0000              30         01-NOV-0000           10
+      12>  DEC-0000              31         01-DEC-0000           11
+      13>  JAN-0001              31         01-JAN-0001           12
+      14>  FEB-0001              28         01-FEB-0001           13
+      15>  MAR-0001              31         01-MAR-0001           14
+      16>  APR-0001              30         01-APR-0001           15
+      17>  MAY-0001              31         01-MAY-0001           16
+      18>  JUN-0001              30         01-JUN-0001           17
+      19>  JUL-0001              31         01-JUL-0001           18
+      20>  AUG-0001              31         01-AUG-0001           19
+      21>  SEP-0001              30         01-SEP-0001           20
+      22>  OCT-0001              31         01-OCT-0001           21
+      23>  NOV-0001              30         01-NOV-0001           22
+      24>  DEC-0001              31         01-DEC-0001           23
+      25>  JAN-0002              31         01-JAN-0002           24
+      26>  FEB-0002              28         01-FEB-0002           25
+      27>  MAR-0002              31         01-MAR-0002           26
+      28>  APR-0002              30         01-APR-0002           27
+      29>  MAY-0002              31         01-MAY-0002           28
+      30>  JUN-0002              30         01-JUN-0002           29
+      31>  JUL-0002              31         01-JUL-0002           30
+      32>  AUG-0002              31         01-AUG-0002           31
+      33>  SEP-0002              30         31-AUG-0002           32
+      34>  OCT-0002              31         01-OCT-0002           33
+      35>  NOV-0002              30         01-NOV-0002           34
+      36>  DEC-0002              31         01-DEC-0002           35
+ 
+! modulo
+define axis/t=1-jan-2010:31-dec-2010:1/t0=1-jan-2000/monthly/modulo taxis
+ 
+let var = {1,2,3,4,5,6,7,8,9,10,11,12}
+let tvar = reshape(var,t[gt=taxis])
+list/L=1:23 tvar
+             VARIABLE : RESHAPE(VAR,T[GT=TAXIS])
+             SUBSET   : 12 points (TIME)
+ 16-JAN-2010 12 /  1:   1.00000
+ 15-FEB-2010 00 /  2:   2.00000
+ 16-MAR-2010 12 /  3:   3.00000
+ 16-APR-2010 00 /  4:   4.00000
+ 16-MAY-2010 12 /  5:   5.00000
+ 16-JUN-2010 00 /  6:   6.00000
+ 16-JUL-2010 12 /  7:   7.00000
+ 16-AUG-2010 12 /  8:   8.00000
+ 16-SEP-2010 00 /  9:   9.00000
+ 16-OCT-2010 12 / 10:  10.00000
+ 16-NOV-2010 00 / 11:  11.00000
+ 16-DEC-2010 12 / 12:  12.00000
+! *sh* 3/17:  a possible alternative syntax:
+!  let var = TSEQUENCE({1,2,3,4,5,6,7,8,9,10,11,12})
+!  let tvar = var[gt=taxis at asn]
+! Since this is a fairly common need -- creating a line along some axis
+! should we offer a new function AXSEQUENCE(array, axis)  ?
+ 
+! Striding on a monthly axis
+ 
+def axis/monthly/t0=1-jan-2000/t=1-jan-2000:31-dec-2004:1/unit=monthly taxis
+!sh axis/t/l=1:14 taxis
+let tt = t[gt=taxis]
+list tt[l=1:6:2]
+             VARIABLE : T[GT=TAXIS]
+                        regrid: 2 tmon_gregori on T
+             SUBSET   : 3 points (TIME)
+ 16-JAN-2000 / 1:   15.5000
+ 16-MAR-2000 / 2:   75.5000
+ 16-MAY-2000 / 3:  136.5000
+ 
+list/prec=6 tt[l=1:60:12]
+             VARIABLE : T[GT=TAXIS]
+                        regrid: 12 tmon_gregori on T
+             SUBSET   : 5 points (TIME)
+ 16-JAN-2000 / 1:    15.50
+ 16-JAN-2001 / 2:   381.50
+ 16-JAN-2002 / 3:   746.50
+ 16-JAN-2003 / 4:  1111.50
+ 16-JAN-2004 / 5:  1476.50
+ 
+! From a file
+save/file=a.nc/clobber tt
+can dat/all; can var/all
+use a
+list/prec=6 tt[l=1:60:12]
+             VARIABLE : T[GT=TAXIS]
+                        regrid: on T
+             FILENAME : a.nc
+             SUBSET   : 5 points (TIME)
+ APR-2001 / 1:    15.50
+ OCT-2031 / 2:   381.50
+ MAR-2062 / 3:   746.50
+ AUG-2092 / 4:  1111.50
+ JAN-2123 / 5:  1476.50
+ 
+! DEFINE AXIS/MONTHLY warnings and error conditions:
+ 
+! Not an error - /EDGES is ignored, as it's the default
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2000/monthly/edges taxis
+sh axis taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2010             JUL-2011 (True Monthly)
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 19
+ 
+! Not an error - /UNITS=month is the default
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2000/monthly/units=months taxis
+sh axis taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2010             JUL-2011 (True Monthly)
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 19
+ 
+set mode ignore
+! not all months have day 30, cannot start at day 30
+define axis/t=30-mar-2010:30-dec-2011:1/monthly taxis
+ 
+! Units of other than months is an error
+define axis/t=1-jan-2010:31-jul-2011:30/t0=1-jan-2000/monthly/units=days taxis
+ 
+! /NPOINTS, /BOUNDS, /FROMDATA are not allowed. Errors in start:end:del
+define axis/t=1-jan-2010:31-dec-2012:1/t0=1-jan-2000/monthly/npoints=13 taxis
+ 
+! missing delta-t
+define axis/t=1-jan-2010:31-dec-2012/t0=1-jan-2000/monthly taxis
+ 
+! delta-t must be 1
+define axis/t=1-jan-2010:31-dec-2012:2/t0=1-jan-2000/monthly taxis
+ 
+! irregular or from-data
+define axis/t/t0=1-jan-2000/monthly taxis = {123,124,126}
+ 
+define axis/from/t/t0=1-jan-2001/monthly/edges taxis = {5,6,6,6,7}
+ 
+! bounds
+def axis/t/t0=1-jan-2000/monthly/bounds tax={1.2, 2, 3.2, 5, 7, 8.4, 9}, {0.5,1.5, 1.5,2.5, 2.5,3.5, 3.5,6.5, 6.5,7.5, 7.5,8.5, 8.5,9.5}
+ 
+! Must be T direction (do we need /F=?)
+define axis/x=1:5:1/monthly aaxis
+ 
+cancel mode ignore
+ 
+ 
+! *********** v7.2 Additions ***********
+ 
+GO bn_reset bn720_bug_fixes
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn720_bug_fixes
+GO bn720_bug_fixes
+! bn720_bug_fixes.jnl
+! test various fixes that went into version 7.2
+! 2/17 *acm*
+!
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_uvar_strides
+! err710_uvar_strides
+! see ticket 2511: crash when doing strides on the user-variable
+ 
+ 
+use coads_climatology
+ 
+! this is ok using a file variable
+let y_vec = x[gx=sst,x=0:360:30]
+list y_vec
+             VARIABLE : X[GX=SST,X=0:360:30]
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 13 points (LONGITUDE)
+ 0E     /  1:    0.0000
+ 30E    /  2:   30.0000
+ 60E    /  3:   60.0000
+ 90E    /  4:   90.0000
+ 120E   /  5:  120.0000
+ 150E   /  6:  150.0000
+ 180E   /  7:  180.0000
+ 150W   /  8:  210.0000
+ 120W   /  9:  240.0000
+ 90W    / 10:  270.0000
+ 60W    / 11:  300.0000
+ 30W    / 12:  330.0000
+ 0E     / 13:  360.0000
+ 
+! but this gave a crash on loading the variable.
+let s = sst
+let y_vec = x[gx=s,x=0:360:30]
+list y_vec
+             VARIABLE : X[GX=S,X=0:360:30]
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 13 points (X)
+ 0     /  1:    0.0000
+ 30    /  2:   30.0000
+ 60    /  3:   60.0000
+ 90    /  4:   90.0000
+ 120   /  5:  120.0000
+ 150   /  6:  150.0000
+ 180   /  7:  180.0000
+ 210   /  8:  210.0000
+ 240   /  9:  240.0000
+ 270   / 10:  270.0000
+ 300   / 11:  300.0000
+ 330   / 12:  330.0000
+ 360   / 13:  360.0000
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_prec_return
+! err71_prec_return.jnl
+! Ticket 2510, `prec=hh` doesn't work when the data is very
+! near an integer.
+ 
+ 
+let a=1+1e-12
+ 
+! This should show the 001 at the end
+list/nohead/norow/prec=13 `a,prec=13`
+ !-> list/nohead/norow/prec=13 1.000000000001
+   1.000000000001
+ 
+! This does not have the 001 at the end
+list/nohead/norow/prec=13 `a,prec=12`
+ !-> list/nohead/norow/prec=13 1
+   1.000000000000
+ 
+! The example from the ticket, with one more.
+list/nohead/norow/prec=12 {`1 + 0.1`, `1 + 1e-7`, `1 + 1e-8`, `1 + 1e-10`} - 1
+ !-> list/nohead/norow/prec=12 {1.1, 1.0000001, 1.00000001, 1.0000000001} - 1
+   0.100000000000
+   0.000000100000
+   0.000000010000
+   0.000000000100
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_save_rigid
+! err71_save_rigid.jnl
+! Ticket 2513: SAVE/RIGID with irregular axis wrote a bad file.
+ 
+! Define a variable on an irregular axis.
+ 
+let var = {123, 234, 345, 456, 567, 678, 789}
+define axis/t/t0=1-jan-2015/units=day tax = \
+{ 312.1, 312.7, 313.4, 314.2, 314.7, 315.4, 316.1}
+ 
+let vart = reshape(var, t[gt=tax])
+ 
+! Save with /RIGID. Previously this wrote a file with
+! both bounds and edges attributes on the time axis.
+! It wrote the edges variable, not the bounds.
+ 
+! Starting with this version, write bounds if needed when
+! writing with /RIGID. Only write edges if they said /EDGES.
+ 
+save/clobber/rigid/file=a.nc vart
+sp ncdump a.nc
+netcdf a {
+dimensions:
+	TAX = 7 ;
+	bnds = 2 ;
+variables:
+	double TAX(TAX) ;
+		TAX:point_spacing = "uneven" ;
+		TAX:axis = "T" ;
+		TAX:units = "day since 2015-01-01 00:00:00" ;
+		TAX:time_origin = "1-JAN-2015" ;
+		TAX:standard_name = "time" ;
+		TAX:bounds = "TAX_bnds" ;
+	double TAX_bnds(TAX, bnds) ;
+	double VART(TAX) ;
+		VART:missing_value = -1.e+34 ;
+		VART:_FillValue = -1.e+34 ;
+		VART:long_name = "RESHAPE(VAR, T[GT=TAX])" ;
+
+// global attributes:
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+data:
+
+ TAX = 312.1, 312.7, 313.4, 314.2, 314.7, 315.4, 316.1 ;
+
+ TAX_bnds =
+  311.8, 312.4,
+  312.4, 313.05,
+  313.05, 313.8,
+  313.8, 314.45,
+  314.45, 315.05,
+  315.05, 315.75,
+  315.75, 316.45 ;
+
+ VART = 123, 234, 345, 456, 567, 678, 789 ;
+}
+ 
+cancel var/all
+ 
+! The grid was messed up - this gave an error
+use a
+show grid vart
+    GRID GSI1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ 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
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_set_redirect
+! err71_set_redirect.jnl
+! 3/2017 ACM
+! redirect results to a file with a path.
+! See ticket 2521, the path was previously rejected if it contains dashes
+ 
+spawn "mkdir -p sub-dir"
+!
+! Previously this resulted in an error.
+set redirect /tee /file="./sub-dir/redirect_stdout.txt" /clobber  stderr stdout
+ 
+! write to the file and look at the results
+ 
+show symbol ferret_precision, ferret_memory
+FERRET_PRECISION = "double"
+FERRET_MEMORY = "25.6"
+cancel redirect
+let contents = { spawn:"cat ./sub-dir/redirect_stdout.txt" }
+list contents
+             VARIABLE : { SPAWN:"cat ./sub-dir/redirect_stdout.txt" }
+             SUBSET   : 7 points (X)
+ 1   / 1:" "                                          
+ 2   / 2:"! write to the file and look at the results"
+ 3   / 3:" "                                          
+ 4   / 4:"show symbol ferret_precision, ferret_memory"
+ 5   / 5:"FERRET_PRECISION = "double""                
+ 6   / 6:"FERRET_MEMORY = "25.6""                     
+ 7   / 7:"cancel redirect"                            
+cancel var contents
+ 
+sp rm -rf sub-dir
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_set_redirect
+! err71_set_redirect.jnl
+! 3/2017 ACM
+! redirect results to a file with a path.
+! See ticket 2521, the path was previously rejected if it contains dashes
+ 
+spawn "mkdir -p sub-dir"
+!
+! Previously this resulted in an error.
+set redirect /tee /file="./sub-dir/redirect_stdout.txt" /clobber  stderr stdout
+ 
+! write to the file and look at the results
+ 
+show symbol ferret_precision, ferret_memory
+FERRET_PRECISION = "double"
+FERRET_MEMORY = "25.6"
+cancel redirect
+let contents = { spawn:"cat ./sub-dir/redirect_stdout.txt" }
+list contents
+             VARIABLE : { SPAWN:"cat ./sub-dir/redirect_stdout.txt" }
+             SUBSET   : 7 points (X)
+ 1   / 1:" "                                          
+ 2   / 2:"! write to the file and look at the results"
+ 3   / 3:" "                                          
+ 4   / 4:"show symbol ferret_precision, ferret_memory"
+ 5   / 5:"FERRET_PRECISION = "double""                
+ 6   / 6:"FERRET_MEMORY = "25.6""                     
+ 7   / 7:"cancel redirect"                            
+cancel var contents
+ 
+sp rm -rf sub-dir
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_err_attrib_overrun
+! err71_err_attrib_overrun.jnl
+! See ticket 2523
+ 
+! this ends with a segment fault sensitive to any changes
+! presumably a buffer over-run
+ 
+! the crash is occuring because of a buffer over-run
+! in IS_ATTRIB_VAL we call CREATE_TEMP_MEM_VAR to create an mr of size=1
+! later we call INIT_C_STRING_ARRAY and tell it to initialize this mr array
+! using a length nvdims=3  ==> OVERRUN
+ 
+! This bug never reared its head in the pre-dynamic memory Ferret, because
+! the buffers couldn't really be over-run, since they were part of a huge
+! static memory block
+ 
+! other INIT_* calls in IS_ATTRIB_VAL may have a similar issue
+ 
+ 
+set mode diag
+ 
+use ocean_atlas_temp
+use gt4d011
+use levitus_climatology
+ 
+use coads_climatology
+ 
+let lnames = ..dimnames[d=2]
+ 
+CANCEL DATA/ALL
+ canceling dset ./ocean_atlas_temp.cdf
+ canceling dset ./gt4d011.cdf
+ canceling dset ./levitus_climatology.cdf
+ canceling dset ./coads_climatology.cdf
+ 
+! this line seems to be essential making the crash happen
+PPL TICS .125,.25,.125,.25 !reset tics to default
+ 
+use coads_climatology
+ 
+let a = sst[d=1].dimnames
+show mem/diag   ! looks like no dynamic memory actions have occured
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 500
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 0 words
+    Current cache: 0 words
+ 
+! resulted in a seg fault (on 32-bit stout)
+list a[i=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
+ 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
+             VARIABLE : SST[D=coads_climatology].DIMNAMES
+             FILENAME : coads_climatology.cdf
+             X        : 2
+        "COADSY"
+ 
+ 
+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
+ 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
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_user_var_attrib
+! err71_user_var_attrib.jnl
+! See ticket 2132
+ 
+! command was trying to list dataset information for a user variable
+!
+ 
+let a = 1
+define att a.myAttr = "whatever"
+show att a.myAttr
+ a.myAttr = whatever 
+ 
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_save_bounds
+! err71_save_bounds
+! Ticket 2524. The SAVE command previously gave an error
+ 
+define axis/t time = {1,2,4}
+use write_int_att.nc
+ 
+! Tell Ferret to use the axis names from the file, and write data
+cancel mode upcase
+save/file=a.nc/clobber mhchla
+ 
+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 bn_compressed_gather
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_compressed_gather
+GO bn_compressed_gather
+! bn_compressed_gather.jnl
+! 11/2016 (for trac #2428 enhancement)
+! updated 3/17 for dynamic memory and using SHOW MEM/DIAG
+ 
+! force a split/gather operation due to a T=@ave
+ 
+! in previous versions of Ferret the split could not occur on the transformed
+! axis, so the X axis would have been used.  Here the T=@ave axis will be used
+ 
+! Give us something to look at while we run these tests which dont make plots
+plot/noax/nolab/vlim=0:1/i=4:5 i
+annotate/norm/x=0/y=0.5 "@AC... running bn_compressed_gather"
+ 
+! ******* tests of  T=@DIN and T=@ave ******
+define axis/x=1:1001:1 xax
+define axis/y=1:10:1 yax
+define axis/T=1:1000:1 tax
+ 
+let xt = (x[gx=xax]-501) + 0*y[gy=yax] + T[gt=tax]
+ 
+* note: SUM of integers 1 to 1000 = N(N+1)/2 ==> 500500
+*       stat average of (x[gx=xax]-501) is zero
+*       so the full 2D stat mean should be 500500
+ 
+! there are 10*1000*1001 points in the full grid => ~10M
+! given the necessary cautions (see IS_STRIP and MODE FRUGAL),
+! a size of 12 for sure requires a gather operation
+! confirm gathering is occuring by looking at the diagnostic output
+ 
+!set mode desperate: 400000
+SET MEMORY/SIZE=12
+ 
+stat xt[l=@din]
+ 
+             (X[GX=XAX]-501) + 0*Y[GY=YAX] + T[GT=TAX]
+             X: 0.5 to 1002
+             Y: 0.5 to 10.5
+             Z:  N/A
+             T: 0.5 to 1000.5 (integrated)
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 1000500
+ Mean    value: 500500 (unweighted average)
+ Standard deviation: 288978
+SHOW MEMORY/DIAGNOSTIC   ! look at peak memory usage
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        XT             T     DIN       209           1
+    Total table slots: 500
+    Free table slots: 494
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+ 
+! many variations on this test
+! note that in the first case peak memory will show as ZERO.
+! The first SET MEMORY command resets the peak memory to zero, and
+! then the expression "xt[l=@din]" gets found without re-computation
+! having been computed just above
+GO bn_compressed_gather.sub xt[l=@din] 40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 1000500
+ Mean    value: 500500 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 20020 words
+    Current cache: 10.03002 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 1000500
+ Mean    value: 500500 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[l=@din]
+ 
+! altered limits syntax
+GO bn_compressed_gather.sub xt[l=1:1000 at din] 40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 1000500
+ Mean    value: 500500 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 20020 words
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 1000500
+ Mean    value: 500500 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[l=1:1000 at din]
+ 
+! test T=@AVE
+GO bn_compressed_gather.sub xt[l=@ave]  40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[l=@ave]
+ 
+! various partial grid points at end
+GO bn_compressed_gather.sub xt[T=@ave]  40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[T=@ave]
+GO bn_compressed_gather.sub xt[T=0.5:1000.5 at ave]  40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[T=0.5:1000.5 at ave]
+GO bn_compressed_gather.sub xt[T=0.6:1000.4 at ave]  40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[T=0.6:1000.4 at ave]
+GO bn_compressed_gather.sub xt[T=1:1000 at ave]  40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[T=1:1000 at ave]
+GO bn_compressed_gather.sub xt[T=1.2:999.8 at ave] 40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[T=1.2:999.8 at ave]
+ 
+! *********************************************************
+! ******* tests of "4D" @DIN and @ave ******
+define axis/x=1:200:1 xax
+define axis/y=1:200:1 yax
+define axis/z=1:200:1 zax
+define axis/T=1:2:1  tax
+let xyz  = 0*X[gx=xax] + 0*Y[gy=yax] + Z[gz=zax]
+let xyzt = 0*X[gx=xax] + 0*Y[gy=yax] + Z[gz=zax] + 0*T[gt=tax]
+ 
+* note: SUM of Z is N*(N+1)/2 = 20100
+* area integral in XY is 200*200=40,000
+* total integral is 804,000,000 (8.04*E8)
+ 
+* 3D XYZ test
+* 2d slice size = 200*200 = 40,000
+* 3d full size is 8,000,000  - so 10,000,000 is bigger
+ 
+! confirm gathering is occuring by looking at the diagnostic output
+cancel memory/all
+!set mode desp: 2000000
+set memory/size = 2  ! 2M v 8M: requires split/gather
+! will split into 4 pieces (1/4 of 8,000,000 fits into 2,000,000)
+! so z=1:50; then =51:100, Z=101:150, Z=151:200
+stat xyz[x=@din,y=@din,z=@din]
+ 
+             0*X[GX=XAX] + 0*Y[GY=YAX] + Z[GZ=ZAX]
+             X: 0.5 to 200.5 (XYZ integ.)
+             Y: 0.5 to 200.5 (XYZ integ.)
+             Z: 0.5 to 200.5 (XYZ integ.)
+             T:  N/A
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.04E+08
+ Maximum value: 8.04E+08
+ Mean    value: 8.04E+08 (unweighted average)
+SHOW MEMORY/DIAGNOSTIC   ! look at peak memory usage
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        XYZ            Z     IN4         8           1
+    Total table slots: 500
+    Free table slots: 493
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 360010 words
+    Current cache: 1.920002 megawords
+ 
+! the clean version of same test
+GO bn_compressed_gather.sub xyz[x=@din,y=@din,z=@din] 20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.04E+08
+ Maximum value: 8.04E+08
+ Mean    value: 8.04E+08 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 2 words
+    Current cache: 1.920002 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.04E+08
+ Maximum value: 8.04E+08
+ Mean    value: 8.04E+08 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 360010 words
+    Current cache: 1.920002 megawords
+COMPRESSED GATHER success on expression xyz[x=@din,y=@din,z=@din]
+ 
+! also do the average, which will provide a comparison result for the test
+! that follows
+! average along Z is 100.5
+GO bn_compressed_gather.sub xyz[x=@ave,y=@ave,z=@ave] 20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 100.5
+ Maximum value: 100.5
+ Mean    value: 100.5 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 3.520089 megawords
+    Current cache: 8.000003 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 100.5
+ Maximum value: 100.5
+ Mean    value: 100.5 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 360010 words
+    Current cache: 1.920002 megawords
+COMPRESSED GATHER success on expression xyz[x=@ave,y=@ave,z=@ave]
+ 
+! Since the T axis has only 2 points, the arithmetic above shows that the
+! chunks to be gathered will still be too large after splitting on T, which
+! in theory would trigger further splitting along Z.  However, there is only
+! one opportunity to process compressed axis splitting -- in IS_STRIP
+! at the time that it is stripping off the compressed transformation.  But
+! a "4D" transform is stripped in a single operation. We choose an axis that
+! is long enough to break into sufficiently small fragments
+set memory/size = 6  ! 16M points in grid, 8M in each T-chunk
+stat xyzt[x=@ave,y=@ave,z=@ave,t=@ave]
+ 
+             0*X[GX=XAX] + 0*Y[GY=YAX] + Z[GZ=ZAX] + 0*T[GT=TAX]
+             X: 0.5 to 200.5 (XYZT ave)
+             Y: 0.5 to 200.5 (XYZT ave)
+             Z: 0.5 to 200.5 (XYZT ave)
+             T: 0.5 to 2.5 (XYZT ave)
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 100.5
+ Maximum value: 100.5
+ Mean    value: 100.5 (unweighted average)
+show mem/diagnostic
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        XYZT           Z     AV4        13           1
+    Total table slots: 500
+    Free table slots: 493
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 6 megawords
+    Peak demand: 1.560004 megawords
+    Current cache: 5.600002 megawords
+ 
+! test splitting along 2 axes in succession by making T=@AVE into a separate
+! averaging operation
+CANCEL MEMORY/ALL
+LET xyzave = xyzt[x=@ave,y=@ave,z=@ave]
+!set mode desp: 2000000
+set memory/size = 6  ! 2M v 8M: requires split/gather
+stat xyzave[t=@ave]
+ 
+             XYZT[X=@AVE,Y=@AVE,Z=@AVE]
+             X: 0.5 to 200.5
+             Y: 0.5 to 200.5
+             Z: 0.5 to 200.5
+             T: 0.5 to 2.5 (averaged)
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 100.5
+ Maximum value: 100.5
+ Mean    value: 100.5 (unweighted average)
+SHOW MEMORY/DIAGNOSTIC   ! look at peak memory usage
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        XYZAVE         T     AVE         1           1
+        XYZT           Z     AV4        26           2
+    Total table slots: 500
+    Free table slots: 492
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 6 megawords
+    Peak demand: 2.080005 megawords
+    Current cache: 4.880005 megawords
+ 
+! *********************************************************
+! ******* tests of T= @var and @std ******
+! the @var and @std transformation had to be switched to
+! a single pass algorithm in order to implement split/gather
+define axis/x=1:10000:1 xax
+define axis/T=1:1001:1 tax
+ 
+let xt = 0*x[gx=xax] + T[gt=tax]
+let constant = 0*X[gx=xax] + 0*T[gt=tax] + 1234
+let xt_zero_mean = 0*X[gx=xax] + (T[gt=tax]-501) + 1234
+ 
+* note: sum of a sequence 1 to N of square integers is [N*(N+1)*(2N+1)]/6
+* T-501 is 2 sequences: -500 to 1 and 1 to 500, therefore sum is
+* 2 * [500*501*1001]/6 = 83583500
+* mean of this sequence is 83583500/1001 = 83500
+* ==> look for this as the correct answer to variance
+ 
+! confirm gathering is occuring by looking at the diagnostic output
+!set mode desperate: 400000
+set memory/size= 12
+stat constant[l=@var]
+ 
+             Variance of 0*X[GX=XAX] + 0*T[GT=TAX] + 1234
+             X: 0.5 to 10001
+             Y:  N/A
+             Z:  N/A
+             T: 0.5 to 1001.5 (variance)
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ Standard deviation: 0
+SHOW MEMORY/DIAGNOSTIC   ! look at peak memory usage
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        CONSTANT       T     VAR       209           1
+    Total table slots: 500
+    Free table slots: 494
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 4.210001 megawords
+    Current cache: 10.04 megawords
+ 
+! clean test
+cancel memory/all
+GO bn_compressed_gather.sub constant[l=@var] 40 12
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 13.980001 megawords
+    Current cache: 10.04 megawords
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 4.210001 megawords
+    Current cache: 10.04 megawords
+COMPRESSED GATHER success on expression constant[l=@var]
+ 
+! known result
+GO bn_compressed_gather.sub xt_zero_mean[l=@var] 40 12
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 83500
+ Maximum value: 83500
+ Mean    value: 83500 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 13.980001 megawords
+    Current cache: 10.040001 megawords
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 83500
+ Maximum value: 83500
+ Mean    value: 83500 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 4.210001 megawords
+    Current cache: 10.04 megawords
+COMPRESSED GATHER success on expression xt_zero_mean[l=@var]
+ 
+! adding a constant doesn't effect the variance
+GO bn_compressed_gather.sub xt[l=@var] 40 12
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 83500
+ Maximum value: 83500
+ Mean    value: 83500 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.02 megawords
+    Current cache: 10.040001 megawords
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 83500
+ Maximum value: 83500
+ Mean    value: 83500 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.130209 megawords
+    Current cache: 10.04 megawords
+COMPRESSED GATHER success on expression xt[l=@var]
+ 
+! same test, but  on @std (only one line of code difference so limited test)
+* square root of 83500 is 288.96366553599779.
+* Note: previous Ferret versions gave a consistent value
+*  Minimum value: 288.9636655359978
+*  Maximum value: 288.9636655359978
+*  Mean    value: 288.9636655359978
+* Now (11/16) we are getting slight variations in the 16th decimal (see"6")
+*  Minimum value: 288.9636655359978
+*  Maximum value: 288.9636655359978
+*  Mean    value: 288.9636655359976
+* *sh* @std differs from @var only by taking a SQRT() in the finalization step.
+*      I suspect this is an artifact of the compiler optimization level
+GO bn_compressed_gather.sub xt[l=@std] 4000000 400000
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 288.9636655359978
+ Maximum value: 288.9636655359978
+ Mean    value: 288.9636655360099 (unweighted average)
+    SET MEMORY/SIZE: 4000000 megawords
+    Peak demand: 10.04 megawords
+    Current cache: 10.040001 megawords
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 288.9636655359978
+ Maximum value: 288.9636655359978
+ Mean    value: 288.9636655360099 (unweighted average)
+    SET MEMORY/SIZE: 400000 megawords
+    Peak demand: 10.04 megawords
+    Current cache: 10.04 megawords
+COMPRESSED GATHER success on expression xt[l=@std]
+ 
+ 
+! *********************************************************
+! ******* tests of "4D" @var and @std ******
+! the @var and @srd transformation had to be switched to
+! a single pass algorithm in order to implement split/gather
+define axis/x=1:200:1 xax
+define axis/y=1:200:1 yax
+define axis/z=1:201:1 zax
+define axis/T=1:200:1 tax
+! adding a constant doesn't effect variance
+let constant = 0*X[gx=xax] + 0*Y[gy=yax] + 0*Z[gz=zax] + 1234
+let xyz = 0*X[gx=xax] + 0*Y[gy=yax] + Z[gz=zax] + 1
+let xyz_zero_mean = 0*X[gx=xax] + 0*Y[gy=yax] + (Z[gz=zax]-101)
+ 
+* note: sum of a sequence 1 to N of square integers is [N*(N+1)*(2N+1)]/6
+* Z-101 is 2 sequences: -100 to -1 and 1 to 100, therefore sum is
+* 2 * [100*101*201]/6 = 676700
+* so the average is 676700/201 = 3366.666666 ...
+* At every XY point we have the identical sequence in Z, so the variance is
+* the same as the single Z sequence
+ 
+* 3D XYZ test
+* 2d slice size = 200*200 = 40,000
+* 3d full size is 8,000,000  - so 10,000,000 is bigger
+cancel memory/all
+!set mode desp: 2000000
+set memory/size = 2  ! 2M v 8M: requires split/gather
+! will split into 4 pieces (1/4 of 8,000,000 fits into 2,000,000)
+! so z=1:50; then =51:100, Z=101:150, Z=151:200
+LIST/PREC=12 constant[x=@var,y=@var,z=@var]
+             VARIABLE : 0*X[GX=XAX] + 0*Y[GY=YAX] + 0*Z[GZ=ZAX] + 1234
+             X        : 0.5 to 200.5 (XYZ variance)
+             Y        : 0.5 to 200.5 (XYZ variance)
+             Z        : 0.5 to 201.5 (XYZ variance)
+          0.000000000000
+ 
+! variance of a constant is zero
+GO bn_compressed_gather.sub constant[x=@var,y=@var,z=@var] 20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 3 words
+    Current cache: 1.640003 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 640004 words
+    Current cache: 1.640003 megawords
+COMPRESSED GATHER success on expression constant[x=@var,y=@var,z=@var]
+ 
+! confirm that we get the result computed above
+GO bn_compressed_gather.sub xyz_zero_mean[x=@var,y=@var,z=@var]  20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 3366.7
+ Maximum value: 3366.7
+ Mean    value: 3366.7 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 3.52009 megawords
+    Current cache: 8.040004 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 3366.7
+ Maximum value: 3366.7
+ Mean    value: 3366.7 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 360011 words
+    Current cache: 1.640003 megawords
+COMPRESSED GATHER success on expression xyz_zero_mean[x=@var,y=@var,z=@var]
+LIST/PREC=12 xyz_zero_mean[x=@var,y=@var,z=@var]
+             VARIABLE : 0*X[GX=XAX] + 0*Y[GY=YAX] + (Z[GZ=ZAX]-101)
+             X        : 0.5 to 200.5 (XYZ variance)
+             Y        : 0.5 to 200.5 (XYZ variance)
+             Z        : 0.5 to 201.5 (XYZ variance)
+          3366.66666667
+ 
+! confirm that adding a constant does not change the result
+GO bn_compressed_gather.sub xyz[x=@var,y=@var,z=@var]  20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 3366.7
+ Maximum value: 3366.7
+ Mean    value: 3366.7 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 6.960004 megawords
+    Current cache: 9.680006 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 3366.7
+ Maximum value: 3366.7
+ Mean    value: 3366.7 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 640004 words
+    Current cache: 1.640003 megawords
+COMPRESSED GATHER success on expression xyz[x=@var,y=@var,z=@var]
+LIST/PREC=12 xyz[x=@var,y=@var,z=@var]
+             VARIABLE : 0*X[GX=XAX] + 0*Y[GY=YAX] + Z[GZ=ZAX] + 1
+             X        : 0.5 to 200.5 (XYZ variance)
+             Y        : 0.5 to 200.5 (XYZ variance)
+             Z        : 0.5 to 201.5 (XYZ variance)
+          3366.66666667
+ 
+CANCEL MEMORY/ALL  ! IF PRESENT THIS PREVENTS THE MEMORY CORRUPTION
+! confirm the @std gives the square root of the variance
+! SQRT(676700/201) = 58.022983951764034269074805569046
+GO bn_compressed_gather.sub xyz[x=@std,y=@std,z=@std]  20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 58.023
+ Maximum value: 58.023
+ Mean    value: 58.023 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 6.960004 megawords
+    Current cache: 8.040003 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 58.023
+ Maximum value: 58.023
+ Mean    value: 58.023 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 640004 words
+    Current cache: 1.640003 megawords
+COMPRESSED GATHER success on expression xyz[x=@std,y=@std,z=@std]
+LIST/PREC=12 xyz[x=@std,y=@std,z=@std]
+             VARIABLE : 0*X[GX=XAX] + 0*Y[GY=YAX] + Z[GZ=ZAX] + 1
+             X        : 0.5 to 200.5 (XYZ stddev)
+             Y        : 0.5 to 200.5 (XYZ stddev)
+             Z        : 0.5 to 201.5 (XYZ stddev)
+          58.0229839518
+ 
+ 
+! add more tests here
+! the highest liklihood of problem is in the formulation of "the next chunk"
+! when IS_TRANS requests the next piece to be gathered
+! ... variations on inner and outer limits
+!     (i.e. averaging an expression with limits embedded inside of it
+!      where the averaging limits may or may not match the inner limits)
+! ... file variable, vs user variables
+! ... embedded functions, especially grid-changing functions
+!
+! ... test irregular axes (unequal weighting) and see how significant are
+!     the changes in results from old Ferret (particularly on @var)
+ 
+ 
+GO bn_reset bn_dynamic_gather
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_dynamic_gather
+GO bn_dynamic_gather
+! bn_dynamic_gather.jnl
+! *sh* 3/2017
+ 
+! There's not really anything "dynamic" about this benchmark, except that it
+! excercises the split/gather improvements that were implemented together with
+! dynamic memory management
+ 
+ 
+ 
+ 
+! Give us something to look at while we run these tests which dont make plots
+plot/noax/nolab/vlim=0:1/i=4:5 i
+annotate/norm/x=0/y=0.5 "@AC... running bn_dynamic_gather"
+ 
+ 
+! **************************************
+! create the test data
+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
+ELSE
+ENDIF
+ 
+! ************************************
+ 
+use tmp/test_dyn_mem.nc
+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
+ 
+ 
+! excercise under the least strict memory management
+CANCEL MODE FRUGAL
+GO bn_dynamic_gather.sub
+! bn_dynamic_gather.sub
+ 
+! this subroutine to get called repeatedly for different values of MODE FRUGAL
+ 
+!**************
+! remember to test:
+! - MODE FRUGAL
+! done - case of no single axis long enough
+! done - case of transformed axis not long enough, but another is
+! 2-axis split including compressed
+! 2-axis split not including
+! 3-axis splits
+!    -- with slowest axis GT 5 in length
+!    -- with slowest axis LT 5 and second slowest GT 50
+! - modulo regrid examples
+! 2d and 3d @AVE
+! mixed @AVE and @DIN
+!*************
+ 
+! **************************************************
+! test memory that is too small to accommodate the result
+! this request will fail trying to get the third argument
+set mode ignore
+set memory/siz=1.99
+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]
+    At the moment that the memory limit was reached
+    argument 3 was being evaluated: V[L=1:10 at AVE]
+    memory was committed as follows:
+        - to arguments 1-2: 40000 (2%)
+        - to objects used in computation: : 0 (0%)
+    The size of the requested object was: : 2000000 (101%)
+cancel mode ignore
+ 
+! **************************************************
+! if memory size is large enough to accommodate the result data plus
+! its accumulation buffer(s) when split along the compressed axis (4M)
+! then it can choose to use the compressed axis.
+! The smallest chunk along that axis is 1000x1000x2x1 ==> 2M
+set memory/siz=6
+stat/brief v[l=1:10 at ave]
+ 
+ Total # of data points: 2000000 (1000*1000*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 2007.5
+ Mean    value: 1008 (unweighted average)
+show memory/diagnostic   ! T axis split, chunk size = 1, peak mem=6
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              T     AVE         1           1
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 6 megawords
+    Peak demand: 6 megawords
+    Current cache: 6 megawords
+show memory/all          ! in memory following the last chunk
+    SET MEMORY/SIZE: 6 megawords
+    Peak demand: 6 megawords
+    Current cache: 6 megawords
+all data in memory:
+ V[D=test_dyn_mem]                 XYZ   mr:231 size:4000000
+         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]                 XYZ   mr:246 size:2000000
+         1/0.5                 1/0.5                 1/0.5                10/9.5
+      1000/1001             1000/1000.5              2/2.5                10/10.5
+ 
+cancel memory/all
+ 
+! **************************************************
+! Since @VAR requires two buffers - the total size of the result is 2M+2*2M=6M
+! if we were to split along T the size of a chunk would be 1000x1000x2x1 = 2M
+! So the total memory needed would be 6M+2M=8M to split along T
+set memory/size=8
+stat/brief v[l=1:10 at var]
+ 
+ Total # of data points: 2000000 (1000*1000*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.25
+ Maximum value: 8.25
+ Mean    value: 8.25 (unweighted average)
+show memory/diagnostic   ! T axis split, chunk size = 1, peak mem=8
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              T     VAR         1           1
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 8 megawords
+    Peak demand: 8 megawords
+    Current cache: 8 megawords
+cancel memory/all
+ 
+! **************************************************
+! if memory size is NOT large enough to accommodate the result data plus
+! its accumulation buffer(s) then it cannot split along T
+set memory/siz=5.9
+stat/brief v[l=1:10 at ave]
+ 
+ Total # of data points: 2000000 (1000*1000*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 2007.5
+ Mean    value: 1008 (unweighted average)
+show memory/diagnostic   ! Y axis split, big chunk size = 1
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Y     AVE       162           1
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 5.9 megawords
+    Peak demand: 5.888 megawords
+    Current cache: 3.32 megawords
+cancel memory/all
+ 
+! **************************************************
+! memory barely large enough to accommodate the result (2M), and the
+! smallest achievable chunk
+! splitting along the Y axis, the smallest chunk size is 1000x1x2x10 ==> 20000
+! and the average of a single chunk (incl buffer) is 1000x1x2x1*2 ==> 4000
+set memory/siz=2.024
+stat/brief v[l=1:10 at ave]
+ 
+ Total # of data points: 2000000 (1000*1000*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 2007.5
+ Mean    value: 1008 (unweighted average)
+show memory/diagnostic ! Y axis split, chunk size=1, peak mem=2.024
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Y     AVE         1           1
+    Total table slots: 500
+    Free table slots: 497
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 2.024 megawords
+    Peak demand: 2.024 megawords
+    Current cache: 2.024 megawords
+show memory/all        ! in memory following the last chunk
+    SET MEMORY/SIZE: 2.024 megawords
+    Peak demand: 2.024 megawords
+    Current cache: 2.024 megawords
+all data in memory:
+ V[D=test_dyn_mem]                 XYZ   mr:234 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
+         1/0.5              1000/999.5               1/0.5              ... /0.5
+      1000/1001             1000/1000.5              2/2.5              ... /10.5
+                                                              AVE
+ V[D=test_dyn_mem]                 XZT   mr:246 size:20000
+         1/0.5              1000/999.5               1/0.5                 1/0.5
+      1000/1001             1000/1000.5              2/2.5                10/10.5
+ 
+cancel memory/all
+ 
+! **************************************************
+! Since @VAR requires two buffers - the total size of the result is 2M+2*2M=6M
+! if we were to split along T the size of a chunk would be 1000x1000x2x1 = 2M
+! So the total memory needed would be 6M+2M=8M.  So the current SET MEMORY=6
+! is not enuf mem to split along the T axis
+set memory/siz=6
+stat/brief v[l=1:10 at var]
+ 
+ Total # of data points: 2000000 (1000*1000*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.25
+ Maximum value: 8.25
+ Mean    value: 8.25 (unweighted average)
+show memory/diagnostic   ! Y axis split
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Y     VAR       153           1
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 6 megawords
+    Peak demand: 5.978 megawords
+    Current cache: 5.05 megawords
+cancel memory/all
+ 
+! **************************************************
+! 3D averaging  v[x=@ave,y=@ave,z=@ave,L=1]
+! result size will be 1x1x1x1*2 = 2
+! chunk size if split along Z will be 1000x1000x1x1 = 1M
+! chunk size if split along Y will be 1000x1x2x1    = 2K
+ 
+! this request can succeed by splitting along Z
+set memory/siz=1.001
+stat/brief v[x=@ave,y=@ave,z=@ave,L=1]
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 1003.5
+ Maximum value: 1003.5
+ Mean    value: 1003.5 (unweighted average)
+show memory/diagnostic     ! Z axis split
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Z     AV4         1           1
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 1.001 megawords
+    Peak demand: 1.000002 megawords
+    Current cache: 1.000002 megawords
+cancel memory/all
+ 
+! **************************************************
+! but if memory is so small that the Z axis of 2 points does not provide
+! enough size reduction, then we choose to split along Y
+set memory/siz=.99
+stat/brief v[x=@ave,y=@ave,z=@ave,L=1]
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 1003.5
+ Maximum value: 1003.5
+ Mean    value: 1003.5 (unweighted average)
+show memory/diagnostic     ! Y axis split
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Y     AV4       494           1
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 990000 words
+    Peak demand: 988002 words
+    Current cache: 24002 words
+cancel memory/all
+ 
+! **************************************************
+! multiple transformations on a single expression
+! Use of these expressions **is a bad idea in Ferret**
+! he "potential size" of the source data is 1000x1000x20x10=20M
+! we just get aggressive about memory saving: choose the longest axis
+! preferring an uncompressed axis if available
+! Here we see a triple level strip: Z-T-Y
+! (SHOW MEM/DIAG repeats on each of the 2 K values)
+set memory/siz=.99
+stat/brief v[x=@ave,y=@ave,L=@SUM]
+ 
+ Total # of data points: 2 (1*1*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 10075
+ Maximum value: 10085
+ Mean    value: 10080 (unweighted average)
+show memory/diagnostic        !  split on Z-(T-Y,T-Y)
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Z     SUM         1           1
+        V              T     SUM         1           1
+        V              Y     AV4       989          10
+        V              T     SUM         1           1
+        V              Y     AV4       989          10
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 990000 words
+    Peak demand: 989006 words
+    Current cache: 11006 words
+cancel memory/all
+ 
+! **************************************************
+! now the same situation, but where Z is compressed as well
+! Z is not stripped off because other axes are longer
+set memory/siz=.99
+stat/brief v[x=@ave,y=@ave,z=@ave,L=@SUM]
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 10080
+ Maximum value: 10080
+ Mean    value: 10080 (unweighted average)
+show memory/diagnostic       ! split on T-Y
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              T     SUM         1           1
+        V              Y     AV4       494          10
+    Total table slots: 500
+    Free table slots: 497
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 990000 words
+    Peak demand: 988004 words
+    Current cache: 24004 words
+cancel memory/all
+ 
+! **************************************************
+! multiple transformation again
+! first strip YZT at AVE. Split the long Y axis, no further split needed
+set memory/siz=.99
+stat/brief v[x=@SUM,y=@ave,z=@ave,L=@ave]
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 1008000
+ Maximum value: 1008000
+ Mean    value: 1008000 (unweighted average)
+show memory/diagnostic      ! split on Y
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Y     AV4        24           1
+    Total table slots: 500
+    Free table slots: 494
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 990000 words
+    Peak demand: 480962 words
+    Current cache: 802562 words
+cancel memory/all
+ 
+! **************************************************
+! MODULO REGRID
+ 
+! v1000 is 10x100x4x1000
+! for gt=@mod the full result size is 10x100x4x12 ==>  48,000
+ 
+define axis/mod/t=1:12:1 t12mod
+ 
+!**************************************************
+set mem/size=10   ! bigger than needed
+stat/brief v1000[gt=t12mod at mod]
+ 
+ Total # of data points: 48000 (10*100*4*12*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 618
+ Mean    value: 559 (unweighted average)
+show mem/diag     ! note peak size demand a bit over 4
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 10 megawords
+    Peak demand: 4.144 megawords
+    Current cache: 4.048 megawords
+canc mem/all
+ 
+!**************************************************
+set mem/size=4
+stat/brief v1000[gt=t12mod at mod]
+ 
+ Total # of data points: 48000 (10*100*4*12*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 618
+ Mean    value: 559 (unweighted average)
+show mem/diag              ! big z chunks (3 on ax of len 4)
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V1000          Z                 3           1
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 4 megawords
+    Peak demand: 3.108 megawords
+    Current cache: 1.096 megawords
+canc mem/all
+ 
+!**************************************************
+set mem/size=1
+stat/brief v1000[gt=t12mod at mod]
+ 
+ Total # of data points: 48000 (10*100*4*12*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 618
+ Mean    value: 559 (unweighted average)
+show mem/diag              !  big y chunks (22 on ax of len 100)
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V1000          Y                22           1
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 1000000 words
+    Peak demand: 959680 words
+    Current cache: 544320 words
+canc mem/all
+ 
+!**************************************************
+! if the chunk size is 1, then each chunk src is 10x1x4x1000 ==> 40000
+! and requires a result plus 2 buffers:          10x1x4x12*3 ==>  1440
+! plus the full result size in IS_GATHER                     ==> 48000
+!                                                      total ==> 89440
+set mem/size=.09
+stat/brief v1000[gt=t12mod at mod]
+ 
+ Total # of data points: 48000 (10*100*4*12*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 618
+ Mean    value: 559 (unweighted average)
+show mem/diag              !  y chunk size = 1
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V1000          Y                 1           1
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 90000 words
+    Peak demand: 89440 words
+    Current cache: 88960 words
+canc mem/all
+ 
+ 
+! ************** USER VARIABLES ********************
+let a = v[k=1]
+let b = v[k=2]
+let c = a + b
+let d = a + c
+ 
+! for comparison: memory management to average a simple file variable
+set memory/siz=3
+stat/brief v[l=1:10 at ave,k=1]
+ 
+ Total # of data points: 1000000 (1000*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 2006.5
+ Mean    value: 1007.5 (unweighted average)
+show memory/diagnostic   ! T axis split, chunk size = 1, peak mem=6
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              T     AVE         1           1
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 3 megawords
+    Peak demand: 3 megawords
+    Current cache: 3 megawords
+cancel memory/all
+ 
+! compare to memory management averaging user variables
+! not split on T because more memory is needed for components of calculation
+set memory/siz=3
+ 
+stat/brief a[l=1:10 at ave]
+ 
+ Total # of data points: 1000000 (1000*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 2006.5
+ Mean    value: 1007.5 (unweighted average)
+show memory/diagnostic   ! X axis split, chunk size = 1, peak mem=1.82
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        A              Y     AVE        47           1
+    Total table slots: 500
+    Free table slots: 491
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 3 megawords
+    Peak demand: 1.94 megawords
+    Current cache: 2.884 megawords
+cancel memory/all
+ 
+stat/brief d[l=1:10 at ave]
+ 
+ Total # of data points: 1000000 (1000*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 26.5
+ Maximum value: 6020.5
+ Mean    value: 3023.5 (unweighted average)
+show memory/diagnostic   ! X axis split, chunk size = 1, peak mem=2.23
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        D              Y     AVE        47           1
+    Total table slots: 500
+    Free table slots: 489
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 3 megawords
+    Peak demand: 2.41 megawords
+    Current cache: 2.84 megawords
+cancel memory/all
+ 
+! progressively more frugal mem mgmt is needed as multiple results accumulate
+stat/brief a[i=1:500,l=1:10 at ave], b[i=1:500,l=1:10 at ave], c[i=1:500,l=1:10 at ave], d[i=1:500,l=1:10 at ave]
+ 
+ Total # of data points: 500000 (500*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 1506.5
+ Mean    value: 757.5 (unweighted average)
+ 
+ Total # of data points: 500000 (500*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 9.5
+ Maximum value: 1507.5
+ Mean    value: 758.5 (unweighted average)
+ 
+ Total # of data points: 500000 (500*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 18
+ Maximum value: 3014
+ Mean    value: 1516 (unweighted average)
+ 
+ Total # of data points: 500000 (500*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 26.5
+ Maximum value: 4520.5
+ Mean    value: 2273.5 (unweighted average)
+show memory/diagnostic   ! X axis split, chunk size = 1, peak mem=2.23
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        A              T     AVE         1           1
+        B              Y     AVE        71           1
+        C              Y     AVE        47           1
+        D              Y     AVE        23           1
+    Total table slots: 500
+    Free table slots: 487
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 3 megawords
+    Peak demand: 2.845 megawords
+    Current cache: 2.979 megawords
+cancel memory/all
+ 
+! if the initial arguments take up too much memory we cannot succeed
+set mode ignore
+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]
+    At the moment that the memory limit was reached
+    argument 3 was being evaluated: C[L=1:10 at AVE]
+    memory was committed as follows:
+        - to arguments 1-2: 2000000 (67%)
+        - to objects used in computation: : 0 (0%)
+    The size of the requested object was: : 1000000 (33%)
+show memory/diagnostic   ! X axis split, chunk size = 1, peak mem=2.23
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        A              Y     AVE        47           1
+        B              Y     AVE        23           1
+    Total table slots: 500
+    Free table slots: 491
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 3 megawords
+    Peak demand: 2.46 megawords
+    Current cache: 2.794 megawords
+cancel mode ignore
+cancel memory/all
+ 
+ 
+! now run the same tests under 3 different FRUGAL levels
+! save the outputs so they can be compared
+ 
+! excercise under the least strict memory management
+CANCEL REDIRECT
+SET REDIRECT/CLOBBER/FILE=bn_dynamic_gather_0.out
+SET REDIRECT/CLOBBER/FILE=bn_dynamic_gather_30.out
+SET REDIRECT/CLOBBER/FILE=bn_dynamic_gather_60.out
+ 
+! now compare the three output logs:
+! differences in *how* the results are computed are fine
+! differences in what the results are would be problems
+SAY **************************************************
+**************************************************
+SAY ************* DIFF FRUGAL 0 TO 30 ****************
+************* DIFF FRUGAL 0 TO 30 ****************
+SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_30.out
+1c1
+< CANCEL MODE FRUGAL
+---
+> SET MODE FRUGAL    ! 30%
+4c4
+<       FRUGAL        CANCELED            30
+---
+>       FRUGAL           SET              30
+56c56
+<         V              T     AVE         1           1
+---
+>         V              Y     AVE        91           1
+58c58
+<     Free table slots: 498
+---
+>     Free table slots: 496
+61,62c61,62
+<     Peak demand: 6 megawords
+<     Current cache: 6 megawords
+---
+>     Peak demand: 4.184 megawords
+>     Current cache: 4.524 megawords
+65,66c65,66
+<     Peak demand: 6 megawords
+<     Current cache: 6 megawords
+---
+>     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: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
+>          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
+>          1/0.5               820/819.5               1/0.5              ... /0.5
+>       1000/1001              910/910.5               2/2.5              ... /10.5
+>                                                               AVE
+93c101
+<         V              T     VAR         1           1
+---
+>         V              Y     VAR       138           1
+95c103
+<     Free table slots: 498
+---
+>     Free table slots: 494
+98,99c106,107
+<     Peak demand: 8 megawords
+<     Current cache: 8 megawords
+---
+>     Peak demand: 5.588 megawords
+>     Current cache: 7.3 megawords
+116c124
+<         V              Y     AVE       162           1
+---
+>         V              Y     AVE        88           1
+118c126
+<     Free table slots: 496
+---
+>     Free table slots: 494
+121,122c129,130
+<     Peak demand: 5.888 megawords
+<     Current cache: 3.32 megawords
+---
+>     Peak demand: 4.112 megawords
+>     Current cache: 5.232 megawords
+141a150
+>         V              T     AVE         6         999
+143c152
+<     Free table slots: 497
+---
+>     Free table slots: 496
+146c155
+<     Peak demand: 2.024 megawords
+---
+>     Peak demand: 2.016 megawords
+150c159
+<     Peak demand: 2.024 megawords
+---
+>     Peak demand: 2.016 megawords
+161,162c170,171
+<  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
+>          1/0.5              1000/999.5               1/0.5                 7/6.5
+164a174,177
+>  V[D=test_dyn_mem]                 XZT   mr:243 size:12000
+>          1/0.5              1000/999.5               1/0.5                 1/0.5
+>       1000/1001             1000/1000.5              2/2.5                 6/6.5
+>  
+183c196
+<         V              Y     VAR       153           1
+---
+>         V              Y     VAR        84           1
+188,189c201,202
+<     Peak demand: 5.978 megawords
+<     Current cache: 5.05 megawords
+---
+>     Peak demand: 4.184 megawords
+>     Current cache: 4.48 megawords
+210c223
+<         V              Z     AV4         1           1
+---
+>         V              Y     AV4       350           1
+215,216c228,229
+<     Peak demand: 1.000002 megawords
+<     Current cache: 1.000002 megawords
+---
+>     Peak demand: 700002 words
+>     Current cache: 600002 words
+233c246
+<         V              Y     AV4       494           1
+---
+>         V              Y     AV4       346           1
+238,239c251,252
+<     Peak demand: 988002 words
+<     Current cache: 24002 words
+---
+>     Peak demand: 692002 words
+>     Current cache: 616002 words
+263c276
+<         V              Y     AV4       989          10
+---
+>         V              Y     AV4       692          10
+265c278
+<         V              Y     AV4       989          10
+---
+>         V              Y     AV4       692          10
+270,271c283,284
+<     Peak demand: 989006 words
+<     Current cache: 11006 words
+---
+>     Peak demand: 692006 words
+>     Current cache: 308006 words
+289c302
+<         V              Y     AV4       494          10
+---
+>         V              Y     AV4       346          10
+294,295c307,308
+<     Peak demand: 988004 words
+<     Current cache: 24004 words
+---
+>     Peak demand: 692004 words
+>     Current cache: 616004 words
+312c325
+<         V              Y     AV4        24           1
+---
+>         V              Y     AV4        17           1
+314c327
+<     Free table slots: 494
+---
+>     Free table slots: 492
+317,318c330,331
+<     Peak demand: 480962 words
+<     Current cache: 802562 words
+---
+>     Peak demand: 340682 words
+>     Current cache: 962602 words
+360c373
+<         V1000          Z                 3           1
+---
+>         V1000          Z                 2           1
+365,366c378,379
+<     Peak demand: 3.108 megawords
+<     Current cache: 1.096 megawords
+---
+>     Peak demand: 2.12 megawords
+>     Current cache: 2.096 megawords
+381c394
+<         V1000          Y                22           1
+---
+>         V1000          Y                15           1
+386,387c399,400
+<     Peak demand: 959680 words
+<     Current cache: 544320 words
+---
+>     Peak demand: 669600 words
+>     Current cache: 460000 words
+406a420
+>         V1000          Z                 2          99
+408c422
+<     Free table slots: 496
+---
+>     Free table slots: 493
+411,412c425,426
+<     Peak demand: 89440 words
+<     Current cache: 88960 words
+---
+>     Peak demand: 69200 words
+>     Current cache: 89440 words
+434c448
+<         V              T     AVE         1           1
+---
+>         V              Y     AVE        91           1
+436c450
+<     Free table slots: 498
+---
+>     Free table slots: 496
+439,440c453,454
+<     Peak demand: 3 megawords
+<     Current cache: 3 megawords
+---
+>     Peak demand: 2.092 megawords
+>     Current cache: 2.262 megawords
+457c471
+<         A              Y     AVE        47           1
+---
+>         A              Y     AVE        26           1
+459c473
+<     Free table slots: 491
+---
+>     Free table slots: 487
+462,463c476,477
+<     Peak demand: 1.94 megawords
+<     Current cache: 2.884 megawords
+---
+>     Peak demand: 1.52 megawords
+>     Current cache: 2.98 megawords
+476c490
+<         D              Y     AVE        47           1
+---
+>         D              Y     AVE        26           1
+478c492
+<     Free table slots: 489
+---
+>     Free table slots: 487
+481,482c495,496
+<     Peak demand: 2.41 megawords
+<     Current cache: 2.84 megawords
+---
+>     Peak demand: 1.78 megawords
+>     Current cache: 2.836 megawords
+514,517c528,531
+<         A              T     AVE         1           1
+<         B              Y     AVE        71           1
+<         C              Y     AVE        47           1
+<         D              Y     AVE        23           1
+---
+>         A              Y     AVE        76           1
+>         B              Y     AVE        59           1
+>         C              Y     AVE        42           1
+>         D              Y     AVE        26           1
+519c533
+<     Free table slots: 487
+---
+>     Free table slots: 484
+522,523c536,537
+<     Peak demand: 2.845 megawords
+<     Current cache: 2.979 megawords
+---
+>     Peak demand: 2.39 megawords
+>     Current cache: 2.918 megawords
+538,539c552,553
+<         A              Y     AVE        47           1
+<         B              Y     AVE        23           1
+---
+>         A              Y     AVE        26           1
+>         B              Y     AVE         9           1
+541c555
+<     Free table slots: 491
+---
+>     Free table slots: 481
+544,545c558,559
+<     Peak demand: 2.46 megawords
+<     Current cache: 2.794 megawords
+---
+>     Peak demand: 2.18 megawords
+>     Current cache: 2.922 megawords
+551c565
+< ! excercise under the default memory management
+---
+> ! excercise under pretty strict memory management
+ 
+SAY **************************************************
+**************************************************
+SAY ************* DIFF FRUGAL 0 TO 60 ****************
+************* DIFF FRUGAL 0 TO 60 ****************
+SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
+1c1
+< CANCEL MODE FRUGAL
+---
+> SET MODE FRUGAL:60
+4c4
+<       FRUGAL        CANCELED            30
+---
+>       FRUGAL           SET              60
+56c56
+<         V              T     AVE         1           1
+---
+>         V              Y     AVE        16           1
+58c58
+<     Free table slots: 498
+---
+>     Free table slots: 478
+61,62c61,62
+<     Peak demand: 6 megawords
+<     Current cache: 6 megawords
+---
+>     Peak demand: 2.384 megawords
+>     Current cache: 5.712 megawords
+65,66c65,66
+<     Peak demand: 6 megawords
+<     Current cache: 6 megawords
+---
+>     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: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
+>          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
+>          1/0.5               993/992.5               1/0.5                 1/0.5
+75a80,155
+>  V[D=test_dyn_mem]                 XYZ   mr:176 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
+>          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
+>          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
+>          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
+>          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
+>          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
+>          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
+>          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
+>          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
+>          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
+>          1/0.5               897/896.5               1/0.5              ... /0.5
+>       1000/1001              912/912.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:243 size:320000
+>          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
+>          1/0.5               881/880.5               1/0.5              ... /0.5
+>       1000/1001              896/896.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:247 size:320000
+>          1/0.5               881/880.5               1/0.5                 1/0.5
+>       1000/1001              896/896.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:244 size:64000
+>          1/0.5               865/864.5               1/0.5              ... /0.5
+>       1000/1001              880/880.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:248 size:320000
+>          1/0.5               865/864.5               1/0.5                 1/0.5
+>       1000/1001              880/880.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:249 size:64000
+>          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
+>          1/0.5               849/848.5               1/0.5                 1/0.5
+>       1000/1001              864/864.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:239 size:64000
+>          1/0.5               833/832.5               1/0.5              ... /0.5
+>       1000/1001              848/848.5               2/2.5              ... /10.5
+>                                                               AVE
+93c173
+<         V              T     VAR         1           1
+---
+>         V              Y     VAR        46           1
+95c175
+<     Free table slots: 498
+---
+>     Free table slots: 488
+98,99c178,179
+<     Peak demand: 8 megawords
+<     Current cache: 8 megawords
+---
+>     Peak demand: 3.196 megawords
+>     Current cache: 7.944 megawords
+116c196
+<         V              Y     AVE       162           1
+---
+>         V              Y     AVE        14           1
+118c198
+<     Free table slots: 496
+---
+>     Free table slots: 474
+121,122c201,202
+<     Peak demand: 5.888 megawords
+<     Current cache: 3.32 megawords
+---
+>     Peak demand: 2.336 megawords
+>     Current cache: 5.896 megawords
+141a222
+>         V              T     AVE         2         999
+143c224
+<     Free table slots: 497
+---
+>     Free table slots: 493
+146c227
+<     Peak demand: 2.024 megawords
+---
+>     Peak demand: 2.008 megawords
+150c231
+<     Peak demand: 2.024 megawords
+---
+>     Peak demand: 2.008 megawords
+153c234
+<  V[D=test_dyn_mem]                 XYZ   mr:231 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: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
+>          1/0.5              1000/999.5               1/0.5                 9/8.5
+164a246,261
+>  V[D=test_dyn_mem]                 XZT   mr:243 size:4000
+>          1/0.5              1000/999.5               1/0.5                 7/6.5
+>       1000/1001             1000/1000.5              2/2.5                 8/8.5
+>  
+>  V[D=test_dyn_mem]                 XZT   mr:244 size:4000
+>          1/0.5              1000/999.5               1/0.5                 5/4.5
+>       1000/1001             1000/1000.5              2/2.5                 6/6.5
+>  
+>  V[D=test_dyn_mem]                 XZT   mr:245 size:4000
+>          1/0.5              1000/999.5               1/0.5                 3/2.5
+>       1000/1001             1000/1000.5              2/2.5                 4/4.5
+>  
+>  V[D=test_dyn_mem]                 XZT   mr:249 size:4000
+>          1/0.5              1000/999.5               1/0.5                 1/0.5
+>       1000/1001             1000/1000.5              2/2.5                 2/2.5
+>  
+183c280
+<         V              Y     VAR       153           1
+---
+>         V              Y     VAR        15           1
+185c282
+<     Free table slots: 496
+---
+>     Free table slots: 478
+188,189c285,286
+<     Peak demand: 5.978 megawords
+<     Current cache: 5.05 megawords
+---
+>     Peak demand: 2.39 megawords
+>     Current cache: 5.86 megawords
+210c307
+<         V              Z     AV4         1           1
+---
+>         V              Y     AV4       200           1
+212c309
+<     Free table slots: 498
+---
+>     Free table slots: 497
+215,216c312,313
+<     Peak demand: 1.000002 megawords
+<     Current cache: 1.000002 megawords
+---
+>     Peak demand: 400002 words
+>     Current cache: 800002 words
+233c330
+<         V              Y     AV4       494           1
+---
+>         V              Y     AV4       197           1
+235c332
+<     Free table slots: 498
+---
+>     Free table slots: 496
+238,239c335,336
+<     Peak demand: 988002 words
+<     Current cache: 24002 words
+---
+>     Peak demand: 394002 words
+>     Current cache: 818002 words
+263c360
+<         V              Y     AV4       989          10
+---
+>         V              Y     AV4       395          10
+265c362
+<         V              Y     AV4       989          10
+---
+>         V              Y     AV4       395          10
+267c364
+<     Free table slots: 496
+---
+>     Free table slots: 495
+270,271c367,368
+<     Peak demand: 989006 words
+<     Current cache: 11006 words
+---
+>     Peak demand: 395006 words
+>     Current cache: 605006 words
+289c386
+<         V              Y     AV4       494          10
+---
+>         V              Y     AV4       197          10
+291c388
+<     Free table slots: 497
+---
+>     Free table slots: 495
+294,295c391,392
+<     Peak demand: 988004 words
+<     Current cache: 24004 words
+---
+>     Peak demand: 394004 words
+>     Current cache: 818004 words
+312c409
+<         V              Y     AV4        24           1
+---
+>         V              Y     AV4         9           1
+314c411
+<     Free table slots: 494
+---
+>     Free table slots: 486
+317,318c414,415
+<     Peak demand: 480962 words
+<     Current cache: 802562 words
+---
+>     Peak demand: 180362 words
+>     Current cache: 922202 words
+339c436,438
+<     No split/gather occurred in the last evaluation
+---
+>     Last gather
+>         Variable    Axis   Xform     Chunk    Repeated
+>         V1000          Z                 3           1
+341c440
+<     Free table slots: 498
+---
+>     Free table slots: 495
+344,345c443,444
+<     Peak demand: 4.144 megawords
+<     Current cache: 4.048 megawords
+---
+>     Peak demand: 3.108 megawords
+>     Current cache: 4.096 megawords
+360c459
+<         V1000          Z                 3           1
+---
+>         V1000          Z                 1           1
+362c461
+<     Free table slots: 496
+---
+>     Free table slots: 492
+365,366c464,465
+<     Peak demand: 3.108 megawords
+<     Current cache: 1.096 megawords
+---
+>     Peak demand: 1.084 megawords
+>     Current cache: 3.096 megawords
+381c480
+<         V1000          Y                22           1
+---
+>         V1000          Y                 8           1
+383c482
+<     Free table slots: 496
+---
+>     Free table slots: 492
+386,387c485,486
+<     Peak demand: 959680 words
+<     Current cache: 544320 words
+---
+>     Peak demand: 379520 words
+>     Current cache: 861440 words
+406a506
+>         V1000          Z                 3         100
+408c508
+<     Free table slots: 496
+---
+>     Free table slots: 488
+411,412c511,512
+<     Peak demand: 89440 words
+<     Current cache: 88960 words
+---
+>     Peak demand: 58840 words
+>     Current cache: 89560 words
+434c534
+<         V              T     AVE         1           1
+---
+>         V              Y     AVE        16           1
+436c536
+<     Free table slots: 498
+---
+>     Free table slots: 478
+439,440c539,540
+<     Peak demand: 3 megawords
+<     Current cache: 3 megawords
+---
+>     Peak demand: 1.192 megawords
+>     Current cache: 2.856 megawords
+457c557
+<         A              Y     AVE        47           1
+---
+>         A              Y     AVE         4           1
+459c559
+<     Free table slots: 491
+---
+>     Free table slots: 431
+462,463c562,563
+<     Peak demand: 1.94 megawords
+<     Current cache: 2.884 megawords
+---
+>     Peak demand: 1.08 megawords
+>     Current cache: 2.984 megawords
+476c576
+<         D              Y     AVE        47           1
+---
+>         D              Y     AVE         4           1
+478c578
+<     Free table slots: 489
+---
+>     Free table slots: 442
+481,482c581,582
+<     Peak demand: 2.41 megawords
+<     Current cache: 2.84 megawords
+---
+>     Peak demand: 1.12 megawords
+>     Current cache: 2.992 megawords
+514,517c614,617
+<         A              T     AVE         1           1
+<         B              Y     AVE        71           1
+<         C              Y     AVE        47           1
+<         D              Y     AVE        23           1
+---
+>         A              Y     AVE        33           1
+>         B              Y     AVE        23           1
+>         C              Y     AVE        14           1
+>         D              Y     AVE         4           1
+519c619
+<     Free table slots: 487
+---
+>     Free table slots: 439
+522,523c622,623
+<     Peak demand: 2.845 megawords
+<     Current cache: 2.979 megawords
+---
+>     Peak demand: 2.06 megawords
+>     Current cache: 2.996 megawords
+538,539c638,639
+<         A              Y     AVE        47           1
+<         B              Y     AVE        23           1
+---
+>         A              Y     AVE         4           1
+>         B              Y     AVE         9           1
+541c641
+<     Free table slots: 491
+---
+>     Free table slots: 481
+544,545c644,645
+<     Peak demand: 2.46 megawords
+<     Current cache: 2.794 megawords
+---
+>     Peak demand: 2.18 megawords
+>     Current cache: 2.922 megawords
+551d650
+< ! excercise under the default memory management
+ 
+ 
+! deliberate error
+SET MODE IGNORE
+SET MODE FRUGAL:95
+SET MODE/LAST IGNORE
+ 
+ 
+GO bn_reset bn_stat_precision
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_stat_precision
+GO bn_stat_precision
+! bn_stat_precision.jnl
+! 3/2017 *acm* Ticket 2512
+ 
+! The stat command self-adjusts precision to make the
+! min and max listed distinct
+ 
+let var = {1907.1,1907.05,1907.11}
+stat/br var
+ 
+ Total # of data points: 3 (3*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 1907.05
+ Maximum value: 1907.11
+ Mean    value: 1907.08667 (unweighted average)
+ 
+let var = {1907.001,1907.0005,1907.0011}
+stat/br var
+ 
+ Total # of data points: 3 (3*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 1907.0005
+ Maximum value: 1907.0011
+ Mean    value: 1907.00087 (unweighted average)
+ 
+let var = {221907.001,221907.0005,221907.0011}
+stat/br var
+ 
+ Total # of data points: 3 (3*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 221907.0005
+ Maximum value: 221907.0011
+ Mean    value: 221907.0008666667 (unweighted average)
+ 
+ 
+! STAT/PREC controls the precision, writing more or less digits
+ 
+stat/br/prec=5 var
+ 
+ Total # of data points: 3 (3*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 221907
+ Maximum value: 221907
+ Mean    value: 221907 (unweighted average)
+stat/br/prec=12 var
+ 
+ Total # of data points: 3 (3*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 221907.0005
+ Maximum value: 221907.0011
+ Mean    value: 221907.000867 (unweighted average)
+ 
+! some more examples
+let var = 30*randu(1+i[i=1:10])
+stat/br var
+ 
+ Total # of data points: 10 (10*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 2.7871
+ Maximum value: 27.002
+ Mean    value: 15.77 (unweighted average)
+stat/br/prec=3 var
+ 
+ Total # of data points: 10 (10*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 2.79
+ Maximum value: 27
+ Mean    value: 15.8 (unweighted average)
+stat/br/prec=7 var
+ 
+ Total # of data points: 10 (10*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 2.787087
+ Maximum value: 27.00225
+ Mean    value: 15.76991 (unweighted average)
+stat/br/prec=12 var
+ 
+ Total # of data points: 10 (10*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 2.78708674143
+ Maximum value: 27.002246751
+ Mean    value: 15.76991222 (unweighted average)
+ 
+GO bn_reset bn_plot_vs_with_time
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_plot_vs_with_time
+GO bn_plot_vs_with_time
+! bn_plot_vs_with_time.jnl
+! See ticket 2246
+! 3/27/2017 *ACM*
+ 
+! PLOT/VS plots automatically draw a formatted time axis
+! when one of the variables has calendar units and time origin
+ 
+! (Currently allow just one axis to be time formatted)
+ 
+can mode logo
+ 
+! Date units syntax days since 1982-01-01 is valid
+ 
+define axis/t=1:500:10/units=days/t0="01-jan-1982" tax
+let/units="days since 1982-01-01" mytime2 = t[gt=tax]
+ 
+let myvar2 = RANDU(mytime2)
+plot/vs/line mytime2, myvar2
+plot/vs/over/sym/color=red mytime2[L=1:50:2], myvar2[L=1:50:2]
+ 
+! time axis on the vertical
+ 
+! Date syntax days since 01-jan-1982 is also valid.
+define axis/t=1:500:10/units=days/t0="01-jan-1982" tax
+let/units="days since 01-jan-1982" mytime2 = t[gt=tax]
+ 
+plot/vs/line myvar2, mytime2
+plot/vs/over/sym/color=red/line  myvar2[L=1:50:2],  mytime2[L=1:50:2]
+ 
+! LAS style plots:
+! Dataset with pressure,temperature on ZT grid. Define a time variable
+! send it to PLOT/VS to draw plots with time-formatted axis, plain
+! 2-variable plots and plot/vs plots.
+! Define variables as if gridded T-Z data in spurs dataset
+ 
+define axis/t="25-JAN-2017:23:00":"02-FEB-2017 10:00":12/units=hours/t0=1-jan-2017 time
+define axis/z=1:50:4/units=m/depth zaxis
+let/title=pressure/units=m pres=z[gz=zaxis] + 0.3*randu(t[gt=time])
+let/title=temperature/units="Deg C" temp = 20 - z[gz=zaxis] + 10*randu(t[gt=time])
+ 
+! Define a time variable
+let/units="`pres,return=tunits` since `pres,return=t0`" ttvar = t[gt=temp] + 0*temp
+ !-> DEFINE VARIABLE/units="HOURS since 1-JAN-2017" ttvar = t[gt=temp] + 0*temp
+ 
+! time on horizontal axis
+set v ul; plot/vs/ribbon/sym=17/thick/vlim=50:0  ttvar, pres, temp
+ 
+! time on vertical axis
+set v ur; plot/vs/ribbon/sym=17/thick/hlim=50:0  pres, ttvar, temp
+ 
+! More time axis styles
+ 
+define axis/t=1-jan-2016:1-jan-2017:45/units=days/t0=1-jan-1970 time
+let/title=pressure/units=m pres=z[gz=zaxis] + 0.3*randu(t[gt=time])
+let/title=temperature/units="Deg C" temp = 20 - z[gz=zaxis] + 10*randu(t[gt=time])
+let/units="`pres,return=tunits` since `pres,return=t0`" ttvar = t[gt=temp] + 0*temp
+ !-> DEFINE VARIABLE/units="DAYS since 1-JAN-1970" ttvar = t[gt=temp] + 0*temp
+ 
+set v ll; plot/vs/ribbon/sym=17/thick/vlim=50:0  ttvar, pres, temp
+ 
+define axis/t=1-jan-2001:1-jan-2012:181/units=days/t0=1-jan-1970 time
+let/title=pressure/units=m pres=z[gz=zaxis] + 0.3*randu(t[gt=time])
+let/title=temperature/units="Deg C" temp = 20 - z[gz=zaxis] + 10*randu(t[gt=time])
+let/units="`pres,return=tunits` since `pres,return=t0`" ttvar = t[gt=temp] + 0*temp
+ !-> DEFINE VARIABLE/units="DAYS since 1-JAN-1970" ttvar = t[gt=temp] + 0*temp
+ 
+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
+ 
+ 
+sh func innerproduct*
+INNERPRODUCT(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
+    VAR1: Variable 1
+    VAR2: Variable 2
+INNERPRODUCT_Y(VAR1,VAR2)
+    Compute the inner product of two variables along Y-axis
+    VAR1: Variable 1
+    VAR2: Variable 2
+INNERPRODUCT_Z(VAR1,VAR2)
+    Compute the inner product of two variables along Z-axis
+    VAR1: Variable 1
+    VAR2: Variable 2
+INNERPRODUCT_T(VAR1,VAR2)
+    Compute the inner product of two variables along T-axis
+    VAR1: Variable 1
+    VAR2: Variable 2
+INNERPRODUCT_E(VAR1,VAR2)
+    Compute the inner product of two variables along E-axis
+    VAR1: Variable 1
+    VAR2: Variable 2
+INNERPRODUCT_F(VAR1,VAR2)
+    Compute the inner product of two variables along F-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
+! 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  innerproduct(var1, var2, 1)
+             VARIABLE : INNERPRODUCT(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)
+          15.00000
+ 
+let var1 = y[gy=ypax]
+let var2 = 1+0*y[gy=ypax]
+list var1, var2
+             Y: 0.05 to 0.35
+ 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  innerproduct(var1, var2, 2)
+             VARIABLE : INNERPRODUCT(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  innerproduct(var1, var2, 3)
+             VARIABLE : INNERPRODUCT(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  innerproduct(var1, var2, 4)
+             VARIABLE : INNERPRODUCT(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  innerproduct(var1, var2, 5)
+             VARIABLE : INNERPRODUCT(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  innerproduct(var1, var2, 6)
+             VARIABLE : INNERPRODUCT(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.35
+             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 innerproduct(axy, bxz, 1)
+             VARIABLE : INNERPRODUCT(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 innerproduct(axy, byz, 2)
+             VARIABLE : INNERPRODUCT(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_inner = innerproduct(axyt, byz, 2)
+save/file=a.nc/clobber multi_inner
+ 
+can var multi_inner
+use a.nc
+!  This should be the same as innerproduct(axy, byz, 2)
+list/l=1 multi_inner
+             VARIABLE : INNERPRODUCT(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
+ 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 innerproduct(axz, bzt, 3)
+             VARIABLE : INNERPRODUCT(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 innerproduct(ayt, bzt, 4)
+             VARIABLE : INNERPRODUCT(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_inner = innerproduct(axyt, bzt, 4)
+save/file=a.nc/clobber multi_inner
+ 
+can var multi_inner
+use a.nc
+!  This should be the same as innerproduct(ayt, bzt, 4)
+list/i=1 multi_inner
+             VARIABLE : INNERPRODUCT(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 innerproduct(ayf, bfe, 6)
+             VARIABLE : INNERPRODUCT(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 innerproduct(aze, bfe, 5)
+             VARIABLE : INNERPRODUCT(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_inner = innerproduct(azex, bfe, 5)
+save/file=a.nc/clobber multi_inner
+ 
+can var multi_inner
+use a.nc
+!  This should be the same as innerproduct(azex, bfe, 5)
+list/i=1 multi_inner
+             VARIABLE : INNERPRODUCT(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
+Starting test: bn_cache_management
+GO bn_cache_management
+! 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)
+ 
+! 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.
+! It is supposed to chose the cached result that has not been used for the
+! longest time, AND that is not being "protected" because it is needed in a
+! pending calculation.  This script is intended to exercise that behavior.
+ 
+! Memory footprint needed:
+! Each dataset contains 7 variables of 1 Mword each
+! VTREE reveals that the "result" variable requires 78 intermediate variables
+! of size 1Mword (plus 7 small ones)
+! Of these only 12 variables needed in the top level "result" sum calculation
+! Each of the top level variables in turn requires ?25? component variables
+! But the top level variables need these components only in sequence.
+! So if no split-gather is performed, Ferret requires ~12+25=37 Mwords
+ 
+DEFINE SYMBOL saved_memory_size = ($FERRET_MEMORY)
+ !-> DEFINE SYMBOL saved_memory_size = 3
+ 
+SET MEMORY/SIZE=20
+CANCEL MEMORY/ALL
+ 
+DEFINE SYMBOL nsets = 20
+ 
+define axis/x=1:1000000:1 xmillion
+ 
+! aside: to demonstrate lmitations of ferret memory management prior to
+! dynamic memory, use
+!     yes? set memory/size=37
+!     yes? GO test_auto_cache_delete 0 20
+ 
+! see if the test files already exist
+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
+ELSE
+ENDIF
+ 
+! open the many input datasets
+REPEAT/k=1:($nsets)  USE tmp/test_auto_cache_`k`.nc
+ !-> REPEAT/k=1:20  USE tmp/test_auto_cache_`k`.nc
+!-> REPEAT: K=1
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_1.nc
+!-> REPEAT: K=2
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_2.nc
+!-> REPEAT: K=3
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_3.nc
+!-> REPEAT: K=4
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_4.nc
+!-> REPEAT: K=5
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_5.nc
+!-> REPEAT: K=6
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_6.nc
+!-> REPEAT: K=7
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_7.nc
+!-> REPEAT: K=8
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_8.nc
+!-> REPEAT: K=9
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_9.nc
+!-> REPEAT: K=10
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_10.nc
+!-> REPEAT: K=11
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_11.nc
+!-> REPEAT: K=12
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_12.nc
+!-> REPEAT: K=13
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_13.nc
+!-> REPEAT: K=14
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_14.nc
+!-> REPEAT: K=15
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_15.nc
+!-> REPEAT: K=16
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_16.nc
+!-> REPEAT: K=17
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_17.nc
+!-> REPEAT: K=18
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_18.nc
+!-> REPEAT: K=19
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_19.nc
+!-> REPEAT: K=20
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_20.nc
+ 
+! define a huge tree of variables
+let  r_one      = RESHAPE(one,X[gx=xmillion])
+let  r_ten      = RESHAPE(ten,X[gx=xmillion])
+let  r_hundred  = RESHAPE(hundred,X[gx=xmillion])
+let  r_thousand = RESHAPE(thousand,X[gx=xmillion])
+let  r_tenthou  = RESHAPE(tenthou,X[gx=xmillion])
+let  r_hundthou = RESHAPE(hundthou,X[gx=xmillion])
+let  r_million  = RESHAPE(million,X[gx=xmillion])
+ 
+let a_one     = r_one[X=@ave]
+let a_ten     = r_ten[X=@ave]
+let a_hundred = r_hundred[X=@ave]
+let a_thousand= r_thousand[X=@ave]
+let a_tenthou = r_tenthou[X=@ave]
+let a_hundthou= r_hundthou[X=@ave]
+let a_million = r_million[X=@ave]
+ 
+let one_2      = a_one
+let ten_2      = a_ten
+let hundred_2  = a_hundred
+let thousand_2 = a_thousand
+let tenthou_2  = a_tenthou
+let hundthou_2 = a_hundthou
+let million_2  = a_million
+ 
+let one_3      = a_one
+let ten_3      = a_ten
+let hundred_3  = a_hundred
+let thousand_3 = a_thousand
+let tenthou_3  = a_tenthou
+let hundthou_3 = a_hundthou
+let million_3  = a_million
+ 
+let result_31 = \
+one_3 + ten_3 + hundred_3 + thousand_3 + tenthou_3 + hundthou_3 + million_3
+ 
+let result_21 = \
+one_2 + ten_2 + hundred_2 + thousand_2 + tenthou_2 + hundthou_2 + million_2
+ 
+let result_32 = \
+one_3 + ten_3 + hundred_3 + thousand_3 + tenthou_3 + hundthou_3 + million_3
+ 
+let result_22 = \
+one_2 + ten_2 + hundred_2 + thousand_2 + tenthou_2 + hundthou_2 + million_2
+ 
+let result = result_31 + result_21 + result_32 + result_22 + \
+a_one + a_ten + a_hundred + a_thousand + a_tenthou + a_hundthou + a_million
+ 
+! process all of the datasets in turn
+! ==> WATCH HOW THE NUMBER OF FREE SLOTS IS PROGRESSIVELY EXHAUSTED
+! This proves that we are exercising the limits of table space
+sp rm -f test_auto_cache.out
+REPEAT/k=1:($nsets)  \
+(list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_`k`.nc];\
+SHOW MEMORY/DIAG)
+ !-> REPEAT/k=1:20  (list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_`k`.nc];SHOW MEMORY/DIAG)
+!-> REPEAT: K=1
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_1.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 432
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 14.21004 megawords
+!-> REPEAT: K=2
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_2.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 385
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 7.42008 megawords
+!-> REPEAT: K=3
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_3.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 331
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 7.63012 megawords
+!-> REPEAT: K=4
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_4.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 277
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 7.84016 megawords
+!-> REPEAT: K=5
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_5.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 223
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.0502 megawords
+!-> REPEAT: K=6
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_6.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 169
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.26024 megawords
+!-> REPEAT: K=7
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_7.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 115
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.47028 megawords
+!-> REPEAT: K=8
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_8.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 61
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.68032 megawords
+!-> REPEAT: K=9
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_9.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 7
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.89036 megawords
+!-> REPEAT: K=10
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_10.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=11
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_11.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=12
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_12.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=13
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_13.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=14
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_14.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=15
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_15.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=16
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_16.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=17
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_17.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=18
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_18.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=19
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_19.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=20
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_20.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+ 
+! success
+vtree result
+   in default dataset test_auto_cache_20
+   RESULT = RESULT_31 + RESULT_21 + RESULT_32 + RESULT_22 + A_ONE + A_TEN + A_HUNDRED + A_THOUSAND + A_TENTHOU + A_HUNDTHOU + A_MILLION
+     RESULT_31 = ONE_3 + TEN_3 + HUNDRED_3 + THOUSAND_3 + TENTHOU_3 + HUNDTHOU_3 + MILLION_3
+       ONE_3 = A_ONE
+         A_ONE = R_ONE[X=@AVE]
+           R_ONE = RESHAPE(ONE,X[GX=XMILLION])
+             (C001,V002) = RESHAPE(ONE,X[GX=XMILLION])
+               (C013,V002) = X[GX=XMILLION]
+       TEN_3 = A_TEN
+         A_TEN = R_TEN[X=@AVE]
+           R_TEN = RESHAPE(TEN,X[GX=XMILLION])
+             (C001,V005) = RESHAPE(TEN,X[GX=XMILLION])
+               (C013,V005) = X[GX=XMILLION]
+       HUNDRED_3 = A_HUNDRED
+         A_HUNDRED = R_HUNDRED[X=@AVE]
+           R_HUNDRED = RESHAPE(HUNDRED,X[GX=XMILLION])
+             (C001,V008) = RESHAPE(HUNDRED,X[GX=XMILLION])
+               (C017,V008) = X[GX=XMILLION]
+       THOUSAND_3 = A_THOUSAND
+         A_THOUSAND = R_THOUSAND[X=@AVE]
+           R_THOUSAND = RESHAPE(THOUSAND,X[GX=XMILLION])
+             (C001,V011) = RESHAPE(THOUSAND,X[GX=XMILLION])
+               (C018,V011) = X[GX=XMILLION]
+       TENTHOU_3 = A_TENTHOU
+         A_TENTHOU = R_TENTHOU[X=@AVE]
+           R_TENTHOU = RESHAPE(TENTHOU,X[GX=XMILLION])
+             (C001,V014) = RESHAPE(TENTHOU,X[GX=XMILLION])
+               (C017,V014) = X[GX=XMILLION]
+       HUNDTHOU_3 = A_HUNDTHOU
+         A_HUNDTHOU = R_HUNDTHOU[X=@AVE]
+           R_HUNDTHOU = RESHAPE(HUNDTHOU,X[GX=XMILLION])
+             (C001,V017) = RESHAPE(HUNDTHOU,X[GX=XMILLION])
+               (C018,V017) = X[GX=XMILLION]
+       MILLION_3 = A_MILLION
+         A_MILLION = R_MILLION[X=@AVE]
+           R_MILLION = RESHAPE(MILLION,X[GX=XMILLION])
+             (C001,V020) = RESHAPE(MILLION,X[GX=XMILLION])
+               (C017,V020) = X[GX=XMILLION]
+     RESULT_21 = ONE_2 + TEN_2 + HUNDRED_2 + THOUSAND_2 + TENTHOU_2 + HUNDTHOU_2 + MILLION_2
+       ONE_2 = A_ONE
+         A_ONE =  (defined above)
+       TEN_2 = A_TEN
+         A_TEN =  (defined above)
+       HUNDRED_2 = A_HUNDRED
+         A_HUNDRED =  (defined above)
+       THOUSAND_2 = A_THOUSAND
+         A_THOUSAND =  (defined above)
+       TENTHOU_2 = A_TENTHOU
+         A_TENTHOU =  (defined above)
+       HUNDTHOU_2 = A_HUNDTHOU
+         A_HUNDTHOU =  (defined above)
+       MILLION_2 = A_MILLION
+         A_MILLION =  (defined above)
+     RESULT_32 = ONE_3 + TEN_3 + HUNDRED_3 + THOUSAND_3 + TENTHOU_3 + HUNDTHOU_3 + MILLION_3
+       ONE_3 =  (defined above)
+       TEN_3 =  (defined above)
+       HUNDRED_3 =  (defined above)
+       THOUSAND_3 =  (defined above)
+       TENTHOU_3 =  (defined above)
+       HUNDTHOU_3 =  (defined above)
+       MILLION_3 =  (defined above)
+     RESULT_22 = ONE_2 + TEN_2 + HUNDRED_2 + THOUSAND_2 + TENTHOU_2 + HUNDTHOU_2 + MILLION_2
+       ONE_2 =  (defined above)
+       TEN_2 =  (defined above)
+       HUNDRED_2 =  (defined above)
+       THOUSAND_2 =  (defined above)
+       TENTHOU_2 =  (defined above)
+       HUNDTHOU_2 =  (defined above)
+       MILLION_2 =  (defined above)
+     A_ONE =  (defined above)
+     A_TEN =  (defined above)
+     A_HUNDRED =  (defined above)
+     A_THOUSAND =  (defined above)
+     A_TENTHOU =  (defined above)
+     A_HUNDTHOU =  (defined above)
+     A_MILLION =  (defined above)
+! show that the calculation result never varied
+spawn cat test_auto_cache.out
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+ 
+! clean up
+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 in 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
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+ 
+! version 2.3 requires exit/command *sh* 3/92
+exit/command
+yes? ! bn_all_ef_shell.jnl
+yes? ! 5/05 *acm*
+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     
+
+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
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO bn_ef_external_functions.jnl
+! Tests of external functions that are distributed as shared object files.
+ 
+! Jon's benchmarks
+go bench_examples
+set mode ignore_error
+show func/ext add_9
+ADD_9(A,B,C,D,E,F,G,H,I)
+    (demonstration function) adds 9 arguments
+show func/ext ave*
+AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
+    Compute average of a variable in each cell of output time axis
+    TPTS: T coordinates of scattered input time coordinates
+    VPTS: Variable at times in TPTS
+    TAXIS: Output time axis
+AVET(A)
+    (demonstration function) returns the time average
+    A: data to be averaged over the time axis
+show func pass_thru
+PASS_THRU(A)
+    (demonstration function) sets result equal to input
+    A: this arg is passed through
+show func sto*
+STORAGE(A)
+    sets result equal to input/10
+    A: input
+ 
+go bench_add_9
+! Bench_add_9.jnl
+!  ACM  8/99
+!  benchmark script for testing external function add_9.
+! Note: bench_add_9_visual contains plots of similar computations
+ 
+set mode ignore_errors
+ 
+ 
+can region
+use coads_climatology
+set region/x=151E:179E/y=0
+ 
+let a1 = sst[d=1,l=1]
+let a2 = sst[d=1,l=2]
+let a3 = sst[d=1,l=3]
+ 
+let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
+ 
+list a
+             VARIABLE : ADD_9(A1,A2,A3,A1,A2,A3,A1,A2,A3)
+             SUBSET   : 15 points (LONGITUDE)
+             LATITUDE : 1S
+             TIME     : 16-JAN 06:00
+                1S    
+                45
+ 151E   / 66:  263.6
+ 153E   / 67:  264.5
+ 155E   / 68:  264.2
+ 157E   / 69:  261.3
+ 159E   / 70:  260.9
+ 161E   / 71:  262.4
+ 163E   / 72:  264.0
+ 165E   / 73:  261.1
+ 167E   / 74:  260.9
+ 169E   / 75:  261.0
+ 171E   / 76:  259.3
+ 173E   / 77:  257.9
+ 175E   / 78:  257.0
+ 177E   / 79:  259.1
+ 179E   / 80:  254.8
+list  a - 3 * sst[d=1,l=1:3 at sum]
+             VARIABLE : A - 3 * SST[D=coads_climatology,L=1:3 at SUM]
+             SUBSET   : 15 points (LONGITUDE)
+             LATITUDE : 1S
+             TIME     : 16-JAN 06:00
+                 1S    
+                 45
+ 151E   / 66:  0.0000
+ 153E   / 67:  0.0000
+ 155E   / 68:  0.0000
+ 157E   / 69:  0.0000
+ 159E   / 70:  0.0000
+ 161E   / 71:  0.0000
+ 163E   / 72:  0.0000
+ 165E   / 73:  0.0000
+ 167E   / 74:  0.0000
+ 169E   / 75:  0.0000
+ 171E   / 76:  0.0000
+ 173E   / 77:  0.0000
+ 175E   / 78:  0.0000
+ 177E   / 79:  0.0000
+ 179E   / 80:  0.0000
+set mode/last ignore_errors
+go bench_avet
+! Bench_avet.jnl
+!  ACM  8/99
+!  benchmark script for testing external function avet.
+! Note: bench_avet_visual.jnl contains plots of similar computations
+ 
+set mode ignore_errors
+ 
+can region
+use coads_climatology
+set region/x=151E:179E/y=0
+ 
+let a = avet(sst)
+list a
+             VARIABLE : AVET(SST)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 15 points (LONGITUDE)
+             LATITUDE : 1S
+                1S    
+                45
+ 151E   / 66:  29.28
+ 153E   / 67:  29.39
+ 155E   / 68:  29.35
+ 157E   / 69:  29.03
+ 159E   / 70:  28.99
+ 161E   / 71:  29.15
+ 163E   / 72:  29.33
+ 165E   / 73:  29.01
+ 167E   / 74:  28.99
+ 169E   / 75:  29.00
+ 171E   / 76:  28.81
+ 173E   / 77:  28.66
+ 175E   / 78:  28.56
+ 177E   / 79:  28.79
+ 179E   / 80:  28.31
+list a - sst[l=@ave]
+             VARIABLE : A - SST[L=@AVE]
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 15 points (LONGITUDE)
+             LATITUDE : 1S
+             TIME     : 01-JAN 00:45 to 01-APR 08:12
+                  1S      
+                  45
+ 151E   / 66: -3.553E-15
+ 153E   / 67:  0.000E+00
+ 155E   / 68: -3.553E-15
+ 157E   / 69:  0.000E+00
+ 159E   / 70: -3.553E-15
+ 161E   / 71:  0.000E+00
+ 163E   / 72: -3.553E-15
+ 165E   / 73: -3.553E-15
+ 167E   / 74: -3.553E-15
+ 169E   / 75: -3.553E-15
+ 171E   / 76:  0.000E+00
+ 173E   / 77: -3.553E-15
+ 175E   / 78:  3.553E-15
+ 177E   / 79:  0.000E+00
+ 179E   / 80:  0.000E+00
+ 
+can region
+let a = x[i=1:9,k=1:5] + t[l=1:5]
+let b = x[i=1:9,k=1:5]
+let c = avet(a)
+list b, c
+             X: 0.5 to 9.5
+ Column  1: B is X[I=1:9,K=1:5]
+ Column  2: C is AVET(A)
+             B     C
+1   / 1:  1.000   4.00
+2   / 2:  2.000   5.00
+3   / 3:  3.000   6.00
+4   / 4:  4.000   7.00
+5   / 5:  5.000   8.00
+6   / 6:  6.000   9.00
+7   / 7:  7.000  10.00
+8   / 8:  8.000  11.00
+9   / 9:  9.000  12.00
+ 
+set mode/last ignore_errors
+go bench_pass_thru
+! Bench_pass_thru.jnl
+!  ACM  8/99
+!  benchmark script for testing external function pass_thru.
+! Note: bench_pass_thru_visual.jnl contains plots of similar computations
+ 
+set mode ignore_errors
+ 
+can region
+let a = pass_thru(x)
+list a[i=1:20]
+             VARIABLE : PASS_THRU(X)
+             SUBSET   : 20 points (X)
+ 1    /  1:   1.00
+ 2    /  2:   2.00
+ 3    /  3:   3.00
+ 4    /  4:   4.00
+ 5    /  5:   5.00
+ 6    /  6:   6.00
+ 7    /  7:   7.00
+ 8    /  8:   8.00
+ 9    /  9:   9.00
+ 10   / 10:  10.00
+ 11   / 11:  11.00
+ 12   / 12:  12.00
+ 13   / 13:  13.00
+ 14   / 14:  14.00
+ 15   / 15:  15.00
+ 16   / 16:  16.00
+ 17   / 17:  17.00
+ 18   / 18:  18.00
+ 19   / 19:  19.00
+ 20   / 20:  20.00
+set region/i=1:20
+list sin(a)
+             VARIABLE : SIN(A)
+             SUBSET   : 20 points (X)
+ 1    /  1:  0.8415
+ 2    /  2:  0.9093
+ 3    /  3:  0.1411
+ 4    /  4: -0.7568
+ 5    /  5: -0.9589
+ 6    /  6: -0.2794
+ 7    /  7:  0.6570
+ 8    /  8:  0.9894
+ 9    /  9:  0.4121
+ 10   / 10: -0.5440
+ 11   / 11: -1.0000
+ 12   / 12: -0.5366
+ 13   / 13:  0.4202
+ 14   / 14:  0.9906
+ 15   / 15:  0.6503
+ 16   / 16: -0.2879
+ 17   / 17: -0.9614
+ 18   / 18: -0.7510
+ 19   / 19:  0.1499
+ 20   / 20:  0.9129
+can var/all
+can region
+ 
+use coads_climatology
+let a = pass_thru(sst[l=@ave,y=@sbx:11])
+list/x=50 a
+             VARIABLE : PASS_THRU(SST[L=@AVE,Y=@SBX:11])
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 90 points (LATITUDE)
+             LONGITUDE: 49E
+             TIME     : 01-JAN 00:45 to 01-APR 08:12
+               49E   
+               15
+ 89N   / 90:   ....
+ 87N   / 89:   ....
+ 85N   / 88:   ....
+ 83N   / 87:   ....
+ 81N   / 86:   ....
+ 79N   / 85:   ....
+ 77N   / 84:   ....
+ 75N   / 83:   ....
+ 73N   / 82:   ....
+ 71N   / 81:   ....
+ 69N   / 80:   ....
+ 67N   / 79:   ....
+ 65N   / 78:   ....
+ 63N   / 77:   ....
+ 61N   / 76:   ....
+ 59N   / 75:   ....
+ 57N   / 74:   ....
+ 55N   / 73:   ....
+ 53N   / 72:   ....
+ 51N   / 71:   ....
+ 49N   / 70:   ....
+ 47N   / 69:   ....
+ 45N   / 68:   ....
+ 43N   / 67:   ....
+ 41N   / 66:   ....
+ 39N   / 65:   ....
+ 37N   / 64:   ....
+ 35N   / 63:   ....
+ 33N   / 62:   ....
+ 31N   / 61:   ....
+ 29N   / 60:   ....
+ 27N   / 59:   ....
+ 25N   / 58:   ....
+ 23N   / 57:   ....
+ 21N   / 56:   ....
+ 19N   / 55:   ....
+ 17N   / 54:   ....
+ 15N   / 53:   ....
+ 13N   / 52:   ....
+ 11N   / 51:   ....
+ 9N    / 50:   ....
+ 7N    / 49:   ....
+ 5N    / 48:  26.94
+ 3N    / 47:  27.22
+ 1N    / 46:  27.48
+ 1S    / 45:  27.67
+ 3S    / 44:  27.78
+ 5S    / 43:  27.92
+ 7S    / 42:  28.04
+ 9S    / 41:  28.12
+ 11S   / 40:  28.18
+ 13S   / 39:  28.14
+ 15S   / 38:  28.03
+ 17S   / 37:  27.82
+ 19S   / 36:  27.45
+ 21S   / 35:  27.04
+ 23S   / 34:  26.52
+ 25S   / 33:  25.86
+ 27S   / 32:  25.09
+ 29S   / 31:  24.17
+ 31S   / 30:  23.04
+ 33S   / 29:  21.37
+ 35S   / 28:  19.60
+ 37S   / 27:  17.68
+ 39S   / 26:  15.76
+ 41S   / 25:  13.87
+ 43S   / 24:  11.98
+ 45S   / 23:  10.18
+ 47S   / 22:   8.45
+ 49S   / 21:   6.82
+ 51S   / 20:   5.33
+ 53S   / 19:   4.03
+ 55S   / 18:   3.19
+ 57S   / 17:   2.42
+ 59S   / 16:   ....
+ 61S   / 15:   ....
+ 63S   / 14:   ....
+ 65S   / 13:   ....
+ 67S   / 12:   ....
+ 69S   / 11:   ....
+ 71S   / 10:   ....
+ 73S   /  9:   ....
+ 75S   /  8:   ....
+ 77S   /  7:   ....
+ 79S   /  6:   ....
+ 81S   /  5:   ....
+ 83S   /  4:   ....
+ 85S   /  3:   ....
+ 87S   /  2:   ....
+ 89S   /  1:   ....
+let a = pass_thru(sst)
+set region/@w
+list/x=50 a[l=1]
+             VARIABLE : PASS_THRU(SST)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 90 points (LATITUDE)
+             LONGITUDE: 49E
+             TIME     : 16-JAN 06:00
+               49E   
+               15
+ 89N   / 90:   ....
+ 87N   / 89:   ....
+ 85N   / 88:   ....
+ 83N   / 87:   ....
+ 81N   / 86:   ....
+ 79N   / 85:   ....
+ 77N   / 84:   ....
+ 75N   / 83:   ....
+ 73N   / 82:   0.59
+ 71N   / 81:   0.62
+ 69N   / 80:   0.45
+ 67N   / 79:   ....
+ 65N   / 78:   ....
+ 63N   / 77:   ....
+ 61N   / 76:   ....
+ 59N   / 75:   ....
+ 57N   / 74:   ....
+ 55N   / 73:   ....
+ 53N   / 72:   ....
+ 51N   / 71:   ....
+ 49N   / 70:   ....
+ 47N   / 69:   ....
+ 45N   / 68:   3.32
  43N   / 67:   4.72
  41N   / 66:   4.84
  39N   / 65:   8.63
@@ -96053,48 +104693,11 @@ set mode/last ignore_errors
 !
 !!!!!!!!!!!!!!!!!!!!!!
  
-! Ansley's benchmarks
-! move bench tests that test internal external functions to their
-! own .jnl file  bn_internal_external_functions
-!
-! 4/2006 all efs distributed with Ferret except writev5d and the
-!        examples tested in bench_examples.jnl are now internally linked.
- 
-GO bn_reset
-cancel mode verify
-go bench_v5d
-! benchmark for Vis5D external function
-! 5/99 ACM
- 
- 
-!  Write data to a Vis5D file.  The first argument to the
-!  GO script is the file, arguments 2 through 9 are variable names to be written.
-! 7/2007 Funtion doesnt want to write a variable that doesnt have a vertical variation.
-!        To get a basic test of the function, make some data on a regularly-spaced xy grid.
- 
-can region
- set mode ignore_error
- 
-use gt4d011.cdf
-def axis/y=1:100:1/units=degrees yax
-let tr = temp[gy=yax at asn]
-go vis5d_write " " tr
-To view the file with Vis5D say:   GO vis5d_start vis5d_out.v5d
- 
-set mode/last ignore_error
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_ef_v5d_strings.jnl
-! bn_ef_v5d_strings.jnl
-! Taken out of bn_strings, because it calls so file writev5d.
-! testing string argument to external function.
-! 5/4/05 acm
-exit/script ! I dont have writev5d on this machine.
+! 12/16 No other external functions are distributed. Remove further references.
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_fcn_calls.jnl
 ! Simple tests of external functions
 ! these are not otherwise tested in the benchmarkd
@@ -96126,7 +104729,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96151,7 +104754,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96175,7 +104778,7 @@ variables:
 		B:long_name = "\"one line of text\"" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96214,7 +104817,7 @@ variables:
 		D:history = "From test_string" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96249,7 +104852,7 @@ variables:
 		B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96290,7 +104893,7 @@ variables:
 		V:long_name = "T[GT=MONTH_IRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96347,7 +104950,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96404,7 +105007,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96459,7 +105062,7 @@ variables:
 		T2:long_name = "Z[GZ=ZIRR]" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96507,7 +105110,7 @@ variables:
 		V:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96601,7 +105204,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96671,7 +105274,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96722,7 +105325,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96797,7 +105400,7 @@ variables:
 		A:long_name = "T[GT=TIME]" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96824,7 +105427,7 @@ variables:
 		X_:long_name_mod = "axis ABSTRACT" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 		:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
 data:
@@ -96848,7 +105451,7 @@ variables:
 		A:history = "From x" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-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:
@@ -96875,11 +105478,11 @@ variables:
 		A:history = "From t0_cdc" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_long_revision_num.jnl --- history attribute
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 bn_bounds_defineax.jnl --- N+1 def of bounds.
 netcdf irrxzt {
 dimensions:
@@ -96910,7 +105513,7 @@ variables:
 		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -96982,7 +105585,7 @@ variables:
 		VAR_B:long_name = "my strings" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97026,7 +105629,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97068,7 +105671,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97176,7 +105779,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
@@ -97217,7 +105820,7 @@ variables:
 		Elev:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 7 outtput flags to control attribute output
@@ -97240,7 +105843,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97266,7 +105869,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97286,7 +105889,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97307,7 +105910,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97350,7 +105953,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 12 Check that settings hold for child axis.
@@ -97390,7 +105993,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -97428,7 +106031,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 14 attributes of data from ez data.
@@ -97442,22 +106045,22 @@ variables:
 	float A1(AX047) ;
 		A1:missing_value = -1.e+34f ;
 		A1:_FillValue = -1.e+34f ;
-		A1:long_name = "A1" ;
+		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 ;
-		A2:long_name = "A2" ;
+		A2:long_name = "a2" ;
 		A2:history = "From EZ.DAT" ;
 	float A3(AX047) ;
 		A3:missing_value = -1.e+34f ;
 		A3:_FillValue = -1.e+34f ;
-		A3:long_name = "A3" ;
+		A3:long_name = "a3" ;
 		A3:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97490,7 +106093,7 @@ variables:
 		V4:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97516,7 +106119,7 @@ variables:
 		A:four = "theory" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97562,7 +106165,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 		:simulation = "K-Bay OAR3d model (200m)" ;
 		:start_date = "980105000000" ;
@@ -97669,7 +106272,7 @@ variables:
 		TEMP:units = "deg. C" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 		:dt_internal = 15. ;
 }
@@ -97711,7 +106314,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97794,7 +106397,7 @@ variables:
 		RIGUE:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97831,7 +106434,7 @@ variables:
 		B:long_name = "hello" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97871,7 +106474,7 @@ variables:
 		VWND:units = "M/S" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97922,7 +106525,7 @@ variables:
 		T2:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -97981,7 +106584,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -98026,7 +106629,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -98069,7 +106672,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -98104,7 +106707,7 @@ variables:
 		TEMP:units = "DEG C" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -98138,7 +106741,7 @@ variables:
 		TWO:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 27 attributes of  user-defined axes
@@ -98168,7 +106771,7 @@ variables:
 		AXY:long_name = "RESHAPE (A,RVAR)" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 28 Define a new global attribute
@@ -98197,7 +106800,7 @@ variables:
 		BROILED:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 		:glob = "Global attribute" ;
 		:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -98258,7 +106861,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -98303,7 +106906,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -98322,7 +106925,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -98352,7 +106955,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -98382,7 +106985,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -98435,7 +107038,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -98477,7 +107080,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -98495,7 +107098,7 @@ variables:
 		V:long_name = "Y[GY=YAXIS]" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 err611_set_var_ez.jnl --- 
@@ -98514,7 +107117,7 @@ variables:
 		MY_ASC:history = "From dat.dat" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -98532,7 +107135,7 @@ variables:
 		MY_UNF:history = "From unf.dat" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
@@ -98549,7 +107152,7 @@ variables:
 		A:long_name = "{1.1,2.2,3.3}" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -98570,7 +107173,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 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -98626,14 +107229,14 @@ variables:
 		time1478:point_spacing = "even" ;
 		time1478:standard_name = "time" ;
 	double newvar(time1478, zt, lat1_5, lon1_5) ;
-		newvar:missing_value = -999. ;
-		newvar:_FillValue = -999. ;
+		newvar:missing_value = -1.e+34 ;
+		newvar:_FillValue = -1.e+34 ;
 		newvar:long_name = "outgoing longwave radiation" ;
 		newvar:units = "watts/m2" ;
 		newvar:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
@@ -98660,7 +107263,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -98687,7 +107290,7 @@ variables:
 		A:long_name = "X[GX=X100] + T[GT=T31]" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
@@ -98753,7 +107356,7 @@ variables:
 		ZUP:long_name = "Z[GZ=ZAXUP]" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
@@ -98785,7 +107388,7 @@ variables:
 		Y_:long_name_mod = "axis YFIFTEEN" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -98818,7 +107421,7 @@ variables:
 		XYTVAR:history = "From bn_strides" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -98843,7 +107446,7 @@ variables:
 		TIME:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -98881,7 +107484,7 @@ variables:
 		time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -98907,7 +107510,7 @@ variables:
 		MYVAR:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -98921,7 +107524,7 @@ variables:
 		MYVAR:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7 (beta/dbg) 15-Jun-16" ;
+		:history = "FERRET V7.1 (beta/debug) 17-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 -----
@@ -98935,29 +107538,33 @@ yes?
 yes? 
 yes? GO bn_startupfile
  	NOAA/PMEL TMAP
- 	FERRET v7 (beta/dbg)
- 	Linux 2.6.32-642.1.1.el6.x86_64 64-bit - 06/15/16
- 	15-Jun-16 12:07     
+ 	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     
 
 CAN MODE VERIFY
- Current size of FERRET memory cache: 31 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 31 megawords
+    Peak demand: 0 words
+    Current cache: 0 words
 PPL$XPIXEL = "656"
 PPL$YPIXEL = "492"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7"
-FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7.1"
+FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "31"
-SESSION_DATE = "15-Jun-16"
-SESSION_TIME = "12:07"
-SESSION_PID = "3434"
-DELTA_CPU = "0.05999"
-CLOCK_SECS = "0.289"
-CURRENT_DATE = "15-Jun-16"
-CURRENT_TIME = "12:07:45"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
+PEAK_MEMORY = "0"
+SPAWN_STATUS = "1"
 GO_FILE = "./bn_startupfile.jnl"
 LAST_GO_FILE = "./bn_startupfile.jnl"
 PPL$FORMAT = "(3F10.2)"
@@ -98978,7 +107585,7 @@ PPL$VIEW_X = "0.000"
 PPL$VIEW_Y = "0.000"
 PPL$VIEW_Z = "0.000"
 PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "15-Jun-16:12:07"
+WIN_TITLE = "17-Apr-17:16:50"
 VP_WIDTH = "10.2"
 VP_HEIGHT = "8.8"
 VP_SCALE = "1"
@@ -98989,27 +107596,27 @@ VP_XHI = "1"
 VP_YLO = "0"
 VP_YHI = "1"
       MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
-      VERIFY        CANCELLED      DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
+      DIAGNOSTIC    CANCELED            99
+      VERIFY        CANCELED       DEFAULT
+      INTERPOLATE   CANCELED
+      IGNORE_ERROR  CANCELED
+      STUPID        CANCELED
       JOURNAL          SET         startup_tests.jnl
       LONG_LABEL       SET               1
-      LATIT_LABEL   CANCELLED            1
+      LATIT_LABEL   CANCELED             1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
       F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      3100000
+      WAIT          CANCELED
+      DESPERATE     CANCELED       2560000
       GKS              SET
       REFRESH          SET
       METAFILE         SET         startup_tests.plt
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
+      PPLLIST       CANCELED       ppllist.out
+      GUI           CANCELED
       LOGO             SET
       LABELS           SET
       GRATICULE        SET
@@ -99017,21 +107624,22 @@ VP_YHI = "1"
       UPCASE_OUTPU     SET
       NLEVELS          SET             100
       NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      LAYERZ        CANCELLED
+      SHRINK_YLAB   CANCELED
+      CURVILINEAR   CANCELED
+      LAYERZ        CANCELED
       6D_LAB           SET
+      FRUGAL           SET              30
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
  
 yes? ! this "shell" is used because the Unix redirection fails to echo commands
 yes? ! from the top level command file
@@ -99041,15 +107649,17 @@ yes?
 yes? 
 yes? GO bn_gif
  	NOAA/PMEL TMAP
- 	FERRET v7 (beta/dbg)
- 	Linux 2.6.32-642.1.1.el6.x86_64 64-bit - 06/15/16
- 	15-Jun-16 12:07     
+ 	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     
 
 ! 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*
  
+! NOTE the plots in bnplot_2.gif are different in PyFerret and Ferret,
+! because of different treatment of /TEXT= for viewport definitions.
  
 can mode logo
  
@@ -99225,6 +107835,7 @@ frame/trans/file=testbackground.gif
 ! has trouble when running the benchmarks from remote desktop
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err491_long_gif_name
 ! err491_long_gif_name.jnl
 ! *sh* 4/99 - test 175 character gif name
@@ -99260,6 +107871,7 @@ set win/siz=1/asp=1
 ! New benchmark gif outputs in v6.97
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_hovmuller_overlays
 ! bn_hovmuller_overlays.jnl
 ! Previously a time series plot overlaid oon a Hovmuller plot did not
@@ -99267,6 +107879,7 @@ GO bn_hovmuller_overlays
 ! See ticket 2344
  
 ! 1/6/2016 ACM
+! acm* 3/17 check the URL with TEST_OPENDAP befor trying to open it.
  
 ! run this in the gif benchmarks.
  
@@ -99317,10 +107930,13 @@ PLOT/OVER/thick/y=8 my_var+10
 ! Like the dataset example from the FAQ
 set view ll6
  
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
-set region/x=40w/y=10n:60n/t=15-jan-1982:15-dec-1983
-shade sst
-plot/over/thick/TITLE="at 20"  sst[y=@LOC:20]
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+ !-> IF 1 THEN
+   use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
+   set region/x=40w/y=10n:60n/t=15-jan-1982:15-dec-1983
+   shade sst
+   plot/over/thick/TITLE="at 20"  sst[y=@LOC:20]
+ENDIF
  
 can data/all
 can region
@@ -99328,19 +107944,20 @@ can region
 ! vector plots with a time series
 set view lr6
  
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf"
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_vwnd.cdf"
- 
-vec/x=0/y=-10:10/t=1-jan-1980:1-jan-1990 uwnd[d=1], vwnd[d=2]
- 
-let wspd = (uwnd[d=1]*uwnd[d=1] + vwnd[d=2]*vwnd[d=2])^0.5
-plot/over/color=red/thick/x=0/t=1-jan-1980:1-jan-1990 wspd[y=-10:10 at ave]
- 
-FRAME/FILE=bn_hovmuller_overlays.gif
- 
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf") EQ 0 AND\
+ test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf") EQ 0` THEN
+ !-> IF 1 THEN
+   use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf"
+   use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_vwnd.cdf"
+   vec/x=0/y=-10:10/t=1-jan-1980:1-jan-1990 uwnd[d=1], vwnd[d=2]
+   let wspd = (uwnd[d=1]*uwnd[d=1] + vwnd[d=2]*vwnd[d=2])^0.5
+   plot/over/color=red/thick/x=0/t=1-jan-1980:1-jan-1990 wspd[y=-10:10 at ave]
+   FRAME/FILE=bn_hovmuller_overlays.gif
+ENDIF
  
 Go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_labels_on_taxis
 ! bn_labels_on_taxis.jnl
 ! tests of labels and overlays on time axes
@@ -99486,6 +108103,7 @@ FRAME/FILE=bn_labels_on_taxis.gif
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_contour_conset
 ! err696_contour_conset.jnl
 ! Ticket 2351. The PPL CONSET command had stopped working to set
@@ -99546,6 +108164,7 @@ frame/file=bn_contour_conset.gif
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_subspan_mod_strides
 ! err696_subspan_mod_strides
 ! See ticket 513. Axis is subspan modulo, and strides
@@ -99578,9 +108197,9 @@ yes?
 yes? 
 yes? GO bn_ps
  	NOAA/PMEL TMAP
- 	FERRET v7 (beta/dbg)
- 	Linux 2.6.32-642.1.1.el6.x86_64 64-bit - 06/15/16
- 	15-Jun-16 12:07     
+ 	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     
 
 ! bn450_ps.JNL - copied from bn450_plot.jnl
 ! this journal file only tests the writing of ps files in batch mode using
@@ -99692,9 +108311,9 @@ yes?
 yes? 
 yes? GO bn_batch_metafile
  	NOAA/PMEL TMAP
- 	FERRET v7 (beta/dbg)
- 	Linux 2.6.32-642.1.1.el6.x86_64 64-bit - 06/15/16
- 	15-Jun-16 12:07     
+ 	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     
 
 ! bn_batch_metafile.jnl
 ! Run at the end of the benchmark scripts, starting ferret with the flags
@@ -99778,4 +108397,4 @@ set window/location=0.1,0.1/title="another title"
  
 set mode/last logo
 exit/command
-Ended at Wed Jun 15 12:07:47 PDT 2016
+Ended at Mon Apr 17 16:50:25 PDT 2017
diff --git a/bench/ansley_official.x86_64-linux_log b/bench/ansley_official.x86_64-linux_log
index d3b80b0..d8d9287 100644
--- a/bench/ansley_official.x86_64-linux_log
+++ b/bench/ansley_official.x86_64-linux_log
@@ -1,13 +1,21 @@
 Procedure run_all to run all FERRET benchmarks
-Running FERRET version /home/users/ksmith/Ferret/bin/ferret
-lrwxrwxrwx 1 ksmith tmap 12 Oct 26 17:18 /home/users/ksmith/Ferret/bin/ferret -> ferret_v6.95
-Using external functions from /home/users/ksmith/Ferret/ext_func/libs
+Running FERRET version /home/users/ansley/x86_64-linux/FERRET/fer/ferret_c
+-rwxr-xr-x 1 ansley tmap 49934752 Jan  3 16:40 /home/users/ansley/x86_64-linux/FERRET/fer/ferret_c
+Using external functions from /home/users/ansley/x86_64-linux/FERRET/external_functions/ext_func
 Running the tests of external functions y
-Benchmark run by Karl
-Note: Benchmark tests on RHEL5-64
+Benchmark run by ansley
+Note: fix ticket 1778: negative values and variance-based levels.
 ncdump output will be in all_ncdump.out, and appended to this log file 
 ***** Restricting Ferret paths to bench directory *****
+PWD=/home/users/ansley/x86_64-linux/FERRET/bench
+FER_LINK_DIR=/home/users/tmap/ferret_link/linux
+FER_DIR=.
+FER_WEB_BROWSER=netscape -ncols 60
+FER_DSETS=.
+FER_DATA_THREDDS=/home/users/tmap/ferret/linux/fer_dsets http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/catalog.xml
+FER_LIBS=/home/users/tmap/ferret/x86_64-linux/lib
 FER_DAT=.
+FER_GO=. /home/users/tmap/ferret/x86_64-linux/go /home/users/tmap/ferret/x86_64-linux/examples /home/users/tmap/ferret/x86_64-linux/contrib /home/users/tmap/ferret/tmap_go
 FER_DATA=.
 FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/users/ksmith/Datasets
 FER_DESCR=.
@@ -17,19 +25,23 @@ FER_EXTERNAL_FUNCTIONS=/home/users/ksmith/Ferret/ext_func/libs
 FER_FONTS=/home/users/ksmith/Ferret/ppl/fonts
 FER_GO=. /home/users/ksmith/Ferret/go /home/users/ksmith/Ferret/examples /home/users/ksmith/Ferret/contrib
 FER_GRIDS=.
-FER_LIBS=/home/users/ksmith/Ferret/lib
-FER_PALETTE=. /home/users/ksmith/Ferret/ppl
-FER_WEB_BROWSER=firefox
-Beginning at Mon Oct 26 17:21:34 PDT 2015
-!bn500_all_shell
- 
-! this "shell" is used because the Unix redirection fails to echo commands
-! from the top level command file
-! ... havn't explored the reason ... they echo fine to the screen
-! *kob* 2/02/98 - newly created - copied from bn490_all_shell.jnl
- 
- 
-GO bn_all
+FER_PALETTE=. /home/users/tmap/ferret/x86_64-linux/ppl
+FER_EXTERNAL_FUNCTIONS=/home/users/ansley/x86_64-linux/FERRET/external_functions/ext_func
+Beginning at Mon Jan 3 16:41:17 PST 2011
+yes? !bn500_all_shell
+yes? 
+yes? ! this "shell" is used because the Unix redirection fails to echo commands
+yes? ! from the top level command file
+yes? ! ... havn't explored the reason ... they echo fine to the screen
+yes? ! *kob* 2/02/98 - newly created - copied from bn490_all_shell.jnl
+yes? 
+yes? 
+yes? GO bn_all
+ 	NOAA/PMEL TMAP
+ 	FERRET v6.65  
+ 	Linux(gfortran) 2.6.9-89.0.20.ELsmp - 01/03/11
+ 	 3-Jan-11 16:41     
+
 SET MODE VERIFY
 ! BN500_ALL.JNL
 ! - run all the benchmark tests
@@ -10485,18 +10497,16 @@ show symbols/all
 PPL$XPIXEL = "760"
 PPL$YPIXEL = "760"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.95"
-FERRET_PLATFORM = "Linux 2.6.18-406.el5 64-bit"
-FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
-FERRET_MEMORY = "100"
-SESSION_DATE = "26-Oct-15"
-SESSION_TIME = "17:21"
-SESSION_PID = "28772"
-DELTA_CPU = "6.15006"
-CLOCK_SECS = "57.95"
-CURRENT_DATE = "26-Oct-15"
-CURRENT_TIME = "17:22:32"
+FERRET_VERSION = "6.65"
+FERRET_PLATFORM = "Linux(gfortran) 2.6.9-89.0.20.ELsmp"
+NETCDF_VERSION = "4.1.2-beta2-snapshot2010121322 of Dec 29 2010 12:31:06 $"
+FERRET_MEMORY = "25.6"
+SESSION_DATE = " 3-Jan-11"
+SESSION_TIME = "16:41"
+DELTA_CPU = "5.74613"
+CLOCK_SECS = "6.214"
+CURRENT_DATE = " 3-Jan-11"
+CURRENT_TIME = "16:41:23"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
  
@@ -10514,18 +10524,16 @@ show symbol/all
 PPL$XPIXEL = "760"
 PPL$YPIXEL = "760"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.95"
-FERRET_PLATFORM = "Linux 2.6.18-406.el5 64-bit"
-FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
-FERRET_MEMORY = "100"
-SESSION_DATE = "26-Oct-15"
-SESSION_TIME = "17:21"
-SESSION_PID = "28772"
+FERRET_VERSION = "6.65"
+FERRET_PLATFORM = "Linux(gfortran) 2.6.9-89.0.20.ELsmp"
+NETCDF_VERSION = "4.1.2-beta2-snapshot2010121322 of Dec 29 2010 12:31:06 $"
+FERRET_MEMORY = "25.6"
+SESSION_DATE = " 3-Jan-11"
+SESSION_TIME = "16:41"
 DELTA_CPU = "0.001"
-CLOCK_SECS = "57.951"
-CURRENT_DATE = "26-Oct-15"
-CURRENT_TIME = "17:22:32"
+CLOCK_SECS = "6.215"
+CURRENT_DATE = " 3-Jan-11"
+CURRENT_TIME = "16:41:23"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
 S1 = "hello"
@@ -10535,9 +10543,8 @@ NUM = "3"
 T$DOLLAR = "hi"
 T_HELLO = "hi"
 show symbol s*
-SESSION_DATE = "26-Oct-15"
-SESSION_TIME = "17:21"
-SESSION_PID = "28772"
+SESSION_DATE = " 3-Jan-11"
+SESSION_TIME = "16:41"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10547,15 +10554,13 @@ S2 = ""hello""
 ! exercise CANCEL SYMBOL
 cancel symbol s2
 show symbol s*
-SESSION_DATE = "26-Oct-15"
-SESSION_TIME = "17:21"
-SESSION_PID = "28772"
+SESSION_DATE = " 3-Jan-11"
+SESSION_TIME = "16:41"
 S1 = "hello"
 S3 = "hello and goodbye"
 show symbol S*
-SESSION_DATE = "26-Oct-15"
-SESSION_TIME = "17:21"
-SESSION_PID = "28772"
+SESSION_DATE = " 3-Jan-11"
+SESSION_TIME = "16:41"
 S1 = "hello"
 S3 = "hello and goodbye"
 cancel symbol s2	! already deleted
@@ -10589,6 +10594,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 Ver. 6.65"
+LAB2 = "NOAA/PMEL TMAP"
+LAB3 = "03-JAN-2011 16:41:23"
 LABX = "X"
 LAB1 = "Y : 10"
 LABNUM_Y = "1"
@@ -10683,18 +10691,16 @@ show symbols/all
 PPL$XPIXEL = "760"
 PPL$YPIXEL = "760"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.95"
-FERRET_PLATFORM = "Linux 2.6.18-406.el5 64-bit"
-FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
-FERRET_MEMORY = "100"
-SESSION_DATE = "26-Oct-15"
-SESSION_TIME = "17:21"
-SESSION_PID = "28772"
-DELTA_CPU = "0.012998"
-CLOCK_SECS = "57.964"
-CURRENT_DATE = "26-Oct-15"
-CURRENT_TIME = "17:22:32"
+FERRET_VERSION = "6.65"
+FERRET_PLATFORM = "Linux(gfortran) 2.6.9-89.0.20.ELsmp"
+NETCDF_VERSION = "4.1.2-beta2-snapshot2010121322 of Dec 29 2010 12:31:06 $"
+FERRET_MEMORY = "25.6"
+SESSION_DATE = " 3-Jan-11"
+SESSION_TIME = "16:41"
+DELTA_CPU = "0.011998"
+CLOCK_SECS = "6.227"
+CURRENT_DATE = " 3-Jan-11"
+CURRENT_TIME = "16:41:23"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
  
@@ -14783,14 +14789,14 @@ show data/full
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid PS2DU1_NT with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- IK       I1+K1                            1:10      ...       5:15      ...       ...       ...
-               on grid G016_NYT with -1.E+34 for missing data
+ IK       I1+K1                            1:10      ...       5:15      ...
+               on grid G016_NYT with -1.000000E+34 for missing data
              X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
-               on grid G016_NYZ with -1.E+34 for missing data
+ IL       I1+L1                            1:10      ...       ...       1:3
+               on grid G016_NYZ with -1.000000E+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
+ JK       J1+K1                            ...       5:10      5:15      ...
+               on grid G008_NXT with -1.000000E+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)
@@ -15185,18 +15191,22 @@ load temp[g=u]
  allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 43 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 39 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ strip regrid on Y: TEMP --> XNTERMED         @LIN
+ reading TEMP     M: 55 I:  100  106  J:   45   50  K:    1    2  L:    3    4
+ regrid  TEMP     M: 45 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ regrid  TEMP     M: 43 I:  100  105  J:   45   49  K:    1    2  L:    3    4
+ -DELETE TEMP     M: 45 I:  100  106  J:   45   49  K:    1    2  L:    3    4
 load temp[g=u at lin]
  dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
  eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 36 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 34 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ strip regrid on Y: TEMP --> XNTERMED         @LIN
+ reading TEMP     M: 45 I:  100  106  J:   45   50  K:    1    2  L:    3    4
+ regrid  TEMP     M: 39 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ regrid  TEMP     M: 36 I:  100  105  J:   45   49  K:    1    2  L:    3    4
+ -DELETE TEMP     M: 39 I:  100  106  J:   45   49  K:    1    2  L:    3    4
 load temp[g=u at ave,gy=@asn]
  dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
@@ -15204,10 +15214,10 @@ load temp[g=u at ave,gy=@asn]
  eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  strip regrid on X: TEMP --> PS3DU2           @AVE
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M: 33 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 31 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 30 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 31 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ reading TEMP     M: 39 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ regrid  TEMP     M: 34 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ regrid  TEMP     M: 33 I:  100  105  J:   45   49  K:    1    2  L:    3    4
+ -DELETE TEMP     M: 34 I:  100  106  J:   45   49  K:    1    2  L:    3    4
 load temp[g=u at lin,gy=@asn]
  dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
@@ -15215,10 +15225,10 @@ load temp[g=u at lin,gy=@asn]
  eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  strip regrid on X: TEMP --> PS3DU2           @LIN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M: 31 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 28 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 25 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 28 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ reading TEMP     M: 34 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ regrid  TEMP     M: 31 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ regrid  TEMP     M: 30 I:  100  105  J:   45   49  K:    1    2  L:    3    4
+ -DELETE TEMP     M: 31 I:  100  106  J:   45   49  K:    1    2  L:    3    4
 load temp[g=u,gx=@ave,gy=@asn]
  dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
@@ -15226,30 +15236,30 @@ load temp[g=u,gx=@ave,gy=@asn]
  eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  strip regrid on X: TEMP --> PS3DU2           @AVE
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M: 28 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 22 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 22 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ reading TEMP     M: 31 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ regrid  TEMP     M: 28 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ regrid  TEMP     M: 25 I:  100  105  J:   45   49  K:    1    2  L:    3    4
+ -DELETE TEMP     M: 28 I:  100  106  J:   45   49  K:    1    2  L:    3    4
 load temp[gx=u]  		! changed V4.20 --> implicit regrid
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    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
+ eval    EX#1     C:  4 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
- reading TEMP     M: 22 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 16 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
+ reading TEMP     M: 28 I:  100  106  J:   45   50  K:    1    2  L:    3    4
+ regrid  TEMP     M: 22 I:  100  105  J:   45   50  K:    1    2  L:    3    4
+ dealloc  dynamic grid (G009)          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     NORMAL    NORMAL
- -DELETE TEMP     M: 16 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2
+ -DELETE TEMP     M: 22 I:  100  105  J:   45   50  K:    1    2  L:    3    4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 I:  100  105  J:   45   49  K:    1    2  L:    3    4
  strip regrid on X: TEMP --> PS3DU2           @LIN
  reading TEMP     M: 16 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  regrid XY
@@ -15290,10 +15300,10 @@ stat temp[g=u,gx=@ave] - temp[gx=@ave,g=u]    ! == 0
  -DELETE TEMP     M:  7 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  strip regrid on X: TEMP --> PS3DU2           @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M:  7 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 27 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 24 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 27 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ reading TEMP     M: 11 I:  100  106  J:   45   50  K:    1    2  L:    3    4
+ regrid  TEMP     M:  7 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ regrid  TEMP     M: 53 I:  100  105  J:   45   49  K:    1    2  L:    3    4
+ -DELETE TEMP     M:  7 I:  100  106  J:   45   49  K:    1    2  L:    3    4
  
              TEMP[G=U,GX=@AVE] - TEMP[GX=@AVE,G=U]
              LONGITUDE: 130W to 125W
@@ -15364,11 +15374,11 @@ LIST temp[g=u,gx=u at ave]	! V4.20 mod
  allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
  strip regrid on X: TEMP --> PS3DU2           @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M: 18 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 48 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 23 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 48 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ reading TEMP     M: 24 I:  100  106  J:   45   50  K:    1    2  L:    3    4
+ regrid  TEMP     M: 49 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ regrid  TEMP     M: 18 I:  100  105  J:   45   49  K:    1    2  L:    3    4
+ -DELETE TEMP     M: 49 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at AVE, on Y at LIN
              FILENAME : gtsa056_1.cdf
@@ -15411,11 +15421,11 @@ LIST temp[g=u,gy=u at ave]	! V4.20 mod
  allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
  strip regrid on X: TEMP --> PS3DU2           @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
- reading TEMP     M: 48 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  6 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 40 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  6 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ reading TEMP     M: 49 I:  100  106  J:   45   50  K:    1    2  L:    3    4
+ regrid  TEMP     M: 48 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ regrid  TEMP     M: 23 I:  100  105  J:   45   49  K:    1    2  L:    3    4
+ -DELETE TEMP     M: 48 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at LIN, on Y at AVE
              FILENAME : gtsa056_1.cdf
@@ -15457,10 +15467,12 @@ LIST temp[g=u,gz=u at ave]	! V4.20 mod
  eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
  strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M:  6 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 15 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ strip regrid on Y: TEMP --> XNTERMED         @LIN
+ reading TEMP     M: 48 I:  100  106  J:   45   50  K:    1    2  L:    3    4
+ regrid  TEMP     M:  6 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ regrid  TEMP     M: 40 I:  100  105  J:   45   49  K:    1    2  L:    3    4
+ -DELETE TEMP     M:  6 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15502,10 +15514,12 @@ LIST temp[g=u,gt=u at ave]	! V4.20 mod, etc --> many more similar syntax chgs
  eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
  strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 37 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 32 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ strip regrid on Y: TEMP --> XNTERMED         @LIN
+ reading TEMP     M:  6 I:  100  106  J:   45   50  K:    1    2  L:    3    4
+ regrid  TEMP     M: 15 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ regrid  TEMP     M: 37 I:  100  105  J:   45   49  K:    1    2  L:    3    4
+ -DELETE TEMP     M: 15 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15633,11 +15647,11 @@ LIST temp[g=u,gx=u at asn]
  allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
  strip regrid on X: TEMP --> PS3DU2           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @LIN
- reading TEMP     M:  1 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 52 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 29 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 52 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ reading TEMP     M: 13 I:  100  105  J:   45   50  K:    1    2  L:    3    4
+ regrid  TEMP     M:  1 I:  100  105  J:   45   49  K:    1    2  L:    3    4
+ regrid  TEMP     M: 26 I:  100  105  J:   45   49  K:    1    2  L:    3    4
+ -DELETE TEMP     M:  1 I:  100  105  J:   45   49  K:    1    2  L:    3    4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at ASN, on Y at LIN
              FILENAME : gtsa056_1.cdf
@@ -15680,11 +15694,11 @@ LIST temp[g=u,gy=u at asn]
  allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
  strip regrid on X: TEMP --> PS3DU2           @LIN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- reading TEMP     M: 52 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 20 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 56 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 20 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ reading TEMP     M:  1 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ regrid  TEMP     M: 52 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ regrid  TEMP     M: 29 I:  100  105  J:   45   49  K:    1    2  L:    3    4
+ -DELETE TEMP     M: 52 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at LIN, on Y at ASN
              FILENAME : gtsa056_1.cdf
@@ -15726,10 +15740,12 @@ LIST temp[g=u,gz=u at asn]
  eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
  allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
  strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M: 20 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 51 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ strip regrid on Y: TEMP --> XNTERMED         @LIN
+ reading TEMP     M: 52 I:  100  106  J:   45   50  K:    1    2  L:    3    4
+ regrid  TEMP     M: 19 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ regrid  TEMP     M: 56 I:  100  105  J:   45   49  K:    1    2  L:    3    4
+ -DELETE TEMP     M: 19 I:  100  106  J:   45   49  K:    1    2  L:    3    4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -17541,24 +17557,24 @@ let a1 = x[gx=x1pt]	! single point
 let a2 = x[gx=x2pt]
  
 list a1[gx=xoffset at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- 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    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid A1       C:  7 I:    1    1  J:    1    1  K:    1    1  L:    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 (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
  strip regrid on X: A1 --> (G011)           @AVE
- eval    A1       C:  7 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:296 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:298 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A1       C:  7 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
+ pseudo  X        M:294 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
+ regrid  A1       M:296 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at AVE
              SUBSET   : 7 points (X)
@@ -17570,22 +17586,22 @@ list a1[gx=xoffset at ave]
  6.1 / 6:     ....
  7.1 / 7:     ....
 list a1[gx=xoffset at sum] ! should sum to 5
- -DELETE X        M:296 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:298 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:294 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ -DELETE A1       M:296 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    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
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
  strip regrid on X: A1 --> (G011)           @SUM
- eval    A1       C:  7 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:299 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A1       C:  7 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
+ pseudo  X        M:296 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
+ regrid  A1       M:297 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -17597,22 +17613,22 @@ 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
- -DELETE X        M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:299 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:296 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ -DELETE A1       M:297 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    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
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
  strip regrid on X: A1 --> (G011)           @VAR
- eval    A1       C:  7 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:299 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:300 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A1       C:  7 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
+ pseudo  X        M:297 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
+ regrid  A1       M:298 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : Variance of X[GX=X1PT]
                         regrid: 1 delta on X at VAR
              SUBSET   : 7 points (X)
@@ -17625,26 +17641,26 @@ list a1[gx=xoffset at var] ! should be all missing
  7.1 / 7:....
  
 list a2[gx=xoffset at ave]
- -DELETE X        M:299 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:300 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:297 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ -DELETE A1       M:298 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid A2       C:  7 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @AVE
- eval    A2       C:  7 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:300 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:301 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A2       C:  7 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ pseudo  X        M:298 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ regrid  A2       M:299 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at AVE
              SUBSET   : 7 points (X)
@@ -17656,22 +17672,22 @@ list a2[gx=xoffset at ave]
  6.1 / 6:  6.00000
  7.1 / 7:     ....
 list a2[gx=xoffset at sum] ! should sum to 5+6=11
- -DELETE X        M:300 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:301 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:298 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ -DELETE A2       M:299 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @SUM
- eval    A2       C:  7 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:301 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:302 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A2       C:  7 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ pseudo  X        M:299 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ regrid  A2       M:300 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -17683,22 +17699,22 @@ list a2[gx=xoffset at sum] ! should sum to 5+6=11
  6.1 / 6:  5.40000
  7.1 / 7:     ....
 list a2[gx=xoffset at var]
- -DELETE X        M:301 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:302 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:299 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ -DELETE A2       M:300 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @VAR
- eval    A2       C:  7 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:302 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:303 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A2       C:  7 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ pseudo  X        M:300 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ regrid  A2       M:301 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : Variance of X[GX=X2PT]
                         regrid: 1 delta on X at VAR
              SUBSET   : 7 points (X)
@@ -17716,47 +17732,47 @@ 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 (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:303 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:299 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:300 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:301 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:302 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:296 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:297 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ -DELETE A2       M:301 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE A2       M:297 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE A2       M:298 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE A2       M:299 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ -DELETE X        M:300 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE A1       M:294 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE A1       M:295 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE A1       M:296 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G009)          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    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid A1       C:  7 I:    1    1  J:    1    1  K:    1    1  L:    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 (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
  strip regrid on X: A1 --> (G011)           @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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:297 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:297 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:298 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:297 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:298 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A1       C:  8 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL
+ pseudo  X        M:296 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL
+ pseudo  Y        M:295 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999
+ -DELETE Y        M:295 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL
+ -DELETE X        M:296 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL
+ regrid  A1       M:296 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999
+ regrid  A1       M:295 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999
+ -DELETE A1       M:296 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          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)
@@ -17770,29 +17786,29 @@ 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 (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:297 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ -DELETE A1       M:295 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    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
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
  strip regrid on X: A1 --> (G011)           @SUM
  strip regrid on Y: A1 --> XNTERMED         @SUM
- eval    A1       C:  8 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:297 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:298 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:298 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:297 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:297 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:298 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:297 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A1       C:  8 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL
+ pseudo  X        M:295 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL
+ pseudo  Y        M:296 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999
+ -DELETE Y        M:296 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL
+ -DELETE X        M:295 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL
+ regrid  A1       M:295 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999
+ regrid  A1       M:296 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999
+ -DELETE A1       M:295 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          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)
@@ -17806,29 +17822,29 @@ 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 (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:298 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ -DELETE A1       M:296 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    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
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
  strip regrid on X: A1 --> (G011)           @VAR
  strip regrid on Y: A1 --> XNTERMED         @VAR
- eval    A1       C:  8 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:297 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:297 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:298 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:298 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:297 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:298 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A1       C:  8 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL
+ pseudo  X        M:296 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL
+ pseudo  Y        M:295 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999
+ -DELETE Y        M:295 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G010)          NORMAL    Y1PT      NORMAL    NORMAL
+ -DELETE X        M:296 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G006)          X1PT      NORMAL    NORMAL    NORMAL
+ regrid  A1       M:296 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999
+ regrid  A1       M:295 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999
+ -DELETE A1       M:296 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          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)
@@ -17843,35 +17859,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 (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:297 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G011)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X2PT      Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ -DELETE A1       M:295 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid A2       C:  7 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          NORMAL    Y2PT      NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          NORMAL    Y2PT      NORMAL    NORMAL
+ allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          X2PT      Y2PT      NORMAL    NORMAL
+ allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:297 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:298 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:298 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:297 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:297 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:298 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:297 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A2       C:  8 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
+ pseudo  X        M:295 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL
+ pseudo  Y        M:296 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999
+ -DELETE Y        M:296 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL
+ -DELETE X        M:295 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
+ regrid  A2       M:295 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999
+ regrid  A2       M:296 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999
+ -DELETE A2       M:295 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G006)          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)
@@ -17885,29 +17901,29 @@ list a2[gx=xoffset at ave, gy=yoffset at ave]
  6.1 / 6:     ....     ....     ....  11.0000  11.1000  12.0000     ....
  7.1 / 7:     ....     ....     ....     ....     ....     ....     ....
 list a2[gx=xoffset at sum, gy=yoffset at sum] ! should sum to 10+11+11+12=44
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:298 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ -DELETE A2       M:296 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @SUM
  strip regrid on Y: A2 --> XNTERMED         @SUM
- eval    A2       C:  8 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:298 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:297 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:297 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:298 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:298 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:297 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:298 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A2       C:  8 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
+ pseudo  X        M:296 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL
+ pseudo  Y        M:295 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999
+ -DELETE Y        M:295 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL
+ -DELETE X        M:296 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
+ regrid  A2       M:296 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999
+ regrid  A2       M:295 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999
+ -DELETE A2       M:296 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G006)          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)
@@ -17922,29 +17938,29 @@ 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 (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:297 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ -DELETE A2       M:295 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @VAR
  strip regrid on Y: A2 --> XNTERMED         @VAR
- eval    A2       C:  8 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:297 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:298 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:298 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:297 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:297 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:298 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:297 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A2       C:  8 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
+ pseudo  X        M:295 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL
+ pseudo  Y        M:296 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999
+ -DELETE Y        M:296 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G002)          NORMAL    Y2PT      NORMAL    NORMAL
+ -DELETE X        M:295 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL
+ regrid  A2       M:295 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999
+ regrid  A2       M:296 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999
+ -DELETE A2       M:295 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G006)          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)
@@ -17965,37 +17981,37 @@ define axis/x=5:6:1 x2pt
 define axis/x=5:6.5:.5 x4pt
  
 let a1 = x[gx=x1pt]
- dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:298 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:299 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:300 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:303 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:296 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:301 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A1       M:302 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   YOFFSET   NORMAL    NORMAL
+ -DELETE A2       M:296 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999
+ -DELETE A2       M:297 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999
+ -DELETE A2       M:298 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999
+ -DELETE A2       M:301 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          X2PT      Y2PT      NORMAL    NORMAL
+ -DELETE A1       M:294 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999
+ -DELETE A1       M:299 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999
+ -DELETE A1       M:300 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G009)          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    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid A1       C:  7 I:    1    1  J:    1    1  K:    1    1  L:    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 (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
  strip regrid on X: A1 --> (G011)           @MAX
- eval    A1       C:  7 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:302 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:296 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A1       C:  7 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
+ pseudo  X        M:300 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL
+ regrid  A1       M:294 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -18007,26 +18023,26 @@ list a1[gx=xoffset at max]
  6.1 / 6:     ....
  7.1 / 7:     ....
 list a2[gx=xoffset at max]
- -DELETE X        M:302 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:296 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:300 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL
+ -DELETE A1       M:294 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid A2       C:  7 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
  strip regrid on X: A2 --> (G006)           @MAX
- eval    A2       C:  7 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:296 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:303 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A2       C:  7 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ pseudo  X        M:294 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ regrid  A2       M:301 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -18038,26 +18054,26 @@ list a2[gx=xoffset at max]
  6.1 / 6:  6.00000
  7.1 / 7:     ....
 list a4[gx=xoffset at max]
- -DELETE X        M:296 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:303 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:294 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G006)          XOFFSET   NORMAL    NORMAL    NORMAL
+ -DELETE A2       M:301 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid A4       C:  7 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G006)          X4PT      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
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
  strip regrid on X: A4 --> (G010)           @MAX
- eval    A4       C:  7 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:303 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A4       M:300 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A4       C:  7 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL
+ pseudo  X        M:301 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL
+ regrid  A4       M:298 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -18069,22 +18085,22 @@ list a4[gx=xoffset at max]
  6.1 / 6:  6.50000
  7.1 / 7:     ....
 list a4[gx=xoffset at min]
- -DELETE X        M:303 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A4       M:300 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:301 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ -DELETE A4       M:298 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    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
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
  strip regrid on X: A4 --> (G010)           @MIN
- eval    A4       C:  7 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:300 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A4       M:299 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A4       C:  7 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL
+ pseudo  X        M:298 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL
+ regrid  A4       M:297 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at MIN
              SUBSET   : 7 points (X)
@@ -18096,22 +18112,22 @@ list a4[gx=xoffset at min]
  6.1 / 6:  6.00000
  7.1 / 7:     ....
 list a4[gx=xoffset at sum] ! 5+5.5+6+6.5=23
- -DELETE X        M:300 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A4       M:299 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:298 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ -DELETE A4       M:297 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    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
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
  strip regrid on X: A4 --> (G010)           @SUM
- eval    A4       C:  7 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:299 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A4       M:298 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A4       C:  7 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL
+ pseudo  X        M:297 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL
+ regrid  A4       M:296 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -18128,26 +18144,26 @@ 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
- -DELETE X        M:299 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A4       M:298 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:297 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL
+ -DELETE A4       M:296 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid A5       C:  7 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL
  strip regrid on X: A5 --> (G002)           @MAX
- eval    A5       C:  7 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:298 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A5       M:297 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A5       C:  7 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ pseudo  X        M:296 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ regrid  A5       M:295 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X5_EDGES]
                         regrid: 1 delta on X at MAX
              SUBSET   : 5 points (X)
@@ -18157,37 +18173,37 @@ list a5[gx=x5 at max]   ! note: top dest axis point, only, looks at point above
  4   / 4:  3.50000
  5   / 5:  5.50000
 let a5 = x[gx=x5_edges, i=3]
- dealloc  dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A5       M:297 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A5       M:299 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:298 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A4       M:296 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A4       M:300 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A4       M:303 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:302 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:301 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          X5        NORMAL    NORMAL    NORMAL
+ -DELETE A5       M:295 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE A5       M:297 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G010)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ -DELETE X        M:296 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE A4       M:294 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE A4       M:298 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE A4       M:301 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G006)          X4PT      NORMAL    NORMAL    NORMAL
+ -DELETE A2       M:300 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          X2PT      NORMAL    NORMAL    NORMAL
+ -DELETE A1       M:299 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G009)          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    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid A5       C:  7 I:    1    1  J:    1    1  K:    1    1  L:    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 (G011)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
  strip regrid on X: A5 --> (G011)           @MAX
- eval    A5       C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:301 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A5       M:303 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A5       C:  7 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ pseudo  X        M:299 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ regrid  A5       M:301 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X5_EDGES, I=3]
                         regrid: 1 delta on X at MAX
              SUBSET   : 5 points (X)
@@ -18197,42 +18213,42 @@ list a5[gx=x5 at max]
  4   / 4:     ....
  5   / 5:     ....
 list a5[gx=x5 at max,i=3]
- -DELETE X        M:301 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A5       M:303 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:299 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
+ -DELETE A5       M:301 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
  strip regrid on X: A5 --> (G011)           @MAX
- eval    A5       C:  7 dset:   0 I:    3    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:303 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A5       M:300 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A5       C:  7 I:    3    4  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ pseudo  X        M:301 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ regrid  A5       M:298 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X5_EDGES, I=3]
                         regrid: 1 delta on X at MAX
              X        : 3
           2.50000
 list a5[gx=x5 at max,i=4]
- -DELETE X        M:303 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A5       M:300 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -DELETE X        M:301 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
+ -DELETE A5       M:298 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
  strip regrid on X: A5 --> (G011)           @MAX
- eval    A5       C:  7 dset:   0 I:    4    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:300 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ eval    A5       C:  7 I:    4    5  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ pseudo  X        M:298 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
              VARIABLE : X[GX=X5_EDGES, I=3]
                         regrid: 1 delta on X at MAX
              X        : 4
@@ -18243,20 +18259,20 @@ 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
- -DELETE X        M:300 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A5       M:296 dset:   0 I:    4    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- eval    ATIME    C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- pseudo  T        M:296 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
+ -DELETE X        M:298 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G011)          X5        NORMAL    NORMAL    NORMAL
+ -DELETE A5       M:294 I:    4    4  J: -999 -999  K: -999 -999  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid ATIME    C:  7 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY
+ dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY
+ allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY
+ allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ eval    ATIME    C:  6 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY
+ pseudo  T        M:294 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5
+ dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY
              VARIABLE : T[GT=TDAY]
              SUBSET   : 5 points (TIME)
  01-JAN-1990 00 / 1:  32493.0
@@ -18276,21 +18292,21 @@ show grid
  normal    E
  normal    F
 list atime[gt=thour at max]
- -DELETE T        M:296 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- 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 (G006)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
- allocate dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
+ -DELETE T        M:294 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5
+ dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR
+ dealloc  dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR
+ allocate dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR
  strip regrid on T: ATIME --> (G006)           @MAX
- eval    ATIME    C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- pseudo  T        M:296 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- regrid  ATIME    M:299 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
+ eval    ATIME    C:  7 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5
+ allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY
+ pseudo  T        M:294 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5
+ dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    TDAY
+ regrid  ATIME    M:297 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5
+ dealloc  dynamic grid (G006)          NORMAL    NORMAL    NORMAL    THOUR
              VARIABLE : T[GT=TDAY]
                         regrid: 24 hour on T at MAX
              SUBSET   : 5 points (TIME)
@@ -25647,6 +25663,7 @@ stat/i=1:3/j=1:3 a
  Standard deviation: 1.2247
  
 ! 3/01 *kob* uncomment the below - seems to run on all systems
+Mon Jan  3 16:41:31 PST 2011
 ! GO err491_long_gif_name.jnl ! moved to bn_gif.jnl
  
 GO bn_reset
@@ -25832,15 +25849,15 @@ SHOW MEM/FREE
 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     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     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     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid (C01,V02 C:  7 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid (C09,V02 C: 10 I:    1    1  J:    1    1  K:    1    1  L:    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
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  eval    (C01,V02 C:  7 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -25875,11 +25892,11 @@ cancel memory/all
  -DELETE SST      M: 31 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE (C01,V02 M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 list/l=1/y=-2:2  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     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 (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G006)          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  M: -999 -999  N: -999 -999
  const_v {30-,50} M: 33 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -25905,11 +25922,11 @@ cancel memory/all
  -DELETE SST      M: 26 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE EX#1     M: 31 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 list/l=1/y=-2:2  SAMPLEI(a  ,{30,40,50})
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     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 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     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid A        C:  8 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ allocate dynamic grid (G006)          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  M: -999 -999  N: -999 -999
  const_v {30-,50} M: 31 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -25943,13 +25960,13 @@ cancel memory/all
  -DELETE A        M: 33 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE A        M: 34 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 list/l=1/y=-2:2  SAMPLEI(sst[i=30:40],{30,40,50})
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     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     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid (C01,V02 C:  7 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid (C09,V02 C: 10 I:    1    1  J:    1    1  K:    1    1  L:    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
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  eval    (C01,V02 C:  7 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
@@ -25970,19 +25987,19 @@ list/l=1/y=-2:2  SAMPLEI(sst[i=30:40],{30,40,50})
  1N   / 46:  28.2222  28.1992     ....
  1S   / 45:  28.1514  28.5607     ....
 let/quiet a = sst[i=30:40]
- -DELETE (C09,V02 M: 27 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE (C01,V02 M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -DELETE (C09,V02 M:267 I:   30   40  J:   45   46  K: -999 -999  L:    1    1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ -DELETE (C01,V02 M:426 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 GSQ1            COADSX    COADSY    NORMAL    TIME4
 cancel memory/all
  -DELETE SST      M: 28 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 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     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid A        C:  8 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ allocate dynamic grid (G006)          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  M: -999 -999  N: -999 -999
  const_v {30-,50} M: 28 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -26006,9 +26023,9 @@ cancel memory/all
  -DELETE EX#1     M: 33 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 list/l=1/y=-2:2  SAMPLEI(a,{30})		! sample at just 1 point
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     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 (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G006)          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  M: -999 -999  N: -999 -999
  const_v {30}     M: 34 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -26033,12 +26050,12 @@ cancel memory/all
  -DELETE A        M: 32 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE EX#1     M: 33 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 list/l=1/y=-2:2  SAMPLEI(a,30)			! sample at just 1 point
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     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 (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     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid (C01,V02 C:  7 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid (C11,V02 C:  9 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ allocate dynamic grid (G006)          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  M: -999 -999  N: -999 -999
  eval    (C01,V02 C:  7 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
@@ -26067,17 +26084,17 @@ cancel memory/all
  -DELETE SST      M: 34 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 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     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
+ dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G006)          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
- getgrid A        C:  8 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- 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     NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid A        C:  8 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid FSST     C: 10 I:    1    1  J:    1    1  K:    1    1  L:    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
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  const_v {30-,50} M: 34 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -26115,16 +26132,16 @@ 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     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid GSQ1            COADSX    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  M: -999 -999  N: -999 -999
  reading SST      M: 33 dset:   1 I:   30   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G006)          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  M: -999 -999  N: -999 -999
  const_v {30-,50} M: 31 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -26153,16 +26170,16 @@ cancel memory/all
  -DELETE SST      M: 33 dset:   1 I:   30   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 34 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 load/l=1/y=0 sst[I=30:39]
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid GSQ1            COADSX    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  M: -999 -999  N: -999 -999
  reading SST      M: 34 dset:   1 I:   30   39  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G006)          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  M: -999 -999  N: -999 -999
  const_v {30-,50} M: 33 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -26191,16 +26208,16 @@ cancel memory/all
  -DELETE EX#1     M: 28 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 34 dset:   1 I:   30   39  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 load/l=1/y=0 sst[I=30:40]
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid GSQ1            COADSX    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  M: -999 -999  N: -999 -999
  reading SST      M: 34 dset:   1 I:   30   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G006)          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  M: -999 -999  N: -999 -999
  const_v {30-,50} M: 28 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -26229,16 +26246,16 @@ cancel memory/all
  -DELETE SST      M: 31 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE SST      M: 34 dset:   1 I:   30   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 load/l=1/y=0 sst[I=30:41]
- dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     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 GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid GSQ1            COADSX    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  M: -999 -999  N: -999 -999
  reading SST      M: 34 dset:   1 I:   30   41  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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 (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G006)          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  M: -999 -999  N: -999 -999
  const_v {30-,50} M: 31 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
@@ -26313,22 +26330,20 @@ show grid/dyn
 Dynamic grids:
     GRID (G017)                          use count:   2
  name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
- (AX002)   LATITUDE             5 r   1S                   1N
+ ABSTRACT  X              9999999 r   1                    10000000
+ (AX001)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX002)   LATITUDE             5 r   1S                   1N
+ (AX001)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX002)                         use count:   2
+    AXIS (AX001)                         use count:   2
 cancel memory/all
 let/quiet a = sst[l=1,y=1s:1n:.5]
 list SAMPLEI(a,{30,40,50})
@@ -26347,22 +26362,20 @@ show grid/dyn
 Dynamic grids:
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
- ABSTRACT  X             99999999 r   1                    1.E+08
- (AX001)   LATITUDE             5 r   1S                   1N
+ ABSTRACT  X              9999999 r   1                    10000000
+ (AX005)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
     GRID (G017)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX001)   LATITUDE             5 r   1S                   1N
+ (AX005)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX001)                         use count:   2
+    AXIS (AX005)                         use count:   2
  
 ! sampling a pseudo-variable
 list SAMPLEI(X[x=1:12],{3,4,7,15})
@@ -26519,29 +26532,29 @@ 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    (AX002)   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  (AX002)   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ABSTRACT  (AX002)   NORMAL    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 (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     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G006)          ABSTRACT  COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {31-,48} M: 34 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     7 dset:   1
- eval    (C09,V02 C: 10 dset:   1 I:   31   35  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading SST      M: 29 dset:   1 I:   31   35  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 10 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 25 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 10 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 20 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE Y        M: 31 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
- -DELETE SST      M: 32 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 26 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {31-,48} M: 34 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G017)          NORMAL    (AX001)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ABSTRACT  (AX001)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ABSTRACT  (AX001)   NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid (C01,V02 C:  7 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid (C09,V02 C: 10 I:    1    1  J:    1    1  K:    1    1  L:    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
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ eval    (C01,V02 C:  6 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ const_v {31-,48} M:431 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ doing sampling tpry on I axis:     1     7
+ eval    (C09,V02 C: 10 I:   31   35  J: -999 -999  K: -999 -999  L: -999 -999
+ reading SST      M:349 I:   31   35  J:   48   48  K: -999 -999  L:    1    1
+ eval    (C09,V02 C: 10 I:   37   37  J:   48   48  K: -999 -999  L:    1    1
+ reading SST      M:300 I:   37   37  J:   48   48  K: -999 -999  L:    1    1
+ eval    (C09,V02 C: 10 I:   44   48  J:   48   48  K: -999 -999  L:    1    1
+ reading SST      M:267 I:   44   48  J:   48   48  K: -999 -999  L:    1    1
+ -DELETE Y        M:374 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7
+ -DELETE SST      M:392 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE tpry     M:326 I:    1    7  J:   48   48  K: -999 -999  L:    1    1
+ -DELETE {31-,48} M:431 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999
              VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
              FILENAME : coads_climatology.cdf
              SUBSET   : 7 points (X)
@@ -27149,17 +27162,17 @@ 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)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G018)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 47 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 55 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    1
+ allocate dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G010)           @XACT
+ rdstride VAR      C:  7 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ nulrgd  VAR      M:471 I:    1    2  J:    1    3  K:    1    2  L:    1    1
+ -DELETE VAR      M:396 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27178,13 +27191,13 @@ 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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G018)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 27 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 55 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    1
+ allocate dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G010)           @XACT
+ rdstride VAR      C:  7 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ nulrgd  VAR      M:146 I:    1    2  J:    1    3  K:    1    2  L:    1    1
+ -DELETE VAR      M:396 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27204,23 +27217,23 @@ 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)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M: 27 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 47 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  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 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)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G018)           @XACT
- rdstride VAR      C:  9 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 27 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 47 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1
+ -DELETE VAR      M:146 I:    1    2  J:    1    3  K:    1    2  L:    1    1
+ -DELETE VAR      M:471 I:    1    2  J:    1    3  K:    1    2  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid A        C:  7 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX023)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G010)          (AX023)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G010)          (AX023)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G010)          (AX023)   YAX1_3    ZAX1_2    TAX1_1
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    1
+ eval    A        C:  6 I:    1    2  J:    1    3  K: -999 -999  L:    1    1
+ allocate dynamic grid (G010)          (AX023)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G010)           @XACT
+ rdstride VAR      C:  9 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ nulrgd  VAR      M:146 I:    1    2  J:    1    3  K:    1    2  L:    1    1
+ -DELETE VAR      M:471 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G010)          (AX023)   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)
@@ -27236,14 +27249,14 @@ list a
  2   / 2:  1222.00  1224.00
  3   / 3:  1232.00  1234.00
 list a		! from cache ...
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G018)           @XACT
- rdstride VAR      C:  9 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 54 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 55 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    1
+ eval    A        C:  6 I:    1    2  J:    1    3  K: -999 -999  L:    1    1
+ allocate dynamic grid (G010)          (AX023)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G010)           @XACT
+ rdstride VAR      C:  9 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ nulrgd  VAR      M:493 I:    1    2  J:    1    3  K:    1    2  L:    1    1
+ -DELETE VAR      M:396 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G010)          (AX023)   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)
@@ -27266,24 +27279,24 @@ cancel memory/all
  -DELETE VAR      M: 54 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE A        M: 55 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
 load var
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    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 GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- reading VAR      M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX023)   YAX1_3    ZAX1_2    TAX1_1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    1
+ reading VAR      M:493 I:    1    4  J:    1    3  K:    1    2  L:    1    1
 LIST VAR[i=2:4:2]
- dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    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 (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G018)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 47 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 54 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX023)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G010)          (AX023)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G010)          (AX023)   YAX1_3    ZAX1_2    TAX1_1
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    1
+ allocate dynamic grid (G010)          (AX023)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G010)           @XACT
+ rdstride VAR      C:  7 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ nulrgd  VAR      M:396 I:    1    2  J:    1    3  K:    1    2  L:    1    1
+ -DELETE VAR      M:471 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G010)          (AX023)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27300,18 +27313,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)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    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 (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G010)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 27 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 54 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX023)   YAX1_3    ZAX1_2    TAX1_1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX023)   (AX025)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX023)   (AX025)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G011)          (AX023)   (AX025)   ZAX1_2    TAX1_1
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    1
+ allocate dynamic grid (G011)          (AX023)   (AX025)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G011)           @XACT
+ rdstride VAR      C:  7 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ nulrgd  VAR      M:146 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ -DELETE VAR      M:471 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G011)          (AX023)   (AX025)   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
@@ -27333,19 +27346,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)          (AX023)   (AX025)   ZAX1_2    TAX1_1    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 (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G010)           @XACT
- strip moduloing VAR on X axis:     1    10 dset:   1
- reading VAR      M: 55 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing VAR on X axis:     1     4 dset:   1
- regrid  VAR      M: 27 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          (AX023)   (AX025)   ZAX1_2    TAX1_1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX024)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX024)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G011)          (AX024)   YAX1_3    ZAX1_2    TAX1_1
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ allocate dynamic grid (G011)          (AX024)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G011)           @XACT
+ strip moduloing VAR on X axis:     1    10
+ reading VAR      M:493 I:    1    4  J:    1    1  K:    1    1  L:    1    1
+ doing moduloing VAR on X axis:     1     4
+ regrid  VAR      M:146 I:    1    4  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G011)          (AX024)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -27366,18 +27379,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)          (AX024)   YAX1_3    ZAX1_2    TAX1_1    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 (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G010)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 47 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 55 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          (AX024)   YAX1_3    ZAX1_2    TAX1_1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX023)   (AX025)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX023)   (AX025)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G011)          (AX023)   (AX025)   ZAX1_2    TAX1_1
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    1
+ allocate dynamic grid (G011)          (AX023)   (AX025)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G011)           @XACT
+ rdstride VAR      C:  7 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ nulrgd  VAR      M:396 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ -DELETE VAR      M:493 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G011)          (AX023)   (AX025)   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
@@ -27392,19 +27405,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)          (AX023)   (AX025)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M: 47 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  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 (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G010)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 47 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          (AX023)   (AX025)   ZAX1_2    TAX1_1
+ -DELETE VAR      M:396 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX023)   (AX024)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX023)   (AX024)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G011)          (AX023)   (AX024)   ZAX1_2    TAX1_1
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    1
+ allocate dynamic grid (G011)          (AX023)   (AX024)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G011)           @XACT
+ rdstride VAR      C:  7 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ nulrgd  VAR      M:493 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ -DELETE VAR      M:396 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G011)          (AX023)   (AX024)   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
@@ -27421,24 +27434,24 @@ 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)          (AX023)   (AX024)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  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 GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          (AX023)   (AX024)   ZAX1_2    TAX1_1
+ -DELETE VAR      M:493 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
  
 ! averaging causes bypass of strides
 LIST VAR[i=2:4:2 at ave]
- dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    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 (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G018)           @AVE
- reading VAR      M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- regrid  VAR      M: 47 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX023)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G010)          (AX023)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G010)          (AX023)   YAX1_3    ZAX1_2    TAX1_1
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    1
+ allocate dynamic grid (G010)          (AX023)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G010)           @AVE
+ reading VAR      M:493 I:    1    4  J:    1    3  K:    1    2  L:    1    1
+ regrid  VAR      M:396 I:    1    2  J:    1    3  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G010)          (AX023)   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
@@ -27457,25 +27470,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)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M: 47 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G010)          (AX023)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G010)          (AX023)   YAX1_3    ZAX1_2    TAX1_1
+ -DELETE VAR      M:396 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)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid A        C:  7 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX024)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G010)          (AX024)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G010)          (AX024)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G010)          (AX024)   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  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    3    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G018)           @XACT
- rdstride BIGVAR   C: 10 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 27 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 47 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ eval    EX#1     C:  5 I:    1    4  J:    1    1  K:    1    1  L:    1    1
+ eval    A        C:  7 I:    3    5  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX024)   YAX1_30   ZAX1_20   TAX1_10
+ strip regrid on X: BIGVAR --> (G010)           @XACT
+ rdstride BIGVAR   C: 10 I:    1   36  J:    1    1  K:    1    1  L:    1    1
+ nulrgd  BIGVAR   M:146 I:    1    8  J:    1    1  K:    1    1  L:    1    1
+ -DELETE BIGVAR   M:396 I:    1   36  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G010)          (AX024)   YAX1_30   ZAX1_20   TAX1_10
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -27489,24 +27502,24 @@ list/j=1/k=1/l=1 a[i=3:5]
  21   / 5:  1131.00
  -DELETE A        M: 54 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
 list/k=1/l=1 a[i=3:5,j=1:8:2]
- dealloc  dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   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 (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX024)   YAX1_30   ZAX1_20   TAX1_10
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX024)   (AX025)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G011)          (AX024)   (AX025)   ZAX1_20   TAX1_10
+ allocate dynamic grid (G011)          (AX024)   (AX025)   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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on Y: A --> (G010)           @XACT
- eval    A        C:  8 dset:   1 I:    3    5  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G018)           @XACT
- rdstride BIGVAR   C: 11 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 52 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- regrid  A        M: 49 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ eval    EX#1     C:  5 I:    1    4  J:    1    3  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX024)   (AX025)   ZAX1_20   TAX1_10
+ strip regrid on Y: A --> (G011)           @XACT
+ eval    A        C:  8 I:    3    5  J:    1    7  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX024)   YAX1_30   ZAX1_20   TAX1_10
+ strip regrid on X: BIGVAR --> (G010)           @XACT
+ rdstride BIGVAR   C: 11 I:    1   36  J:    1    7  K:    1    1  L:    1    1
+ nulrgd  BIGVAR   M:492 I:    1    8  J:    1    7  K:    1    1  L:    1    1
+ -DELETE BIGVAR   M:471 I:    1   36  J:    1    7  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G010)          (AX024)   YAX1_30   ZAX1_20   TAX1_10
+ regrid  A        M:442 I:    3    5  J:    1    4  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G011)          (AX024)   (AX025)   ZAX1_20   TAX1_10
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27523,10 +27536,10 @@ 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)          (AX024)   (AX025)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- -DELETE A        M: 49 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  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 GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          (AX024)   (AX025)   ZAX1_20   TAX1_10
+ -DELETE A        M:442 I:    3    5  J:    1    4  K:    1    1  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid GPC4            XUNEVEN   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  M: -999 -999  N: -999 -999
  reading UNE-NVAR M: 49 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
@@ -27549,19 +27562,19 @@ cancel mem/all
  
 ! basic strides
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    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 (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G011)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G011)          (AX023)   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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 54 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 55 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ eval    EX#1     C:  5 I:    1    4  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G011)           @XACT
+ rdstride UNE-NVAR C:  8 I:    2    4  J:    1    1  K:    1    1  L:    1    1
+ nulrgd  UNE-NVAR M:492 I:    1    2  J:    1    1  K:    1    1  L:    1    1
+ -DELETE UNE-NVAR M:493 I:    2    4  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G011)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27576,13 +27589,13 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
 ! cache hit after changes to COMPLETE_MISSING_LIMS and FLESH_OUT_AXIS
 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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 55 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ eval    EX#1     C:  5 I:    1    4  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G011)           @XACT
+ rdstride UNE-NVAR C:  8 I:    2    4  J:    1    1  K:    1    1  L:    1    1
+ nulrgd  UNE-NVAR M:471 I:    1    2  J:    1    1  K:    1    1  L:    1    1
+ -DELETE UNE-NVAR M:493 I:    2    4  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G011)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27596,26 +27609,26 @@ 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)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 54 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX024)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ -DELETE UNE-NVAR M:471 I:    1    2  J:    1    1  K:    1    1  L:    1    1
+ -DELETE UNE-NVAR M:492 I:    1    2  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G010)          (AX024)   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)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid A        C:  7 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G010)          (AX023)   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  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G018)           @XACT
- rdstride UNE-NVAR C: 10 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 54 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ eval    EX#1     C:  5 I:    1    4  J:    1    1  K:    1    1  L:    1    1
+ eval    A        C:  7 I:    1    2  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G010)           @XACT
+ rdstride UNE-NVAR C: 10 I:    2    4  J:    1    1  K:    1    1  L:    1    1
+ nulrgd  UNE-NVAR M:471 I:    1    2  J:    1    1  K:    1    1  L:    1    1
+ -DELETE UNE-NVAR M:492 I:    2    4  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : UNEVENVAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 points (X)
@@ -27627,14 +27640,14 @@ list/order=x/j=1/k=1/l=1 a
           1112.00  1114.00
 list/order=x/j=1/k=1/l=1 a		! from cache ...
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G018)           @XACT
- rdstride UNE-NVAR C: 10 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 49 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 55 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ eval    EX#1     C:  5 I:    1    4  J:    1    1  K:    1    1  L:    1    1
+ eval    A        C:  7 I:    1    2  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G010)           @XACT
+ rdstride UNE-NVAR C: 10 I:    2    4  J:    1    1  K:    1    1  L:    1    1
+ nulrgd  UNE-NVAR M:442 I:    1    2  J:    1    1  K:    1    1  L:    1    1
+ -DELETE UNE-NVAR M:493 I:    2    4  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : UNEVENVAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 points (X)
@@ -27652,26 +27665,26 @@ cancel memory/all
  -DELETE A        M: 54 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
  -DELETE A        M: 55 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
 load/k=1/l=1 UNEVENVAR
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    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 GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid GPC4            XUNEVEN   YUNEVEN   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  M: -999 -999  N: -999 -999
  reading UNE-NVAR M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
 LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    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 (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G010)          (AX023)   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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G018)           @XACT
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 54 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ eval    EX#1     C:  5 I:    1    4  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G010)           @XACT
+ rdstride UNE-NVAR C:  8 I:    2    4  J:    1    1  K:    1    1  L:    1    1
+ nulrgd  UNE-NVAR M:471 I:    1    2  J:    1    1  K:    1    1  L:    1    1
+ -DELETE UNE-NVAR M:492 I:    2    4  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27684,19 +27697,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)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    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 (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX023)   (AX025)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G011)          (AX023)   (AX025)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G011)          (AX023)   (AX025)   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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 49 dset:   1 I:    1    2  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 54 dset:   1 I:    2    4  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ eval    EX#1     C:  5 I:    1    4  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX023)   (AX025)   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G011)           @XACT
+ rdstride UNE-NVAR C:  8 I:    2    4  J:    1    5  K:    1    1  L:    1    1
+ nulrgd  UNE-NVAR M:442 I:    1    2  J:    1    3  K:    1    1  L:    1    1
+ -DELETE UNE-NVAR M:492 I:    2    4  J:    1    5  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G011)          (AX023)   (AX025)   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
@@ -27718,19 +27731,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)          (AX023)   (AX025)   ZAX1_6    TAX1_4    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 (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
- strip moduloing UNEVENVAR on X axis:     1    29 dset:   1
- reading UNE-NVAR M: 55 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing UNEVENVAR on X axis:     1    10 dset:   1
- regrid  UNE-NVAR M: 49 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          (AX023)   (AX025)   ZAX1_6    TAX1_4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G011)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G011)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ allocate dynamic grid (G011)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G011)           @XACT
+ strip moduloing UNEVENVAR on X axis:     1    29
+ reading UNE-NVAR M:493 I:    1   10  J:    1    1  K:    1    1  L:    1    1
+ doing moduloing UNEVENVAR on X axis:     1    10
+ regrid  UNE-NVAR M:442 I:    1    5  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G011)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27748,19 +27761,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)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    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 (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX023)   (AX025)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G011)          (AX023)   (AX025)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G011)          (AX023)   (AX025)   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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 55 dset:   1 I:    2    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ eval    EX#1     C:  5 I:    1    4  J:    1    3  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX023)   (AX025)   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G011)           @XACT
+ rdstride UNE-NVAR C:  8 I:    2    4  J:    1    3  K:    1    1  L:    1    1
+ nulrgd  UNE-NVAR M:471 I:    1    2  J:    1    2  K:    1    1  L:    1    1
+ -DELETE UNE-NVAR M:493 I:    2    4  J:    1    3  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G011)          (AX023)   (AX025)   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
@@ -27772,20 +27785,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)          (AX023)   (AX025)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1    2  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  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 (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          (AX023)   (AX025)   ZAX1_6    TAX1_4
+ -DELETE UNE-NVAR M:471 I:    1    2  J:    1    2  K:    1    1  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX024)   (AX026)   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G011)          (AX024)   (AX026)   ZAX1_6    TAX1_4
+ allocate dynamic grid (G011)          (AX024)   (AX026)   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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    6  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 55 dset:   1 I:    1    3  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    2    6  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ eval    EX#1     C:  5 I:    1    4  J:    1    3  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX024)   (AX026)   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G011)           @XACT
+ rdstride UNE-NVAR C:  8 I:    2    6  J:    1    5  K:    1    1  L:    1    1
+ nulrgd  UNE-NVAR M:493 I:    1    3  J:    1    3  K:    1    1  L:    1    1
+ -DELETE UNE-NVAR M:471 I:    2    6  J:    1    5  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G011)          (AX024)   (AX026)   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
@@ -27800,19 +27813,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)          (AX024)   (AX026)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 55 dset:   1 I:    1    3  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  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 (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          (AX024)   (AX026)   ZAX1_6    TAX1_4
+ -DELETE UNE-NVAR M:493 I:    1    3  J:    1    3  K:    1    1  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G011)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G011)          (AX024)   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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G010)           @AVE
- reading UNE-NVAR M: 55 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- regrid  UNE-NVAR M: 52 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ eval    EX#1     C:  5 I:    1    4  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G011)           @AVE
+ reading UNE-NVAR M:493 I:    1    9  J:    1    1  K:    1    1  L:    1    1
+ regrid  UNE-NVAR M:471 I:    1    4  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G011)          (AX024)   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
@@ -27827,20 +27840,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)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  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 (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4
+ -DELETE UNE-NVAR M:471 I:    1    4  J:    1    1  K:    1    1  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G011)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G011)          (AX026)   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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G010)           @XACT
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 49 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 52 dset:   1 I:    2    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ eval    EX#1     C:  5 I:    1    4  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G011)           @XACT
+ rdstride UNE-NVAR C:  8 I:    2    8  J:    1    1  K:    1    1  L:    1    1
+ nulrgd  UNE-NVAR M:442 I:    1    4  J:    1    1  K:    1    1  L:    1    1
+ -DELETE UNE-NVAR M:471 I:    2    8  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G011)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27857,19 +27870,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)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 49 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  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 (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          (AX026)   YUNEVEN   ZAX1_6    TAX1_4
+ -DELETE UNE-NVAR M:442 I:    1    4  J:    1    1  K:    1    1  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G011)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G011)          (AX024)   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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G010)           @AVE
- reading UNE-NVAR M: 49 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- regrid  UNE-NVAR M: 52 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ eval    EX#1     C:  5 I:    1    4  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G011)           @AVE
+ reading UNE-NVAR M:442 I:    1   10  J:    1    1  K:    1    1  L:    1    1
+ regrid  UNE-NVAR M:471 I:    1    5  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G011)          (AX024)   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
@@ -27892,19 +27905,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)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 52 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  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 (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G010)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 54 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 52 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          (AX024)   YUNEVEN   ZAX1_6    TAX1_4
+ -DELETE UNE-NVAR M:471 I:    1    5  J:    1    1  K:    1    1  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX026)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G011)          (AX026)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G011)          (AX026)   YAX1_30   ZAX1_20   TAX1_10
+ eval    EX#1     C:  4 I:    3    6  J:    2    4  K:    1    2  L:    1    1
+ allocate dynamic grid (G011)          (AX026)   YAX1_30   ZAX1_20   TAX1_10
+ strip regrid on X: BIGVAR --> (G011)           @XACT
+ rdstride BIGVAR   C:  7 I:    3    9  J:    2    4  K:    1    2  L:    1    1
+ nulrgd  BIGVAR   M:492 I:    1    4  J:    2    4  K:    1    2  L:    1    1
+ -DELETE BIGVAR   M:471 I:    3    9  J:    2    4  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G011)          (AX026)   YAX1_30   ZAX1_20   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27921,19 +27934,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)          (AX026)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M: 54 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  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 (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on Y: BIGVAR --> (G010)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 52 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XAX1_40   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          (AX026)   YAX1_30   ZAX1_20   TAX1_10
+ -DELETE BIGVAR   M:492 I:    1    4  J:    2    4  K:    1    2  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          XAX1_40   (AX024)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G011)          XAX1_40   (AX024)   ZAX1_20   TAX1_10
+ allocate dynamic grid (G011)          XAX1_40   (AX024)   ZAX1_20   TAX1_10
+ eval    EX#1     C:  4 I:    3    6  J:    2    4  K:    1    2  L:    1    1
+ allocate dynamic grid (G011)          XAX1_40   (AX024)   ZAX1_20   TAX1_10
+ strip regrid on Y: BIGVAR --> (G011)           @XACT
+ rdstride BIGVAR   C:  7 I:    3    6  J:    2    6  K:    1    2  L:    1    1
+ nulrgd  BIGVAR   M:471 I:    3    6  J:    1    3  K:    1    2  L:    1    1
+ -DELETE BIGVAR   M:492 I:    3    6  J:    2    6  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G011)          XAX1_40   (AX024)   ZAX1_20   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27950,19 +27963,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   (AX024)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M: 52 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  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 (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G010)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 52 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          XAX1_40   (AX024)   ZAX1_20   TAX1_10
+ -DELETE BIGVAR   M:471 I:    3    6  J:    1    3  K:    1    2  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX026)   (AX025)   (AX027)   TAX1_10
+ dealloc  dynamic grid (G011)          (AX026)   (AX025)   (AX027)   TAX1_10
+ allocate dynamic grid (G011)          (AX026)   (AX025)   (AX027)   TAX1_10
+ eval    EX#1     C:  4 I:    3    6  J:    2    4  K:    1    2  L:    1    1
+ allocate dynamic grid (G011)          (AX026)   (AX025)   (AX027)   TAX1_10
+ strip regrid on X: BIGVAR --> (G011)           @XACT
+ rdstride BIGVAR   C:  7 I:    3    9  J:    2    6  K:    1    3  L:    1    1
+ nulrgd  BIGVAR   M:492 I:    1    4  J:    1    3  K:    1    2  L:    1    1
+ -DELETE BIGVAR   M:471 I:    3    9  J:    2    6  K:    1    3  L:    1    1
+ dealloc  dynamic grid (G011)          (AX026)   (AX025)   (AX027)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -27979,25 +27992,25 @@ 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
- -DELETE UNE-NVAR M: 49 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 55 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          (AX026)   (AX025)   (AX027)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ -DELETE UNE-NVAR M:442 I:    1   10  J:    1    1  K:    1    1  L:    1    1
+ -DELETE BIGVAR   M:492 I:    1    4  J:    1    3  K:    1    2  L:    1    1
+ -DELETE UNE-NVAR M:493 I:    1    9  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G011)          (AX026)   (AX025)   (AX027)   TAX1_10
+ dealloc  dynamic grid (G010)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4
  
 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)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G018)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 54 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 55 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX027)   YAX1_30   XAX1_40   TAX1_10
+ dealloc  dynamic grid (G010)          (AX027)   YAX1_30   XAX1_40   TAX1_10
+ allocate dynamic grid (G010)          (AX027)   YAX1_30   XAX1_40   TAX1_10
+ eval    EX#1     C:  4 I:    3    6  J:    2    4  K:    1    2  L:    1    1
+ allocate dynamic grid (G010)          (AX027)   YAX1_30   XAX1_40   TAX1_10
+ strip regrid on X: BIGVAR --> (G010)           @XACT
+ rdstride BIGVAR   C:  7 I:    3    9  J:    2    4  K:    1    2  L:    1    1
+ nulrgd  BIGVAR   M:492 I:    1    4  J:    2    4  K:    1    2  L:    1    1
+ -DELETE BIGVAR   M:493 I:    3    9  J:    2    4  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G010)          (AX027)   YAX1_30   XAX1_40   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -28014,19 +28027,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)          (AX027)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M: 54 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  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 (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
- strip regrid on Y: BIGVAR --> (G018)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 55 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          ZAX1_20   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX027)   YAX1_30   XAX1_40   TAX1_10
+ -DELETE BIGVAR   M:492 I:    1    4  J:    2    4  K:    1    2  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          ZAX1_20   (AX023)   XAX1_40   TAX1_10
+ dealloc  dynamic grid (G010)          ZAX1_20   (AX023)   XAX1_40   TAX1_10
+ allocate dynamic grid (G010)          ZAX1_20   (AX023)   XAX1_40   TAX1_10
+ eval    EX#1     C:  4 I:    3    6  J:    2    4  K:    1    2  L:    1    1
+ allocate dynamic grid (G010)          ZAX1_20   (AX023)   XAX1_40   TAX1_10
+ strip regrid on Y: BIGVAR --> (G010)           @XACT
+ rdstride BIGVAR   C:  7 I:    3    6  J:    2    6  K:    1    2  L:    1    1
+ nulrgd  BIGVAR   M:493 I:    3    6  J:    1    3  K:    1    2  L:    1    1
+ -DELETE BIGVAR   M:492 I:    3    6  J:    2    6  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G010)          ZAX1_20   (AX023)   XAX1_40   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -28043,19 +28056,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   (AX023)   XAX1_40   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M: 55 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  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 (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G018)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 55 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          ZAX1_20   (AX023)   XAX1_40   TAX1_10
+ -DELETE BIGVAR   M:493 I:    3    6  J:    1    3  K:    1    2  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX027)   (AX025)   (AX026)   TAX1_10
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   (AX026)   TAX1_10
+ allocate dynamic grid (G010)          (AX027)   (AX025)   (AX026)   TAX1_10
+ eval    EX#1     C:  4 I:    3    6  J:    2    4  K:    1    2  L:    1    1
+ allocate dynamic grid (G010)          (AX027)   (AX025)   (AX026)   TAX1_10
+ strip regrid on X: BIGVAR --> (G010)           @XACT
+ rdstride BIGVAR   C:  7 I:    3    9  J:    2    6  K:    1    3  L:    1    1
+ nulrgd  BIGVAR   M:492 I:    1    4  J:    1    3  K:    1    2  L:    1    1
+ -DELETE BIGVAR   M:493 I:    3    9  J:    2    6  K:    1    3  L:    1    1
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   (AX026)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28072,22 +28085,22 @@ 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
- -DELETE BIGVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M:492 I:    1    4  J:    1    3  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   (AX026)   TAX1_10
  
 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)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G018)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 55 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX025)   XAX1_40   YAX1_30   TAX1_10
+ dealloc  dynamic grid (G010)          (AX025)   XAX1_40   YAX1_30   TAX1_10
+ allocate dynamic grid (G010)          (AX025)   XAX1_40   YAX1_30   TAX1_10
+ eval    EX#1     C:  4 I:    3    6  J:    2    4  K:    1    2  L:    1    1
+ allocate dynamic grid (G010)          (AX025)   XAX1_40   YAX1_30   TAX1_10
+ strip regrid on X: BIGVAR --> (G010)           @XACT
+ rdstride BIGVAR   C:  7 I:    3    9  J:    2    4  K:    1    2  L:    1    1
+ nulrgd  BIGVAR   M:493 I:    1    4  J:    2    4  K:    1    2  L:    1    1
+ -DELETE BIGVAR   M:492 I:    3    9  J:    2    4  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G010)          (AX025)   XAX1_40   YAX1_30   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -28104,19 +28117,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)          (AX025)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M: 55 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  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 (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
- strip regrid on Y: BIGVAR --> (G018)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 54 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 55 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          ZAX1_20   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX025)   XAX1_40   YAX1_30   TAX1_10
+ -DELETE BIGVAR   M:493 I:    1    4  J:    2    4  K:    1    2  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          ZAX1_20   (AX026)   YAX1_30   TAX1_10
+ dealloc  dynamic grid (G010)          ZAX1_20   (AX026)   YAX1_30   TAX1_10
+ allocate dynamic grid (G010)          ZAX1_20   (AX026)   YAX1_30   TAX1_10
+ eval    EX#1     C:  4 I:    3    6  J:    2    4  K:    1    2  L:    1    1
+ allocate dynamic grid (G010)          ZAX1_20   (AX026)   YAX1_30   TAX1_10
+ strip regrid on Y: BIGVAR --> (G010)           @XACT
+ rdstride BIGVAR   C:  7 I:    3    6  J:    2    6  K:    1    2  L:    1    1
+ nulrgd  BIGVAR   M:492 I:    3    6  J:    1    3  K:    1    2  L:    1    1
+ -DELETE BIGVAR   M:493 I:    3    6  J:    2    6  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G010)          ZAX1_20   (AX026)   YAX1_30   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -28133,19 +28146,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   (AX026)   YAX1_30   TAX1_10   NORMAL    NORMAL
- -DELETE BIGVAR   M: 54 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  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 (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G018)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 54 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          ZAX1_20   (AX026)   YAX1_30   TAX1_10
+ -DELETE BIGVAR   M:492 I:    3    6  J:    1    3  K:    1    2  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX025)   (AX027)   (AX023)   TAX1_10
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   (AX023)   TAX1_10
+ allocate dynamic grid (G010)          (AX025)   (AX027)   (AX023)   TAX1_10
+ eval    EX#1     C:  4 I:    3    6  J:    2    4  K:    1    2  L:    1    1
+ allocate dynamic grid (G010)          (AX025)   (AX027)   (AX023)   TAX1_10
+ strip regrid on X: BIGVAR --> (G010)           @XACT
+ rdstride BIGVAR   C:  7 I:    3    9  J:    2    6  K:    1    3  L:    1    1
+ nulrgd  BIGVAR   M:493 I:    1    4  J:    1    3  K:    1    2  L:    1    1
+ -DELETE BIGVAR   M:492 I:    3    9  J:    2    6  K:    1    3  L:    1    1
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   (AX023)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28162,8 +28175,8 @@ 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
- -DELETE BIGVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M:493 I:    1    4  J:    1    3  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   (AX023)   TAX1_10
  
 ! now with xytvar
 cancel region
@@ -28181,18 +28194,18 @@ show grid xytvar
  normal    E
  normal    F
 list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     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 (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX027)   YLAT      NORMAL    TTIME
+ dealloc  dynamic grid (G010)          (AX027)   YLAT      NORMAL    TTIME
+ allocate dynamic grid (G010)          (AX027)   YLAT      NORMAL    TTIME
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ allocate dynamic grid (G010)          (AX027)   YLAT      NORMAL    TTIME
+ strip regrid on X: XYTVAR --> (G010)           @XACT
+ rdstride XYTVAR   C:  7 I:    1    7  J:    1    3  K: -999 -999  L:    1    2
+ nulrgd  XYTVAR   M:492 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ -DELETE XYTVAR   M:493 I:    1    7  J:    1    3  K: -999 -999  L:    1    2
+ dealloc  dynamic grid (G010)          (AX027)   YLAT      NORMAL    TTIME
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
              FILENAME : bn_strides.cdf
@@ -28208,19 +28221,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)          (AX027)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- strip regrid on Y: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          XLON      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX027)   YLAT      NORMAL    TTIME
+ -DELETE XYTVAR   M:492 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          XLON      (AX023)   NORMAL    TTIME
+ dealloc  dynamic grid (G010)          XLON      (AX023)   NORMAL    TTIME
+ allocate dynamic grid (G010)          XLON      (AX023)   NORMAL    TTIME
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ allocate dynamic grid (G010)          XLON      (AX023)   NORMAL    TTIME
+ strip regrid on Y: XYTVAR --> (G010)           @XACT
+ rdstride XYTVAR   C:  7 I:    1    4  J:    2    6  K: -999 -999  L:    1    2
+ nulrgd  XYTVAR   M:493 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ -DELETE XYTVAR   M:492 I:    1    4  J:    2    6  K: -999 -999  L:    1    2
+ dealloc  dynamic grid (G010)          XLON      (AX023)   NORMAL    TTIME
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28236,19 +28249,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      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          XLON      (AX023)   NORMAL    TTIME
+ -DELETE XYTVAR   M:493 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX027)   (AX025)   NORMAL    (AX026)
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   NORMAL    (AX026)
+ allocate dynamic grid (G010)          (AX027)   (AX025)   NORMAL    (AX026)
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ allocate dynamic grid (G010)          (AX027)   (AX025)   NORMAL    (AX026)
+ strip regrid on X: XYTVAR --> (G010)           @XACT
+ rdstride XYTVAR   C:  7 I:    1    7  J:    2    6  K: -999 -999  L:    3    5
+ nulrgd  XYTVAR   M:492 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ -DELETE XYTVAR   M:493 I:    1    7  J:    2    6  K: -999 -999  L:    3    5
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   NORMAL    (AX026)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -28264,8 +28277,8 @@ 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
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
+ -DELETE XYTVAR   M:492 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   NORMAL    (AX026)
  
 use/order=yx bn_strides
 show grid xytvar
@@ -28280,18 +28293,18 @@ show grid xytvar
  normal    E
  normal    F
 list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            YLAT      XLON      NORMAL    TTIME     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 (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid GPC5            YLAT      XLON      NORMAL    TTIME
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX025)   XLON      NORMAL    TTIME
+ dealloc  dynamic grid (G010)          (AX025)   XLON      NORMAL    TTIME
+ allocate dynamic grid (G010)          (AX025)   XLON      NORMAL    TTIME
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ allocate dynamic grid (G010)          (AX025)   XLON      NORMAL    TTIME
+ strip regrid on X: XYTVAR --> (G010)           @XACT
+ rdstride XYTVAR   C:  7 I:    1    7  J:    1    3  K: -999 -999  L:    1    2
+ nulrgd  XYTVAR   M:493 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ -DELETE XYTVAR   M:492 I:    1    7  J:    1    3  K: -999 -999  L:    1    2
+ dealloc  dynamic grid (G010)          (AX025)   XLON      NORMAL    TTIME
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
              FILENAME : bn_strides.cdf
@@ -28307,19 +28320,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)          (AX025)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
- strip regrid on Y: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          YLAT      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX025)   XLON      NORMAL    TTIME
+ -DELETE XYTVAR   M:493 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          YLAT      (AX026)   NORMAL    TTIME
+ dealloc  dynamic grid (G010)          YLAT      (AX026)   NORMAL    TTIME
+ allocate dynamic grid (G010)          YLAT      (AX026)   NORMAL    TTIME
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ allocate dynamic grid (G010)          YLAT      (AX026)   NORMAL    TTIME
+ strip regrid on Y: XYTVAR --> (G010)           @XACT
+ rdstride XYTVAR   C:  7 I:    1    4  J:    2    6  K: -999 -999  L:    1    2
+ nulrgd  XYTVAR   M:492 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ -DELETE XYTVAR   M:493 I:    1    4  J:    2    6  K: -999 -999  L:    1    2
+ dealloc  dynamic grid (G010)          YLAT      (AX026)   NORMAL    TTIME
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28335,19 +28348,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      (AX026)   NORMAL    TTIME     NORMAL    NORMAL
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          YLAT      (AX026)   NORMAL    TTIME
+ -DELETE XYTVAR   M:492 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX025)   (AX027)   NORMAL    (AX023)
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   NORMAL    (AX023)
+ allocate dynamic grid (G010)          (AX025)   (AX027)   NORMAL    (AX023)
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ allocate dynamic grid (G010)          (AX025)   (AX027)   NORMAL    (AX023)
+ strip regrid on X: XYTVAR --> (G010)           @XACT
+ rdstride XYTVAR   C:  7 I:    1    7  J:    2    6  K: -999 -999  L:    3    5
+ nulrgd  XYTVAR   M:493 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ -DELETE XYTVAR   M:492 I:    1    7  J:    2    6  K: -999 -999  L:    3    5
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   NORMAL    (AX023)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -28363,8 +28376,8 @@ 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
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
+ -DELETE XYTVAR   M:493 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   NORMAL    (AX023)
  
 use/order=tyx bn_strides
 show grid xytvar
@@ -28379,18 +28392,18 @@ show grid xytvar
  normal    E
  normal    F
 list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            TTIME     YLAT      NORMAL    XLON      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 (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ dealloc  dynamic grid GPC5            TTIME     YLAT      NORMAL    XLON
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX027)   YLAT      NORMAL    XLON
+ dealloc  dynamic grid (G010)          (AX027)   YLAT      NORMAL    XLON
+ allocate dynamic grid (G010)          (AX027)   YLAT      NORMAL    XLON
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ allocate dynamic grid (G010)          (AX027)   YLAT      NORMAL    XLON
+ strip regrid on X: XYTVAR --> (G010)           @XACT
+ rdstride XYTVAR   C:  7 I:    1    7  J:    1    3  K: -999 -999  L:    1    2
+ nulrgd  XYTVAR   M:492 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ -DELETE XYTVAR   M:493 I:    1    7  J:    1    3  K: -999 -999  L:    1    2
+ dealloc  dynamic grid (G010)          (AX027)   YLAT      NORMAL    XLON
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28406,19 +28419,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)          (AX027)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
- allocate dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
- strip regrid on Y: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          TTIME     (AX023)   NORMAL    XLON      NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX027)   YLAT      NORMAL    XLON
+ -DELETE XYTVAR   M:492 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          TTIME     (AX023)   NORMAL    XLON
+ dealloc  dynamic grid (G010)          TTIME     (AX023)   NORMAL    XLON
+ allocate dynamic grid (G010)          TTIME     (AX023)   NORMAL    XLON
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ allocate dynamic grid (G010)          TTIME     (AX023)   NORMAL    XLON
+ strip regrid on Y: XYTVAR --> (G010)           @XACT
+ rdstride XYTVAR   C:  7 I:    1    4  J:    2    6  K: -999 -999  L:    1    2
+ nulrgd  XYTVAR   M:493 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ -DELETE XYTVAR   M:492 I:    1    4  J:    2    6  K: -999 -999  L:    1    2
+ dealloc  dynamic grid (G010)          TTIME     (AX023)   NORMAL    XLON
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28434,19 +28447,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     (AX023)   NORMAL    XLON      NORMAL    NORMAL
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          TTIME     (AX023)   NORMAL    XLON
+ -DELETE XYTVAR   M:493 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX027)   (AX025)   NORMAL    (AX026)
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   NORMAL    (AX026)
+ allocate dynamic grid (G010)          (AX027)   (AX025)   NORMAL    (AX026)
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ allocate dynamic grid (G010)          (AX027)   (AX025)   NORMAL    (AX026)
+ strip regrid on X: XYTVAR --> (G010)           @XACT
+ rdstride XYTVAR   C:  7 I:    1    7  J:    2    6  K: -999 -999  L:    3    5
+ nulrgd  XYTVAR   M:492 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ -DELETE XYTVAR   M:493 I:    1    7  J:    2    6  K: -999 -999  L:    3    5
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   NORMAL    (AX026)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
              FILENAME : bn_strides.cdf
@@ -28462,8 +28475,8 @@ 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
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   NORMAL    (AX026)   NORMAL    NORMAL
+ -DELETE XYTVAR   M:492 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   NORMAL    (AX026)
  
 use/order=txy bn_strides
 show grid xytvar
@@ -28478,18 +28491,18 @@ show grid xytvar
  normal    E
  normal    F
 list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            TTIME     XLON      NORMAL    YLAT      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 (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ dealloc  dynamic grid GPC5            TTIME     XLON      NORMAL    YLAT
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX025)   XLON      NORMAL    YLAT
+ dealloc  dynamic grid (G010)          (AX025)   XLON      NORMAL    YLAT
+ allocate dynamic grid (G010)          (AX025)   XLON      NORMAL    YLAT
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ allocate dynamic grid (G010)          (AX025)   XLON      NORMAL    YLAT
+ strip regrid on X: XYTVAR --> (G010)           @XACT
+ rdstride XYTVAR   C:  7 I:    1    7  J:    1    3  K: -999 -999  L:    1    2
+ nulrgd  XYTVAR   M:493 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ -DELETE XYTVAR   M:492 I:    1    7  J:    1    3  K: -999 -999  L:    1    2
+ dealloc  dynamic grid (G010)          (AX025)   XLON      NORMAL    YLAT
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28505,19 +28518,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)          (AX025)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
- dealloc  dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
- allocate dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
- strip regrid on Y: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          TTIME     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX025)   XLON      NORMAL    YLAT
+ -DELETE XYTVAR   M:493 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          TTIME     (AX026)   NORMAL    YLAT
+ dealloc  dynamic grid (G010)          TTIME     (AX026)   NORMAL    YLAT
+ allocate dynamic grid (G010)          TTIME     (AX026)   NORMAL    YLAT
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ allocate dynamic grid (G010)          TTIME     (AX026)   NORMAL    YLAT
+ strip regrid on Y: XYTVAR --> (G010)           @XACT
+ rdstride XYTVAR   C:  7 I:    1    4  J:    2    6  K: -999 -999  L:    1    2
+ nulrgd  XYTVAR   M:492 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ -DELETE XYTVAR   M:493 I:    1    4  J:    2    6  K: -999 -999  L:    1    2
+ dealloc  dynamic grid (G010)          TTIME     (AX026)   NORMAL    YLAT
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28533,19 +28546,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     (AX026)   NORMAL    YLAT      NORMAL    NORMAL
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          TTIME     (AX026)   NORMAL    YLAT
+ -DELETE XYTVAR   M:492 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX025)   (AX027)   NORMAL    (AX023)
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   NORMAL    (AX023)
+ allocate dynamic grid (G010)          (AX025)   (AX027)   NORMAL    (AX023)
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ allocate dynamic grid (G010)          (AX025)   (AX027)   NORMAL    (AX023)
+ strip regrid on X: XYTVAR --> (G010)           @XACT
+ rdstride XYTVAR   C:  7 I:    1    7  J:    2    6  K: -999 -999  L:    3    5
+ nulrgd  XYTVAR   M:493 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ -DELETE XYTVAR   M:492 I:    1    7  J:    2    6  K: -999 -999  L:    3    5
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   NORMAL    (AX023)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
              FILENAME : bn_strides.cdf
@@ -28561,8 +28574,8 @@ 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
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   NORMAL    (AX023)   NORMAL    NORMAL
+ -DELETE XYTVAR   M:493 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   NORMAL    (AX023)
  
 ! map into Z instead of T
 use/order=zxy bn_strides
@@ -28578,19 +28591,19 @@ show grid xytvar
  normal    E
  normal    F
 list/k=1:2 xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      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 (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX027)   XLON      YLAT      NORMAL
+ dealloc  dynamic grid (G010)          (AX027)   XLON      YLAT      NORMAL
+ allocate dynamic grid (G010)          (AX027)   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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  8 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  5 I:    1    4  J:    1    3  K:    1    2  L:    1    2
+ allocate dynamic grid (G010)          (AX027)   XLON      YLAT      NORMAL
+ strip regrid on X: XYTVAR --> (G010)           @XACT
+ rdstride XYTVAR   C:  8 I:    1    7  J:    1    3  K:    1    2  L: -999 -999
+ nulrgd  XYTVAR   M:492 I:    1    4  J:    1    3  K:    1    2  L: -999 -999
+ -DELETE XYTVAR   M:493 I:    1    7  J:    1    3  K:    1    2  L: -999 -999
+ dealloc  dynamic grid (G010)          (AX027)   XLON      YLAT      NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28606,20 +28619,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)          (AX027)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  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 (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX027)   XLON      YLAT      NORMAL
+ -DELETE XYTVAR   M:492 I:    1    4  J:    1    3  K:    1    2  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          TTIME     (AX023)   YLAT      NORMAL
+ dealloc  dynamic grid (G010)          TTIME     (AX023)   YLAT      NORMAL
+ allocate dynamic grid (G010)          TTIME     (AX023)   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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
- strip regrid on Y: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  8 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          TTIME     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  5 I:    1    4  J:    1    3  K:    1    2  L:    1    2
+ allocate dynamic grid (G010)          TTIME     (AX023)   YLAT      NORMAL
+ strip regrid on Y: XYTVAR --> (G010)           @XACT
+ rdstride XYTVAR   C:  8 I:    1    4  J:    2    6  K:    1    2  L: -999 -999
+ nulrgd  XYTVAR   M:493 I:    1    4  J:    1    3  K:    1    2  L: -999 -999
+ -DELETE XYTVAR   M:492 I:    1    4  J:    2    6  K:    1    2  L: -999 -999
+ dealloc  dynamic grid (G010)          TTIME     (AX023)   YLAT      NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28635,19 +28648,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     (AX023)   YLAT      NORMAL    NORMAL    NORMAL
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  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 (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G018)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 55 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          TTIME     (AX023)   YLAT      NORMAL
+ -DELETE XYTVAR   M:493 I:    1    4  J:    1    3  K:    1    2  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX027)   (AX025)   (AX026)   NORMAL
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   (AX026)   NORMAL
+ allocate dynamic grid (G010)          (AX027)   (AX025)   (AX026)   NORMAL
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ allocate dynamic grid (G010)          (AX027)   (AX025)   (AX026)   NORMAL
+ strip regrid on X: XYTVAR --> (G010)           @XACT
+ rdstride XYTVAR   C:  7 I:    1    7  J:    2    6  K:    3    5  L: -999 -999
+ nulrgd  XYTVAR   M:492 I:    1    4  J:    1    3  K:    1    2  L: -999 -999
+ -DELETE XYTVAR   M:493 I:    1    7  J:    2    6  K:    3    5  L: -999 -999
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   (AX026)   NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -28663,8 +28676,8 @@ 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
- -DELETE XYTVAR   M: 54 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   NORMAL    NORMAL    NORMAL
+ -DELETE XYTVAR   M:492 I:    1    4  J:    1    3  K:    1    2  L: -999 -999
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   (AX026)   NORMAL
  
  
 ! * * * * * MIXED STRIDES, PERMUTATIONS and REVERSALS * * * * *
@@ -28686,17 +28699,17 @@ cancel region; set region/l=1
 ! reference output
 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)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G018)           @XACT
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX025)   (AX027)   (AX023)   TAX1_6
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   (AX023)   TAX1_6
+ allocate dynamic grid (G010)          (AX025)   (AX027)   (AX023)   TAX1_6
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G010)          (AX025)   (AX027)   (AX023)   TAX1_6
+ strip regrid on X: MIDVAR --> (G010)           @XACT
+ rdstride MIDVAR   C:  7 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ nulrgd  MIDVAR   M:493 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ -DELETE MIDVAR   M:492 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   (AX023)   TAX1_6
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28711,25 +28724,25 @@ 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
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M:493 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   (AX023)   TAX1_6
  
 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)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G018)           @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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX027)   (AX025)   (AX026)   TAX1_6
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   (AX026)   TAX1_6
+ allocate dynamic grid (G010)          (AX027)   (AX025)   (AX026)   TAX1_6
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G010)          (AX027)   (AX025)   (AX026)   TAX1_6
+ strip regrid on X: MIDVAR --> (G010)           @XACT
+ strip reversing MIDVAR on Y axis:     2     5
+ rdstride MIDVAR   C:  8 I:    1    5  J:    5    8  K:    3    5  L:    1    1
+ doing reversing MIDVAR on Y axis:     2     5
+ -DELETE MIDVAR   M:493 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ nulrgd  MIDVAR   M:493 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ -DELETE MIDVAR   M:492 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   (AX026)   TAX1_6
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28744,25 +28757,25 @@ 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
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M:493 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   (AX026)   TAX1_6
  
 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)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G018)           @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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on X axis:     1     5 dset:   1
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX025)   (AX027)   (AX023)   TAX1_6
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   (AX023)   TAX1_6
+ allocate dynamic grid (G010)          (AX025)   (AX027)   (AX023)   TAX1_6
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G010)          (AX025)   (AX027)   (AX023)   TAX1_6
+ strip regrid on X: MIDVAR --> (G010)           @XACT
+ strip reversing MIDVAR on X axis:     1     5
+ rdstride MIDVAR   C:  8 I:    4    8  J:    2    5  K:    3    5  L:    1    1
+ doing reversing MIDVAR on X axis:     1     5
+ -DELETE MIDVAR   M:493 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ nulrgd  MIDVAR   M:493 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ -DELETE MIDVAR   M:492 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   (AX023)   TAX1_6
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28777,23 +28790,23 @@ 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
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M:493 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   (AX023)   TAX1_6
  
 ! reference output
 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)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G018)           @XACT
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 54 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX027)   (AX025)   (AX026)   ZAX1_7
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   (AX026)   ZAX1_7
+ allocate dynamic grid (G010)          (AX027)   (AX025)   (AX026)   ZAX1_7
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G010)          (AX027)   (AX025)   (AX026)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G010)           @XACT
+ rdstride MIDVAR   C:  7 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ nulrgd  MIDVAR   M:492 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ -DELETE MIDVAR   M:493 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   (AX026)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28808,26 +28821,26 @@ 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
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:492 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   (AX026)   ZAX1_7
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
 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)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G018)           @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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on X axis:     1     5 dset:   1
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 54 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX025)   (AX027)   (AX023)   ZAX1_7
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   (AX023)   ZAX1_7
+ allocate dynamic grid (G010)          (AX025)   (AX027)   (AX023)   ZAX1_7
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G010)          (AX025)   (AX027)   (AX023)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G010)           @XACT
+ strip reversing MIDVAR on X axis:     1     5
+ rdstride MIDVAR   C:  8 I:    2    6  J:    4    7  K:    3    5  L:    7    7
+ doing reversing MIDVAR on X axis:     1     5
+ -DELETE MIDVAR   M:492 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ nulrgd  MIDVAR   M:492 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ -DELETE MIDVAR   M:493 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   (AX023)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28842,23 +28855,23 @@ 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
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:492 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   (AX023)   ZAX1_7
  
 ! reference output
 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)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G018)           @XACT
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX027)   (AX025)   (AX026)   ZAX1_7
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   (AX026)   ZAX1_7
+ allocate dynamic grid (G010)          (AX027)   (AX025)   (AX026)   ZAX1_7
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G010)          (AX027)   (AX025)   (AX026)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G010)           @XACT
+ rdstride MIDVAR   C:  7 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ nulrgd  MIDVAR   M:493 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ -DELETE MIDVAR   M:492 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   (AX026)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28873,25 +28886,25 @@ 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
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX027)   (AX025)   (AX026)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:493 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G010)          (AX027)   (AX025)   (AX026)   ZAX1_7
  
 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)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G018)           @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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 54 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX025)   (AX027)   (AX023)   ZAX1_7
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   (AX023)   ZAX1_7
+ allocate dynamic grid (G010)          (AX025)   (AX027)   (AX023)   ZAX1_7
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G010)          (AX025)   (AX027)   (AX023)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G010)           @XACT
+ strip reversing MIDVAR on Y axis:     2     5
+ rdstride MIDVAR   C:  8 I:    2    6  J:    5    8  K:    3    5  L:    7    7
+ doing reversing MIDVAR on Y axis:     2     5
+ -DELETE MIDVAR   M:493 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ nulrgd  MIDVAR   M:493 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ -DELETE MIDVAR   M:492 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   (AX023)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28906,8 +28919,8 @@ 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
- -DELETE MIDVAR   M: 55 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX025)   (AX027)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:493 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G010)          (AX025)   (AX027)   (AX023)   ZAX1_7
  
 GO bn_reset
 cancel mode verify
@@ -29217,17 +29230,17 @@ stat $1
 define axis/x=130e:80w:1 xtrop
 stat $1[gx=xtrop]
  !-> stat sst[gx=xtrop]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST --> (G002)           @LIN
- reading SST      M: 52 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 49 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ strip regrid on X: SST --> (G015)           @LIN
+ reading SST      M:471 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ regrid  SST      M:442 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -29246,28 +29259,28 @@ stat $1[gx=xtrop]
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 49 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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
- 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
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ -DELETE SST      M:442 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
+ pass #2 EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  pseudo  I        M: 49 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 stat $1[gx=xtrop]
  !-> stat sst[gx=xtrop]
- -DELETE I        M: 49 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST --> (G002)           @LIN
- reading SST      M: 49 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 27 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -DELETE I        M:442 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 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ strip regrid on X: SST --> (G015)           @LIN
+ reading SST      M:442 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ regrid  SST      M:146 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -29290,21 +29303,21 @@ let $1x = $1[gx=xtrop]
  !-> DEFINE VARIABLE sstx = sst[gx=xtrop]
 stat $1x
  !-> stat sstx
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 27 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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 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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTX     C:  6 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST --> (G002)           @LIN
- reading SST      M: 27 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 47 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ -DELETE SST      M:146 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid SSTX     C:  7 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ eval    SSTX     C:  6 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ strip regrid on X: SST --> (G015)           @LIN
+ reading SST      M:146 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ regrid  SST      M:396 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
  
              SST[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -29322,26 +29335,26 @@ stat $1x
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     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
- 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
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
+ pass #2 EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  pseudo  I        M: 44 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 stat $1x
  !-> stat sstx
- -DELETE I        M: 44 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTX     C:  6 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST --> (G002)           @LIN
- reading SST      M: 44 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 43 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -DELETE I        M:426 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 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ eval    SSTX     C:  6 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ strip regrid on X: SST --> (G015)           @LIN
+ reading SST      M:426 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ regrid  SST      M:412 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
  
              SST[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -29360,24 +29373,24 @@ stat $1x
  Standard deviation: 9.8848
  
 define grid/x=xtrop gx
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTX     M: 40 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTX     M: 46 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 43 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 47 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ -DELETE SSTX     M:392 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SSTX     M:431 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ -DELETE SST      M:396 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:412 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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST --> (G002)           @LIN
- reading SST      M: 47 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 43 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ strip regrid on X: SST --> (G015)           @LIN
+ reading SST      M:412 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ regrid  SST      M:396 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -29396,28 +29409,28 @@ stat $1[g=gx]
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST      M: 43 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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
- 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
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ -DELETE SST      M:396 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
+ pass #2 EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  pseudo  I        M: 43 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 stat $1[g=gx]
  !-> stat sst[g=gx]
- -DELETE I        M: 43 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST --> (G002)           @LIN
- reading SST      M: 43 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M: 46 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -DELETE I        M:396 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 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ strip regrid on X: SST --> (G015)           @LIN
+ reading SST      M:396 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ regrid  SST      M:431 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -29439,19 +29452,21 @@ 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     NORMAL    NORMAL
- -DELETE SST      M: 46 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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 (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST --> (G002)           @LIN
- reading SST      M: 46 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST      M: 40 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ -DELETE SST      M:431 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G015)          XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid (G015)          XTROP     YTROP     NORMAL    TIME4
+ allocate dynamic grid (G015)          XTROP     YTROP     NORMAL    TIME4
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G015)          XTROP     YTROP     NORMAL    TIME4
+ strip regrid on X: SST --> (G015)           @LIN
+ strip regrid on Y: SST --> XNTERMED         @LIN
+ reading SST      M:431 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ regrid  SST      M:392 I:   55  131  J:    1   41  K: -999 -999  L:    1    1
+ regrid  SST      M:388 I:    1  151  J:    1   41  K: -999 -999  L:    1    1
+ -DELETE SST      M:392 I:   55  131  J:    1   41  K: -999 -999  L:    1    1
+ dealloc  dynamic grid (G015)          XTROP     YTROP     NORMAL    TIME4
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X, 1 deg on Y
@@ -29470,29 +29485,31 @@ 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     NORMAL    NORMAL
- -DELETE SST      M: 40 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  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
- 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
+ dealloc  dynamic grid (G015)          XTROP     YTROP     NORMAL    TIME4
+ -DELETE SST      M:388 I:    1  151  J:    1   41  K: -999 -999  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
+ pass #2 EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  pseudo  I        M: 40 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 stat $1[gx=xtrop,gy=ytrop]
  !-> stat sst[gx=xtrop,gy=ytrop]
- -DELETE I        M: 40 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST --> (G002)           @LIN
- reading SST      M: 40 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid XY
- regrid  SST      M: 39 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
+ -DELETE I        M:388 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 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G015)          XTROP     YTROP     NORMAL    TIME4
+ dealloc  dynamic grid (G015)          XTROP     YTROP     NORMAL    TIME4
+ allocate dynamic grid (G015)          XTROP     YTROP     NORMAL    TIME4
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G015)          XTROP     YTROP     NORMAL    TIME4
+ strip regrid on X: SST --> (G015)           @LIN
+ strip regrid on Y: SST --> XNTERMED         @LIN
+ reading SST      M:388 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ regrid  SST      M:392 I:   55  131  J:    1   41  K: -999 -999  L:    1    1
+ regrid  SST      M:375 I:    1  151  J:    1   41  K: -999 -999  L:    1    1
+ -DELETE SST      M:392 I:   55  131  J:    1   41  K: -999 -999  L:    1    1
+ dealloc  dynamic grid (G015)          XTROP     YTROP     NORMAL    TIME4
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X, 1 deg on Y
@@ -29513,10 +29530,10 @@ 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     NORMAL    NORMAL
- -DELETE SST      M: 39 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- 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     NORMAL    NORMAL
+ dealloc  dynamic grid (G015)          XTROP     YTROP     NORMAL    TIME4
+ -DELETE SST      M:375 I:    1  151  J:    1   41  K: -999 -999  L:    1    1
+ getgrid EX#1     C:  6 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
 stat $1[g=gxyt]
  !-> stat sst[g=gxyt]
  dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
@@ -30049,20 +30066,20 @@ stat $1
 define axis/x=130e:80w:1 xtrop
 stat $1[gx=xtrop]
  !-> stat sst5[gx=xtrop]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST5 --> (G002)           @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 50 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 42 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 42 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 42 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ strip regrid on X: SST5 --> (G015)           @LIN
+ eval    SST5     C:  7 I:   55  131  J: -999 -999  K: -999 -999  L:    1    1
+ reading SST      M:330 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ constan cnst     M:360 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE cnst     M:360 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ regrid  SST5     M:360 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
  
              SST+5
              regrid: 1 deg on X
@@ -30081,31 +30098,31 @@ stat $1[gx=xtrop]
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5     M: 42 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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
- 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
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ -DELETE SST5     M:360 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
+ pass #2 EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  pseudo  I        M: 42 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 stat $1[gx=xtrop]
  !-> stat sst5[gx=xtrop]
- -DELETE I        M: 42 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST5 --> (G002)           @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 42 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 45 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 45 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 45 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -DELETE I        M:360 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 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ strip regrid on X: SST5 --> (G015)           @LIN
+ eval    SST5     C:  7 I:   55  131  J: -999 -999  K: -999 -999  L:    1    1
+ reading SST      M:360 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ constan cnst     M:280 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE cnst     M:280 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ regrid  SST5     M:280 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
  
              SST+5
              regrid: 1 deg on X
@@ -30128,24 +30145,24 @@ let $1x = $1[gx=xtrop]
  !-> DEFINE VARIABLE sst5x = sst5[gx=xtrop]
 stat $1x
  !-> stat sst5x
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5     M: 45 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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 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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5X    C:  6 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST5 --> (G002)           @LIN
- eval    SST5     C:  9 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 45 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 58 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 58 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 58 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ -DELETE SST5     M:280 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid SST5X    C:  7 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ eval    SST5X    C:  6 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ strip regrid on X: SST5 --> (G015)           @LIN
+ eval    SST5     C:  9 I:   55  131  J: -999 -999  K: -999 -999  L:    1    1
+ reading SST      M:280 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ constan cnst     M:281 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE cnst     M:281 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ regrid  SST5     M:281 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
  
              SST5[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -30163,29 +30180,29 @@ stat $1x
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     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
- 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
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
+ pass #2 EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  pseudo  I        M: 61 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 stat $1x
  !-> stat sst5x
- -DELETE I        M: 61 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5X    C:  6 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST5 --> (G002)           @LIN
- eval    SST5     C:  9 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 61 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 62 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 62 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -DELETE I        M:218 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 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ eval    SST5X    C:  6 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ strip regrid on X: SST5 --> (G015)           @LIN
+ eval    SST5     C:  9 I:   55  131  J: -999 -999  K: -999 -999  L:    1    1
+ reading SST      M:218 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ constan cnst     M:173 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE cnst     M:173 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ regrid  SST5     M:173 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
  
              SST5[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -30206,20 +30223,20 @@ stat $1x
 define grid/x=xtrop gx
 stat $1[g=gx]
  !-> stat sst5[g=gx]
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST5 --> (G002)           @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 65 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 66 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 66 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ strip regrid on X: SST5 --> (G015)           @LIN
+ eval    SST5     C:  7 I:   55  131  J: -999 -999  K: -999 -999  L:    1    1
+ reading SST      M:157 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ constan cnst     M:147 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE cnst     M:147 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ regrid  SST5     M:147 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
  
              SST+5
              regrid: 1 deg on X
@@ -30238,30 +30255,30 @@ stat $1[g=gx]
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     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
- 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
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
+ pass #2 EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
  strip limits reconciliation : EX#1
  eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  pseudo  I        M: 68 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 stat $1[g=gx]
  !-> stat sst5[g=gx]
- -DELETE I        M: 68 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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     NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- strip regrid on X: SST5 --> (G002)           @LIN
- eval    SST5     C:  7 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 68 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 69 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 69 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  SST5     M: 69 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
+ -DELETE I        M: 15 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 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ allocate dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ strip regrid on X: SST5 --> (G015)           @LIN
+ eval    SST5     C:  7 I:   55  131  J: -999 -999  K: -999 -999  L:    1    1
+ reading SST      M: 15 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ constan cnst     M:415 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE cnst     M:415 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ regrid  SST5     M:415 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
  
              SST+5
              regrid: 1 deg on X
@@ -30283,9 +30300,9 @@ 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     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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
  strip regrid on X: SST5 --> GXYT             @LIN
  eval    SST5     C:  7 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
  reading SST      M: 71 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
@@ -30495,47 +30512,47 @@ stat $1xyt
  
 let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sst5xyt = sst5[g=gxyt]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5XYT  M: 86 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5XYT  M: 90 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5X    M: 60 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5X    M: 64 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SST5     M: 58 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 62 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 66 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 69 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 31 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 41 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 51 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 57 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 59 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 63 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 67 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 70 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 72 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 73 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 75 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 76 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 78 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 79 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 81 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 82 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 84 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 85 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 88 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 89 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTSBX   M:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTSBX   M: 56 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTXAVE  M: 14 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTXAVE  M: 17 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4     NORMAL    NORMAL
- -DELETE SSTXYT   M: 24 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTXYT   M: 28 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4     NORMAL    NORMAL
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ -DELETE SST5XYT  M:210 I:    1  151  J:    1   41  K: -999 -999  L:    1    1
+ -DELETE SST5XYT  M:479 I:    1  151  J:    1   41  K: -999 -999  L:    1    1
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
+ -DELETE SST5X    M:165 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST5X    M:234 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ dealloc  dynamic grid (G015)          XTROP     COADSY    NORMAL    TIME4
+ -DELETE SST5     M:147 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST5     M:173 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST5     M:281 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST5     M:415 I:    1  151  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST5     M:109 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST5     M:113 I:    1  151  J:    1   41  K: -999 -999  L:    1    1
+ -DELETE SST5     M:119 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST5     M:145 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST5     M:168 I:    1  151  J:    1   41  K: -999 -999  L:    1    1
+ -DELETE SST5     M:170 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST5     M:229 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST5     M:255 I:    1  151  J:    1   41  K: -999 -999  L:    1    1
+ -DELETE SST5     M:272 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST5     M:290 I:    1  151  J:    1   41  K: -999 -999  L:    1    1
+ -DELETE SST5     M:294 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST5     M:310 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST5     M:328 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST5     M:370 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST5     M:373 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST5     M:391 I:    1  151  J:    1   41  K: -999 -999  L:    1    1
+ -DELETE SST5     M:393 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST5     M:440 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST5     M:488 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST5     M:497 I:    1  151  J:    1   41  K: -999 -999  L:    1    1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ -DELETE SSTSBX   M:107 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SSTSBX   M:428 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ -DELETE SSTXAVE  M:188 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SSTXAVE  M:221 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME4
+ -DELETE SSTXYT   M:287 I:    1  151  J:    1   41  K: -999 -999  L:    1    1
+ -DELETE SSTXYT   M:326 I:    1  151  J:    1   41  K: -999 -999  L:    1    1
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME4
 stat $1xyt
  !-> stat sst5xyt
  getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
@@ -31100,31 +31117,31 @@ let a = RESHAPE(I[I=1:3]+10*j[j=1:3], I[i=1:9])
  -DELETE A        M: 94 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
 say `a,return=isize`
- getgrid 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
- getgrid (C01,V11 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C31,V11 C: 11 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 (C31,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- 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    NORMAL    NORMAL
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C09,V11 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 94 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- constan cnst     M: 90 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M: 84 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE J        M: 84 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 90 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 95 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE I        M: 94 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C31,V11 C: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 94 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid A        C:  7 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid (C01,V11 C:  9 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid (C31,V11 C: 11 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
+ pass #2 (C31,V11 C: 11 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid (C09,V11 C: 12 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
+ pass #2 (C09,V11 C: 12 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G015)          ABSTRACT  ABSTRACT  NORMAL    NORMAL
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    1
+ eval    A        C:  6 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ eval    (C01,V11 C:  8 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ eval    (C09,V11 C: 10 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ pseudo  I        M:488 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999
+ constan cnst     M:393 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ pseudo  J        M:328 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999
+ -DELETE J        M:328 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999
+ -DELETE cnst     M:393 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE tpry     M:497 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999
+ -DELETE I        M:488 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999
+ eval    (C31,V11 C: 11 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ pseudo  I        M:488 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999
  !-> MESSAGE/CONTINUE 9
 9
 list/nohead a            ! no cache hit
@@ -31161,88 +31178,88 @@ EXIT/SCRIPT
  
 GO bn_reset
 cancel mode verify
- -DELETE SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  2 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  3 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  5 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  6 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  7 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  8 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  9 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 11 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 12 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 13 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 15 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 16 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 18 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 19 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 20 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 21 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 22 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 23 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 25 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 26 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 27 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 28 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 29 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 30 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 32 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 33 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 34 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 35 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 36 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 37 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 38 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 39 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 40 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 42 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 43 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 44 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 45 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 46 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 47 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 48 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 49 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 50 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 52 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 53 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 54 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 55 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 56 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 57 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 61 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 64 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 65 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 68 dset:   1 I:   55  131  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 69 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 70 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 71 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 74 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 76 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 77 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 80 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 81 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 83 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 85 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 87 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 92 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C31,V11 M: 78 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C31,V11 M: 95 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C09,V11 M: 79 dset:   0 I:    1    3  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C09,V11 M: 90 dset:   0 I:    1    3  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          ABSTRACT  ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C01,V11 M: 84 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 93 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 75 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M: 82 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE I        M: 94 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE str      M: 86 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE str      M: 89 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 13 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M: 15 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M: 89 I:    0  181  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M: 93 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:106 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST      M:108 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:109 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:121 I:    0  181  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:123 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:124 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:145 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:146 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:154 I:    0  181  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:157 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:158 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:166 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:167 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST      M:169 I:    0  181  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:172 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:173 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:177 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:191 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:213 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:218 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:232 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:247 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:255 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:256 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:267 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:273 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:274 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:278 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST      M:280 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:283 I:    1  151  J:    1   41  K: -999 -999  L:    1    1
+ -DELETE SST      M:288 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST      M:293 I:    1  151  J:    1   41  K: -999 -999  L:    1    1
+ -DELETE SST      M:300 I:    1  151  J:    1   41  K: -999 -999  L:    1    1
+ -DELETE SST      M:310 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:326 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST      M:327 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST      M:330 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:331 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST      M:344 I:    1  151  J:    1   41  K: -999 -999  L:    1    1
+ -DELETE SST      M:345 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST      M:346 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST      M:349 I:    1  151  J:    1   41  K: -999 -999  L:    1    1
+ -DELETE SST      M:360 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:369 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:371 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST      M:373 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:374 I:    1  151  J:    1   41  K: -999 -999  L:    1    1
+ -DELETE SST      M:375 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST      M:388 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST      M:392 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST      M:396 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:412 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:426 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:428 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST      M:431 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST      M:440 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:442 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:445 I:   55  131  J:   35   56  K: -999 -999  L:    1    1
+ -DELETE SST      M:471 I:   55  131  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:479 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:492 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ -DELETE SST      M:493 I:    1  180  J:    1   90  K: -999 -999  L:    1    1
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE (C31,V11 M:281 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE (C31,V11 M:497 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE (C09,V11 M:290 I:    1    3  J:    1    3  K: -999 -999  L: -999 -999
+ -DELETE (C09,V11 M:393 I:    1    3  J:    1    3  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G015)          ABSTRACT  ABSTRACT  NORMAL    NORMAL
+ -DELETE (C01,V11 M:328 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE (C01,V11 M:415 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE A        M:254 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE A        M:294 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE I        M:488 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE str      M:370 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE str      M:391 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
 GO bn_regrid_to_user		! G=user_var and related
 ! bn_regrid_to_user
 ! 8/99 *sh*
@@ -31457,7 +31474,7 @@ show grid
     GRID (G012)
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX001)   LATITUDE           201 r   10S                  10N
+ (AX005)   LATITUDE           201 r   10S                  10N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
  normal    E
@@ -31467,11 +31484,9 @@ Dynamic grids:
     GRID (G012)                          use count:   1
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX001)   LATITUDE           201 r   10S                  10N
+ (AX005)   LATITUDE           201 r   10S                  10N
  normal    Z
  TIME4     TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
     GRID (G006)                          use count:   1
  name       axis              # pts   start                end
  (AX012)   LONGITUDE          301 r   0E                   30E
@@ -31481,7 +31496,7 @@ Dynamic grids:
  normal    E
  normal    F
 Dynamic axes:
-    AXIS (AX001)                         use count:   1
+    AXIS (AX005)                         use count:   1
     AXIS (AX012)                         use count:   1
     AXIS (AX020)                         use count:   1
  
@@ -31598,62 +31613,58 @@ 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 (G010)
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX004)   LATITUDE            41 r   10S                  2S
+ (AX002)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
  normal    E
  normal    F
 SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5"
-    GRID (G018)
+    GRID (G010)
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX001)   LATITUDE            41 r   10S                  2S
+ (AX005)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
  normal    E
  normal    F
 SHOW GRID FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) ! imposed T axis
-    GRID (G011)
+    GRID (G018)
  name       axis              # pts   start                end
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX004)   LATITUDE            41 r   10S                  2S
+ (AX002)   LATITUDE            41 r   10S                  2S
  normal    Z
  (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
  normal    E
  normal    F
 SHOW GRID SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])      ! abstract X axis
-    GRID (G018)
+    GRID (G010)
  name       axis              # pts   start                end
  ABSTRACT  X             99999999 r   1                    1.E+08
- (AX004)   LATITUDE            41 r   10S                  2S
+ (AX002)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
  normal    E
  normal    F
 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 (G010)
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
  (AX011)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
- normal    E
- normal    F
-    GRID (G011)
+    GRID (G018)
  name       axis              # pts   start                end
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX004)   LATITUDE            41 r   10S                  2S
+ (AX002)   LATITUDE            41 r   10S                  2S
  normal    Z
- (AX001)   T (CYC/hour)         2 r   0.00034224           0.00068448
- normal    E
- normal    F
-    GRID (G018)
+ (AX005)   T (CYC/hour)         2 r   0.00034224           0.00068448
+    GRID (G010)
  name       axis              # pts   start                end
  ABSTRACT  X             99999999 r   1                    1.E+08
- (AX004)   LATITUDE            41 r   10S                  2S
+ (AX002)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
  normal    E
@@ -31662,30 +31673,30 @@ 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)
+ Last successful data access was on grid (G010)
+    GRID (G010)
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX001)   LATITUDE            41 r   10S                  2S
+ (AX005)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
  normal    E
  normal    F
 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 (G018)
+ Last successful data access was on grid (G018)
+    GRID (G018)
  name       axis              # pts   start                end
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX004)   LATITUDE            41 r   10S                  2S
+ (AX002)   LATITUDE            41 r   10S                  2S
  normal    Z
  (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
  normal    E
  normal    F
 list/j=1:5 j
              VARIABLE : J
-                        axis (AX004)
+                        axis (AX002)
              SUBSET   : 5 points (LATITUDE)
  9.2S   / 5:  5.00000
  9.4S   / 4:  4.00000
@@ -31697,24 +31708,24 @@ SHOW GRID MYGRID
     GRID MYGRID
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX004)   LATITUDE            41 r   10S                  2S
+ (AX002)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
  normal    E
  normal    F
 SHOW GRID/DYNAMIC
 Dynamic grids:
-    GRID (G011)                          use count:   1
+    GRID (G018)                          use count:   1
  name       axis              # pts   start                end
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX004)   LATITUDE            41 r   10S                  2S
+ (AX002)   LATITUDE            41 r   10S                  2S
  normal    Z
  (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
  normal    E
  normal    F
 Dynamic axes:
     AXIS (AX011)                         use count:   1
-    AXIS (AX004)                         use count:   2
+    AXIS (AX002)                         use count:   2
     AXIS (AX020)                         use count:   1
  
  
@@ -35547,19 +35558,19 @@ list/nohead b            ! using rdstride
  20   / 2:  20.0000
  22   / 3:   2.0000
 list/nohead a[i=1:25:3]  ! no strides --> reads full region without strides
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    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 (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A --> (G023)           @XACT
- strip moduloing A on X axis:     1    25 dset:   1
- reading A        M:325 dset:   1 I:    1   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:     1    20 dset:   1
- regrid  A        M:341 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G004)          (AX017)   NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G017)          (AX014)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G017)          (AX014)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G017)          (AX014)   NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G017)          (AX014)   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A --> (G017)           @XACT
+ strip moduloing A on X axis:     1    25
+ reading A        M:330 I:    1   20  J: -999 -999  K: -999 -999  L: -999 -999
+ doing moduloing A on X axis:     1    20
+ regrid  A        M:393 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G017)          (AX014)   NORMAL    NORMAL    NORMAL
  1    / 1:   1.0000
  4    / 2:   4.0000
  7    / 3:   7.0000
@@ -35570,24 +35581,24 @@ list/nohead a[i=1:25:3]  ! no strides --> reads full region without strides
  22   / 8:   2.0000
  25   / 9:   5.0000
 list/nohead b            ! reuse of cached result
- dealloc  dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M:341 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  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 (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    B        C:  6 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A --> (G022)           @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  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:    18    20 dset:   1
- -DELETE A        M:341 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- rdstride A        C: 11 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:     2     2 dset:   1
- -DELETE A        M:341 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  A        M:341 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:339 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G017)          (AX014)   NORMAL    NORMAL    NORMAL
+ -DELETE A        M:393 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G004)          (AX017)   NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ eval    B        C:  6 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G004)          (AX017)   NORMAL    NORMAL    NORMAL
+ strip regrid on X: A --> (G004)           @XACT
+ strip moduloing A on X axis:    18    22
+ rdstride A        C: 11 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999
+ doing moduloing A on X axis:    18    20
+ -DELETE A        M:393 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999
+ rdstride A        C: 11 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999
+ doing moduloing A on X axis:     2     2
+ -DELETE A        M:393 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999
+ nulrgd  A        M:393 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE A        M:392 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G004)          (AX017)   NORMAL    NORMAL    NORMAL
  18   / 1:  18.0000
  20   / 2:  20.0000
  22   / 3:   2.0000
@@ -35788,42 +35799,42 @@ list/nohead a[i=106:145:5]
 !  ***** STRING TESTS *****
 set mode diag
 list/nohead str[i=18:23:2] ! using rdstride
- dealloc  dynamic grid (G023)          (AX010)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M:335 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  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 (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: STR --> (G022)           @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  M: -999 -999  N: -999 -999
- doing moduloing STR on X axis:    18    20 dset:   1
- -DELETE STR      M:335 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- rdstride STR      C:  9 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing STR on X axis:     2     2 dset:   1
- -DELETE STR      M:335 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  STR      M:335 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE STR      M:334 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX017)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G017)          (AX010)   NORMAL    NORMAL    NORMAL
+ -DELETE A        M:369 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G004)          (AX017)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G004)          (AX017)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G004)          (AX017)   NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G004)          (AX017)   NORMAL    NORMAL    NORMAL
+ strip regrid on X: STR --> (G004)           @XACT
+ strip moduloing STR on X axis:    18    22
+ rdstride STR      C:  9 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999
+ doing moduloing STR on X axis:    18    20
+ -DELETE STR      M:369 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999
+ rdstride STR      C:  9 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999
+ doing moduloing STR on X axis:     2     2
+ -DELETE STR      M:369 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999
+ nulrgd  STR      M:369 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999
+ -DELETE STR      M:346 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G004)          (AX017)   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 (G022)          (AX017)   NORMAL    NORMAL    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 (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: STR --> (G023)           @XACT
- strip moduloing STR on X axis:     1    25 dset:   1
- reading STR      M:334 dset:   1 I:    1   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing STR on X axis:     1    20 dset:   1
- regrid  STR      M:318 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G023)          (AX014)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G004)          (AX017)   NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G017)          (AX014)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G017)          (AX014)   NORMAL    NORMAL    NORMAL
+ allocate dynamic grid (G017)          (AX014)   NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G017)          (AX014)   NORMAL    NORMAL    NORMAL
+ strip regrid on X: STR --> (G017)           @XACT
+ strip moduloing STR on X axis:     1    25
+ reading STR      M:346 I:    1   20  J: -999 -999  K: -999 -999  L: -999 -999
+ doing moduloing STR on X axis:     1    20
+ regrid  STR      M:280 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G017)          (AX014)   NORMAL    NORMAL    NORMAL
  1    / 1:"a"
  4    / 2:"d"
  7    / 3:"g"
@@ -36758,7 +36769,17 @@ list/nohead 1 + {"a","b"}
 list/nohead 1 - {"a","b"}
  1   / 1:....
  2   / 2:....
+col1,col2,col3,col4,col5
+one,,1.1,24S,130E,,1e1,"word 1"
+    two,,2.2,24N,130W,2S,,"word 2"
+three,,3.3,24,130,3N,3e-2," wd 3 "
+
+five,,4.4,-24,-130,91, -4e2  ,  "word 4"  ,  aa  , 77
+extra line
 list/nohead SIN({"a","b","c"})
+ 1   / 1:....
+ 2   / 2:....
+ 3   / 3:....
 list/nohead MAX("a",{"a","b","c"})
 list/nohead MAX(1,{"a","b","c"})
  1   / 1:....
@@ -38439,20 +38460,20 @@ 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)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  100  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G005)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A --> (G005)           @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  M: -999 -999  N: -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  M: -999 -999  N: -999 -999
- nulrgd  A        M:  1 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:  2 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G005)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G006)          (AX010)   YAX1_100  NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX010)   YAX1_100  NORMAL    NORMAL
+ allocate dynamic grid (G006)          (AX010)   YAX1_100  NORMAL    NORMAL
+ eval    EX#1     C:  4 I:    1  100  J:    1  100  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G006)          (AX010)   YAX1_100  NORMAL    NORMAL
+ strip regrid on X: A --> (G006)           @XACT
+ strip reversing A on Y axis:     1   100
+ rdstride A        C:  8 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999
+ doing reversing A on Y axis:     1   100
+ -DELETE A        M:  1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999
+ nulrgd  A        M:  1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999
+ -DELETE A        M:  2 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G006)          (AX010)   YAX1_100  NORMAL    NORMAL
              VARIABLE : IF I EQ J THEN 1 ELSE A0
                         regrid: 10 delta on X
              FILENAME : test_100x100.nc
@@ -38561,8 +38582,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 (G006)
+    GRID (G006)
  name       axis              # pts   start                end
  (AX017)   X                   10 r   1                    91
  YAX1_100  Y                  100 r   1                    100
@@ -38573,16 +38594,16 @@ 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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G005)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- strip regrid on X: A --> (G005)           @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  M: -999 -999  N: -999 -999
- doing reversing A on Y axis:     1   100 dset:   1
- -DELETE A        M:  2 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  A        M:  2 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:  3 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G005)          (AX017)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 I:    1  100  J:    1  100  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G006)          (AX010)   YAX1_100  NORMAL    NORMAL
+ strip regrid on X: A --> (G006)           @XACT
+ strip reversing A on Y axis:     1   100
+ rdstride A        C:  8 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999
+ doing reversing A on Y axis:     1   100
+ -DELETE A        M:  2 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999
+ nulrgd  A        M:  2 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999
+ -DELETE A        M:  3 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999
+ dealloc  dynamic grid (G006)          (AX010)   YAX1_100  NORMAL    NORMAL
 setting up 2D plot
  -DELETE A        M:  3 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
 PPL plot 279  complete
@@ -40019,39 +40040,39 @@ l200n/order=x $2[l=1,i=0:14]
              ....  11.0000  12.0000  13.0000  14.0000  15.0000  16.0000     ....  11.0000  12.0000  13.0000  14.0000  15.0000  16.0000     ....
 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_SUBSPANORMAL    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)          (AX004)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- dealloc  dynamic grid (G002)          (AX004)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- allocate dynamic grid (G002)          (AX004)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          (AX004)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ dealloc  dynamic grid GFJ3            XAX_SUBSPANORMAL    NORMAL    TAX_SUBSPA
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G002)          (AX014)   NORMAL    NORMAL    TAX_SUBSPA
+ dealloc  dynamic grid (G002)          (AX014)   NORMAL    NORMAL    TAX_SUBSPA
+ allocate dynamic grid (G002)          (AX014)   NORMAL    NORMAL    TAX_SUBSPA
+ eval    EX#1     C:  4 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G002)          (AX014)   NORMAL    NORMAL    TAX_SUBSPA
  strip regrid on X: V2D_REG --> (G002)           @XACT
- found   V2D_REG  M: 69 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  V2D_REG  M: 70 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          (AX004)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ found   V2D_REG  M: 69 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1
+ regrid  V2D_REG  M: 70 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1
+ dealloc  dynamic grid (G002)          (AX014)   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)          (AX014)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- -DELETE V2D_REG  M: 71 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  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 (G002)          XAX_SUBSPANORMAL    NORMAL    (AX004)   NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX004)   NORMAL    NORMAL
- allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX004)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX004)   NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          (AX013)   NORMAL    NORMAL    TAX_SUBSPA
+ -DELETE V2D_REG  M: 71 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX014)
+ dealloc  dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX014)
+ allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX014)
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8
+ allocate dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX014)
  strip regrid on T: V2D_REG --> (G002)           @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  M: -999 -999  N: -999 -999
- doing moduloing V2D_REG on T axis:     1     5 dset:   1
- -DELETE V2D_REG  M: 71 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- nulrgd  V2D_REG  M: 71 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- -DELETE V2D_REG  M: 72 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX004)   NORMAL    NORMAL
+ strip moduloing V2D_REG on T axis:     1    15
+ rdstride V2D_REG  C:  9 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5
+ doing moduloing V2D_REG on T axis:     1     5
+ -DELETE V2D_REG  M: 71 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5
+ nulrgd  V2D_REG  M: 71 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8
+ -DELETE V2D_REG  M: 72 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15
+ dealloc  dynamic grid (G002)          XAX_SUBSPANORMAL    NORMAL    (AX014)
  16-JAN-0000 / 1:   11.000
  16-MAR-0000 / 2:   71.000
  15-MAY-0000 / 3:  131.000
@@ -40548,39 +40569,39 @@ l200n/order=x $2[l=1,i=0:14]
              ....  11.0000  12.0000  12.1000  14.0000  15.0000  16.0000     ....  11.0000  12.0000  12.1000  14.0000  15.0000  16.0000     ....
 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_SUBNORMAL    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)          (AX014)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- dealloc  dynamic grid (G018)          (AX014)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- allocate dynamic grid (G018)          (AX014)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          (AX014)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- strip regrid on X: V2D_IRR --> (G018)           @XACT
- found   V2D_IRR  M:146 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  V2D_IRR  M:147 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          (AX014)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ dealloc  dynamic grid GFJ4            XIRREG_SUBNORMAL    NORMAL    TIRREG_SUB
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          (AX013)   NORMAL    NORMAL    TIRREG_SUB
+ dealloc  dynamic grid (G010)          (AX013)   NORMAL    NORMAL    TIRREG_SUB
+ allocate dynamic grid (G010)          (AX013)   NORMAL    NORMAL    TIRREG_SUB
+ eval    EX#1     C:  4 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999
+ allocate dynamic grid (G010)          (AX013)   NORMAL    NORMAL    TIRREG_SUB
+ strip regrid on X: V2D_IRR --> (G010)           @XACT
+ found   V2D_IRR  M:146 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1
+ regrid  V2D_IRR  M:147 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1
+ dealloc  dynamic grid (G010)          (AX013)   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)          (AX017)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- -DELETE V2D_IRR  M:148 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  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 (G018)          XIRREG_SUBNORMAL    NORMAL    (AX014)   NORMAL    NORMAL
- dealloc  dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX014)   NORMAL    NORMAL
- allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX014)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- allocate dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX014)   NORMAL    NORMAL
- strip regrid on T: V2D_IRR --> (G018)           @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  M: -999 -999  N: -999 -999
- doing moduloing V2D_IRR on T axis:     1     5 dset:   1
- -DELETE V2D_IRR  M:148 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- nulrgd  V2D_IRR  M:148 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- -DELETE V2D_IRR  M:149 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G018)          XIRREG_SUBNORMAL    NORMAL    (AX014)   NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          (AX010)   NORMAL    NORMAL    TIRREG_SUB
+ -DELETE V2D_IRR  M:148 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G010)          XIRREG_SUBNORMAL    NORMAL    (AX013)
+ dealloc  dynamic grid (G010)          XIRREG_SUBNORMAL    NORMAL    (AX013)
+ allocate dynamic grid (G010)          XIRREG_SUBNORMAL    NORMAL    (AX013)
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8
+ allocate dynamic grid (G010)          XIRREG_SUBNORMAL    NORMAL    (AX013)
+ strip regrid on T: V2D_IRR --> (G010)           @XACT
+ strip moduloing V2D_IRR on T axis:     1    15
+ rdstride V2D_IRR  C:  9 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5
+ doing moduloing V2D_IRR on T axis:     1     5
+ -DELETE V2D_IRR  M:148 I:    1    1  J: -999 -999  K: -999 -999  L:    1    5
+ nulrgd  V2D_IRR  M:148 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8
+ -DELETE V2D_IRR  M:149 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15
+ dealloc  dynamic grid (G010)          XIRREG_SUBNORMAL    NORMAL    (AX013)
  16-JAN-0000 / 1:   11.000
  15-MAR-0000 / 2:   70.249
  15-MAY-0000 / 3:  131.249
@@ -41597,8 +41618,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 (G006)
+    GRID (G006)
  name       axis              # pts   start                end
  COADSX    LONGITUDE          180mr   21E                  19E(379)
  COADSY    LATITUDE            90 r   89S                  89N
@@ -43625,13 +43646,8 @@ LET my_sst = sst*12
  
 SHO VAR/XML
 <global>
-<var name="TEMP_20[D=./gtsa056_2.cdf]">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP[Z=0:20 at SUM]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
+<var name="TEMP_20[D=./gtsa056_2.cdf]" def="TEMP[Z=0:20 at SUM]">
+<attribute name="missing_value" value="-1.00000E+34" />
 <grid name="PS3DT1">
 <axes>
 <xaxis>PSXT1</xaxis>
@@ -43675,13 +43691,8 @@ SHO VAR/XML
 SET DATA coads_climatology
 SHO VAR/XML
 <global>
-<var name="TEMP_20[D=./gtsa056_2.cdf]">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP[Z=0:20 at SUM]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
+<var name="TEMP_20[D=./gtsa056_2.cdf]" def="TEMP[Z=0:20 at SUM]">
+<attribute name="missing_value" value="-1.00000E+34" />
 <grid name="PS3DT1">
 <axes>
 <xaxis>PSXT1</xaxis>
@@ -44918,54 +44929,54 @@ use gtsa056_2.cdf
 set mode diag
 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 (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
- strip regrid on X: TAUX --> (G022)           @XACT
- rdstride TAUX     C:  9 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- nulrgd  TAUX     M:151 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M:146 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid A        C:  7 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G017)          (AX026)   (AX022)   NORMAL    (AX028)
+ dealloc  dynamic grid (G017)          (AX026)   (AX022)   NORMAL    (AX028)
+ allocate dynamic grid (G017)          (AX026)   (AX022)   NORMAL    (AX028)
+ allocate dynamic grid (G017)          (AX026)   (AX022)   NORMAL    (AX028)
+ eval    EX#1     C:  4 I:    1    3  J:    1    3  K: -999 -999  L:    1   21
+ eval    A        C:  6 I:    1    3  J:    1    3  K: -999 -999  L:    1   21
+ allocate dynamic grid (G017)          (AX026)   (AX022)   NORMAL    (AX028)
+ strip regrid on X: TAUX --> (G017)           @XACT
+ rdstride TAUX     C:  9 I:   50   54  J:   44   50  K: -999 -999  L:    1  161
+ nulrgd  TAUX     M:151 I:    1    3  J:    1    3  K: -999 -999  L:    1   21
+ -DELETE TAUX     M:146 I:   50   54  J:   44   50  K: -999 -999  L:    1  161
+ dealloc  dynamic grid (G017)          (AX026)   (AX022)   NORMAL    (AX028)
 can mem/all
  -DELETE A        M:146 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
  -DELETE TAUX     M:151 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
  
 def grid/like=taux agrid
- dealloc  dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
- 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     NORMAL    NORMAL
+ dealloc  dynamic grid (G017)          (AX026)   (AX022)   NORMAL    (AX028)
+ getgrid EX#1     C:  6 I:    1    1  J:    1    1  K:    1    1  L:    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     NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX001)   (AX023)   NORMAL    (AX025)   NORMAL    NORMAL
+ dealloc  dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME6
+ dealloc  dynamic grid (G017)          (AX026)   (AX022)   NORMAL    (AX028)
 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 (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
- allocate dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- allocate dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
- strip regrid on X: TAUX --> (G022)           @XACT
- rdstride TAUX     C:  9 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- nulrgd  TAUX     M:146 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M:151 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid A        C:  7 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G017)          (AX022)   (AX026)   NORMAL    (AX027)
+ dealloc  dynamic grid (G017)          (AX022)   (AX026)   NORMAL    (AX027)
+ allocate dynamic grid (G017)          (AX022)   (AX026)   NORMAL    (AX027)
+ allocate dynamic grid (G017)          (AX022)   (AX026)   NORMAL    (AX027)
+ eval    EX#1     C:  4 I:    1    3  J:    1    3  K: -999 -999  L:    1   21
+ eval    A        C:  6 I:    1    3  J:    1    3  K: -999 -999  L:    1   21
+ allocate dynamic grid (G017)          (AX022)   (AX026)   NORMAL    (AX027)
+ strip regrid on X: TAUX --> (G017)           @XACT
+ rdstride TAUX     C:  9 I:   50   54  J:   44   50  K: -999 -999  L:    1  161
+ nulrgd  TAUX     M:146 I:    1    3  J:    1    3  K: -999 -999  L:    1   21
+ -DELETE TAUX     M:151 I:   50   54  J:   44   50  K: -999 -999  L:    1  161
+ dealloc  dynamic grid (G017)          (AX022)   (AX026)   NORMAL    (AX027)
  
 can mem/all
  -DELETE TAUX     M:146 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
  -DELETE A        M:151 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
 can data/all
- dealloc  dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
- dealloc  dynamic grid (G022)          (AX023)   (AX001)   NORMAL    (AX016)   NORMAL    NORMAL
+ dealloc  dynamic grid (G017)          (AX022)   (AX026)   NORMAL    (AX027)
+ dealloc  dynamic grid (G017)          (AX022)   (AX026)   NORMAL    (AX027)
  
 ! Some tests taken from  bn_strides_revs_perms.jnl but with
 ! DEFINE GRID/LIKE= testing permuting and reversing axes
@@ -45004,18 +45015,18 @@ load var
  eval    EX#1     C:  4 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
  reading VAR      M:151 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
 LIST VAR[i=2:4:2]
- dealloc  dynamic grid AGRID           XAX1_4    YAX1_3    ZAX1_2    TAX1_1    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 (G014)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G014)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:147 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:146 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid AGRID           XAX1_4    YAX1_3    ZAX1_2    TAX1_1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX043)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX043)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G011)          (AX043)   YAX1_3    ZAX1_2    TAX1_1
+ eval    EX#1     C:  4 I:    3    6  J:    2    3  K:    1    2  L:    1    1
+ allocate dynamic grid (G011)          (AX043)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G011)           @XACT
+ rdstride VAR      C:  7 I:    2    4  J:    2    3  K:    1    2  L:    1    1
+ nulrgd  VAR      M:147 I:    1    2  J:    2    3  K:    1    2  L:    1    1
+ -DELETE VAR      M:146 I:    2    4  J:    2    3  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G011)          (AX043)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -45030,19 +45041,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)          (AX040)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M:147 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  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 (G014)          (AX009)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX009)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX009)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX009)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G014)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:146 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:147 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX009)   (AX041)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          (AX043)   YAX1_3    ZAX1_2    TAX1_1
+ -DELETE VAR      M:147 I:    1    2  J:    2    3  K:    1    2  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX025)   (AX044)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX025)   (AX044)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G011)          (AX025)   (AX044)   ZAX1_2    TAX1_1
+ eval    EX#1     C:  4 I:    3    6  J:    2    4  K:    1    2  L:    1    1
+ allocate dynamic grid (G011)          (AX025)   (AX044)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G011)           @XACT
+ rdstride VAR      C:  7 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ nulrgd  VAR      M:146 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ -DELETE VAR      M:147 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G011)          (AX025)   (AX044)   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
@@ -45063,19 +45074,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)          (AX009)   (AX041)   ZAX1_2    TAX1_1    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 (G014)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G014)           @XACT
- strip moduloing VAR on X axis:     1    10 dset:   1
- reading VAR      M:151 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing VAR on X axis:     1     4 dset:   1
- regrid  VAR      M:147 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          (AX025)   (AX044)   ZAX1_2    TAX1_1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX025)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX025)   YAX1_3    ZAX1_2    TAX1_1
+ allocate dynamic grid (G011)          (AX025)   YAX1_3    ZAX1_2    TAX1_1
+ eval    EX#1     C:  4 I:    3    6  J:    2    4  K:    1    2  L:    1    1
+ allocate dynamic grid (G011)          (AX025)   YAX1_3    ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G011)           @XACT
+ strip moduloing VAR on X axis:     1    10
+ reading VAR      M:151 I:    1    4  J:    1    1  K:    1    1  L:    1    1
+ doing moduloing VAR on X axis:     1     4
+ regrid  VAR      M:147 I:    1    4  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G011)          (AX025)   YAX1_3    ZAX1_2    TAX1_1
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -45096,18 +45107,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)          (AX009)   YAX1_3    ZAX1_2    TAX1_1    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 (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G014)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:151 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          (AX025)   YAX1_3    ZAX1_2    TAX1_1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX044)   (AX043)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX044)   (AX043)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G011)          (AX044)   (AX043)   ZAX1_2    TAX1_1
+ eval    EX#1     C:  4 I:    3    6  J:    2    4  K:    1    2  L:    1    1
+ allocate dynamic grid (G011)          (AX044)   (AX043)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G011)           @XACT
+ rdstride VAR      C:  7 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ nulrgd  VAR      M:147 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ -DELETE VAR      M:151 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G011)          (AX044)   (AX043)   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
@@ -45122,19 +45133,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)          (AX041)   (AX040)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  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 (G014)          (AX041)   (AX009)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX041)   (AX009)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX041)   (AX009)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX041)   (AX009)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- strip regrid on X: VAR --> (G014)           @XACT
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:151 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:147 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX041)   (AX009)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          (AX044)   (AX043)   ZAX1_2    TAX1_1
+ -DELETE VAR      M:147 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX044)   (AX025)   ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G011)          (AX044)   (AX025)   ZAX1_2    TAX1_1
+ allocate dynamic grid (G011)          (AX044)   (AX025)   ZAX1_2    TAX1_1
+ eval    EX#1     C:  4 I:    3    6  J:    2    4  K:    1    2  L:    1    1
+ allocate dynamic grid (G011)          (AX044)   (AX025)   ZAX1_2    TAX1_1
+ strip regrid on X: VAR --> (G011)           @XACT
+ rdstride VAR      C:  7 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ nulrgd  VAR      M:151 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ -DELETE VAR      M:147 I:    2    4  J:    1    3  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G011)          (AX044)   (AX025)   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
@@ -45151,24 +45162,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)          (AX041)   (AX009)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M:151 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G011)          (AX044)   (AX025)   ZAX1_2    TAX1_1
+ -DELETE VAR      M:151 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)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ getgrid A        C:  7 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX044)   YAX1_30   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G011)          (AX044)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G011)          (AX044)   YAX1_30   ZAX1_20   TAX1_10
+ allocate dynamic grid (G011)          (AX044)   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  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    3    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G014)           @XACT
- rdstride BIGVAR   C: 10 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:147 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:151 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ eval    EX#1     C:  5 I:    3    6  J:    1    1  K:    1    1  L:    1    1
+ eval    A        C:  7 I:    3    5  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX044)   YAX1_30   ZAX1_20   TAX1_10
+ strip regrid on X: BIGVAR --> (G011)           @XACT
+ rdstride BIGVAR   C: 10 I:    1   36  J:    1    1  K:    1    1  L:    1    1
+ nulrgd  BIGVAR   M:147 I:    1    8  J:    1    1  K:    1    1  L:    1    1
+ -DELETE BIGVAR   M:151 I:    1   36  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G011)          (AX044)   YAX1_30   ZAX1_20   TAX1_10
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -45182,24 +45193,24 @@ list/j=1/k=1/l=1 a[i=3:5]
  21   / 5:  1131.00
  -DELETE A        M:146 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
 list/k=1/l=1 a[i=3:5,j=1:8:2]
- dealloc  dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   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 (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          (AX044)   YAX1_30   ZAX1_20   TAX1_10
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G018)          (AX044)   (AX043)   ZAX1_20   TAX1_10
+ dealloc  dynamic grid (G018)          (AX044)   (AX043)   ZAX1_20   TAX1_10
+ allocate dynamic grid (G018)          (AX044)   (AX043)   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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- 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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G014)           @XACT
- rdstride BIGVAR   C: 11 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 74 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:146 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- regrid  A        M:139 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ eval    EX#1     C:  5 I:    3    6  J:    2    4  K:    1    1  L:    1    1
+ allocate dynamic grid (G018)          (AX044)   (AX043)   ZAX1_20   TAX1_10
+ strip regrid on Y: A --> (G018)           @XACT
+ eval    A        C:  8 I:    3    5  J:    1    7  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX044)   YAX1_30   ZAX1_20   TAX1_10
+ strip regrid on X: BIGVAR --> (G011)           @XACT
+ rdstride BIGVAR   C: 11 I:    1   36  J:    1    7  K:    1    1  L:    1    1
+ nulrgd  BIGVAR   M: 74 I:    1    8  J:    1    7  K:    1    1  L:    1    1
+ -DELETE BIGVAR   M:146 I:    1   36  J:    1    7  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G011)          (AX044)   YAX1_30   ZAX1_20   TAX1_10
+ regrid  A        M:136 I:    3    5  J:    1    4  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G018)          (AX044)   (AX043)   ZAX1_20   TAX1_10
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -45224,19 +45235,19 @@ cancel mem/all
  
 ! basic strides
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid (G001)          (AX041)   (AX040)   ZAX1_20   TAX1_10   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 (G001)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G001)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G001)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX044)   (AX043)   ZAX1_20   TAX1_10
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G018)          (AX025)   YUNEVEN   ZAX1_6    TAX1_4
+ dealloc  dynamic grid (G018)          (AX025)   YUNEVEN   ZAX1_6    TAX1_4
+ allocate dynamic grid (G018)          (AX025)   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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G001)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- strip regrid on X: UNEVENVAR --> (G001)           @XACT
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M:147 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:151 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G001)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ eval    EX#1     C:  5 I:    3    6  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G018)          (AX025)   YUNEVEN   ZAX1_6    TAX1_4
+ strip regrid on X: UNEVENVAR --> (G018)           @XACT
+ rdstride UNE-NVAR C:  8 I:    2    4  J:    1    1  K:    1    1  L:    1    1
+ nulrgd  UNE-NVAR M:147 I:    1    2  J:    1    1  K:    1    1  L:    1    1
+ -DELETE UNE-NVAR M:151 I:    2    4  J:    1    1  K:    1    1  L:    1    1
+ dealloc  dynamic grid (G018)          (AX025)   YUNEVEN   ZAX1_6    TAX1_4
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -45254,19 +45265,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 (G001)          (AX009)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- -DELETE UNE-NVAR M:147 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  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 (G001)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G001)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G001)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G001)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G001)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:151 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:147 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G001)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G018)          (AX025)   YUNEVEN   ZAX1_6    TAX1_4
+ -DELETE UNE-NVAR M:147 I:    1    2  J:    1    1  K:    1    1  L:    1    1
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G018)          (AX043)   (AX045)   (AX046)   TAX1_10
+ dealloc  dynamic grid (G018)          (AX043)   (AX045)   (AX046)   TAX1_10
+ allocate dynamic grid (G018)          (AX043)   (AX045)   (AX046)   TAX1_10
+ eval    EX#1     C:  4 I:    3    6  J:    2    4  K:    1    2  L:    1    1
+ allocate dynamic grid (G018)          (AX043)   (AX045)   (AX046)   TAX1_10
+ strip regrid on X: BIGVAR --> (G018)           @XACT
+ rdstride BIGVAR   C:  7 I:    3    9  J:    2    6  K:    1    3  L:    1    1
+ nulrgd  BIGVAR   M:151 I:    1    4  J:    1    3  K:    1    2  L:    1    1
+ -DELETE BIGVAR   M:147 I:    3    9  J:    2    6  K:    1    3  L:    1    1
+ dealloc  dynamic grid (G018)          (AX043)   (AX045)   (AX046)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45283,23 +45294,23 @@ 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
- -DELETE BIGVAR   M:151 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G001)          (AX040)   (AX042)   (AX043)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX041)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M:151 I:    1    4  J:    1    3  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G018)          (AX043)   (AX045)   (AX046)   TAX1_10
+ dealloc  dynamic grid (G011)          (AX044)   YAX1_30   ZAX1_20   TAX1_10
  
 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)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
- strip regrid on X: BIGVAR --> (G014)           @XACT
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:147 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:151 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX046)   (AX045)   (AX043)   TAX1_10
+ dealloc  dynamic grid (G011)          (AX046)   (AX045)   (AX043)   TAX1_10
+ allocate dynamic grid (G011)          (AX046)   (AX045)   (AX043)   TAX1_10
+ eval    EX#1     C:  4 I:    3    6  J:    2    4  K:    1    2  L:    1    1
+ allocate dynamic grid (G011)          (AX046)   (AX045)   (AX043)   TAX1_10
+ strip regrid on X: BIGVAR --> (G011)           @XACT
+ rdstride BIGVAR   C:  7 I:    3    9  J:    2    6  K:    1    3  L:    1    1
+ nulrgd  BIGVAR   M:147 I:    1    4  J:    1    3  K:    1    2  L:    1    1
+ -DELETE BIGVAR   M:151 I:    3    9  J:    2    6  K:    1    3  L:    1    1
+ dealloc  dynamic grid (G011)          (AX046)   (AX045)   (AX043)   TAX1_10
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45316,8 +45327,8 @@ 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
- -DELETE BIGVAR   M:147 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_10   NORMAL    NORMAL
+ -DELETE BIGVAR   M:147 I:    1    4  J:    1    3  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G011)          (AX046)   (AX045)   (AX043)   TAX1_10
  
 ! now with xytvar
 cancel region
@@ -45325,17 +45336,17 @@ set region/i=1:4/j=1:3/l=1:2
 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)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G014)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:151 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:147 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX045)   (AX046)   NORMAL    (AX044)
+ dealloc  dynamic grid (G011)          (AX045)   (AX046)   NORMAL    (AX044)
+ allocate dynamic grid (G011)          (AX045)   (AX046)   NORMAL    (AX044)
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ allocate dynamic grid (G011)          (AX045)   (AX046)   NORMAL    (AX044)
+ strip regrid on X: XYTVAR --> (G011)           @XACT
+ rdstride XYTVAR   C:  7 I:    1    7  J:    2    6  K: -999 -999  L:    3    5
+ nulrgd  XYTVAR   M:151 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ -DELETE XYTVAR   M:147 I:    1    7  J:    2    6  K: -999 -999  L:    3    5
+ dealloc  dynamic grid (G011)          (AX045)   (AX046)   NORMAL    (AX044)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -45353,9 +45364,9 @@ 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)          (AX042)   (AX043)   NORMAL    (AX041)   NORMAL    NORMAL
- -DELETE XYTVAR   M:151 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- 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
+ dealloc  dynamic grid (G011)          (AX045)   (AX046)   NORMAL    (AX044)
+ -DELETE XYTVAR   M:151 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ getgrid EX#1     C:  7 I:    1    1  J:    1    1  K:    1    1  L:    1    1
     GRID EGRID
  name       axis              # pts   start                end
  XLON      LONGITUDE           40mr   141E                 180E
@@ -45366,18 +45377,18 @@ show grid xytvar
  normal    F
  
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid EGRID           XLON      YLAT      NORMAL    TTIME     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 (G014)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G014)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:147 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:151 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
+ dealloc  dynamic grid EGRID           XLON      YLAT      NORMAL    TTIME
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX046)   (AX045)   NORMAL    (AX043)
+ dealloc  dynamic grid (G011)          (AX046)   (AX045)   NORMAL    (AX043)
+ allocate dynamic grid (G011)          (AX046)   (AX045)   NORMAL    (AX043)
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ allocate dynamic grid (G011)          (AX046)   (AX045)   NORMAL    (AX043)
+ strip regrid on X: XYTVAR --> (G011)           @XACT
+ rdstride XYTVAR   C:  7 I:    1    7  J:    2    6  K: -999 -999  L:    3    5
+ nulrgd  XYTVAR   M:147 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ -DELETE XYTVAR   M:151 I:    1    7  J:    2    6  K: -999 -999  L:    3    5
+ dealloc  dynamic grid (G011)          (AX046)   (AX045)   NORMAL    (AX043)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -45393,8 +45404,8 @@ 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
- -DELETE XYTVAR   M:147 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   NORMAL    (AX040)   NORMAL    NORMAL
+ -DELETE XYTVAR   M:147 I:    1    4  J:    1    3  K: -999 -999  L:    1    2
+ dealloc  dynamic grid (G011)          (AX046)   (AX045)   NORMAL    (AX043)
  
 ! map into Z instead of T
 use/order=zxy bn_strides
@@ -45411,18 +45422,18 @@ show grid xytvar
  normal    F
  
 list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
- dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      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 (G014)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
- strip regrid on X: XYTVAR --> (G014)           @XACT
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:151 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:147 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX045)   (AX046)   (AX044)   NORMAL
+ dealloc  dynamic grid (G011)          (AX045)   (AX046)   (AX044)   NORMAL
+ allocate dynamic grid (G011)          (AX045)   (AX046)   (AX044)   NORMAL
+ eval    EX#1     C:  4 I:    1    4  J:    1    3  K:    1    2  L:    1    2
+ allocate dynamic grid (G011)          (AX045)   (AX046)   (AX044)   NORMAL
+ strip regrid on X: XYTVAR --> (G011)           @XACT
+ rdstride XYTVAR   C:  7 I:    1    7  J:    2    6  K:    3    5  L: -999 -999
+ nulrgd  XYTVAR   M:151 I:    1    4  J:    1    3  K:    1    2  L: -999 -999
+ -DELETE XYTVAR   M:147 I:    1    7  J:    2    6  K:    3    5  L: -999 -999
+ dealloc  dynamic grid (G011)          (AX045)   (AX046)   (AX044)   NORMAL
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -45438,8 +45449,8 @@ 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
- -DELETE XYTVAR   M:151 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   NORMAL    NORMAL    NORMAL
+ -DELETE XYTVAR   M:151 I:    1    4  J:    1    3  K:    1    2  L: -999 -999
+ dealloc  dynamic grid (G011)          (AX045)   (AX046)   (AX044)   NORMAL
  
  
 cancel region; set region/l=1
@@ -45447,17 +45458,17 @@ cancel region; set region/l=1
 ! reference output
 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)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G014)           @XACT
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:151 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX046)   (AX045)   (AX043)   TAX1_6
+ dealloc  dynamic grid (G011)          (AX046)   (AX045)   (AX043)   TAX1_6
+ allocate dynamic grid (G011)          (AX046)   (AX045)   (AX043)   TAX1_6
+ eval    EX#1     C:  4 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ allocate dynamic grid (G011)          (AX046)   (AX045)   (AX043)   TAX1_6
+ strip regrid on X: MIDVAR --> (G011)           @XACT
+ rdstride MIDVAR   C:  7 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ nulrgd  MIDVAR   M:147 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ -DELETE MIDVAR   M:151 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ dealloc  dynamic grid (G011)          (AX046)   (AX045)   (AX043)   TAX1_6
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45472,25 +45483,25 @@ 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
- -DELETE MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M:147 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G011)          (AX046)   (AX045)   (AX043)   TAX1_6
  
 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)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G014)           @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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M:147 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:151 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX045)   (AX046)   (AX044)   TAX1_6
+ dealloc  dynamic grid (G011)          (AX045)   (AX046)   (AX044)   TAX1_6
+ allocate dynamic grid (G011)          (AX045)   (AX046)   (AX044)   TAX1_6
+ eval    EX#1     C:  4 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ allocate dynamic grid (G011)          (AX045)   (AX046)   (AX044)   TAX1_6
+ strip regrid on X: MIDVAR --> (G011)           @XACT
+ strip reversing MIDVAR on Y axis:     2     5
+ rdstride MIDVAR   C:  8 I:    1    5  J:    5    8  K:    3    5  L:    1    1
+ doing reversing MIDVAR on Y axis:     2     5
+ -DELETE MIDVAR   M:147 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ nulrgd  MIDVAR   M:147 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ -DELETE MIDVAR   M:151 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ dealloc  dynamic grid (G011)          (AX045)   (AX046)   (AX044)   TAX1_6
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45505,23 +45516,23 @@ 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
- -DELETE MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   TAX1_6    NORMAL    NORMAL
+ -DELETE MIDVAR   M:147 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G011)          (AX045)   (AX046)   (AX044)   TAX1_6
  
 ! reference output
 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)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G014)           @XACT
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:151 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:147 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX046)   (AX045)   (AX043)   ZAX1_7
+ dealloc  dynamic grid (G011)          (AX046)   (AX045)   (AX043)   ZAX1_7
+ allocate dynamic grid (G011)          (AX046)   (AX045)   (AX043)   ZAX1_7
+ eval    EX#1     C:  4 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ allocate dynamic grid (G011)          (AX046)   (AX045)   (AX043)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G011)           @XACT
+ rdstride MIDVAR   C:  7 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ nulrgd  MIDVAR   M:151 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ -DELETE MIDVAR   M:147 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ dealloc  dynamic grid (G011)          (AX046)   (AX045)   (AX043)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45536,26 +45547,26 @@ 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
- -DELETE MIDVAR   M:151 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:151 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G011)          (AX046)   (AX045)   (AX043)   ZAX1_7
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
 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)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G014)           @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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on X axis:     1     5 dset:   1
- -DELETE MIDVAR   M:151 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:151 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:147 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX045)   (AX046)   (AX044)   ZAX1_7
+ dealloc  dynamic grid (G011)          (AX045)   (AX046)   (AX044)   ZAX1_7
+ allocate dynamic grid (G011)          (AX045)   (AX046)   (AX044)   ZAX1_7
+ eval    EX#1     C:  4 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ allocate dynamic grid (G011)          (AX045)   (AX046)   (AX044)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G011)           @XACT
+ strip reversing MIDVAR on X axis:     1     5
+ rdstride MIDVAR   C:  8 I:    2    6  J:    4    7  K:    3    5  L:    7    7
+ doing reversing MIDVAR on X axis:     1     5
+ -DELETE MIDVAR   M:151 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ nulrgd  MIDVAR   M:151 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ -DELETE MIDVAR   M:147 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ dealloc  dynamic grid (G011)          (AX045)   (AX046)   (AX044)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45570,23 +45581,23 @@ 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
- -DELETE MIDVAR   M:151 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:151 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G011)          (AX045)   (AX046)   (AX044)   ZAX1_7
  
 ! reference output
 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)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G014)           @XACT
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:151 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX046)   (AX045)   (AX043)   ZAX1_7
+ dealloc  dynamic grid (G011)          (AX046)   (AX045)   (AX043)   ZAX1_7
+ allocate dynamic grid (G011)          (AX046)   (AX045)   (AX043)   ZAX1_7
+ eval    EX#1     C:  4 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ allocate dynamic grid (G011)          (AX046)   (AX045)   (AX043)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G011)           @XACT
+ rdstride MIDVAR   C:  7 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ nulrgd  MIDVAR   M:147 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ -DELETE MIDVAR   M:151 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ dealloc  dynamic grid (G011)          (AX046)   (AX045)   (AX043)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45601,25 +45612,25 @@ 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
- -DELETE MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX043)   (AX042)   (AX040)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:147 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G011)          (AX046)   (AX045)   (AX043)   ZAX1_7
  
 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)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
- strip regrid on X: MIDVAR --> (G014)           @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  M: -999 -999  N: -999 -999
- doing reversing MIDVAR on Y axis:     2     5 dset:   1
- -DELETE MIDVAR   M:147 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:151 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid (G011)          (AX045)   (AX046)   (AX044)   ZAX1_7
+ dealloc  dynamic grid (G011)          (AX045)   (AX046)   (AX044)   ZAX1_7
+ allocate dynamic grid (G011)          (AX045)   (AX046)   (AX044)   ZAX1_7
+ eval    EX#1     C:  4 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ allocate dynamic grid (G011)          (AX045)   (AX046)   (AX044)   ZAX1_7
+ strip regrid on X: MIDVAR --> (G011)           @XACT
+ strip reversing MIDVAR on Y axis:     2     5
+ rdstride MIDVAR   C:  8 I:    2    6  J:    5    8  K:    3    5  L:    7    7
+ doing reversing MIDVAR on Y axis:     2     5
+ -DELETE MIDVAR   M:147 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ nulrgd  MIDVAR   M:147 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ -DELETE MIDVAR   M:151 I:    1    5  J:    2    5  K:    3    5  L:    1    1
+ dealloc  dynamic grid (G011)          (AX045)   (AX046)   (AX044)   ZAX1_7
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -45634,8 +45645,8 @@ 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
- -DELETE MIDVAR   M:147 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G014)          (AX042)   (AX043)   (AX041)   ZAX1_7    NORMAL    NORMAL
+ -DELETE MIDVAR   M:147 I:    1    2  J:    1    2  K:    1    2  L:    1    1
+ dealloc  dynamic grid (G011)          (AX045)   (AX046)   (AX044)   ZAX1_7
  
 ! DEFINE AXIS can get the axis too long (bug 673)
 GO bn_reset
@@ -48390,7 +48401,7 @@ ppl list labels
  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  @AS26-OCT-2015 17:27:50
+ LAB 3  8.000E+00  7.000E+00 0.060    0  SYSTEM  @AS03-JAN-2011 16:42:03
  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
@@ -49019,10 +49030,10 @@ GO err580_irreg_bounds.jnl
 ! the bounds seem to be ignored; axis is seen as regular.
 ! Bug 1160 reported by Andrew.
  
-def ax/t/edge time = {0,1,3}
-let a = t[gt=time]
-show grid/t a
-    GRID (G011)
+yes? def ax/t/edge time = {0,1,3}
+yes? let a = t[gt=time]
+yes? show grid/t a
+    GRID (G014)
  name       axis              # pts   start                end
  normal    X
  normal    Y
@@ -49823,7 +49834,7 @@ go ptest
 PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
  
 sh sym win_title
-WIN_TITLE = "26-Oct-15:17:21"
+WIN_TITLE = "3-Jan-11:16:41"
  
 set win/title="set the title"
 sho sym win_title
@@ -49841,7 +49852,7 @@ sho sym win_title
 WIN_TITLE = "_"
  
 set win/title="($session_date):($session_time)"
- !-> set win/title="26-Oct-15:17:21"
+ !-> set win/title=" 3-Jan-11:16:41"
  
 ! If the date or time starts with a blank then we get an extra
 ! underscore in the window title. Evaluating the symbols into
@@ -49850,16 +49861,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 = 26-Oct-15
+ !-> DEFINE SYMBOL the_date =  3-Jan-11
 DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 17:21
+ !-> DEFINE SYMBOL the_time = 16:41
 SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="26-Oct-15:17:21"
+ !-> SET WIN/TITLE="3-Jan-11:16:41"
  
 can win/all
 set win/new
 sh sym win_title
-WIN_TITLE = "26-Oct-15:17:21"
+WIN_TITLE = "3-Jan-11:16:41"
  
 GO bn_reset
 cancel mode verify
@@ -52152,6 +52163,48 @@ sh dat/att
 save/file=a.nc/clobber/y=0:5 temp
 sp ncdump -h a.nc >> all_ncdump.out
  
+netcdf a {
+dimensions:
+	PSXT91_108 = 18 ;
+	PSYT35_56 = 22 ;
+	bnds = 2 ;
+	PSZT1_10 = 10 ;
+	TIME1 = UNLIMITED ; // (25 currently)
+variables:
+	double PSXT91_108(PSXT91_108) ;
+		PSXT91_108:units = "degrees_east" ;
+		PSXT91_108:modulo = 360. ;
+		PSXT91_108:point_spacing = "even" ;
+		PSXT91_108:axis = "X" ;
+	double PSYT35_56(PSYT35_56) ;
+		PSYT35_56:units = "degrees_north" ;
+		PSYT35_56:point_spacing = "uneven" ;
+		PSYT35_56:axis = "Y" ;
+		PSYT35_56:bounds = "PSYT35_56_bnds" ;
+	double PSYT35_56_bnds(PSYT35_56, bnds) ;
+	double PSZT1_10(PSZT1_10) ;
+		PSZT1_10:units = "METERS" ;
+		PSZT1_10:positive = "down" ;
+		PSZT1_10:point_spacing = "uneven" ;
+		PSZT1_10:axis = "Z" ;
+		PSZT1_10:bounds = "PSZT1_10_bnds" ;
+	double PSZT1_10_bnds(PSZT1_10, bnds) ;
+	double TIME1(TIME1) ;
+		TIME1:units = "hour since 1980-01-14 14:00:00" ;
+		TIME1:time_origin = "14-JAN-1980 14:00:00" ;
+		TIME1:axis = "T" ;
+	double FAREN(TIME1, PSZT1_10, PSYT35_56, PSXT91_108) ;
+		FAREN:missing_value = -9.99999979021477e+33 ;
+		FAREN:_FillValue = -9.99999979021477e+33 ;
+		FAREN:long_name = "TEMP*9/5 + 32" ;
+		FAREN:units = "Deg F" ;
+		FAREN:Ferret_Precision_Note = "This variable written by Ferret was converted from FLOAT to DOUBLE" ;
+		FAREN:history = "From gt4d011" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
 let two = 2*temp[y=0:15,x=180:200]
 save/file=a.nc/clobber/y=0:5 two
 sp ncdump -h a.nc >> all_ncdump.out
@@ -54181,8 +54234,8 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
-                                 Conventions     CHAR        6    F       CF-1.6
+ .                               history         CHAR        24   T       FERRET V6.65    3-Jan-11
+                                 Conventions     CHAR        6    F       CF-1.0
   
 (PSXT191_108)          DOUBLE    units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
@@ -54226,8 +54279,8 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
-                                 Conventions     CHAR        6    F       CF-1.6
+ .                               history         CHAR        24   T       FERRET V6.65    3-Jan-11
+                                 Conventions     CHAR        6    F       CF-1.0
   
 (PSXT191_108)          DOUBLE    units           CHAR        12   T       degrees_east
                                  point_spacing   CHAR        4    T       even
@@ -54547,7 +54600,7 @@ list sst[i=11:15,j=50,k=1,l=50]
  
 ! --- after cancel striding
 cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX042)
+ !-> cancel axis/stride (AX043)
 list sst[i=21:30,j=50,k=1,l=50]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
@@ -54618,24 +54671,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 (AX009)
+ !-> show axis (AX046)
  name       axis              # pts   start                end
- (AX009)   LONGITUDE           30mr   31E                  19E(379)
+ (AX046)   LONGITUDE           30mr   31E                  19E(379)
    Axis span (to cell edges) = 360 (modulo length = axis span)
 cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX009)
+ !-> cancel axis/stride (AX046)
  
 !--- 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 (AX042)
+ !-> show axis (AX043)
  name       axis              # pts   start                end
- (AX042)   LONGITUDE           25 r   31E                  7E(367)
+ (AX043)   LONGITUDE           25 r   31E                  7E(367)
    Axis span (to cell edges) = 350
 cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX042)
+ !-> cancel axis/stride (AX043)
 cancel data/all
  
 ! --- 8.3 testing strided modulo axis
@@ -54644,7 +54697,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 (AX042)
+ !-> cancel axis/stride (AX043)
 cancel data/all
  
 !.............9. two datasets share the same grid
@@ -54847,9 +54900,9 @@ show axis `sst,return=xaxis`
  (AX051)   LONGITUDE           90mr   21E                  17E(377)
    Axis span (to cell edges) = 360 (modulo length = axis span)
 show axis `sst,return=yaxis`
- !-> show axis (AX009)
+ !-> show axis (AX046)
  name       axis              # pts   start                end
- (AX009)   LATITUDE            45 r   89S                  87N
+ (AX046)   LATITUDE            45 r   89S                  87N
    Axis span (to cell edges) = 180
 show axis `sst,return=taxis`
  !-> show axis (AX048)
@@ -55865,35 +55918,49 @@ SAMPLE_FAST_I(V,Indices)
 SAMPLE_FAST_I_STR(S,Indices)
 SEPARATE_STR(A,Rowsize,FixLongitudes)
 WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
+FLOATSTR(A,FMT)
+FLOATSTR(A,FMT)
 ADD_9(A,B,C,D,E,F,G,H,I)
 APPENDE(ENS,VAR)
 AVET(A)
 DATES(Offsets)
 EFSTRINGS(--)
+EFSTRINGS(--)
+EFSTRINGS(--)
 FACTORIAL(A)
 FFT_AMP(A)
 FFTA_SAMPLE(A)
 FFT_PHAS(A)
+FFTP(A)
+FILL_XY(A,B,C)
+FLOATSTR(A,Fmt)
 LENGTH_OF_STRINGS(--)
-LON_LAT_TIME_STRING(longitude,latitude,time,time_axis,string to prepend)
 MAXSTRLEN(A)
+MINMAX(A)
+NCO_ATTR(FileName,VariableName,AttributeName,AttType,Mode,AttributeValue)
+NCO(operator,arguments)
+NEUTRAL(S,T)
 PASS_THRU(A)
 PASS_THRU_STRING(A)
 PERCENT_GOOD_T(A)
 PICK_A_STRING(A,N)
-PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
-SAMPLE_FAST_I(V,Indices)
-SEPARATE(A,Rowsize,FixLongitudes)
-SEPARATE_STR(A,Rowsize,FixLongitudes)
 STORAGE(A)
 STRING_ARG(Flags,NString)
 STRING_CAT3(A,B,C)
 STRING_LEN_SUM(S1,S2)
 STRINGS_AS_ARGS(S1,S2,NCHAR)
 STR_MISSING(MASK,STR,REPL)
+STRING_CAT3(A,B,C)
+STRING_LEN_SUM(S1,S2)
+STRINGS_AS_ARGS(S1,S2,NCHAR)
+STRING_CAT3(A,B,C)
+STRING_LEN_SUM(S1,S2)
+STRINGS_AS_ARGS(S1,S2,NCHAR)
 STUDENT_T_CUTOFF(P,nf)
 SUBTRACT(A,B)
-WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
+TRACKS2GRID_AVE_XYT(VAR,XPTS,YPTS,TPTS,ICRUISE,XAXPTS,YAXPTS,TAXPTS)
+TRACKS2GRID_VAR_XYT(VAR,XPTS,YPTS,TPTS,ICRUISE,XAXPTS,YAXPTS,TAXPTS)
+WRITE_WEBROW(id,Cruise_Mask,filename)
  
  
 GO bn_reset
@@ -58502,7 +58569,58 @@ list indx_bi, samplei(bi,indx_bi)
  
 ! Calling via SORTI
 let indx_ai = SORTI(ai)
-list indx_ai, samplei(ai,indx_ai)
+list indx_ai, samplei(ai,indx_ai)netcdf a {
+dimensions:
+	XAX1_10 = 10 ;
+	tday = UNLIMITED ; // (31 currently)
+	lon1_5 = 5 ;
+	lat1_5 = 5 ;
+	bnds = 2 ;
+	zt = 10 ;
+	time1478 = 3 ;
+variables:
+	double XAX1_10(XAX1_10) ;
+		XAX1_10:point_spacing = "even" ;
+		XAX1_10:axis = "X" ;
+	double tday(tday) ;
+		tday:units = "DAYS since 1998-12-31 00:00:00" ;
+		tday:axis = "T" ;
+		tday:time_origin = "31-DEC-1998" ;
+	float MyUpperLowerCaseVar(tday, XAX1_10) ;
+		MyUpperLowerCaseVar:missing_value = -1.e+34f ;
+		MyUpperLowerCaseVar:_FillValue = -1.e+34f ;
+		MyUpperLowerCaseVar:long_name = "X[X=1:10] + T[GT=TDAY]" ;
+	double lon1_5(lon1_5) ;
+		lon1_5:point_spacing = "even" ;
+		lon1_5:axis = "X" ;
+	double lat1_5(lat1_5) ;
+		lat1_5:point_spacing = "uneven" ;
+		lat1_5:axis = "Y" ;
+		lat1_5:bounds = "lat1_5_bnds" ;
+	double lat1_5_bnds(lat1_5, bnds) ;
+	double zt(zt) ;
+		zt:units = "meters" ;
+		zt:positive = "down" ;
+		zt:point_spacing = "uneven" ;
+		zt:axis = "Z" ;
+		zt:bounds = "zt_bnds" ;
+	double zt_bnds(zt, bnds) ;
+	double time1478(time1478) ;
+		time1478:calendar = "NOLEAP" ;
+		time1478:point_spacing = "even" ;
+		time1478:axis = "T" ;
+	float newvar(time1478, zt, lat1_5, lon1_5) ;
+		newvar:missing_value = -1.e+34f ;
+		newvar:_FillValue = -1.e+34f ;
+		newvar:long_name = "outgoing longwave radiation" ;
+		newvar:units = "watts/m2" ;
+		newvar:history = "From a" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
+
              X: 0.5 to 4.5
  Column  1: INDX_AI is SORTI(AI)
  Column  2: EX#2 is SAMPLEI(AI,INDX_AI)
@@ -59320,14 +59438,14 @@ show data/full
        (T=MAR-1983:MAR-1983)
                on grid PS2DU1_NT with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.84S:51.43N  
- IK       I1+K1                            1:10      ...       5:15      ...       ...       ...
-               on grid G093_NYT with -1.E+34 for missing data
+ IK       I1+K1                            1:10      ...       5:15      ...
+               on grid G092_NYT with -1.000000E+34 for missing data
              X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
-               on grid G093_NYZ with -1.E+34 for missing data
+ IL       I1+L1                            1:10      ...       ...       1:3
+               on grid G092_NYZ with -1.000000E+34 for missing data
              X=130E:140E  
- JK       J1+K1                            ...       5:10      5:15      ...       ...       ...
-               on grid G104_NXT with -1.E+34 for missing data
+ JK       J1+K1                            ...       5:10      5:15      ...
+               on grid G103_NXT with -1.000000E+34 for missing data
              Y=21.11S:12.52S  Z=40:190  
  IJK      TEMP[L=@AVE]                    70:72      1:100     1:27      ...       ...       ...
        (T=MAR-1983:MAR-1983)
@@ -60114,10 +60232,10 @@ SH GRID am
  
 GO bn_clock_syms
 SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "46.8229"
-CLOCK_SECS = "639.568"
-CURRENT_DATE = "26-Oct-15"
-CURRENT_TIME = "17:32:13"
+DELTA_CPU = "54.4237"
+CLOCK_SECS = "72.58"
+CURRENT_DATE = " 3-Jan-11"
+CURRENT_TIME = "16:42:30"
 ! test special symbols DELTA_CPU, CLOCK_SECS
 !
 ! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -60126,8 +60244,8 @@ CURRENT_TIME = "17:32:13"
 use gt4d011
 shade/k=1 temp[L=@ave]
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.048992"
-CLOCK_SECS = "643.172"
+DELTA_CPU = "0.051991"
+CLOCK_SECS = "72.661"
  
 repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=1
@@ -60141,60 +60259,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.377943
+ !-> DEFINE VARIABLE ten_plots = 0.379944
 sh sym DELTA_CPU, CLOCK_SECS
 DELTA_CPU = "0"
-CLOCK_SECS = "679.808"
+CLOCK_SECS = "73.389"
  
 let  sumclock = 0
 let  sumcpu = 0
 sh sym CLOCK_SECS
-CLOCK_SECS = "679.809"
+CLOCK_SECS = "73.389"
 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.042993
- !-> DEFINE VARIABLE sumcpu =0.042993
+ !-> DEFINE VARIABLE dt = 0.042995
+ !-> DEFINE VARIABLE sumcpu =0.042995
 !-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.042994
- !-> DEFINE VARIABLE sumcpu =0.085987
+ !-> DEFINE VARIABLE dt = 0.039993
+ !-> DEFINE VARIABLE sumcpu =0.082988
 !-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.041994
- !-> DEFINE VARIABLE sumcpu =0.127981
+ !-> DEFINE VARIABLE dt = 0.040993
+ !-> DEFINE VARIABLE sumcpu =0.123981
 !-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.038993
- !-> DEFINE VARIABLE sumcpu =0.166974
+ !-> DEFINE VARIABLE dt = 0.042992
+ !-> DEFINE VARIABLE sumcpu =0.166973
 !-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.036995
- !-> DEFINE VARIABLE sumcpu =0.203969
+ !-> DEFINE VARIABLE dt = 0.043995
+ !-> DEFINE VARIABLE sumcpu =0.210968
 !-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.041993
- !-> DEFINE VARIABLE sumcpu =0.245962
+ !-> DEFINE VARIABLE dt = 0.045994
+ !-> DEFINE VARIABLE sumcpu =0.256962
 !-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.038994
- !-> DEFINE VARIABLE sumcpu =0.284956
+ !-> DEFINE VARIABLE dt = 0.041992
+ !-> DEFINE VARIABLE sumcpu =0.298954
 !-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.042994
- !-> DEFINE VARIABLE sumcpu =0.32795
+ !-> DEFINE VARIABLE dt = 0.045994
+ !-> DEFINE VARIABLE sumcpu =0.344948
 !-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.042993
- !-> DEFINE VARIABLE sumcpu =0.370943
+ !-> DEFINE VARIABLE dt = 0.041992
+ !-> DEFINE VARIABLE sumcpu =0.38694
 !-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.043994
- !-> DEFINE VARIABLE sumcpu =0.414937
+ !-> DEFINE VARIABLE dt = 0.044994
+ !-> DEFINE VARIABLE sumcpu =0.431934
  
 say `sumcpu`
- !-> MESSAGE/CONTINUE 0.414937
-0.414937
+ !-> MESSAGE/CONTINUE 0.431934
+0.431934
 sh sym CLOCK_SECS
-CLOCK_SECS = "752.342"
+CLOCK_SECS = "74.447"
  
 SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "26-Oct-15"
-SESSION_TIME = "17:21"
-CURRENT_DATE = "26-Oct-15"
-CURRENT_TIME = "17:34:06"
+SESSION_DATE = " 3-Jan-11"
+SESSION_TIME = "16:41"
+CURRENT_DATE = " 3-Jan-11"
+CURRENT_TIME = "16:42:32"
  
  
 ! ******** V6.3 Additions below ***********
@@ -61049,7 +61167,7 @@ LEV_TEXT = "50V"
 LEV_MIN = "-2"
 LEV_MAX = "30.74"
 LEV_NUM = "56"
-LEV_DEL = "0.5"
+LEV_DEL = "irregular"
 LEV_OPNLEVS = "(-2,3.05,0.505)(3.5,25.5,0.5)(25.5,25.5,0.505)(inf)"
  
 shade/line/lev=50v,5min/title="/LEV=50v,5min" temp[K=1]
@@ -61062,34 +61180,15 @@ shade/line/lev=50v,1d/title="/LEV=50v,1d" temp[K=1]
  
 let negvar = -1* temp
  
-shade/line/lev=50v,-20min/title="/LEV=50v,-20min" negvar[K=1]
-shade/line/lev=50v,-15mean/title="/LEV=50v,-15mean" negvar[K=1]
-shade/line/lev=50v,-15max/title="/LEV=50v,-15max" negvar[K=1]
-shade/line/lev=50v,1d/title="/LEV=50v,1d" negvar[K=1]
+shade/lev=50v,-20min/title="/LEV=50v,-20min" negvar[K=1]
+shade/lev=50v,-15mean/title="/LEV=50v,-15mean" negvar[K=1]
+shade/lev=50v,-15max/title="/LEV=50v,-15max" negvar[K=1]
+shade/lev=50v,1d/title="/LEV=50v,1d" negvar[K=1]
  
 ! Histogram-based
 shade/line/lev=50h/title="/LEV=50h" temp[K=1]
  
  
-! Need some tests with centered levels and with /LINE
- 
-let cvar = temp - 15
- 
-shade/line/key/lev=50v/title="/LEV=50v,-20min" cvar[K=1]
-shade/line/key/lev=50v/title="/LEV=50v,-15mean" cvar[K=1]
-shade/line/key/lev=50v/title="/LEV=50v,-15max" cvar[K=1]
-shade/line/key/lev=50v,1d/title="/LEV=50v,1d" cvar[K=1]
- 
- 
-shade/line/key/lev=cv/title="/LEV=cv" cvar[K=1]
-shade/line/key/lev=50/title="/LEV=50" cvar[K=1]
-shade/line/key/lev=50c/title="/LEV=50c" cvar[K=1]
-shade/line/key/lev=c,1d/title="/LEV=c,1d" cvar[K=1]
-shade/line/key/lev=20c,1d/title="/LEV=20c,1d" cvar[K=1]
- 
-! Histogram-based
-shade/line/key/lev=50h/title="/LEV=50h" cvar[K=1]
- 
  
  
 ! ******** V6.4 Additions below ***********
@@ -61424,13 +61523,12 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M: 43 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 42 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 36 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 42 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 42 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 36 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 43 I:   95  106  J:   45   50  K:    1    2  L:    2    5
+ regrid  TEMP     M: 42 I:   95  106  J:   45   50  K:    1    2  L:    2    3
+ regrid  TEMP     M: 36 I:   95  106  J:   45   50  K:    1    1  L:    2    3
+ -DELETE TEMP     M: 42 I:   95  106  J:   45   50  K:    1    2  L:    2    3
+ regrid  TEMP     M: 42 I:   12   12  J:   45   49  K:    1    1  L:    2    3
+ -DELETE TEMP     M: 36 I:   95  106  J:   45   50  K:    1    1  L:    2    3
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10G00ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 on X at AAV, on Y at AAV*
              FILENAME : gtsa056_1.cdf
@@ -61449,14 +61547,14 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gx=g5_10g00abcdefghijkl
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M: 43 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 36 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 32 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 36 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 36 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 32 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 32 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 36 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 43 I:   95  106  J:   45   50  K:    1    2  L:    2    5
+ regrid  TEMP     M: 36 I:   95  106  J:   45   50  K:    1    2  L:    2    3
+ regrid  TEMP     M: 32 I:   95  106  J:   45   50  K:    1    1  L:    2    3
+ -DELETE TEMP     M: 36 I:   95  106  J:   45   50  K:    1    2  L:    2    3
+ regrid  TEMP     M: 36 I:   95  106  J:   45   49  K:    1    1  L:    2    3
+ -DELETE TEMP     M: 32 I:   95  106  J:   45   50  K:    1    1  L:    2    3
+ regrid  TEMP     M: 32 I:   12   12  J:   45   49  K:    1    1  L:    2    3
+ -DELETE TEMP     M: 36 I:   95  106  J:   45   49  K:    1    1  L:    2    3
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at AVE, on Y at LIN, on Z at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -61475,13 +61573,14 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijkl
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- found   TEMP     M: 43 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 36 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 29 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 36 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 36 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 29 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 43 I:   95  106  J:   45   50  K:    1    2  L:    2    5
+ regrid  TEMP     M: 36 I:  100  101  J:   45   50  K:    1    2  L:    2    3
+ regrid  TEMP     M: 29 I:  100  101  J:   45   50  K:    1    1  L:    2    3
+ -DELETE TEMP     M: 36 I:  100  101  J:   45   50  K:    1    2  L:    2    3
+ regrid  TEMP     M: 36 I:  100  101  J:   45   49  K:    1    1  L:    2    3
+ -DELETE TEMP     M: 29 I:  100  101  J:   45   50  K:    1    1  L:    2    3
+ regrid  TEMP     M: 29 I:   12   12  J:   45   49  K:    1    1  L:    2    3
+ -DELETE TEMP     M: 36 I:  100  101  J:   45   49  K:    1    1  L:    2    3
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at LIN, on Z at LIN, on T at ASN
              FILENAME : gtsa056_1.cdf
@@ -61497,21 +61596,21 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijkl
 use gtsa056_2	!kob  4/99
 set region/x=180W/y=0/z=5/t=21-JAN-1982:13-JUN-1983
 load temp[i=50:51,j=45:56,k=1:2,l=1:172]  ! preload to save time
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DT1          PSXT1     PSYT1     PSZT2     TIME14    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     1   172 dset:   2
- reading TEMP     M: 29 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid PS3DT1          PSXT1     PSYT1     PSZT1     TIME13
+ eval    EX#1     C:  4 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999
+ strip moduloing TEMP on T axis:     1   172
+ reading TEMP     M: 36 I:   50   51  J:   45   50  K:    1    2  L:    1  168
+ doing moduloing TEMP on T axis:     1   168
 plot temp
- dealloc  dynamic grid PS3DT1          PSXT1     PSYT1     PSZT2     TIME14    NORMAL    NORMAL
- 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 PS3DT1          PSXT1     PSYT1     PSZT2     TIME14    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DT1          PSXT1     PSYT1     PSZT1     TIME13
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ allocate dynamic grid PS3DT1          PSXT1     PSYT1     PSZT1     TIME13
+ eval    EX#1     C:  4 I:   50   50  J:   45   45  K:    1    1  L:    3  170
+ found   TEMP     M: 34 I:   50   51  J:   45   50  K:    1    2  L:    1  172
 setting up plot
-PPL plot 753  complete
+PPL plot 706  complete
 plot/over temp[g=u]
  dealloc  dynamic grid PS3DT1          PSXT1     PSYT1     PSZT2     TIME14    NORMAL    NORMAL
  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
@@ -61519,47 +61618,54 @@ plot/over temp[g=u]
  eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
  strip moduloing TEMP on T axis:     3   170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @LIN
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 28 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ strip regrid on Y: TEMP --> XNTERMED         @LIN
+ found   TEMP     M: 34 I:   50   51  J:   45   50  K:    1    2  L:    1  172
+ regrid  TEMP     M: 28 I:   50   51  J:   45   45  K:    1    1  L:    3  168
+ regrid  TEMP     M: 24 I:   50   50  J:   45   45  K:    1    1  L:    3  168
+ -DELETE TEMP     M: 28 I:   50   51  J:   45   45  K:    1    1  L:    3  168
+ doing moduloing TEMP on T axis:     3   168
  strip regrid on X: TEMP --> PS3DU1           @LIN
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 27 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ strip regrid on Y: TEMP --> XNTERMED         @LIN
+ found   TEMP     M: 34 I:   50   51  J:   45   50  K:    1    2  L:    1  172
+ regrid  TEMP     M: 27 I:   50   51  J:   45   45  K:    1    1  L:    1    2
+ regrid  TEMP     M: 26 I:   50   50  J:   45   45  K:    1    1  L:    1    2
+ -DELETE TEMP     M: 27 I:   50   51  J:   45   45  K:    1    1  L:    1    2
+ doing moduloing TEMP on T axis:     1     2
 setting up plot
-PPL plot 754  complete
+PPL plot 707  complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day]
  dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
  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
  eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
- strip regrid on T: TEMP --> XNTERMED         @LIN
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 26 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 22 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 26 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ strip regrid on Y: TEMP --> XNTERMED         @LIN
+ strip regrid on T: TEMP --> YNTERMED         @LIN
+ found   TEMP     M: 34 I:   50   51  J:   45   50  K:    1    2  L:    1  172
+ regrid  TEMP     M: 27 I:   50   51  J:   45   46  K:    1    1  L:    2  104
+ regrid  TEMP     M: 23 I:   50   51  J:   45   45  K:    1    1  L:    2  104
+ -DELETE TEMP     M: 27 I:   50   51  J:   45   46  K:    1    1  L:    2  104
+ regrid  TEMP     M: 27 I:   50   50  J:   45   45  K:    1    1  L:    2  104
+ -DELETE TEMP     M: 23 I:   50   51  J:   45   45  K:    1    1  L:    2  104
 setting up plot
-PPL plot 755  complete
+PPL plot 708  complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890]
- dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT2     TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 22 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -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
- eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT1     TAX5DAY
+ -DELETE TEMP     M: 27 I:   50   50  J:   45   45  K:    1    1  L:    2  104
+ getgrid EX#1     C:  5 I:    1    1  J:    1    1  K:    1    1  L:    1    1
+ eval    EX#1     C:  4 I:    7    7  J:   45   45  K:    1    1  L:    2  104
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 22 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 26 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 22 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 22 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 26 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M: 34 I:   50   51  J:   45   50  K:    1    2  L:    1  172
+ regrid  TEMP     M: 27 I:   50   51  J:   45   46  K:    1    2  L:    2  104
+ regrid  TEMP     M: 23 I:   50   51  J:   45   46  K:    1    1  L:    2  104
+ -DELETE TEMP     M: 27 I:   50   51  J:   45   46  K:    1    2  L:    2  104
+ regrid  TEMP     M: 27 I:   50   51  J:   45   45  K:    1    1  L:    2  104
+ -DELETE TEMP     M: 23 I:   50   51  J:   45   46  K:    1    1  L:    2  104
+ regrid  TEMP     M: 23 I:    7    7  J:   45   45  K:    1    1  L:    2  104
+ -DELETE TEMP     M: 27 I:   50   51  J:   45   45  K:    1    1  L:    2  104
 setting up plot
-PPL plot 756  complete
+PPL plot 709  complete
 plot/over temp[g=u at ave]
  dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
  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
@@ -61567,30 +61673,27 @@ plot/over temp[g=u at ave]
  eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
  strip moduloing TEMP on T axis:     3   170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @AAV
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 26 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ found   TEMP     M: 34 I:   50   51  J:   45   50  K:    1    2  L:    1  172
+ regrid  TEMP     M: 27 I:   50   50  J:   45   45  K:    1    1  L:    3  168
+ doing moduloing TEMP on T axis:     3   168
  strip regrid on X: TEMP --> PS3DU1           @AAV
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 19 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ found   TEMP     M: 34 I:   50   51  J:   45   50  K:    1    2  L:    1  172
+ regrid  TEMP     M: 19 I:   50   50  J:   45   45  K:    1    1  L:    1    2
+ doing moduloing TEMP on T axis:     1     2
 setting up plot
-PPL plot 757  complete
+PPL plot 710  complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
  dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
  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
  eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M: 34 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 18 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 17 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 18 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M: 34 I:   50   51  J:   45   50  K:    1    2  L:    1  172
+ regrid  TEMP     M: 18 I:   50   51  J:   45   46  K:    1    1  L:    2  104
+ regrid  TEMP     M: 17 I:   50   50  J:   45   45  K:    1    1  L:    2  104
+ -DELETE TEMP     M: 18 I:   50   51  J:   45   46  K:    1    1  L:    2  104
 setting up plot
-PPL plot 758  complete
+PPL plot 711  complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
  dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT2     TAX5DAY   NORMAL    NORMAL
  -DELETE TEMP     M: 17 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
@@ -61609,7 +61712,7 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
  regrid  TEMP     M: 15 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  -DELETE TEMP     M: 12 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
 setting up plot
-PPL plot 759  complete
+PPL plot 712  complete
 plot/over temp[g=u at asn]
  dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
  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
@@ -61631,7 +61734,7 @@ plot/over temp[g=u at asn]
  -DELETE TEMP     M: 14 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
  doing moduloing TEMP on T axis:     1     2 dset:   2
 setting up plot
-PPL plot 760  complete
+PPL plot 713  complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
  dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
  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
@@ -61649,7 +61752,7 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
  regrid  TEMP     M:  9 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  -DELETE TEMP     M: 10 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
 setting up plot
-PPL plot 761  complete
+PPL plot 714  complete
 plot/over temp[g=u,gt=u at ave]
  dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
  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
@@ -61661,20 +61764,22 @@ plot/over temp[g=u,gt=u at ave]
  found   TEMP     M: 24 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
  dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
 setting up plot
-PPL plot 762  complete
+PPL plot 715  complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
  dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT2     TIME14    NORMAL    NORMAL
  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
  eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
- strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M: 18 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 10 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 25 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 10 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ strip regrid on Y: TEMP --> XNTERMED         @LIN
+ strip regrid on T: TEMP --> YNTERMED         @AVE
+ found   TEMP     M: 18 I:   45   56  J:   45   46  K:    1    2  L:    2  171
+ regrid  TEMP     M: 11 I:   50   51  J:   45   46  K:    1    1  L:    2  104
+ regrid  TEMP     M: 25 I:   50   51  J:   45   45  K:    1    1  L:    2  104
+ -DELETE TEMP     M: 11 I:   50   51  J:   45   46  K:    1    1  L:    2  104
+ regrid  TEMP     M: 11 I:   50   50  J:   45   45  K:    1    1  L:    2  104
+ -DELETE TEMP     M: 25 I:   50   51  J:   45   45  K:    1    1  L:    2  104
 setting up plot
-PPL plot 763  complete
+PPL plot 716  complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
  dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT2     TAX5DAY   NORMAL    NORMAL
  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
@@ -61682,28 +61787,31 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefg
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- found   TEMP     M: 18 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 10 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 10 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M: 10 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M: 18 I:   45   56  J:   45   46  K:    1    2  L:    2  171
+ regrid  TEMP     M: 25 I:   50   51  J:   45   46  K:    1    2  L:    2  104
+ regrid  TEMP     M: 21 I:   50   51  J:   45   46  K:    1    1  L:    2  104
+ -DELETE TEMP     M: 25 I:   50   51  J:   45   46  K:    1    2  L:    2  104
+ regrid  TEMP     M: 25 I:   50   51  J:   45   45  K:    1    1  L:    2  104
+ -DELETE TEMP     M: 21 I:   50   51  J:   45   46  K:    1    1  L:    2  104
+ regrid  TEMP     M: 21 I:    7    7  J:   45   45  K:    1    1  L:    2  104
+ -DELETE TEMP     M: 25 I:   50   51  J:   45   45  K:    1    1  L:    2  104
 setting up plot
-PPL plot 764  complete
+PPL plot 717  complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at asn]  ! invalid interpretation of data
  dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
  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
  eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
- strip regrid on T: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 18 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid XY
- regrid  TEMP     M:  8 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 21 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ strip regrid on Y: TEMP --> XNTERMED         @LIN
+ strip regrid on T: TEMP --> YNTERMED         @ASN
+ found   TEMP     M: 18 I:   45   56  J:   45   46  K:    1    2  L:    2  171
+ regrid  TEMP     M: 25 I:   50   51  J:   45   46  K:    1    1  L:    2  104
+ regrid  TEMP     M:  9 I:   50   51  J:   45   45  K:    1    1  L:    2  104
+ -DELETE TEMP     M: 25 I:   50   51  J:   45   46  K:    1    1  L:    2  104
+ regrid  TEMP     M: 25 I:   50   50  J:   45   45  K:    1    1  L:    2  104
+ -DELETE TEMP     M:  9 I:   50   51  J:   45   45  K:    1    1  L:    2  104
 setting up plot
-PPL plot 765  complete
+PPL plot 718  complete
  
  
 set mode/last diag
@@ -62549,7 +62657,7 @@ GO bn_multi_decade
 ! New default no-small tics for multi-decade plots
 ! See bug 670
  
-def axis/t="01-JAN-1860":"30-DEC-2300":1/edges/units="years"/cal="360d" simutaxis1
+def axis/t="01-JAN-1860":"30-DEC-2300":5/edges/units="Days"/cal="360d" simutaxis1
 let tvar = t[gt=simutaxis1]*-1E+34
  
 define view/x=0:1/y=0.000:0.125 v1
@@ -62606,6 +62714,8 @@ set view v8; plot/trans/nolab/ax=0,0,1,0/hlim=0:1/set tvar
   ppl tics,0.1,0.25
   ppl plot
  
+cancel view
+ 
 GO bn_reset
 cancel mode verify
 GO bn_show_xml_file
@@ -62617,12 +62727,8 @@ GO bn_show_xml_file
 !
 ! Similar to LAS iosp script header.jnl
 ! capability to be expanded to all SHOW commands in the future.
-! 5/2012:
-! Do this on a dataset with just one variable.
-! Dont do show axis/all. Just the axes for one variable is a lot of output.
-! Ferret v685, show/data/var/xml includes the output of show axis, so remove that.
  
-USE ocean_atlas_temp.cdf
+use gt4d011
  
 DEFINE SYMBOL output_xml_file = the_xml_file.xml
  
@@ -62635,6 +62741,1836 @@ show var/xml/append/outfile=($output_xml_file)
  !-> show var/xml/append/outfile=the_xml_file.xml
 show data/var/xml/append/outfile=($output_xml_file)
  !-> show data/var/xml/append/outfile=the_xml_file.xml
+<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
+<data>
+<datasets>
+<dataset name="./gt4d011.cdf" default="true">
+<title> </title>
+<var name="TEMP">
+<attribute name="units" value="deg. C" />
+<attribute name="long_name" value="TEMPERATURE" />
+<attribute name="_FillValue" value="  -9.9999998E+33" />
+<attribute name="missing_value" value="  -9.9999998E+33" />
+<attribute name="ferret_datatype" value="FLOAT" />
+<attribute name="infile_datatype" value="FLOAT" />
+<grid name="PS3DT2">
+<axes>
+<xaxis>PSXT1</xaxis>
+<yaxis>PSYT1</yaxis>
+<zaxis>PSZT1</zaxis>
+<taxis>TIME12</taxis>
+</axes>
+</grid>
+</var>
+<var name="SALT">
+<attribute name="units" value="frac. by wt. less .035" />
+<attribute name="long_name" value="(SALINITY(ppt) - 35) /1000" />
+<attribute name="_FillValue" value="   9.9999998E-03" />
+<attribute name="missing_value" value="   9.9999998E-03" />
+<attribute name="ferret_datatype" value="FLOAT" />
+<attribute name="infile_datatype" value="FLOAT" />
+<grid name="PS3DT2">
+<axes>
+<xaxis>PSXT1</xaxis>
+<yaxis>PSYT1</yaxis>
+<zaxis>PSZT1</zaxis>
+<taxis>TIME12</taxis>
+</axes>
+</grid>
+</var>
+<var name="U">
+<attribute name="units" value="cm/sec" />
+<attribute name="long_name" value="ZONAL VELOCITY" />
+<attribute name="_FillValue" value="  -9.9999998E+33" />
+<attribute name="missing_value" value="  -9.9999998E+33" />
+<attribute name="ferret_datatype" value="FLOAT" />
+<attribute name="infile_datatype" value="FLOAT" />
+<grid name="PS3DU2">
+<axes>
+<xaxis>PSXU</xaxis>
+<yaxis>PSYU</yaxis>
+<zaxis>PSZT1</zaxis>
+<taxis>TIME12</taxis>
+</axes>
+</grid>
+</var>
+<var name="V">
+<attribute name="units" value="cm/sec" />
+<attribute name="long_name" value="MERIDIONAL VELOCITY" />
+<attribute name="_FillValue" value="  -9.9999998E+33" />
+<attribute name="missing_value" value="  -9.9999998E+33" />
+<attribute name="ferret_datatype" value="FLOAT" />
+<attribute name="infile_datatype" value="FLOAT" />
+<grid name="PS3DU2">
+<axes>
+<xaxis>PSXU</xaxis>
+<yaxis>PSYU</yaxis>
+<zaxis>PSZT1</zaxis>
+<taxis>TIME12</taxis>
+</axes>
+</grid>
+</var>
+<var name="W">
+<attribute name="units" value="cm/sec" />
+<attribute name="long_name" value="VERTICAL VELOCITY" />
+<attribute name="_FillValue" value="  -9.9999998E+33" />
+<attribute name="missing_value" value="  -9.9999998E+33" />
+<attribute name="ferret_datatype" value="FLOAT" />
+<attribute name="infile_datatype" value="FLOAT" />
+<grid name="PS3DW2">
+<axes>
+<xaxis>PSXT1</xaxis>
+<yaxis>PSYT1</yaxis>
+<zaxis>PSZW</zaxis>
+<taxis>TIME12</taxis>
+</axes>
+</grid>
+</var>
+<var name="TAUX">
+<attribute name="units" value="dynes/cm**2" />
+<attribute name="long_name" value="ZONAL WIND STRESS" />
+<attribute name="_FillValue" value="  -9.9999998E+33" />
+<attribute name="missing_value" value="  -9.9999998E+33" />
+<attribute name="ferret_datatype" value="FLOAT" />
+<attribute name="infile_datatype" value="FLOAT" />
+<grid name="PS2DU2">
+<axes>
+<xaxis>PSXU</xaxis>
+<yaxis>PSYU</yaxis>
+<taxis>TIME12</taxis>
+</axes>
+</grid>
+</var>
+<var name="TAUY">
+<attribute name="units" value="dynes/cm**2" />
+<attribute name="long_name" value="MERIDIONAL WIND STRESS" />
+<attribute name="_FillValue" value="  -9.9999998E+33" />
+<attribute name="missing_value" value="  -9.9999998E+33" />
+<attribute name="ferret_datatype" value="FLOAT" />
+<attribute name="infile_datatype" value="FLOAT" />
+<grid name="PS2DU2">
+<axes>
+<xaxis>PSXU</xaxis>
+<yaxis>PSYU</yaxis>
+<taxis>TIME12</taxis>
+</axes>
+</grid>
+</var>
+<var name="PSI">
+<attribute name="units" value="cm**3/sec" />
+<attribute name="long_name" value="STREAM FUNCTION" />
+<attribute name="_FillValue" value="  -9.9999998E+33" />
+<attribute name="missing_value" value="  -9.9999998E+33" />
+<attribute name="ferret_datatype" value="FLOAT" />
+<attribute name="infile_datatype" value="FLOAT" />
+<grid name="PS2DU2">
+<axes>
+<xaxis>PSXU</xaxis>
+<yaxis>PSYU</yaxis>
+<taxis>TIME12</taxis>
+</axes>
+</grid>
+</var>
+</dataset>
+</datasets>
+<axes>
+<axis name="XEVEN">
+<attribute name="direction" value="I" />
+<attribute name="length" value="10" />
+<attribute name="start" value="2" />
+<attribute name="end" value="20" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="XODD">
+<attribute name="direction" value="I" />
+<attribute name="length" value="10" />
+<attribute name="start" value="1" />
+<attribute name="end" value="19" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="YEVEN">
+<attribute name="direction" value="J" />
+<attribute name="length" value="10" />
+<attribute name="start" value="2" />
+<attribute name="end" value="20" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="YODD">
+<attribute name="direction" value="J" />
+<attribute name="length" value="10" />
+<attribute name="start" value="1" />
+<attribute name="end" value="19" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="ZEVEN">
+<attribute name="direction" value="K" />
+<attribute name="length" value="10" />
+<attribute name="start" value="2" />
+<attribute name="end" value="20" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="ZODD">
+<attribute name="direction" value="K" />
+<attribute name="length" value="10" />
+<attribute name="start" value="1" />
+<attribute name="end" value="19" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TEVEN">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAYS since 1980-01-01 00:00:00 "/>
+<attribute name="length" value="10" />
+<attribute name="start" value="1980-01-03 00:00:00" />
+<attribute name="end" value="1980-01-21 00:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1980-01-01 00:00:00" />
+</axis>
+<axis name="TODD">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAYS since 1980-01-01 00:00:00 "/>
+<attribute name="length" value="10" />
+<attribute name="start" value="1980-01-02 00:00:00" />
+<attribute name="end" value="1980-01-20 00:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1980-01-01 00:00:00" />
+</axis>
+<axis name="XCOARSE">
+<attribute name="direction" value="I" />
+<attribute name="units" value="DEGREES" />
+<attribute name="length" value="10" />
+<attribute name="start" value="5.5E" />
+<attribute name="end" value="95.5E" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="modulo_length" value="360" />
+</axis>
+<axis name="YIR">
+<attribute name="direction" value="J" />
+<attribute name="length" value="3" />
+<attribute name="start" value="12" />
+<attribute name="end" value="50" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="YCOARSE">
+<attribute name="direction" value="J" />
+<attribute name="units" value="DEGREES" />
+<attribute name="length" value="10" />
+<attribute name="start" value="5.5N" />
+<attribute name="end" value="95.5N" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="XAX_SUBSPAN">
+<attribute name="direction" value="I" />
+<attribute name="length" value="6" />
+<attribute name="start" value="41" />
+<attribute name="end" value="46" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="modulo_length" value="100" />
+</axis>
+<axis name="YFINE">
+<attribute name="direction" value="J" />
+<attribute name="units" value="LAT" />
+<attribute name="length" value="6" />
+<attribute name="start" value="19.7N" />
+<attribute name="end" value="19.702N" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TAX48">
+<attribute name="direction" value="L" />
+<attribute name="units" value="HOURS since 1920-01-01 00:00:00 "/>
+<attribute name="length" value="367" />
+<attribute name="start" value="1980-01-01 00:00:00" />
+<attribute name="end" value="1982-01-02 00:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1920-01-01 00:00:00" />
+</axis>
+<axis name="XEZ1">
+<attribute name="direction" value="I" />
+<attribute name="length" value="3" />
+<attribute name="start" value="1" />
+<attribute name="end" value="3" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="XEZ2">
+<attribute name="direction" value="I" />
+<attribute name="length" value="1" />
+<attribute name="start" value="1" />
+<attribute name="end" value="1" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="YEZ">
+<attribute name="direction" value="J" />
+<attribute name="length" value="3" />
+<attribute name="start" value="1" />
+<attribute name="end" value="3" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="ZEZ">
+<attribute name="direction" value="K" />
+<attribute name="length" value="2" />
+<attribute name="start" value="1" />
+<attribute name="end" value="2" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="XEZ3">
+<attribute name="direction" value="I" />
+<attribute name="length" value="8" />
+<attribute name="start" value="1" />
+<attribute name="end" value="8" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="LON_FIELD_J_AXIS">
+<attribute name="direction" value="J" />
+<attribute name="length" value="2" />
+<attribute name="start" value="50" />
+<attribute name="end" value="65" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="LAT_FIELD_I_AXIS">
+<attribute name="direction" value="I" />
+<attribute name="length" value="17" />
+<attribute name="start" value="50" />
+<attribute name="end" value="66" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="LAT_FIELD_J_AXIS">
+<attribute name="direction" value="J" />
+<attribute name="length" value="2" />
+<attribute name="start" value="160" />
+<attribute name="end" value="200" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="XIRREG_SUBSPAN">
+<attribute name="direction" value="I" />
+<attribute name="length" value="6" />
+<attribute name="start" value="41" />
+<attribute name="end" value="46" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="yes" />
+<attribute name="modulo_length" value="100" />
+</axis>
+<axis name="LON_FIELD_I_AXIS">
+<attribute name="direction" value="I" />
+<attribute name="length" value="7" />
+<attribute name="start" value="160" />
+<attribute name="end" value="208" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="XIRREG">
+<attribute name="direction" value="I" />
+<attribute name="length" value="10" />
+<attribute name="start" value="1" />
+<attribute name="end" value="8281" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TCENTURY">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAY since 1901-01-15 00:00:00 "/>
+<attribute name="length" value="39448" />
+<attribute name="start" value="1902-01-01 00:00:00" />
+<attribute name="end" value="2010-01-01 00:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1901-01-15 00:00:00" />
+</axis>
+<axis name="TAX5DAY">
+<attribute name="direction" value="L" />
+<attribute name="units" value="HOUR since 1901-01-15 00:00:00 "/>
+<attribute name="length" value="159" />
+<attribute name="start" value="1982-01-15 00:00:00" />
+<attribute name="end" value="1984-03-15 00:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1901-01-15 00:00:00" />
+</axis>
+<axis name="XAX10">
+<attribute name="direction" value="I" />
+<attribute name="units" value="DEGREES" />
+<attribute name="length" value="19" />
+<attribute name="start" value="120E" />
+<attribute name="end" value="60W" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="modulo_length" value="360" />
+</axis>
+<axis name="TAX_SUBSPAN">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAYS since 0000-01-01 00:00:00 "/>
+<attribute name="length" value="5" />
+<attribute name="start" value="0000-01-16 00:00:00" />
+<attribute name="end" value="0000-05-15 00:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="time_origin" value="0000-01-01 00:00:00" />
+<attribute name="modulo_length" value="365.2485" />
+</axis>
+<axis name="TIRREG_SUBSPAN">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAYS since 0000-01-01 00:00:00 "/>
+<attribute name="length" value="5" />
+<attribute name="start" value="0000-01-16 12:00:00" />
+<attribute name="end" value="0000-05-15 05:57:00" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="yes" />
+<attribute name="time_origin" value="0000-01-01 00:00:00" />
+<attribute name="modulo_length" value="365.2485" />
+</axis>
+<axis name="T1980S">
+<attribute name="direction" value="L" />
+<attribute name="units" value="HOURS since 1901-01-15 00:00:00 "/>
+<attribute name="length" value="120" />
+<attribute name="start" value="1981-01-15 00:00:00" />
+<attribute name="end" value="1990-12-15 00:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1901-01-15 00:00:00" />
+</axis>
+<axis name="XTEST">
+<attribute name="direction" value="I" />
+<attribute name="length" value="21" />
+<attribute name="start" value="-10" />
+<attribute name="end" value="10" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="YTEST">
+<attribute name="direction" value="J" />
+<attribute name="length" value="21" />
+<attribute name="start" value="-10" />
+<attribute name="end" value="10" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="Y1">
+<attribute name="direction" value="J" />
+<attribute name="units" value="LATITUDE" />
+<attribute name="length" value="4" />
+<attribute name="start" value="67.5S" />
+<attribute name="end" value="67.5N" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="ZIRR">
+<attribute name="direction" value="K" />
+<attribute name="units" value="METERS" />
+<attribute name="length" value="4" />
+<attribute name="start" value="0" />
+<attribute name="end" value="70" />
+<attribute name="positive" value="down" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="X5">
+<attribute name="direction" value="I" />
+<attribute name="length" value="5" />
+<attribute name="start" value="1" />
+<attribute name="end" value="5" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TAX1">
+<attribute name="direction" value="L" />
+<attribute name="units" value="YEAR since 0000-01-01 00:00:00 "/>
+<attribute name="length" value="1188" />
+<attribute name="start" value="0001-01-16 00:00:00" />
+<attribute name="end" value="0099-12-16 00:01:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="0000-01-01 00:00:00" />
+<attribute name="calendar" value="360_DAY" />
+</axis>
+<axis name="ZLOG">
+<attribute name="direction" value="K" />
+<attribute name="length" value="10" />
+<attribute name="start" value="2.7183" />
+<attribute name="end" value="22026" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="Z1">
+<attribute name="direction" value="K" />
+<attribute name="length" value="3" />
+<attribute name="start" value="1" />
+<attribute name="end" value="3" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="Z2">
+<attribute name="direction" value="K" />
+<attribute name="length" value="2" />
+<attribute name="start" value="1" />
+<attribute name="end" value="3" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="HOPE_MONTH">
+<attribute name="direction" value="L" />
+<attribute name="units" value="MONTH since 1901-01-15 00:00:00 "/>
+<attribute name="length" value="11" />
+<attribute name="start" value="1966-07-16 00:00:00" />
+<attribute name="end" value="1967-05-16 08:51:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1901-01-15 00:00:00" />
+</axis>
+<axis name="DAYT">
+<attribute name="direction" value="L" />
+<attribute name="length" value="4998" />
+<attribute name="start" value="1" />
+<attribute name="end" value="4998" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="YQ">
+<attribute name="direction" value="J" />
+<attribute name="length" value="46" />
+<attribute name="start" value="-90" />
+<attribute name="end" value="90" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="Y2">
+<attribute name="direction" value="J" />
+<attribute name="length" value="3" />
+<attribute name="start" value="1" />
+<attribute name="end" value="5" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="X3">
+<attribute name="direction" value="I" />
+<attribute name="length" value="3" />
+<attribute name="start" value="1" />
+<attribute name="end" value="3" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="X4">
+<attribute name="direction" value="I" />
+<attribute name="length" value="4" />
+<attribute name="start" value="1" />
+<attribute name="end" value="4" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="XPROJ120">
+<attribute name="direction" value="I" />
+<attribute name="length" value="120" />
+<attribute name="start" value="-1" />
+<attribute name="end" value="1" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="YPROJ120">
+<attribute name="direction" value="J" />
+<attribute name="length" value="120" />
+<attribute name="start" value="-1" />
+<attribute name="end" value="1" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="Y5">
+<attribute name="direction" value="J" />
+<attribute name="length" value="5" />
+<attribute name="start" value="1" />
+<attribute name="end" value="5" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="Y10">
+<attribute name="direction" value="J" />
+<attribute name="length" value="201" />
+<attribute name="start" value="0" />
+<attribute name="end" value="10" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="OBJ_YAX">
+<attribute name="direction" value="J" />
+<attribute name="length" value="46" />
+<attribute name="start" value="1" />
+<attribute name="end" value="10" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="XAXJ">
+<attribute name="direction" value="I" />
+<attribute name="length" value="1" />
+<attribute name="start" value="1" />
+<attribute name="end" value="1" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="OBJ_XAX">
+<attribute name="direction" value="I" />
+<attribute name="length" value="46" />
+<attribute name="start" value="1" />
+<attribute name="end" value="10" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="'COADSX.ILLEGAL'">
+<attribute name="direction" value="I" />
+<attribute name="units" value="DEGREES_EAST" />
+<attribute name="length" value="21" />
+<attribute name="start" value="21E" />
+<attribute name="end" value="61E" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="modulo_length" value="360" />
+</axis>
+<axis name="TIME1">
+<attribute name="direction" value="L" />
+<attribute name="length" value="6" />
+<attribute name="start" value="1" />
+<attribute name="end" value="6" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TIME2">
+<attribute name="direction" value="L" />
+<attribute name="units" value="hour since 1900-01-01 00:00:00 "/>
+<attribute name="length" value="3" />
+<attribute name="start" value="1900-01-16 06:00:00" />
+<attribute name="end" value="1900-05-17 23:56:00" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1900-01-01 00:00:00" />
+</axis>
+<axis name="DLOG">
+<attribute name="direction" value="K" />
+<attribute name="length" value="20" />
+<attribute name="start" value="2.7183" />
+<attribute name="end" value="4.8517E+08" />
+<attribute name="positive" value="down" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="DDLOG">
+<attribute name="direction" value="I" />
+<attribute name="length" value="10" />
+<attribute name="start" value="0.00012341" />
+<attribute name="end" value="1" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="Y3AX">
+<attribute name="direction" value="J" />
+<attribute name="length" value="3" />
+<attribute name="start" value="1" />
+<attribute name="end" value="3" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TAX2">
+<attribute name="direction" value="L" />
+<attribute name="units" value="YR since 0000-01-01 00:00:00 "/>
+<attribute name="length" value="1188" />
+<attribute name="start" value="0001-01-16 00:00:00" />
+<attribute name="end" value="0099-12-16 00:01:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="0000-01-01 00:00:00" />
+<attribute name="calendar" value="360_DAY" />
+</axis>
+<axis name="TT">
+<attribute name="direction" value="L" />
+<attribute name="units" value="YEARS since 0500-01-01 00:00:00 "/>
+<attribute name="length" value="2" />
+<attribute name="start" value="0599-02-07 00:00:00" />
+<attribute name="end" value="0600-02-07 05:49:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="0500-01-01 00:00:00" />
+</axis>
+<axis name="X_AX">
+<attribute name="direction" value="I" />
+<attribute name="length" value="3" />
+<attribute name="start" value="211" />
+<attribute name="end" value="216.2" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TDAYS">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAYS since 1901-01-15 00:00:00 "/>
+<attribute name="length" value="733" />
+<attribute name="start" value="1988-01-01 00:00:00" />
+<attribute name="end" value="1990-01-01 00:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1901-01-15 00:00:00" />
+<attribute name="calendar" value="ALL_LEAP" />
+</axis>
+<axis name="XAXSHIFT">
+<attribute name="direction" value="I" />
+<attribute name="units" value="LON" />
+<attribute name="length" value="360" />
+<attribute name="start" value="180E(-180)" />
+<attribute name="end" value="179E" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+</axis>
+<axis name="XFINE">
+<attribute name="direction" value="I" />
+<attribute name="units" value="LON" />
+<attribute name="length" value="5" />
+<attribute name="start" value="155.1W(204.9)" />
+<attribute name="end" value="155.1W(204.9)" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="yes" />
+<attribute name="modulo_length" value="360" />
+</axis>
+<axis name="XQ">
+<attribute name="direction" value="I" />
+<attribute name="length" value="73" />
+<attribute name="start" value="0" />
+<attribute name="end" value="360" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="LAYER_BETWEEN_TWO_PRESSURE_DIFFERENCE_FROM_GROUND">
+<attribute name="direction" value="I" />
+<attribute name="length" value="3" />
+<attribute name="start" value="0" />
+<attribute name="end" value="5" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TIME">
+<attribute name="direction" value="L" />
+<attribute name="length" value="3" />
+<attribute name="start" value="0" />
+<attribute name="end" value="3" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TJUL">
+<attribute name="direction" value="L" />
+<attribute name="units" value="HOURS since 1900-01-01 00:00:00 "/>
+<attribute name="length" value="12" />
+<attribute name="start" value="1997-01-16 12:00:00" />
+<attribute name="end" value="1997-12-16 12:00:00" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1900-01-01 00:00:00" />
+<attribute name="calendar" value="JULIAN" />
+</axis>
+<axis name="AAX">
+<attribute name="direction" value="I" />
+<attribute name="length" value="20" />
+<attribute name="start" value="1" />
+<attribute name="end" value="20" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="'COADSY.ILLEGAL'">
+<attribute name="direction" value="J" />
+<attribute name="units" value="DEGREES_NORTH" />
+<attribute name="length" value="16" />
+<attribute name="start" value="35N" />
+<attribute name="end" value="65N" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="XFULL">
+<attribute name="direction" value="I" />
+<attribute name="units" value="DEGREES" />
+<attribute name="length" value="4" />
+<attribute name="start" value="180E(-180)" />
+<attribute name="end" value="0E(360)" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="ZAX">
+<attribute name="direction" value="K" />
+<attribute name="length" value="3" />
+<attribute name="start" value="1" />
+<attribute name="end" value="3" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TNOLEAP">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAYS since 1901-01-15 00:00:00 "/>
+<attribute name="length" value="1826" />
+<attribute name="start" value="2000-01-01 00:00:00" />
+<attribute name="end" value="2005-01-01 00:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1901-01-15 00:00:00" />
+<attribute name="calendar" value="NOLEAP" />
+</axis>
+<axis name="TGREG">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAYS since 1901-01-15 00:00:00 "/>
+<attribute name="length" value="1828" />
+<attribute name="start" value="2000-01-01 00:00:00" />
+<attribute name="end" value="2005-01-01 00:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1901-01-15 00:00:00" />
+</axis>
+<axis name="SIMUTAXIS1">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAYS since 1800-01-01 00:00:00 "/>
+<attribute name="length" value="31752" />
+<attribute name="start" value="1860-01-03 12:00:00" />
+<attribute name="end" value="2300-12-28 12:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1800-01-01 00:00:00" />
+<attribute name="calendar" value="360D" />
+</axis>
+<axis name="ZAX2">
+<attribute name="direction" value="K" />
+<attribute name="length" value="13" />
+<attribute name="start" value="10" />
+<attribute name="end" value="2849" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="X2AX">
+<attribute name="direction" value="I" />
+<attribute name="length" value="2" />
+<attribute name="start" value="1" />
+<attribute name="end" value="2" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="modulo_length" value="360" />
+</axis>
+<axis name="Z4AX">
+<attribute name="direction" value="K" />
+<attribute name="length" value="4" />
+<attribute name="start" value="1" />
+<attribute name="end" value="4" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="T2AX">
+<attribute name="direction" value="L" />
+<attribute name="length" value="2" />
+<attribute name="start" value="1" />
+<attribute name="end" value="2" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="XIRR">
+<attribute name="direction" value="I" />
+<attribute name="units" value="DEG" />
+<attribute name="length" value="13" />
+<attribute name="start" value="0E" />
+<attribute name="end" value="24E" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="yes" />
+<attribute name="modulo_length" value="360" />
+</axis>
+<axis name="YFULL">
+<attribute name="direction" value="J" />
+<attribute name="units" value="DEGREES" />
+<attribute name="length" value="3" />
+<attribute name="start" value="90S" />
+<attribute name="end" value="90N" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="XIR">
+<attribute name="direction" value="I" />
+<attribute name="length" value="3" />
+<attribute name="start" value="1" />
+<attribute name="end" value="6" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="MON_IRREG_NLP">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAYS since 0001-01-01 00:00:00 "/>
+<attribute name="length" value="12" />
+<attribute name="start" value="0000-01-16 12:00:00" />
+<attribute name="end" value="0000-12-16 12:00:00" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="yes" />
+<attribute name="time_origin" value="0001-01-01 00:00:00" />
+<attribute name="calendar" value="NOLEAP" />
+</axis>
+<axis name="Z5">
+<attribute name="direction" value="K" />
+<attribute name="units" value="METERS" />
+<attribute name="length" value="15" />
+<attribute name="start" value="1" />
+<attribute name="end" value="15" />
+<attribute name="positive" value="down" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TIME9">
+<attribute name="direction" value="L" />
+<attribute name="units" value="MONTHS since 0001-01-01 00:00:00 "/>
+<attribute name="length" value="3" />
+<attribute name="start" value="0001-01-31 10:29:00" />
+<attribute name="end" value="0001-04-02 07:27:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="0001-01-01 00:00:00" />
+</axis>
+<axis name="X1">
+<attribute name="direction" value="I" />
+<attribute name="units" value="LONGITUDE" />
+<attribute name="length" value="2" />
+<attribute name="start" value="90E" />
+<attribute name="end" value="90W" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+</axis>
+<axis name="YIRR">
+<attribute name="direction" value="J" />
+<attribute name="units" value="DEG" />
+<attribute name="length" value="13" />
+<attribute name="start" value="0" />
+<attribute name="end" value="18N" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="Y4">
+<attribute name="direction" value="J" />
+<attribute name="length" value="4" />
+<attribute name="start" value="0.1" />
+<attribute name="end" value="0.4" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="Z4">
+<attribute name="direction" value="K" />
+<attribute name="length" value="4" />
+<attribute name="start" value="0.01" />
+<attribute name="end" value="0.04" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="T4">
+<attribute name="direction" value="L" />
+<attribute name="length" value="4" />
+<attribute name="start" value="0.001" />
+<attribute name="end" value="0.004" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="XCHANNEL">
+<attribute name="direction" value="I" />
+<attribute name="units" value="KM" />
+<attribute name="length" value="11" />
+<attribute name="start" value="-50" />
+<attribute name="end" value="50" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="YRISE">
+<attribute name="direction" value="J" />
+<attribute name="units" value="KM" />
+<attribute name="length" value="7" />
+<attribute name="start" value="-30" />
+<attribute name="end" value="30" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="ZLAYER">
+<attribute name="direction" value="K" />
+<attribute name="units" value="LAYER" />
+<attribute name="length" value="6" />
+<attribute name="start" value="1" />
+<attribute name="end" value="11" />
+<attribute name="positive" value="down" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TSUB">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAYS since 0000-01-01 00:00:00 "/>
+<attribute name="length" value="3" />
+<attribute name="start" value="0000-09-30 20:00:00" />
+<attribute name="end" value="0000-06-01 04:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="time_origin" value="0000-01-01 00:00:00" />
+<attribute name="modulo_length" value="365.2425" />
+</axis>
+<axis name="XSUB">
+<attribute name="direction" value="I" />
+<attribute name="units" value="degrees" />
+<attribute name="length" value="16" />
+<attribute name="start" value="130E" />
+<attribute name="end" value="80W" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="modulo_length" value="360" />
+</axis>
+<axis name="TIMENOLEAP">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAYS since 1901-01-15 00:00:00 "/>
+<attribute name="length" value="731" />
+<attribute name="start" value="2000-01-01 00:00:00" />
+<attribute name="end" value="2002-01-01 00:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1901-01-15 00:00:00" />
+<attribute name="calendar" value="NOLEAP" />
+</axis>
+<axis name="YAXIS">
+<attribute name="direction" value="J" />
+<attribute name="units" value="DEG" />
+<attribute name="length" value="61" />
+<attribute name="start" value="60S" />
+<attribute name="end" value="60N" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="ZAXIS_ORIG">
+<attribute name="direction" value="K" />
+<attribute name="length" value="5" />
+<attribute name="start" value="10" />
+<attribute name="end" value="50" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="ZAXIS_DES">
+<attribute name="direction" value="K" />
+<attribute name="length" value="9" />
+<attribute name="start" value="345" />
+<attribute name="end" value="353" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TNEW">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAYS since 0001-01-01 00:00:00 "/>
+<attribute name="length" value="20" />
+<attribute name="start" value="0001-01-18 00:00:00" />
+<attribute name="end" value="0002-08-16 12:00:00" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="0001-01-01 00:00:00" />
+<attribute name="calendar" value="NOLEAP" />
+</axis>
+<axis name="XOBS">
+<attribute name="direction" value="I" />
+<attribute name="length" value="3" />
+<attribute name="start" value="1" />
+<attribute name="end" value="3" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="XAX">
+<attribute name="direction" value="I" />
+<attribute name="length" value="2" />
+<attribute name="start" value="1" />
+<attribute name="end" value="2" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="T1">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAYS since 1990-01-01 00:00:00 "/>
+<attribute name="length" value="364" />
+<attribute name="start" value="1991-01-01 12:00:00" />
+<attribute name="end" value="1991-12-30 12:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1990-01-01 00:00:00" />
+</axis>
+<axis name="TSAMPLES">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAYS since 1990-01-01 00:00:00 "/>
+<attribute name="length" value="28" />
+<attribute name="start" value="1990-01-21 00:00:00" />
+<attribute name="end" value="1993-01-05 00:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1990-01-01 00:00:00" />
+</axis>
+<axis name="TCAL">
+<attribute name="direction" value="L" />
+<attribute name="units" value="HOURS since 1901-01-15 00:00:00 "/>
+<attribute name="length" value="24" />
+<attribute name="start" value="1951-01-15 00:00:00" />
+<attribute name="end" value="1952-12-15 00:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1901-01-15 00:00:00" />
+</axis>
+<axis name="TDAY">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAYS since 1998-12-31 00:00:00 "/>
+<attribute name="length" value="31" />
+<attribute name="start" value="1999-01-01 00:00:00" />
+<attribute name="end" value="1999-01-31 00:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1998-12-31 00:00:00" />
+</axis>
+<axis name="X100">
+<attribute name="direction" value="I" />
+<attribute name="units" value="DEG" />
+<attribute name="length" value="100" />
+<attribute name="start" value="1E" />
+<attribute name="end" value="100E" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="modulo_length" value="360" />
+</axis>
+<axis name="T31">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAYS since 1999-12-31 00:00:00 "/>
+<attribute name="length" value="31" />
+<attribute name="start" value="2000-01-01 00:00:00" />
+<attribute name="end" value="2000-01-31 00:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1999-12-31 00:00:00" />
+</axis>
+<axis name="MYZAXIS">
+<attribute name="direction" value="K" />
+<attribute name="units" value="METERS" />
+<attribute name="length" value="1" />
+<attribute name="start" value="5" />
+<attribute name="end" value="5" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="CAXIS">
+<attribute name="direction" value="K" />
+<attribute name="units" value="METERS" />
+<attribute name="length" value="5" />
+<attribute name="start" value="2" />
+<attribute name="end" value="10" />
+<attribute name="positive" value="down" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="XTROP">
+<attribute name="direction" value="I" />
+<attribute name="units" value="degrees" />
+<attribute name="length" value="151" />
+<attribute name="start" value="130E" />
+<attribute name="end" value="80W" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="modulo_length" value="360" />
+</axis>
+<axis name="YTROP">
+<attribute name="direction" value="J" />
+<attribute name="units" value="degrees" />
+<attribute name="length" value="41" />
+<attribute name="start" value="20S" />
+<attribute name="end" value="20N" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TSEC">
+<attribute name="direction" value="L" />
+<attribute name="units" value="SECONDS since 1901-01-15 00:00:00 "/>
+<attribute name="length" value="361" />
+<attribute name="start" value="1902-01-01 00:00:00" />
+<attribute name="end" value="1902-01-01 00:30:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1901-01-15 00:00:00" />
+</axis>
+<axis name="VERT_AXIS_UP">
+<attribute name="direction" value="K" />
+<attribute name="length" value="1000" />
+<attribute name="start" value="10" />
+<attribute name="end" value="10000" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="X2">
+<attribute name="direction" value="I" />
+<attribute name="length" value="4" />
+<attribute name="start" value="1" />
+<attribute name="end" value="7" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="ZUP">
+<attribute name="direction" value="K" />
+<attribute name="units" value="METERS" />
+<attribute name="length" value="51" />
+<attribute name="start" value="0" />
+<attribute name="end" value="100" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="JMONTHS">
+<attribute name="direction" value="L" />
+<attribute name="units" value="MONTHS(JULIAN) since 0000-01-01 00:00:00 "/>
+<attribute name="length" value="13" />
+<attribute name="start" value="0000-01-01 00:00:00" />
+<attribute name="end" value="0000-12-31 06:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="time_origin" value="0000-01-01 00:00:00" />
+<attribute name="calendar" value="JULIAN" />
+</axis>
+<axis name="T_AXIS">
+<attribute name="direction" value="L" />
+<attribute name="length" value="6" />
+<attribute name="start" value="6" />
+<attribute name="end" value="13" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="ZDN">
+<attribute name="direction" value="K" />
+<attribute name="units" value="METERS" />
+<attribute name="length" value="101" />
+<attribute name="start" value="0" />
+<attribute name="end" value="200" />
+<attribute name="positive" value="down" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TAX_C">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAYS since 0001-01-01 00:00:00 "/>
+<attribute name="length" value="12" />
+<attribute name="start" value="0000-01-16 12:00:00" />
+<attribute name="end" value="0000-12-16 12:00:00" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="yes" />
+<attribute name="time_origin" value="0001-01-01 00:00:00" />
+<attribute name="calendar" value="NOLEAP" />
+</axis>
+<axis name="VERT_AXIS_DN">
+<attribute name="direction" value="K" />
+<attribute name="length" value="1000" />
+<attribute name="start" value="10" />
+<attribute name="end" value="10000" />
+<attribute name="positive" value="down" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="YAX">
+<attribute name="direction" value="J" />
+<attribute name="units" value="DEGREES" />
+<attribute name="length" value="81" />
+<attribute name="start" value="20S" />
+<attribute name="end" value="20N" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TAX">
+<attribute name="direction" value="L" />
+<attribute name="units" value="YEAR since 0000-01-01 00:00:00 "/>
+<attribute name="length" value="8" />
+<attribute name="start" value="0002-07-02 12:00:00" />
+<attribute name="end" value="0009-07-02 12:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="0000-01-01 00:00:00" />
+<attribute name="calendar" value="NOLEAP" />
+</axis>
+<axis name="MONTHT">
+<attribute name="direction" value="L" />
+<attribute name="units" value="HOURS since 1901-01-15 00:00:00 "/>
+<attribute name="length" value="24" />
+<attribute name="start" value="1949-01-16 00:00:00" />
+<attribute name="end" value="1950-12-17 01:30:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1901-01-15 00:00:00" />
+</axis>
+<axis name="X10">
+<attribute name="direction" value="I" />
+<attribute name="length" value="201" />
+<attribute name="start" value="0" />
+<attribute name="end" value="10" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TIME6">
+<attribute name="direction" value="L" />
+<attribute name="units" value="day since 1950-12-17 01:30:00 "/>
+<attribute name="length" value="20" />
+<attribute name="start" value="1990-01-01 00:00:00" />
+<attribute name="end" value="1990-01-20 00:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1990-01-01 00:00:00" />
+</axis>
+<axis name="TIME8">
+<attribute name="direction" value="L" />
+<attribute name="units" value="day since 1970-01-01 00:00:00 "/>
+<attribute name="length" value="1" />
+<attribute name="start" value="2004-01-01 00:00:00" />
+<attribute name="end" value="2004-01-01 00:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1970-01-01 00:00:00" />
+<attribute name="calendar" value="JULIAN" />
+</axis>
+<axis name="TIME11">
+<attribute name="direction" value="L" />
+<attribute name="units" value="hour since 1900-01-01 00:00:00 "/>
+<attribute name="length" value="6" />
+<attribute name="start" value="1900-01-16 06:00:00" />
+<attribute name="end" value="1900-06-17 10:25:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1900-01-01 00:00:00" />
+</axis>
+<axis name="PSXT1">
+<attribute name="direction" value="I" />
+<attribute name="units" value="degrees_east" />
+<attribute name="length" value="160" />
+<attribute name="start" value="130.5E" />
+<attribute name="end" value="70.5W" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="modulo_length" value="360" />
+<attribute name="infile_datatype" value="DOUBLE" />
+<attribute name="orig_file_axname" value="PSXT" />
+</axis>
+<axis name="PSYT1">
+<attribute name="direction" value="J" />
+<attribute name="units" value="degrees_north" />
+<attribute name="length" value="100" />
+<attribute name="start" value="28.836S" />
+<attribute name="end" value="48.567N" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+<attribute name="infile_datatype" value="DOUBLE" />
+<attribute name="edges" value="PSYTedges" />
+<attribute name="orig_file_axname" value="PSYT" />
+</axis>
+<axis name="TIME12">
+<attribute name="direction" value="L" />
+<attribute name="units" value="hour since 1980-01-14 14:00:00 "/>
+<attribute name="length" value="25" />
+<attribute name="start" value="1982-08-17 12:00:00" />
+<attribute name="end" value="1983-01-10 12:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1980-01-14 14:00:00" />
+<attribute name="infile_datatype" value="DOUBLE" />
+<attribute name="orig_file_axname" value="TIME1" />
+</axis>
+<axis name="(AX124)">
+<attribute name="direction" value="J" />
+<attribute name="units" value="degrees_north" />
+<attribute name="length" value="41" />
+<attribute name="start" value="10S" />
+<attribute name="end" value="2S" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="infile_datatype" value="CHAR" />
+<attribute name="history" value="FERRET V4.45 (GUI) 21-Apr-97" />
+</axis>
+<axis name="PSZT1">
+<attribute name="direction" value="K" />
+<attribute name="units" value="METERS" />
+<attribute name="length" value="27" />
+<attribute name="start" value="5" />
+<attribute name="end" value="3824" />
+<attribute name="positive" value="down" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+<attribute name="infile_datatype" value="DOUBLE" />
+<attribute name="edges" value="PSZTedges" />
+<attribute name="orig_file_axname" value="PSZT" />
+</axis>
+<axis name="LON_T">
+<attribute name="direction" value="I" />
+<attribute name="units" value="degrees_east" />
+<attribute name="length" value="36" />
+<attribute name="start" value="105.1E" />
+<attribute name="end" value="95E(455)" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="yes" />
+</axis>
+<axis name="LON_U">
+<attribute name="direction" value="I" />
+<attribute name="units" value="degrees_east" />
+<attribute name="length" value="37" />
+<attribute name="start" value="100E" />
+<attribute name="end" value="100E(460)" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="LAT_T">
+<attribute name="direction" value="J" />
+<attribute name="units" value="degrees_north" />
+<attribute name="length" value="36" />
+<attribute name="start" value="76.463S" />
+<attribute name="end" value="76.463N" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="LAT_U">
+<attribute name="direction" value="J" />
+<attribute name="units" value="degrees_north" />
+<attribute name="length" value="37" />
+<attribute name="start" value="90S" />
+<attribute name="end" value="90N" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TIME10">
+<attribute name="direction" value="L" />
+<attribute name="units" value="hour since 0000-01-01 00:00:00 "/>
+<attribute name="length" value="3" />
+<attribute name="start" value="0000-01-16 06:00:00" />
+<attribute name="end" value="0000-03-17 02:58:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="time_origin" value="0000-01-01 00:00:00" />
+<attribute name="modulo_length" value="8765.82" />
+</axis>
+<axis name="(AX052)">
+<attribute name="direction" value="J" />
+<attribute name="units" value="degrees_north" />
+<attribute name="length" value="18" />
+<attribute name="start" value="83S" />
+<attribute name="end" value="87N" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="infile_datatype" value="CHAR" />
+<attribute name="history" value="FERRET V4.45 (GUI) 21-Apr-97" />
+</axis>
+<axis name="(AX050)">
+<attribute name="direction" value="I" />
+<attribute name="units" value="degrees_east" />
+<attribute name="length" value="90" />
+<attribute name="start" value="23E" />
+<attribute name="end" value="19E(379)" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="infile_datatype" value="CHAR" />
+<attribute name="history" value="FERRET V4.45 (GUI) 21-Apr-97" />
+</axis>
+<axis name="LON1_15">
+<attribute name="direction" value="I" />
+<attribute name="units" value="degrees_east" />
+<attribute name="length" value="15" />
+<attribute name="start" value="148.95E" />
+<attribute name="end" value="149.54E" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="yes" />
+<attribute name="modulo_length" value="360" />
+</axis>
+<axis name="LAT1_1">
+<attribute name="direction" value="J" />
+<attribute name="units" value="degrees_north" />
+<attribute name="length" value="1" />
+<attribute name="start" value="45.143S" />
+<attribute name="end" value="45.143S" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TIME7">
+<attribute name="direction" value="L" />
+<attribute name="units" value="days since 1970-01-01 00:00:00 "/>
+<attribute name="length" value="1" />
+<attribute name="start" value="2003-12-31 12:00:00" />
+<attribute name="end" value="2003-12-31 12:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1970-01-01 00:00:00" />
+</axis>
+<axis name="DAYT1">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAYS since 1990-01-01 00:00:00 "/>
+<attribute name="length" value="10" />
+<attribute name="start" value="1990-01-01 00:00:00" />
+<attribute name="end" value="1990-01-10 00:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1990-01-01 00:00:00" />
+</axis>
+<axis name="XAX1_4">
+<attribute name="direction" value="I" />
+<attribute name="length" value="4" />
+<attribute name="start" value="1" />
+<attribute name="end" value="4" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="YAX1_3">
+<attribute name="direction" value="J" />
+<attribute name="length" value="3" />
+<attribute name="start" value="1" />
+<attribute name="end" value="3" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="ZAX1_2">
+<attribute name="direction" value="K" />
+<attribute name="length" value="2" />
+<attribute name="start" value="1" />
+<attribute name="end" value="2" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TAX1_1">
+<attribute name="direction" value="L" />
+<attribute name="length" value="1" />
+<attribute name="start" value="1" />
+<attribute name="end" value="1" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1990-01-01 00:00:00" />
+</axis>
+<axis name="XAX1_9">
+<attribute name="direction" value="I" />
+<attribute name="length" value="9" />
+<attribute name="start" value="1" />
+<attribute name="end" value="9" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="YAX1_8">
+<attribute name="direction" value="J" />
+<attribute name="length" value="8" />
+<attribute name="start" value="1" />
+<attribute name="end" value="8" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="ZAX1_7">
+<attribute name="direction" value="K" />
+<attribute name="length" value="7" />
+<attribute name="start" value="1" />
+<attribute name="end" value="7" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TAX1_6">
+<attribute name="direction" value="L" />
+<attribute name="length" value="6" />
+<attribute name="start" value="1" />
+<attribute name="end" value="6" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1990-01-01 00:00:00" />
+</axis>
+<axis name="XAX1_40">
+<attribute name="direction" value="I" />
+<attribute name="length" value="40" />
+<attribute name="start" value="1" />
+<attribute name="end" value="40" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="YAX1_30">
+<attribute name="direction" value="J" />
+<attribute name="length" value="30" />
+<attribute name="start" value="1" />
+<attribute name="end" value="30" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="ZAX1_20">
+<attribute name="direction" value="K" />
+<attribute name="length" value="20" />
+<attribute name="start" value="1" />
+<attribute name="end" value="20" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TAX1_10">
+<attribute name="direction" value="L" />
+<attribute name="length" value="10" />
+<attribute name="start" value="1" />
+<attribute name="end" value="10" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1990-01-01 00:00:00" />
+</axis>
+<axis name="XUNEVEN">
+<attribute name="direction" value="I" />
+<attribute name="length" value="10" />
+<attribute name="start" value="0" />
+<attribute name="end" value="1" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="YUNEVEN">
+<attribute name="direction" value="J" />
+<attribute name="length" value="8" />
+<attribute name="start" value="0" />
+<attribute name="end" value="1.8062" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="ZAX1_6">
+<attribute name="direction" value="K" />
+<attribute name="length" value="6" />
+<attribute name="start" value="1" />
+<attribute name="end" value="6" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TAX1_4">
+<attribute name="direction" value="L" />
+<attribute name="length" value="4" />
+<attribute name="start" value="1" />
+<attribute name="end" value="4" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1990-01-01 00:00:00" />
+</axis>
+<axis name="XLON">
+<attribute name="direction" value="I" />
+<attribute name="units" value="degrees_east" />
+<attribute name="length" value="40" />
+<attribute name="start" value="141E" />
+<attribute name="end" value="180E" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="modulo_length" value="360" />
+</axis>
+<axis name="YLAT">
+<attribute name="direction" value="J" />
+<attribute name="units" value="degrees_north" />
+<attribute name="length" value="30" />
+<attribute name="start" value="1N" />
+<attribute name="end" value="30N" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TTIME">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAYS since 1901-01-15 00:00:00 "/>
+<attribute name="length" value="20" />
+<attribute name="start" value="1995-01-01 00:00:00" />
+<attribute name="end" value="1995-01-20 00:00:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="1901-01-15 00:00:00" />
+</axis>
+<axis name="TIME3">
+<attribute name="direction" value="L" />
+<attribute name="units" value="hour since 0000-01-01 00:00:00 "/>
+<attribute name="length" value="2" />
+<attribute name="start" value="0000-01-16 06:00:00" />
+<attribute name="end" value="0000-02-15 16:29:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="time_origin" value="0000-01-01 00:00:00" />
+<attribute name="modulo_length" value="8765.82" />
+</axis>
+<axis name="MONTH_IRREG">
+<attribute name="direction" value="L" />
+<attribute name="units" value="DAYS since 0000-01-01 00:00:00 "/>
+<attribute name="length" value="12" />
+<attribute name="start" value="0000-01-16 12:00:00" />
+<attribute name="end" value="0000-12-15 17:49:00" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="yes" />
+<attribute name="time_origin" value="0000-01-01 00:00:00" />
+</axis>
+<axis name="MONTH_REG">
+<attribute name="direction" value="L" />
+<attribute name="units" value="hour since 0000-01-01 00:00:00 "/>
+<attribute name="length" value="12" />
+<attribute name="start" value="0000-01-16 06:00:00" />
+<attribute name="end" value="0000-12-16 01:20:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="time_origin" value="0000-01-01 00:00:00" />
+</axis>
+<axis name="SEASONAL_REG">
+<attribute name="direction" value="L" />
+<attribute name="units" value="HOURS since 0000-01-01 00:00:00 "/>
+<attribute name="length" value="4" />
+<attribute name="start" value="0000-02-15 15:43:00" />
+<attribute name="end" value="0000-11-15 14:05:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="time_origin" value="0000-01-01 00:00:00" />
+</axis>
+<axis name="LON_TRUE">
+<attribute name="direction" value="I" />
+<attribute name="units" value="degrees_east" />
+<attribute name="length" value="5" />
+<attribute name="start" value="1.875W(-1.875)" />
+<attribute name="end" value="13.125E" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="modulo_length" value="360" />
+</axis>
+<axis name="LON_FALSE">
+<attribute name="direction" value="I" />
+<attribute name="units" value="degrees_east" />
+<attribute name="length" value="5" />
+<attribute name="start" value="1.875W(-1.875)" />
+<attribute name="end" value="13.125E" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="LON_USUAL">
+<attribute name="direction" value="I" />
+<attribute name="units" value="degrees_east" />
+<attribute name="length" value="5" />
+<attribute name="start" value="0E" />
+<attribute name="end" value="15E" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="modulo_length" value="360" />
+</axis>
+<axis name="TIME_TRUE">
+<attribute name="direction" value="L" />
+<attribute name="units" value="days since 0000-11-15 14:05:00 "/>
+<attribute name="length" value="4" />
+<attribute name="start" value="30" />
+<attribute name="end" value="150" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="yes" />
+<attribute name="time_origin" value="0000-01-01 00:00:00" />
+</axis>
+<axis name="TIME_MODERR">
+<attribute name="direction" value="L" />
+<attribute name="units" value="meters since 0000-11-15 14:05:00 "/>
+<attribute name="length" value="4" />
+<attribute name="start" value="30" />
+<attribute name="end" value="150" />
+<attribute name="point_spacing" value="uneven" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="0000-01-01 00:00:00" />
+</axis>
+<axis name="TIME_FALSE">
+<attribute name="direction" value="L" />
+<attribute name="units" value="days since 0000-11-15 14:05:00 "/>
+<attribute name="length" value="4" />
+<attribute name="start" value="120" />
+<attribute name="end" value="150" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="time_origin" value="0000-01-01 00:00:00" />
+</axis>
+<axis name="TIME_MOD_NOUNITS">
+<attribute name="direction" value="L" />
+<attribute name="length" value="4" />
+<attribute name="start" value="120" />
+<attribute name="end" value="150" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="time_origin" value="0000-01-01 00:00:00" />
+</axis>
+<axis name="TIME_USUAL">
+<attribute name="direction" value="L" />
+<attribute name="units" value="days since 0000-11-15 14:05:00 "/>
+<attribute name="length" value="4" />
+<attribute name="start" value="120" />
+<attribute name="end" value="150" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="time_origin" value="0000-01-01 00:00:00" />
+</axis>
+<axis name="(AX020)">
+<attribute name="direction" value="J" />
+<attribute name="units" value="degrees_north" />
+<attribute name="length" value="401" />
+<attribute name="start" value="20S" />
+<attribute name="end" value="20N" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+<attribute name="infile_datatype" value="CHAR" />
+<attribute name="history" value="FERRET V4.45 (GUI) 21-Apr-97" />
+</axis>
+<axis name="XAXLEVITR1_160">
+<attribute name="direction" value="I" />
+<attribute name="units" value="degrees_east" />
+<attribute name="length" value="160" />
+<attribute name="start" value="20.5E" />
+<attribute name="end" value="179.5E" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="modulo_length" value="360" />
+</axis>
+<axis name="YAXLEVITR1_90">
+<attribute name="direction" value="J" />
+<attribute name="units" value="degrees_north" />
+<attribute name="length" value="90" />
+<attribute name="start" value="89.5S" />
+<attribute name="end" value="0.5S" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="ZAXLEVITR1_1">
+<attribute name="direction" value="K" />
+<attribute name="units" value="METERS" />
+<attribute name="length" value="1" />
+<attribute name="start" value="0" />
+<attribute name="end" value="0" />
+<attribute name="positive" value="down" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+<axis name="TIME4">
+<attribute name="direction" value="L" />
+<attribute name="units" value="hour since 1980-01-01 00:00:00 "/>
+<attribute name="length" value="3" />
+<attribute name="start" value="1980-01-16 06:00:00" />
+<attribute name="end" value="1980-03-17 02:58:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="time_origin" value="1980-01-01 00:00:00" />
+<attribute name="modulo_length" value="8765.82" />
+</axis>
+<axis name="TIME5">
+<attribute name="direction" value="L" />
+<attribute name="units" value="hour since 0000-01-01 00:00:00 "/>
+<attribute name="length" value="2" />
+<attribute name="start" value="0000-05-16 23:56:00" />
+<attribute name="end" value="0000-06-16 10:25:00" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+<attribute name="time_origin" value="0000-01-01 00:00:00" />
+<attribute name="modulo_length" value="8765.82" />
+</axis>
+<axis name="COADSX">
+<attribute name="direction" value="I" />
+<attribute name="units" value="degrees_east" />
+<attribute name="length" value="180" />
+<attribute name="start" value="21E" />
+<attribute name="end" value="19E(379)" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="yes" />
+</axis>
+<axis name="COADSY">
+<attribute name="direction" value="J" />
+<attribute name="units" value="degrees_north" />
+<attribute name="length" value="90" />
+<attribute name="start" value="89S" />
+<attribute name="end" value="89N" />
+<attribute name="point_spacing" value="even" />
+<attribute name="modulo" value="no" />
+</axis>
+</axes>
+</data>
 say/quiet/outfile=($output_xml_file)/append </data>
  !-> MESSAGE/CONTINUE/quiet/outfile=the_xml_file.xml/append </data>
  
@@ -63043,7 +64979,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 (G091)
+    GRID (G093)
  name       axis              # pts   start                end
  normal    X
  normal    Y
@@ -63250,7 +65186,7 @@ list/x=2:3 sgrid
  
 let tpts = 39798 + 87*RANDU(I)
 show grid tt
-    GRID (G089)
+    GRID (G088)
  name       axis              # pts   start                end
  X10       X                  201 r   0                    10
  Y10       Y                  201 r   0                    10
@@ -64170,9 +66106,9 @@ list contents
              VARIABLE : { SPAWN:"cat redirect_journal.txt" }
              SUBSET   : 47 points (X)
  1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! FERRET v6.95  "                                                          
- 3    /  3:" ! Linux 2.6.18-406.el5 64-bit - 10/26/15"                                  
- 4    /  4:" ! 26-Oct-15 17:21     "                                                    
+ 2    /  2:" ! FERRET v6.65  "                                                          
+ 3    /  3:" ! Linux(gfortran) 2.6.9-89.0.20.ELsmp - 01/03/11"                          
+ 4    /  4:" !  3-Jan-11 16:41     "                                                    
  5    /  5:""                                                                           
  6    /  6:"! "                                                                         
  7    /  7:"!! --- 22. produce some output to stdout and stderr"                        
@@ -64853,13 +66789,8 @@ LET/D=1 a = temp
 ! and also the Z axis which has 10 points.
 SH VAR/XML
 <global>
-<var name="A[D=./a_cartesian_bug1179.nc]">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
+<var name="A[D=./a_cartesian_bug1179.nc]" def="TEMP">
+<attribute name="missing_value" value="-1.00000E+34" />
 <grid name="GHU1">
 <axes>
 <xaxis>GRID_X_T</xaxis>
@@ -64878,13 +66809,8 @@ LET/D=1 temp_ave_t = temp[Z=37.5:112.5 at AVE]
 ! but not the Z axis, which has been averaged away.
 SH VAR/XML
 <global>
-<var name="TEMP_AVE_T[D=./a_cartesian_bug1179.nc]">
-<attribute name="definition" type="char">
-   <value><![CDATA[TEMP[Z=37.5:112.5 at AVE]]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
-   <value>-1.E+34</value>
-</attribute>
+<var name="TEMP_AVE_T[D=./a_cartesian_bug1179.nc]" def="TEMP[Z=37.5:112.5 at AVE]">
+<attribute name="missing_value" value="-1.00000E+34" />
 <grid name="GHU1">
 <axes>
 <xaxis>GRID_X_T</xaxis>
@@ -65109,6 +67035,136 @@ LIST/X=165W:135W/Y=-50/L=1 STRLEN(var)
  137W   / 102:  0.000
  135W   / 103:  0.000
  
+! Note that allowing mouse-click operations in the current
+! window, not only in window 1, is implemented in v6.3. Not
+! tested in the benchmarks.
+ 
+! version 2.3 requires exit/command *sh* 3/92
+exit/command
+yes? ! bn_all_ef_shell.jnl
+yes? ! 5/05 *acm*
+yes? ! run bn_all_ef tests
+yes? 
+yes? GO bn_all_ef
+ 	NOAA/PMEL TMAP
+ 	FERRET v6.65  
+ 	Linux(gfortran) 2.6.9-89.0.20.ELsmp - 01/03/11
+ 	 3-Jan-11 16:42     
+
+SET MODE VERIFY
+! bn_all_ef.jnl
+! - run all the benchmark tests for externally-linked external functions.
+ 
+! Missing data returned as the null string
+LET string = FLOATSTR({3.14159,2.71828,},"(g8.2)")
+LIST string
+             VARIABLE : FLOATSTR({3.14159,2.71828,},"(g8.2)")
+             SUBSET   : 3 points (X)
+ 1   / 1:" 3.1"
+ 2   / 2:" 2.7"
+ 3   / 3:""    
+ 
+! Test some large and small values
+LET var = {3.14159,2.71828,}
+LIST FLOATSTR(36*var,"(e9.4)")
+             VARIABLE : FLOATSTR(36*VAR,"(e9.4)")
+             SUBSET   : 3 points (X)
+ 1   / 1:".1131E+03"
+ 2   / 2:".9786E+02"
+ 3   / 3:""         
+LIST FLOATSTR(1.e14*var,"(e9.4)")
+             VARIABLE : FLOATSTR(1.E14*VAR,"(e9.4)")
+             SUBSET   : 3 points (X)
+ 1   / 1:".3142E+15"
+ 2   / 2:".2718E+15"
+ 3   / 3:""         
+LIST FLOATSTR(1.e-14*var,"(e9.4)")
+             VARIABLE : FLOATSTR(1.E-14*VAR,"(e9.4)")
+             SUBSET   : 3 points (X)
+ 1   / 1:".3142E-13"
+ 2   / 2:".2718E-13"
+ 3   / 3:""         
+LIST FLOATSTR(1.e-14*var,"(f4.1)")
+             VARIABLE : FLOATSTR(1.E-14*VAR,"(f4.1)")
+             SUBSET   : 3 points (X)
+ 1   / 1:" 0.0"
+ 2   / 2:" 0.0"
+ 3   / 3:""    
+LIST FLOATSTR(1.e-14*var,"(1pg9.2)")
+             VARIABLE : FLOATSTR(1.E-14*VAR,"(1pg9.2)")
+             SUBSET   : 3 points (X)
+ 1   / 1:" 3.14E-14"
+ 2   / 2:" 2.72E-14"
+ 3   / 3:""         
+ 
+! Result shape is inherited from the input variable
+USE gt4d011.cdf
+LIST/I=100/J=36:38/T=1-dec-1982:1-jan-1983 FLOATSTR(tauy, "(f8.4)")
+             VARIABLE : FLOATSTR(TAUY, "(f8.4)")
+             FILENAME : gt4d011.cdf
+             SUBSET   : 3 by 6 points (LATITUDE-TIME)
+             LONGITUDE: 130W
+                         3S        2.67S     2.33S   
+                          36        37        38
+ 28-NOV-1982 22 / 18:" -0.0272"" -0.0240"" -0.0208"
+ 05-DEC-1982 00 / 19:" -0.0283"" -0.0252"" -0.0220"
+ 11-DEC-1982 02 / 20:" -0.0294"" -0.0263"" -0.0232"
+ 17-DEC-1982 04 / 21:" -0.0357"" -0.0324"" -0.0291"
+ 23-DEC-1982 06 / 22:" -0.0470"" -0.0434"" -0.0397"
+ 29-DEC-1982 08 / 23:" -0.0583"" -0.0543"" -0.0503"
+ 
+USE coads_climatology
+LET var =  FLOATSTR(sst,"(1pg8.3)")
+ 
+LIST/X=165W:135W/Y=-50/L=1 var
+             VARIABLE : FLOATSTR(SST,"(1pg8.3)")
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 16 points (LONGITUDE)
+             LATITUDE : 51S
+             TIME     : 16-JAN 06:00
+                51S   
+                 20
+ 165W   /  88:"10.5"
+ 163W   /  89:"11.2"
+ 161W   /  90:"11.8"
+ 159W   /  91:"11.0"
+ 157W   /  92:"10.7"
+ 155W   /  93:"10.9"
+ 153W   /  94:"10.7"
+ 151W   /  95:"10.5"
+ 149W   /  96:"10.6"
+ 147W   /  97:"11.0"
+ 145W   /  98:"10.1"
+ 143W   /  99:"11.0"
+ 141W   / 100:""    
+ 139W   / 101:""    
+ 137W   / 102:""    
+ 135W   / 103:""    
+LIST/X=165W:135W/Y=-50/L=1 STRLEN(var)
+             VARIABLE : STRLEN(VAR)
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 16 points (LONGITUDE)
+             LATITUDE : 51S
+             TIME     : 16-JAN 06:00
+                 51S   
+                 20
+ 165W   /  88:  4.000
+ 163W   /  89:  4.000
+ 161W   /  90:  4.000
+ 159W   /  91:  4.000
+ 157W   /  92:  4.000
+ 155W   /  93:  4.000
+ 153W   /  94:  4.000
+ 151W   /  95:  4.000
+ 149W   /  96:  4.000
+ 147W   /  97:  4.000
+ 145W   /  98:  4.000
+ 143W   /  99:  4.000
+ 141W   / 100:  0.000
+ 139W   / 101:  0.000
+ 137W   / 102:  0.000
+ 135W   / 103:  0.000
+ 
 ! *********** v6.7 Additions ***********
 GO bn_reset
 cancel mode verify
@@ -73291,565 +75347,164 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
                                  long_name_mod   CHAR        9    F       X=60W at ITP
   
  
-! SAVE/OUTTYPE sets the type of the variable not the axes
-save/x=300/y=0:5/clobber/file=mytype.nc/outtype=double sst
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
-                                 Conventions     CHAR        6    F       CF-1.6
-  
-(COADSY46_48)          FLOAT     units           CHAR        13   T       degrees_north
-                                 point_spacing   CHAR        4    T       even
-                                 axis            CHAR        1    T       Y
-                                 standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
-  
-(TIME101)              FLOAT     units           CHAR        30   T       hour since 0000-01-01 00:00:00
-                                 time_origin     CHAR        20   T       01-JAN-0000 00:00:00
-                                 modulo          FLOAT       1    T       8765.82
-                                 axis            CHAR        1    T       T
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
-  
- SST                   DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
-                                 _FillValue      DOUBLE      1    T       -1.E+34
-                                 long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
-                                 history         CHAR        22   T       From coads_climatology
-                                 units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-  
- 
-! Restore the axis type from the file
- 
-set axis/outtype=input `sst,return=xaxis`
- !-> set axis/outtype=input COADSX
-set axis/outtype=input `sst,return=yaxis`
- !-> set axis/outtype=input COADSY
-set axis/outtype=input `sst,return=taxis`
- !-> set axis/outtype=input TIME10
- 
-save/x=300/y=0:5/clobber/file=mytype.nc sst
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
-                                 Conventions     CHAR        6    F       CF-1.6
-  
-(COADSY46_48)          DOUBLE    units           CHAR        13   T       degrees_north
-                                 point_spacing   CHAR        4    T       even
-                                 axis            CHAR        1    T       Y
-                                 standard_name   CHAR        8    F       latitude
-                                 orig_file_axnameCHAR        11   F       COADSY46_48
-  
-(TIME10)               DOUBLE    units           CHAR        30   T       hour since 0000-01-01 00:00:00
-                                 time_origin     CHAR        20   T       01-JAN-0000 00:00:00
-                                 modulo          DOUBLE      1    T       8765.82
-                                 axis            CHAR        1    T       T
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        6    F       TIME10
-  
- SST                   FLOAT     missing_value   FLOAT       1    T       -1.E+34
-                                 _FillValue      FLOAT       1    T       -1.E+34
-                                 long_name       CHAR        23   T       SEA SURFACE TEMPERATURE
-                                 history         CHAR        22   T       From coads_climatology
-                                 units           CHAR        5    T       Deg C
-                                 Ferret_PrecisionCHAR        69   F       This variable written using Ferret was converted from FLOAT to DOUBLE
-                                 long_name_mod   CHAR        9    F       X=60W at ITP
-  
- 
-! User-defined axes are output as double by default.
- 
-define axis/t=1-jan-1990:1-feb-1990:2/units=hours myhours
-let tt = t[gt=myhours] - `t[gt=myhours,L=1]`
- !-> DEFINE VARIABLE tt = t[gt=myhours] - 779832
- 
-save/clobber/file=mytype.nc tt
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
-                                 Conventions     CHAR        6    F       CF-1.6
-  
-(MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
-                                 axis            CHAR        1    T       T
-                                 calendar        CHAR        9    T       GREGORIAN
-                                 time_origin     CHAR        11   T       15-JAN-1901
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        7    F       MYHOURS
-  
- TT                    DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
-                                 _FillValue      DOUBLE      1    T       -1.E+34
-                                 long_name       CHAR        22   T       T[GT=MYHOURS] - 779832
-  
- 
-set axis/outtype=int myhours
-set var/bad=-9999 tt
- 
-save/clobber/file=mytype.nc/outtype=int tt
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
-                                 Conventions     CHAR        6    F       CF-1.6
-  
-(MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
-                                 axis            CHAR        1    T       T
-                                 calendar        CHAR        9    T       GREGORIAN
-                                 time_origin     CHAR        11   T       15-JAN-1901
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        7    F       MYHOURS
-  
- TT                    INT       missing_value   INT         1    T       -9999
-                                 _FillValue      INT         1    T       -9999
-                                 long_name       CHAR        22   T       T[GT=MYHOURS] - 779832
-  
- 
-! Restore the type of non-file axis, to double
- 
-set axis/outtype=input myhours
-save/clobber/file=mytype.nc tt
-use mytype.nc; sh dat/att mytype.nc; can data mytype
-     currently SET data sets:
-    2> ./mytype.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V6.95   26-Oct-15
-                                 Conventions     CHAR        6    F       CF-1.6
-  
-(MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
-                                 axis            CHAR        1    T       T
-                                 calendar        CHAR        9    T       GREGORIAN
-                                 time_origin     CHAR        11   T       15-JAN-1901
-                                 standard_name   CHAR        4    F       time
-                                 orig_file_axnameCHAR        7    F       MYHOURS
-  
- TT                    DOUBLE    missing_value   DOUBLE      1    T       -9999
-                                 _FillValue      DOUBLE      1    T       -9999
-                                 long_name       CHAR        22   T       T[GT=MYHOURS] - 779832
-  
- 
- 
-! not all axes can be correctly represented in all data types
-! Intentional errors:
-set mode ignore
- 
-define axis/t=1-jan-1990:1-feb-1992:2/units=seconds myseconds
-let tt = t[gt=myseconds] - `t[gt=myseconds,L=1]`
- !-> DEFINE VARIABLE tt = t[gt=myseconds] - 2.8073952E+09
- 
-set axis/outtype=int myseconds
-save/L=32875000:32875201/clobber/file=mytype.nc tt
- 
- 
-use proleptic_gregorian.nc
-set axis/outtype=byte `my_data,return=taxis`
- !-> set axis/outtype=byte TDAYS1
-save/clobber/file=mytype.nc my_data
- 
-set axis/outtype=int `my_data,return=taxis`
- !-> set axis/outtype=int TDAYS1
-save/clobber/file=mytype.nc my_data
- 
-cancel mode ignore
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_axis_nonmonotonic
-! 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
- 
-! Intentional error
- 
-set mode ignore
-let tvar = {85, 86, 86, 87, 88, 89, 90, 91, 92, 92, 92, 91, 92, 94, 95, 98}
-define axis/t/units=days tax = tvar
- 
-cancel mode ignore
- 
-GO bn_reset
-cancel mode verify
-GO bn_vec_mod
-! bn_vec_mod.jnl
-! /MODULO qualifier for the vector command.
-! 12/12/2012 ACM
-!
-! (Note for a test of POLY/MODULO see
-! /home/users/ansley/ans_ferret/users/brockmann/polymod.jnl)
- 
-use tripolar_subset.nc
- 
-! Define a V component for vectors
- 
-let fakev = 0.8*u - 0.1*geolat_c
-set view ul
-vec u,fakev,geolon_c,geolat_c
-set view ll
-vec/MOD/HLIM=0:360 u,fakev,geolon_c,geolat_c
-set view lr
-vec/MOD/HLIM=-180:180 u,fakev,geolon_c,geolat_c
- 
-can view
- 
-! *********** v6.85 Additions ***********
-GO bn_reset
-cancel mode verify
-GO bn685_bug_fixes
-! bn685_bug_fixes.jnl
-! test various fixes that went into version 6.85
-! 1/2013 ACM
- 
-GO bn_reset
-cancel mode verify
-GO err684_label_quotes
-! err684_label_quotes.jnl
-! See ticket 1298.
- 
-! A long-standing bug, error message if a label
-! enclosed in single quotes is sent to pplus
-! The single quotes triggers an attempt to translate
-! a pplus symbol.
- 
-plot/set/i=1:12 1./i
-  ppl xlab "'My X label'"
-  ppl ylab "'My Y Label'"
-  ppl title "'A title w/ single quotes'. Need not be in pairs: Ka'imimoana"
-ppl plot
- 
- 
-! Here is the example from the ticket
- 
-! This is ok
-say "'hello'"
-'hello'
- 
-! this returned an error
-label 4.5 .5 0 0 .3 "'hello'"
- 
-GO bn_reset
-cancel mode verify
-GO err684_context_shape
-! when limits are omitted with a compressing transformation the grave
-! accent R=SHAPE erroneously includes the corresponding axis in the shape
- 
-! The problem was when INTERP_CONTEXT calls COMPLETE_MISSING_LIMITS.
-! That routine fills in both the SS and the WW limits as the full axis span.
-! in a full-fledged evaluation occurred the ss limits would be set to
-! -999:-999 at the time that the transform was stripped from the stack
- 
-! The fix is to simulate this action inside of INTERP_CONTEXT
- 
-use coads_climatology
-say `sst[l=1:12 at ave],ret=shape`
- !-> MESSAGE/CONTINUE XY
-XY
-say `sst[l=@ave],ret=shape`
- !-> MESSAGE/CONTINUE XY
-XY
- 
-let a = sst[l=1:12 at ave]
-let b = sst[l=@ave]
-say `a,ret=shape`
- !-> MESSAGE/CONTINUE XY
-XY
-say `b,ret=shape`
- !-> MESSAGE/CONTINUE XY
-XY
- 
-GO bn_reset
-cancel mode verify
-GO err684_tax_fcns
-!err684_tax_fcns.jnl
-! See ticket 2043, bug in workaround for single-precision arguments
-!                  no longer needed in double-precision Ferret
-! The output at 13-oct and 18-oct was incorrect
- 
- define axis/t/units=days/t0=1-jan-1950 tday = { \
- 20724.935546875, 20729.921875, 20734.951171875,\
-20739.96484375, 20744.939453125, 20749.8984375, 20754.92578125}
- 
- let var = t[gt=tday]
- 
- 
- list/L=3:7 tax_datestring(var, var, "second")
-             VARIABLE : TAX_DATESTRING(VAR, VAR, "second")
-             SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:"08-OCT-2006 22:49:41"
- 13-OCT-2006 23 / 4:"13-OCT-2006 23:09:22"
- 18-OCT-2006 22 / 5:"18-OCT-2006 22:32:48"
- 23-OCT-2006 21 / 6:"23-OCT-2006 21:33:45"
- 28-OCT-2006 22 / 7:"28-OCT-2006 22:13:07"
- 
- list/L=3:7 tax_day(var, var)
-             VARIABLE : TAX_DAY(VAR, VAR)
-             SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:   8.00
- 13-OCT-2006 23 / 4:  13.00
- 18-OCT-2006 22 / 5:  18.00
- 23-OCT-2006 21 / 6:  23.00
- 28-OCT-2006 22 / 7:  28.00
- 
- list/L=3:7 tax_dayfrac(var, var)
-             VARIABLE : TAX_DAYFRAC(VAR, VAR)
-             SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:  0.9512
- 13-OCT-2006 23 / 4:  0.9648
- 18-OCT-2006 22 / 5:  0.9394
- 23-OCT-2006 21 / 6:  0.8984
- 28-OCT-2006 22 / 7:  0.9258
- 
- list/L=3:7 tax_jday(var, var)
-             VARIABLE : TAX_JDAY(VAR, VAR)
-             SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:  281.0
- 13-OCT-2006 23 / 4:  286.0
- 18-OCT-2006 22 / 5:  291.0
- 23-OCT-2006 21 / 6:  296.0
- 28-OCT-2006 22 / 7:  301.0
- 
- list/L=3:7 tax_jday1900(var, var)
-             VARIABLE : TAX_JDAY1900(VAR, VAR)
-             SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:  38996.
- 13-OCT-2006 23 / 4:  39001.
- 18-OCT-2006 22 / 5:  39006.
- 23-OCT-2006 21 / 6:  39011.
- 28-OCT-2006 22 / 7:  39016.
- 
- list/L=3:7 tax_month(var, var)
-             VARIABLE : TAX_MONTH(VAR, VAR)
-             SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:  10.00
- 13-OCT-2006 23 / 4:  10.00
- 18-OCT-2006 22 / 5:  10.00
- 23-OCT-2006 21 / 6:  10.00
- 28-OCT-2006 22 / 7:  10.00
- 
- list/L=3:7 tax_yearfrac(var, var)
-             VARIABLE : TAX_YEARFRAC(VAR, VAR)
-             SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:  0.7725
- 13-OCT-2006 23 / 4:  0.7862
- 18-OCT-2006 22 / 5:  0.7998
- 23-OCT-2006 21 / 6:  0.8134
- 28-OCT-2006 22 / 7:  0.8272
- 
- list/L=3:7 tax_year(var, var)
-             VARIABLE : TAX_YEAR(VAR, VAR)
-             SUBSET   : 5 points (TIME)
- 08-OCT-2006 22 / 3:  2006.
- 13-OCT-2006 23 / 4:  2006.
- 18-OCT-2006 22 / 5:  2006.
- 23-OCT-2006 21 / 6:  2006.
- 28-OCT-2006 22 / 7:  2006.
- 
- 
-GO bn_reset
-cancel mode verify
-GO err684_save_subset
-! err684_bug_save_subset
-! see ticke 2064, precision in internal comparison of coordinate data
- 
-! previously gave a message about inconsistent coords
- 
-use bug_save_subset.nc
-save/clobber/file=aa.nc/i=5:15 sh
- 
- 
-GO bn_reset
-cancel mode verify
-GO err684_save_subset
-! err684_bug_save_subset
-! see ticke 2064, precision in internal comparison of coordinate data
- 
-! previously gave a message about inconsistent coords
- 
-use bug_save_subset.nc
-save/clobber/file=aa.nc/i=5:15 sh
- 
- 
-GO bn_reset
-cancel mode verify
-GO err684_line_plot_zero
-! err684_line_plot_zero.jnl
-! plot all-zero variable gave blank plot.
-! For a correct plot, yaxis_min and yaxis_max should be -1.0 and 1.0 not 0.0, 0.0
- 
-plot {0,0,0}
-sh sym yaxis*
-YAXIS_REVERSED = "0"
-YAXIS_MIN = "-1.00000000"
-YAXIS_MAX = "1.00000000"
- 
- 
-GO bn_reset
-cancel mode verify
-GO err684_delimited_precision
-! err684_delimited_precision.jnl
-! 5/2013 Fixing bug 2066
-! Reading numeric data with /FORM=DELIM converted to single precision
- 
-! Data has numeric, longitude, and latitude values needing double precision.
-! The seconds portion of time is also now read with double precision
-sp cat delim_prec.dat
-  734654.0000  330.1234500E  42.00001000N  00:00:1.00000001
-  734654.0104  330.1234600E  42.00004000N  00:00:1.00000003
-  734654.0208  330.1234700E  42.00006000N  00:00:1.00000007
-  734654.0313  330.1234800E  42.00007000N  00:00:1.000000095
- 
-! Delimited read, automatically detect data types
-set data/ez/format=delim/del=" " delim_prec.dat
-list/i=1:5/prec=10 v1,v2,v3,v4
-             DATA SET: ./delim_prec.dat
-             X: 0.5 to 4.5
- Column  1: V1
- Column  2: V2 is V2 (degrees_east)(Longitude)
- Column  3: V3 is V3 (degrees_north)(Latitude)
- Column  4: V4 is V4 (hours)(Time of day)
-                  V1       V2           V3             V4
-1   / 1:  734654.0000  330.1234500  42.00001000  2.777777806E-04
-2   / 2:  734654.0104  330.1234600  42.00004000  2.777777861E-04
-3   / 3:  734654.0208  330.1234700  42.00006000  2.777777972E-04
-4   / 4:  734654.0313  330.1234800  42.00007000  2.777778042E-04
- 
-! Delimited read, specify data types
-can dat/all
-set data/ez/format=delim/del=" "/var="day,lon,lat,tim"/type="numeric,longitude,latitude,time" delim_prec.dat
-list/prec=10 day, lon, lat, tim
-             DATA SET: ./delim_prec.dat
-             X: 0.5 to 4.5
- Column  1: DAY
- Column  2: LON is LON (degrees_east)(Longitude)
- Column  3: LAT is LAT (degrees_north)(Latitude)
- Column  4: TIM is TIM (hours)(Time of day)
-                 DAY       LON          LAT            TIM
-1   / 1:  734654.0000  330.1234500  42.00001000  2.777777806E-04
-2   / 2:  734654.0104  330.1234600  42.00004000  2.777777861E-04
-3   / 3:  734654.0208  330.1234700  42.00006000  2.777777972E-04
-4   / 4:  734654.0313  330.1234800  42.00007000  2.777778042E-04
- 
- 
-GO bn_reset
-cancel mode verify
-GO err6842_context_shape
-! err6842_context_shape.jnl
-! 5/2013 acm
-! Continuing the fixes for #1801 (see ticket 2051, and
-! see err68_context_shape.jnl
- 
-! Compound expressions did not always return the correct
-! result,depending on the order of the sub-expressions.
- 
-use coads_climatology
- 
-! All the returns in this script should say XYT
- 
-! Here the second used to just say XY
- 
-let a = sst - sst[t=1:12 at ave]
-let b = sst - sst[t=@ave]
-say `a,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
-say `b,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
- 
-let a = sst[t=1:12 at ave] + sst
-let b = sst[t=@ave] + sst
-say `a,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
-say `b,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
- 
-! The second used to just say XY
-! and the third said XY
- 
-let a = sst - sst[t=1:12 at ave] + sst[x=1:100 at ave]
-let b = sst - sst[t=@ave] + sst[x=@ave]
-let c = sst - sst[x=@ave] + sst[t=@ave]
-say `a,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
-say `b,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
-say `c,ret=shape`
- !-> MESSAGE/CONTINUE XYT
-XYT
- 
- 
-GO bn_reset
-cancel mode verify
-GO err684_evnt_z
-! err684_evnt_z.jnl
-! see ticket 2054
- 
-! Result of @EVNT is correct in x direction
- 
-let my_var1 = { 0, 0, 1, 2, 3, 4 }
-let my_event1 = my_var1[x=@evnt:0.1]
-list my_var1, my_event1! Right answer
-             X: 0.5 to 6.5
- Column  1: MY_VAR1 is { 0, 0, 1, 2, 3, 4 }
- Column  2: MY_EVENT1 is MY_VAR1[X=@EVNT:0.1]
-        MY_VAR1  MY_EVENT1
-1   / 1:   0.000   0.000
-2   / 2:   0.000   0.000
-3   / 3:   1.000   1.000
-4   / 4:   2.000   1.000
-5   / 5:   3.000   1.000
-6   / 6:   4.000   1.000
- 
-! Should be same in the Z direction:
- 
-let my_var = zsequence( my_var1)
-let my_event = my_var[z=@evnt:0.1]
-list my_var, my_event
-             Z: 0.5 to 6.5
- Column  1: MY_VAR is ZSEQUENCE( MY_VAR1)
- Column  2: MY_EVENT is MY_VAR[Z=@EVNT:0.1]
-        MY_VAR  MY_EVENT
-1   / 1:  0.000   0.000
-2   / 2:  0.000   0.000
-3   / 3:  1.000   1.000
-4   / 4:  2.000   1.000
-5   / 5:  3.000   1.000
-6   / 6:  4.000   1.000
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO err684_save_expression
-! err684_save_expression.jnl
-! Bug 2076. If we write out an expression that has not been defined
-! as a user-variable, the variable didn't have missing_value and _FillValue
-! attributes and was written as single-precision float.
- 
-! Define a variable - result is correct
-use coads_climatology
-let a = sst[x=@ave,y=@ave]-sst[x=@ave,y=@ave,t=@ave]
-save/clob/file=a.nc a
-sp ncdump a.nc
+err491_dp_time_write.jnl --- 1 original file
+netcdf out {
+dimensions:
+	T5 = UNLIMITED ; // (1 currently)
+variables:
+	double T5(T5) ;
+		T5:units = "MIN since 1901-01-15 00:00:00" ;
+		T5:axis = "T" ;
+		T5:time_origin = "15-JAN-1901" ;
+	float MY_VAR(T5) ;
+		MY_VAR:missing_value = -1.e+34f ;
+		MY_VAR:_FillValue = -1.e+34f ;
+		MY_VAR:long_name = "T[GT=T5]" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ T5 = 50757969 ;
+
+ MY_VAR = 5.075797e+07 ;
+}
+err491_dp_time_write.jnl --- 2 after append
+netcdf out {
+dimensions:
+	T5 = UNLIMITED ; // (2 currently)
+variables:
+	double T5(T5) ;
+		T5:units = "MIN since 1901-01-15 00:00:00" ;
+		T5:axis = "T" ;
+		T5:time_origin = "15-JAN-1901" ;
+	float MY_VAR(T5) ;
+		MY_VAR:missing_value = -1.e+34f ;
+		MY_VAR:_FillValue = -1.e+34f ;
+		MY_VAR:long_name = "T[GT=T5]" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ T5 = 50757969, 50757974 ;
+
+ MY_VAR = 5.075797e+07, 5.075798e+07 ;
+}
+bn_strings.jnl --- 1 original file
+netcdf test_string {
+dimensions:
+	XAX1_3 = 3 ;
+	STRING1_10 = 10 ;
+	STRING1_16 = 16 ;
+variables:
+	double XAX1_3(XAX1_3) ;
+		XAX1_3:point_spacing = "even" ;
+		XAX1_3:axis = "X" ;
+	char A(XAX1_3, STRING1_10) ;
+		A:long_name = "{\"hello\",\"goodbye\", \"wave to me\"}" ;
+	char B(STRING1_16) ;
+		B:long_name = "\"one line of text\"" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ XAX1_3 = 1, 2, 3 ;
+
+ A =
+  "hello",
+  "goodbye",
+  "wave to me" ;
+
+ B = "one line of text" ;
+}
+bn_strings.jnl --- 2 append to file
+bn_strings.jnl --- 3 enhanced heading
+netcdf test_string {
+dimensions:
+	grid_definition = 1 ;
+	XAX1_19 = 19 ;
+	XAX1_192_5 = 4 ;
+	STRING1_15 = 15 ;
+variables:
+	char GFP3(grid_definition) ;
+		GFP3:axes = "XAX1_19 NORMAL NORMAL NORMAL" ;
+	double XAX1_19(XAX1_19) ;
+		XAX1_19:point_spacing = "even" ;
+		XAX1_19:axis = "X" ;
+	double XAX1_192_5(XAX1_192_5) ;
+		XAX1_192_5:child_axis = " " ;
+		XAX1_192_5:point_spacing = "even" ;
+		XAX1_192_5:axis = "X" ;
+	char D(XAX1_192_5, STRING1_15) ;
+		D:parent_grid = "GFP3" ;
+		D:slab_min_index = 2, 1, 1, 1 ;
+		D:slab_max_index = 5, 1, 1, 1 ;
+		D:long_name = "partial filename list" ;
+		D:history = "From test_string" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ GFP3 = "" ;
+
+ XAX1_19 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ;
+
+ XAX1_192_5 = 2, 3, 4, 5 ;
+
+ D =
+  "dummy1.str_test",
+  "dummy2.str_test",
+  "dummy3.str_test",
+  "dummy4.str_test" ;
+}
+bn_strings.jnl --- 4 sample and ysequence functions on string var
+netcdf foo {
+dimensions:
+	XAX1_4 = 4 ;
+	STRING1_1 = 1 ;
+	YAX1_3 = 3 ;
+variables:
+	double XAX1_4(XAX1_4) ;
+		XAX1_4:point_spacing = "even" ;
+		XAX1_4:axis = "X" ;
+	char A(XAX1_4, STRING1_1) ;
+		A:long_name = "{\"a\",,\" \",\"\"}" ;
+	double YAX1_3(YAX1_3) ;
+		YAX1_3:point_spacing = "even" ;
+		YAX1_3:axis = "Y" ;
+	char B(YAX1_3, STRING1_1) ;
+		B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ XAX1_4 = 1, 2, 3, 4 ;
+
+ A =
+  "a",
+  "",
+  " ",
+  "" ;
+
+ YAX1_3 = 1, 2, 3 ;
+
+ B =
+  "b",
+  "",
+  "a" ;
+}
+err550_nc_seconds.jnl --- seconds of time axis
+		TIME:time_origin = "10-JUN-1996 04:03:36" ;
+bn_bounds.jnl --- 1 output of bounds on irreg axes.
 netcdf a {
 dimensions:
 	TIME10 = UNLIMITED ; // (3 currently)
@@ -73868,8 +75523,8 @@ variables:
 		A:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.95   26-Oct-15" ;
-		:Conventions = "CF-1.6" ;
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
 data:
 
  TIME10 = 366, 1096.485, 1826.97 ;
@@ -73897,8 +75552,8 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.95   26-Oct-15" ;
-		:Conventions = "CF-1.6" ;
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
 data:
 
  TIME10 = 366, 1096.485, 1826.97 ;
@@ -73948,8 +75603,8 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V6.95   26-Oct-15" ;
-		:Conventions = "CF-1.6" ;
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
 data:
 
  TIME10 = 366, 1096.485, 1826.97 ;
@@ -74513,1861 +76168,442 @@ variables:
 		CYCLE_ORIG:history = "From z2" ;
 
 // global attributes:
-		:history = "FERRET V6.95   26-Oct-15" ;
-		:Conventions = "CF-1.6" ;
-}
- 
-GO bn_reset
-cancel mode verify
-GO bn_nobounds
-! 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.
- 
-define axis/x/units=meters xirreg = {0,1,2,4,8}
-let avar = x[gx=xirreg]
-save/clobber/file=a.nc avar
-sp ncdump a.nc
-netcdf a {
-dimensions:
-	XIRREG = 5 ;
-	bnds = 2 ;
-variables:
-	double XIRREG(XIRREG) ;
-		XIRREG:point_spacing = "uneven" ;
-		XIRREG:axis = "X" ;
-		XIRREG:bounds = "XIRREG_bnds" ;
-		XIRREG:units = "meters" ;
-	double XIRREG_bnds(XIRREG, bnds) ;
-	double AVAR(XIRREG) ;
-		AVAR:missing_value = -1.e+34 ;
-		AVAR:_FillValue = -1.e+34 ;
-		AVAR:long_name = "X[GX=XIRREG]" ;
-
-// global attributes:
-		:history = "FERRET V6.95   26-Oct-15" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- XIRREG = 0, 1, 2, 4, 8 ;
-
- XIRREG_bnds =
-  -0.5, 0.5,
-  0.5, 1.5,
-  1.5, 3,
-  3, 6,
-  6, 10 ;
-
- AVAR = 0, 1, 2, 4, 8 ;
-}
-save/nobounds/clobber/file=a.nc avar
-sp ncdump a.nc
-netcdf a {
-dimensions:
-	XIRREG = 5 ;
-variables:
-	double XIRREG(XIRREG) ;
-		XIRREG:point_spacing = "uneven" ;
-		XIRREG:axis = "X" ;
-		XIRREG:units = "meters" ;
-	double AVAR(XIRREG) ;
-		AVAR:missing_value = -1.e+34 ;
-		AVAR:_FillValue = -1.e+34 ;
-		AVAR:long_name = "X[GX=XIRREG]" ;
-
-// global attributes:
-		:history = "FERRET V6.95   26-Oct-15" ;
-		:Conventions = "CF-1.6" ;
-data:
-
- XIRREG = 0, 1, 2, 4, 8 ;
-
- AVAR = 0, 1, 2, 4, 8 ;
-}
- 
-! The dataset has a bounds attribute on the time axis
-! (the bounds themselves get corrected by Ferret on opening the file)
-use gappy_bounds.nc
-sh dat
-     currently SET data sets:
-    1> ./gappy_bounds.nc  (default)
- name     title                             I         J         K         L         M         N
- A        SST[X=150:180 at AVE,Y=-10:0 at AVE]   ...       ...       ...       1:6       ...       ...
- 
- 
-! See the bounds attribute on the t axis
-sh dat/att
-     currently SET data sets:
-    1> ./gappy_bounds.nc  (default)
- Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
-------------------------------------------------------------------------------------------
-  
- .                               history         CHAR        24   T       FERRET V5.60   24-May-04
-  
-(TGAP)                 DOUBLE    units           CHAR        30   T       DAYS since 1990-01-01 00:00:00
-                                 time_origin     CHAR        20   T       01-JAN-1990 00:00:00
-                                 axis            CHAR        1    T       T
-                                 bounds          CHAR        9    T       TGAP_bnds
-                                 orig_file_axnameCHAR        4    F       TGAP
-  
- TGAP_bnds             DOUBLE
-  
- A                     FLOAT     missing_value   FLOAT       1    T       -1.E+34
-                                 _FillValue      FLOAT       1    T       -1.E+34
-                                 long_name       CHAR        30   T       SST[X=150:180 at AVE,Y=-10:0 at AVE]
-                                 history         CHAR        10   T       From coads
-  
- 
-! On a SAVE/NOBOUNDS, do not write the bounds
-! and do not write a bounds attribute on the axis.
-save/clobber/file=a.nc/nobounds a
-sp ncdump -h a.nc	
-netcdf a {
-dimensions:
-	TGAP = UNLIMITED ; // (6 currently)
-variables:
-	double TGAP(TGAP) ;
-		TGAP:units = "days since 1990-01-01 00:00:00" ;
-		TGAP:time_origin = "01-JAN-1990 00:00:00" ;
-		TGAP:axis = "T" ;
-		TGAP:standard_name = "time" ;
-	float A(TGAP) ;
-		A:missing_value = -1.e+34f ;
-		A:_FillValue = -1.e+34f ;
-		A:long_name = "SST[X=150:180 at AVE,Y=-10:0 at AVE]" ;
-		A:history = "From coads" ;
-
-// global attributes:
-		:history = "FERRET V6.95   26-Oct-15" ;
-		:Conventions = "CF-1.6" ;
-}
- 
-! On a SAVE either with /BOUNDS or no bounds qualifier,
-! bounds are written for this irregular time axis.
-save/clobber/file=a.nc/bounds a
- 
-sp ncdump -h a.nc	
-netcdf a {
-dimensions:
-	TGAP = UNLIMITED ; // (6 currently)
-	bnds = 2 ;
-variables:
-	double TGAP(TGAP) ;
-		TGAP:units = "days since 1990-01-01 00:00:00" ;
-		TGAP:time_origin = "01-JAN-1990 00:00:00" ;
-		TGAP:axis = "T" ;
-		TGAP:bounds = "TGAP_bnds" ;
-		TGAP:standard_name = "time" ;
-	double TGAP_bnds(TGAP, bnds) ;
-	float A(TGAP) ;
-		A:missing_value = -1.e+34f ;
-		A:_FillValue = -1.e+34f ;
-		A:long_name = "SST[X=150:180 at AVE,Y=-10:0 at AVE]" ;
-		A:history = "From coads" ;
-
-// global attributes:
-		:history = "FERRET V6.95   26-Oct-15" ;
-		:Conventions = "CF-1.6" ;
-}
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_write_integer_att
-! bn_write_integer_att.jnl
-!  ACM 6/2013
-!
-! This file has an integer attribute
-!    MHCHLA:numberOfObservations = 15736939 ;
-! With double-precision Ferret, we need to call CD_WRITE_ATTVAL_DP
-! in cdf_list.F, so that the value, read in as a double, is written
-! out correctly (else get a netcdf data type matching error).
- 
-use write_int_att.nc
-sh att mhchla
-     attributes for dataset: ./write_int_att.nc
- MHCHLA.missing_value = -9999999
- MHCHLA._FillValue = -9999999
- MHCHLA.actual_range = 0.00049, 91.76669
- MHCHLA.coordsys = geographic 
- MHCHLA.fraction_digits = 2
- MHCHLA.long_name = Chlorophyll-a, Aqua MODIS, NPP, 0.05 degrees, Global, Science Quality 
- MHCHLA.numberOfObservations = 15736939
- MHCHLA.percentCoverage = 0.4216215
- MHCHLA.standard_name = concentration_of_chlorophyll_in_sea_water 
- MHCHLA.units = mg m-3 
- MHCHLA.history = From http://oceanwatch.pfeg.noaa.gov/thredds/dodsC/satellite/MH/chla/mday 
-set att/output=all mhchla
-save/file=a.nc/clobber mhchla
- 
-sp ncdump a.nc | grep numberOfObservations
-		MHCHLA:numberOfObservations = 15736939 ;
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_descriptor_mc
-! bn_descriptor_mc.jnl
-! 7/2013 ACM
-! See ticket 2087
-!
-! Allow extension ".mc" to indicate a descriptor file, as discussed in
-! http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2013/msg00355.html
-!
-use des.mc
-list/x=180/y=0 sst
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : des.mc
-             SUBSET   : 6 points (TIME)
-             LONGITUDE: 180E (interpolated)
-             LATITUDE : 0 (interpolated)
- 16-JAN-0000 / 1:  28.36
- 15-FEB-0000 / 2:  28.38
- 17-MAR-0000 / 3:  28.00
- 16-APR-0000 / 4:  27.99
- 16-MAY-0000 / 5:  28.41
- 16-JUN-0000 / 6:  28.23
- 
-! Also implement /FORMAT=desriptor for both USE and SET DATA
- 
-use/format=desc des.my_descriptor
-list /x=300/y=10 sst
-             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
-             FILENAME : des.my_descriptor
-             SUBSET   : 4 points (TIME)
-             LONGITUDE: 60W (interpolated)
-             LATITUDE : 10N (interpolated)
- 17-MAR-0000 / 1:  26.70
- 16-APR-0000 / 2:  27.17
- 16-MAY-0000 / 3:  27.39
- 16-JUN-0000 / 4:  27.65
- 
-GO bn_reset
-cancel mode verify
-GO bn_plot_color_only
-! 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.
- 
-let pi=atan(1.)*4.
-let a = (-1)*pi*4 + i[i=1:500]*(8*pi/500)
-let b = sin(a)/a
- 
- 
-set view upper
-plot/color b, b[i=@shf:20]
- 
-! With user-defined colors
-ppl color 2, 0, 50, 100
-ppl color 3, 100, 50, 0
-set view lower
-plot/color/thick=3/dash=(0.05,0.1,0.2,0.1) b, b[i=@shf:20]
- 
-! With extra user-defined colors
-can view
-set mode linec:12
-can win/all; set win/new
-ppl color,7,100,65,51   ! orange
-ppl color,8,0,55,0      ! dark green
-ppl color,9,60,0,100    ! purple
-ppl color,10,100,70,100 ! magenta
-ppl color,11,80,70,60   ! tan
-ppl color,12,100,88,0   ! yellow
- 
-plot/thick/color/line/i=1:100 \
- cos(i/20), cos(i/24), cos(i/28), cos(i/32), \
- cos(i/36), cos(i/40), cos(i/44), cos(i/48), \
- cos(i/52), cos(i/56), cos(i/60), cos(i/64)
- 
-cancel mode linecolors
-can win/all; set win/new
- 
-! If lines are plotted using /OVER, Ferret keeps track of the number of lines
-! and continues with the next set of colors. When /startcolor is given, the
-! count is incremented so that subsequent plots continue with the color
-! sequence.
- 
-! colors 1, 2, 3, 4
-set view upper
-plot/thick/i=1:50/vlim=-1.1:1.1 sin(i/6)
-plot/thick/i=1:50/over sin(i/7)
-plot/thick/i=1:50/over 0.6*sin(i/8)
-plot/thick/i=1:50/over 0.6*sin(i/9)
- 
-! colors 2, 3, 4, 5
-set view lower
-plot/thick/i=1:50/vlim=-1.1:1.1/COLOR sin(i/6)
-plot/thick/i=1:50/over sin(i/7)
-plot/thick/i=1:50/over 0.6*sin(i/8)
-plot/thick/i=1:50/over 0.6*sin(i/9)
- 
-! intentional errors
-! /COLOR (w/o argument) not allowed on PLOT/OVER.
- 
-can view
-set mode ignore
- 
-plot/i=1:100 sin(i/6)
-plot/i=1:100/over/COLOR 0.6*sin(i/7)
- 
-! PLOT/COLOR not allowed on PLOT/RIBBON.
- 
-can view
-plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
- 
-set mode/last ignore
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_vtree
-! bn_tree.jnl
- 
-! 11/2013 -- demonstrate SHOW VARIABLE/TREE and RETRUN=STATUS
-! 12/14 update to test regridding output using bn_vtree_regrid.jnl
- 
-CANCEL DATA/ALL
-! pure abstract variable -- no dataset
-let a = 1
-show var/tree a
-   A = 1
- 
-let b = 1
-let c = SIN(b)
-show var/tree c
-   C = SIN(B)
-     B = 1
- 
-! create dummy datasets so we'll have named file variables to play with
-let fv1 = 1
-let fvx = x[i=1:3]
-let fvz = Z[k=1:3]
-SAVE/CLOBBER/QUIET/FILE=my_file_vars.nc fv1, fvx, fvz
-SAVE/CLOBBER/QUIET/FILE=other_file_vars.nc fv1
-SAVE/CLOBBER/QUIET/FILE=another_file_vars.nc fv1
-CAN VAR/ALL
-use  my_file_vars, other_file_vars, another_file_vars
-set data 1
- 
-! ================
- 
-! more pure abstract variables
-let a = 1
-let b = 1
-let c = SIN(b)
-go bn_vtree.sub c
-/TREE=ALL
-   in default dataset my_file_vars
-   C = SIN(B)
-     B = 1
-/TREE=USER
-   in default dataset my_file_vars
-   C = SIN(B)
-     B = 1
-/TREE=FILE
-c is ready and AVAILABLE
-************************
- 
-! file variables
-go bn_vtree.sub fv1
-/TREE=ALL
-   in default dataset my_file_vars
-   FV1
-/TREE=USER
-/TREE=FILE
-   FV1[d=my_file_vars]
-fv1 is ready and AVAILABLE
-************************
-show var/tree/d=other_file_vars fv1
- 
-! expressions
-let a = fv1 + fvx
-go bn_vtree.sub a
-/TREE=ALL
-   in default dataset my_file_vars
-   A = FV1 + FVX
-     FV1
-     FVX
-/TREE=USER
-   in default dataset my_file_vars
-   A = FV1 + FVX
-/TREE=FILE
-   FV1[d=my_file_vars]
-   FVX[d=my_file_vars]
-a is ready and AVAILABLE
-************************
- 
-let a = fv1[d=1] - fv1[d=2]
-vtree=file a
-   FV1[d=my_file_vars]
-   FV1[d=other_file_vars]
-vtree=all a
-   in default dataset my_file_vars
-   A = FV1[D=1] - FV1[D=2]
-     FV1
-     FV1[d=other_file_vars]
-vtree=all /d=1 a
-   in default dataset my_file_vars
-   A = FV1[D=1] - FV1[D=2]
-     FV1
-     FV1[d=other_file_vars]
-vtree=all /d=2 a
-   in default dataset other_file_vars
-   A = FV1[D=1] - FV1[D=2]
-     FV1[d=my_file_vars]
-     FV1
-********************************
- 
-! unrecognized variable names
-go bn_vtree.sub noexist
-/TREE=ALL
-   in default dataset my_file_vars
-   NOEXIST ??			<== UNKNOWN VARIABLE ******
-/TREE=USER
-   in default dataset my_file_vars
-   NOEXIST ??			<== UNKNOWN VARIABLE ******
-/TREE=FILE
-   *unknown variable: NOEXIST
-the problem is UNKNOWN VARIABLE: NOEXIST
-************************
- 
-! unrecognized dataset
-go bn_vtree.sub v[d=noexist]
-/TREE=ALL
-   in default dataset my_file_vars
-   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
-/TREE=USER
-   in default dataset my_file_vars
-   V[D=NOEXIST] ??			<== UNKNOWN DATASET ******
-/TREE=FILE
-   *unknown dataset: V[D=NOEXIST]
-the problem is UNKNOWN DATASET: V[D=NOEXIST]
-************************
- 
-! unrecognized dataset and variable
-go bn_vtree.sub novar[d=nodset]
-/TREE=ALL
-   in default dataset my_file_vars
-   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
-/TREE=USER
-   in default dataset my_file_vars
-   NOVAR[D=NODSET] ??			<== UNKNOWN DATASET ******
-/TREE=FILE
-   *unknown dataset: NOVAR[D=NODSET]
-the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
-************************
- 
-let b = noexist
-go bn_vtree.sub b
-/TREE=ALL
-   in default dataset my_file_vars
-   B = NOEXIST
-     NOEXIST ??			<== UNKNOWN VARIABLE ******
-/TREE=USER
-   in default dataset my_file_vars
-   B = NOEXIST
-     NOEXIST ??			<== UNKNOWN VARIABLE ******
-/TREE=FILE
-   *unknown variable: NOEXIST
-the problem is UNKNOWN VARIABLE: NOEXIST
-************************
- 
-! grid-changing functions
-go bn_vtree.sub RESHAPE(fvx,fvz)
-/TREE=ALL
-   in default dataset my_file_vars
-   FVX
-   FVZ
-/TREE=USER
-/TREE=FILE
-   FVX[d=my_file_vars]
-   FVZ[d=my_file_vars]
-RESHAPE(fvx,fvz) is ready and AVAILABLE
-************************
- 
-! file variable aux var
-LET Zpts = Z[Z=0:500:100]
-define axis/z/units=meters zax = zpts
-LET fv1z = fv1[gz(fvz)=zpts] + fvx
-go bn_vtree.sub fv1z
-/TREE=ALL
-   in default dataset my_file_vars
-   FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
-     FV1
-       regrid to ZPTS = Z[Z=0:500:100]
-       FVZ
-     FVX
-/TREE=USER
-   in default dataset my_file_vars
-   FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
-       regrid to ZPTS = Z[Z=0:500:100]
-/TREE=FILE
-   FV1[d=my_file_vars]
-   FVZ[d=my_file_vars]
-   FVX[d=my_file_vars]
-fv1z is ready and AVAILABLE
-************************
- 
-! user-defined aux vars
-let depth = z[g=fvz]
-LET fv1z = fv1[gz(depth)=zpts] + fvx
-go bn_vtree.sub fv1z
-/TREE=ALL
-   in default dataset my_file_vars
-   FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
-     FV1
-       regrid to ZPTS = Z[Z=0:500:100]
-       DEPTH = Z[G=FVZ]
-     FVX
-/TREE=USER
-   in default dataset my_file_vars
-   FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
-       regrid to ZPTS = Z[Z=0:500:100]
-       DEPTH = Z[G=FVZ]
-/TREE=FILE
-   FV1[d=my_file_vars]
-   FVX[d=my_file_vars]
-fv1z is ready and AVAILABLE
-************************
- 
-let depth = z[g=fvz]+ 0*fvz[k=1]
-LET fv1z = fv1[gz(depth)=zpts] + fvx
-go bn_vtree.sub fv1z
-/TREE=ALL
-   in default dataset my_file_vars
-   FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
-     FV1
-       regrid to ZPTS = Z[Z=0:500:100]
-       DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
-         FVZ
-     FVX
-/TREE=USER
-   in default dataset my_file_vars
-   FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
-       regrid to ZPTS = Z[Z=0:500:100]
-       DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
-/TREE=FILE
-   FV1[d=my_file_vars]
-   FVZ[d=my_file_vars]
-   FVX[d=my_file_vars]
-fv1z is ready and AVAILABLE
-************************
- 
-! unknown aux var
-LET fv1z = fv1[gz(noexist)=zpts] + fvx
-go bn_vtree.sub fv1z
-/TREE=ALL
-   in default dataset my_file_vars
-   FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
-       NOEXIST   (unknown auxiliary variable)
-     FVX
-/TREE=USER
-   in default dataset my_file_vars
-   FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
-       NOEXIST   (unknown auxiliary variable)
-/TREE=FILE
-   *unknown auxiliary variable: NOEXIST
-   FVX[d=my_file_vars]
-the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
-************************
- 
-! unknown variable with known aux var
-LET fv1z = noexist[gz(depth)=zpts] + fvx
-go bn_vtree.sub fv1z
-/TREE=ALL
-   in default dataset my_file_vars
-   FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
-       regrid to ZPTS = Z[Z=0:500:100]
-       DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
-         FVZ
-     FVX
-/TREE=USER
-   in default dataset my_file_vars
-   FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
-     NOEXIST[GZ(DEPTH)=ZPTS] ??			<== UNKNOWN VARIABLE ******
-       regrid to ZPTS = Z[Z=0:500:100]
-       DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
-/TREE=FILE
-   *unknown variable: NOEXIST[GZ(DEPTH)=ZPTS]
-   FVZ[d=my_file_vars]
-   FVX[d=my_file_vars]
-the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
-************************
- 
-! unknown variable with unknown aux var
-LET fv1z = noexist[gz(unknown_aux)=zpts] + fvx
-go bn_vtree.sub fv1z
-/TREE=ALL
-   in default dataset my_file_vars
-   FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
-       regrid to ZPTS = Z[Z=0:500:100]
-       UNKNOWN_AUX   (unknown auxiliary variable)
-     FVX
-/TREE=USER
-   in default dataset my_file_vars
-   FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
-     NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ??			<== UNKNOWN VARIABLE ******
-       regrid to ZPTS = Z[Z=0:500:100]
-       UNKNOWN_AUX   (unknown auxiliary variable)
-/TREE=FILE
-   *unknown variable: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
-   *unknown auxiliary variable: UNKNOWN_AUX
-   FVX[d=my_file_vars]
-the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
-************************
- 
-! aggregate (ensemble) dataset of file variables
-define data/agg my_agg = my_file_vars, other_file_vars, another_file_vars
-go bn_vtree.sub fv1
-/TREE=ALL
-   in default dataset MY_AGG
-   FV1   (aggregate variable)
-     FV1[d=my_file_vars]
-     FV1[d=other_file_vars]
-     FV1[d=another_file_vars]
-/TREE=USER
-   in default dataset MY_AGG
-   FV1   (aggregate variable)
-/TREE=FILE
- 
-   FV1[d=my_file_vars]
-   FV1[d=other_file_vars]
-   FV1[d=another_file_vars]
-fv1 is ready and AVAILABLE
-************************
- 
-! aggregation in which some members are uvars
-let/d=other_file_vars   fvx = fv1 + x[gx=fvx[d=1],i=1:3]
-let/d=another_file_vars fvx = 2*fv1 + x[gx=fvx[d=1],i=1:3]
-define data/agg my_uvar_agg = my_file_vars, other_file_vars, another_file_vars
-go bn_vtree.sub fvx
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   FVX   (aggregate variable)
-     FVX[d=my_file_vars]
-     FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=other_file_vars]
-     FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
-       FV1[d=another_file_vars]
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   FVX   (aggregate variable)
-     FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
-     FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
-/TREE=FILE
- 
-   FVX[d=my_file_vars]
-   FV1[d=other_file_vars]
-   FV1[d=another_file_vars]
-fvx is ready and AVAILABLE
-************************
- 
-! recursions
-! ... a circular parent dependency is a recursion; sibling dependency is not
-let p0 = s1 + p1
-let p1 = s2 + p2
-let p2 = s3 + p3
-let p3 = p1 + S3
-go bn_vtree.sub p0    ! recursion
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   P0 = S1 + P1
-     S1 ??			<== UNKNOWN VARIABLE ******
-     P1 = S2 + P2
-       S2 ??			<== UNKNOWN VARIABLE ******
-       P2 = S3 + P3
-         S3 ??			<== UNKNOWN VARIABLE ******
-         P3 = P1 + S3
-           P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??			<== UNKNOWN VARIABLE ******
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   P0 = S1 + P1
-     S1 ??			<== UNKNOWN VARIABLE ******
-     P1 = S2 + P2
-       S2 ??			<== UNKNOWN VARIABLE ******
-       P2 = S3 + P3
-         S3 ??			<== UNKNOWN VARIABLE ******
-         P3 = P1 + S3
-           P1 =   *** WARNING: RECURSIVE DEFINITION.  See above
-           S3 ??			<== UNKNOWN VARIABLE ******
-/TREE=FILE
-   *unknown variable: S1
-   *unknown variable: S2
-   *unknown variable: S3
-   *unknown variable: S3
-the problem is ILLEGAL RECURSIVE VARIABLES: P1
-************************
-let p3 = s1 + S3
-go bn_vtree.sub p0    ! ok
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   P0 = S1 + P1
-     S1 ??			<== UNKNOWN VARIABLE ******
-     P1 = S2 + P2
-       S2 ??			<== UNKNOWN VARIABLE ******
-       P2 = S3 + P3
-         S3 ??			<== UNKNOWN VARIABLE ******
-         P3 = S1 + S3
-           S1 ??			<== UNKNOWN VARIABLE ******
-           S3 ??			<== UNKNOWN VARIABLE ******
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   P0 = S1 + P1
-     S1 ??			<== UNKNOWN VARIABLE ******
-     P1 = S2 + P2
-       S2 ??			<== UNKNOWN VARIABLE ******
-       P2 = S3 + P3
-         S3 ??			<== UNKNOWN VARIABLE ******
-         P3 = S1 + S3
-           S1 ??			<== UNKNOWN VARIABLE ******
-           S3 ??			<== UNKNOWN VARIABLE ******
-/TREE=FILE
-   *unknown variable: S1
-   *unknown variable: S2
-   *unknown variable: S3
-   *unknown variable: S1
-   *unknown variable: S3
-the problem is UNKNOWN VARIABLE: S1
-************************
- 
-! suppressing duplicated siblings (twins)
-let fv = fv1 + fv1 + fv1
-let uv = fvx + fvx + fvx
-show var/tree/d=my_file_vars    fv
-   in default dataset my_file_vars
-   FV = FV1 + FV1 + FV1
-show var/tree/d=my_uvar_agg     fv
-   in default dataset MY_UVAR_AGG
-   FV = FV1 + FV1 + FV1
-     FV1   (aggregate variable)
-show var/tree/d=other_file_vars uv
-   in default dataset other_file_vars
-   UV = FVX + FVX + FVX
-     FVX = FV1 + X[GX=FVX[D=1],I=1:3]
-show var/tree/d=my_uvar_agg     uv
-   in default dataset MY_UVAR_AGG
-   UV = FVX + FVX + FVX
-     FVX   (aggregate variable)
-       FVX[d=other_file_vars] = FV1 + X[GX=FVX[D=1],I=1:3]
-       FVX[d=another_file_vars] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
-***************************
- 
-! suppressing duplicates elsewhere in the family tree ("defined above")
-let b = c
-let c = 1
-let v1 = a  + b + b^2
-let v2 = v1 + b + a + a        ! a appears after v1
-let v3 = a + v1 + b + a + a    ! a appears before v1
-go bn_vtree.sub v2
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   V2 = V1 + B + A + A
-     V1 = A  + B + B^2
-       A = FV1[D=1] - FV1[D=2]
-         FV1[d=my_file_vars]
-         FV1[d=other_file_vars]
-       B = C
-         C = 1
-     B =  (defined above)
-     A =  (defined above)
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   V2 = V1 + B + A + A
-     V1 = A  + B + B^2
-       A = FV1[D=1] - FV1[D=2]
-       B = C
-         C = 1
-     B =  (defined above)
-     A =  (defined above)
-/TREE=FILE
-   FV1[d=my_file_vars]
-   FV1[d=other_file_vars]
-v2 is ready and AVAILABLE
-************************
-go bn_vtree.sub v3
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   V3 = A + V1 + B + A + A
-     A = FV1[D=1] - FV1[D=2]
-       FV1[d=my_file_vars]
-       FV1[d=other_file_vars]
-     V1 = A  + B + B^2
-       A =  (defined above)
-       B = C
-         C = 1
-     B =  (defined above)
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   V3 = A + V1 + B + A + A
-     A = FV1[D=1] - FV1[D=2]
-     V1 = A  + B + B^2
-       A =  (defined above)
-       B = C
-         C = 1
-     B =  (defined above)
-/TREE=FILE
-   FV1[d=my_file_vars]
-   FV1[d=other_file_vars]
-v3 is ready and AVAILABLE
-************************
- 
-! collections of trees handled as a group
-! display from large tree size to small, suppressing definitions already displayed
-cancel var/all
-let a = f
-let b = fv1[d=my_file_vars]
-let c = 1
-let d = b + c
-let e = 1
-go bn_vtree.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   D = B + C
-     B = FV1[D=MY_FILE_VARS]
-       FV1[d=my_file_vars]
-     C = 1
-   A = F
-     F ??			<== UNKNOWN VARIABLE ******
-   NOEXIST ??			<== UNKNOWN VARIABLE ******
-   E = 1
-   FVX[d=my_file_vars]
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   D = B + C
-     B = FV1[D=MY_FILE_VARS]
-     C = 1
-   A = F
-     F ??			<== UNKNOWN VARIABLE ******
-   NOEXIST ??			<== UNKNOWN VARIABLE ******
-   E = 1
-/TREE=FILE
-   *unknown variable: F
-   FV1[d=my_file_vars]
-   *unknown variable: NOEXIST
-   FVX[d=my_file_vars]
-the problem is UNKNOWN VARIABLE: F
-************************
- 
-! reporting other errors in definitions
-  set mode ignore
- 
-  ! unidentified grid
-  let a = i[i=1:5]
-  let b = a[g=noexist]
-  go bn_vtree.sub b
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   B = A[G=NOEXIST]
-     A = I[I=1:5]
-       regrid to NOEXIST ??		<== UNKNOWN GRID ******
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   B = A[G=NOEXIST]
-     A = I[I=1:5]
-       regrid to NOEXIST ??		<== UNKNOWN GRID ******
-/TREE=FILE
-   *unknown grid: NOEXIST
-the problem is UNKNOWN GRID: NOEXIST
-************************
-  list b
- 
-  ! syntax error - format of longitude
-  let c = a[x=45s]
-  go bn_vtree.sub c
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   C = A[X=45S]
-     A[X=45S]   *** WARNING: ERROR IN DEFINITION
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   C = A[X=45S]
-     A[X=45S]   *** WARNING: ERROR IN DEFINITION
-/TREE=FILE
-      *WARNING: syntax error: A[X=45S]
-the problem is ERROR IN EXPRESSION: A[X=45S]
-************************
-  list c
- 
-  ! syntax error - extra comma
-  let d = a[i=1,,j=2]
-  go bn_vtree.sub d
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   D = A[I=1,,J=2]
-     A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   D = A[I=1,,J=2]
-     A[I=1,,J=2]   *** WARNING: ERROR IN DEFINITION
-/TREE=FILE
-      *WARNING: syntax error: A[I=1,,J=2]
-the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
-************************
-  list d
- 
-  ! syntax error - unknown pseudovariable
-  let e = a[p=1]
-  go bn_vtree.sub e
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   E = A[P=1]
-     A[P=1]   *** WARNING: ERROR IN DEFINITION
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   E = A[P=1]
-     A[P=1]   *** WARNING: ERROR IN DEFINITION
-/TREE=FILE
-      *WARNING: syntax error: A[P=1]
-the problem is ERROR IN EXPRESSION: A[P=1]
-************************
-  list e
- 
-  ! out of limit region -- not detectable as error, because grids are never determined
-  let f = a[i=10]
-  go bn_vtree.sub f
-/TREE=ALL
-   in default dataset MY_UVAR_AGG
-   F = A[I=10]
-     A = I[I=1:5]
-/TREE=USER
-   in default dataset MY_UVAR_AGG
-   F = A[I=10]
-     A = I[I=1:5]
-/TREE=FILE
-f is ready and AVAILABLE
-************************
-  list f
- 
-  set mode/last ignore
- 
-! dependency through attribute sharing (not yet implemented)
-let a = fvz.long_name[d=1]
-show var/tree a
-   in default dataset MY_UVAR_AGG
-   A = FVZ.LONG_NAME[D=1]
-let a = ..history[d=1]
-show var/tree a
-   in default dataset MY_UVAR_AGG
-   A = ..HISTORY[D=1]
- 
-! *****
-! 12/14 addition to test regridding dependencies
-go bn_vtree_regrid
-! bn_vtree_regrid.jnl
-! 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
- 
-! case 1: target grid known,   regridded variable known
-let myvar = 1           ! var to be regridded is known
-let gvar = x[x=1:5]    ! target regridding var is known
-let a = myvar[g=gvar] + unvar + kvar
-let kvar = 1  ! known var
-! unvar is always unknown
-sho var/tree a
-   in default dataset MY_UVAR_AGG
-   A = MYVAR[G=GVAR] + UNVAR + KVAR
-     MYVAR = 1
-       regrid to GVAR = X[X=1:5]
-     UNVAR ??			<== UNKNOWN VARIABLE ******
-     KVAR = 1
- 
-! case 2: target grid known,   regridded variable unknown
-canc var/all
-! myvar unknown
-let gvar = x[x=1:5]    ! target regridding var is known
-let a = myvar[g=gvar] + unvar + kvar
-let kvar = 1  ! known var
-! unvar is always unknown
-sho var/tree a
-   in default dataset MY_UVAR_AGG
-   A = MYVAR[G=GVAR] + UNVAR + KVAR
-     MYVAR[G=GVAR] ??			<== UNKNOWN VARIABLE ******
-       regrid to GVAR = X[X=1:5]
-     UNVAR ??			<== UNKNOWN VARIABLE ******
-     KVAR = 1
- 
-! case 3: target grid unknown, regridded variable known
-canc var/all
-let myvar = 1           ! var to be regridded is known
-! gvar unknown
-let a = myvar[g=gvar] + unvar + kvar
-let kvar = 1  ! known var
-! unvar is always unknown
-sho var/tree a
-   in default dataset MY_UVAR_AGG
-   A = MYVAR[G=GVAR] + UNVAR + KVAR
-     MYVAR = 1
-       regrid to GVAR ??		<== UNKNOWN GRID ******
-     UNVAR ??			<== UNKNOWN VARIABLE ******
-     KVAR = 1
- 
-! case 4: target grid unknown, regridded variable unknown
-canc var/all
-! myvar unknown
-! gvar  unknown
-let a = myvar[g=gvar] + unvar + kvar
-let kvar = 1  ! known var
-! unvar is always unknown
-sho var/tree a
-   in default dataset MY_UVAR_AGG
-   A = MYVAR[G=GVAR] + UNVAR + KVAR
-     MYVAR[G=GVAR] ??			<== UNKNOWN VARIABLE ******
-       regrid to GVAR ??		<== UNKNOWN GRID ******
-     UNVAR ??			<== UNKNOWN VARIABLE ******
-     KVAR = 1
- 
-! **************************************
-! same tests but now with a dataset named with the target grid
-use coads_climatology
-use levitus_climatology   ! default to d=2
- 
-! case 1: target grid known,   regridded variable known
-canc var/all
-let myvar = 1           ! var to be regridded is known
-let a = myvar[g=sst[d=1]] + unvar + kvar
-let kvar = 1  ! known var
-! unvar is always unknown
-sho var/tree=all a
-   in default dataset levitus_climatology
-   A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
-     MYVAR = 1
-       regrid to SST[D=1] ??		<== UNKNOWN GRID ******
-     UNVAR ??			<== UNKNOWN VARIABLE ******
-     KVAR = 1
- 
-! case 2: target grid known,   regridded variable unknown
-canc var/all
-! myvar unknown
-let a = myvar[g=sst[d=1]] + unvar + kvar
-let kvar = 1  ! known var
-! unvar is always unknown
-sho var/tree=all a
-   in default dataset levitus_climatology
-   A = MYVAR[G=SST[D=1]] + UNVAR + KVAR
-     MYVAR[G=SST[D=1]] ??			<== UNKNOWN VARIABLE ******
-       regrid to SST[D=1] ??		<== UNKNOWN GRID ******
-     UNVAR ??			<== UNKNOWN VARIABLE ******
-     KVAR = 1
- 
-! case 3a: target grid unknown, regridded variable known
-canc var/all
-let myvar = 1           ! var to be regridded is known
-! gvar unknown
-let a = myvar[g=gvar[d=1]] + unvar + kvar
-let kvar = 1  ! known var
-! unvar is always unknown
-sho var/tree=all a
-   in default dataset levitus_climatology
-   A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
-     MYVAR = 1
-       regrid to GVAR[D=1] ??		<== UNKNOWN GRID ******
-     UNVAR ??			<== UNKNOWN VARIABLE ******
-     KVAR = 1
- 
-! case 3b: target grid unknown cuz of dataset, regridded variable known
-canc var/all
-let myvar = 1           ! var to be regridded is known
-! gvar unknown
-let a = myvar[g=sst[d=bad_dset]] + unvar + kvar
-let kvar = 1  ! known var
-! unvar is always unknown
-sho var/tree=all a
-   in default dataset levitus_climatology
-   A = MYVAR[G=SST[D=BAD_DSET]] + UNVAR + KVAR
-     MYVAR[G=SST[D=BAD_DSET]] ??			<== UNKNOWN DATASET ******
-     UNVAR ??			<== UNKNOWN VARIABLE ******
-     KVAR = 1
- 
-! case 4: target grid unknown, regridded variable unknown
-canc var/all
-! myvar unknown
-! gvar  unknown
-let a = myvar[g=gvar[d=1]] + unvar + kvar
-let kvar = 1  ! known var
-! unvar is always unknown
-sho var/tree=all a
-   in default dataset levitus_climatology
-   A = MYVAR[G=GVAR[D=1]] + UNVAR + KVAR
-     MYVAR[G=GVAR[D=1]] ??			<== UNKNOWN VARIABLE ******
-       regrid to GVAR[D=1] ??		<== UNKNOWN GRID ******
-     UNVAR ??			<== UNKNOWN VARIABLE ******
-     KVAR = 1
- 
-! *******************
-! file variable listing, only
-canc var/all
-let myvar = 1
-let fvar = airt[d=1]
-let kvar = 1  ! known var
-* /TREE=FILE with know regrid target
-let a = myvar[g=sst[d=1]] + fvar + kvar
-sho var/tree=file a
-   *unknown grid: SST[D=1]
-   *unknown variable: AIRT[D=1]
- 
-* /TREE=FILE with unknow regrid target
-let a = myvar[g=unknown] + fvar + kvar
-sho var/tree=file a
-   *unknown grid: UNKNOWN
-   *unknown variable: AIRT[D=1]
- 
-! ********************
-! regridding to multiple targets
- 
-define axis/x=140e:160e:1 x1
-define axis/y=20s:20n:1   y1
-LET myvar = X[gx=x1] + Y[gy=y1]
- 
-define axis/y=5s:5n:.5 yp5
- 
-go bn_vtree.sub myvar[g=temp]
-/TREE=ALL
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to TEMP
-/TREE=USER
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-/TREE=FILE
-   regrid to TEMP[d=levitus_climatology]
-myvar[g=temp] is ready and AVAILABLE
-************************
- 
-! second target *is* a named variable
-go bn_vtree.sub myvar[g=temp,gy=sst[d=1]]
-/TREE=ALL
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to TEMP
-     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
-/TREE=USER
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
-/TREE=FILE
-   regrid to TEMP[d=levitus_climatology]
-   *unknown grid: SST[D=1]
-the problem is UNKNOWN GRID: SST[D=1]
-************************
-go bn_vtree.sub myvar[gx=temp,gy=sst[d=1]]
-/TREE=ALL
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to TEMP
-     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
-/TREE=USER
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
-/TREE=FILE
-   regrid to TEMP[d=levitus_climatology]
-   *unknown grid: SST[D=1]
-the problem is UNKNOWN GRID: SST[D=1]
-************************
-go bn_vtree.sub myvar[gy=sst[d=1],gx=temp]  ! reverse order, only
-/TREE=ALL
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
-     regrid to TEMP
-/TREE=USER
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
-/TREE=FILE
-   *unknown grid: SST[D=1]
-   regrid to TEMP[d=levitus_climatology]
-the problem is UNKNOWN GRID: SST[D=1]
-************************
- 
-! second target is not a named variable
-go bn_vtree.sub myvar[g=temp,gy=yp5]
-/TREE=ALL
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to TEMP
-/TREE=USER
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-/TREE=FILE
-   regrid to TEMP[d=levitus_climatology]
-myvar[g=temp,gy=yp5] is ready and AVAILABLE
-************************
-go bn_vtree.sub myvar[gx=temp,gy=yp5]
-/TREE=ALL
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to TEMP
-/TREE=USER
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-/TREE=FILE
-   regrid to TEMP[d=levitus_climatology]
-myvar[gx=temp,gy=yp5] is ready and AVAILABLE
-************************
-go bn_vtree.sub myvar[g=temp,y=5s:5n:.5]
-/TREE=ALL
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to TEMP
-/TREE=USER
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-/TREE=FILE
-   regrid to TEMP[d=levitus_climatology]
-myvar[g=temp,y=5s:5n:.5] is ready and AVAILABLE
-************************
-go bn_vtree.sub myvar[g=sst[d=1],y=5s:5n:.5]
-/TREE=ALL
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
-/TREE=USER
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to SST[D=1] ??		<== UNKNOWN GRID ******
-/TREE=FILE
-   *unknown grid: SST[D=1]
-the problem is UNKNOWN GRID: SST[D=1]
-************************
- 
-! multiple targets, including unknown variables
-go bn_vtree.sub myvar[g=temp,gy=mybad]
-/TREE=ALL
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to TEMP
-     regrid to MYBAD ??		<== UNKNOWN GRID ******
-/TREE=USER
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to MYBAD ??		<== UNKNOWN GRID ******
-/TREE=FILE
-   regrid to TEMP[d=levitus_climatology]
-   *unknown grid: MYBAD
-the problem is UNKNOWN GRID: MYBAD
-************************
-go bn_vtree.sub myvar[g=mybad,gy=temp]
-/TREE=ALL
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to MYBAD ??		<== UNKNOWN GRID ******
-     regrid to TEMP
-/TREE=USER
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to MYBAD ??		<== UNKNOWN GRID ******
-/TREE=FILE
-   *unknown grid: MYBAD
-   regrid to TEMP[d=levitus_climatology]
-the problem is UNKNOWN GRID: MYBAD
-************************
-go bn_vtree.sub myvar[gy=temp,g=mybad[d=1]]
-/TREE=ALL
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to TEMP
-     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
-/TREE=USER
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
-/TREE=FILE
-   regrid to TEMP[d=levitus_climatology]
-   *unknown grid: MYBAD[D=1]
-the problem is UNKNOWN GRID: MYBAD[D=1]
-************************
-go bn_vtree.sub myvar[g=temp,gx=mybad[d=1],gy=mybad2]! distinct unknown targets
-/TREE=ALL
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to TEMP
-     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
-     regrid to MYBAD2 ??		<== UNKNOWN GRID ******
-/TREE=USER
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
-     regrid to MYBAD2 ??		<== UNKNOWN GRID ******
-/TREE=FILE
-   regrid to TEMP[d=levitus_climatology]
-   *unknown grid: MYBAD[D=1]
-   *unknown grid: MYBAD2
-the problem is UNKNOWN GRID: MYBAD[D=1]
-************************
-go bn_vtree.sub myvar[gx=temp,gy=temp,g=mybad[d=1]]  ! dup known targets
-/TREE=ALL
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to TEMP
-     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
-/TREE=USER
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to MYBAD[D=1] ??		<== UNKNOWN GRID ******
-/TREE=FILE
-   regrid to TEMP[d=levitus_climatology]
-   *unknown grid: MYBAD[D=1]
-the problem is UNKNOWN GRID: MYBAD[D=1]
-************************
-go bn_vtree.sub myvar[g=temp,gx=mybad,gy=mybad]      ! dup unknown suppressed
-/TREE=ALL
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to TEMP
-     regrid to MYBAD ??		<== UNKNOWN GRID ******
-/TREE=USER
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to MYBAD ??		<== UNKNOWN GRID ******
-/TREE=FILE
-   regrid to TEMP[d=levitus_climatology]
-   *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
-/TREE=ALL
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to TEMP
-     regrid to MYBAD[D=2] ??		<== UNKNOWN GRID ******
-     regrid to MYBAD ??		<== UNKNOWN GRID ******
-/TREE=USER
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to MYBAD[D=2] ??		<== UNKNOWN GRID ******
-     regrid to MYBAD ??		<== UNKNOWN GRID ******
-/TREE=FILE
-   regrid to TEMP[d=levitus_climatology]
-   *unknown grid: MYBAD[D=2]
-   *unknown grid: MYBAD
-the problem is UNKNOWN GRID: MYBAD[D=2]
-************************
-go bn_vtree.sub myvar[g=temp,gx=mybad,gy='MYBAD']    ! dup unknown missed
-/TREE=ALL
-   in default dataset levitus_climatology
-   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=myvar,gy=mybad]
-/TREE=ALL
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to MYBAD ??		<== UNKNOWN GRID ******
-/TREE=USER
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to MYBAD ??		<== UNKNOWN GRID ******
-/TREE=FILE
-   *unknown grid: MYBAD
-the problem is UNKNOWN GRID: MYBAD
-************************
-go bn_vtree.sub myvar[gy=yp5,g=mybad]
-/TREE=ALL
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to MYBAD ??		<== UNKNOWN GRID ******
-/TREE=USER
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to MYBAD ??		<== UNKNOWN GRID ******
-/TREE=FILE
-   *unknown grid: MYBAD
-the problem is UNKNOWN GRID: MYBAD
-************************
-go bn_vtree.sub myvar[g=mybad,y=5s:5n:.5]
-/TREE=ALL
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to MYBAD ??		<== UNKNOWN GRID ******
-/TREE=USER
-   in default dataset levitus_climatology
-   MYVAR = X[GX=X1] + Y[GY=Y1]
-     regrid to MYBAD ??		<== UNKNOWN GRID ******
-/TREE=FILE
-   *unknown grid: MYBAD
-the problem is UNKNOWN GRID: MYBAD
-************************
- 
-! 2/15 additions -- auxiliary variable regridding
-USE levitus_climatology
-LET myzvar = Z[Z=100:500:100]
-DEFINE AXIS/z/units=meters zax = myzvar
-SET REGION/i=101:102/j=41:42
- 
-LET/D=levitus_climatology depth = z[g=temp]+ 0*temp[k=1]
- 
-! valid aux var and target variable
-LET tempz = temp[gz(depth)=myzvar]
-vtree=all tempz
-   in default dataset levitus_climatology
-   TEMPZ = TEMP[GZ(DEPTH)=MYZVAR]
-     TEMP
-       regrid to MYZVAR = Z[Z=100:500:100]
-       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
-         TEMP
- 
-! valid aux var.  Target is axis name
-LET tempz1 = temp[gz(depth)=zax]
-vtree=all tempz1
-   in default dataset levitus_climatology
-   TEMPZ1 = TEMP[GZ(DEPTH)=ZAX]
-     TEMP
-       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
-         TEMP
- 
-! valid aux var.  Target is unknown
-LET tempz2 = temp[gz(depth)=unknown_target]
-vtree=all tempz2
-   in default dataset levitus_climatology
-   TEMPZ2 = TEMP[GZ(DEPTH)=UNKNOWN_TARGET]
-     TEMP
-       regrid to UNKNOWN_TARGET ??		<== UNKNOWN GRID ******
-       DEPTH = Z[G=TEMP]+ 0*TEMP[K=1]
-         TEMP
- 
-! --- unknown aux var, valid target ---
-! When an unknown auxiliary variable error occurs it suppresses
-! the reporting of both the variable being regridded and the regrid target
-! The underlying issue is that GET_VAR_CONTEXT (called from is_dependencies.F)
-! can return only a single error status
-! If it contains ferr_unknown_auxvar, then the success or failure of other
-! parts of the context processing are unknown.
-! One could kludge the code to find a way around this, but the violence
-! required is not justified in order to fix this small loss in error reporting.
-LET tempz3 = temp[gz(unknown_aux)=myzvar]
-vtree=all tempz3
-   in default dataset levitus_climatology
-   TEMPZ3 = TEMP[GZ(UNKNOWN_AUX)=MYZVAR]
-       UNKNOWN_AUX   (unknown auxiliary variable)
- 
-! a syntax error leads to a similar behavior
-LET tempz3a = temp[gz(unknown_aux)=myzvar,SYNTAX_ERROR]
-vtree=all tempz3a
-   in default dataset levitus_climatology
-   TEMPZ3A = TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR]
-     TEMP[GZ(UNKNOWN_AUX)=MYZVAR,SYNTAX_ERROR]   *** WARNING: ERROR IN DEFINITION
- 
-! similar behavior here:  the unknown_target does not get reported
-LET tempz4 = temp[gz(unknown_aux)=unknown_target]
-vtree=all tempz4
-   in default dataset levitus_climatology
-   TEMPZ4 = TEMP[GZ(UNKNOWN_AUX)=UNKNOWN_TARGET]
-       UNKNOWN_AUX   (unknown auxiliary variable)
- 
- 
- 
- 
-! *********** v6.86 Additions ***********
-GO bn_reset
-cancel mode verify
-GO bn686_bug_fixes
-! bn686_bug_fixes
-! test various fixes that went into version 6.86
-! 11/2013 ACM
- 
-GO bn_reset
-cancel mode verify
-GO err685_ribbon_by_val
-! err685_ribbon_by_val.jnl
-! 11/21/2013
-! See ticket 2111: Palette that is by_lev or by_value
-! in combination with a /missing=  caused errors
- 
-us coads_climatology
-let ypts = y[gy=sst]
-let xpts = sst[L=1,x=150]
-let fpts = sst[L=1,x=150]
-plot/vs/line/thick/ribbon/MISS=black/PAL=ocean_temp xpts, ypts, fpts
- 
- 
-GO bn_reset
-cancel mode verify
-GO err685_ppl_palette
-! err685_ppl_palette.jnl
-! Further fix for ticket 2049. If the palette or pattern file
-! name given in PPL SHASET SPECTRUM=  or  PPL PATSET PATTERN=
-! started with a space, the command failed.
- 
-pal  rnb2
-use levitus_climatology; shade/k=1 temp
- 
-pal  bluescale.spk
-use levitus_climatology; shade/k=1 temp
- 
-pattern    4patterns
-use coads_climatology
-shade/pal=black/lev=(10,30,5,-3)/key/L=1 sst
- 
-pal   default
-pattern   solid
- 
-fill sst[l=@ave]
-pattern   tiny_squares.pat
-fill/lev=(15,21,2)/over/nolab/pal=black sst[l=@ave]
- 
-! restore defaults
-palette default
-pattern solid
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ ZIRR = 0, 10, 40, 70 ;
+
+ ZIRR_bnds =
+  -5, 5,
+  5, 25,
+  25, 55,
+  55, 85 ;
+
+ T2 = 0, 10, 40, 70 ;
+}
  
 GO bn_reset
 cancel mode verify
-GO err685_show_grid_e
-! err685_show_grid_e.jnl
-! See ticket 2122
-! SHOW GRID/E and SHOW GRID/F failed
- 
-def ax /e=1:12:1 ense
-def ax /f=1:10:1 verf
-def ax /t=1980:2013:1 yrt
-def grid /e=ense/t=yrt/f=verf gensy
-sh grid gensy
-    GRID GENSY
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- YRT       T                   34 r   1980                 2013
- ENSE      E                   12 r   1                    12
- VERF      F                   10 r   1                    10
-sh grid /e gensy
-    GRID GENSY
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- YRT       T                   34 r   1980                 2013
- ENSE      E                   12 r   1                    12
- VERF      F                   10 r   1                    10
- 
-       M     E                   EBOX      EBOXLO
-       1>  1                     1          0.5
-       2>  2                     1          1.5
-       3>  3                     1          2.5
-       4>  4                     1          3.5
-       5>  5                     1          4.5
-       6>  6                     1          5.5
-       7>  7                     1          6.5
-       8>  8                     1          7.5
-       9>  9                     1          8.5
-      10>  10                    1          9.5
-      11>  11                    1          10.5
-      12>  12                    1          11.5
-sh grid /f gensy
-    GRID GENSY
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- YRT       T                   34 r   1980                 2013
- ENSE      E                   12 r   1                    12
- VERF      F                   10 r   1                    10
- 
-       N     F                   FBOX      FBOXLO
-       1>  1                     1          0.5
-       2>  2                     1          1.5
-       3>  3                     1          2.5
-       4>  4                     1          3.5
-       5>  5                     1          4.5
-       6>  6                     1          5.5
-       7>  7                     1          6.5
-       8>  8                     1          7.5
-       9>  9                     1          8.5
-      10>  10                    1          9.5
- 
+GO bn_nobounds
+! 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.
  
-GO bn_reset
-cancel mode verify
-GO err685_lowercaseAxis
-! err685_lowercaseAxis.jnl
-! Ticket  2126
-! If the axis name is lower case in the file, and we do SET AXIS commands
-! to reset units etc, the axis is "lost" to commands like SHOW AXIS
+define axis/x/units=meters xirreg = {0,1,2,4,8}
+let avar = x[gx=xirreg]
+save/clobber/file=a.nc avar
+sp ncdump a.nc
+netcdf a {
+dimensions:
+	XIRREG = 5 ;
+	bnds = 2 ;
+variables:
+	double XIRREG(XIRREG) ;
+		XIRREG:point_spacing = "uneven" ;
+		XIRREG:axis = "X" ;
+		XIRREG:bounds = "XIRREG_bnds" ;
+		XIRREG:units = "meters" ;
+	double XIRREG_bnds(XIRREG, bnds) ;
+	double AVAR(XIRREG) ;
+		AVAR:missing_value = -1.e+34 ;
+		AVAR:_FillValue = -1.e+34 ;
+		AVAR:long_name = "X[GX=XIRREG]" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ XIRREG = 0, 1, 2, 4, 8 ;
+
+ XIRREG_bnds =
+  -0.5, 0.5,
+  0.5, 1.5,
+  1.5, 3,
+  3, 6,
+  6, 10 ;
+
+ AVAR = 0, 1, 2, 4, 8 ;
+}
+save/nobounds/clobber/file=a.nc avar
+sp ncdump a.nc
+netcdf a {
+dimensions:
+	XIRREG = 5 ;
+variables:
+	double XIRREG(XIRREG) ;
+		XIRREG:point_spacing = "uneven" ;
+		XIRREG:axis = "X" ;
+		XIRREG:units = "meters" ;
+	double AVAR(XIRREG) ;
+		AVAR:missing_value = -1.e+34 ;
+		AVAR:_FillValue = -1.e+34 ;
+		AVAR:long_name = "X[GX=XIRREG]" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ XIRREG = 0, 1, 2, 4, 8 ;
+
+ AVAR = 0, 1, 2, 4, 8 ;
+}
  
-use lowercaseTime.nc
+! The dataset has a bounds attribute on the time axis
+! (the bounds themselves get corrected by Ferret on opening the file)
+use gappy_bounds.nc
 sh dat
      currently SET data sets:
-    1> ./lowercaseTime.nc  (default)
+    1> ./gappy_bounds.nc  (default)
  name     title                             I         J         K         L         M         N
- AA                                        ...       ...       ...       1:15      ...       ...
- BB                                        ...       ...       ...       1:8       ...       ...
- 
-! This axis has uppercase in the file
-set axis/t0=1-jan-2001/units=days uppercasetime
- 
-! All this was correct
-show axis uppercasetime
- name       axis              # pts   start                end
- UPPERCASETIME TIME             8 r   02-JAN-2001 00:00    09-JAN-2001 00:00
-T0 = 1-JAN-2001
-   Axis span (to cell edges) = 8
-show grid bb
-    GRID GHC2
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- UPPERCASETIME TIME             8 r   02-JAN-2001 00:00    09-JAN-2001 00:00
- normal    E
- normal    F
- 
-! This variable has axis time, lowercase in the file
-sh grid aa
-    GRID GHC1
- name       axis              # pts   start                end
- normal    X
- normal    Y
- normal    Z
- TIME16    T                   15 r   1                    15
- normal    E
- normal    F
-set axis/t0=1-jan-2001/units=days time
- 
-! showed no output
-show axis time
- name       axis              # pts   start                end
- TIME      TIME                 3 i   01-JAN-2001 00:00    04-JAN-2001 00:00
-T0 = 1-JAN-2001
-   Axis span (to cell edges) = 4.5
- 
-! The axis did get changed but is inconsistently listed in the
-! internal arrays that store axis info.
- 
-list/L=1:5 aa
-             VARIABLE : AA
-             FILENAME : lowercaseTime.nc
-             SUBSET   : 5 points (T)
- 1   / 1:  1.000
- 2   / 2:  2.000
- 3   / 3:  3.000
- 4   / 4:  4.000
- 5   / 5:  5.000
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO err685_redefine_uvar_att
-! err685_redefine_uvar_att.jnl
-! ticket 2127 Redefine an attribute for a
-!   user variable, with bounds-checking on,
-!   returned a runtime error.
- 
-let a = 1
-define att/type=string  a.ival = 99
-define att/type=STRING  a.ival = 99
- 
-GO bn_reset
-cancel mode verify
-GO err685_use_no_extension
-! Ticket 2128: if no extension, we should try .cdf, .nc, .des
-!  but .des was not being tried.
+ A        SST[X=150:180 at AVE,Y=-10:0 at AVE]   ...       ...       ...       1:6       ...       ...
  
-! The directory contains files with all three extensions
-sp ls duplicate.*
-duplicate.cdf
-duplicate.des
-duplicate.nc
  
-! The one that's used is .nc
-use duplicate
-sh dat
+! See the bounds attribute on the t axis
+sh dat/att
      currently SET data sets:
-    1> ./duplicate.nc  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:1       1:10      ...       1:3       ...       ...
- 
- 
-set mode ignore
-! Specify a nonexistent file with an extension
-use nosuchfile.nc
- 
-! Specify a nonexistent file, no extension
-use nosuchfile
- 
-! There is a file called snoopy.dat but not .cdf, .nc, or .des
-! Check for correct error messages.
-use snoopy
- 
-use snoopy.dat
- 
-set mode/last ignore
- 
-GO bn_reset
-cancel mode verify
-GO err685_samplexy
-! err685_samplexy.jnl
-! Fix for ticket 2137. out-of-bounds error
-! sending sub-range of variable into samplexy
- 
-! running this, with bounds-checking on, resulted in a bounds error.
-use coads_climatology
-let lon = {300,301,302}
-let lat = {11,12,13}
-list  samplexy(sst[x=290:310,y=0:20], lon, lat)
-             VARIABLE : SAMPLEXY(SST[X=290:310,Y=0:20], LON, LAT)
-             FILENAME : coads_climatology.cdf
-             SUBSET   : 3 by 3 points (X-TIME)
-                     1      2      3    
-                     1      2      3
- 16-JAN      / 1:  26.84  26.77  26.66
- 15-FEB      / 2:  26.60  26.52  26.35
- 17-MAR      / 3:  26.68  26.61  26.49
- 
- 
-GO bn_reset
-cancel mode verify
-GO err685_shade_set
-! err685_shade_set.jnl
-!
-! test fix for bug 883
-! Inside a SHADE/SET, and several other plot commands,
-! if we do an operation that evalueates an expression, the
-! plot is then blank.
- 
-can dat/all
- 
-can view
-use climatological_axes
-def axis/t=1-jan-2000:31-jan-2010:1/units=days timax
-let tseries = t[gt=timax]
-! evaluate info about an expression, with a different grid than the
-! epression being SHADED, inside a SHADE/SET
-shade/set tseries*z[gz=1:5:1]
-say `tseries[GT=month_irreg at mod],r=tunit`
- !-> MESSAGE/CONTINUE DAYS
-DAYS
-ppl shade !GAVE A BLANK PLOT
- 
-shade/set tseries*z[gz=1:5:1]
-ppl shade !but this works
- 
-shade/set tseries*z[gz=1:5:1]
-say `tseries,r=tunit`
- !-> MESSAGE/CONTINUE DAYS
-DAYS
-ppl shade !and this works
- 
-let a = tseries*z[gz=1:5:1]
-shade/set a
-say `tseries[GT=month_irreg at mod],r=tunit`
- !-> MESSAGE/CONTINUE DAYS
-DAYS
-ppl shade !and this works
- 
-shade/title="`tseries[GT=month_irreg],r=tunit`" tseries*z[gz=1:5:1]
- !-> shade/title="DAYS" tseries*z[gz=1:5:1]
- 
-can var/all; can mem
-can axis timax
-set mode/last logo
- 
-GO bn_reset
-cancel mode verify
-GO err686_individual_levels
-! err686_individual_levels.jnl
-! Ticket 2142
-! The bug appeared just in a beta release of v686. The behavior needs a test.
- 
-use coads_climatology
- 
-cancel symbol lev*
-shade/l=1/lev=(10)(20)(30)(40) sst
- 
-! The levels should be min,max,del = 10,40,10
-sh sym lev*
-LEV_TEXT = "(10)(20)(30)(40)"
-LEV_MIN = "10"
-LEV_MAX = "40"
-LEV_NUM = "3"
-LEV_DEL = "10"
- 
-cancel symbol lev*
-contour/l=1/lev=(10)(15)(20)(25)(30) sst
-sh sym lev*
-LEV_TEXT = "(10)(15)(20)(25)(30)"
-LEV_MIN = "10"
-LEV_MAX = "30"
-LEV_NUM = "4"
-LEV_DEL = "5"
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_long_symnames
-! bn_long_symnames.jnl
-! *ACM* 11/22/2013
-! Allow longer names for Ferret symbols
- 
-! Define a couple of symbols longer than previous limit of 30
-define symbol ferret_temperature_equilibrator_min = -2
-define symbol ferret_temperature_equilibrator_max = 35
- 
-! SHOW
-show symbol ferret_temperature_*
-FERRET_TEMPERATURE_EQUILIBRATOR_MIN = "-2"
-FERRET_TEMPERATURE_EQUILIBRATOR_MAX = "35"
- 
-! CANCEL
-can sym ferret_temperature_equilibrator_max
-show symbol ferret_temperature_*
-FERRET_TEMPERATURE_EQUILIBRATOR_MIN = "-2"
- 
-! DEFINE and redefine
-define symbol ferret_temperature_equilibrator_min = 0
-define symbol ferret_temperature_equilibrator_max = 35
- 
-can sym *max
- 
-show symbol ferret_temperature_*
-FERRET_TEMPERATURE_EQUILIBRATOR_MIN = "0"
- 
- 
-! bn_symbols had a line to
-! demonstrate the 30 character cap on symbol length
-! Lets demonstrate the 120 character cap on symbol length
-define symbol q23456789012345678901234567890q23456789012345678901234567890q23456789012345678901234567890q23456789012345678901234567890 = 5
-define symbol q23456789012345678901234567890q23456789012345678901234567890q23456789012345678901234567890q23456789012345678901234567xxxaaaa = 6
-show symbol q*
-Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890 = "5"
-Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567890Q23456789012345678901234567XXX = "6"
- 
-GO bn_reset
-cancel mode verify
-GO bn_strdim
-! bn_strdim.jnl
-! Keep the string dimension name and size from the intput file
-! on writing the string variable.
- 
-use strdimfile.nc
- 
-! Previously Ferret created the string dimension name and length
-! Now it keeps the file's name and length.
+    1> ./gappy_bounds.nc  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        24   T       FERRET V5.60   24-May-04
+  
+(TGAP)                 DOUBLE    units           CHAR        30   T       DAYS since 1990-01-01 00:00:00
+                                 time_origin     CHAR        20   T       01-JAN-1990 00:00:00
+                                 axis            CHAR        1    T       T
+                                 bounds          CHAR        9    T       TGAP_bnds
+                                 orig_file_axnameCHAR        4    F       TGAP
+  
+ TGAP_bnds             DOUBLE
+  
+ A                     FLOAT     missing_value   FLOAT       1    T       -1.E+34
+                                 _FillValue      FLOAT       1    T       -1.E+34
+                                 long_name       CHAR        30   T       SST[X=150:180 at AVE,Y=-10:0 at AVE]
+                                 history         CHAR        10   T       From coads
+  
  
-save/file=a.nc/clobber labels
-sp ncdump -h a.nc
+! On a SAVE/NOBOUNDS, do not write the bounds
+! and do not write a bounds attribute on the axis.
+save/clobber/file=a.nc/nobounds a
+sp ncdump -h a.nc	
+netcdf a {
+dimensions:
+	TGAP = UNLIMITED ; // (6 currently)
+variables:
+	double TGAP(TGAP) ;
+		TGAP:units = "days since 1990-01-01 00:00:00" ;
+		TGAP:time_origin = "01-JAN-1990 00:00:00" ;
+		TGAP:axis = "T" ;
+		TGAP:standard_name = "time" ;
+	float A(TGAP) ;
+		A:missing_value = -1.e+34f ;
+		A:_FillValue = -1.e+34f ;
+		A:long_name = "SST[X=150:180 at AVE,Y=-10:0 at AVE]" ;
+		A:history = "From coads" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ COADSX81_81 = 181 ;
+
+ COADSX81_81edges = 180, 182 ;
+
+ COADSY46_46 = 1 ;
+
+ COADSY46_46edges = 0, 2 ;
+
+ TIME = 366, 1096.485, 1826.97 ;
+
+ TIMEedges = 0.757499999999993, 731.2425, 1461.7275, 2192.2125 ;
+
+ SST =
+  28.28389,
+  28.41851,
+  28.0468 ;
+}
+bn_bounds.jnl --- 8 outputting bounds on all irregular axes, depth axis
+netcdf irrxzt {
+dimensions:
+	XAX = 6 ;
+	bnds = 2 ;
+	ZAX = 5 ;
+	TAX = UNLIMITED ; // (5 currently)
+variables:
+	double XAX(XAX) ;
+		XAX:point_spacing = "uneven" ;
+		XAX:axis = "X" ;
+		XAX:bounds = "XAX_bnds" ;
+	double XAX_bnds(XAX, bnds) ;
+	double ZAX(ZAX) ;
+		ZAX:point_spacing = "uneven" ;
+		ZAX:axis = "Z" ;
+		ZAX:positive = "down" ;
+		ZAX:bounds = "ZAX_bnds" ;
+	double ZAX_bnds(ZAX, bnds) ;
+	double TAX(TAX) ;
+		TAX:axis = "T" ;
+		TAX:bounds = "TAX_bnds" ;
+	double TAX_bnds(TAX, bnds) ;
+	float V(TAX, ZAX, XAX) ;
+		V:missing_value = -1.e+34f ;
+		V:_FillValue = -1.e+34f ;
+		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ XAX = 1, 2, 5, 6, 7, 8 ;
+
+ XAX_bnds =
+  0.5, 1.5,
+  1.5, 3.5,
+  3.5, 5.5,
+  5.5, 6.5,
+  6.5, 7.5,
+  7.5, 8.5 ;
+
+ ZAX = 0, 20, 50, 75, 120 ;
+
+ ZAX_bnds =
+  0, 10,
+  10, 30,
+  30, 60,
+  60, 90,
+  90, 150 ;
+
+ TAX = 1, 2, 9, 10, 11 ;
+
+ TAX_bnds =
+  0.5, 1.5,
+  1.5, 5.5,
+  5.5, 9.5,
+  9.5, 10.5,
+  10.5, 11.5 ;
+
+ V =
+  2, 3, 6, 7, 8, 9,
+  22, 23, 26, 27, 28, 29,
+  52, 53, 56, 57, 58, 59,
+  77, 78, 81, 82, 83, 84,
+  122, 123, 126, 127, 128, 129,
+  3, 4, 7, 8, 9, 10,
+  23, 24, 27, 28, 29, 30,
+  53, 54, 57, 58, 59, 60,
+  78, 79, 82, 83, 84, 85,
+  123, 124, 127, 128, 129, 130,
+  10, 11, 14, 15, 16, 17,
+  30, 31, 34, 35, 36, 37,
+  60, 61, 64, 65, 66, 67,
+  85, 86, 89, 90, 91, 92,
+  130, 131, 134, 135, 136, 137,
+  11, 12, 15, 16, 17, 18,
+  31, 32, 35, 36, 37, 38,
+  61, 62, 65, 66, 67, 68,
+  86, 87, 90, 91, 92, 93,
+  131, 132, 135, 136, 137, 138,
+  12, 13, 16, 17, 18, 19,
+  32, 33, 36, 37, 38, 39,
+  62, 63, 66, 67, 68, 69,
+  87, 88, 91, 92, 93, 94,
+  132, 133, 136, 137, 138, 139 ;
+}
+err580_irreg_bounds.jnl --- 
+netcdf a {
+dimensions:
+	TGAP = UNLIMITED ; // (6 currently)
+	bnds = 2 ;
+variables:
+	double TGAP(TGAP) ;
+		TGAP:units = "days since 1990-01-01 00:00:00" ;
+		TGAP:time_origin = "01-JAN-1990 00:00:00" ;
+		TGAP:axis = "T" ;
+		TGAP:bounds = "TGAP_bnds" ;
+		TGAP:standard_name = "time" ;
+	double TGAP_bnds(TGAP, bnds) ;
+	float A(TGAP) ;
+		A:missing_value = -1.e+34f ;
+		A:_FillValue = -1.e+34f ;
+		A:long_name = "SST[X=150:180 at AVE,Y=-10:0 at AVE]" ;
+		A:history = "From coads" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ TIME = 0.5, 2 ;
+
+ TIME_bnds =
+  0, 1,
+  1, 3 ;
+
+ A = 0.5, 2 ;
+}
+err580_long_title.jnl --- 
+netcdf longtitle {
+dimensions:
+	XAX1_10 = 10 ;
+variables:
+	double XAX1_10(XAX1_10) ;
+		XAX1_10:point_spacing = "even" ;
+		XAX1_10:axis = "X" ;
+	float X_(XAX1_10) ;
+		X_:long_name = "X" ;
+		X_:long_name_mod = "axis ABSTRACT" ;
+		X_:missing_value = -1.e+34f ;
+		X_:_FillValue = -1.e+34f ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+		:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
+data:
+
+ XAX1_10 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ;
+
+ X_ = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ;
+}
+err580_long_dsettitle.jnl --- 
+netcdf longtitle {
+dimensions:
+	XAX1_5 = 5 ;
+variables:
+	double XAX1_5(XAX1_5) ;
+		XAX1_5:point_spacing = "even" ;
+		XAX1_5:axis = "X" ;
+	float A(XAX1_5) ;
+		A:missing_value = -1.e+34f ;
+		A:_FillValue = -1.e+34f ;
+		A:long_name = "A" ;
+		A:history = "From x" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+		: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:
+
+ XAX1_5 = 1, 2, 3, 4, 5 ;
+
+ A = 1, 2, 3, 4, 5 ;
+}
+err580_cdc_timeaxis.jnl --- 
+netcdf my_cdc_timeaxis {
+dimensions:
+	TCDC = UNLIMITED ; // (15 currently)
+variables:
+	double TCDC(TCDC) ;
+		TCDC:units = "DAYS since 0001-01-01 00:00:00" ;
+		TCDC:axis = "T" ;
+		TCDC:time_origin = "01-JAN-0001 00:00:00" ;
+	float A(TCDC) ;
+		A:missing_value = -1.e+34f ;
+		A:_FillValue = -1.e+34f ;
+		A:long_name = "SIN(T[GT=TCDC]/10000)" ;
+		A:history = "From t0_cdc" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
+bn_long_revision_num.jnl --- history attribute
+		:history = "FERRET V6.65    3-Jan-11" ;
+bn_bounds_defineax.jnl --- N+1 def of bounds.
+netcdf irrxzt {
+dimensions:
+	XAX = 6 ;
+	bnds = 2 ;
+	ZAX = 5 ;
+	TAX = UNLIMITED ; // (5 currently)
+variables:
+	double XAX(XAX) ;
+		XAX:point_spacing = "uneven" ;
+		XAX:axis = "X" ;
+		XAX:bounds = "XAX_bnds" ;
+	double XAX_bnds(XAX, bnds) ;
+	double ZAX(ZAX) ;
+		ZAX:point_spacing = "uneven" ;
+		ZAX:axis = "Z" ;
+		ZAX:positive = "down" ;
+		ZAX:bounds = "ZAX_bnds" ;
+	double ZAX_bnds(ZAX, bnds) ;
+	double TAX(TAX) ;
+		TAX:axis = "T" ;
+		TAX:bounds = "TAX_bnds" ;
+	double TAX_bnds(TAX, bnds) ;
+	float V(TAX, ZAX, XAX) ;
+		V:missing_value = -1.e+34f ;
+		V:_FillValue = -1.e+34f ;
+		V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ XAX = 1, 2, 5, 6, 7, 8 ;
+
+ XAX_bnds =
+  0.5, 1.5,
+  1.5, 3.5,
+  3.5, 5.5,
+  5.5, 6.5,
+  6.5, 7.5,
+  7.5, 8.5 ;
+
+ ZAX = 0, 20, 50, 75, 120 ;
+
+ ZAX_bnds =
+  0, 10,
+  10, 30,
+  30, 60,
+  60, 90,
+  90, 150 ;
+
+ TAX = 1, 2, 9, 10, 11 ;
+
+ TAX_bnds =
+  0.5, 1.5,
+  1.5, 5.5,
+  5.5, 9.5,
+  9.5, 10.5,
+  10.5, 11.5 ;
+
+ V =
+  2, 3, 6, 7, 8, 9,
+  22, 23, 26, 27, 28, 29,
+  52, 53, 56, 57, 58, 59,
+  77, 78, 81, 82, 83, 84,
+  122, 123, 126, 127, 128, 129,
+  3, 4, 7, 8, 9, 10,
+  23, 24, 27, 28, 29, 30,
+  53, 54, 57, 58, 59, 60,
+  78, 79, 82, 83, 84, 85,
+  123, 124, 127, 128, 129, 130,
+  10, 11, 14, 15, 16, 17,
+  30, 31, 34, 35, 36, 37,
+  60, 61, 64, 65, 66, 67,
+  85, 86, 89, 90, 91, 92,
+  130, 131, 134, 135, 136, 137,
+  11, 12, 15, 16, 17, 18,
+  31, 32, 35, 36, 37, 38,
+  61, 62, 65, 66, 67, 68,
+  86, 87, 90, 91, 92, 93,
+  131, 132, 135, 136, 137, 138,
+  12, 13, 16, 17, 18, 19,
+  32, 33, 36, 37, 38, 39,
+  62, 63, 66, 67, 68, 69,
+  87, 88, 91, 92, 93, 94,
+  132, 133, 136, 137, 138, 139 ;
+}
+bn_attributes.jnl --- 1 attributes of string variables
 netcdf a {
 dimensions:
 	ENSEMBLE1 = 3 ;
@@ -76382,8 +76618,16 @@ variables:
 		LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
 
 // global attributes:
-		:history = "FERRET V6.95   26-Oct-15" ;
-		:Conventions = "CF-1.6" ;
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ XAX1_3 = 1, 2, 3 ;
+
+ VAR_B =
+  "Seattle",
+  "Skykomish",
+  "Snoqualmie" ;
 }
  
 ! The behavior is unchanged for user-defined variables
@@ -76395,6 +76639,483 @@ save/file=a.nc/clobber strvar
 sp ncdump -h a.nc
 netcdf a {
 dimensions:
+	COADSX105_105 = 1 ;
+	COADSY45_45 = 1 ;
+	TIME = UNLIMITED ; // (3 currently)
+variables:
+	double COADSX105_105(COADSX105_105) ;
+		COADSX105_105:units = "degrees_east" ;
+		COADSX105_105:modulo = " " ;
+		COADSX105_105:point_spacing = "even" ;
+		COADSX105_105:newatt = 3.f ;
+		COADSX105_105:axis = "X" ;
+	double COADSY45_45(COADSY45_45) ;
+		COADSY45_45:units = "degrees_north" ;
+		COADSY45_45:point_spacing = "even" ;
+		COADSY45_45:axis = "Y" ;
+	double TIME(TIME) ;
+		TIME:units = "hour since 0000-01-01 00:00:00" ;
+		TIME:time_origin = "01-JAN-0000 00:00:00" ;
+		TIME:modulo = 8765.81982421875 ;
+		TIME:axis = "T" ;
+	float SST(TIME, COADSY45_45, COADSX105_105) ;
+		SST:missing_value = -1.e+34f ;
+		SST:_FillValue = -1.e+34f ;
+		SST:long_name = "SEA SURFACE TEMPERATURE" ;
+		SST:history = "From coads_climatology" ;
+		SST:units = "Deg C" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ COADSX105_105 = 229 ;
+
+ COADSY45_45 = -1 ;
+
+ TIME = 366, 1096.485, 1826.97 ;
+}
+bn_attributes.jnl --- 3 modulo set to false
+netcdf a {
+dimensions:
+	COADSX81_81 = 1 ;
+	COADSY45_45 = 1 ;
+	TIME = UNLIMITED ; // (12 currently)
+variables:
+	double COADSX81_81(COADSX81_81) ;
+		COADSX81_81:units = "degrees_east" ;
+		COADSX81_81:modulo = "false" ;
+		COADSX81_81:point_spacing = "even" ;
+		COADSX81_81:axis = "X" ;
+	double COADSY45_45(COADSY45_45) ;
+		COADSY45_45:units = "degrees_north" ;
+		COADSY45_45:point_spacing = "even" ;
+		COADSY45_45:axis = "Y" ;
+	double TIME(TIME) ;
+		TIME:units = "hour since 0000-01-01 00:00:00" ;
+		TIME:time_origin = "01-JAN-0000 00:00:00" ;
+		TIME:modulo = " " ;
+		TIME:axis = "T" ;
+	float SST(TIME, COADSY45_45, COADSX81_81) ;
+		SST:missing_value = -1.e+34f ;
+		SST:_FillValue = -1.e+34f ;
+		SST:long_name = "SEA SURFACE TEMPERATURE" ;
+		SST:history = "From coads_climatology" ;
+		SST:units = "Deg C" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ COADSX81_81 = 181 ;
+
+ COADSY45_45 = -1 ;
+
+ TIME = 366, 1096.485, 1826.97, 2557.455, 3287.94, 4018.425, 4748.91, 
+    5479.395, 6209.88, 6940.365, 7670.85, 8401.335 ;
+}
+bn_attributes.jnl --- 4 CANCEL MODE upcase_output; original file:
+netcdf err491_attval {
+dimensions:
+	Ti = UNLIMITED ; // (1 currently)
+	Yc = 127 ;
+	Xc = 35 ;
+variables:
+	double Ti(Ti) ;
+		Ti:long_name = "Time" ;
+		Ti:units = "day" ;
+	double Yc(Yc) ;
+		Yc:long_name = "Latitude" ;
+		Yc:units = "degrees_north" ;
+	double Xc(Xc) ;
+		Xc:long_name = "Longitude" ;
+		Xc:units = "degrees_east" ;
+	short Elev(Ti, Yc, Xc) ;
+		Elev:long_name = "Surface elevation" ;
+		Elev:units = "meter" ;
+		Elev:valid_range = -9., 9. ;
+		Elev:_FillValue = -32768s ;
+		Elev:missing_value = -32767s ;
+		Elev:scale_factor = 0.000274674967954587 ;
+		Elev:add_offset = 0. ;
+
+// global attributes:
+		:simulation = "K-Bay OAR3d model (200m)" ;
+		:start_date = "980105000000" ;
+		:history = "a\n",
+			"" ;
+		:option = 1 ;
+		:run_mode = 3 ;
+		:srfc_bndry = 3 ;
+		:rad_penet = 2 ;
+		:dt_external = 1. ;
+		:dt_internal = 15. ;
+		:horiz_diff = 0.2 ;
+		:inv_prandtl = 0.2 ;
+		:min_slope = 0.2 ;
+		:title = "K-Bay OAR3d model (200m)                                                        " ;
+		:command = "                                                                                                                                                                                                                                                                                                                                " ;
+		:remark = "Generated by oar3d                                                                                                                                              " ;
+		:x_units = "degrees                                                                         " ;
+		:y_units = "degrees                                                                         " ;
+		:z_units = "                                                                                " ;
+		:nx = 35 ;
+		:ny = 127 ;
+		:x_min = 0. ;
+		:x_max = 0. ;
+		:y_min = 0. ;
+		:y_max = 0. ;
+		:z_min = 0. ;
+		:z_max = 0. ;
+		:x_inc = 0. ;
+		:y_inc = 0. ;
+		:z_scale_factor = 0. ;
+		:z_add_offset = 0. ;
+		:node_offset = 0. ;
+}
+bn_attributes.jnl --- 5 before CANCEL MODE upcase_output
+netcdf a {
+dimensions:
+	XC3_3 = 1 ;
+	YC2_4 = 3 ;
+	bnds = 2 ;
+	TI = UNLIMITED ; // (1 currently)
+variables:
+	double XC3_3(XC3_3) ;
+		XC3_3:long_name = "Longitude" ;
+		XC3_3:units = "degrees_east" ;
+		XC3_3:modulo = 360. ;
+		XC3_3:point_spacing = "even" ;
+		XC3_3:axis = "X" ;
+	double YC2_4(YC2_4) ;
+		YC2_4:long_name = "Latitude" ;
+		YC2_4:units = "degrees_north" ;
+		YC2_4:point_spacing = "uneven" ;
+		YC2_4:axis = "Y" ;
+		YC2_4:bounds = "YC2_4_bnds" ;
+	double YC2_4_bnds(YC2_4, bnds) ;
+	double TI(TI) ;
+		TI:long_name = "Time" ;
+		TI:units = "day" ;
+		TI:axis = "T" ;
+	float ELEV(TI, YC2_4, XC3_3) ;
+		ELEV:missing_value = -9.000275f ;
+		ELEV:_FillValue = -9.000275f ;
+		ELEV:long_name = "Surface elevation" ;
+		ELEV:units = "meter" ;
+		ELEV:history = "From err491_attval" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
+bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
+netcdf a {
+dimensions:
+	Xc3_3 = 1 ;
+	Yc2_4 = 3 ;
+	bnds = 2 ;
+	Ti = UNLIMITED ; // (1 currently)
+variables:
+	double Xc3_3(Xc3_3) ;
+		Xc3_3:long_name = "Longitude" ;
+		Xc3_3:units = "degrees_east" ;
+		Xc3_3:modulo = 360. ;
+		Xc3_3:point_spacing = "even" ;
+		Xc3_3:axis = "X" ;
+	double Yc2_4(Yc2_4) ;
+		Yc2_4:long_name = "Latitude" ;
+		Yc2_4:units = "degrees_north" ;
+		Yc2_4:point_spacing = "uneven" ;
+		Yc2_4:axis = "Y" ;
+		Yc2_4:bounds = "Yc2_4_bnds" ;
+	double Yc2_4_bnds(Yc2_4, bnds) ;
+	double Ti(Ti) ;
+		Ti:long_name = "Time" ;
+		Ti:units = "day" ;
+		Ti:axis = "T" ;
+	float Elev(Ti, Yc2_4, Xc3_3) ;
+		Elev:missing_value = -9.000275f ;
+		Elev:_FillValue = -9.000275f ;
+		Elev:long_name = "Surface elevation" ;
+		Elev:units = "meter" ;
+		Elev:history = "From err491_attval" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
+bn_attributes.jnl --- 7 outtput flags to control attribute output
+netcdf a {
+dimensions:
+	XAX1_5 = 5 ;
+variables:
+	float AA ;
+		AA:missing_value = -1.e+34f ;
+		AA:_FillValue = -1.e+34f ;
+		AA:long_name = "12" ;
+	double XAX1_5(XAX1_5) ;
+		XAX1_5:point_spacing = "even" ;
+		XAX1_5:axis = "X" ;
+	float BB(XAX1_5) ;
+		BB:missing_value = -1.e+34f ;
+		BB:_FillValue = -1.e+34f ;
+		BB:long_name = "{3,4.5,6,7,4}" ;
+		BB:my_title = "This is my new variable bb" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ XAX1_5 = 1, 2, 3, 4, 5 ;
+}
+bn_attributes.jnl --- 8 outtput all flags
+netcdf a {
+dimensions:
+	XAX1_5 = 5 ;
+variables:
+	float AA ;
+		AA:missing_value = -1.e+34f ;
+		AA:_FillValue = -1.e+34f ;
+		AA:long_name = "12" ;
+	double XAX1_5(XAX1_5) ;
+		XAX1_5:point_spacing = "even" ;
+		XAX1_5:axis = "X" ;
+	float BB(XAX1_5) ;
+		BB:missing_value = -1.e+34f ;
+		BB:_FillValue = -1.e+34f ;
+		BB:long_name = "{3,4.5,6,7,4}" ;
+		BB:my_title = "This is my new variable bb" ;
+		BB:another_attr = 6.f ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ XAX1_5 = 1, 2, 3, 4, 5 ;
+}
+bn_attributes.jnl --- 9 Just output the default attributes
+netcdf a {
+dimensions:
+	XAX1_5 = 5 ;
+variables:
+	double XAX1_5(XAX1_5) ;
+		XAX1_5:point_spacing = "even" ;
+		XAX1_5:axis = "X" ;
+	float BB(XAX1_5) ;
+		BB:missing_value = -1.e+34f ;
+		BB:_FillValue = -1.e+34f ;
+		BB:long_name = "{3,4.5,6,7,4}" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ XAX1_5 = 1, 2, 3, 4, 5 ;
+}
+bn_attributes.jnl --- 10 Output none of the attributes for aa
+netcdf a {
+dimensions:
+	XAX1_5 = 5 ;
+variables:
+	float AA ;
+	double XAX1_5(XAX1_5) ;
+		XAX1_5:point_spacing = "even" ;
+		XAX1_5:axis = "X" ;
+	float BB(XAX1_5) ;
+		BB:missing_value = -1.e+34f ;
+		BB:_FillValue = -1.e+34f ;
+		BB:long_name = "{3,4.5,6,7,4}" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ XAX1_5 = 1, 2, 3, 4, 5 ;
+}
+bn_attributes.jnl --- 11 Surpress output of an attribute that Ferret would otherwise add.
+netcdf a {
+dimensions:
+	XAX_LEV9421_380 = 360 ;
+	YAX_LEV94 = 180 ;
+	ZAXLEVIT191_1 = 1 ;
+	TIME = UNLIMITED ; // (2 currently)
+variables:
+	double XAX_LEV9421_380(XAX_LEV9421_380) ;
+		XAX_LEV9421_380:units = "degrees_east" ;
+		XAX_LEV9421_380:modulo = " " ;
+	double YAX_LEV94(YAX_LEV94) ;
+		YAX_LEV94:units = "degrees_north" ;
+		YAX_LEV94:point_spacing = "even" ;
+		YAX_LEV94:axis = "Y" ;
+	double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
+		ZAXLEVIT191_1:units = "METERS" ;
+		ZAXLEVIT191_1:positive = "down" ;
+		ZAXLEVIT191_1:point_spacing = "even" ;
+		ZAXLEVIT191_1:axis = "Z" ;
+	double TIME(TIME) ;
+		TIME:units = "hour since 0000-01-01 00:00:00" ;
+		TIME:time_origin = "01-JAN-0000 00:00:00" ;
+		TIME:modulo = 8765.81982421875 ;
+		TIME:axis = "T" ;
+	float TEMP(TIME, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
+		TEMP:missing_value = -1.e+34f ;
+		TEMP:_FillValue = -1.e+34f ;
+		TEMP:long_name = "Temperature" ;
+		TEMP:history = "From ocean_atlas_monthly" ;
+		TEMP:units = "Deg C" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
+bn_attributes.jnl --- 12 Check that settings hold for child axis.
+netcdf a {
+dimensions:
+	XAX_LEV9421_380281_340 = 60 ;
+	YAX_LEV94121_135 = 15 ;
+	ZAXLEVIT191_1 = 1 ;
+	TIME = UNLIMITED ; // (2 currently)
+variables:
+	double XAX_LEV9421_380281_340(XAX_LEV9421_380281_340) ;
+		XAX_LEV9421_380281_340:units = "degrees_east" ;
+		XAX_LEV9421_380281_340:modulo = " " ;
+	double YAX_LEV94121_135(YAX_LEV94121_135) ;
+		YAX_LEV94121_135:units = "degrees_north" ;
+		YAX_LEV94121_135:point_spacing = "even" ;
+		YAX_LEV94121_135:axis = "Y" ;
+	double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
+		ZAXLEVIT191_1:units = "METERS" ;
+		ZAXLEVIT191_1:positive = "down" ;
+		ZAXLEVIT191_1:point_spacing = "even" ;
+		ZAXLEVIT191_1:axis = "Z" ;
+	double TIME(TIME) ;
+		TIME:units = "hour since 0000-01-01 00:00:00" ;
+		TIME:time_origin = "01-JAN-0000 00:00:00" ;
+		TIME:modulo = 8765.81982421875 ;
+		TIME:axis = "T" ;
+	float TEMP(TIME, ZAXLEVIT191_1, YAX_LEV94121_135, XAX_LEV9421_380281_340) ;
+		TEMP:missing_value = -1.e+34f ;
+		TEMP:_FillValue = -1.e+34f ;
+		TEMP:long_name = "Temperature" ;
+		TEMP:history = "From ocean_atlas_monthly" ;
+		TEMP:units = "Deg C" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
+bn_attributes.jnl --- 13 cancel output of attributes of the variable.
+netcdf a {
+dimensions:
+	XAX_LEV9421_380 = 360 ;
+	YAX_LEV94 = 180 ;
+	ZAXLEVIT191_1 = 1 ;
+	TIME = UNLIMITED ; // (2 currently)
+variables:
+	double XAX_LEV9421_380(XAX_LEV9421_380) ;
+		XAX_LEV9421_380:units = "degrees_east" ;
+		XAX_LEV9421_380:modulo = " " ;
+	double YAX_LEV94(YAX_LEV94) ;
+		YAX_LEV94:units = "degrees_north" ;
+		YAX_LEV94:point_spacing = "even" ;
+		YAX_LEV94:axis = "Y" ;
+	double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
+		ZAXLEVIT191_1:units = "METERS" ;
+		ZAXLEVIT191_1:positive = "down" ;
+		ZAXLEVIT191_1:point_spacing = "even" ;
+		ZAXLEVIT191_1:axis = "Z" ;
+	double TIME(TIME) ;
+		TIME:units = "hour since 0000-01-01 00:00:00" ;
+		TIME:time_origin = "01-JAN-0000 00:00:00" ;
+		TIME:modulo = 8765.81982421875 ;
+		TIME:axis = "T" ;
+	float TEMP(TIME, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
+		TEMP:missing_value = -1.e+34f ;
+		TEMP:_FillValue = -1.e+34f ;
+		TEMP:units = "Deg C" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
+bn_attributes.jnl --- 14 attributes of data from ez data.
+netcdf a {
+dimensions:
+	XAX1_5 = 5 ;
+variables:
+	double XAX1_5(XAX1_5) ;
+		XAX1_5:point_spacing = "even" ;
+		XAX1_5:axis = "X" ;
+	float A1(XAX1_5) ;
+		A1:missing_value = -1.e+34f ;
+		A1:_FillValue = -1.e+34f ;
+		A1:long_name = "A1" ;
+		A1:history = "From EZ.DAT" ;
+	float A2(XAX1_5) ;
+		A2:missing_value = -1.e+34f ;
+		A2:_FillValue = -1.e+34f ;
+		A2:long_name = "A2" ;
+		A2:history = "From EZ.DAT" ;
+	float A3(XAX1_5) ;
+		A3:missing_value = -1.e+34f ;
+		A3:_FillValue = -1.e+34f ;
+		A3:long_name = "A3" ;
+		A3:history = "From EZ.DAT" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ XAX1_5 = 1, 2, 3, 4, 5 ;
+
+ A1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
+
+ A2 = 0.8865, 0.6643, 0.6071, 0.5535, 0.5337 ;
+
+ A3 = 0.176, 0.379, 0.417, 0.444, 0.515 ;
+}
+bn_attributes.jnl --- 15 attributes of data from delimited data.
+netcdf a {
+dimensions:
+	XAX1_5 = 5 ;
+variables:
+	double XAX1_5(XAX1_5) ;
+		XAX1_5:point_spacing = "even" ;
+		XAX1_5:axis = "X" ;
+	float V1(XAX1_5) ;
+		V1:missing_value = -1.e+34f ;
+		V1:_FillValue = -1.e+34f ;
+		V1:long_name = "V1" ;
+		V1:strval = "2" ;
+		V1:history = "From EZ.DAT" ;
+	float V4(XAX1_5) ;
+		V4:missing_value = -1.e+34f ;
+		V4:_FillValue = -1.e+34f ;
+		V4:long_name = "V4" ;
+		V4:history = "From EZ.DAT" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ XAX1_5 = 1, 2, 3, 4, 5 ;
+
+ V1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
+
+ V4 = 0.7597, 0.6455, 0.5935, 0.5458, 0.5147 ;
+}
+bn_attributes.jnl --- 16 attributes of user vars
+netcdf a {
+dimensions:
 	XAX1_3 = 3 ;
 	STRING1_5 = 5 ;
 variables:
@@ -76405,8 +77126,13 @@ variables:
 		STRVAR:long_name = "mystrings" ;
 
 // global attributes:
-		:history = "FERRET V6.95   26-Oct-15" ;
-		:Conventions = "CF-1.6" ;
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ XAX1_3 = 1, 2, 3 ;
+
+ A = 12, 14, 15 ;
 }
  
  
@@ -76633,8 +77359,37 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.95   26-Oct-15" ;
-		:Conventions = "CF-1.6" ;
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+		:simulation = "K-Bay OAR3d model (200m)" ;
+		:start_date = "980105000000" ;
+		:option = 1 ;
+		:run_mode = 3 ;
+		:srfc_bndry = 3 ;
+		:rad_penet = 2 ;
+		:dt_external = 1. ;
+		:dt_internal = 15. ;
+		:horiz_diff = 0.200000002980232 ;
+		:inv_prandtl = 0.200000002980232 ;
+		:min_slope = 0.200000002980232 ;
+		:command = " " ;
+		:remark = "Generated by oar3d" ;
+		:x_units = "degrees" ;
+		:y_units = "degrees" ;
+		:z_units = " " ;
+		:nx = 35 ;
+		:ny = 127 ;
+		:x_min = 0. ;
+		:x_max = 0. ;
+		:y_min = 0. ;
+		:y_max = 0. ;
+		:z_min = 0. ;
+		:z_max = 0. ;
+		:x_inc = 0. ;
+		:y_inc = 0. ;
+		:z_scale_factor = 0. ;
+		:z_add_offset = 0. ;
+		:node_offset = 0. ;
 }
  
 ! Yet more combinations
@@ -76663,8 +77418,9 @@ variables:
 		A:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V6.95   26-Oct-15" ;
-		:Conventions = "CF-1.6" ;
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+		:dt_internal = 15. ;
 }
  
 ! We can use /KEEP_AXISNAMES, changes XAXIS_TEST1 to XAXIS_TEST
@@ -76684,8 +77440,34 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.95   26-Oct-15" ;
-		:Conventions = "CF-1.6" ;
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ XC = -135.50957036625, -135.496120344706, -135.482670323162, 
+    -135.469220301618, -135.455770280074, -135.44232025853, 
+    -135.428870236985, -135.415420215441, -135.401970193897, 
+    -135.388520172353, -135.375070150809, -135.361620129265, 
+    -135.348170107721, -135.334720086177, -135.321270064633, 
+    -135.307820043089, -135.294370021545, -135.28092, -135.267469978456, 
+    -135.254019956912, -135.240569935368, -135.227119913824, 
+    -135.21366989228, -135.200219870736, -135.186769849192, 
+    -135.173319827648, -135.159869806104, -135.14641978456, 
+    -135.132969763016, -135.119519741471, -135.106069719927, 
+    -135.092619698383, -135.079169676839, -135.065719655295, -135.052269633751 ;
+
+ YC1_1 = 58.5947143787844 ;
+
+ YC1_1_bnds =
+  58.5912104049205, 58.5982183526484 ;
+
+ TI = 1.78368055555556 ;
+
+ ELEV =
+  -32767, -32767, -32767, -32767, -32767, -32767, -32767, -32767, -32767, 
+    -32767, -32767, 10702, 10702, 10702, 10702, 10702, 10702, 10702, 10702, 
+    10702, 10702, 10702, 10702, 10702, 10702, -32767, -32767, -32767, -32767, 
+    -32767, -32767, -32767, -32767, -32767, -32767 ;
 }
  
 ! Subsets also use XAXIS_TEST1
@@ -76705,15 +77487,51 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.95   26-Oct-15" ;
-		:Conventions = "CF-1.6" ;
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ J = 2, 4, 6 ;
+
+ I = 10, 20 ;
+
+ BROILED =
+  "ind",
+  "ist",
+  "ing",
+  "uis",
+  "hab",
+  "le" ;
+
+ THE_BULLET =
+  -127, 0, 127,
+  -128, -1, -127 ;
+
+ ORDER =
+  1, 2, 3,
+  4, 5, 6 ;
+
+ RIGUE =
+  2, 3, 4,
+  5, 6, 7 ;
 }
- 
-! Unless we use /KEEP_AXISNAMES - which removes renaming
-! due to subsetting and also due to internal names
-save/clobber/file=c.nc/i=2:4/keep b
-sp ncdump -h c.nc
-netcdf c {
+bn_attributes.jnl --- 23 more user-defined vars
+netcdf a {
+variables:
+	float B ;
+		B:missing_value = -1.e+34f ;
+		B:_FillValue = -1.e+34f ;
+		B:long_name = "hello" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ B = 1 ;
+}
+bn_attributes.jnl --- 24 output redefined attr
+netcdf a {
 dimensions:
 	XAXIS_TEST = 3 ;
 variables:
@@ -76727,8 +77545,22 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V6.95   26-Oct-15" ;
-		:Conventions = "CF-1.6" ;
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ COADSX90_91 = 199, 201 ;
+
+ COADSY65_66 = 39, 41 ;
+
+ TCOADS = 89864.5 ;
+
+ TCOADS_bnds =
+  89849, 89880 ;
+
+ VWND =
+  _, _,
+  _, _ ;
 }
  
 ! If we try /KEEP_AXISNAMES but there is a conflict, it's an err
@@ -78187,16 +79019,22 @@ variables:
 		LON360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:History = "CruiseDsgNcFile 1.0" ;
-		:featureType = "Trajectory" ;
-		:Conventions = "CF-1.6" ;
-		:geospatial_lon_min = -92.77 ;
-		:geospatial_lon_max = -92.74 ;
-		:geospatial_lat_min = 20.04 ;
-		:geospatial_lat_max = 29.07 ;
-		:time_coverage_start = "2006-06-10T23:48:00Z" ;
-		:time_converage_end = "2006-06-11T00:12:00Z" ;
-		:history = "FERRET V6.95   26-Oct-15" ;
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ COADSX90_91 = 199, 201 ;
+
+ COADSY65_66 = 39, 41 ;
+
+ TCOADS = 89864.5 ;
+
+ TCOADS_bnds =
+  89849, 89880 ;
+
+ T2 =
+  _, _,
+  _, _ ;
 }
  
 GO bn_reset
@@ -78243,15 +79081,8 @@ variables:
 		longitude:ioos_category = "Location" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0" ;
-		:featureType = "Trajectory" ;
-		:Conventions = "Some other conventions" ;
-		:geospatial_lon_min = -92.77 ;
-		:geospatial_lon_max = -92.74 ;
-		:geospatial_lat_min = 20.04 ;
-		:geospatial_lat_max = 29.07 ;
-		:time_coverage_start = "2006-06-10T23:48:00Z" ;
-		:time_converage_end = "2006-06-11T00:12:00Z" ;
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
 }
 sp ncdump -h global_copy.nc
 netcdf global_copy {
@@ -78289,330 +79120,692 @@ variables:
 		LON360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0FERRET V6.95   26-Oct-15" ;
-		:featureType = "Trajectory" ;
-		:Conventions = "Some other conventionsCF-1.6" ;
-		:geospatial_lon_min = -92.77 ;
-		:geospatial_lon_max = -92.74 ;
-		:geospatial_lat_min = 20.04 ;
-		:geospatial_lat_max = 29.07 ;
-		:time_coverage_start = "2006-06-10T23:48:00Z" ;
-		:time_converage_end = "2006-06-11T00:12:00Z" ;
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
 }
- 
-! This dataset has global attributes history and Conventions that include
-! a Ferret version and CF version that Ferret will replace.
- 
-sp ncgen -o anew_global.nc anew_global.cdl
-use anew_global.nc
-sh att .
-     attributes for dataset: ./anew_global.nc
- ..history = Subset of etopo20,
- FERRET V6.71    9-May-14 
- ..Conventions = Existing conventions note, CF-1.0 
-let var = 8
-save/append/file=anew_global.nc  var
-can dat/all; use anew_global.nc
-sh att .
-     attributes for dataset: ./anew_global.nc
- ..history = Subset of etopo20,
- FERRET V6.95   26-Oct-15 
- ..Conventions = Existing conventions note, , CF-1.6 
- 
- 
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_conventions_history
-! bn_conventions_history.jnl
-! ticket 2169:
-! Write conventions CF-1.6
-! When appending to the Conventions and history
-! attribute, add the new stuff with a comma and newline.
- 
-sp cp conventions_history_in.nc conventions_history.nc
-use conventions_history
-!
-!  The existing global attributes
-sh att .
-     attributes for dataset: ./conventions_history.nc
- ..history = The history of the file 
- ..Conventions = Conventions for variables named V2 
-!
-! Write to the file
-let v3 = v1+v2
-save/append/file=conventions_history.nc v3
-can dat/all; use conventions_history
-!
-! The new attibutes
-sh att .
-     attributes for dataset: ./conventions_history.nc
- ..history = The history of the fileFERRET V6.95   26-Oct-15 
- ..Conventions = Conventions for variables named V2CF-1.6 
- 
-GO bn_reset
-cancel mode verify
-GO bn_center_key_labels
-! bn_center_key_labels
-!  6/2014
-!
-! Arguments to /KEY qualifier on color plots
-! /CENTERLABEL  for label between lines on colorbar
-! /HORIZONTAL   for horizontal key
- 
-use levitus_climatology.cdf
-shade/lev=10/key=cent,horiz temp
-fill/lev=10v/key=cent temp
- 
-! Ribbon plots and all three keywords: centerlab, horizontal, continuous
-let/title=xpts xpts = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,\
-16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
-let/title=ypts ypts = { 9.04,8.67,8.96,9.29,9.18,9.42,9.43,\
-9.33,9.19,9.22,9.12,9.36,9.22,9.04,8.92,9.00,8.59,8.31,8.69,\
-8.20,8.86,7.98,7.80,8.29,7.94,8.05,7.85,7.55,7.56,6.82,7.04,\
-6.66,6.56,7.36,6.52}
-let/title=colors  var =  {\
-1.5,1.6,1.8,2.5,2.6,3.7,3.8,14.9,14.1,5.3,16.1,16.2,17.3,\
-17.4,8.4,8.2,9.5,9.1,10.1,10.2,12.2,12.6,1.7,1.1,5.2,5.3,\
-5.4,13.6,13.7,14.8,14.2,14.9,14.7,14.6,14.5}
-RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels/key=center,horiz,cont xpts,ypts,var
- 
-! Automatically restore non-continuous key, non-center, vertical
-RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels/key xpts,ypts,var
- 
-! Polygons: the polymark script needs multiple key qualifiers to be in quotes.
-use coads_climatology
-def axis/x=0:360:5 xq
-def axis/y=-90:90:4 yq
-let fsst =  sst[l=1,gx=xq,gy=yq]
- 
-let lon = xsequence(x[gx=xq] + 0*y[gy=yq])
-let lat = xsequence(0*x[gx=xq] + y[gy=yq])
-shade/nokey/pal=white/nolab/axes=0,0,0,0 fsst  ! set up
- 
-go polymark poly/key="horiz,center"/title="polygons"/lev=(-inf)(4,26,1)(inf), lon, lat, xsequence(fsst), square, 0.4
- 
-can data coads_climatology
- 
-! Automatically restore regular handling of levels
-shade temp
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_wgt_transform
-! bn_wgt_transform.jnl  test new @WGT transform,
-! returns weights used in the equiv. average or integral transform
-! ACM 7/2014
- 
-! Define an XYT grid
- 
-def axis/x=2:360:2/units=degrees_east x2
-def axis/y=-89:89:2/units=degrees_north y2
-let var = x[gx=x2] + y[gy=y2] + t[gt=month_irreg]
-let weights= var[x=@wgt,y=@wgt,t=@wgt]
- 
-! Varies in y with latitude correction
-shade/l=1 weights
- 
-! Sum of xy transform is the surface area of the earth, meters
-let weights= var[x=@wgt,y=@wgt]
-list/l=1 weights[i=@sum,j=@sum]
-             VARIABLE : VAR[X=@WGT,Y=@WGT]
-             LONGITUDE: 1E to 1E(361) (XY summed)
-             LATITUDE : 90S to 90N (XY summed)
-             TIME     : 16-JAN 12:00
-          5.101E+14
- 
-! Varies in T because of irregular t axis
-shade/x=1 weights
- 
- 
-! The result t=@WGT returned in seconds
-let mywt = var[t=@wgt]
- 
-let secperday = 24*3600
-list/x=1/y=1 mywt, mywt/secperday
-             TIME: 01-JAN 00:00 to 31-DEC 05:49
-             LONGITUDE: 1E (interpolated)
-             LATITUDE: 1N
- Column  1: MYWT is VAR[T=@WGT]
- Column  2: EX#2 is MYWT/SECPERDAY
-                         MYWT   EX#2
-16-JAN 12      /  1:  2678400.  31.00
-15-FEB 02      /  2:  2440152.  28.24
-15-MAR 17      /  3:  2678400.  31.00
-15-APR 05      /  4:  2592000.  30.00
-15-MAY 17      /  5:  2678400.  31.00
-15-JUN 05      /  6:  2592000.  30.00
-15-JUL 17      /  7:  2678400.  31.00
-15-AUG 17      /  8:  2678400.  31.00
-15-SEP 05      /  9:  2592000.  30.00
-15-OCT 17      / 10:  2678400.  31.00
-15-NOV 05      / 11:  2592000.  30.00
-15-DEC 17      / 12:  2678400.  31.00
- 
-! Test reusing results. (ticket 2183)
-use gt4d011.cdf
-! The last value is a partial grid cell
-list/y=1.5/x=130w/z=8:43.5/t=1-sep-1982 temp[z=@wgt]
-             VARIABLE : TEMPERATURE (deg. C)
-                        weights for avg,int on Z
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 points (DEPTH (m))
-             LONGITUDE: 130W (interpolated)
-             LATITUDE : 1.5N (interpolated)
-             TIME     : 01-SEP-1982 00:00 (interpolated)
- 5     / 1:   2.00
- 15    / 2:  10.00
- 25    / 3:  10.00
- 35    / 4:  10.00
- 45    / 5:   3.50
- 
-! Now load the result over a larger region
-list/y=1.5/x=130w/z=0:82/t=1-sep-1982 temp[z=@wgt]
-             VARIABLE : TEMPERATURE (deg. C)
-                        weights for avg,int on Z
-             FILENAME : gt4d011.cdf
-             SUBSET   : 9 points (DEPTH (m))
-             LONGITUDE: 130W (interpolated)
-             LATITUDE : 1.5N (interpolated)
-             TIME     : 01-SEP-1982 00:00 (interpolated)
- 5     / 1:  10.00
- 15    / 2:  10.00
- 25    / 3:  10.00
- 35    / 4:  10.00
- 45    / 5:  10.00
- 55    / 6:  10.00
- 65    / 7:  10.00
- 75    / 8:  10.00
- 85    / 9:   2.00
- 
-! This finds the previous result in memory - needs to
-! reuse the correct one.
- 
-list/y=1.5/x=130w/z=8:43.5/t=1-sep-1982 temp[z=@wgt]
-             VARIABLE : TEMPERATURE (deg. C)
-                        weights for avg,int on Z
-             FILENAME : gt4d011.cdf
-             SUBSET   : 5 points (DEPTH (m))
-             LONGITUDE: 130W (interpolated)
-             LATITUDE : 1.5N (interpolated)
-             TIME     : 01-SEP-1982 00:00 (interpolated)
- 5     / 1:   2.00
- 15    / 2:  10.00
- 25    / 3:  10.00
- 35    / 4:  10.00
- 45    / 5:   3.50
- 
-GO bn_reset
-cancel mode verify
-GO 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
-!  8/18/2014
- 
-! test various combinations of /append and /clobber
- 
-!can mode verify
- 
-! show axis/outfile
- 
- 
-sho ax/clobber/outfile=a.txt month_irreg
-sho ax/clobber/outfile=a.txt month_irreg
- 
-SAY ---------------- Just axis month_irreg
----------------- Just axis month_irreg
-sp cat a.txt
- name       axis              # pts   start                end
- MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
- 
-show axis/append/outfile=a.txt PS*
- 
-SAY ---------------- appending all axes starting with PS
----------------- appending all axes starting with PS
-sp cat a.txt
- name       axis              # pts   start                end
- MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49
-T0 = 01-JAN-0000 00:00:00
-   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
-   Axis span (to cell edges) = 160 (modulo length = axis span)
- PSXU      LONGITUDE          160mr   131E                 70W
-   Axis span (to cell edges) = 160 (modulo length = 360)
- PSYT      Y (seconds)        100 i   -28.836              48.568
-   Axis span (to cell edges) = 80.00004
- PSYU      LATITUDE           100 i   27.672S              50N
-   Axis span (to cell edges) = 80.2682
- PSZT      Z (zorro)           27 i-  5                    3824
-   Axis span (to cell edges) = 4149
- PSZW      DEPTH (m)           27 i-  10                   4149
-   Axis span (to cell edges) = 4144
- PSYT5_89  LATITUDE            85 i   20.151S              21.613N
-   Axis span (to cell edges) = 43.60417
- PSZT1_2   DEPTH (m)            2 r-  5                    15
-   Axis span (to cell edges) = 20
- PSZT2     DEPTH (m)           27 i-  5                    3824
-   Axis span (to cell edges) = 4149
- PSXT1     LONGITUDE          160mr   130.5E               70.5W
-   Axis span (to cell edges) = 160 (modulo length = 360)
- PSYT1     LATITUDE           100 i   28.836S              48.568N
-   Axis span (to cell edges) = 80.00004
- PSZT1     Z (METERS)          27 i   5                    3824
-   Axis span (to cell edges) = 4149
- 
-! show grid/outfile
- 
-use coads_climatology
-show grid/clobber/outfile=a.txt sst
- 
-SAY ---------------- Just the grid of sst
----------------- Just the grid of sst
-sp cat a.txt
-    GRID GSQ1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- COADSY    LATITUDE            90 r   89S                  89N
- normal    Z
- TIME10    TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
- 
-! show var/outfile
- 
-use coads_climatology
-let two = 2
-let myvar = sst*2
-show var/clobber/outfile=a.txt myvar, two
- 
-SAY ---------------- show var output from two user vars
----------------- show var output from two user vars
-sp cat a.txt
- MYVAR = SST*2
- TWO = 2
-cancel var/all
- 
-! show data/outfile
- 
-show data/append/outfile=a.txt
- 
-SAY ---------------- appending show data
----------------- appending show data
-sp cat a.txt
- MYVAR = SST*2
- TWO = 2
+netcdf a {
+dimensions:
+	PSXT91_108 = 18 ;
+	PSYT35_56 = 22 ;
+	bnds = 2 ;
+	PSZT1_10 = 10 ;
+	TIME1 = UNLIMITED ; // (1 currently)
+variables:
+	double PSXT91_108(PSXT91_108) ;
+		PSXT91_108:units = "meters" ;
+		PSXT91_108:modulo = 360. ;
+		PSXT91_108:point_spacing = "even" ;
+		PSXT91_108:axis = "X" ;
+	double PSYT35_56(PSYT35_56) ;
+		PSYT35_56:units = "meters" ;
+		PSYT35_56:point_spacing = "uneven" ;
+		PSYT35_56:axis = "Y" ;
+		PSYT35_56:bounds = "PSYT35_56_bnds" ;
+	double PSYT35_56_bnds(PSYT35_56, bnds) ;
+	double PSZT1_10(PSZT1_10) ;
+		PSZT1_10:units = "METERS" ;
+		PSZT1_10:positive = "down" ;
+		PSZT1_10:point_spacing = "uneven" ;
+		PSZT1_10:axis = "Z" ;
+		PSZT1_10:bounds = "PSZT1_10_bnds" ;
+	double PSZT1_10_bnds(PSZT1_10, bnds) ;
+	double TIME1(TIME1) ;
+		TIME1:units = "hour since 1980-01-14 14:00:00" ;
+		TIME1:time_origin = "14-JAN-1980 14:00:00" ;
+		TIME1:axis = "T" ;
+	float T2(TIME1, PSZT1_10, PSYT35_56, PSXT91_108) ;
+		T2:missing_value = -1.e+34f ;
+		T2:_FillValue = -1.e+34f ;
+		T2:long_name = "T*TEMP" ;
+		T2:history = "From gt4d011" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
+netcdf a {
+dimensions:
+	XAXLEVITR1_160 = 160 ;
+	YAXLEVITR1_9090_90 = 1 ;
+	ZAXLEVITR1_1 = 1 ;
+variables:
+	double XAXLEVITR1_160(XAXLEVITR1_160) ;
+		XAXLEVITR1_160:units = "degrees_east" ;
+		XAXLEVITR1_160:modulo = " " ;
+		XAXLEVITR1_160:point_spacing = "even" ;
+		XAXLEVITR1_160:new_att = "something" ;
+		XAXLEVITR1_160:axis = "X" ;
+	double YAXLEVITR1_9090_90(YAXLEVITR1_9090_90) ;
+		YAXLEVITR1_9090_90:units = "degrees_north" ;
+		YAXLEVITR1_9090_90:point_spacing = "even" ;
+		YAXLEVITR1_9090_90:axis = "Y" ;
+	double ZAXLEVITR1_1(ZAXLEVITR1_1) ;
+		ZAXLEVITR1_1:units = "METERS" ;
+		ZAXLEVITR1_1:positive = "down" ;
+		ZAXLEVITR1_1:point_spacing = "even" ;
+		ZAXLEVITR1_1:axis = "Z" ;
+	float TEMP(ZAXLEVITR1_1, YAXLEVITR1_9090_90, XAXLEVITR1_160) ;
+		TEMP:missing_value = -1.e+10f ;
+		TEMP:_FillValue = -1.e+10f ;
+		TEMP:long_name = "TEMPERATURE" ;
+		TEMP:history = "From levitus_climatology" ;
+		TEMP:units = "DEG C" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
+netcdf a {
+dimensions:
+	XAXLEVITR1_160161_161 = 1 ;
+	YAXLEVITR1_9090_90 = 1 ;
+	ZAXLEVITR1_1 = 1 ;
+variables:
+	double XAXLEVITR1_160161_161(XAXLEVITR1_160161_161) ;
+		XAXLEVITR1_160161_161:units = "degrees_east" ;
+		XAXLEVITR1_160161_161:modulo = " " ;
+		XAXLEVITR1_160161_161:point_spacing = "even" ;
+		XAXLEVITR1_160161_161:new_att = "something" ;
+		XAXLEVITR1_160161_161:axis = "X" ;
+	double YAXLEVITR1_9090_90(YAXLEVITR1_9090_90) ;
+		YAXLEVITR1_9090_90:units = "degrees_north" ;
+		YAXLEVITR1_9090_90:point_spacing = "even" ;
+		YAXLEVITR1_9090_90:axis = "Y" ;
+	double ZAXLEVITR1_1(ZAXLEVITR1_1) ;
+		ZAXLEVITR1_1:units = "METERS" ;
+		ZAXLEVITR1_1:positive = "down" ;
+		ZAXLEVITR1_1:point_spacing = "even" ;
+		ZAXLEVITR1_1:axis = "Z" ;
+	float TWO(ZAXLEVITR1_1, YAXLEVITR1_9090_90, XAXLEVITR1_160161_161) ;
+		TWO:missing_value = -1.e+34f ;
+		TWO:_FillValue = -1.e+34f ;
+		TWO:long_name = "2*TEMP[Y=0:15,X=180:200]" ;
+		TWO:history = "From levitus_climatology" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
+bn_attributes.jnl --- 27 attributes of  user-defined axes
+netcdf string4d {
+dimensions:
+	X2AX = 2 ;
+	Y3AX = 3 ;
+	Z4AX = 4 ;
+	T2AX = UNLIMITED ; // (2 currently)
+	STRING1_5 = 5 ;
+variables:
+	double X2AX(X2AX) ;
+		X2AX:point_spacing = "even" ;
+		X2AX:axis = "X" ;
+		X2AX:modulo = " " ;
+	double Y3AX(Y3AX) ;
+		Y3AX:point_spacing = "even" ;
+		Y3AX:axis = "Y" ;
+	double Z4AX(Z4AX) ;
+		Z4AX:point_spacing = "even" ;
+		Z4AX:axis = "Z" ;
+		Z4AX:positive = "up" ;
+	double T2AX(T2AX) ;
+		T2AX:axis = "T" ;
+	char AXY(T2AX, Z4AX, Y3AX, X2AX, STRING1_5) ;
+		AXY:long_name = "RESHAPE (A,RVAR)" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
+bn_attributes.jnl --- 28 Define a new global attribute
+bn_attributes.jnl --- 29 SET ATT/OUTPUT=all for global attrs and a var
+netcdf a {
+dimensions:
+	J = 3 ;
+	I = 2 ;
+	STRING1_3 = 3 ;
+variables:
+	double J(J) ;
+		J:point_spacing = "even" ;
+		J:axis = "X" ;
+	double I(I) ;
+		I:point_spacing = "even" ;
+		I:axis = "Y" ;
+	char BROILED(I, J, STRING1_3) ;
+		BROILED:act = "text string\n",
+			"\t123" ;
+		BROILED:acb = 10b ;
+		BROILED:acs = -200s ;
+		BROILED:acl = 17000 ;
+		BROILED:acf = -2.f, 1.f, 0.f ;
+		BROILED:acd = -1., 2.71828174591064 ;
+		BROILED:long_name = "BROILED" ;
+		BROILED:history = "From test0" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+		:glob = "Global attribute" ;
+		:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
+data:
+
+ J = 2, 4, 6 ;
+
+ I = 10, 20 ;
+
+ BROILED =
+  "ind",
+  "ist",
+  "ing",
+  "uis",
+  "hab",
+  "le" ;
+}
+bn_attributes.jnl --- 29 SET VAR/OUTTYPE for user variable
+netcdf a {
+dimensions:
+	PSXT91_108 = 18 ;
+	PSYT35_56 = 22 ;
+	bnds = 2 ;
+	PSZT1_10 = 10 ;
+	TIME1 = UNLIMITED ; // (25 currently)
+variables:
+	double PSXT91_108(PSXT91_108) ;
+		PSXT91_108:units = "degrees_east" ;
+		PSXT91_108:modulo = 360. ;
+		PSXT91_108:point_spacing = "even" ;
+		PSXT91_108:axis = "X" ;
+	double PSYT35_56(PSYT35_56) ;
+		PSYT35_56:units = "degrees_north" ;
+		PSYT35_56:point_spacing = "uneven" ;
+		PSYT35_56:axis = "Y" ;
+		PSYT35_56:bounds = "PSYT35_56_bnds" ;
+	double PSYT35_56_bnds(PSYT35_56, bnds) ;
+	double PSZT1_10(PSZT1_10) ;
+		PSZT1_10:units = "METERS" ;
+		PSZT1_10:positive = "down" ;
+		PSZT1_10:point_spacing = "uneven" ;
+		PSZT1_10:axis = "Z" ;
+		PSZT1_10:bounds = "PSZT1_10_bnds" ;
+	double PSZT1_10_bnds(PSZT1_10, bnds) ;
+	double TIME1(TIME1) ;
+		TIME1:units = "hour since 1980-01-14 14:00:00" ;
+		TIME1:time_origin = "14-JAN-1980 14:00:00" ;
+		TIME1:axis = "T" ;
+	double FAREN(TIME1, PSZT1_10, PSYT35_56, PSXT91_108) ;
+		FAREN:missing_value = -9.99999979021477e+33 ;
+		FAREN:_FillValue = -9.99999979021477e+33 ;
+		FAREN:long_name = "TEMP*9/5 + 32" ;
+		FAREN:units = "Deg F" ;
+		FAREN:Ferret_Precision_Note = "This variable written by Ferret was converted from FLOAT to DOUBLE" ;
+		FAREN:history = "From gt4d011" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
+netcdf a {
+dimensions:
+	PSXT91_108 = 18 ;
+	PSYT35_56 = 22 ;
+	bnds = 2 ;
+	PSZT1_10 = 10 ;
+	TIME1 = UNLIMITED ; // (25 currently)
+variables:
+	double PSXT91_108(PSXT91_108) ;
+		PSXT91_108:units = "degrees_east" ;
+		PSXT91_108:modulo = 360. ;
+		PSXT91_108:point_spacing = "even" ;
+		PSXT91_108:axis = "X" ;
+	double PSYT35_56(PSYT35_56) ;
+		PSYT35_56:units = "degrees_north" ;
+		PSYT35_56:point_spacing = "uneven" ;
+		PSYT35_56:axis = "Y" ;
+		PSYT35_56:bounds = "PSYT35_56_bnds" ;
+	double PSYT35_56_bnds(PSYT35_56, bnds) ;
+	double PSZT1_10(PSZT1_10) ;
+		PSZT1_10:units = "METERS" ;
+		PSZT1_10:positive = "down" ;
+		PSZT1_10:point_spacing = "uneven" ;
+		PSZT1_10:axis = "Z" ;
+		PSZT1_10:bounds = "PSZT1_10_bnds" ;
+	double PSZT1_10_bnds(PSZT1_10, bnds) ;
+	double TIME1(TIME1) ;
+		TIME1:units = "hour since 1980-01-14 14:00:00" ;
+		TIME1:time_origin = "14-JAN-1980 14:00:00" ;
+		TIME1:axis = "T" ;
+	int FAREN(TIME1, PSZT1_10, PSYT35_56, PSXT91_108) ;
+		FAREN:missing_value = -999 ;
+		FAREN:_FillValue = -999 ;
+		FAREN:long_name = "TEMP*9/5 + 32" ;
+		FAREN:units = "Deg F" ;
+		FAREN:history = "From gt4d011" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
+netcdf a {
+dimensions:
+	XAX = 4 ;
+	bnds = 2 ;
+variables:
+	double XAX(XAX) ;
+		XAX:point_spacing = "uneven" ;
+		XAX:axis = "X" ;
+		XAX:bounds = "XAX_bnds" ;
+	double XAX_bnds(XAX, bnds) ;
+	float A(XAX) ;
+		A:missing_value = -1.e+34f ;
+		A:_FillValue = -1.e+34f ;
+		A:long_name = "X[GX=XAX]" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ XAX = 1.5, 3, 6, 8.5 ;
+
+ XAX_bnds =
+  1, 2,
+  2, 4,
+  4, 8,
+  8, 9 ;
+
+ A = 1.5, 3, 6, 8.5 ;
+}
+netcdf a {
+dimensions:
+	XAX = 4 ;
+	bnds = 2 ;
+variables:
+	double XAX(XAX) ;
+		XAX:point_spacing = "uneven" ;
+		XAX:axis = "X" ;
+		XAX:bounds = "XAX_bnds" ;
+	double XAX_bnds(XAX, bnds) ;
+	float A(XAX) ;
+		A:missing_value = -1.e+34f ;
+		A:_FillValue = -1.e+34f ;
+		A:long_name = "X[GX=XAX]" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ XAX = 1.5, 3, 6, 8.5 ;
+
+ XAX_bnds =
+  1, 2,
+  2, 4,
+  4, 8,
+  8, 9 ;
+
+ A = 1.5, 3, 6, 8.5 ;
+}
+netcdf a {
+dimensions:
+	XAX = 4 ;
+	bnds = 2 ;
+variables:
+	double XAX(XAX) ;
+		XAX:point_spacing = "uneven" ;
+		XAX:axis = "X" ;
+		XAX:bounds = "XAX_bnds" ;
+	double XAX_bnds(XAX, bnds) ;
+	float A(XAX) ;
+		A:missing_value = -1.e+34f ;
+		A:_FillValue = -1.e+34f ;
+		A:long_name = "X[GX=XAX]" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ XAX = 1.5, 3, 6, 8.5 ;
+
+ XAX_bnds =
+  1, 2,
+  2, 4,
+  4, 8,
+  8, 9 ;
+
+ A = 1.5, 3, 6, 8.5 ;
+}
+netcdf a {
+dimensions:
+	XAX_LEV9421_380 = 360 ;
+	YAX_LEV9450_50 = 1 ;
+	ZAXLEVIT191_1 = 1 ;
+	TIME = UNLIMITED ; // (1 currently)
+variables:
+	double XAX_LEV9421_380(XAX_LEV9421_380) ;
+		XAX_LEV9421_380:units = "degrees_east" ;
+		XAX_LEV9421_380:modulo = " " ;
+		XAX_LEV9421_380:point_spacing = "even" ;
+		XAX_LEV9421_380:long_name = "Here is a long name for the x axis of TEMP" ;
+		XAX_LEV9421_380:axis = "X" ;
+	double YAX_LEV9450_50(YAX_LEV9450_50) ;
+		YAX_LEV9450_50:units = "degrees_north" ;
+		YAX_LEV9450_50:point_spacing = "even" ;
+		YAX_LEV9450_50:axis = "Y" ;
+	double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
+		ZAXLEVIT191_1:units = "METERS" ;
+		ZAXLEVIT191_1:positive = "down" ;
+		ZAXLEVIT191_1:point_spacing = "even" ;
+		ZAXLEVIT191_1:axis = "Z" ;
+	double TIME(TIME) ;
+		TIME:units = "hour since 0000-01-01 00:00:00" ;
+		TIME:time_origin = "01-JAN-0000 00:00:00" ;
+		TIME:modulo = 8765.81982421875 ;
+		TIME:axis = "T" ;
+	float TEMP(TIME, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_380) ;
+		TEMP:missing_value = -1.e+34f ;
+		TEMP:_FillValue = -1.e+34f ;
+		TEMP:long_name = "Temperature" ;
+		TEMP:history = "From ocean_atlas_monthly" ;
+		TEMP:units = "Deg C" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
+netcdf a {
+dimensions:
+	XAX_LEV9421_3801_12 = 12 ;
+	YAX_LEV9450_50 = 1 ;
+	ZAXLEVIT191_1 = 1 ;
+	TIME = UNLIMITED ; // (1 currently)
+variables:
+	double XAX_LEV9421_3801_12(XAX_LEV9421_3801_12) ;
+		XAX_LEV9421_3801_12:units = "degrees_east" ;
+		XAX_LEV9421_3801_12:modulo = " " ;
+		XAX_LEV9421_3801_12:point_spacing = "even" ;
+		XAX_LEV9421_3801_12:long_name = "Here is a long name for the x axis of TEMP" ;
+		XAX_LEV9421_3801_12:axis = "X" ;
+	double YAX_LEV9450_50(YAX_LEV9450_50) ;
+		YAX_LEV9450_50:units = "degrees_north" ;
+		YAX_LEV9450_50:point_spacing = "even" ;
+		YAX_LEV9450_50:axis = "Y" ;
+	double ZAXLEVIT191_1(ZAXLEVIT191_1) ;
+		ZAXLEVIT191_1:units = "METERS" ;
+		ZAXLEVIT191_1:positive = "down" ;
+		ZAXLEVIT191_1:point_spacing = "even" ;
+		ZAXLEVIT191_1:axis = "Z" ;
+	double TIME(TIME) ;
+		TIME:units = "hour since 0000-01-01 00:00:00" ;
+		TIME:time_origin = "01-JAN-0000 00:00:00" ;
+		TIME:modulo = 8765.81982421875 ;
+		TIME:axis = "T" ;
+	float TEMP(TIME, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_3801_12) ;
+		TEMP:missing_value = -1.e+34f ;
+		TEMP:_FillValue = -1.e+34f ;
+		TEMP:long_name = "Temperature" ;
+		TEMP:history = "From ocean_atlas_monthly" ;
+		TEMP:units = "Deg C" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
+netcdf a {
+dimensions:
+	YAXIS = 61 ;
+variables:
+	double YAXIS(YAXIS) ;
+		YAXIS:units = "DEG" ;
+		YAXIS:point_spacing = "even" ;
+		YAXIS:axis = "Y" ;
+		YAXIS:standard_name = "latitude" ;
+	float V(YAXIS) ;
+		V:missing_value = -1.e+34f ;
+		V:_FillValue = -1.e+34f ;
+		V:long_name = "Y[GY=YAXIS]" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
+err611_set_var_ez.jnl --- 
+netcdf a {
+dimensions:
+	XAX1_3 = 3 ;
+variables:
+	double XAX1_3(XAX1_3) ;
+		XAX1_3:point_spacing = "even" ;
+		XAX1_3:axis = "X" ;
+	float MY_ASC(XAX1_3) ;
+		MY_ASC:missing_value = 3.f ;
+		MY_ASC:_FillValue = 3.f ;
+		MY_ASC:long_name = "chlorophyll" ;
+		MY_ASC:units = "micrograms/L" ;
+		MY_ASC:history = "From dat.dat" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
+netcdf a {
+dimensions:
+	XAX1_3 = 3 ;
+variables:
+	double XAX1_3(XAX1_3) ;
+		XAX1_3:point_spacing = "even" ;
+		XAX1_3:axis = "X" ;
+	float MY_UNF(XAX1_3) ;
+		MY_UNF:missing_value = 5.f ;
+		MY_UNF:_FillValue = 5.f ;
+		MY_UNF:long_name = "Some Unformatted input" ;
+		MY_UNF:units = "metres" ;
+		MY_UNF:history = "From unf.dat" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
+bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
+netcdf a {
+dimensions:
+	XAX1_3 = 3 ;
+variables:
+	double XAX1_3(XAX1_3) ;
+		XAX1_3:point_spacing = "even" ;
+		XAX1_3:axis = "X" ;
+	double A(XAX1_3) ;
+		A:missing_value = -9.99999979021477e+33 ;
+		A:_FillValue = -9.99999979021477e+33 ;
+		A:long_name = "{1.1,2.2,3.3}" ;
+		A:Ferret_Precision_Note = "This variable written by Ferret was converted from FLOAT to DOUBLE" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ XAX1_3 = 1, 2, 3 ;
+
+ A = 1.10000002384186, 2.20000004768372, 3.29999995231628 ;
+}
+netcdf a {
+dimensions:
+	XAX1_12 = 12 ;
+variables:
+	double XAX1_12(XAX1_12) ;
+		XAX1_12:point_spacing = "even" ;
+		XAX1_12:axis = "X" ;
+	int A(XAX1_12) ;
+		A:missing_value = 999 ;
+		A:_FillValue = 999 ;
+		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 V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+data:
+
+ XAX1_12 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ;
+
+ A = 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5 ;
+}
+bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
+netcdf a {
+dimensions:
+	X100 = 11 ;
+	T31 = UNLIMITED ; // (14 currently)
+variables:
+	double X100(X100) ;
+		X100:units = "DEG" ;
+		X100:point_spacing = "even" ;
+		X100:axis = "X" ;
+		X100:modulo = 360. ;
+	double T31(T31) ;
+		T31:units = "DAYS since 1999-12-31 00:00:00" ;
+		T31:axis = "T" ;
+		T31:time_origin = "31-DEC-1999" ;
+	float A(T31, X100) ;
+		A:missing_value = -1.e+34f ;
+		A:_FillValue = -1.e+34f ;
+		A:long_name = "X[GX=X100] + T[GT=T31]" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
+bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
+netcdf a {
+dimensions:
+	X10030_40 = 11 ;
+	T31 = UNLIMITED ; // (14 currently)
+variables:
+	double X10030_40(X10030_40) ;
+		X10030_40:units = "DEG" ;
+		X10030_40:point_spacing = "even" ;
+		X10030_40:axis = "X" ;
+		X10030_40:modulo = 360. ;
+	double T31(T31) ;
+		T31:units = "DAYS since 1999-12-31 00:00:00" ;
+		T31:axis = "T" ;
+		T31:time_origin = "31-DEC-1999" ;
+	float A(T31, X10030_40) ;
+		A:missing_value = -1.e+34f ;
+		A:_FillValue = -1.e+34f ;
+		A:long_name = "X[GX=X100] + T[GT=T31]" ;
+
+// global attributes:
+		:history = "FERRET V6.65    3-Jan-11" ;
+		:Conventions = "CF-1.0" ;
+}
+-----
+end of ncdump output
+ 
+yes? ! this "shell" is used because the Unix redirection fails to echo commands
+yes? ! from the top level command file
+yes? ! ... havn't explored the reason ... they echo fine to the screen
+yes? ! *kob* 3/04/98 - newly created - copied from bn490_all_shell.jnl
+yes? 
+yes? 
+yes? GO bn_startupfile
+ 	NOAA/PMEL TMAP
+ 	FERRET v6.65  
+ 	Linux(gfortran) 2.6.9-89.0.20.ELsmp - 01/03/11
+ 	 3-Jan-11 16:42     
+
+CAN MODE VERIFY
+ Current size of FERRET memory cache: 31 MegaWords  (1 word = 4 bytes)
+PPL$XPIXEL = "513"
+PPL$YPIXEL = "385"
+BYTEORDER = "LITTLE"
+FERRET_VERSION = "6.65"
+FERRET_PLATFORM = "Linux(gfortran) 2.6.9-89.0.20.ELsmp"
+NETCDF_VERSION = "4.1.2-beta2-snapshot2010121322 of Dec 29 2010 12:31:06 $"
+FERRET_MEMORY = "31"
+SESSION_DATE = " 3-Jan-11"
+SESSION_TIME = "16:42"
+DELTA_CPU = "0.042992"
+CLOCK_SECS = "0.073"
+CURRENT_DATE = " 3-Jan-11"
+CURRENT_TIME = "16:42:51"
+N_OPEN_DSETS = "0"
+LAST_GO_FILE = "./bn_startupfile.jnl"
+PPL$FORMAT = "(3F10.2)"
+PPL$PLTNME = "startup_tests.plt"
+PPL$TEKNME = "/dev/tty"
+PPL$XLEN = "8.000"
+PPL$YLEN = "6.000"
+PPL$XORG = "1.200"
+PPL$YORG = "1.400"
+PPL$WIDTH = "10.20"
+PPL$HEIGHT = "8.800"
+PPL$LINE_COUNT = "0"
+PPL$XFACT1 = "1.000"
+PPL$XOFF1 = "0.000"
+PPL$YFACT1 = "1.000"
+PPL$YOFF1 = "0.000"
+PPL$VIEW_X = "0.000"
+PPL$VIEW_Y = "0.000"
+PPL$VIEW_Z = "0.000"
+PPL$COMMAND_FILE = "$$MEMBUF$$"
+WIN_TITLE = "3-Jan-11:16:42"
+VP_WIDTH = "10.2"
+VP_HEIGHT = "8.8"
+VP_SCALE = "1"
+VP_RT_MARGIN = "1"
+VP_TOP_MARGIN = "1.4"
+VP_XLO = "0"
+VP_XHI = "1"
+VP_YLO = "0"
+VP_YHI = "1"
+GO_FILE = "./bn_startupfile.jnl"
+      MODE            STATE        ARGUMENT
+      DIAGNOSTIC    CANCELLED           99
+      VERIFY        CANCELLED      DEFAULT
+      INTERPOLATE   CANCELLED
+      IGNORE_ERROR  CANCELLED
+      STUPID        CANCELLED
+      JOURNAL          SET         startup_tests.jnl
+      LONG_LABEL       SET               1
+      LATIT_LABEL   CANCELLED            1
+      DEPTH_LABEL      SET              -4
+      CALENDAR         SET         minutes
+      ASCII_FONT       SET
+      SEGMENT          SET
+      WAIT          CANCELLED
+      DESPERATE     CANCELLED      3100000
+      GKS              SET
+      REFRESH          SET
+      METAFILE         SET         startup_tests.plt
+      PPLLIST       CANCELLED      ppllist.out
+      GUI           CANCELLED
+      LOGO             SET
+      LABELS           SET
+      GRATICULE        SET
+      LINECOLORS       SET               7
+      UPCASE_OUTPU     SET
+      NLEVELS          SET             100
+      NODATA_LAB       SET
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
  name     title                             I         J         K         L         M         N
  SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
  
+yes? ! this "shell" is used because the Unix redirection fails to echo commands
+yes? ! from the top level command file
+yes? ! ... havn't explored the reason ... they echo fine to the screen
+yes? ! *kob* 3/04/98 - newly created - copied from bn490_all_shell.jnl
+yes? 
+yes? 
+yes? GO bn_gif
+abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.gif
+ 	NOAA/PMEL TMAP
+ 	FERRET v6.65  
+ 	Linux(gfortran) 2.6.9-89.0.20.ELsmp - 01/03/11
+ 	 3-Jan-11 16:42     
+
+! 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*
  
 ! combinations of /append and /clobber
  
@@ -79494,10 +80687,23 @@ CORRECT
 !yes? ^Z
 !Suspended
  
-GO bn_reset
-cancel mode verify
-GO err693_if_then_flow_2211
-! bug #2211
+exit/command
+yes? ! this "shell" is used because the Unix redirection fails to echo commands
+yes? ! from the top level command file
+yes? ! ... havn't explored the reason ... they echo fine to the screen
+yes? ! *kob* 3/04/98 - newly created - copied from bn490_all_shell.jnl
+yes? 
+yes? 
+yes? GO bn_ps
+ 	NOAA/PMEL TMAP
+ 	FERRET v6.65  
+ 	Linux(gfortran) 2.6.9-89.0.20.ELsmp - 01/03/11
+ 	 3-Jan-11 16:42     
+
+! 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*
  
  
 IF 0 THEN
@@ -79761,13 +80967,26 @@ GO err693_subspan_trans
 ! err693_subspan_trans
 ! bug 2241  3/9/2015
  
-use coads_climatology
-let a = sst[x=120:284,y=-2:2 at ave,t=@ave]
-save/clob/file=a.nc a
-can var a
-use a
-set reg/x=25:385
-let b = a[x=@min]
+set mode ignore
+frame/file=bnplot.ps    ! DELIBERATE ERROR MESSAGE
+can mode ignore
+exit/command
+yes? ! this "shell" is used because the Unix redirection fails to echo commands
+yes? ! from the top level command file
+yes? ! ... havn't explored the reason ... they echo fine to the screen
+yes? ! *kob* 3/04/98 - newly created - copied from bn490_all_shell.jnl
+yes? 
+yes? 
+yes? GO bn_batch_metafile
+ 	NOAA/PMEL TMAP
+ 	FERRET v6.65  
+ 	Linux(gfortran) 2.6.9-89.0.20.ELsmp - 01/03/11
+ 	 3-Jan-11 16:42     
+
+! bn_batch_metafile.jnl
+! Run at the end of the benchmark scripts, starting ferret with the flags
+!   -batch bat.plt
+! Produces nine metafiles.
  
 set mode diag
 say `a[x=@min]`
@@ -79950,26 +81169,6 @@ show data/full
  
   time range: 02-JAN-2000 00:00 to 08-JAN-2000 00:00
  
- 
-GO bn_reset
-cancel mode verify
-GO err693_frame_types
-! bn_frame_types.jnl
-! Ticket 2275
-! The default file type for FRAME was still HDF
- 
-set mode ignore
- 
-use coads_climatology
-shade/l=1 sst
- 
-! This issued an error and quit
-frame/format=hdf/file=a.hdf
- 
-! so did this
-frame/file=a.png
- 
-! this is (always) ok
-frame/file=a.gif
-frame/format=gif file=a.plot
-FERRET ERRROR*********************************
+set mode/last logo
+exit/command
+Ended at Mon Jan 3 16:42:53 PST 2011
diff --git a/bench/bench_v5d.jnl b/bench/bench_v5d.jnl
deleted file mode 100644
index 994308e..0000000
--- a/bench/bench_v5d.jnl
+++ /dev/null
@@ -1,19 +0,0 @@
-! benchmark for Vis5D external function
-! 5/99 ACM
-
-
-!  Write data to a Vis5D file.  The first argument to the 
-!  GO script is the file, arguments 2 through 9 are variable names to be written.
-! 7/2007 Funtion doesnt want to write a variable that doesnt have a vertical variation.
-!        To get a basic test of the function, make some data on a regularly-spaced xy grid.
-
-can region
- set mode ignore_error
-
-use gt4d011.cdf
-def axis/y=1:100:1/units=degrees yax
-let tr = temp[gy=yax at asn]
-go vis5d_write " " tr
-
-set mode/last ignore_error
-
diff --git a/bench/bn710_bug_fixes.jnl b/bench/bn710_bug_fixes.jnl
new file mode 100644
index 0000000..486d1b2
--- /dev/null
+++ b/bench/bn710_bug_fixes.jnl
@@ -0,0 +1,120 @@
+! bn710_bug_fixes.jnl
+! test various fixes that went into version 7.1
+! 6/16 *acm*
+!
+
+! Bug 2445 missing or repeated coords when axis marked as regular
+go bn_reset
+go err700_reg_axis_check
+
+! Bug 2446 include script name on warning about unclosed IF block
+go bn_reset
+go err700_unclosed_if
+
+! Bug 2446 inheriting attributes
+go bn_reset
+go err700_inherit_all
+
+! Bug 2458  Subspan modulo grids and SAMPLEXY
+go bn_reset
+go err700_samplexy_subspan_modulo
+
+
+! Bug 2463  SHADE/LEVELS and single-color data
+go bn_reset
+go err700_levels_one_level
+
+! Bug xxxx  Only examine key labels that are actually going to be printed
+go bn_reset
+go err700_key
+
+! Bug 2468 Symbol AX_HORIZ corrupted by an overlay
+go bn_reset
+go err700_ax_horiz
+
+! Bug 2470 Symbol LEV_DEL incorrect on a LEV=(lo,hi,delta)
+go bn_reset
+go err700_lev_del_symb
+
+! Bug 2466 Graticule lines too dense on time plots
+go bn_reset
+go err700_timegrat
+
+! Bug 2465 parsing errors on commands with expressions involving attrbutes
+go bn_reset
+go err700_attribute_parsing
+
+! Note the fix for # 2437 needs documentation: 4D output for grids in X,Y,Z,T only
+! Note the fix for # 2451 needs documentation: -gif mode plots with /HLIM or /VLIM reversing an axis.
+
+
+! Bug 2477 plot axes are not fully drawn, some /VS plots
+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
+go err700_axis_dates
+
+! Bug 2489. Attribute climatology_time_range not defined on an expression
+go bn_reset
+go err700_clim_attr_expression
+
+! Bug 2491: Location of colorbar labels wrong
+! on /HLOG or /VLOG plots
+go bn_reset
+go err700_ribbon_vlog
+
+! Bug 2492: single-variable listings with /form=comma or /form=tab
+go bn_reset
+go err700_list_comma
+
+
+! Bug 2493: T aggregation when there are E or F axes
+go bn_reset
+go err700_aggT_5d
+
+! Bug 2495: shift on overlay of time series plot on 2d time plot
+go bn_reset
+go err700_time_overlay
+
+
+! Bug 2494:  drawing a single-cell shade plot
+go bn_reset
+go err700_shade_singlecell
+
+
+! Bug 2496: errors using axis with nearly-repeating coordinates
+!           where coordinates are very near grid-cell edges.
+go bn_reset
+go err700_coords
+
+! Bug 2499: Define a single-point axis with bounds
+go bn_reset
+go err700_define_1pt_axis
+
+
+! Bug 2498: time unit error in F-aggregation of some OPENDAP datasets
+go bn_reset
+go err700_aggregate_from_fmrc
+
+
+! Bug 2504: modulo axes and coordinates
+go bn_reset
+go err700_modulo
+
+! Bug 1480: saving modulo axis with too big a region
+go bn_reset
+go err700_save_mod_att
+
+! Bug 2502: FMRC regridding sensitive to insignificant floating-point differences in time
+go bn_reset
+go err700_fmrcdiag
+
+! Bug 2331: Labeling the labels in line-plot legends.
+go bn_reset
+Go err700_legend_labels
+
+! Bug 2507: time aggregations with same time axis in different grids per file
+go bn_reset
+Go err700_aggt_dup_grids
diff --git a/bench/bn720_bug_fixes.jnl b/bench/bn720_bug_fixes.jnl
new file mode 100644
index 0000000..a9dbbfe
--- /dev/null
+++ b/bench/bn720_bug_fixes.jnl
@@ -0,0 +1,34 @@
+! bn720_bug_fixes.jnl
+! test various fixes that went into version 7.2
+! 2/17 *acm*
+!
+
+GO bn_reset
+GO err71_uvar_strides
+
+GO bn_reset
+GO err71_prec_return
+
+GO bn_reset
+GO err71_save_rigid
+
+GO bn_reset
+GO err71_plotvs_mode_label
+
+GO bn_reset
+GO err71_set_redirect
+
+GO bn_reset
+GO err71_set_redirect
+
+GO bn_reset
+GO err71_err_attrib_overrun
+
+GO bn_reset
+GO err71_user_var_attrib
+
+GO bn_reset
+GO err71_save_bounds
+
+GO bn_reset
+GO err71_vs_constant
diff --git a/bench/bn_1d_gather.jnl b/bench/bn_1d_gather.jnl
new file mode 100644
index 0000000..3cb698b
--- /dev/null
+++ b/bench/bn_1d_gather.jnl
@@ -0,0 +1,8 @@
+! bn_1d_gather.jnl
+! test all kinds of gathering in 1 dimension
+
+go bn_gather_DIM_ave $1
+go bn_gather_DIM_sum $1
+go bn_gather_DIM_din $1
+go bn_gather_DIM_minmax $1
+go bn_gather_DIM_good_bad $1
diff --git a/bench/bn_agg_member_syntax.jnl b/bench/bn_agg_member_syntax.jnl
new file mode 100644
index 0000000..24f69b1
--- /dev/null
+++ b/bench/bn_agg_member_syntax.jnl
@@ -0,0 +1,75 @@
+! bn_agg_member_syntax
+
+! *sh* 11/16
+
+! running of this benchmark assumes that a tmp directory has been created 
+! and that it contains the aggregation member files created by bn_aggregate_f
+
+
+! define an 11-member FMRC aggregation
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+fmrc my_fmrc = files
+show data/members my_fmrc   ! /FILES is deprecated
+
+show data 12.3   ! turns out to be dset=5
+
+! these are now all allowable references to the parent aggregation
+stat fcst[d=12]
+stat/br fcst[d=12.]
+stat/br fcst[d=12.0]
+
+! reference a member
+stat fcst[d=12.3]
+stat fcst[d=12.3] - fcst[d=5]   ! v-v=0
+
+! note that FMRC members have distinct time axes. Specify "L=1"
+stat fcst[d=12.3,l=1] - fcst[d=12.1,l=1]
+
+! deliberate errors
+set mode ignore
+
+stat/br fcst[d=5.3]       ! d=5 is not an aggregation
+stat/br fcst[d=12.30]     ! not this many members
+stat/br fcst[d=12.300000]
+
+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
+show data 5.2
+show data 5.3
+
+cancel data/all
+
+! Tests for Ensembles
+let files = SPAWN("ls -1 ens*.nc")
+ensemble my_ens = files
+sh data/members my_ens
+
+show data 5.3
+stat sst[d=5]
+stat sst[d=5.2]
+
+can data my_ens
+
+! do them in another order
+ENSEMBLE fourfiles = ens1, ens3, ens2, ens4
+
+! not this is dataset 2
+show data 5.3
+
+stat sst[d=5] - sst[d=5.3]   ! ensemble minus member #3
+
+
+! deliberate errors
+set mode ignore
+
+stat/br sst[d=4.1]     ! not an ensemble
+stat/br sst[d=5.30]    ! not this many members
+
+set mode/last ignore
+
diff --git a/bench/bn_aggregate_f.jnl b/bench/bn_aggregate_f.jnl
index 7e500a9..2b45ce6 100644
--- a/bench/bn_aggregate_f.jnl
+++ b/bench/bn_aggregate_f.jnl
@@ -81,6 +81,7 @@ fmrc/hide my_fmrc = XCAT(files[I=6:10],{"6","1"})           ! double-wide gaps
 show data/files my_fmrc
 show data/brief
 LIST tf_times
+
 GO bn_aggregate_f.sub
 
 cancel data my_fmrc
diff --git a/bench/bn_aggregate_t.jnl b/bench/bn_aggregate_t.jnl
index 7fd2934..3a3cd93 100644
--- a/bench/bn_aggregate_t.jnl
+++ b/bench/bn_aggregate_t.jnl
@@ -2,6 +2,7 @@
 ! 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
+! 1/2017 *acm* changes in output due to backing off auto-detection of truemonth axes, tkt 2497
 
 spawn "mkdir -p tmp"     ! tmp directory t store files
 
@@ -186,10 +187,13 @@ tseries myTindepagg = tmp/tagg_reg_no_T.nc
 ! erroneous file 2 with 15 time steps, goes beyond start of file 3
 define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2_overlarge.nc,tmp/tagg_reg_3.nc
 
+! Try to use dataset names not file names. This is not allowed for Tseries aggregations.
+use tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+define data/agg/t myagg2num = 1,2
+
 set mode/last ignore
 canc data/all
 
-
 ! --- irregularly-spaced axes ---
 ! aggregation of 2 irregular datasets
  define data/agg/t myagg2 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc
@@ -292,8 +296,12 @@ stat/brief TBOXHI[g=myvar[d=MYsing_irreg_agg4]] - TBOXHI[g=myvar[d=MYsing_irreg_
 canc data/all
 
 ! OPeNDAP test
-IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc") EQ 0` THEN
-   tseries COADS = http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc, http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2013.nc, http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2014.nc
+! (Note: when running pre-true-month Ferret versions, the timestep output from 
+! show grid/T below was eliminated by the "clean_draconian" script)
+! 1/17/2017 changes due to backing off auto-detection of truemonth axes, tkt 2497
+
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc") EQ 0` THEN
+   tseries COADS = http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc, http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/ferret/test_coads_monthly_air_2013.nc, http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/ferret/test_coads_monthly_air_2014.nc
 show data COADS
 show grid/T air
 canc data/all
diff --git a/bench/bn_aggregate_tef.jnl b/bench/bn_aggregate_tef.jnl
index ec163d3..593107c 100644
--- a/bench/bn_aggregate_tef.jnl
+++ b/bench/bn_aggregate_tef.jnl
@@ -1,6 +1,7 @@
 ! 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
 
 ! to avoid re-creating the test files include argument "0" as in
 !  yes?  GO bn_aggregate_tef 0
@@ -12,7 +13,15 @@
 ! many time aggregations
 CANCEL MODE VERIFY
 
-if ($1"1") then
+! see if the test file already exists
+SPAWN "ls tmp/f04_e3_t3_1v.nc"
+IF ($SPAWN_STATUS) THEN
+  say *** NOT RE-CREATING bn_aggregate_tef.jnl test files. They already exist.
+ELSE
+
+! Give the operator something to look at while we write all the data 
+plot/noax/nolab/vlim=0:1/i=4:5 i
+annotate/norm/x=0/y=0.5 "...writing data files for the TEF aggregation tests"
 
 ! *** create an artificial file collection ***
 spawn "mkdir -p tmp"     ! tmp directory to store files
@@ -71,7 +80,7 @@ repeat/name=fdate/range=10:10:3 (\
 
 cancel variables/all
 
-endif
+ENDIF
 
 ! ***** end of TEF file creation ****************
 
@@ -92,7 +101,7 @@ cancel variable realization
 
 SET MODE VERIFY
 
-show data/files/br
+show data/members/br
 
 ! should share the same time axis
 show grid fcst[d=t_f01_e1]
@@ -118,7 +127,7 @@ SHOW DATA/ATT te_f11   ! notice the promotion of fcst.im_everywhere
 
 ! define tef aggregation
 FMRC/HIDE tef = te_f01, te_f02, te_f03, te_f04, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
-SHOW DATA/brief/files
+SHOW DATA/brief/members
 show data/full tef
 
 ! simplest acess -- compact form -- just demonstrate it doesn't fail
diff --git a/bench/bn_aggregate_u.jnl b/bench/bn_aggregate_u.jnl
new file mode 100644
index 0000000..c5e1849
--- /dev/null
+++ b/bench/bn_aggregate_u.jnl
@@ -0,0 +1,202 @@
+! bn_aggregate_u.jnl
+! Union aggregations including tests of UNION in combination
+! with TSERIES, ENSEMBLE, and FMRC aggregations
+! acm 7/15/2016
+\
+! create some variables in separate datasets.
+define axis/t=1-jan-2010:10-jan-2010:1/units=days/t0=1-jan-2010 tax
+let/title=sst  sst = x[x=1:5] + 1.3*y[y=1:4] + t[gt=tax]
+let/title=temp temp = 0.8*x[x=1:5] - y[y=1:4] + t[gt=tax]
+let/title=U    u = x[x=1:5] + 0.4*y[y=1:4] - 1.1* t[gt=tax]
+let/title=V    v = x[x=1:5] - 0.2*y[y=1:4] + 1.1* t[gt=tax]
+
+save/clobber/file="tmp/uagg_1.nc" sst
+save/clobber/file="tmp/uagg_2.nc" temp
+save/clobber/file="tmp/uagg_3.nc" u
+save/clobber/file="tmp/uagg_4.nc" v
+
+save/l=1:3/clobber/file="tmp/uagg_1_t1.nc" sst
+save/l=4:6/clobber/file="tmp/uagg_1_t2.nc" sst
+save/l=7:10/clobber/file="tmp/uagg_1_t3.nc" sst
+
+can dat/all
+union tmp/uagg_1.nc,tmp/uagg_2.nc,tmp/uagg_3.nc,tmp/uagg_4.nc
+sh dat
+vec/l=5 u,v
+
+cancel dat/all
+
+! issue a note if a variable is already in the Union
+! a new file with different defiontions of sst and temp
+!
+let/title="sst in uagg_5"  sst = 1.1*x[x=1:5] + 1.3*y[y=1:4] + t[gt=tax]
+let/title="temp in uagg_5" temp = 0.9*x[x=1:5] - y[y=1:4] + t[gt=tax]
+save/clobber/file="tmp/uagg_5.nc" sst,temp
+
+! In the union set, sst comes from uagg_1, temp comes from uagg_5
+union uu = tmp/uagg_1.nc,tmp/uagg_5.nc
+sh dat/att
+can dat/all
+
+! Or use /quiet to supress the note
+union/quiet uu = tmp/uagg_1.nc,tmp/uagg_5.nc
+
+let tnames = SPAWN("ls -1 tmp/uagg_1_*.nc")
+tseries  temp_time_agg = tnames
+sh dat
+union temp_time_agg, tmp/uagg_2.nc,tmp/uagg_3.nc,tmp/uagg_4.nc
+
+shade/l=2 sst - temp
+
+
+can dat/all; can var/all; can sym/all
+
+! exercise 6D aggregations: UNION with T, E, and F simultaneously
+
+! do not bother to echo the creation of files and the definitions of the
+! many time aggregations
+CANCEL MODE VERIFY
+
+
+
+! assume the aggregate_tef script has alrady run, 
+! leaving the examplefiles it writes, in tmp/
+
+! check for those files.
+IF `test_opendap("tmp/f03_e2_t3.nc") NE 0` THEN
+   Say Exiting in bn_aggregate_u.jnl. The script needs files written by bn_aggregate_tef.jnl which are not found
+   exit/program
+ENDIF
+
+! *** create an artificial file collection with another variable, fcst_3 ***
+
+! a 20x20 lat-long region
+define axis/x=140e:160e:1 xax
+define axis/y=10n:20n:1 yax
+define axis/Z=0:500:500/EDGES/units=m zax   ! a single point axis
+
+! a 20 year monthly axis starting in Jan 1950
+LET start_year = 1950
+LET nyears = 20
+LET indices = L[L=1:`nyears*12`]
+LET month = MOD(indices-1,12)+1
+LET year = start_year + INT((indices-1)/12)
+DEFINE AXIS/UNITS=days/T0=1-jan-1900/EDGES truemonth = DAYS1900(year,month,1)
+
+! define a moving field with errors increasing from a given forecast date
+let vy = 1/500      ! speed that forecast structure deviates from truth
+let vx = (1+(T[gt=truemonth]-tstart)/2000)* 1/300
+let xt = x[gx=xax]-vx*T[gt=truemonth]
+let yt = y[gy=yax]-vy*T[gt=truemonth]
+let field = COS((xt-150)/5)*COS((yt-30)/5) + Z[gz=zax]
+let fcst = ensemble_variation * (field + fcst_error)
+define attribute fcst.im_everywhere = "so promote me"
+set variable/title="some variable" fcst
+let static_error = SIN((x[gx=xax]-140)/5)*SIN((y[gy=yax]-20)/5) + RANDU(x[gx=xax]+y[gy=yax])
+let structure_drift = (t[gt=truemonth]-tstart)/5000 * static_error
+let random_error = (t[gt=truemonth]-tstart)/2000 * RANDU(t[gt=truemonth]+x[gx=xax]+y[gy=yax])
+let fcst_error = structure_drift + random_error
+
+! Define another variable fcst_3
+let/title="another variable" fcst_3 = fcst + 3 + 0.1*fcst_error
+
+
+repeat/name=fdate/range=1:7:3 (\
+  let tstart = t[gt=truemonth,l=`fdate`];\
+  repeat/name=ens/range=1:2:1 (\
+    let ensemble_variation = 1 + (ens-3)/20;\  
+    let realization = `ens`;\
+    save/clobber/file="tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_tu1.nc"/l=`fdate`:`fdate+11` fcst_3, realization;\
+    save/clobber/file="tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_tu2.nc"/l=`fdate+12`:`fdate+23` fcst_3, realization;\
+    save/clobber/file="tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_tu3.nc"/l=`fdate+24`:`fdate+35` fcst_3, realization))
+
+cancel variables/all
+
+! ***** end of TEFU file creation ****************
+
+SET MODE VERIFY
+! define T aggregations
+
+! timeseries of files with variable fcst_1
+repeat/name=fdate/range=1:7:3 (\
+  let tstart = t[gt=truemonth,l=`fdate`];\
+  repeat/name=ens/range=1:2:1 (\
+    let realization = `ens`;\
+    TSERIES  t_f`(fdate-1)/3+1,zw=2`_e`ens` = SPAWN("ls -1 tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_t?.nc")  ))
+
+! timeseries of files with variable fcst_3
+repeat/name=fdate/range=1:7:3 (\
+  let tstart = t[gt=truemonth,l=`fdate`];\
+  repeat/name=ens/range=1:2:1 (\
+    let realization = `ens`;\
+    TSERIES  t_f`(fdate-1)/3+1,zw=2`_e`ens`_3 = SPAWN("ls -1 tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_tu?.nc")  ))
+
+cancel variable realization
+
+SET MODE VERIFY
+! now union these to make datsets with fcnst_1 and fcst_3.
+
+show data/files/br; 
+
+DEFINE DATA/AGGREGAT/U  u1 = t_f01_e1_3, t_f01_e1
+DEFINE DATA/AGGREGAT/U  u2 = t_f01_e2, t_f01_e2_3
+show data u1 u2
+can data u1 u2
+
+! Make a batch of files, timeseries aggregations union-ed.
+! the /QUIET supresses the note about skipping duplicate variables.
+repeat/name=fdate/range=1:7:3 (\
+  let tstart = t[gt=truemonth,l=`fdate`];\
+  repeat/name=ens/range=1:2:1 (\
+    let realization = `ens`;\
+    UNION/quiet  t_f_u`(fdate-1)/3+1,zw=2`_e`ens` = t_f`(fdate-1)/3+1,zw=2`_e`ens`, t_f`(fdate-1)/3+1,zw=2`_e`ens`_3;\
+    show data/br t_f_u`(fdate-1)/3+1,zw=2`_e`ens`))
+
+cancel variable realization
+
+! should share the same time axis
+show grid fcst[d=t_f01_e1]
+show grid fcst_3[d=t_f_u01_e2]
+
+! Now go on and aggregate these time & union aggregations, in E and F
+
+! ======== TEST SET 1:  aggregate E first, then F
+
+! define tue aggregations -- only the first remains unhidden
+ENSEMBLE      tue_f01 = t_f_u01_e1, t_f_u01_e2
+ENSEMBLE/hide tue_f02 = t_f_u02_e1, t_f_u02_e1
+ENSEMBLE/hide tue_f03 = t_f_u03_e1, t_f_u03_e2
+SHOW DATA/brief
+SHOW DATA/FULL tue_f03
+SHOW DATA/ATT tue_f03   ! notice the promotion of fcst.im_everywhere
+
+! define tuef aggregation
+FMRC/HIDE tuef = tue_f01, tue_f02, tue_f03
+SHOW DATA/brief/files
+show data/full tuef
+
+! The time-union-ensemble-forecast aggregation
+
+set data tuef
+show data tuef
+sh grid fcst 
+sh grid fcst_3
+
+! simplest acess -- compact form -- just demonstrate it doesn't fail
+stat/brief fcst[i=11:12, j=5:6, l=31:32, m=1:2, n=2:3]
+stat/brief fcst_3[i=11:12, j=5:6, l=31:32, m=1:2, n=2:3]
+
+! diagonal forecast view of ensemble mean
+let diag_fcst = fcst[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]
+shade/x=150E/y=15n diag_fcst[m=1:2 at ave]
+
+let diag_fcst_3 = fcst_3[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]
+shade/x=150E/y=15n diag_fcst[m=1:2 at ave]
+
+! the difference will be just a small variation from the value 3
+let diff_of_union = diag_fcst - diag_fcst_3
+
+shade/x=150E/y=15n  diff_of_union[m=1:2 at ave]
+CANCEL DATA/ALL
+
+
diff --git a/bench/bn_all.jnl b/bench/bn_all.jnl
index bd3ac29..2a6f5e1 100644
--- a/bench/bn_all.jnl
+++ b/bench/bn_all.jnl
@@ -114,55 +114,62 @@ SET MODE VERIFY
 !       *sh* 3/16 - added bn_plot_along.jnl
 !       *acm*4/16 - added bn_show_commands.jnl
 !       *acm*4/16 - added bn_plot_decimate.jnl
-
+! V702 *sh 11/16 - added bn_agg_member_syntax.jnl
+! V702 *acm 12/16 - Merge/Reintigrate true-month-axis branch. New test bn_true_monthly.
+!                   and axes that are true-month in other tests are treated as true-month.
+! V702 *acm 12/16 - Remove all references to the long unused and unsupported vis5D function
+! V7023 *acm 1/17 - Back out the changes that automatically detect a true-month axis in 
+!                   a netCDF file or from a DEFINE AXIS (when given without /MONTHLY).
+!
 ! Include this statement to compare the outupt of 6D Ferret with 
 ! previous 4D benchmark logs.
 ! cancel mode 6d_lab
+! V702 *sh* 3/17 - added dynamic memory benchmarks.  Tweaked a couple of others
 
-GO bn_reset
+GO bn_reset bn_syntax
 GO bn_syntax
 cancel mode metafile      !9/97
 
-GO bn_reset
+GO bn_reset bn_dollar
 GO bn_dollar hello    ! test command arg
 
 ! added in bn400
-GO bn_reset
+GO bn_reset bn_grave
 GO bn_grave
 
 ! added in bn420
-GO bn_reset
+GO bn_reset bn_letd
 GO bn_letd
 
 ! added in bn430
-GO bn_reset
+GO bn_reset bn_if
 GO bn_if
 
-GO bn_reset
+GO bn_reset bn_expressions
 GO bn_expressions
 
-GO bn_reset
+GO bn_reset bn_geometry
 GO bn_geometry
 
-GO bn_reset
 set mode ignore		! needed for AIX   11/94
+GO bn_reset   bn_output
 GO bn_output
 cancel list/format
 can mode ignore		! needed for AIX
 
-GO bn_reset
+GO bn_reset bn_in_plane
 GO bn_in_plane
 
-GO bn_reset
+GO bn_reset bn_compress
 GO bn_compress
 
-GO bn_reset
+GO bn_reset bn_interpolate
 GO bn_interpolate
 
-GO bn_reset
+GO bn_reset bn_regrid
 GO bn_regrid
 
-GO bn_reset
+GO bn_reset bn_ez
 GO bn_ez		! changed from bn200_ez 8/10/95
 
 ! ****
@@ -174,14 +181,14 @@ PPL ECHO ON		! added 10/27/93
 
 ! 10/97 *kob* now set mode metafile
 set mode metafile bnplot.plt
-GO bn_reset
+GO bn_reset bn_plot
 GO bn_plot		! upgraded from bn320_plot 10/1/97 *kob*
 
 
 !added in bn450 10/97 *kob*
 ! moved to right after bn450_plot to capture metafiles *kob* 2/98
-GO bn_reset
 ! 2/98 changed bn450_curv to bn491_curv - just some cosmetic changes *kob*
+GO bn_reset bn_curv
 GO bn_curv
 
 SET WINDOW/CLEAR/SIZE=0.2 ! 8/25/92
@@ -189,24 +196,24 @@ SET WINDOW/CLEAR/SIZE=0.2 ! 8/25/92
 ! 10/97 *kob* now cancel mode metafile
 cancel mode metafile
 
-GO bn_reset
+GO bn_reset bn_symbols
 GO bn_symbols	! added 6/22/95
 
-GO bn_reset
+GO bn_reset bn_comma_delimited
 GO bn_comma_delimited	! added 10/2/95
 
-GO bn_reset
+GO bn_reset bn_dynamic_grids
 GO bn_dynamic_grids	! added 9/27/95, V420 ->V491 4/98
 
-GO bn_reset
+GO bn_reset bn_cdf
 GO bn_cdf
 
-GO bn_reset
+GO bn_reset bn_regrid_transforms
 GO bn_regrid_transforms
 
-GO bn_reset		! reordered reset before next test: 2/94
-GO bn_axis_limits	! added 10/27/93
-SET WINDOW/CLEAR/SIZE=0.2 ! added 2/94
+GO bn_reset bn_axis_limits	! reordered reset before next test: 2/94
+GO bn_axis_limits	        ! added 10/27/93
+SET WINDOW/CLEAR/SIZE=0.2       ! added 2/94
 
 !GO bn_reset
 !GO bn301_mem_mgmt
@@ -214,309 +221,308 @@ MESSAGE/CONTINUE  ***** bn301_mem_mgmt has been removed from run_all.
 MESSAGE/CONTINUE  ***** Its too slow!!!
 MESSAGE/CONTINUE  ***** Remember to run it separately
 
-GO bn_reset
+GO bn_reset bn_movie
 GO bn_movie
 
 ! added in bn311
-GO bn_reset
+GO bn_reset bn_ez_order
 GO bn_ez_order	! was bn311 until 9/95
 
 ! added in bn312  6/3/94
-GO bn_reset
+GO bn_reset bn_user
 ! cancel mode metafile   ! needed temporarily 6/94: PLOT+/XGKS interaction bug
 GO bn_user
 set window 1		! clean up
 
 ! added in bn420  1/96
-GO bn_reset
+GO bn_reset bn_stream
 GO bn_stream
 
 !added in bn430 9/96 *kob*
-GO bn_reset
+GO bn_reset bn_mc
 GO bn_mc
 
 !added in bn450 10/97 *kob*
-GO bn_reset
+GO bn_reset bn_negative_t
 GO bn_negative_t
 
 !added in bn450 10/97 *kob*
-GO bn_reset
+GO bn_reset bn_xact_regrid
 GO bn_xact_regrid
 
 !added in bn450 11/97 *kob*
 ! replace w/ bn500 *kob* 5/99
-GO bn_reset
+GO bn_reset bn_gc_functions
 GO bn_gc_functions
 
 !added in bn491 - originally had this in run_all, but moved it here to 
 ! properly echo commands  *kob*
-GO bn_reset
 set mode verify  ! somehow this was off
-
+GO bn_reset bn491_bug_fixes.jnl
 GO bn491_bug_fixes.jnl
 
 ! ******** V500 Additions below ***********
 
-GO bn_reset
+GO bn_reset bn_odd_variable_name
 GO bn_odd_variable_name
 
-GO bn_reset
+GO bn_reset bn_test_stream
 GO bn_test_stream
 
-GO bn_reset
+GO bn_reset bn_define_axes
 GO bn_define_axes
 
 GO bn_reset
 ! GO bn_external_functions  ! move to tests of shared-obj efs.
 
-GO bn_reset
+GO bn_reset bn_pattern
 GO bn_pattern
 
-GO bn_reset
+GO bn_reset bn_polygon
 GO bn_polygon
 
-GO bn_reset
+GO bn_reset bn500_bug_fixes
 GO bn500_bug_fixes
 
 ! ******** V510 Additions below ***********
 
-GO bn_reset
+GO bn_reset bn_sample
 GO bn_sample			! internal (optimized) SAMPLE* functions
 
-GO bn_reset
+GO bn_reset bn_strides_revs_perms
 GO bn_strides_revs_perms	! netCDF fancy reads
 
-GO bn_reset
+GO bn_reset bn_non_COARDS_netCDF	
 GO bn_non_COARDS_netCDF		! non-standard netCDF files
 
-GO bn_reset
+GO bn_reset bn_cache_hits
 GO bn_cache_hits		! cache hits on unspecified (full) regions
 
-GO bn_reset
+GO bn_reset bn_regrid_to_user
 GO bn_regrid_to_user		! G=user_var and related
 
 ! ******** V53 Additions below ***********
 
-GO bn_reset
+GO bn_reset bn_calendar
 GO bn_calendar
 
-GO bn_reset
+GO bn_reset bn_dash_dot
 GO bn_dash_dot
 
-GO bn_reset
+GO bn_reset bn_flowlines
 GO bn_flowlines
 
 ! ******** V533 Additions below ***********
 
-GO bn_reset
+GO bn_reset bn_logaxes
 GO bn_logaxes
 
 ! *kob* same tests for internal external functions but moved out of
 !       the bn_external_function jnl file.  
-GO bn_reset
+GO bn_reset bn_internal_external_functions
 GO bn_internal_external_functions
 
-GO bn_reset
+GO bn_reset bn_modulo_strides
 GO bn_modulo_strides
 
 ! ******** V54 Additions below ***********
 
-GO bn_reset
+GO bn_reset bn_axis_viewports
 GO bn_axis_viewports
 
-GO bn_reset
+GO bn_reset bn_strings
 GO bn_strings
 
-GO bn_reset
+GO bn_reset bn_axcontrol
 GO bn_axcontrol
 
-GO bn_reset
+GO bn_reset bn_vec_curv
 GO bn_vec_curv
 
-GO bn_reset
+GO bn_reset bn_delimited_read
 GO bn_delimited_read
 
 
 ! ******** V5.41 Additions below ***********
 
-GO bn_reset
+GO bn_reset bn541_bug_fixes
 GO bn541_bug_fixes
 
-GO bn_reset
+GO bn_reset bn_cancel_axes
 GO bn_cancel_axes
 
 ! ******** V5.42 Additions below ***********
 
-GO bn_reset
+GO bn_reset bn542_bug_fixes
 GO bn542_bug_fixes
 
 ! ******** V5.50 Additions below ***********
 
-GO bn_reset
+GO bn_reset bn_subspan_modulo
 GO bn_subspan_modulo
 
-GO bn_reset
+GO bn_reset bn_dots
 GO bn_dots
 
-GO bn_reset
+GO bn_reset bn_lev_symbols
 GO bn_lev_symbols
 
-GO bn_reset
+! GO bn_reset 
 ! GO bench_extrema  ! moved to bn_ef_bench_extrema; tests of shared-obj efs.
 
-GO bn_reset
+GO bn_reset bn_mode_logo_lab
 GO bn_mode_logo_lab
 
-GO bn_reset
+GO bn_reset bn_modulo_attribute
 GO bn_modulo_attribute
 
-GO bn_reset
+GO bn_reset bn550_bug_fixes
 GO bn550_bug_fixes
 
 ! ******** V5.51 Additions below ***********
 
-GO bn_reset
+GO bn_reset bn551_bug_fixes
 GO bn551_bug_fixes
 
 ! ******** V5.52 Additions below ***********
 
 GO bn_multi_line_labels.jnl
 
-GO bn_reset
+GO bn_reset bn552_bug_fixes
 GO bn552_bug_fixes
 
-GO bn_reset
+GO bn_reset bn_set_var_scale_off.jnl
 GO bn_set_var_scale_off.jnl
 
-GO bn_reset
+GO bn_reset bn_longvarnames.jnl
 GO bn_longvarnames.jnl
 
-GO bn_reset
+GO bn_reset bn_shakey.jnl
 GO bn_shakey.jnl
 
-GO bn_reset
+GO bn_reset bn_eof_4d.jnl
 GO bn_eof_4d.jnl
 
-GO bn_reset
+GO bn_reset bn_abstract_axis_names.jnl
 GO bn_abstract_axis_names.jnl
 
-GO bn_reset
+GO bn_reset bn_many_polygons.jnl
 GO bn_many_polygons.jnl
 
-GO bn_reset
+! GO bn_reset
 ! GO bn_zaxr_fcns.jnl ! move to tests of shared-obj efs.
 
-GO bn_reset
+GO bn_reset bn_fill_irregular.jnl
 GO bn_fill_irregular.jnl
 
 ! ******** V5.53 Additions below ***********
-GO bn_reset
+GO bn_reset bn_xml_output.jnl
 GO bn_xml_output.jnl
 
-GO bn_reset
+GO bn_reset bn_test_nan.jnl
 GO bn_test_nan.jnl
 
-GO bn_reset
+GO bn_reset bn553_bug_fixes.jnl
 GO bn553_bug_fixes.jnl
 
 
 ! ******** V5.6Additions below ***********
 
-GO bn_reset
+GO bn_reset bn_graticules.jnl
 GO bn_graticules.jnl
 
-GO bn_reset
+GO bn_reset bn_repeat_range.jnl
 GO bn_repeat_range.jnl
 
-GO bn_reset
+GO bn_reset bn554_bug_fixes.jnl
 GO bn554_bug_fixes.jnl
 
 
 ! ******** V5.7 Additions below ***********
 
-GO bn_reset
+GO bn_reset bn_bounds.jnl
 GO bn_bounds.jnl
 
-GO bn_reset
+GO bn_reset bn_all_leap.jnl
 GO bn_all_leap.jnl
 
-GO bn_reset
+GO bn_reset bn_reset_attributes.jnl
 GO bn_reset_attributes.jnl
 
-GO bn_reset
+GO bn_reset bn570_bug_fixes.jnl
 GO bn570_bug_fixes.jnl
 
 ! ******** V5.8 Additions below ***********
 
-GO bn_reset
+GO bn_reset bn_modstats.jnl
 GO bn_modstats.jnl
 
-GO bn_reset
+GO bn_reset bn_mc_vary_scale.jnl
 GO bn_mc_vary_scale.jnl
 
-GO bn_reset
+GO bn_reset bn_plot_nokey.jnl
 GO bn_plot_nokey.jnl
 
-GO bn_reset
+GO bn_reset bn580_bug_fixes.jnl
 GO bn580_bug_fixes.jnl
 
 ! ******** V5.81 Additions below ***********
-GO bn_reset
+GO bn_reset bn_inf_levels.jnl 
 GO bn_inf_levels.jnl 
 
-GO bn_reset
+GO bn_reset bn_regulart.jnl
 GO bn_regulart.jnl
 
-GO bn_reset
+GO bn_reset bn_labwid.jnl
 GO bn_labwid.jnl
 
-GO bn_reset
+GO bn_reset bn_redefine_taxis_mc.jnl
 GO bn_redefine_taxis_mc.jnl
 
-GO bn_reset
+GO bn_reset bn_illegal_axisname.jnl
 GO bn_illegal_axisname.jnl
 
-GO bn_reset
+GO bn_reset bn_exit_script.jnl
 GO bn_exit_script.jnl
 
-GO bn_reset
+GO bn_reset bn_exit_cycle.jnl
 GO bn_exit_cycle.jnl
 
-GO bn_reset
+GO bn_reset bn_curv_mod.jnl
 GO bn_curv_mod.jnl
 
-GO bn_reset
+GO bn_reset bn_shade_keycont.jnl
 GO bn_shade_keycont.jnl
 
-GO bn_reset
+GO bn_reset bn581_bug_fixes.jnl
 GO bn581_bug_fixes.jnl
 
 ! ******** V6.00 Additions below ***********
-GO bn_reset
+GO bn_reset bn_tab_comma_multivar.jnl
 GO bn_tab_comma_multivar.jnl
 
-GO bn_reset
+GO bn_reset bn_element_functions.jnl
 GO bn_element_functions.jnl
 
-GO bn_reset
+GO bn_reset bn_long_revision_num.jnl
 GO bn_long_revision_num.jnl
 
-GO bn_reset
+GO bn_reset bn_window_title.jnl
 GO bn_window_title.jnl
 
-GO bn_reset
+GO bn_reset bn_last_error.jnl
 GO bn_last_error.jnl
 
-GO bn_reset
+GO bn_reset bn_deg_min.jnl
 GO bn_deg_min.jnl
 
-GO bn_reset
+GO bn_reset bn_dp_readscale.jnl
 GO bn_dp_readscale.jnl
 
-GO bn_reset
+GO bn_reset bn_bounds_defineax.jnl
 GO bn_bounds_defineax.jnl
 
-go bn_reset
+go bn_reset bn_attributes.jnl
 go bn_attributes.jnl
 
 !=======
@@ -525,146 +531,147 @@ go bn_attributes.jnl
 !go bn_reset
 !go bn_nco_functions.jnl
 
-go bn_reset
+go bn_reset bn_transforms.jnl
 go bn_transforms.jnl
 
-go bn_reset
+go bn_reset bn_variance.jnl
 go bn_variance.jnl
 
-go bn_reset
+go bn_reset bn_linecolors.jnl
 go bn_linecolors.jnl
 
-go bn_reset
+go bn_reset bn_cdf_errmsg.jnl
 go bn_cdf_errmsg.jnl
 
-GO bn_reset
+GO bn_reset bn600_bug_fixes.jnl
 GO bn600_bug_fixes.jnl
 
 ! ******** V6.01 Additions below ***********
-GO bn_reset
+GO bn_reset bn601_bug_fixes.jnl
 GO bn601_bug_fixes.jnl
 
 ! ******** V6.02 Additions below ***********
-GO bn_reset
+GO bn_reset bn_set_strides.jnl
 GO bn_set_strides.jnl
 
-GO bn_reset
+GO bn_reset bn_lsl_lowpass.jnl
 GO bn_lsl_lowpass.jnl
 
-GO bn_reset
+GO bn_reset bn_return_xmod_tmod.jnl
 GO bn_return_xmod_tmod.jnl
 
-GO bn_reset
+GO bn_reset bn602_bug_fixes
 GO bn602_bug_fixes
 
 
 ! ******** V6.03 Additions below ***********
-GO bn_reset
+GO bn_reset bn_modnbd.jnl
 GO bn_modnbd.jnl
 
-GO bn_reset
+GO bn_reset bn_fifty_files.jnl
 GO bn_fifty_files.jnl
 
-GO bn_reset
+GO bn_reset bn603_bug_fixes
 GO bn603_bug_fixes
 
 ! ******** V6.05 Additions below ***********
 
-GO bn_reset
+GO bn_reset bn_set_var_name.jnl
 GO bn_set_var_name.jnl
 
-GO bn_reset
+!GO bn_reset 
 ! This routine executes a ppl error which exits us from Ferret
 ! when run in the benchmark suite. Should test this, but dont do it
 ! here, for now.
 !GO bn_ppl_errors.jnl
 
-GO bn_reset
+GO bn_reset bn_memory_symbol
 GO bn_memory_symbol
 
-GO bn_reset
+GO bn_reset bn605_bug_fixes
 GO bn605_bug_fixes
 
-GO bn_reset
+GO bn_reset bn608_bug_fixes
 GO bn608_bug_fixes
 
 
 ! ******** V6.1 Additions below ***********
 
-GO bn_reset
+GO bn_reset bn_shade_trim
 GO bn_shade_trim
 
-GO bn_reset
+GO bn_reset bn_mode_nlevels
 GO bn_mode_nlevels
 
-GO bn_reset
+GO bn_reset bn61_bug_fixes
 GO bn61_bug_fixes
 
 
 ! ******** V6.11 Additions below ***********
-GO bn_reset
+GO bn_reset bn_test_opendap
 GO bn_test_opendap
 
-GO bn_reset
+GO bn_reset bn611_bug_fixes
 GO bn611_bug_fixes
 
 ! ******** V6.13 Additions below ***********
-GO bn_reset
+GO bn_reset bn_no_valid_on_plot
 GO bn_no_valid_on_plot
 
-GO bn_reset
+GO bn_reset bn_median
 GO bn_median
 
-GO bn_reset
+GO bn_reset bn614_bug_fixes
 GO bn614_bug_fixes
 
 ! ******** V6.14 Additions below ***********
-GO bn_reset
+GO bn_reset bn_mode_nodata_lab
 GO bn_mode_nodata_lab
 
-GO bn_reset
+GO bn_reset bn_proleptic_gregorian_calendar
 GO bn_proleptic_gregorian_calendar
 
-GO bn_reset
+GO bn_reset bn_string_ngd_nbd
 GO bn_string_ngd_nbd
 
-GO bn_reset
+GO bn_reset bn_cat_string
 GO bn_cat_string
 
-GO bn_reset
+GO bn_reset bn_sort_strings
 GO bn_sort_strings
 
-GO bn_reset
+GO bn_reset bn_samplexyt
 GO bn_samplexyt
 
-GO bn_reset
+GO bn_reset bn_last_go_file.jnl
 GO bn_last_go_file.jnl
 
-GO bn_reset
+GO bn_reset bn_cancel_upcase_uservar.jnl
 GO bn_cancel_upcase_uservar.jnl
 
-GO bn_reset
+GO bn_reset bn_cdf_keepax.jnl
 GO bn_cdf_keepax.jnl
 
-GO bn_reset
+GO bn_reset bn_keep_axisnames.jnl
 GO bn_keep_axisnames.jnl
 
-GO bn_reset
+GO bn_reset bn_key_label_minmax.jnl
 GO bn_key_label_minmax.jnl
 
 ! ******** V6.2 Additions below ***********
-GO bn_reset
+GO bn_reset bn62_bug_fixes.jnl
 GO bn62_bug_fixes.jnl
 
-GO bn_reset
+GO bn_reset bn_convolve.jnl
 GO bn_convolve.jnl
 
-GO bn_reset
+GO bn_reset bn_tax_tstep.jnl
 GO bn_tax_tstep.jnl
 
-GO bn_reset
+GO bn_reset bn_grads_z.jnl
 GO bn_grads_z.jnl
 
+GO bn_reset bn_clock_syms
 GO bn_clock_syms
 
 
@@ -673,413 +680,467 @@ GO bn_clock_syms
 ! window, not only in window 1, is implemented in v6.3. Not
 ! tested in the benchmarks.
 
-GO bn_reset
+GO bn_reset bn63_bug_fixes.jnl
 GO bn63_bug_fixes.jnl
 
-GO bn_reset
+GO bn_reset bn_axis_reversed_syms
 GO bn_axis_reversed_syms
 
-GO bn_reset
+GO bn_reset bn_isdepth
 GO bn_isdepth
 
-GO bn_reset
+GO bn_reset bn_var_hist_levels.jnl
 GO bn_var_hist_levels.jnl
 
 
 ! ******** V6.4 Additions below ***********
 
-GO bn_reset
+GO bn_reset bn64_bug_fixes
 GO bn64_bug_fixes
 
-GO bn_reset
+GO bn_reset bn_long_grid_names
 GO bn_long_grid_names
 
-GO bn_reset
+GO bn_reset bn_xml_repl
 GO bn_xml_repl
 
 ! ******** V6.5 Additions below ***********
 
-GO bn_reset
+GO bn_reset bn65_bug_fixes
 GO bn65_bug_fixes
 
-GO bn_reset
+GO bn_reset bn_txtype_dmy
 GO bn_txtype_dmy
 
-GO bn_reset
+GO bn_reset bn_n_open_dsets_sym
 GO bn_n_open_dsets_sym
 
-GO bn_reset
+GO bn_reset bn_multi_decade
 GO bn_multi_decade
 
-GO bn_reset
+GO bn_reset bn_show_xml_file
 GO bn_show_xml_file
 
 
-! GO bn_reset
+! GO bn_reset O bn_encode_url
 ! GO bn_encode_url
 
 ! ******** V6.6 Additions below ***********
 
-GO bn_reset
+GO bn_reset bn66_bug_fixes
 GO bn66_bug_fixes
 
-GO bn_reset
+GO bn_reset bn_netcdf4
 GO bn_netcdf4
 
-GO bn_reset
+GO bn_reset bn_scat2grid_bin.jnl
 GO bn_scat2grid_bin.jnl
 
 ! *********** v6.62 Additions ***********
 
-GO bn_reset
+GO bn_reset bn_axis_dir_symbols
 GO bn_axis_dir_symbols
 
 ! *********** v6.63 Additions ***********
 
-GO bn_reset
+GO bn_reset bn663_bug_fixes
 GO bn663_bug_fixes
 
-GO bn_reset
+GO bn_reset bn_set_axis_regular
 GO bn_set_axis_regular
 
-GO bn_reset
+GO bn_reset bn_set_cancel_redirect
 GO bn_set_cancel_redirect
 
-GO bn_reset
+GO bn_reset bn_min_max_smoothers
 GO bn_min_max_smoothers
 
-GO bn_reset
+GO bn_reset bn_vector_symbols
 GO bn_vector_symbols
 
-GO bn_reset
+GO bn_reset bn_variance_large
 GO bn_variance_large
 
-GO bn_reset
+GO bn_reset bn_labnum_calendar
 GO bn_labnum_calendar
 
 
 ! *********** v6.65 Additions ***********
-GO bn_reset
+GO bn_reset bn665_bug_fixes
 GO bn665_bug_fixes
 
-GO bn_reset
+GO bn_reset bn_floatstr
 GO bn_floatstr
 
 ! *********** v6.7 Additions ***********
-GO bn_reset
+GO bn_reset bn67_bug_fixes
 GO bn67_bug_fixes
 
-GO bn_reset
+GO bn_reset bn_NaN_note
 GO bn_NaN_note
 
 ! *********** v6.71 Additions ***********
-GO bn_reset
+GO bn_reset bn671_bug_fixes
 GO bn671_bug_fixes
 
 ! *********** v6.8 Additions ***********
-GO bn_reset
+GO bn_reset bn68_bug_fixes
 GO bn68_bug_fixes
 
-GO bn_reset
+GO bn_reset bn_ifv
 GO bn_ifv
 
-GO bn_reset
+GO bn_reset bn_randu2_randn2
 GO bn_randu2_randn2
 
-GO bn_reset
+GO bn_reset bn_axis_cf
 GO bn_axis_cf
 
-GO bn_reset
+GO bn_reset bn_repeated_coords
 GO bn_repeated_coords
 
-GO bn_reset
+GO bn_reset bn_xml_header
 GO bn_xml_header
 
-GO bn_reset
+GO bn_reset bn_eof_simple
 GO bn_eof_simple
 
-GO bn_reset
+GO bn_reset bn_eof_simple2
 GO bn_eof_simple2
 
 ! 6D tests for Ferret v6.8
 
-GO bn_reset
+GO bn_reset bn_interpolate_6d
 GO bn_interpolate_6d
 
-GO bn_reset
+GO bn_reset bn_regrid_6d
 GO bn_regrid_6d
 
-GO bn_reset
+GO bn_reset bn_syntax_6d
 GO bn_syntax_6d
 
-GO bn_reset
+GO bn_reset bn_expressions_6d
 GO bn_expressions_6d
 
-GO bn_reset
+GO bn_reset bn_direction_fcns_6d
 GO bn_direction_fcns_6d
 
-GO bn_reset
+GO bn_reset bn_regrid_transforms_6d
 GO bn_regrid_transforms_6d
 
-GO bn_reset
+GO bn_reset bn_aggregate_e
 GO bn_aggregate_e
 
-GO bn_reset
+GO bn_reset bn_6d_lab_mode
 GO bn_6d_lab_mode
 
 
 ! *********** v6.82 Additions ***********
-GO bn_reset
+GO bn_reset bn682_bug_fixes
 GO bn682_bug_fixes
 
 ! *********** v6.83 Additions ***********
 !  (was released as v6.84)
 
-GO bn_reset
+GO bn_reset bn683_bug_fixes
 GO bn683_bug_fixes
 
-GO bn_reset
+GO bn_reset bn_outtype
 GO bn_outtype
 
-GO bn_reset
+GO bn_reset bn_ribbon_plot
 GO bn_ribbon_plot
 
-GO bn_reset
+GO bn_reset bn_descr_4digit
 GO bn_descr_4digit
 
-GO bn_reset
+GO bn_reset bn_axis_outtype
 GO bn_axis_outtype
 
-GO bn_reset
+GO bn_reset bn_axis_nonmonotonic
 GO bn_axis_nonmonotonic
 
-GO bn_reset
+GO bn_reset bn_vec_mod
 GO bn_vec_mod
 
 ! *********** v6.85 Additions ***********
-GO bn_reset
+GO bn_reset bn685_bug_fixes
 GO bn685_bug_fixes
 
-GO bn_reset
+GO bn_reset bn_dsg_e_x
 GO bn_dsg_e_x
 
-GO bn_reset
+GO bn_reset bn_nco_append
 GO bn_nco_append
 
-GO bn_reset
+GO bn_reset bn_nobounds
 GO bn_nobounds
 
-GO bn_reset
+GO bn_reset bn_write_integer_att
 GO bn_write_integer_att
 
-GO bn_reset
+GO bn_reset bn_descriptor_mc
 GO bn_descriptor_mc
 
-GO bn_reset
+GO bn_reset bn_plot_color_only
 GO bn_plot_color_only
 
-GO bn_reset
+GO bn_reset bn_vtree
 GO bn_vtree
 
 
 ! *********** v6.86 Additions ***********
-GO bn_reset
+GO bn_reset bn686_bug_fixes
 GO bn686_bug_fixes
 
-GO bn_reset
+GO bn_reset bn_long_symnames
 GO bn_long_symnames
 
-GO bn_reset
+GO bn_reset bn_strdim
 GO bn_strdim
 
-GO bn_reset
+GO bn_reset bn_single_colorlev
 GO bn_single_colorlev
 
 
 ! *********** v6.9 Additions ***********
-GO bn_reset
+GO bn_reset bn69_bug_fixes
 GO bn69_bug_fixes
 
-GO bn_reset
+GO bn_reset bn_bad_axis_bounds
 GO bn_bad_axis_bounds
 
-GO bn_reset
+GO bn_reset bn_enter_exit_GO
 GO bn_enter_exit_GO
 
-GO bn_reset
+GO bn_reset bn_stddev
 GO bn_stddev
 
-GO bn_reset
+GO bn_reset bn_set_axis_name
 GO bn_set_axis_name
 
-GO bn_reset
+GO bn_reset bn_let_remote
 GO bn_let_remote
 
 ! *********** v6.93 Additions ***********
-GO bn_reset
+GO bn_reset bn691_bug_fixes
 GO bn691_bug_fixes
 
-GO bn_reset
+GO bn_reset bn_append_dsg
 GO bn_append_dsg
 
-GO bn_reset
+GO bn_reset bn_global_atts
 GO bn_global_atts
 
-GO bn_reset
+GO bn_reset bn_conventions_history
 GO bn_conventions_history
 
-GO bn_reset
+GO bn_reset bn_center_key_labels
 GO bn_center_key_labels
 
-GO bn_reset
+GO bn_reset bn_wgt_transform
 GO bn_wgt_transform
 
-GO bn_reset
+GO bn_reset bn_show_outfile
 GO bn_show_outfile
 
-GO bn_reset
+GO bn_reset bn_date1900_array
 GO bn_date1900_array
 
-GO bn_reset
+GO bn_reset bn_spawn_size
 GO bn_spawn_size
 
-GO bn_reset
+GO bn_reset bn_polygon_log
 GO bn_polygon_log
 
 ! *********** v6.94Additions ***********
 
-GO bn_reset
+GO bn_reset bn694_bug_fixes
 GO bn694_bug_fixes
 
-GO bn_reset
+GO bn_reset bn_permute_ascii
 GO bn_permute_ascii
 
-GO bn_reset
+GO bn_reset bn_lon_lat_time_string
 GO bn_lon_lat_time_string
 
-GO bn_reset
+GO bn_reset bn_save_justdim
 GO bn_save_justdim
 
-GO bn_reset
+GO bn_reset bn_time2d
 GO bn_time2d
 
-GO bn_reset
+GO bn_reset bn_legend_labels
 GO bn_legend_labels
 
-GO bn_reset
+GO bn_reset bn_DQ
 GO bn_DQ
 
 ! *********** v6.95Additions ***********
 
-GO bn_reset
+GO bn_reset bn695_bug_fixes
 GO bn695_bug_fixes
 
-GO bn_reset
+GO bn_reset bn_f_tax_fcns
 GO bn_f_tax_fcns
 
-GO bn_reset
+GO bn_reset bn_fmrc
 GO bn_fmrc
 
-GO bn_reset
+GO bn_reset bn_return_defined
 GO bn_return_defined
 
-GO bn_reset
+GO bn_reset bn_can_var_noerr
 GO bn_can_var_noerr
 
-GO bn_reset
+GO bn_reset bn_annotate
 GO bn_annotate
 
-GO bn_reset
+GO bn_reset bn_auxiliary
 GO bn_auxiliary
 
-GO bn_reset
+GO bn_reset bn_plot_ribbon_gaploc
 GO bn_plot_ribbon_gaploc
 
-GO bn_reset
+GO bn_reset bn_time_short_axes
 GO bn_time_short_axes
 
-GO bn_reset
+GO bn_reset bn_floatstr_extended
 GO bn_floatstr_extended
 
 ! *********** v6.96 Additions ***********
 
-GO bn_reset
+GO bn_reset bn696_bug_fixes
 GO bn696_bug_fixes
 
-GO bn_reset
+GO bn_reset bn_bin_regrid
 GO bn_bin_regrid
 
 ! *********** v6.97 Additions ***********
+!            (released as V7.0)
 
-GO bn_reset
+GO bn_reset bn697_bug_fixes
 GO bn697_bug_fixes
 
-GO bn_reset
+GO bn_reset bn_aggregate_t
 GO bn_aggregate_t
 
-GO bn_reset
+GO bn_reset bn_unquoted_args
 GO bn_unquoted_args
 
-GO bn_reset
+GO bn_reset bn_long_lists
 GO bn_long_lists
 
-GO bn_reset
+GO bn_reset bn_show_uvar_grid
 GO bn_show_uvar_grid
 
-GO bn_reset
+GO bn_reset bn_aggregate_f
 GO bn_aggregate_f
 
-GO bn_reset
+GO bn_reset bn_aggregate_tef
 GO bn_aggregate_tef
 
-GO bn_reset
+!GO bn_reset
 ! Add this to the gif benchmark tests
 ! GO bn_hovmuller_overlays
 
-GO bn_reset
+!GO bn_reset
 ! Add this to the gif benchmark tests
 ! GO bn_labels_on_taxis
 
-GO bn_reset
+GO bn_reset bn_dataset_qualifier
 GO bn_dataset_qualifier
 
-GO bn_reset
+GO bn_reset bn_speedtest
 GO bn_speedtest
 
-GO bn_reset
+GO bn_reset bn_show_noupcase
 GO bn_show_noupcase
 
-GO bn_reset
+GO bn_reset bn_letd_attributes
 GO bn_letd_attributes
 
-GO bn_reset
+GO bn_reset bn_list_clim_axes
 GO bn_list_clim_axes
 
-GO bn_reset
+GO bn_reset bn_climatology_attr
 GO bn_climatology_attr
 
-GO bn_reset
+GO bn_reset bn_plot_along
 GO bn_plot_along
 
-GO bn_reset
+GO bn_reset bn_show_commands
 GO bn_show_commands
 
-GO bn_reset
+GO bn_reset bn_plot_decimate
 GO bn_plot_decimate
 
-GO bn_reset
+GO bn_reset bn_auto_tprec
 GO bn_auto_tprec
 
 !GO bn_reset
 !GO bn_warn_subspan
 
-GO bn_reset
+GO bn_reset bn_coordvars_atts
 GO bn_coordvars_atts
 
+
+! *********** v7.1 Additions ***********
+
+GO bn_reset bn710_bug_fixes
+GO bn710_bug_fixes
+
+GO bn_reset bn_delim_datetime
+GO bn_delim_datetime
+
+GO bn_reset bn_aggregate_u
+GO bn_aggregate_u
+
+GO bn_reset bn_ez_noupcase
+GO bn_ez_noupcase
+
+GO bn_reset bn_spawn_fail
+GO bn_spawn_fail
+
+GO bn_reset bn_ave_of_ave
+GO bn_ave_of_ave
+
+GO bn_reset bn_agg_member_syntax
+GO bn_agg_member_syntax
+
+GO bn_reset bn_true_monthly
+GO bn_true_monthly
+
+
+! *********** v7.2 Additions ***********
+
+GO bn_reset bn720_bug_fixes
+GO bn720_bug_fixes
+
+GO bn_reset bn_compressed_gather
+GO bn_compressed_gather
+
+GO bn_reset bn_dynamic_gather
+GO bn_dynamic_gather
+
+GO bn_reset bn_stat_precision
+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_cache_management
+GO bn_cache_management
+
+GO bn_reset bn_transp_choose
+GO bn_transp_choose
+
 !  *********** Always do a bn_reset  *********** 
 !  *********** make sure things clean up well **
 GO bn_reset
 
 ! version 2.3 requires exit/command *sh* 3/92
 exit/command
-
diff --git a/bench/bn_all_ef.jnl b/bench/bn_all_ef.jnl
index fda710d..8d3734f 100644
--- a/bench/bn_all_ef.jnl
+++ b/bench/bn_all_ef.jnl
@@ -1,14 +1,11 @@
 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
 
 GO bn_reset
 GO bn_ef_external_functions.jnl
 
-GO bn_reset
-GO bn_ef_v5d_strings.jnl
-
 go bn_reset
 go bn_fcn_calls.jnl
 
diff --git a/bench/bn_attributes.jnl b/bench/bn_attributes.jnl
index 2e057d8..b14c00e 100644
--- a/bench/bn_attributes.jnl
+++ b/bench/bn_attributes.jnl
@@ -6,6 +6,7 @@
 ! 31Aug2006 ACM Remove OPeNDAP references; not essential to the 
 ! benchmark tests.
 
+! small addition below 1/17 *sh*
 
 !-----
 
@@ -1012,3 +1013,8 @@ sho att temp[d=2]
 sho att (`temp[d=1],return=taxis`[d=1])
 
 sho att .
+
+! 1/17 *sh*
+! added a test of shifting attributes in is_attrib_val.F
+define att temp.test_counter = {1, 2, 3, 4, 5}
+list temp.test_counter[i=3:5]
diff --git a/bench/bn_auto_tprec.jnl b/bench/bn_auto_tprec.jnl
index f4351c7..136089a 100644
--- a/bench/bn_auto_tprec.jnl
+++ b/bench/bn_auto_tprec.jnl
@@ -3,6 +3,7 @@
 ! 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.
 ! (later make this the default setting??)
+! acm* 3/17 check the URL with TEST_OPENDAP befor trying to open it.
 
 set mode calendar:auto
 show mode calendar
@@ -32,7 +33,10 @@ list/k=1/x=60/y=-40/L=1:6 ttim
 shade/title="hours "/l=3/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
 
 ! Reynolds SST weekly, even 7-day spacing
-use http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc
+
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc") NE 0` THEN EXIT/SCRIPT
+
+use http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc
 list/x=180/y=0/l=20:25 fsst
 shade/title="7-day axis"/l=30/x=60:70/y=-40:-30 fsst; sh sym  lab($labnum_t)
 
diff --git a/bench/bn_ave_of_ave.jnl b/bench/bn_ave_of_ave.jnl
new file mode 100644
index 0000000..eec3313
--- /dev/null
+++ b/bench/bn_ave_of_ave.jnl
@@ -0,0 +1,34 @@
+! bn_ave_of_ave.jnl
+! see ticket 2469
+
+let a = x[gx=1:3:1] + t[gt=1:7:1]
+let a_xav = a[x=@ave]
+let a_dev = a - a_xav
+
+list a_dev[x=@ave]
+
+! Previously this was an error
+list a[x=@ave] - a_xav[x=@ave]
+
+! Combine with functions, regridding
+let a = x[gx=1:3:1] + t[gt=1:7:1]
+let a_xav = a[x=@ave]
+let a_xav_xav = a_xav[x=@ave]
+let b = samplel(a_xav_xav, l[gl=1:3:1])
+let c = b[gt=1:3:1]
+
+! Previously an error
+list c
+
+! Likewise for @SUM, @MIN, @MAX.
+
+let a = TSEQUENCE({1,2,3})
+let a_xtrns = a[t=@SUM]
+list a[t=@SUM] - a_xtrns[t=@SUM]
+
+let a_xtrns = a[t=@MIN]
+list a[t=@MIN] - a_xtrns[t=@MIN]
+
+let a_xtrns = a[t=@MAX]
+list a[t=@MAX] - a_xtrns[t=@MAX]
+
diff --git a/bench/bn_cache_management.jnl b/bench/bn_cache_management.jnl
new file mode 100644
index 0000000..957ecb8
--- /dev/null
+++ b/bench/bn_cache_management.jnl
@@ -0,0 +1,130 @@
+! 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)
+
+! 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.
+! It is supposed to chose the cached result that has not been used for the
+! longest time, AND that is not being "protected" because it is needed in a
+! pending calculation.  This script is intended to exercise that behavior.
+
+! Memory footprint needed:
+! Each dataset contains 7 variables of 1 Mword each
+! VTREE reveals that the "result" variable requires 78 intermediate variables
+! of size 1Mword (plus 7 small ones)
+! Of these only 12 variables needed in the top level "result" sum calculation
+! Each of the top level variables in turn requires ?25? component variables
+! But the top level variables need these components only in sequence. 
+! So if no split-gather is performed, Ferret requires ~12+25=37 Mwords 
+
+DEFINE SYMBOL saved_memory_size = ($FERRET_MEMORY)
+
+SET MEMORY/SIZE=20
+CANCEL MEMORY/ALL
+
+DEFINE SYMBOL nsets = 20
+
+define axis/x=1:1000000:1 xmillion
+
+! aside: to demonstrate lmitations of ferret memory management prior to
+! dynamic memory, use
+!     yes? set memory/size=37
+!     yes? GO test_auto_cache_delete 0 20
+
+! 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
+ say test files already exist.  not re-creating them
+ELSE
+!**************************************
+ say creating test files
+ cancel mode verify
+! define axis/x=1:1000:1 x10
+! define axis/y=1:1000:1 y10
+ define axis/x=1:100:1 x10
+ define axis/y=1:100:1 y10
+ let shape = 0*(X[gx=x10]+Y[gy=y10])
+ let one      = 1 + shape
+ let ten      = 10 + shape
+ let hundred  = 100 + shape
+ let thousand = 1000 + shape
+ let tenthou  = 10000 + shape
+ let hundthou = 100000 + shape
+ let million  = 1000000 + shape
+  
+ REPEAT/k=1:($nsets)  \
+ save/file="tmp/test_auto_cache_`k`.nc"/clobber one, ten, hundred, thousand, tenthou, hundthou, million
+ cancel var/all
+ set mode/last verify
+!**************************************
+ENDIF
+
+! open the many input datasets
+REPEAT/k=1:($nsets)  USE tmp/test_auto_cache_`k`.nc
+
+! define a huge tree of variables
+let  r_one      = RESHAPE(one,X[gx=xmillion])
+let  r_ten      = RESHAPE(ten,X[gx=xmillion])
+let  r_hundred  = RESHAPE(hundred,X[gx=xmillion])
+let  r_thousand = RESHAPE(thousand,X[gx=xmillion])
+let  r_tenthou  = RESHAPE(tenthou,X[gx=xmillion])
+let  r_hundthou = RESHAPE(hundthou,X[gx=xmillion])
+let  r_million  = RESHAPE(million,X[gx=xmillion])
+
+let a_one     = r_one[X=@ave]
+let a_ten     = r_ten[X=@ave]
+let a_hundred = r_hundred[X=@ave]
+let a_thousand= r_thousand[X=@ave]
+let a_tenthou = r_tenthou[X=@ave]
+let a_hundthou= r_hundthou[X=@ave]
+let a_million = r_million[X=@ave]
+
+let one_2      = a_one
+let ten_2      = a_ten
+let hundred_2  = a_hundred 
+let thousand_2 = a_thousand
+let tenthou_2  = a_tenthou 
+let hundthou_2 = a_hundthou 
+let million_2  = a_million
+
+let one_3      = a_one
+let ten_3      = a_ten
+let hundred_3  = a_hundred 
+let thousand_3 = a_thousand
+let tenthou_3  = a_tenthou 
+let hundthou_3 = a_hundthou 
+let million_3  = a_million
+
+let result_31 = \
+one_3 + ten_3 + hundred_3 + thousand_3 + tenthou_3 + hundthou_3 + million_3
+
+let result_21 = \
+one_2 + ten_2 + hundred_2 + thousand_2 + tenthou_2 + hundthou_2 + million_2
+
+let result_32 = \
+one_3 + ten_3 + hundred_3 + thousand_3 + tenthou_3 + hundthou_3 + million_3
+
+let result_22 = \
+one_2 + ten_2 + hundred_2 + thousand_2 + tenthou_2 + hundthou_2 + million_2
+
+let result = result_31 + result_21 + result_32 + result_22 + \
+a_one + a_ten + a_hundred + a_thousand + a_tenthou + a_hundthou + a_million
+
+! process all of the datasets in turn
+! ==> WATCH HOW THE NUMBER OF FREE SLOTS IS PROGRESSIVELY EXHAUSTED
+! This proves that we are exercising the limits of table space
+sp rm -f test_auto_cache.out
+REPEAT/k=1:($nsets)  \
+(list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_`k`.nc];\
+SHOW MEMORY/DIAG)
+
+! success
+vtree result
+! show that the calculation result never varied
+spawn cat test_auto_cache.out
+
+! clean up
+SET MEMORY/SIZE=($saved_memory_size)
diff --git a/bench/bn_cdf_errmsg.jnl b/bench/bn_cdf_errmsg.jnl
index 4928ae0..18ba447 100644
--- a/bench/bn_cdf_errmsg.jnl
+++ b/bench/bn_cdf_errmsg.jnl
@@ -21,10 +21,13 @@ use this_is_not_a_file.nc
 !!use "http://iridl.ldeo.columbia.edu/SOURCES/.FSU/.FULL/.tauyyyyy/dods"
 
 ! This is a valid address
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_air.cdf"
+use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_air.cdf"
+
+
+! Intentional errors
 
 ! change the variable name to something nonexistent
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
+use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
 
 ! bad server
 use  "http://noserver/a/nofile.cdf"
diff --git a/bench/bn_climatology_attr.jnl b/bench/bn_climatology_attr.jnl
index 4087aad..4ccd6ba 100644
--- a/bench/bn_climatology_attr.jnl
+++ b/bench/bn_climatology_attr.jnl
@@ -56,3 +56,19 @@ can dat/all; use a.nc
 can dat/all; use a.nc
 list/nohead/norow c.climatology_time_range
 
+
+! The attribute created only for user-defined variables not for an expression
+! 
+! Define a monthly axis
+define axis/t=1-feb-1980:1-feb-2003/npoints=276/unit="day"/t0=1-jan-1900 tax
+
+let tvar = t[gt=tax]
+let clim1 = tvar[gt=month_irreg at mod]
+save/nobounds/file=a.nc/clobber 3*clim1
+
+can dat/all; use a.nc
+
+! The variable did not get a climatology_time_range attribute
+let vname = ..varnames
+show att `vname[i=1]`
+
diff --git a/bench/bn_compressed_gather.jnl b/bench/bn_compressed_gather.jnl
new file mode 100644
index 0000000..775ae55
--- /dev/null
+++ b/bench/bn_compressed_gather.jnl
@@ -0,0 +1,217 @@
+! bn_compressed_gather.jnl
+! 11/2016 (for trac #2428 enhancement)
+! updated 3/17 for dynamic memory and using SHOW MEM/DIAG
+
+! force a split/gather operation due to a T=@ave
+
+! in previous versions of Ferret the split could not occur on the transformed
+! axis, so the X axis would have been used.  Here the T=@ave axis will be used 
+
+! Give us something to look at while we run these tests which dont make plots
+plot/noax/nolab/vlim=0:1/i=4:5 i
+annotate/norm/x=0/y=0.5 "@AC... running bn_compressed_gather"
+
+! ******* tests of  T=@DIN and T=@ave ******
+define axis/x=1:1001:1 xax
+define axis/y=1:10:1 yax
+define axis/T=1:1000:1 tax
+
+let xt = (x[gx=xax]-501) + 0*y[gy=yax] + T[gt=tax]
+
+* note: SUM of integers 1 to 1000 = N(N+1)/2 ==> 500500
+*       stat average of (x[gx=xax]-501) is zero
+*       so the full 2D stat mean should be 500500
+
+! there are 10*1000*1001 points in the full grid => ~10M
+! given the necessary cautions (see IS_STRIP and MODE FRUGAL),
+! a size of 12 for sure requires a gather operation
+! confirm gathering is occuring by looking at the diagnostic output
+
+!set mode desperate: 400000
+SET MEMORY/SIZE=12
+
+stat xt[l=@din] 
+SHOW MEMORY/DIAGNOSTIC   ! look at peak memory usage
+
+! many variations on this test
+! note that in the first case peak memory will show as ZERO.
+! The first SET MEMORY command resets the peak memory to zero, and
+! then the expression "xt[l=@din]" gets found without re-computation
+! having been computed just above
+GO bn_compressed_gather.sub xt[l=@din] 40 12
+
+! altered limits syntax
+GO bn_compressed_gather.sub xt[l=1:1000 at din] 40 12
+
+! test T=@AVE
+GO bn_compressed_gather.sub xt[l=@ave]  40 12
+
+! various partial grid points at end
+GO bn_compressed_gather.sub xt[T=@ave]  40 12
+GO bn_compressed_gather.sub xt[T=0.5:1000.5 at ave]  40 12
+GO bn_compressed_gather.sub xt[T=0.6:1000.4 at ave]  40 12
+GO bn_compressed_gather.sub xt[T=1:1000 at ave]  40 12
+GO bn_compressed_gather.sub xt[T=1.2:999.8 at ave] 40 12
+
+! *********************************************************
+! ******* tests of "4D" @DIN and @ave ******
+define axis/x=1:200:1 xax
+define axis/y=1:200:1 yax
+define axis/z=1:200:1 zax
+define axis/T=1:2:1  tax
+let xyz  = 0*X[gx=xax] + 0*Y[gy=yax] + Z[gz=zax]
+let xyzt = 0*X[gx=xax] + 0*Y[gy=yax] + Z[gz=zax] + 0*T[gt=tax]
+
+* note: SUM of Z is N*(N+1)/2 = 20100
+* area integral in XY is 200*200=40,000
+* total integral is 804,000,000 (8.04*E8)
+
+* 3D XYZ test
+* 2d slice size = 200*200 = 40,000
+* 3d full size is 8,000,000  - so 10,000,000 is bigger
+ 
+! confirm gathering is occuring by looking at the diagnostic output
+cancel memory/all
+!set mode desp: 2000000  
+set memory/size = 2  ! 2M v 8M: requires split/gather
+! will split into 4 pieces (1/4 of 8,000,000 fits into 2,000,000)
+! so z=1:50; then =51:100, Z=101:150, Z=151:200
+stat xyz[x=@din,y=@din,z=@din]
+SHOW MEMORY/DIAGNOSTIC   ! look at peak memory usage
+
+! the clean version of same test
+GO bn_compressed_gather.sub xyz[x=@din,y=@din,z=@din] 20 2
+
+! also do the average, which will provide a comparison result for the test
+! that follows
+! average along Z is 100.5
+GO bn_compressed_gather.sub xyz[x=@ave,y=@ave,z=@ave] 20 2
+
+! Since the T axis has only 2 points, the arithmetic above shows that the
+! chunks to be gathered will still be too large after splitting on T, which
+! in theory would trigger further splitting along Z.  However, there is only
+! one opportunity to process compressed axis splitting -- in IS_STRIP
+! at the time that it is stripping off the compressed transformation.  But
+! a "4D" transform is stripped in a single operation. We choose an axis that
+! is long enough to break into sufficiently small fragments
+set memory/size = 6  ! 16M points in grid, 8M in each T-chunk 
+stat xyzt[x=@ave,y=@ave,z=@ave,t=@ave]
+show mem/diagnostic
+
+! test splitting along 2 axes in succession by making T=@AVE into a separate
+! averaging operation
+CANCEL MEMORY/ALL
+LET xyzave = xyzt[x=@ave,y=@ave,z=@ave]
+!set mode desp: 2000000  
+set memory/size = 6  ! 2M v 8M: requires split/gather
+stat xyzave[t=@ave]
+SHOW MEMORY/DIAGNOSTIC   ! look at peak memory usage
+
+! *********************************************************
+! ******* tests of T= @var and @std ******
+! the @var and @std transformation had to be switched to
+! a single pass algorithm in order to implement split/gather
+define axis/x=1:10000:1 xax
+define axis/T=1:1001:1 tax
+
+let xt = 0*x[gx=xax] + T[gt=tax]
+let constant = 0*X[gx=xax] + 0*T[gt=tax] + 1234
+let xt_zero_mean = 0*X[gx=xax] + (T[gt=tax]-501) + 1234
+
+* note: sum of a sequence 1 to N of square integers is [N*(N+1)*(2N+1)]/6
+* T-501 is 2 sequences: -500 to 1 and 1 to 500, therefore sum is 
+* 2 * [500*501*1001]/6 = 83583500
+* mean of this sequence is 83583500/1001 = 83500
+* ==> look for this as the correct answer to variance
+
+! confirm gathering is occuring by looking at the diagnostic output
+!set mode desperate: 400000
+set memory/size= 12
+stat constant[l=@var] 
+SHOW MEMORY/DIAGNOSTIC   ! look at peak memory usage
+
+! clean test
+cancel memory/all
+GO bn_compressed_gather.sub constant[l=@var] 40 12
+
+! known result
+GO bn_compressed_gather.sub xt_zero_mean[l=@var] 40 12
+
+! adding a constant doesn't effect the variance
+GO bn_compressed_gather.sub xt[l=@var] 40 12
+
+! same test, but  on @std (only one line of code difference so limited test)
+* square root of 83500 is 288.96366553599779.
+* Note: previous Ferret versions gave a consistent value
+*  Minimum value: 288.9636655359978
+*  Maximum value: 288.9636655359978
+*  Mean    value: 288.9636655359978
+* Now (11/16) we are getting slight variations in the 16th decimal (see"6")
+*  Minimum value: 288.9636655359978
+*  Maximum value: 288.9636655359978
+*  Mean    value: 288.9636655359976
+* *sh* @std differs from @var only by taking a SQRT() in the finalization step.
+*      I suspect this is an artifact of the compiler optimization level
+GO bn_compressed_gather.sub xt[l=@std] 4000000 400000
+
+
+! *********************************************************
+! ******* tests of "4D" @var and @std ******
+! the @var and @srd transformation had to be switched to
+! a single pass algorithm in order to implement split/gather
+define axis/x=1:200:1 xax
+define axis/y=1:200:1 yax
+define axis/z=1:201:1 zax
+define axis/T=1:200:1 tax
+! adding a constant doesn't effect variance
+let constant = 0*X[gx=xax] + 0*Y[gy=yax] + 0*Z[gz=zax] + 1234
+let xyz = 0*X[gx=xax] + 0*Y[gy=yax] + Z[gz=zax] + 1
+let xyz_zero_mean = 0*X[gx=xax] + 0*Y[gy=yax] + (Z[gz=zax]-101)
+
+* note: sum of a sequence 1 to N of square integers is [N*(N+1)*(2N+1)]/6
+* Z-101 is 2 sequences: -100 to -1 and 1 to 100, therefore sum is 
+* 2 * [100*101*201]/6 = 676700
+* so the average is 676700/201 = 3366.666666 ...
+* At every XY point we have the identical sequence in Z, so the variance is
+* the same as the single Z sequence
+
+* 3D XYZ test
+* 2d slice size = 200*200 = 40,000
+* 3d full size is 8,000,000  - so 10,000,000 is bigger
+cancel memory/all
+!set mode desp: 2000000  
+set memory/size = 2  ! 2M v 8M: requires split/gather
+! will split into 4 pieces (1/4 of 8,000,000 fits into 2,000,000)
+! so z=1:50; then =51:100, Z=101:150, Z=151:200
+LIST/PREC=12 constant[x=@var,y=@var,z=@var]
+
+! variance of a constant is zero
+GO bn_compressed_gather.sub constant[x=@var,y=@var,z=@var] 20 2
+
+! confirm that we get the result computed above
+GO bn_compressed_gather.sub xyz_zero_mean[x=@var,y=@var,z=@var]  20 2
+LIST/PREC=12 xyz_zero_mean[x=@var,y=@var,z=@var]
+
+! confirm that adding a constant does not change the result
+GO bn_compressed_gather.sub xyz[x=@var,y=@var,z=@var]  20 2
+LIST/PREC=12 xyz[x=@var,y=@var,z=@var]
+
+CANCEL MEMORY/ALL  ! IF PRESENT THIS PREVENTS THE MEMORY CORRUPTION
+! confirm the @std gives the square root of the variance
+! SQRT(676700/201) = 58.022983951764034269074805569046
+GO bn_compressed_gather.sub xyz[x=@std,y=@std,z=@std]  20 2
+LIST/PREC=12 xyz[x=@std,y=@std,z=@std]
+
+
+! add more tests here
+! the highest liklihood of problem is in the formulation of "the next chunk"
+! when IS_TRANS requests the next piece to be gathered
+! ... variations on inner and outer limits
+!     (i.e. averaging an expression with limits embedded inside of it
+!      where the averaging limits may or may not match the inner limits)
+! ... file variable, vs user variables
+! ... embedded functions, especially grid-changing functions
+!
+! ... test irregular axes (unequal weighting) and see how significant are
+!     the changes in results from old Ferret (particularly on @var)
+
diff --git a/bench/bn_compressed_gather.sub b/bench/bn_compressed_gather.sub
new file mode 100644
index 0000000..14cb8a4
--- /dev/null
+++ b/bench/bn_compressed_gather.sub
@@ -0,0 +1,42 @@
+\ cancel mode verify
+! bn_compressed_gather.sub
+! updated 3/17 for new dynamic memory "set memory" controls
+
+! test whether a compressed gather gets consistent results with
+! its uncompressed equivalent
+
+!  the two *_size arguments below refer to the mode desperate limit size
+
+! GO bn_compressed_gather expression_to_test  no_gather_size do_gather_size
+
+! test without gathering and save the result
+set memory/size=$2    ! big: no need to split/gather
+stat/brief $1
+show memory
+
+! save results
+DEFINE SYMBOL no_gather_stat_min  = ($STAT_MIN)
+DEFINE SYMBOL no_gather_stat_max  = ($STAT_MAX)
+DEFINE SYMBOL no_gather_stat_mean = ($STAT_MEAN)
+
+! test again -- this time with split/gather being used
+cancel memory/all
+set memory/size=$3   ! small
+
+! will split into pieces of size le 400,000 = 400*1000
+! so X=1:400; then X=401:800, then X=801:1000x[gx=xax]-500
+stat/brief $1
+show memory
+
+! report a problem?
+LET problem = (($no_gather_stat_min)  NE ($STAT_MIN)) \
+           OR (($no_gather_stat_max)  NE ($STAT_MAX)) \
+           OR (($no_gather_stat_mean) NE ($STAT_MEAN))
+
+IF `problem` THEN
+    SAY "***** ERROR PERFORMING COMPRESSED GATHER on expression ($1)"
+ELSE
+    SAY "COMPRESSED GATHER success on expression ($1)"
+ENDIF
+
+set mode verify/last
diff --git a/bench/bn_contourcolor.jnl b/bench/bn_contourcolor.jnl
index a8e642c..a1d53ae 100644
--- a/bench/bn_contourcolor.jnl
+++ b/bench/bn_contourcolor.jnl
@@ -1,8 +1,8 @@
 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=tahoma
-contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/color=green/title="CONTOUR TAHOMA GREEN"  10*sin(i/3)*cos(j/4)
+set text /font=lucida
+contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/color=green/title="CONTOUR LUCIDA GREEN"  10*sin(i/3)*cos(j/4)
 frame /file=contourcolor_green.pdf
-contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/color=(60,20,30)/title="CONTOUR TAHOMA (60,20,30)"  10*sin(i/3)*cos(j/4)
+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
diff --git a/bench/bn_define_axes.jnl b/bench/bn_define_axes.jnl
index d385905..560ed1e 100644
--- a/bench/bn_define_axes.jnl
+++ b/bench/bn_define_axes.jnl
@@ -1,6 +1,8 @@
 ! bn_define_axes.jnl
 ! *sh* 5/99
-! *sh* 12/99 - with streamlined syntax
+! *sh* 12/99 -  with streamlined syntax
+! *acm* 12/16 - change to a comment only
+! 1/2017 *acm* changes in output due to backing off auto-detection of truemonth axes, tkt 2497
 
 ! exercise the DEFINE AXIS command
 
@@ -61,6 +63,10 @@ define axis/t/from_data/name=tax/unit=days/t0=1-jan-1990/edges {1,2,5}
 show axis/t tax
 
 ! real monthly calendar
+! (Note: when running pre-true-month Ferret versions, the timestep output from 
+! show axis/l below was eliminated by the "clean_draconian" script)
+! 1/17/2017 changes due to backing off auto-detection of truemonth axes, tkt 2497
+
 let month = MOD(l-1,12)+1
 let add_year = INT((l-1)/12)
 let tstep = DAYS1900(1980+add_year,month,1)
diff --git a/bench/bn_delim_datetime.jnl b/bench/bn_delim_datetime.jnl
new file mode 100644
index 0000000..3d54877
--- /dev/null
+++ b/bench/bn_delim_datetime.jnl
@@ -0,0 +1,72 @@
+! bn_delim_datetime.jnl
+! ACM 7/2016
+!
+! Tickets 2448, 2449, 2450: Improvements to date reading in delimited files.
+! New: date/time fields for US and European style dates.
+! Also report incorrect date/time spec (causes months out of range)
+! and put 2-digit years prior to 50 in the 21st century. (prev. cutoff was year 20)
+! 
+
+! File contains index,euro-date-time, us-date-time, us-date, eurodate
+! The years in variables 3 and 4 are 2-digit years after year 2020.
+
+! Ticket 2472: Allow yyyy/dd/mm in any of the date specs. 
+
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,datime,date,eurodate" delim_datetime.csv
+sh dat
+list index,edtim,udtim,udate,edate
+
+! axis January 2014
+define axis/t/t0=1-jan-1900/units=days timax = edtim
+sh axis/t timax
+
+! time axis in 1991
+define axis/t/t0=1-jan-1900/units=days timax = edate
+sh axis/t timax
+
+! time axis in 2020 - 2024
+define axis/t/t0=1-jan-1900/units=days timax = udtim
+sh axis/t timax
+
+! time axis in 1995 - 2035
+define axis/t/t0=1-jan-1900/units=days timax = udate
+sh axis/t timax
+
+! Dates of yyyy/dd/mm
+! Dates with 00/00/00 return missing-data
+
+columns/skip=2/var="index,udate,udtim"/type="num,date,datime" delim_yyyy.csv
+sh dat
+list/prec=10 index,udate,udtim
+
+! axis January 2014
+define axis/t/t0=1-jan-1900/units=days timax = udate[i=1:4]
+sh axis/t timax
+! axis December 2001
+define axis/t/t0=1-jan-1900/units=days timax = udtim
+sh axis/t timax
+
+
+! Intentional errors, specifying the wrong date field type (catches the first error)
+! The error is found upon reading the file.
+
+set mode ignore
+can dat/all
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,datime,datime,date,date" delim_datetime.csv
+list index,edtim,udtim,udate,edate
+
+can dat/all
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,edatime,date,eurodate" delim_datetime.csv
+list index,edtim,udtim,udate,edate
+
+can dat/all
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,datime,eurodate,date" delim_datetime.csv
+list index,edtim,udtim,udate,edate
+
+can dat/all
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,datime,date,date" delim_datetime.csv
+list index,edtim,udtim,udate,edate
+
+set mode/last ignore
+
+
diff --git a/bench/bn_delimited_read.jnl b/bench/bn_delimited_read.jnl
index 55394ee..54a1563 100644
--- a/bench/bn_delimited_read.jnl
+++ b/bench/bn_delimited_read.jnl
@@ -53,6 +53,8 @@ cancel data/all
 ! file using blank as a delimiter
 ! Note record 1 has blanks at end of record
 ! Note record of many blanks sandwiched in as record 2
+! (note prev. to 7/13/2016 the file had incorrect date formats with the year first.
+!  File replaced so it can be read after the fix for ticket 2449.)
 file/form=delimited bn_delimited_read_2.dat
 show data
 file/form=delimited/delimiter=" " bn_delimited_read_2.dat
diff --git a/bench/bn_delimited_read_2.dat b/bench/bn_delimited_read_2.dat
index 62a700c..d6e8957 100644
--- a/bench/bn_delimited_read_2.dat
+++ b/bench/bn_delimited_read_2.dat
@@ -1,3 +1,3 @@
-  1981/12/03     12:35:00    
+  12/03/1981     12:35:00    
                          
-1895/2/6 13:45:05
+2/6/1895 13:45:05
diff --git a/bench/bn_dods_strides.jnl b/bench/bn_dods_strides.jnl
index 3f93cfb..8f6344e 100644
--- a/bench/bn_dods_strides.jnl
+++ b/bench/bn_dods_strides.jnl
@@ -1,5 +1,6 @@
 ! bn_dods_strides.jnl
 ! *sh* 3/00
+! acm* 3/17 check the URL with TEST_OPENDAP befor trying to open it.
 
 ! drawn identically from bn_strides_revs_perms.jnl on 3/16/00
 
@@ -21,73 +22,79 @@ cancel mode diagnostic
 
 ! first with an XYZT variable
 set region/i=3:6/j=2:4/k=1:2/l=1
-!use bn_strides
-! use "http://www.ferret.noaa.gov/cgi-bin/nph-nc/data/bn_strides.cdf"
-set data "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+
+! Define once for easier maintenance.
+DEFINE SYMBOL url_name = http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc
+
+!! If the above is down, here is a good one.
+!! DEFINE SYMBOL url_name = "http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NCEP/.EMC/.CMB/.Pacific/.monthly/dods"
+
+IF `test_opendap("($url_name)") NE 0` THEN EXIT/SCRIPT
+
+
+set data "($url_name)"
 
 
-!! If the above is also down, here is a good one.
-!!set data "http://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NCEP/.EMC/.CMB/.Pacific/.monthly/dods"
 
 
 list temp
 canc data/all
 
-use/order=yx "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use/order=yx "($url_name)"
 list temp
 canc data/all
 
-use/order=zyx "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use/order=zyx "($url_name)"
 list temp
 canc data/all
 
-use/order=zxy "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use/order=zxy "($url_name)"
 list temp
 canc data/all
 
 ! now with an XYT variable
 cancel region
 set region/i=1:4/j=40:43/l=1:2
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use "($url_name)"
 show grid xytvar
 list xytvar
 canc data/all
 
-use/order=yx "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use/order=yx "($url_name)"
 show grid xytvar
 list xytvar
 canc data/all
 
-use/order=tyx "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use/order=tyx "($url_name)"
 show grid xytvar
 list xytvar
 canc data/all
 
-use/order=txy "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use/order=txy "($url_name)"
 show grid xytvar
 list xytvar
 canc data/all
 
 ! map into Z instead of T
-use/order=zxy "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use/order=zxy "($url_name)"
 show grid xytvar
 list/k=1:2 xytvar
 canc data/all
 
 ! ambiguous mapping
-use/order=tx "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use/order=tx "($url_name)"
 show grid xytvar
 list xytvar
 canc data/all
 
 ! final "z" goes beyond the 3D -- no effect
-use/order=txyz "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use/order=txyz "($url_name)"
 show grid xytvar
 show grid var
 canc data/all
 
 ! * * * * * STRIDES * * * * *
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use "($url_name)"
 set mode diag
 cancel memory/all
 
@@ -170,19 +177,19 @@ LIST/j=1/i=1/l=1/precision=9 TEMP[k=1:10:2 at ave]
 
 set region/i=3:6/j=2:4/k=1:2/l=1
 
-use/order=yx "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use/order=yx "($url_name)"
 list temp[i=3:9:2]
 list temp[j=42:46:2]
 list temp[i=3:9:2, j=42:46:2, k=1:3:2]
 canc data/all
 
-use/order=zyx "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use/order=zyx "($url_name)"
 list temp[i=3:9:2]
 list temp[j=42:46:2]
 list temp[i=3:9:2, j=42:46:2, k=1:3:2]
 canc data/all
 
-use/order=zxy "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use/order=zxy "($url_name)"
 list temp[i=3:9:2]
 list temp[j=42:46:2]
 list temp[i=3:9:2, j=42:46:2, k=1:3:2]
@@ -207,33 +214,33 @@ canc data/all
 cancel region; set region/l=1
 
 ! reference output
-use/order=yx "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use/order=yx "($url_name)"
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
 
-use/order=-yx "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use/order=-yx "($url_name)"
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
 
-use/order=y-x "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use/order=y-x "($url_name)"
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
 
 ! reference output
-use/order=tyx "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use/order=tyx "($url_name)"
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
 
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
-use/order=-t-y-x "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use/order=-t-y-x "($url_name)"
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
 
 ! reference output
-use/order=txy "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use/order=txy "($url_name)"
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
 
-use/order=-t-x-y "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/ocean_atlas_monthly.nc"
+use/order=-t-x-y "($url_name)"
 list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
 canc data/all
diff --git a/bench/bn_dynamic_gather.jnl b/bench/bn_dynamic_gather.jnl
new file mode 100644
index 0000000..95e5fdb
--- /dev/null
+++ b/bench/bn_dynamic_gather.jnl
@@ -0,0 +1,98 @@
+! bn_dynamic_gather.jnl
+! *sh* 3/2017
+
+! There's not really anything "dynamic" about this benchmark, except that it
+! excercises the split/gather improvements that were implemented together with
+! dynamic memory management
+
+
+
+
+! Give us something to look at while we run these tests which dont make plots
+plot/noax/nolab/vlim=0:1/i=4:5 i
+annotate/norm/x=0/y=0.5 "@AC... running bn_dynamic_gather"
+
+
+! **************************************
+! create the test data
+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
+  say test files already exist.  not re-creating them
+ELSE
+  define symbol saved_memory_size = ($FERRET_MEMORY)
+  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)
+ENDIF
+
+! ************************************
+
+use tmp/test_dyn_mem.nc
+show data
+
+! excercise under the least strict memory management
+CANCEL MODE FRUGAL
+GO bn_dynamic_gather.sub
+
+! now run the same tests under 3 different FRUGAL levels
+! save the outputs so they can be compared
+
+! excercise under the least strict memory management
+CANCEL REDIRECT
+SET REDIRECT/CLOBBER/FILE=bn_dynamic_gather_0.out
+CANCEL MODE FRUGAL
+SHOW MODE FRUGAL
+GO bn_dynamic_gather.sub
+
+! excercise under the default memory management
+CANCEL REDIRECT
+SET REDIRECT/CLOBBER/FILE=bn_dynamic_gather_30.out
+SET MODE FRUGAL    ! 30%
+SHOW MODE FRUGAL
+GO bn_dynamic_gather.sub
+
+! excercise under pretty strict memory management
+CANCEL REDIRECT
+SET REDIRECT/CLOBBER/FILE=bn_dynamic_gather_60.out
+SET MODE FRUGAL:60
+SHOW MODE FRUGAL
+GO bn_dynamic_gather.sub
+
+CANCEL REDIRECT
+
+! now compare the three output logs:
+! differences in *how* the results are computed are fine
+! differences in what the results are would be problems
+SAY **************************************************
+SAY ************* DIFF FRUGAL 0 TO 30 ****************
+SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_30.out
+
+SAY **************************************************
+SAY ************* DIFF FRUGAL 0 TO 60 ****************
+SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
+
+
+! deliberate error
+SET MODE IGNORE
+SET MODE FRUGAL:95
+SET MODE/LAST IGNORE
+
diff --git a/bench/bn_dynamic_gather.sub b/bench/bn_dynamic_gather.sub
new file mode 100644
index 0000000..6535253
--- /dev/null
+++ b/bench/bn_dynamic_gather.sub
@@ -0,0 +1,198 @@
+! bn_dynamic_gather.sub
+
+! this subroutine to get called repeatedly for different values of MODE FRUGAL
+
+!**************
+! remember to test:
+! - MODE FRUGAL
+! done - case of no single axis long enough
+! done - case of transformed axis not long enough, but another is
+! 2-axis split including compressed
+! 2-axis split not including
+! 3-axis splits
+!    -- with slowest axis GT 5 in length
+!    -- with slowest axis LT 5 and second slowest GT 50
+! - modulo regrid examples
+! 2d and 3d @AVE
+! mixed @AVE and @DIN
+!*************
+
+! **************************************************
+! test memory that is too small to accommodate the result
+! this request will fail trying to get the third argument
+set mode ignore
+set memory/siz=1.99
+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]
+cancel mode ignore
+
+! **************************************************
+! if memory size is large enough to accommodate the result data plus
+! its accumulation buffer(s) when split along the compressed axis (4M)
+! then it can choose to use the compressed axis.
+! The smallest chunk along that axis is 1000x1000x2x1 ==> 2M
+set memory/siz=6
+stat/brief v[l=1:10 at ave]
+show memory/diagnostic   ! T axis split, chunk size = 1, peak mem=6
+show memory/all          ! in memory following the last chunk
+cancel memory/all
+
+! **************************************************
+! Since @VAR requires two buffers - the total size of the result is 2M+2*2M=6M
+! if we were to split along T the size of a chunk would be 1000x1000x2x1 = 2M
+! So the total memory needed would be 6M+2M=8M to split along T
+set memory/size=8
+stat/brief v[l=1:10 at var]
+show memory/diagnostic   ! T axis split, chunk size = 1, peak mem=8
+cancel memory/all   
+
+! **************************************************
+! if memory size is NOT large enough to accommodate the result data plus
+! its accumulation buffer(s) then it cannot split along T
+set memory/siz=5.9
+stat/brief v[l=1:10 at ave]
+show memory/diagnostic   ! Y axis split, big chunk size = 1
+cancel memory/all
+
+! **************************************************
+! memory barely large enough to accommodate the result (2M), and the
+! smallest achievable chunk
+! splitting along the Y axis, the smallest chunk size is 1000x1x2x10 ==> 20000
+! and the average of a single chunk (incl buffer) is 1000x1x2x1*2 ==> 4000
+set memory/siz=2.024
+stat/brief v[l=1:10 at ave]
+show memory/diagnostic ! Y axis split, chunk size=1, peak mem=2.024
+show memory/all        ! in memory following the last chunk
+cancel memory/all
+
+! **************************************************
+! Since @VAR requires two buffers - the total size of the result is 2M+2*2M=6M
+! if we were to split along T the size of a chunk would be 1000x1000x2x1 = 2M
+! So the total memory needed would be 6M+2M=8M.  So the current SET MEMORY=6 
+! is not enuf mem to split along the T axis
+set memory/siz=6
+stat/brief v[l=1:10 at var]
+show memory/diagnostic   ! Y axis split
+cancel memory/all
+
+! **************************************************
+! 3D averaging  v[x=@ave,y=@ave,z=@ave,L=1]
+! result size will be 1x1x1x1*2 = 2
+! chunk size if split along Z will be 1000x1000x1x1 = 1M
+! chunk size if split along Y will be 1000x1x2x1    = 2K
+
+! this request can succeed by splitting along Z
+set memory/siz=1.001
+stat/brief v[x=@ave,y=@ave,z=@ave,L=1]
+show memory/diagnostic     ! Z axis split
+cancel memory/all
+
+! **************************************************
+! but if memory is so small that the Z axis of 2 points does not provide
+! enough size reduction, then we choose to split along Y
+set memory/siz=.99
+stat/brief v[x=@ave,y=@ave,z=@ave,L=1]
+show memory/diagnostic     ! Y axis split
+cancel memory/all
+
+! **************************************************
+! multiple transformations on a single expression
+! Use of these expressions **is a bad idea in Ferret**
+! he "potential size" of the source data is 1000x1000x20x10=20M
+! we just get aggressive about memory saving: choose the longest axis
+! preferring an uncompressed axis if available
+! Here we see a triple level strip: Z-T-Y
+! (SHOW MEM/DIAG repeats on each of the 2 K values) 
+set memory/siz=.99
+stat/brief v[x=@ave,y=@ave,L=@SUM]
+show memory/diagnostic        !  split on Z-(T-Y,T-Y)
+cancel memory/all 
+
+! **************************************************
+! now the same situation, but where Z is compressed as well
+! Z is not stripped off because other axes are longer 
+set memory/siz=.99
+stat/brief v[x=@ave,y=@ave,z=@ave,L=@SUM]
+show memory/diagnostic       ! split on T-Y
+cancel memory/all 
+
+! **************************************************
+! multiple transformation again
+! first strip YZT at AVE. Split the long Y axis, no further split needed 
+set memory/siz=.99
+stat/brief v[x=@SUM,y=@ave,z=@ave,L=@ave]
+show memory/diagnostic      ! split on Y
+cancel memory/all 
+
+! **************************************************
+! MODULO REGRID 
+
+! v1000 is 10x100x4x1000
+! for gt=@mod the full result size is 10x100x4x12 ==>  48,000
+
+define axis/mod/t=1:12:1 t12mod
+
+!**************************************************
+set mem/size=10   ! bigger than needed
+stat/brief v1000[gt=t12mod at mod]
+show mem/diag     ! note peak size demand a bit over 4
+canc mem/all
+
+!**************************************************
+set mem/size=4
+stat/brief v1000[gt=t12mod at mod]
+show mem/diag              ! big z chunks (3 on ax of len 4)
+canc mem/all
+
+!**************************************************
+set mem/size=1
+stat/brief v1000[gt=t12mod at mod]
+show mem/diag              !  big y chunks (22 on ax of len 100)
+canc mem/all
+ 
+!**************************************************
+! if the chunk size is 1, then each chunk src is 10x1x4x1000 ==> 40000
+! and requires a result plus 2 buffers:          10x1x4x12*3 ==>  1440
+! plus the full result size in IS_GATHER                     ==> 48000
+!                                                      total ==> 89440
+set mem/size=.09
+stat/brief v1000[gt=t12mod at mod]
+show mem/diag              !  y chunk size = 1
+canc mem/all
+
+
+! ************** USER VARIABLES ********************
+let a = v[k=1]
+let b = v[k=2]
+let c = a + b
+let d = a + c
+
+! for comparison: memory management to average a simple file variable
+set memory/siz=3
+stat/brief v[l=1:10 at ave,k=1]
+show memory/diagnostic   ! T axis split, chunk size = 1, peak mem=6
+cancel memory/all
+
+! compare to memory management averaging user variables
+! not split on T because more memory is needed for components of calculation
+set memory/siz=3
+
+stat/brief a[l=1:10 at ave]
+show memory/diagnostic   ! X axis split, chunk size = 1, peak mem=1.82
+cancel memory/all
+
+stat/brief d[l=1:10 at ave]
+show memory/diagnostic   ! X axis split, chunk size = 1, peak mem=2.23
+cancel memory/all
+
+! progressively more frugal mem mgmt is needed as multiple results accumulate
+stat/brief a[i=1:500,l=1:10 at ave], b[i=1:500,l=1:10 at ave], c[i=1:500,l=1:10 at ave], d[i=1:500,l=1:10 at ave]
+show memory/diagnostic   ! X axis split, chunk size = 1, peak mem=2.23
+cancel memory/all
+
+! if the initial arguments take up too much memory we cannot succeed
+set mode ignore
+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]
+show memory/diagnostic   ! X axis split, chunk size = 1, peak mem=2.23
+cancel mode ignore
+cancel memory/all
+
diff --git a/bench/bn_ef_external_functions.jnl b/bench/bn_ef_external_functions.jnl
index 9fe94b1..a9941aa 100644
--- a/bench/bn_ef_external_functions.jnl
+++ b/bench/bn_ef_external_functions.jnl
@@ -3,12 +3,4 @@
 ! Jon's benchmarks
 go bench_examples
 
-! Ansley's benchmarks
-! move bench tests that test internal external functions to their
-! own .jnl file  bn_internal_external_functions
-! 
-! 4/2006 all efs distributed with Ferret except writev5d and the 
-!        examples tested in bench_examples.jnl are now internally linked.
-
-GO bn_reset
-go bench_v5d 
+! 12/16 No other external functions are distributed. Remove further references.
\ No newline at end of file
diff --git a/bench/bn_ef_v5d_strings.jnl b/bench/bn_ef_v5d_strings.jnl
deleted file mode 100644
index 2e7c83e..0000000
--- a/bench/bn_ef_v5d_strings.jnl
+++ /dev/null
@@ -1,35 +0,0 @@
-! bn_ef_v5d_strings.jnl
-! Taken out of bn_strings, because it calls so file writev5d.
-! testing string argument to external function.
-! 5/4/05 acm
-exit/script ! I dont have writev5d on this machine.
-set mode ignore_error
-
-sp rm -f testa.v5d
-let a = "testa.v5d"
-
-use gt4d011.cdf
-def axis/y=1:100:1/units=degrees yax
-let tr = temp[gy=yax at asn]
-go vis5d_write " " tr
-
-load WRITEV5D(tr[i=95:100,j=1:40,k=1:3],1/0,1/0,1/0,1/0,1/0,1/0,1/0,a)
-sp ls -l testa.v5d
-
-can region
-let vflag = writev5d(tr, 0, 0, 0, 0, 0, 0, 0, "vis5d_out.v5d")
-load vflag
-
-sp rm -f test.v5d
-load WRITEV5D(tr[i=95:100,j=1:40,k=1:3],1/0,1/0,1/0,1/0,1/0,1/0,1/0,"test.v5d")
-sp ls -l test.v5d
-
-! removed because it is internal and largely unintelligible
-!show mem/all
-!cancel mem/all
-!show mem/all
-
-! test error: non-string argument passed
-set mode ignore
-  load WRITEV5D(tr[i=95:100,j=1:40,k=1:3],1/0,1/0,1/0,1/0,1/0,1/0,1/0,55.0)
-set mode/last ignore
diff --git a/bench/bn_encode_url.jnl b/bench/bn_encode_url.jnl
index 174acf1..7ae2f10 100644
--- a/bench/bn_encode_url.jnl
+++ b/bench/bn_encode_url.jnl
@@ -2,21 +2,21 @@
 !
 ! Encode a URL inside Ferret
 
-IF `TEST_OPENDAP("http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_A0112an1.nc.jnl") NE 0` THEN
+IF `TEST_OPENDAP("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_A0112an1.nc.jnl") NE 0` THEN
    EXIT/SCRIPT
 ENDIF
 
 ! This from the example Roland cooked up.
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_A0112an1.nc.jnl_expr_%7B%7D%7Blet%20top=T0112AN1%5Bz=0%3A100%40ave%5D%7D"
+use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_A0112an1.nc.jnl_expr_%7B%7D%7Blet%20top=T0112AN1%5Bz=0%3A100%40ave%5D%7D"
 
 ! Now the same thing, encoded in Ferret
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_A0112an1.nc.jnl_expr_{}{let/UNITS=DEG top=T0112AN1[z=0:100 at ave]}"
+use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_A0112an1.nc.jnl_expr_{}{let/UNITS=DEG top=T0112AN1[z=0:100 at ave]}"
 
 shade/L=6 top[d=2] - top[d=1]
 
 ! Define title or units, allowing there to be spaces...
 
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_A0112an1.nc.jnl_expr_{}{let/TITLE="Average over Lower 1000m"/units="Deg C" bot=T0112AN1[z=500:1500 at ave]}"
+use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_A0112an1.nc.jnl_expr_{}{let/TITLE="Average over Lower 1000m"/units="Deg C" bot=T0112AN1[z=500:1500 at ave]}"
 sho dat
 shade/L=6 bot
 
@@ -28,14 +28,14 @@ shade/L=6 bot
 ! Note that the url does NOT work in the browser; get an error:
 !     Error in URL
 !     The URL extension did not match any that are known by this server. ...
-! http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_A0112an1.nc.jnl_expr_{}{let/TITLE="Upper_100M"/units=M top=T0112AN1[z=0:100 at ave]; set var/units=Q top}.html
+! http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_A0112an1.nc.jnl_expr_{}{let/TITLE="Upper_100M"/units=M top=T0112AN1[z=0:100 at ave]; set var/units=Q top}.html
 !
-!use "http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_A0112an1.nc.jnl_expr_{}{let/TITLE="Upper_100M"/units=M top=T0112AN1[z=0:100 at ave]; set var/units=Q top}"
+!use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_A0112an1.nc.jnl_expr_{}{let/TITLE="Upper_100M"/units=M top=T0112AN1[z=0:100 at ave]; set var/units=Q top}"
 
 ! 2) A command which has a grave-accent evaluation of something from the dataset. The set is not 
 ! open when the encoding is done, so Ferret cant get information out of it.
 ! Trying to escape return= grave accents in a F-TDS URL.
 !
-!use "http://ferret.pmel.noaa.gov/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_A0112an1.nc.jnl_expr_{}{let/units="`T0112AN1,return=units`" top=T0112AN1[z=0:1000 at ave]}"
+!use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_A0112an1.nc.jnl_expr_{}{let/units="`T0112AN1,return=units`" top=T0112AN1[z=0:1000 at ave]}"
 
 
diff --git a/bench/bn_ez.jnl b/bench/bn_ez.jnl
index cb84249..e9f48d2 100644
--- a/bench/bn_ez.jnl
+++ b/bench/bn_ez.jnl
@@ -68,6 +68,10 @@ LIST X1
 SHOW DATA
 
 ! truncate reading by grid size limit
+! V702: *sh* note that with 3 columns of pairs and a request to read only
+! 8 values total, the final record is incomplete.  These final values
+! **do not get initialized**.  This has been reported in trac #2509
+! The presence of uninitialized values can throw off the formatting of the output
 DEFINE AXIS/X=1:8:1 xez3
 DEFINE GRID/X=XEZ3 GEZ3
 FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ3 EZ.DAT
diff --git a/bench/bn_ez_noupcase.jnl b/bench/bn_ez_noupcase.jnl
new file mode 100644
index 0000000..5e59568
--- /dev/null
+++ b/bench/bn_ez_noupcase.jnl
@@ -0,0 +1,27 @@
+! bn_ez_noupcase.jnl
+! 7/2016 *acm* see ticket 2454
+! 
+! Handle variable-name upcasing for Ascii data
+! in the same way as for netcdf variables.
+! Previously they were resolutely up-cased and the 
+! lowercase version was unavailable.
+
+can mode upcase
+
+let abc = {2,4,6,8,6}
+list/clobber/nohead/norow/file=abc.dat abc
+can var/all
+file/var=abc abc.dat
+sh dat
+sh dat/att
+save/clobber/file=a.nc abc
+sp ncdump -h a.nc
+
+! Delimited read
+columns/skip=1/var="lab,nothing,var,latitude,longitude"/type="text,text,num,latitude,longitude" bn_delimited_read_1.dat
+sh dat
+sh dat/att
+sav/file=a.nc/clobber var,longitude,latitude
+sp ncdump -h a.nc
+
+set mode/last upcase
diff --git a/bench/bn_gather_4d_ave.jnl b/bench/bn_gather_4d_ave.jnl
new file mode 100644
index 0000000..3a2380f
--- /dev/null
+++ b/bench/bn_gather_4d_ave.jnl
@@ -0,0 +1,50 @@
+! bn_gather_4d_ave.jnl
+! 2/2017
+
+! force a split/gather operation due on multi-axis @ave
+
+set mode diag
+
+define axis/x=1:200:1  xax
+define axis/y=1:200:1  yax
+define axis/z=1:200:1 zax
+define axis/T=1:200:1 tax
+let xyz = 0*X[gx=xax] + 0*Y[gy=yax] + Z[gz=zax]
+
+* note: Ave of Z is 100.5
+
+* 3D XYZ test
+* 2d slice size = 200*200 = 40,000
+* 3d full size is 8,000,000  - so 10,000,000 is bigger
+set mode desp: 10000000    ! big: no need to split/gather
+stat/br xyz[x=@ave,y=@ave,z=@ave]
+
+! again -- this time force split/gather because 
+cancel memory/all
+set mode desp: 2000000  ! 2,000,000 small -- requires split/gather
+
+! will split into 4 pieces (1/4 of 8,000,000 fits into 2,000,000)
+! so z=1:50; then =51:100, Z=101:150, Z=151:200
+stat/br xyz[x=@ave,y=@ave,z=@ave]
+
+define axis/Y=1:200:1 Yax
+define axis/Z=1:200:1 Zax
+define axis/E=1:200:1 Eax
+define axis/F=1:200:1 Fax
+let zef = 0*Z[gz=zax] + 0*_E[ge=eax] + _F[gF=fax]
+
+stat/br zef[z=@ave,e=@ave,f=@ave]
+
+let zte = 0*Z[gz=zax] + _T[gt=tax] + 0*_E[ge=eax]
+stat/br zte[z=@ave,e=@ave,f=@ave]
+
+can var/all
+can mem/all
+
+! Now with a gridded variable from a dataset.
+use levitus_climatology
+define axis/T=1:60:1 tax
+let xyzt = temp + 0.01*t[gt=tax]
+set mode desp: 2.e7
+can mem; set mode diag; list/prec=8 xyzt[x=@din,y=@din,t=@din]/1.e12
+
diff --git a/bench/bn_gather_4d_din.jnl b/bench/bn_gather_4d_din.jnl
new file mode 100644
index 0000000..9707050
--- /dev/null
+++ b/bench/bn_gather_4d_din.jnl
@@ -0,0 +1,32 @@
+! bn_4d_gather_4d_din.jnl
+! 2/2017
+
+! force a split/gather operation due on multi-axis @din
+
+set mode diag
+
+define axis/x=1:200:1 xax
+define axis/y=1:200:1 yax
+define axis/z=1:200:1 zax
+define axis/T=1:200:1 tax
+let xyz = 0*X[gx=xax] + 0*Y[gy=yax] + Z[gz=zax]
+
+* note: SUM of Z is N*(N+1)/2 = 20100
+* area integral in XY is 200*200=40,000
+* total integral is 804,000,000 (8.04*E8)
+
+* 3D XYZ test
+* 2d slice size = 200*200 = 40,000
+* 3d full size is 8,000,000  - so 10,000,000 is bigger
+set mode desp: 10000000    ! big: no need to split/gather
+stat xyz[x=@din,y=@din,z=@din]
+
+! again -- this time force split/gather because 
+cancel memory/all
+set mode desp: 2000000  ! 2,000,000 small -- requires split/gather
+
+! will split into 4 pieces (1/4 of 8,000,000 fits into 2,000,000)
+! so z=1:50; then =51:100, Z=101:150, Z=151:200
+stat xyz[x=@din,y=@din,z=@din]
+
+
diff --git a/bench/bn_gather_4d_var.jnl b/bench/bn_gather_4d_var.jnl
new file mode 100644
index 0000000..a31bc35
--- /dev/null
+++ b/bench/bn_gather_4d_var.jnl
@@ -0,0 +1,73 @@
+! bn_4dvar_gather.jnl
+! 11/2016
+
+! force a split/gather operation due on multi-axis @idn
+
+define axis/x=1:200:1 xax
+define axis/y=1:200:1 yax
+define axis/z=1:201:1 zax
+define axis/T=1:200:1 tax
+! adding a constant doesn't effect variance
+let constant = 0*X[gx=xax] + 0*Y[gy=yax] + 0*Z[gz=zax] + 1234
+let xyz = 0*X[gx=xax] + 0*Y[gy=yax] + Z[gz=zax] + 1
+let xyz_zero_mean = 0*X[gx=xax] + 0*Y[gy=yax] + (Z[gz=zax]-101)
+
+* note: sum of a sequence 1 to N of square integers is [N*(N+1)*(2N+1)]/6
+* Z-101 is 2 sequences: -100 to -1 and 1 to 100, therefore sum is 
+* 2 * [100*101*201]/6 = 676700
+* so the average is 676700/201 = 3366.666666 ...
+* At every XY point we have the identical sequence in Z, so the variance is
+* the same as the single Z sequence
+
+* 3D XYZ test
+* 2d slice size = 200*200 = 40,000
+* 3d full size is 8,000,000  - so 10,000,000 is bigger
+cancel memory/all
+set mode desp: 2000000  ! 2,000,000 small -- requires split/gather
+! will split into 4 pieces (1/4 of 8,000,000 fits into 2,000,000)
+! so z=1:50; then =51:100, Z=101:150, Z=151:200
+set mode diag
+LIST/PREC=12 constant[x=@var,y=@var,z=@var]
+
+cancel mode diag
+! variance of a constant is zero
+GO bn_compressed_gather.sub constant[x=@var,y=@var,z=@var] 10000000 2000000
+
+! confirm that we get the result computed above
+GO bn_compressed_gather.sub xyz_zero_mean[x=@var,y=@var,z=@var]  10000000 2000000
+LIST/PREC=12 xyz_zero_mean[x=@var,y=@var,z=@var]
+
+! confirm that adding a constant does not change the result
+GO bn_compressed_gather.sub xyz[x=@var,y=@var,z=@var]  10000000 2000000
+LIST/PREC=12 xyz[x=@var,y=@var,z=@var]
+
+CANCEL MEMORY/ALL  ! IF PRESENT THIS PREVENTS THE MEMORY CORRUPTION
+! confirm the @std gives the square root of the variance
+! SQRT(676700/201) = 58.022983951764034269074805569046
+GO bn_compressed_gather.sub xyz[x=@std,y=@std,z=@std]  10000000 2000000
+LIST/PREC=12 xyz[x=@std,y=@std,z=@std]
+
+
+!!!! other directions ZEF
+
+set mode diag
+
+define axis/Z=1:200:1 Zax
+define axis/E=1:200:1 Eax
+define axis/F=1:200:1 Fax
+let zef = 0*Z[gz=zax] + 0*_E[ge=eax] + _F[gF=fax]
+
+let zef = 0*Z[gz=zax] + 0*_E[ge=eax] + _F[gF=fax] + 1
+let zef_zero_mean = 0*Z[gz=zax] + 0*_E[ge=eax]  + (_F[gF=fax]-101)
+
+GO bn_compressed_gather.sub zef_zero_mean[z=@var,e=@var,f=@var]  10000000 2000000
+LIST/PREC=12 zef_zero_mean[z=@var,e=@var,f=@var]
+
+
+!!!! other directions ZTE
+
+let zte = 0*Z[gz=zax] + _T[gt=tax] + 0*_E[ge=eax] + 1
+let zte_zero_mean = 0*Z[gz=zax] + 0*t[gt=tax]  + (_E[gE=eax]-101)
+
+GO bn_compressed_gather.sub zte_zero_mean[z=@var,t=@var,e=@var]  10000000 2000000
+LIST/PREC=12 zte_zero_mean[z=@var,t=@var,e=@var]
diff --git a/bench/bn_gif.jnl b/bench/bn_gif.jnl
index b98e58e..424c0af 100644
--- a/bench/bn_gif.jnl
+++ b/bench/bn_gif.jnl
@@ -4,6 +4,9 @@
 ! *kob*
 
 
+! NOTE the plots in bnplot_2.gif are different in PyFerret and Ferret,
+! because of different treatment of /TEXT= for viewport definitions.
+
 can mode logo
 
 ! define a 6 viewport window (modified definitions 11/92)
diff --git a/bench/bn_hovmuller_overlays.jnl b/bench/bn_hovmuller_overlays.jnl
index 30827e9..6cdc6c2 100644
--- a/bench/bn_hovmuller_overlays.jnl
+++ b/bench/bn_hovmuller_overlays.jnl
@@ -4,6 +4,7 @@
 ! See ticket 2344
 
 ! 1/6/2016 ACM
+! acm* 3/17 check the URL with TEST_OPENDAP befor trying to open it.
 
 ! run this in the gif benchmarks.
 
@@ -54,10 +55,12 @@ PLOT/OVER/thick/y=8 my_var+10
 ! Like the dataset example from the FAQ
 set view ll6
 
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
-set region/x=40w/y=10n:60n/t=15-jan-1982:15-dec-1983
-shade sst
-plot/over/thick/TITLE="at 20"  sst[y=@LOC:20]
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+   use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
+   set region/x=40w/y=10n:60n/t=15-jan-1982:15-dec-1983
+   shade sst
+   plot/over/thick/TITLE="at 20"  sst[y=@LOC:20]
+ENDIF
 
 can data/all
 can region
@@ -65,13 +68,15 @@ can region
 ! vector plots with a time series
 set view lr6
 
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf"
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_vwnd.cdf"
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf") EQ 0 AND\
+ test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf") EQ 0` THEN
+   use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf"
+   use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_vwnd.cdf"
 
-vec/x=0/y=-10:10/t=1-jan-1980:1-jan-1990 uwnd[d=1], vwnd[d=2]
+   vec/x=0/y=-10:10/t=1-jan-1980:1-jan-1990 uwnd[d=1], vwnd[d=2]
 
-let wspd = (uwnd[d=1]*uwnd[d=1] + vwnd[d=2]*vwnd[d=2])^0.5
-plot/over/color=red/thick/x=0/t=1-jan-1980:1-jan-1990 wspd[y=-10:10 at ave]
-
-FRAME/FILE=bn_hovmuller_overlays.pdf
+   let wspd = (uwnd[d=1]*uwnd[d=1] + vwnd[d=2]*vwnd[d=2])^0.5
+   plot/over/color=red/thick/x=0/t=1-jan-1980:1-jan-1990 wspd[y=-10:10 at ave]
 
+   FRAME/FILE=bn_hovmuller_overlays.gif
+ENDIF
diff --git a/bench/bn_inf2missing.jnl b/bench/bn_inf2missing.jnl
new file mode 100644
index 0000000..cf98a6b
--- /dev/null
+++ b/bench/bn_inf2missing.jnl
@@ -0,0 +1,11 @@
+! 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
+!
+! The value returned by this function is -infinity at zero and +infinity at one.
+! If left as infinity, no plot produced; if converted to the missing value, one 
+! sees a normal plot with the line stopping before reaching zero or one.
+
+plot stats_ppf(x[gx=0:1.0:0.01], "norm", {0,1})
+frame /file=bn_inf2missing.pdf
+
diff --git a/bench/bn_inner.jnl b/bench/bn_inner.jnl
new file mode 100644
index 0000000..62b3975
--- /dev/null
+++ b/bench/bn_inner.jnl
@@ -0,0 +1,114 @@
+! bn_inner.jnl
+! 3/2017 *acm*  Inner product function for matrix multiply operation
+
+
+sh func innerproduct*
+
+! A call to innerproduct(var1, var2, dir) translates into call to 
+! function innerproduct_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  innerproduct(var1, var2, 1)
+!can var/all
+
+let var1 = x[gx=xpax]
+let var2 = 1+0*x[gx=xpax]
+list  innerproduct_x(var1, var2)
+
+let var1 = y[gy=ypax]
+let var2 = 1+0*y[gy=ypax]
+list var1, var2
+list  innerproduct(var1, var2, 2)
+
+let var1 = z[gz=zpax]
+let var2 = 1+0*z[gz=zpax]
+list var1, var2
+list  innerproduct(var1, var2, 3)
+
+let var1 = L[gt=month_reg]
+let var2 = 1+0*L[gt=month_reg]
+list var1, var2
+list  innerproduct(var1, var2, 4)
+
+let var1 = _e[ge=epax]
+let var2 = 1+0*_e[ge=epax]
+list var1, var2
+list  innerproduct(var1, var2, 5)
+
+let var1 = _f[gf=fpax]
+let var2 = 1+0*_f[gf=fpax]
+list var1, var2
+list  innerproduct(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 innerproduct(axy, bxz, 1)
+
+let byz = y[gy=ypax]+  10*Z[GZ=Zpax]
+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
+
+can var multi_inner
+use a.nc
+!  This should be the same as innerproduct(axy, byz, 2)
+list/l=1 multi_inner
+
+!  z and t
+
+
+let axz = x[gx=xpax] + z[gz=zpax]
+let bzt = 0*z[gz=zpax]+  10*L[gt=month_reg]
+list innerproduct(axz, bzt, 3)
+
+let ayt = y[gy=ypax]+ 10*L[gt=month_reg]
+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
+
+can var multi_inner
+use a.nc
+!  This should be the same as innerproduct(ayt, bzt, 4)
+list/i=1 multi_inner
+
+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 innerproduct(ayf, bfe, 6)
+
+let aze = z[gz=zpax]+ 10*_e[ge=epax]
+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
+
+can var multi_inner
+use a.nc
+!  This should be the same as innerproduct(azex, bfe, 5)
+list/i=1 multi_inner
+
+cancel list/precision
diff --git a/bench/bn_let_remote.jnl b/bench/bn_let_remote.jnl
index 0dac1fd..91cb20c 100644
--- a/bench/bn_let_remote.jnl
+++ b/bench/bn_let_remote.jnl
@@ -1,35 +1,36 @@
 ! 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
 
 ! See if the F-TDS is working and bail if not.
-
-let status = TEST_OPENDAP("http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
+let status = TEST_OPENDAP("http://ferret.pmel.noaa.gov/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
 load status
 if `status NE 0` then EXIT/SCRIPT
 
-use "http://ferret.pmel.noaa.gov/nvods/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/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:1000 at ave]
+let/D=1/remote ave_z = t0112mn1[z=0:20 at ave]
 sh var
-set view ul; shade/l=7 myvar
-set view ur; shade/l=3 ave_z
+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]
-set view ll; shade/z=0 ave_t
+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]
-set view lr; shade/z=0 ave_summer
+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_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/COADS-climatology/data_coads_climatology.jnl"
+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"
 let/D=2/remote sstsum = sst[L=1:5 at sum]
 let/D=2/remote airtsum = airt[L=1:5 at sum]
 sh dat
@@ -45,7 +46,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/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl"
+use "http://ferret.pmel.noaa.gov/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
@@ -55,7 +56,7 @@ list/y=-5/x=130w:110w combo
 
 can dat/all; can var/all
 
-use "http://ferret.pmel.noaa.gov/nvods/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/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
 
 ! This is ok let/remote/D=
 let/D=1/remote myvar = t0112mn1[z=1:100 at ave]
diff --git a/bench/bn_output.jnl b/bench/bn_output.jnl
index cae3634..103477d 100644
--- a/bench/bn_output.jnl
+++ b/bench/bn_output.jnl
@@ -1,6 +1,7 @@
 ! 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)
 
 LET v = 1000*i + 100*j + 10*k + l
 SET REGION/I=1:2/J=3:4/K=5:6/L=7:8
@@ -33,12 +34,13 @@ CANCEL LIST/HEAD
 LIST
 CANCEL LIST/ALL
 SET LIST/FILE=AUTO-X
-LIST/FILE
-LIST/FILE=test.dat
+LIST/CLOBBER/FILE
+LIST/CLOBBER/FILE=test.dat
 LIST/FILE=test.dat/APPEND
-LIST/FILE=test.unf/FORMAT=UNFORMATTED
+LIST/CLOBBER/FILE=test.unf/FORMAT=UNFORMATTED
 ! V6.8 we no longer write this file type
 SET MODE IGNORE
 LIST/FILE=test.gt/FORMAT=TMAP/L=1:3 v,v^0.5
 SET MODE/LAST IGNORE
 CANCEL LIST
+
diff --git a/bench/bn_plot_vs_with_time.jnl b/bench/bn_plot_vs_with_time.jnl
new file mode 100644
index 0000000..63602a7
--- /dev/null
+++ b/bench/bn_plot_vs_with_time.jnl
@@ -0,0 +1,67 @@
+! bn_plot_vs_with_time.jnl
+! See ticket 2246
+! 3/27/2017 *ACM*
+
+! PLOT/VS plots automatically draw a formatted time axis
+! when one of the variables has calendar units and time origin
+
+! (Currently allow just one axis to be time formatted)
+
+can mode logo
+
+! Date units syntax days since 1982-01-01 is valid
+
+define axis/t=1:500:10/units=days/t0="01-jan-1982" tax
+let/units="days since 1982-01-01" mytime2 = t[gt=tax]
+
+let myvar2 = RANDU(mytime2)
+plot/vs/line mytime2, myvar2
+plot/vs/over/sym/color=red mytime2[L=1:50:2], myvar2[L=1:50:2]
+
+! time axis on the vertical
+
+! Date syntax days since 01-jan-1982 is also valid.
+define axis/t=1:500:10/units=days/t0="01-jan-1982" tax
+let/units="days since 01-jan-1982" mytime2 = t[gt=tax]
+
+plot/vs/line myvar2, mytime2
+plot/vs/over/sym/color=red/line  myvar2[L=1:50:2],  mytime2[L=1:50:2]
+
+! LAS style plots:
+! Dataset with pressure,temperature on ZT grid. Define a time variable
+! send it to PLOT/VS to draw plots with time-formatted axis, plain
+! 2-variable plots and plot/vs plots.
+! Define variables as if gridded T-Z data in spurs dataset
+
+define axis/t="25-JAN-2017:23:00":"02-FEB-2017 10:00":12/units=hours/t0=1-jan-2017 time
+define axis/z=1:50:4/units=m/depth zaxis
+let/title=pressure/units=m pres=z[gz=zaxis] + 0.3*randu(t[gt=time])
+let/title=temperature/units="Deg C" temp = 20 - z[gz=zaxis] + 10*randu(t[gt=time])
+
+! Define a time variable
+let/units="`pres,return=tunits` since `pres,return=t0`" ttvar = t[gt=temp] + 0*temp
+
+! time on horizontal axis
+set v ul; plot/vs/ribbon/sym=17/thick/vlim=50:0  ttvar, pres, temp
+
+! time on vertical axis
+set v ur; plot/vs/ribbon/sym=17/thick/hlim=50:0  pres, ttvar, temp
+
+! More time axis styles
+
+define axis/t=1-jan-2016:1-jan-2017:45/units=days/t0=1-jan-1970 time
+let/title=pressure/units=m pres=z[gz=zaxis] + 0.3*randu(t[gt=time])
+let/title=temperature/units="Deg C" temp = 20 - z[gz=zaxis] + 10*randu(t[gt=time])
+let/units="`pres,return=tunits` since `pres,return=t0`" ttvar = t[gt=temp] + 0*temp
+
+set v ll; plot/vs/ribbon/sym=17/thick/vlim=50:0  ttvar, pres, temp
+
+define axis/t=1-jan-2001:1-jan-2012:181/units=days/t0=1-jan-1970 time
+let/title=pressure/units=m pres=z[gz=zaxis] + 0.3*randu(t[gt=time])
+let/title=temperature/units="Deg C" temp = 20 - z[gz=zaxis] + 10*randu(t[gt=time])
+let/units="`pres,return=tunits` since `pres,return=t0`" ttvar = t[gt=temp] + 0*temp
+
+set v lr; plot/vs/ribbon/sym=17/thick/vlim=50:0  ttvar, pres, temp
+
+
+set mode/last logo
diff --git a/bench/bn_ps.jnl b/bench/bn_ps.jnl
index 9f5914b..2f7f9c6 100644
--- a/bench/bn_ps.jnl
+++ b/bench/bn_ps.jnl
@@ -77,6 +77,7 @@ plot/l=1:99000/nolabel sin(200000/(l+10000))
 
 frame/file=bnplot_4.pdf   ! Not an error in PyFerret
 frame/file=bnplot_4.ps    ! Not an error in PyFerret
+frame/file=bnplot_4.eps   ! Not an error in PyFerret
 
 
 
diff --git a/bench/bn_reset.jnl b/bench/bn_reset.jnl
index 88811d1..f9caf52 100644
--- a/bench/bn_reset.jnl
+++ b/bench/bn_reset.jnl
@@ -5,16 +5,28 @@ cancel mode verify
 !		-- individual benchmarks must now specify MODE DIAG if needed
 !  5/00 *acm* added CANCEL MODE IGNORE_ERRORS
 !  7/09 *acm* added CANCEL VIEWPORTS
+!  3/17 *sh* accept an argument "GO bn_reset scriptname" and use it to
+!            put helpful separators into the log and err files
+!  4/17 *sh* added CANCEL MODE STUPID (was left on by bn_regrid_6d.jnl)
 
 ! reset FERRET to prepare for another benchmark test
 CANCEL REGION/ALL
 CANCEL DATA/ALL
 CANCEL VARIABLES/ALL
 CANCEL MEMORY/ALL
+CANCEL MODE STUPID   ! added 4/2017
 SET GRID ABSTRACT
 CANCEL MODE DIAGNOSTIC
 CANCEL MODE IGNORE_ERROR
 CANCEL VIEWPORTS
 PPL TICS .125,.25,.125,.25 !reset tics to default
 
+! announce the start of the next script
+message/error/continue ooooooooooooooooooooooooooooooooooooooooooo
+message/continue ooooooooooooooooooooooooooooooooooooooooooo
+if ($1"0|*>1") then
+  message/error/continue Starting test: $1 
+  message/continue Starting test: $1
+endif
+
 set mode/last verify
diff --git a/bench/bn_spawn_fail.jnl b/bench/bn_spawn_fail.jnl
new file mode 100644
index 0000000..2f7622b
--- /dev/null
+++ b/bench/bn_spawn_fail.jnl
@@ -0,0 +1,11 @@
+! bn_spawn_fail.jnl
+!  See ticket 2453
+!  If a no-success flag is returned from a SPAWN, 
+!  report that as a warning.
+!  8/2016 *acm*
+
+sp ls notafile.nowhere
+sp grep "this text is not in the file" bn_all.jnl
+sp rm nothing.dat
+sp grep modulus non_COARDS.cdl
+sp cp nofile.dat not_either.dat
diff --git a/bench/bn_spawn_size.jnl b/bench/bn_spawn_size.jnl
index 441cf34..a5f8d1a 100644
--- a/bench/bn_spawn_size.jnl
+++ b/bench/bn_spawn_size.jnl
@@ -1,27 +1,52 @@
 ! bn_spawn_size.jnl
+! Added 9/9/2014
+! Fix for ticket 981
 ! Return the size of the result of a spawn, not 
-! the nominalabstract axis length.
+! the nominal abstract axis length.
 
-! ticket 981
+! 1/2017 *acm* change this script so the results are always consistent, 
+! not depending on the contents of the directory which may change.
 
-let files = {spawn:"ls *cdf*.jnl"}
+! Make some files to operate on
+let a = x + 1
+save/clobber/i=1:5/file=bn_spawn_size1.cdf a
+save/clobber/i=1:5/file=bn_spawn_size2.cdf a
+save/clobber/i=1:5/file=bn_spawn_size3.cdf a
+save/clobber/i=1:5/file=bn_spawn_size4.cdf a
+save/clobber/i=1:5/file=bn_spawn_size5.cdf a
+
+list/clobber/i=1:7/file=bn_spawn_size02.dat a
+list/clobber/i=1:7/file=bn_spawn_size04.dat a
+list/clobber/i=1:7/file=bn_spawn_size06.dat a
+list/clobber/i=1:7/file=bn_spawn_size08.dat a
+list/clobber/i=1:7/file=bn_spawn_size10.dat a
+list/clobber/i=1:7/file=bn_spawn_size12.dat a
+list/clobber/i=1:7/file=bn_spawn_size14.dat a
+
+! Previously these return=isize results returned 2000
+
+let files = {spawn:"ls *bn_spawn_size*4.*"}
 list files
 say `files,return=isize`
 
 ! Evaluate size without loading the variable first
-let datfiles = {spawn:"ls *.dat"}
+let datfiles = {spawn:"ls bn_spawn_size1*.dat"}
 say `datfiles,return=isize`
 
 ! expression syntax
-say `{spawn:"ls xml*.jnl"},return=isize`
-list {spawn:"ls xml*.jnl"}
+say `{spawn:"ls bn_spawn_size*.dat"},return=isize`
+list {spawn:"ls bn_spawn_size*.dat"}
 
-! Test variables based on output of a spawn.
+! Test variables based on a function operating on output of a spawn.
 ! These already worked correctly, has a grid-changing function.
 
-LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
+LET filesets = XCAT({spawn:"ls bn_spawn_size*.cdf"}, {spawn:"ls bn_spawn_size*.dat"})
 say `filesets, return=isize`
 
-let files = {spawn:"ls *cdf*.jnl"}
-let name_len = strindex(files, ".sub")
+let files = {spawn:"ls bn_spawn_size*.dat"}
+let name_len = STRINDEX(files, "ze0")
 say `name_len, return=isize`
+
+! clean up
+sp rm bn_spawn_size*.dat bn_spawn_size*.cdf
+
diff --git a/bench/bn_stat_precision.jnl b/bench/bn_stat_precision.jnl
new file mode 100644
index 0000000..83e750c
--- /dev/null
+++ b/bench/bn_stat_precision.jnl
@@ -0,0 +1,27 @@
+! bn_stat_precision.jnl
+! 3/2017 *acm* Ticket 2512
+
+! The stat command self-adjusts precision to make the 
+! min and max listed distinct
+
+let var = {1907.1,1907.05,1907.11}
+stat/br var
+
+let var = {1907.001,1907.0005,1907.0011}
+stat/br var
+
+let var = {221907.001,221907.0005,221907.0011}
+stat/br var
+
+
+! STAT/PREC controls the precision, writing more or less digits
+
+stat/br/prec=5 var
+stat/br/prec=12 var
+
+! some more examples
+let var = 30*randu(1+i[i=1:10])
+stat/br var
+stat/br/prec=3 var
+stat/br/prec=7 var
+stat/br/prec=12 var
diff --git a/bench/bn_test_opendap.jnl b/bench/bn_test_opendap.jnl
index d192c2e..674cee2 100644
--- a/bench/bn_test_opendap.jnl
+++ b/bench/bn_test_opendap.jnl
@@ -6,7 +6,7 @@ SET MODE IGNORE
 !!list test_opendap ("http://iridl.ldeo.NOT.columbia.edu/SOURCES/.LEVITUS/.MONTHLY/.temp/dods")
 
 !! Change to another server, this one not working 8/2012
-list test_opendap ("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
+list test_opendap ("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
 list test_opendap ("http://ferret.pmel.NOT.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
 
 
diff --git a/bench/bn_transp_choose.jnl b/bench/bn_transp_choose.jnl
new file mode 100644
index 0000000..8be4db3
--- /dev/null
+++ b/bench/bn_transp_choose.jnl
@@ -0,0 +1,22 @@
+! 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
+
+use gt4d011
+
+list/K=1/l=1 u[i=91:100,j=35:45]
+let var = transpose (u[i=91:100,j=35:41], 1, 2)
+list/K=1/l=1 var
+
+! same as transpose_xy function
+list/k=1/l=1 transpose_xy(u[i=91:100,j=35:41])
+
+! Combine transpose with other operations
+let vari = u - v
+list/l=1 vari[i=91:100,j=35:41,k=1:5 at ave]
+let var = transpose (vari[i=91:100,j=35:41,k=1:5 at ave], 1, 2)
+list/l=1 var
+
diff --git a/bench/bn_transpose.jnl b/bench/bn_transpose.jnl
index f069aae..c35ccd8 100644
--- a/bench/bn_transpose.jnl
+++ b/bench/bn_transpose.jnl
@@ -18,7 +18,70 @@ list transpose_xz(myvar)
 list transpose_xt(myvar)
 list transpose_yz(myvar)
 list transpose_yt(myvar)
-list transpose_zt(myvar)
+list transpose_zt(myvar) 
+
+def axis /X=0.0:4.0:1.0/units=degrees_east xaxs
+def axis /Y=0.0:3.0:1.0/units=degrees_north yaxs
+def axis /Z=0.0:1.4:0.2/units=m/depth zaxs
+def axis /T=0.0:6.0:1.0/units=days/t0=1-jan-2001 taxs
+def axis /E=0.0:10.0:5 eaxs
+def axis /F=0.0:100.0:20 faxs
+def grid /X=xaxs /Y=yaxs /Z=zaxs /T=taxs /E=eaxs /F=faxs mygrd 
+
+set grid mygrd
+let myvar = X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+
+
+! * * * * Simple XYZTEF examples * * *
+
+list/x=1/y=1/z=1/t=1 myvar
+list/x=1/y=1/z=1/t=1 transpose_ef(myvar)
+
+list/e=5/y=1/z=1/t=1 myvar
+list/e=5/y=1/z=1/t=1 transpose_xf(myvar)
+list/F=25/y=1/z=1/t=1 myvar
+list/F=25/y=1/z=1/t=1 transpose_xe(myvar)
+
+list/e=5/x=1/z=1/t=1 myvar
+list/e=5/x=1/z=1/t=1 transpose_yf(myvar)
+list/F=25/x=1/z=1/t=1 myvar
+list/F=25/x=1/z=1/t=1 transpose_ye(myvar)
+
+list/e=5/x=1/y=1/t=1 myvar
+list/e=5/x=1/y=1/t=1 transpose_zf(myvar)
+list/F=25/x=1/y=1/t=1 myvar
+list/F=25/x=1/y=1/t=1 transpose_ze(myvar)
+
+list/e=5/x=1/y=1/z=1 myvar
+list/e=5/x=1/y=1/z=1 transpose_tf(myvar)
+list/F=25/x=1/y=1/z=1 myvar
+list/F=25/x=1/y=1/z=1 transpose_te(myvar)
+
+
+! * * * *  XYZTEF examples with another dimension * * *
+
+list/y=1/z=1/t=1 myvar
+list/y=1/z=1/t=1 transpose_ef(myvar) 
+
+list/e=5/z=1/t=1 myvar
+list/e=5/z=1/t=1 transpose_xf(myvar) 
+list/F=25/z=1/t=1 myvar
+list/F=25/z=1/t=1 transpose_xe(myvar) 
+
+list/e=5/z=1/t=1 myvar
+list/e=5/z=1/t=1 transpose_yf(myvar) 
+list/F=25/z=1/t=1 myvar
+list/F=25/z=1/t=1 transpose_ye(myvar) 
+
+list/e=5/y=1/t=1 myvar
+list/e=5/y=1/t=1 transpose_zf(myvar) 
+list/F=25/y=1/t=1 myvar
+list/F=25/y=1/t=1 transpose_ze(myvar) 
+
+list/e=5/y=1/z=1 myvar
+list/e=5/y=1/z=1 transpose_tf(myvar) 
+list/F=25/y=1/z=1 myvar
+list/F=25/y=1/z=1 transpose_te(myvar) 
 
 can var /all
 set grid abstract
@@ -27,4 +90,5 @@ can axis taxs
 can axis zaxs
 can axis yaxs
 can axis xaxs
-
+can axis eaxs
+can axis faxs
diff --git a/bench/bn_true_monthly.jnl b/bench/bn_true_monthly.jnl
new file mode 100644
index 0000000..b46689f
--- /dev/null
+++ b/bench/bn_true_monthly.jnl
@@ -0,0 +1,164 @@
+! 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
+! When writing a TRUEMONTH axis, write the correct coordinates using the original
+! units if it came from a dataset, or using units of days if it's user-defined.
+
+! See known error conditions below
+
+
+! For comparison, define regularly-spaced monthly axis of the sort we've always defined
+
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2000/units=month/edges t_reg_month
+sh axis/t t_reg_month
+
+! true-monthly axes, t0 at start of axis
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2010/monthly taxis
+sh axis/t taxis
+
+! t0 before start of axis
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+
+! default time origin is start of month of first month
+define axis/t=1-jul-2010:1-jan-2012:1/monthly taxis
+sh axis/t taxis
+
+! Cell edges at mid-month
+define axis/t=15-mar-2010:15-dec-2011:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+
+! other calendars JULIAN
+define axis/cal=julian/t=1-jan-2011:31-jul-2012:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+
+! default time origin
+define axis/cal=julian/t=15-mar-2010:15-dec-2011:1/monthly taxis
+sh axis/t taxis
+
+! other calendars NOLEAP
+define axis/cal=noleap/t=1-jan-2011:31-jul-2012:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+
+! not at first of month
+define axis/cal=julian/t=15-mar-2010:15-dec-2011:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+
+! other calendars 360_day
+define axis/cal=360_day/t=1-jan-2010:30-jul-2011:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+
+! Writing data, including a leap year
+
+define axis/t=3-mar-2011:3-jan-2013:1/monthly/t0=1-jan-2010 taxis
+def var tt = t[gt=taxis]
+save/clobber/file=a.nc tt
+
+can var/all
+use a
+sh dat/att
+sh grid tt
+sh axis/t taxis
+
+can dat/all
+
+define axis/t=3-mar-2011:3-jan-2013:1/monthly/t0=1-jan-2010/calendar=julian taxis
+def var tt = t[gt=taxis]
+save/clobber/file=a.nc tt
+
+can var/all
+use a
+sh dat/att
+sh grid tt
+sh axis/t taxis
+
+can dat/all
+
+define axis/t=3-mar-2011:3-jan-2013:1/monthly/t0=1-jan-2010/calendar=360_day taxis
+def var tt = t[gt=taxis]
+save/clobber/file=a.nc tt
+
+can var/all
+use a
+sh dat/att
+sh grid tt
+sh axis/t taxis
+
+! Without date range spec,
+def axis/monthly/t0=1-jan-0000/t=1:24:1 taxis
+sh axis/t taxis
+
+! With T0 later than year 0
+def axis/monthly/t0=1-jan-2000/t=1:24:1 taxis
+sh axis/t taxis
+
+! Default T0, non-calendar t def
+define axis/monthly/t=1:36:1 taxis
+sh axis/t taxis
+
+! modulo 
+define axis/t=1-jan-2010:31-dec-2010:1/t0=1-jan-2000/monthly/modulo taxis
+
+let var = {1,2,3,4,5,6,7,8,9,10,11,12}
+let tvar = reshape(var,t[gt=taxis])
+list/L=1:23 tvar
+! *sh* 3/17:  a possible alternative syntax:
+!  let var = TSEQUENCE({1,2,3,4,5,6,7,8,9,10,11,12})
+!  let tvar = var[gt=taxis at asn]
+! Since this is a fairly common need -- creating a line along some axis
+! should we offer a new function AXSEQUENCE(array, axis)  ?
+
+! Striding on a monthly axis
+
+def axis/monthly/t0=1-jan-2000/t=1-jan-2000:31-dec-2004:1/unit=monthly taxis
+!sh axis/t/l=1:14 taxis
+let tt = t[gt=taxis]
+list tt[l=1:6:2]
+
+list/prec=6 tt[l=1:60:12]
+
+! From a file
+save/file=a.nc/clobber tt
+can dat/all; can var/all
+use a
+list/prec=6 tt[l=1:60:12]
+
+! DEFINE AXIS/MONTHLY warnings and error conditions:
+
+! Not an error - /EDGES is ignored, as it's the default
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2000/monthly/edges taxis
+sh axis taxis
+
+! Not an error - /UNITS=month is the default
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2000/monthly/units=months taxis
+sh axis taxis
+
+set mode ignore
+! not all months have day 30, cannot start at day 30
+define axis/t=30-mar-2010:30-dec-2011:1/monthly taxis
+
+! Units of other than months is an error
+define axis/t=1-jan-2010:31-jul-2011:30/t0=1-jan-2000/monthly/units=days taxis
+
+! /NPOINTS, /BOUNDS, /FROMDATA are not allowed. Errors in start:end:del
+define axis/t=1-jan-2010:31-dec-2012:1/t0=1-jan-2000/monthly/npoints=13 taxis
+
+! missing delta-t
+define axis/t=1-jan-2010:31-dec-2012/t0=1-jan-2000/monthly taxis
+
+! delta-t must be 1
+define axis/t=1-jan-2010:31-dec-2012:2/t0=1-jan-2000/monthly taxis
+
+! irregular or from-data
+define axis/t/t0=1-jan-2000/monthly taxis = {123,124,126}
+
+define axis/from/t/t0=1-jan-2001/monthly/edges taxis = {5,6,6,6,7}
+
+! bounds
+def axis/t/t0=1-jan-2000/monthly/bounds tax={1.2, 2, 3.2, 5, 7, 8.4, 9}, {0.5,1.5, 1.5,2.5, 2.5,3.5, 3.5,6.5, 6.5,7.5, 7.5,8.5, 8.5,9.5}
+
+! Must be T direction (do we need /F=?)
+define axis/x=1:5:1/monthly aaxis
+
+cancel mode ignore
diff --git a/bench/bn_unquoted_args.jnl b/bench/bn_unquoted_args.jnl
index 5215331..ea51d52 100644
--- a/bench/bn_unquoted_args.jnl
+++ b/bench/bn_unquoted_args.jnl
@@ -48,15 +48,15 @@ use tmp/test1.nc,"tmp/test2.nc", tmp/test3.nc
 show data/brief
 canc data/all
 
-IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
-  use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+  use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
   show data/brief
   canc data/all
-  use http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+  use http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
   show data/brief
   canc data/all
 
-  use tmp/test1.nc, "tmp/test2.nc", http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+  use tmp/test1.nc, "tmp/test2.nc", http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
   show data/brief
   canc data/all
 ELSE
diff --git a/bench/bn_xml_output.jnl b/bench/bn_xml_output.jnl
index 80b8f44..ad137b8 100644
--- a/bench/bn_xml_output.jnl
+++ b/bench/bn_xml_output.jnl
@@ -2,10 +2,14 @@
 ! 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.
-
+!
 ! 22-Feb-2005 USE SHO AXIS/XML `temp,return=taxis` instead
 ! of naming the axes; other axes of the same name (e.g. TIME) 
 ! may have been defined in other benchmark scrips.
+!
+! 24-Oct-2016 Changes in Ferret, handling of grid and datatype
+! info. Order of listing in xml output, ferret_data_type is listed
+* for all variables
 
 USE levitus_climatology.cdf
 
@@ -88,3 +92,8 @@ USE a
 LET t3 = tvar[t="15-jan-0000:00:00":"15-feb-0000:00:00"@AVE]
 SHOW VAR/XML
 
+! Test getting the data type of a user-defined variable
+
+let/d=a dates = tax_datestring(t[gt=tvar], tvar, "days")
+SHOW VAR/XML dates
+SHO DATA/VAR/XML 1
diff --git a/bench/bug2445.nc b/bench/bug2445.nc
new file mode 100644
index 0000000..c540619
Binary files /dev/null and b/bench/bug2445.nc differ
diff --git a/bench/ddsg_socat3.jnl b/bench/ddsg_socat3.jnl
new file mode 100644
index 0000000..f2f6d1e
--- /dev/null
+++ b/bench/ddsg_socat3.jnl
@@ -0,0 +1,240 @@
+! ddsg_socat3.jnl
+! ACM 5/16/2014
+
+! Compute and apply sampling for a single-trajectory dsg file
+! using piecewise linear interpolation
+
+! Uses the external function piecewise3.so
+! This script contains a list of the variables in the input
+! files. This allows us to create the decimated dsg file
+! with the exact same names as in the input files.
+!
+! WOCE flags are not used in the decimated datasets, as they may change in the
+! full data. Keep them in the file for a consistent set of variables, but mark 
+! them with the unused flag "M".
+
+! arguments: 
+!  input_file single dsg file
+!  output_file to write
+! 
+
+DEFINE SYMBOL infile = ($1)
+DEFINE SYMBOL outfile = ($2)
+
+! Set the tolerances and control parameter
+
+DEFINE SYMBOL tol_lon = 1
+DEFINE SYMBOL tol_lat = 1
+DEFINE SYMBOL tol_var = 4
+
+LET tol1 = ($tol_lon)
+LET tol2 = ($tol_lat)
+let tol3 = ($tol_var)
+
+LET control = 2
+
+USE "($infile)"
+
+! The names in the input and output file must match.
+! To accomplish that we will rename the variables in the input file.
+! varnames_list is a stable list of the original names. Check that it 
+! matches what's in the file, and rename the file variables.
+
+LET varnames =  ..varnames
+LET nvars =  ..nvars
+
+! Will also add nobs_deci.
+
+LET varnames_traj = {\
+"num_obs","expocode","dataset_name","vessel_name","organization",\
+"geospatial_lon_min","geospatial_lon_max","geospatial_lat_min",\
+"geospatial_lat_max","time_coverage_start","time_converage_end",\
+"investigators","socat_version","all_region_ids","socat_doi",\
+"qc_flag","nobs_full"}
+
+! The text is too long for one Ferret command. Define two variables and concatenate them.
+
+LET varnames_list1 = {\
+"sample_number","year","month","day","hour","minute","second",\
+"longitude","latitude","sample_depth","sal","Temperature_equi",\
+"temp","Temperature_atm","Pressure_equi","Pressure_atm",\
+"xCO2_water_equi_temp_dry_ppm","xCO2_water_sst_dry_ppm",\
+"xCO2_water_equi_temp_wet_ppm","xCO2_water_sst_wet_ppm",\
+"pCO2_water_equi_temp","pCO2_water_sst_100humidity_uatm",\
+"fCO2_water_equi_uatm","fCO2_water_sst_100humidity_uatm",\
+"xCO2_atm_dry_actual","xCO2_atm_dry_interp",\
+"pCO2_atm_wet_actual","pCO2_atm_wet_interp",\
+"fCO2_atm_wet_actual","fCO2_atm_wet_interp",\
+"delta_xCO2","delta_pCO2","delta_fCO2",\
+"xH2O_equi","relative_humidity","specific_humidity",\
+"ship_speed","ship_dir","wind_speed_true","wind_speed_rel",\
+"wind_dir_true","wind_dir_rel","WOCE_CO2_water","WOCE_CO2_atm"\
+}
+LET varnames_list2 = {\
+"woa_sss","pressure_ncep_slp",\
+"fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm",\
+"fCO2_insitu_from_xCO2_water_sst_dry_ppm",\
+"fCO2_from_pCO2_water_water_equi_temp",\
+"fCO2_from_pCO2_water_sst_100humidity_uatm",\
+"fCO2_insitu_from_fCO2_water_equi_uatm",\
+"fCO2_insitu_from_fCO2_water_sst_100humidty_uatm",\
+"fCO2_from_pCO2_water_water_equi_temp_ncep",\
+"fCO2_from_pCO2_water_sst_100humidity_uatm_ncep",\
+"fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa",\
+"fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa",\
+"fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep",\
+"fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep",\
+"fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa",\
+"fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa",\
+"fCO2_recommended","fCO2_source","delta_temp","region_id",\
+"calc_speed","etopo2","gvCO2","dist_to_land",\
+"day_of_year","time","lon360","tmonth"\
+}
+
+LET varnames_list = XCAT(varnames_list1, varnames_list2)
+
+LET ntraj = `varnames_traj,return=isize`
+LET nlist = `varnames_list,return=isize`
+
+!IF `nvars NE (ntraj+nlist)` THEN
+!   say **ERROR List of variables in the script does not match list in the dataset 
+!   say **ERROR "($infile)" has `nvars` variables, script list has `nlist`
+!   exit/script
+!ENDIF
+
+! Check that the variable names in the lists are in the file.
+! If so rename the variables in the input file to varname_in
+
+
+SET VAR/NAME=nobs_deci_in nobs_deci
+
+LET vdiff = 0
+REPEAT/range=1:`ntraj`/name=v (DEFINE SYMBOL  vv = `v`;\
+ DEFINE SYMBOL vname = `varnames_traj[i=($vv)]`;\
+ IF `IS_ELEMENT_OF_STR_N(varnames, "($vname)") EQ 0` THEN LET vdiff = `v`;\
+ IF `vdiff GT 0` THEN EXIT/LOOP;\
+ SET VAR/NAME=($vname)_in ($vname))
+
+LET vdiff = 0
+REPEAT/range=1:`nlist`/name=v (DEFINE SYMBOL  vv = `v`;\
+ DEFINE SYMBOL vname = `varnames_list[i=($vv)]`;\
+ IF `IS_ELEMENT_OF_STR_N(varnames, "($vname)") EQ 0` THEN LET vdiff = `v`;\
+ IF `vdiff GT 0` THEN EXIT/LOOP;\
+ SET VAR/NAME=($vname)_in ($vname))
+
+IF `vdiff GT 0` THEN
+   say **ERROR List of variables in the script does not match list in the dataset "($infile)"
+   say **ERROR variable lists have *** ($vname) *** which is not in the file
+   exit/script
+ENDIF
+
+
+! Which longitude to use for decimating: lon360 or longitude
+
+let dlon = minmax(longitude_in[i=@ddf])
+let dlon360 = minmax(lon360_in[i=@ddf])
+
+IF `abs(dlon[i=@max]) LT abs(dlon360[i=@max])` THEN
+   DEFINE SYMBOL lonvar = longitude_in
+ELSE
+   DEFINE SYMBOL lonvar = lon360_in
+ENDIF
+
+LET sample_pts= piecewise3(($lonvar), latitude_in, fCO2_recommended_in, `control`, `tol1`, `tol2`, `tol3`)
+LOAD sample_pts
+
+DEFINE SYMBOL output_filename = ($outfile)
+
+! File will get all the global attributes
+
+set att/out=all .
+can mode upcase
+
+! Single-point axis for instance direction
+! The set axis/name is to make sure Ferret uses lowercase
+
+SET AXIS/NAME=traj_in `num_obs_in,RETURN=eaxis`
+DEF AXIS/E=1:1:1 traj_def
+SET AXIS/NAME=traj traj_def
+LET ee = _e[ge=traj]
+
+! obs axis for sampled observation variables
+
+SET AXIS/NAME=obj_in `longitude_in,RETURN=xaxis`
+LET nsample = `sample_pts[i=@ngd]`
+DEFINE AXIS/x=1:`nsample`:1 obs_def
+SET AXIS/NAME=obs obs_def
+LET samplevar = sample_pts[gx=obs at asn]
+
+! New num_obs variable with number of sampled data
+! Make sure it has the right sample_dimension attribute
+
+LET/BAD=-99 num_obs = reshape(nsample,ee)
+SET ATT/LIKE=num_obs_in num_obs
+DEFINE ATT/QUIET/OUTPUT num_obs.sample_dimension = "`num_obs_in.sample_dimension`"
+SET ATT/OUTPUT=all num_obs
+DEFINE SYMBOL num_obs_sampled = `nsample`
+
+! write a global attribute with the decimation parameters.
+DEFINE ATT/QUIET/OUTPUT ..decimation =  \
+"`nobs_full_in` original number of obs. Piecewise decimated to ($num_obs_sampled) obs using tolerances: lon ($tol_lon), lat ($tol_lon), fco2_rec ($tol_var) ($comment)" 
+
+SAVE/QUIET/FILE="($outfile)"/OUTTYPE=INT/CLOBBER num_obs
+
+
+! Write the traj variables
+
+REPEAT/RANGE=2:`ntraj`/NAME=q (DEFINE SYMBOL qq = `q`;\
+DEFINE SYMBOL vname = `varnames_traj[i=($qq)]`;\
+DEFINE SYMBOL vtype = `($vname)_in,RETURN=dtype`;\
+DEFINE SYMBOL qual = /OUTTYPE=($vtype);\
+IF ($vtype"0|CHAR>1|*>0") THEN CAN SYM qual;\
+LET ($vname) = ($vname)_in[ge=traj at asn];\
+SET ATT/LIKE=($vname)_in ($vname);\
+SET ATT/OUTPUT=all ($vname);\
+if `strindex("($vtype)", "INT") gt 0` THEN set var/bad=`($vname)_in,return=bad` ($vname);\
+SAVE/QUIET/FILE="($outfile)"/APPEND($qual) ($vname))
+
+! add nobs_deci on the same axis
+LET/TITLE="`nobs_deci_in,RETURN=title`"/BAD=-99 nobs_deci = ($num_obs_sampled) + 0* nobs_full
+DEFINE ATTRIBUTE/OUTPUT/OUTPUT nobs_deci.note = "Piecewise decimated"
+SAVE/QUIET/FILE="($outfile)"/APPEND/OUTTYPE=int nobs_deci
+
+! Sample the obs variables. Keep attributes, make missing-data flags match.
+
+! Numeric variables
+REPEAT/RANGE=1:`nlist`/NAME=q (DEFINE SYMBOL qq = `q`;\
+DEFINE SYMBOL vname = `varnames_list[i=($qq)]`;\
+IF ($vname"0|sample_number>1|*>0") THEN EXIT/CYCLE;\
+DEFINE SYMBOL vtype = `($vname)_in,RETURN=dtype`;\
+IF ($vtype"0|CHAR>1|*>0") THEN EXIT/CYCLE;\
+LET/BAD=`($vname)_in,RETURN=bad,PREC=9` ($vname) = SAMPLE_FAST_I(($vname)_in, samplevar);\
+SET ATT/LIKE=($vname)_in ($vname);\
+SET ATT/OUTPUT=all ($vname);\
+SAVE/QUIET/APPEND/OUTTYPE=($vtype)/FILE="($outfile)" ($vname);\
+)
+
+! sample_number will be the sequence number within the decimated data
+! We can use this to pick up the pen when drawing lines where the constraints 
+! (on the decimated set) have skipped data
+
+LET/BAD=-1/TITLE="sequence number for decimated dataset" sample_number = i[gx=latitude]
+SAVE/QUIET/APPEND/OUTTYPE=INT/FILE="($outfile)" sample_number
+
+! Character variables
+
+REPEAT/RANGE=1:`nlist`/NAME=q (DEFINE SYMBOL qq = `q`;\
+DEFINE SYMBOL vname = `varnames_list[i=($qq)]`;\
+DEFINE SYMBOL vtype = `($vname)_in,RETURN=dtype`;\
+IF `($vtype"0|CHAR>1|*>0") EQ 0` THEN EXIT/CYCLE;\
+LET ($vname)_s = SAMPLEI(($vname)_in, samplevar);\
+LET ($vname) = RESHAPE(($vname)_s, x[gx=obs]);\
+SET ATT/LIKE=($vname)_in ($vname);\
+SET ATT/OUTPUT=all ($vname);\
+SAVE/QUIET/APPEND/FILE="($outfile)" ($vname) )
+
+can data/all
+can var/all
+can sym/all
+can axis/all
+
diff --git a/bench/delim_datetime.csv b/bench/delim_datetime.csv
new file mode 100644
index 0000000..f0fb0d6
--- /dev/null
+++ b/bench/delim_datetime.csv
@@ -0,0 +1,8 @@
+example file with Euro-date/time and US date/time records, 
+and with dates in the 2020 decade.
+index,euro-date-time, us-date-time, us-date, eurodate
+1, 22/01/14 01:00:00, 01/22/20 06:40:00, 5/20/95, 20/5/91
+2, 22/01/14 02:20:00, 01/22/21 07:40:00, 5/20/05, 20/6/91
+3, 22/01/14 03:40:00, 01/22/22 08:40:00, 5/20/15, 20/7/91
+4, 22/01/14 04:00:00, 01/22/23 09:40:00, 5/20/25, 20/8/91
+5, 22/01/14 05:20:00, 01/22/24 10:40:00, 5/20/35, 20/10/91
diff --git a/bench/delim_yyyy.csv b/bench/delim_yyyy.csv
new file mode 100644
index 0000000..9c0a96d
--- /dev/null
+++ b/bench/delim_yyyy.csv
@@ -0,0 +1,8 @@
+example file with YYYY/DD/MM formats. 0000/00/00 is returned as missing
+index, date, datetime  (or edate, edatetime)
+1, 2012/01/14, 2001/12/20 06:40:00
+2, 2012/01/15, 2001/12/20 07:40:00
+3, 2012/01/17, 2001/12/20 08:40:00
+4, 2012/01/18, 2001/12/20 09:40:00
+5, 0000/00/00, 2001/12/20 11:40:00
+6, 2012/01/19, 2001/12/20 14:40:00
diff --git a/bench/err540_strides_rev.jnl b/bench/err540_strides_rev.jnl
index bc01c88..0ee052b 100644
--- a/bench/err540_strides_rev.jnl
+++ b/bench/err540_strides_rev.jnl
@@ -1,4 +1,5 @@
 ! err540_strides_rev.jnl
+! V702: *sh* 2/2017 - modified this bench script
 
 ! reported Feb '02
 ! fixed April 17, '02
@@ -33,7 +34,10 @@ cancel var/all
 
 set mode stupid
 set mode diag
-set mem/size=0.05
+! *sh* 2/17 - such a small memory size makes it impossible to succeed
+! with the command under the new dynamic memory management
+!set mem/size=0.05
+set mem/size=1   ! use this larger size, instead
 show mem/free
 
 use/ord=x-y test_100x100.nc
diff --git a/bench/err570_dods_url_label.jnl b/bench/err570_dods_url_label.jnl
index 3f8d210..3a0c332 100644
--- a/bench/err570_dods_url_label.jnl
+++ b/bench/err570_dods_url_label.jnl
@@ -3,7 +3,7 @@
 ! Bug 1098. Look for the label with the URL: it should include
 ! everything up to the last slash.  
 ! acm 11/04
-
+! acm* 3/17 check the URL with TEST_OPENDAP befor trying to open it.
 
 !! Change to another dataset, our server down...
 !!use  "http://www.ferret.noaa.gov/cgi-bin/nph-nc/data/bn_strides.cdf"
@@ -33,8 +33,10 @@
 !!plot/x=180/y=0/k=1 temp
 !!ppl list labels
 
-
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/coads_climatology.nc"
+! If we cant open this, just bail on the test
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/coads_climatology.nc") NE 0` THEN EXIT/SCRIPT
+ 
+use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/coads_climatology.nc"
 sh data
 plot/x=180/y=0 sst 
-ppl list labels
\ No newline at end of file
+ppl list labels
diff --git a/bench/err62_axis_stride_off.jnl b/bench/err62_axis_stride_off.jnl
index 5c9ee04..6352ece 100644
--- a/bench/err62_axis_stride_off.jnl
+++ b/bench/err62_axis_stride_off.jnl
@@ -1,5 +1,6 @@
 ! err62_axis_stride_off.jnl
 ! fixing bug 1689: offset shifted by 1 so /OFFSET=0 >> start index = 1
+! 1/2017 *acm* changes in output due to backing off auto-detection of truemonth axes, tkt 2497
 
 USE truemonth.nc
 
diff --git a/bench/err682_xact_high_prec.jnl b/bench/err682_xact_high_prec.jnl
index 5aa9ebb..3ca32bb 100644
--- a/bench/err682_xact_high_prec.jnl
+++ b/bench/err682_xact_high_prec.jnl
@@ -4,6 +4,8 @@
 
 ! shows that the @XACT regridding in double-precision Ferret is broken.
 
+! 3/17 *sh* - broke after change to RESHAPE in GCF_IMPOSE_AXES
+!           - fixed it by cleaning up the definition of var_regrid
 
 Let time = {\
  22585.3295833333,\
@@ -20,8 +22,11 @@ Let time = {\
 Define Axis /T /From /T0=1-JAN-1950 /Units=days my_axis = time
 
 Let fake_var = T[GT=my_axis]
-Let var = RANDU( fake_var )
-Let var_regrid = RESHAPE( var, fake_var )
+! this was the definition prior to 3/17
+!Let var = RANDU( fake_var )
+!Let var_regrid = RESHAPE( var, fake_var )
+Let var_regrid = RANDU( fake_var )   ! new definition
+
 
 List /T="2-nov-2011 07:54":"2-nov-2011 08:04" var_regrid
 
diff --git a/bench/err684_FillValue_xml.jnl b/bench/err684_FillValue_xml.jnl
index 79ce1ec..30394cf 100644
--- a/bench/err684_FillValue_xml.jnl
+++ b/bench/err684_FillValue_xml.jnl
@@ -1,7 +1,7 @@
 ! err684_FillValue_xml.jnl
 ! ACM 6/2013 
 !
-! See the dataset at http://ferret.pmel.noaa.gov/thredds/dodsC/woa09_1deg_monthly
+! See the dataset at http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/woa09_1deg_monthly
 ! where the "number of" variables have  _FillValues attributes = -2147483647
 ! This value was being written to the xml headers as a float, without enough precision.
 ! See las ticket #761, fixes in show_data_set_vars_xml.F
diff --git a/bench/err686_cancel_invalid_var.jnl b/bench/err686_cancel_invalid_var.jnl
index 7b96d83..47773fa 100644
--- a/bench/err686_cancel_invalid_var.jnl
+++ b/bench/err686_cancel_invalid_var.jnl
@@ -1,5 +1,7 @@
 ! err686_cancel_invalid_var
 ! ticket 2159
+! (Note that the shade of a one-cell or less region is
+!  allowed fully as of Ferret v7.1.  See ticket 2494)
 
 ! The cancel variable ran into an incorrect setting 
 ! for variable-in-memory 
diff --git a/bench/err696_mem_err_report.jnl b/bench/err696_mem_err_report.jnl
index fed645d..ffa5c0a 100644
--- a/bench/err696_mem_err_report.jnl
+++ b/bench/err696_mem_err_report.jnl
@@ -1,5 +1,9 @@
 ! err696_mem_err_report.jnl
 ! 1/21/2016 *acm*
+! V702: *sh* 2/17 - This script depends upon the specific formatting
+! of the error string, when memory is exceeded
+! Tweaked it to match the new formatting
+
 ! Ticket 2354: The error message shows the wrong number for memory needed.
 !
 ! Try to load some data larger than the default amount of memory
@@ -24,15 +28,12 @@ load/l=1:5 bigvar
 show sym fer_last_error
 cancel mode ignore
 
-! Get the number Ferret says it needs
-let ms1 = `strrindex("($fer_last_error)", ":")`
-let ms2 = `strindex("($fer_last_error)", "Mword")`
-let siz = substring("($fer_last_error)", `ms1+1`, `ms2-ms1-1`)
-
-! Increase memory accordingly
+! V702:  we no longer have to parse the error string.
+! Instead look at PEAK_MEMORY 
 
-set mem/siz=`siz`
+SET MEMORY/SIZE=15
 load/l=1:5 bigvar
+SHOW SYMBOL ($PEAK_MEMORY)
 
 ! restore default
 set mem/siz=`memsize`
diff --git a/bench/err696_multiple_slashes.jnl b/bench/err696_multiple_slashes.jnl
index 82759d2..fe4aa0a 100644
--- a/bench/err696_multiple_slashes.jnl
+++ b/bench/err696_multiple_slashes.jnl
@@ -25,8 +25,8 @@ def sym regqual = /x=300:360///y=-20:20/L=3
 fill/($regqual)($plotqual) sst
 
 ! command lines with urls unchanged
-IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
-   set data///format=cdf http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+   set data///format=cdf http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
    let//d=coads_sst myvar = 1
    sh dat
    cancel data/all
diff --git a/bench/err700_aggT_5d.jnl b/bench/err700_aggT_5d.jnl
new file mode 100644
index 0000000..8f3aa5f
--- /dev/null
+++ b/bench/err700_aggT_5d.jnl
@@ -0,0 +1,21 @@
+! err700_aggT_5d.jnl
+! 1/6/2017 ACM  Ticket 2493
+! When there are E or F axes in the grid, the multi-file reading
+! for time aggregations or mc files corrupted the data.
+
+!  The two files have data in different ranges
+
+! data range in 260-270
+use aggT_5d1.nc
+list/i=3/j=2 thetao[d=1]
+
+! data range in 270-280
+use aggT_5d2.nc
+list/i=3/j=2 thetao[d=2]
+can data/all
+
+! Now make an aggregation. Previously the data was wrapped onto
+! the grid incorrectly, with zero in M=7 and higher
+
+define data/agg/t myagg = aggT_5d1.nc, aggT_5d2.nc
+list/i=3/j=2 thetao
diff --git a/bench/err700_aggregate_from_fmrc.jnl b/bench/err700_aggregate_from_fmrc.jnl
new file mode 100644
index 0000000..c682216
--- /dev/null
+++ b/bench/err700_aggregate_from_fmrc.jnl
@@ -0,0 +1,18 @@
+! err700_aggregate_from_fmrc.jnl
+! 1/2017 *acm*
+! (See ticket 2498)
+! Previously an incorrect definition of the F axis when datasets from 
+! thredds fmrc.xml are used in a Ferret F aggregation
+! This was a bug in the true-month time axes in an un-released Ferret executable.
+
+IF `TEST_OPENDAP(\
+"http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Hawaii_Regional_Ocean_Model_RUN_2017-01-01T00:00:00Z") NE 0` \
+ THEN EXIT/SCRIPT
+
+use http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Hawaii_Regional_Ocean_Model_RUN_2017-01-01T00:00:00Z
+use http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Hawaii_Regional_Ocean_Model_RUN_2017-01-02T00:00:00Z
+use http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Hawaii_Regional_Ocean_Model_RUN_2017-01-03T00:00:00Z
+
+DEFINE DATA/AGGREGATE/F testdata = 1,2,3
+! F axis should be  31-DEC-2016 to 02-JAN-2017
+SHOW GRID zeta
diff --git a/bench/err700_aggt_dup_grids.jnl b/bench/err700_aggt_dup_grids.jnl
new file mode 100644
index 0000000..43ac8c7
--- /dev/null
+++ b/bench/err700_aggt_dup_grids.jnl
@@ -0,0 +1,31 @@
+! err700_aggt_dup_grids
+! 2/15/2017 ACM
+! Bug 2507: new time axis is identical in two tseries aggregation.
+!  It exists in more than one grid. Previously the new time axis
+!  was swapped into only one of the grids for the second aggregation.
+
+! Define some datsets, with two variables with different grids each 
+! using a common time axis.
+
+use  tmp/tagg_irreg_1.nc
+define axis/x=1:1:1 xax1
+let newvar = x[gx=xax1] + myvar
+save/clobber/file=a1.nc myvar, newvar
+can dat/all
+use  tmp/tagg_irreg_2.nc
+save/clobber/file=a2.nc myvar, newvar
+
+can dat/all; can var/all
+
+! Define two aggregations; the second should share the time axis
+! that was set up in the first.
+sp ln -sf a1.nc b1.nc
+sp ln -sf a2.nc b2.nc
+
+tseries a2var = a1.nc, a2.nc
+tseries b2var = b1.nc, b2.nc
+
+! previously the time axis of the second variable in b2var was 
+! listed as length 10
+sh dat
+
diff --git a/bench/err700_attribute_parsing.jnl b/bench/err700_attribute_parsing.jnl
new file mode 100644
index 0000000..ef0e736
--- /dev/null
+++ b/bench/err700_attribute_parsing.jnl
@@ -0,0 +1,24 @@
+! err700_attribute_parsing.jnl
+! See ticket 2465. Parsing errors for commands with attribute references 
+! acm  9/2016
+
+! Write a simple file and then try to get at its attributes.
+
+let/title="my variable" a = 1
+save/clob/file="a.nc"/title="my file" a
+can var a
+use a.nc
+
+! These were ok
+list/nohead ..title
+list/nohead a.long_name
+
+! errors
+list/nohead ..title EQ " "
+list/nohead (..title)
+list/nohead ..title + "text"
+list/nohead a.long_name EQ " "
+
+list/nohead strlen(a.long_name)
+list/nohead strindex(..title, "file")
+
diff --git a/bench/err700_ax_horiz.jnl b/bench/err700_ax_horiz.jnl
new file mode 100644
index 0000000..c4a90d7
--- /dev/null
+++ b/bench/err700_ax_horiz.jnl
@@ -0,0 +1,26 @@
+! err700_ax_horiz.jnl
+! 8/30/2016 *acm* Ticket 2468
+! Symbol axis_horiz was corrupted by overlaying a 
+! set of points using a list in other than the same
+! direction as the axis.
+
+use coads_climatology
+shade/l=1/pal=grayscale/x=100:140/y=-10:30 sst
+
+let xpts={111,115,120,129}
+let ypts = {-5,10,20,23}
+
+
+! this is ok; ax_horiz = X, ax_vert = y
+plot/vs/oversym/color=red/thick/siz=0.2 xpts,ypts
+sh sym ax*
+
+! Now overlay points whose grid is in the E direction
+
+let expts = esequence(xpts)
+let eypts = esequence(ypts)
+shade/l=1/pal=grayscale/x=100:140/y=-10:30 sst
+plot/vs/oversym/color=red/thick/siz=0.2 expts,eypts
+
+! this was incorrect, ax_horiz had changed to E
+sh sym ax*
diff --git a/bench/err700_axis_dates.jnl b/bench/err700_axis_dates.jnl
new file mode 100644
index 0000000..ca5c120
--- /dev/null
+++ b/bench/err700_axis_dates.jnl
@@ -0,0 +1,48 @@
+! err700_axis_dates.jnl
+! See ticket 2483. 11/10/2016 ACM
+!
+! The axis-ends symbols XAXIS_MIN,XAXIS_MAX, YAXIS_MIN,YAXIS_MAX
+! were not accurate for time axes, which get padded out to the nearest
+! time unit, e.g. whole months etc.
+
+! This axis gets plotted from 1-oct-2015 to the end of 30-apr-2016
+
+def axis/t=23-oct-2015:17-apr-2016:10/units=hours taxis
+
+! Define some variables
+let tt = t[gt=taxis]
+let var = cos(L[gt=taxis]/30)
+define axis/x=1:52:4 xaxis
+define axis/y=1:52:4 yaxis
+let xtvar = x[gx=xaxis] + var
+let ytvar = y[gy=yaxis] + var
+
+! 1-D time plot
+plot var
+
+! Previously these were set to the axis-coordinate
+! ends not the drawn axis ends.
+list tax_datestring(($xaxis_min), tt, "minutes"), tax_datestring(($xaxis_max), tt, "minutes")
+
+! 2D plots
+
+shade ytvar
+list tax_datestring(($xaxis_min), tt, "minutes"), tax_datestring(($xaxis_max), tt, "minutes")
+
+shade xtvar ! T axis on the vertical axis
+list tax_datestring(($yaxis_min), tt, "minutes"), tax_datestring(($yaxis_max), tt, "minutes")
+
+
+! Short time axis, plot ends extended out to the nearest hour
+def axis/t="23-oct-2015:01:15":"23-oct-2015:12:30":15/units=minutes taxis
+
+plot var
+list tax_datestring(($xaxis_min), tt, "minutes"), tax_datestring(($xaxis_max), tt, "minutes")
+
+shade ytvar
+list tax_datestring(($xaxis_min), tt, "minutes"), tax_datestring(($xaxis_max), tt, "minutes")
+
+shade xtvar
+list tax_datestring(($yaxis_min), tt, "minutes"), tax_datestring(($yaxis_max), tt, "minutes")
+
+
diff --git a/bench/err700_clim_attr_expression.jnl b/bench/err700_clim_attr_expression.jnl
new file mode 100644
index 0000000..a0567c1
--- /dev/null
+++ b/bench/err700_clim_attr_expression.jnl
@@ -0,0 +1,22 @@
+! err700_clim_attr_expression.jnl
+! Ticket 2489
+! 11/22/2016
+!
+! The attribute climatology_time_range is created whena variable comes 
+! from a climatological regridding. It can be created only for user-defined 
+! variables not for an expression. Previously the SAVE command resulted in a crash.
+! (See bn_climatology_attr.jnl for more examples).
+
+! Define a monthly axis
+define axis/t=1-feb-1980:1-feb-2003/npoints=276/unit="day"/t0=1-jan-1900 tax
+
+let tvar = t[gt=tax]
+let clim1 = tvar[gt=month_irreg at mod]
+save/nobounds/file=a.nc/clobber 3*clim1
+
+can dat/all; use a.nc
+
+! The variable did not get a climatology_time_range attribute
+let vname = ..varnames
+show att `vname[i=1]`
+
diff --git a/bench/err700_coords.jnl b/bench/err700_coords.jnl
new file mode 100644
index 0000000..de27546
--- /dev/null
+++ b/bench/err700_coords.jnl
@@ -0,0 +1,24 @@
+! err700_coords.jnl
+! 1/17/2017
+! From bug 2496. Data with almost-repeating values used to define an axis
+
+use err700_coords.nc
+list/i=10:20/prec=16 du_coords, du_coords[i=@ddf]
+
+! The data has repeated coords, to 1.e15. Should be reported as micro-adjusted
+
+def ax/bounds/x/unit="degrees_east"/modulo=360 c2d_ax_x = du_coords[i=1:160], du_edges[i=1:161]
+
+
+sh axis c2d_ax_x
+let c = x[gx=c2d_ax_x]
+
+! for this region, the setup steps got data in index 11:31, then 
+! at the point of writing the index ragne was found to be 12:31
+
+set region/x=25:385
+set mode diag
+save/clob/file=a.nc c
+
+set mode /last diag
+
diff --git a/bench/err700_coords.nc b/bench/err700_coords.nc
new file mode 100644
index 0000000..bd604ea
Binary files /dev/null and b/bench/err700_coords.nc differ
diff --git a/bench/err700_decimate.jnl b/bench/err700_decimate.jnl
new file mode 100644
index 0000000..7f4f6ba
--- /dev/null
+++ b/bench/err700_decimate.jnl
@@ -0,0 +1,10 @@
+! err700_decimate.jnl
+! test decimation of SOCAT full-data DSG files
+!
+
+! Make sure the decimated file does not exist
+sp rm -f 492C19881104_dec.nc
+! Run the socat decimation script on a full-data DSG file
+go ddsg_socat3 492C19881104.nc 492C19881104_dec.nc
+! Dump the contents of the decimated-data DSG file
+sp ncdump -h 492C19881104_dec.nc >> all_ncdump.out
diff --git a/bench/err700_define_1pt_axis.jnl b/bench/err700_define_1pt_axis.jnl
new file mode 100644
index 0000000..372e6ce
--- /dev/null
+++ b/bench/err700_define_1pt_axis.jnl
@@ -0,0 +1,17 @@
+! err700_define_1pt_axis.jnl
+! Ticket 2499: regular axis, test for valid line_delta
+! ACM 7/6/2016
+
+
+def ax/t/bounds tax = 1, 0, 2
+show axis/t tax
+
+! check that reading such an axis from a file is ok
+let twelve = 12*t[gt=tax]
+
+save/file=a.nc/clobber twelve
+cancel var/all; cancel axis tax
+use a.nc
+sh dat
+sh axis/t tax
+
diff --git a/bench/err700_fmrcdiag.jnl b/bench/err700_fmrcdiag.jnl
new file mode 100644
index 0000000..a6f406f
--- /dev/null
+++ b/bench/err700_fmrcdiag.jnl
@@ -0,0 +1,35 @@
+! err700_fmrcdiag.jnl
+! these particular datasets (quarterly forecasts of two years of monthly data)
+! have times at regular intervals but at values (for 25 and 26) that are difficult 
+! to represent in binary
+!
+USE forecast24.nc
+USE forecast25.nc
+USE forecast26.nc
+USE forecast27.nc
+DEFINE DATA/AGGREGATE/F testdata = 1,2,3,4
+!
+! using the values of actual gives perfect forecasts; 
+! using the values of quirks has a sinusoidal error that get worse with greater lead time
+!
+SHOW GRID actual
+LIST /WIDTH=600 /X=120W/Y=50N/Z=50 actual
+SHADE /X=120W/Y=50N/Z=50 actual
+FRAME /FILE=forecast_actual.gif
+!
+! the diagonal should be a regular 3:1 stairstep on lower and upper
+! using actual should show single color on horizontal
+!
+LET /TITLE="actual (diag view)" diagview = actual[gt(tf_times)=tf_cal_t]
+SHOW GRID diagview
+LIST /WIDTH=600 /X=120W/Y=50N/Z=50 diagview
+SHADE /X=120W/Y=50N/Z=50 diagview
+FRAME /FILE=forecast_diagview.gif
+!
+! using actual should show single color on horizontal
+!
+LET /TITLE="actual (lead view)" leadview = actual[gt(tf_times)=tf_cal_t,gf(tf_times)=tf_lag_f]
+SHOW GRID leadview
+LIST /WIDTH=600 /X=120W/Y=50N/Z=50 leadview
+SHADE /X=120W/Y=50N/Z=50 leadview
+FRAME /FILE=forecast_leadview.gif
diff --git a/bench/err700_inherit_all.jnl b/bench/err700_inherit_all.jnl
new file mode 100644
index 0000000..4ca6cb1
--- /dev/null
+++ b/bench/err700_inherit_all.jnl
@@ -0,0 +1,25 @@
+! err700_inherit_all.jnl
+! Ticket 2447: If all attributes are inherited, missing-value flags
+! are wrong.
+
+! This non-standardfile has no missing-value attributes. 
+use no_miss_att.nc
+sh att a
+
+! Define a variable, using some missing-value flag
+let/bad=9999 b = if a ne 2 then a else 9999
+list b
+
+! Now inherit the attributes from variable a. 
+set att/like=a b
+show att b
+
+! The missing-value flag is not written, but the value 9999 is 
+save/file=a.nc/clobber b
+
+can var/all
+use a
+
+! Element 2 should be missing. Previously lists out the 9999. 
+list b
+
diff --git a/bench/err700_key.jnl b/bench/err700_key.jnl
new file mode 100644
index 0000000..dba9bfd
--- /dev/null
+++ b/bench/err700_key.jnl
@@ -0,0 +1,6 @@
+use coads_climatology
+set window/aspect=0.7 1
+shade/levels="(-inf)(0,1.3,0.025)(inf)"/key=continuous/set_up sst[t=@ave]*5e-2
+ppl shakey 1, 1, 0.12, 4, -1, 4
+ppl shade
+frame /file=err700_key.gif
diff --git a/bench/err700_legend_labels.jnl b/bench/err700_legend_labels.jnl
new file mode 100644
index 0000000..e9c0f64
--- /dev/null
+++ b/bench/err700_legend_labels.jnl
@@ -0,0 +1,68 @@
+! err700_legend_labels.jnl
+! See ticket 2231: 
+!   - consistent labeling of units
+!   - PLOT/KEY=title applies to PLOT/VS
+
+cancel symbol lab*
+use gt4d011.cdf
+
+! Previously vertical label had Deg C, legend labels had units.
+! Now label only the legend labels show the different units.
+set v ul; plot/l=1/k=1/y=0/key=title temp, taux, tauy
+annotate/norm/xpos=1/ypos=.5/halign=0/valign=-4/angle=-90/size=0.14 "Each label with units"
+
+sh sym lab*  ! laby is not used
+can sym lab*
+
+! Previously vertical label and legend labels had units.
+! Now label only the vertical axis with the common units.
+set v ur; plot/l=1/k=1/y=0/key=title taux, tauy
+annotate/norm/xpos=1/ypos=.5/halign=0/valign=-4/angle=-90/size=0.14 "Common Units, labeled on left"
+
+! legend labels now do not include units
+sh sym lab*
+can sym lab*
+
+! Define some variables with titles
+let/title="Temperature Avg"/units="`temp,return=units`" tmpave = temp[L=@ave,z=@ave]
+let/title="September Taux"/units="`taux,return=units`" taux_s = taux[t=23-SEP-1982, k=1]
+let/title="January Taux"/units="`taux,return=units`" taux_j = taux[t=4-jan-1983, k=1]
+
+! Set up a common set of axes for all variables
+set v lower
+plot/vs/sym=dot/y=0/nokey tmpave,taux_s,taux_j
+annotate/norm/xpos=1/ypos=.5/halign=0/valign=-4/angle=-90/size=0.14 "PLOT/VS with KEY=title"
+
+! Overlay; the legend titles are variable titles.
+plot/over/vs/color=red/thick/siz=0.14/y=0/key=title tmpave,taux_s
+plot/over/vs/color=green/thick/siz=0.14/y=0/key=title tmpave,taux_j
+
+frame/file=legend_1d_plots.gif
+
+! legend labels are titles
+sh sym lab*
+
+! Overlaying on a 2D field
+
+DEFINE AXIS/T="1-JAN-1980":"1-JAN-1990":5/UNITS=DAYS tdays
+DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
+
+LET/TITLE=XY my_var = 10*cos(T[gt=tdays]/2000)*EXP((-1)*y[gy=yax]/20)
+LET my_var2 = 10*cos(T[gt=tdays]/2000)*EXP((-1)*y[gy=yax]/20)
+
+! make a Hovmoller plot
+SHADE/nolab my_var
+
+! PLOT/OVER without key=title shows the def in the line key
+PLOT/OVER my_var[Y=@loc:-4]
+PLOT/OVER my_var2[Y=@loc:-3]
+
+! with /KEY=TITLE, the variable with a title uses that, 
+! variable without a title uses the variable name, 
+! an expression just puts the expression (same as w/o /key=title)
+
+PLOT/OVER/KEY=TITLE my_var[Y=@loc:-2]
+PLOT/OVER/KEY=TITLE my_var2[Y=@loc:-1]
+
+PLOT/OVER/KEY=TITLE 10+cos(T[gt=tdays]/200)
+
diff --git a/bench/err700_lev_del_symb.jnl b/bench/err700_lev_del_symb.jnl
new file mode 100644
index 0000000..8666747
--- /dev/null
+++ b/bench/err700_lev_del_symb.jnl
@@ -0,0 +1,32 @@
+! err700_lev_del_symb.jnl
+! 9/9/2016
+! Ticket 2470: Symbol LEV_DEL was erroneously marked as Irregular
+! Also, the symbols LEV_MIN and LEV_MAX are changed to say open-ended
+! when (-inf), (inf) or /lev=v is used.
+
+use coads_climatology
+
+
+! LEV_DEL should be regular
+shade/lev=(16.4,24.4,0.4) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+
+shade/lev=(16)(16.4)(16.8)(17.2)(17.6) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+
+shade/lev=(22) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+
+! LEV_DEL should be irregular
+
+shade/lev=(16.4,24.4,0.4)(inf) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+
+shade/lev=20v sst[L=1,x=290:330,y=10:40]
+show sym lev*
+
+shade/lev=(16.4,24.4,0.4)(24.4,28.1,0.1) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+
+shade/lev=(5)(16.4,24.4,0.4) sst[L=1,x=290:330,y=10:40]
+show sym lev*
diff --git a/bench/err700_levels_one_level.jnl b/bench/err700_levels_one_level.jnl
new file mode 100644
index 0000000..70c8e1c
--- /dev/null
+++ b/bench/err700_levels_one_level.jnl
@@ -0,0 +1,18 @@
+! err700_levels_one_level.jnl
+! Ticket 2436. If the data has just one value, then shade it with
+! the correct color taken from the /LEVELS and /PALETTE settings
+
+use coads_climatology
+set view ul
+shade/l=1/lev=(0,30,5)  sst
+
+! These single-valued expressions should get the correct color from the color bar
+
+set view ur
+shade/l=1/lev=(0,30,5)  if sst gt 25 and sst le 30 then 28
+set view ll
+shade/l=1/lev=(0,30,5)  if sst gt 15 and sst le 20 then 18
+set view lr
+shade/l=1/lev=(0,30,5)  if sst gt  0 and sst le  5 then  3
+frame /file=levels_one_level.gif
+can view
diff --git a/bench/err700_list_comma.jnl b/bench/err700_list_comma.jnl
new file mode 100644
index 0000000..28fa765
--- /dev/null
+++ b/bench/err700_list_comma.jnl
@@ -0,0 +1,46 @@
+! err700_list_comma.jnl
+! 1/4/2017 Fixes for ticket 2492: for single-variable listings, /FORM=comma and /FORM=tab
+
+use gt4d011
+
+! Previously for comma and tab listings there was an extra line right after the header 
+! that showed a longitude, even on [i=@ave,j=@ave]
+
+list/L=1:3/K=1/form=comma taux[i=@ave,j=@ave]
+
+list/nohead/L=1:3/K=1/form=comma taux[i=95,j=@ave]
+
+list/nohead/L=1:3/K=1/form=comma taux[i=@ave,j=@ave]
+
+! Previously /NOROW had no effect for /form=comma or /tab
+! (for single-variable listings)
+
+list/norow/L=1:3/K=1/form=comma taux[i=@ave,j=@ave]
+
+list/norow/nohead/L=1:3/K=1/form=comma taux[i=95,j=@ave]
+
+list/norow/nohead/L=1:3/K=1/i=95/j=40/form=comma taux
+
+list/norow/nohead/L=1:3/K=1/i=95/j=40/form=comma taux
+
+! Now all the same commands with /form=tab
+
+! Previously for comma and tab listings there was an extra line right after the header 
+! that showed a longitude, even on [i=@ave,j=@ave]
+
+list/L=1:3/K=1/form=tab taux[i=@ave,j=@ave]
+
+list/nohead/L=1:3/K=1/form=tab taux[i=95,j=@ave]
+
+list/nohead/L=1:3/K=1/form=tab taux[i=@ave,j=@ave]
+
+! Previously /NOROW had no effect for /form=comma or /tab
+! (for single-variable listings)
+
+list/norow/L=1:3/K=1/form=tab taux[i=@ave,j=@ave]
+
+list/norow/nohead/L=1:3/K=1/form=tab taux[i=95,j=@ave]
+
+list/norow/nohead/L=1:3/K=1/i=95/j=40/form=tab taux
+
+list/norow/nohead/L=1:3/K=1/i=95/j=40/form=tab taux
diff --git a/bench/err700_modulo.jnl b/bench/err700_modulo.jnl
new file mode 100644
index 0000000..a724d23
--- /dev/null
+++ b/bench/err700_modulo.jnl
@@ -0,0 +1,65 @@
+! err700_modulo.jnl
+! See ticket 2504. Axis defintions where bounds are not given, and Ferret
+! is defining the cell edges. If axis coordinates lie within the modulo range
+! but the cell bounds defined automatically using coordinate midpoints range 
+! larger than 360 degrees, or 1 year, need to adjust bounds. This is done only 
+! for irregular axes.
+
+use modax
+
+! The axis 'irreg_no_bounds' is irregular and is stored in the file without 
+! bounds. The coordinate range is < 360 but previously the computed bounds
+! made the axis length 369.45, so it was not treated as modulo. 
+! Now it is marked modulo.
+
+sh axis irreg_no_bounds
+list/order=x/nohead x[gx=irreg_no_bounds]
+show axis/x irreg_no_bounds
+
+
+! The axis 'regular_no_bounds' is regular.  Its coordinate range is < 360, but
+! to adjust the grid cells would make it irregular, so this axis is still
+! marked as not modulo.
+
+sh axis regular_no_bounds
+list/order=x/nohead x[gx=regular_no_bounds]
+show axis/x regular_no_bounds
+
+! The axis 'irreg_with_bounds' is irregular, stored with bounds in the file.
+! Its coordinate range is < 360, but the range of the bounds is larger than 
+! 360. Because the bounds are in the file, nothing is changed; it is marked 
+! as not modulo.
+
+sh axis irreg_with_bounds
+list/order=x/nohead x[gx=irreg_with_bounds]
+show axis/x irreg_with_bounds
+
+cancel data/all
+
+! DEFINE AXIS examples
+
+! Likewise define an irregular axis whose coordinate range is < 360 but 
+! the default midpoint grid cell bounds would make it larger than 360.
+! Previously this axis was not modulo, now bounds are set so it is.
+
+define axis/x/units=degrees_east xax = {0, 10, 20, 340, 358}
+show axis xax
+
+! Now define a regular axis whose coordinate range is < 360 but the
+! default midpoint grid cell bounds would make it larger than 360.
+! To keep it regular, mark as not modulo.
+
+define axis/x=5:355:50/units=degrees_east xax
+show axis xax
+
+! tests for time axes
+! Regular time axis with bounds that make it longer than a year.
+! leave this one so it stays regular and is not modulo.
+
+define axis/t=3:363:10/units=days/t0=1-jan-0000 treg
+show axis treg
+
+! An irregular axis where moving the bounds can make it a modulo calendar axis.
+define axis/t0=1-jan-0000/units=days/t tax2 = { 3, 55, 103, 153, 203, 253, 303, 353}
+sh axis tax2
+
diff --git a/bench/err700_reg_axis_check.jnl b/bench/err700_reg_axis_check.jnl
new file mode 100644
index 0000000..8f0641d
--- /dev/null
+++ b/bench/err700_reg_axis_check.jnl
@@ -0,0 +1,15 @@
+! err700_reg_axis_check.jnl
+! Ticket 2445: regular axis, test for valid line_delta
+! ACM 7/6/2016
+
+use bug2445.nc
+show data
+
+! Repeated coordinates in first 2 coordinates of x axis.
+list xx
+list xax
+
+! Missing coordinate in first 2 coordinates of y axis. 
+! Coordinate data cannot be missing.
+list yy
+list yax
diff --git a/bench/err700_ribbon_vlog.jnl b/bench/err700_ribbon_vlog.jnl
new file mode 100644
index 0000000..8b53459
--- /dev/null
+++ b/bench/err700_ribbon_vlog.jnl
@@ -0,0 +1,19 @@
+! err700_ribbon_vlog.jnl
+! 1/3/2017 *acm*
+! See ticket 2491: Location of colorbar labels wrong
+! on /HLOG or /VLOG plots
+
+
+let a = 0.1* {1,2,3,4,5,6,7,8,9}
+set v ul
+plot/vs/rib/sym=25 a, a, a
+
+! Draw with /VLOG, previously put the colorbar labels in the wrong place
+set view lr
+plot/vs/rib/sym=25/vlog a, a, a
+
+! likewise /HLOG on a horizontal color key
+set view ll
+plot/vs/rib/sym=25/hlog/key=horiz a,a,a
+
+frame/file=bn_ribbon_vlog.gif
diff --git a/bench/err700_samplexy_subspan_modulo.jnl b/bench/err700_samplexy_subspan_modulo.jnl
new file mode 100644
index 0000000..673c7f8
--- /dev/null
+++ b/bench/err700_samplexy_subspan_modulo.jnl
@@ -0,0 +1,64 @@
+! err700_samplexy_subspan_modulo.jnl
+! 7/29/2016 ACM
+! Ticket 2458. the result of SAMPLEXY wrong when it needs
+! to do a modulo operation on a subspan modulo axis
+
+! Define a grid with a subspan longitude axis
+
+define axis/x=-100:-60:5/units=degrees_east xaxis
+define axis/y=18:30:2/units=degrees_north yaxis
+let var = x[gx=xaxis]+100 + 0.3*y[gy=yaxis]
+
+save/clobber/file=a.nc var
+can var/all; use a
+
+list/y=22 var
+list samplexy(var, {-80,80}, {22,22}) 
+
+list samplexy(var, -80, 22)       ! this is ok, in the native range of the axis
+list samplexy(var, `360-80`, 22)  ! this was wrong
+list samplexy_closest(var, `360-80`, 22)  ! is ok
+
+! Looking for a point that is not, even in a modulo sense, in the subpsan axis
+
+list samplexy(var, {-80,80}, {22,22})
+list samplexy(var, {`360-80`,80}, {22,22})
+list samplexy_closest(var, {`360-80`,80}, {22,22})
+
+! interpolation between grid points
+
+cancel mode interpolate
+list/y=21.2/x=277.7 var
+set mode interpolate; list/y=21.2/x=277.7 var; cancel mode interpolate
+
+! These should match the MODE INTERPOLATE result (the second was wrong).
+
+list samplexy(var, {-82.3,82.3}, {21.2,21.2})
+list samplexy(var, {`360-82.3`,82.3}, {21.2,21.2})
+
+! this should match the non-MODE INTERPOLATE result
+list samplexy_closest(var, {`360-82.3`,82.3}, {21.2,21.2})
+
+can dat/all
+
+! Test samplexyt functions
+
+define axis/t=1:5:1 tax
+let vart = x[gx=xaxis]+100 + 0.3*y[gy=yaxis] + 0*t[gt=tax]
+save/clobber/file=a.nc vart
+can var/all; use a
+
+list vart[x=-80,y=21,t=2]
+list samplexyt(vart, {-82.3,82.3}, {21.2,21.2}, {2,2})
+list samplexyt(vart, {`360-82.3`,82.3}, {21.2,21.2}, {2,2})
+list samplexyt_nrst(vart, {`360-82.3`,82.3}, {21.2,21.2}, {2,2})
+
+! Full-span modulo grid is ok
+
+use coads_climatology
+list/l=1/x=-80/y=22 sst
+list samplexy(sst[l=1], -80, 22)
+list samplexy(sst[l=1], `360-80`, 22)
+list samplexy_closest(sst[l=1], `360-80`, 22)
+
+list samplexyt(sst, -80, 22, `t[gt=sst,l=1]`)
diff --git a/bench/err700_save_mod_att.jnl b/bench/err700_save_mod_att.jnl
new file mode 100644
index 0000000..7e6d973
--- /dev/null
+++ b/bench/err700_save_mod_att.jnl
@@ -0,0 +1,68 @@
+! err700_save_mod_att.jnl
+! ticket 1480: do not write a modulo axis when saving a modulo
+! axis with region longer than the modulo length.
+! If it's just one grid-cell too long, write one cell less so 
+! the axis can still be a valid modulo axis
+
+! write a dataset to use, modulo attribute
+define axis/x=20:377.5:2.5/units=degrees_east/modulo xlon
+sh axis xlon
+let var = x[gx=xlon]
+
+save/clobber/file=a1.nc var
+sp ncdump -h a1.nc
+go bn_reset
+
+! Now set a region and write data. The axis length would be 362.5
+use a1
+sh axis xlon
+set region/x=0:360
+stat x[gx=xlon] ! 145 points
+
+! but we see that the region is just one cell too big, and 
+! save it with length 360.
+save/clobber/file=a.nc var
+
+! previously the x axis had a modulo attribute and length 362.5
+! The modulo=360 didnt match the length of the axis so on using the 
+! file there was a note, modulo attribute ignored. Now the axis is 
+! the intended length.
+sp ncdump -h a.nc
+
+go bn_reset
+use a
+sh axis `var,return=xaxis`
+
+go bn_reset
+
+! Now set a bigger region and write data. The axis length is 372.5
+use a1
+sh axis xlon
+set region/x=0:370
+
+! Now issues a note, not writing modulo attribute.
+save/clobber/file=a.nc var
+
+! previously the x axis still had the modulo attribute
+sp ncdump -h a.nc
+
+go bn_reset
+use a
+sh axis `var,return=xaxis`
+
+! test the machinery for a file with attribute modulo=" "
+
+use coads_climatology
+sh att (`sst,return=xaxis`)
+set region/x=1:361  
+
+save/clobber/file=a.nc/y=0/l=1 sst
+
+go bn_reset
+use a
+sh att (`sst,return=xaxis`)
+
+! previously the axis, of length 362, was marked modulo.
+show axis `sst,return=xaxis`
+
+
diff --git a/bench/err700_shade_singlecell.jnl b/bench/err700_shade_singlecell.jnl
new file mode 100644
index 0000000..d114d8d
--- /dev/null
+++ b/bench/err700_shade_singlecell.jnl
@@ -0,0 +1,34 @@
+! err700_shade_singlecell.jnl
+! Ticket 2494, drawing a single-cell shade plot
+
+def axis/x=233.59375:293.90625:0.3125/units=degrees_east xlon
+def axis/y=24.125:50.625:0.25/units=degrees_north ylat
+let iijj = i[gx=xlon] + j[gy=ylat]
+set reg/x=77w:72.5w/y=38.9n:41.5n
+
+
+shade/pal=grayscale iijj
+shade/pal=blue/ov iijj[i=167:168,j=64:65]
+
+! previously this was drawn, but located one cell to the left of where it should be
+shade/pal=black/ov iijj[i=167,j=64]
+
+! Specify a cell by X,Y. Previously this gave a dimensions error
+shade/over/pal=green iijj[x=76w,y=40n]
+
+! These same sorts of degenerate regions, bug not as an overlay
+
+! Previously both of these drew a blank plot
+shade/pal=rnb2 iijj[i=167,j=64]
+shade/pal=rnb2 iijj[i=167,j=64:66]
+
+! Specify a cell by X,Y
+! Previously this gave a dimensions error
+shade/pal=green iijj[x=76w,y=40n]
+
+! Partial cell, given by xy limits.
+! Previously drew a blank plot
+shade/pal=green iijj[x=74.5w:74.4w,y=39.9:40.0]
+
+! Several cells in one direction - partial cells in y at edges
+yes? shade/pal=rnb2 iijj[x=74.5w,y=39.9:40.8]
diff --git a/bench/err700_time_overlay.jnl b/bench/err700_time_overlay.jnl
new file mode 100644
index 0000000..a1270c6
--- /dev/null
+++ b/bench/err700_time_overlay.jnl
@@ -0,0 +1,20 @@
+! err700_time_overlay.jnl
+! bug 2495
+! Shifting on overlay of time series on 2D plot
+
+define axis/t=15-jun-1970:16-jun-1970:60/t0=1-jan-1970/units=seconds  tax
+def axis/y=-2:2:0.2 yaxis
+let tt = t[gt=tax]
+
+shade/pal=white/nokey/title="example plot" y[gy=yaxis] + t[gt=tax]
+
+! Previously the second plot was shifted in time
+plot/over/color=red  cos(tt/3000)
+plot/over/color=blue cos(tt/3000)+0.5
+
+! now vertical time axis
+shade/trans/pal=white/nokey/title="example plot" y[gy=yaxis] + t[gt=tax]
+
+plot/trans/over/color=red  cos(tt/3000)
+plot/trans/over/color=blue cos(tt/3000) + 0.5
+
diff --git a/bench/err700_timegrat.jnl b/bench/err700_timegrat.jnl
new file mode 100644
index 0000000..a0b5df5
--- /dev/null
+++ b/bench/err700_timegrat.jnl
@@ -0,0 +1,28 @@
+!err700_timegrat.jnl
+! 22-sep-2016 *acm*
+! See ticket 2466, too many graticule lines on axis with short time axis.
+
+define axis/t="22-aug-2016:12":"23-aug-2016:18":6/units=hours tax
+define axis/z=0:50:2/depth/units=m zax
+let ztvar = sin(L[Gt=tax]/20) + z[gz=zax]
+
+set view upper; shade/grat ztvar
+set view lower; plot/grat=(color=light_blue)/z=20 ztvar
+
+can view
+set view left; shade/trans/grat ztvar
+set view right; plot/trans/grat=(color=light_blue)/z=20 ztvar
+
+! Axis of few days, likewise
+
+define axis/t=16-SEP-2016:21-SEP-2016:15/units=minutes/t0=16-SEP-2016 tax
+
+can view
+set view upper; shade/grat ztvar
+set view lower; plot/grat=(color=light_blue)/z=20 ztvar
+
+can view
+set view left; shade/trans/grat/t=16-SEP-2016:19-sep-2016 ztvar
+set view right; plot/trans/grat=(color=light_blue)/z=20/t=16-SEP-2016:19-sep-2016 ztvar
+
+
diff --git a/bench/err700_unclosed_if.jnl b/bench/err700_unclosed_if.jnl
new file mode 100644
index 0000000..7b17e02
--- /dev/null
+++ b/bench/err700_unclosed_if.jnl
@@ -0,0 +1,7 @@
+! err71_unclosed_if.jnl
+! Ticket 2446
+! Add the script name when reporting an unclosed IF block
+! ACM 7/2016
+
+go unclosed_if.sub
+
diff --git a/bench/err700_vs_data.nc b/bench/err700_vs_data.nc
new file mode 100644
index 0000000..8a36519
Binary files /dev/null and b/bench/err700_vs_data.nc differ
diff --git a/bench/err700_vs_plot_axes.jnl b/bench/err700_vs_plot_axes.jnl
new file mode 100644
index 0000000..094e349
--- /dev/null
+++ b/bench/err700_vs_plot_axes.jnl
@@ -0,0 +1,10 @@
+! 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
diff --git a/bench/err71_err_attrib_overrun.jnl b/bench/err71_err_attrib_overrun.jnl
new file mode 100644
index 0000000..0093eed
--- /dev/null
+++ b/bench/err71_err_attrib_overrun.jnl
@@ -0,0 +1,41 @@
+! err71_err_attrib_overrun.jnl
+! See ticket 2523
+
+! this ends with a segment fault sensitive to any changes
+! presumably a buffer over-run
+
+! the crash is occuring because of a buffer over-run
+! in IS_ATTRIB_VAL we call CREATE_TEMP_MEM_VAR to create an mr of size=1
+! later we call INIT_C_STRING_ARRAY and tell it to initialize this mr array 
+! using a length nvdims=3  ==> OVERRUN
+
+! This bug never reared its head in the pre-dynamic memory Ferret, because
+! the buffers couldn't really be over-run, since they were part of a huge
+! static memory block
+
+! other INIT_* calls in IS_ATTRIB_VAL may have a similar issue
+
+
+set mode diag
+
+use ocean_atlas_temp
+use gt4d011
+use levitus_climatology
+
+use coads_climatology
+
+let lnames = ..dimnames[d=2]
+
+CANCEL DATA/ALL
+
+! this line seems to be essential making the crash happen
+PPL TICS .125,.25,.125,.25 !reset tics to default
+
+use coads_climatology
+
+let a = sst[d=1].dimnames
+show mem/diag   ! looks like no dynamic memory actions have occured
+
+! resulted in a seg fault (on 32-bit stout)
+list a[i=2]
+
diff --git a/bench/err71_plotvs_mode_label.jnl b/bench/err71_plotvs_mode_label.jnl
new file mode 100644
index 0000000..aa3f165
--- /dev/null
+++ b/bench/err71_plotvs_mode_label.jnl
@@ -0,0 +1,78 @@
+! 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
diff --git a/bench/err71_prec_return.jnl b/bench/err71_prec_return.jnl
new file mode 100644
index 0000000..75dbf89
--- /dev/null
+++ b/bench/err71_prec_return.jnl
@@ -0,0 +1,15 @@
+! err71_prec_return.jnl
+! Ticket 2510, `prec=hh` doesn't work when the data is very
+! near an integer.
+
+
+let a=1+1e-12
+
+! This should show the 001 at the end
+list/nohead/norow/prec=13 `a,prec=13`
+
+! This does not have the 001 at the end
+list/nohead/norow/prec=13 `a,prec=12`
+
+! The example from the ticket, with one more.
+list/nohead/norow/prec=12 {`1 + 0.1`, `1 + 1e-7`, `1 + 1e-8`, `1 + 1e-10`} - 1
diff --git a/bench/err71_save_bounds.jnl b/bench/err71_save_bounds.jnl
new file mode 100644
index 0000000..c6d571a
--- /dev/null
+++ b/bench/err71_save_bounds.jnl
@@ -0,0 +1,9 @@
+! err71_save_bounds
+! Ticket 2524. The SAVE command previously gave an error
+
+define axis/t time = {1,2,4}
+use write_int_att.nc
+
+! Tell Ferret to use the axis names from the file, and write data
+cancel mode upcase
+save/file=a.nc/clobber mhchla
diff --git a/bench/err71_save_rigid.jnl b/bench/err71_save_rigid.jnl
new file mode 100644
index 0000000..b2c7719
--- /dev/null
+++ b/bench/err71_save_rigid.jnl
@@ -0,0 +1,27 @@
+! err71_save_rigid.jnl
+! Ticket 2513: SAVE/RIGID with irregular axis wrote a bad file.
+
+! Define a variable on an irregular axis.
+
+let var = {123, 234, 345, 456, 567, 678, 789}
+define axis/t/t0=1-jan-2015/units=day tax = \
+{ 312.1, 312.7, 313.4, 314.2, 314.7, 315.4, 316.1}
+
+let vart = reshape(var, t[gt=tax])
+
+! Save with /RIGID. Previously this wrote a file with
+! both bounds and edges attributes on the time axis. 
+! It wrote the edges variable, not the bounds.
+
+! Starting with this version, write bounds if needed when
+! writing with /RIGID. Only write edges if they said /EDGES.
+
+save/clobber/rigid/file=a.nc vart
+sp ncdump a.nc
+
+cancel var/all
+
+! The grid was messed up - this gave an error
+use a
+show grid vart
+
diff --git a/bench/err71_set_redirect.jnl b/bench/err71_set_redirect.jnl
new file mode 100644
index 0000000..391d107
--- /dev/null
+++ b/bench/err71_set_redirect.jnl
@@ -0,0 +1,19 @@
+! err71_set_redirect.jnl
+! 3/2017 ACM
+! redirect results to a file with a path. 
+! See ticket 2521, the path was previously rejected if it contains dashes 
+
+spawn "mkdir -p sub-dir"
+!
+! Previously this resulted in an error.
+set redirect /tee /file="./sub-dir/redirect_stdout.txt" /clobber  stderr stdout
+
+! write to the file and look at the results
+
+show symbol ferret_precision, ferret_memory
+cancel redirect
+let contents = { spawn:"cat ./sub-dir/redirect_stdout.txt" }
+list contents
+cancel var contents
+
+sp rm -rf sub-dir
diff --git a/bench/err71_user_var_attrib.jnl b/bench/err71_user_var_attrib.jnl
new file mode 100644
index 0000000..9d0a86d
--- /dev/null
+++ b/bench/err71_user_var_attrib.jnl
@@ -0,0 +1,10 @@
+! err71_user_var_attrib.jnl
+! See ticket 2132
+
+! command was trying to list dataset information for a user variable
+! 
+
+let a = 1
+define att a.myAttr = "whatever"
+show att a.myAttr
+
diff --git a/bench/err71_uvar_strides.jnl b/bench/err71_uvar_strides.jnl
new file mode 100644
index 0000000..c693abe
--- /dev/null
+++ b/bench/err71_uvar_strides.jnl
@@ -0,0 +1,14 @@
+! err710_uvar_strides
+! see ticket 2511: crash when doing strides on the user-variable
+
+
+use coads_climatology
+
+! this is ok using a file variable
+let y_vec = x[gx=sst,x=0:360:30]
+list y_vec
+
+! but this gave a crash on loading the variable.
+let s = sst
+let y_vec = x[gx=s,x=0:360:30]
+list y_vec
diff --git a/bench/err71_vs_constant.jnl b/bench/err71_vs_constant.jnl
new file mode 100644
index 0000000..2e4f149
--- /dev/null
+++ b/bench/err71_vs_constant.jnl
@@ -0,0 +1,36 @@
+! 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} 
diff --git a/bench/forecast24.nc b/bench/forecast24.nc
new file mode 100644
index 0000000..36b685e
Binary files /dev/null and b/bench/forecast24.nc differ
diff --git a/bench/forecast25.nc b/bench/forecast25.nc
new file mode 100644
index 0000000..58458cc
Binary files /dev/null and b/bench/forecast25.nc differ
diff --git a/bench/forecast26.nc b/bench/forecast26.nc
new file mode 100644
index 0000000..11f5c6f
Binary files /dev/null and b/bench/forecast26.nc differ
diff --git a/bench/forecast27.nc b/bench/forecast27.nc
new file mode 100644
index 0000000..9485ffc
Binary files /dev/null and b/bench/forecast27.nc differ
diff --git a/bench/modax.nc b/bench/modax.nc
new file mode 100644
index 0000000..d6a47a5
Binary files /dev/null and b/bench/modax.nc differ
diff --git a/bench/no_miss_att.nc b/bench/no_miss_att.nc
new file mode 100644
index 0000000..2be55cb
Binary files /dev/null and b/bench/no_miss_att.nc differ
diff --git a/bench/run_all b/bench/run_all
index 555a799..3a07f09 100755
--- a/bench/run_all
+++ b/bench/run_all
@@ -30,6 +30,7 @@
 #            append this to the log file 
 # acm*  1/14 Change the order of the questions asked: test efs? If so what directory are they in?
 #            Also list the contents of the external fucntions directory
+# *sh* 3/17 Check for corruption warnings in the error log
 #
 # usage % run_all
 
@@ -78,6 +79,10 @@ endif
 
 echo "Enter the path (including filename) to the FERRET version of choice"
 set fver = $<
+if ( ! -e  $fver ) then
+   echo File $fver not exist.
+   exit 0
+endif
 
 # XGKS version ?  (use "xg" as the indicator)
 echo $fver | grep -s "xg"
@@ -226,7 +231,7 @@ echo "Beginning at $now"
 
 # check status before continuing *kob* 4/98
 if ($status) then
-    echo "FERRET ERRROR*********************************" >>$log_file
+    echo "FERRET ERROR in benchmark run ****** exiting from run.sh ******"  >>$log_file
     exit 1
 endif
 
@@ -335,3 +340,7 @@ ls -l $log_file >>&  $bench_hist
 # make a clean version of the log file that can easily be compared
 ./clean_draconian $log_file
 
+# check for corruption warnings ("crptn") in the error log
+grep -q "crptn" $err_file
+set captured_status = $status
+if ( $captured_status == 0 ) echo "*** CORRUPTION WARNINGS FOUND IN ERROR LOG ***"
diff --git a/bench/test_results/axticlabel.pdf b/bench/test_results/axticlabel.pdf
index b2b209c..2b71c51 100644
Binary files a/bench/test_results/axticlabel.pdf and b/bench/test_results/axticlabel.pdf differ
diff --git a/bench/test_results/bn_axis_vs.gif b/bench/test_results/bn_axis_vs.gif
new file mode 100644
index 0000000..5011ce6
Binary files /dev/null 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
new file mode 100644
index 0000000..d6e7b89
Binary files /dev/null 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 0e18148..d4232f1 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_contour_conset.png b/bench/test_results/bn_contour_conset.png
index eef37d0..4967ec7 100644
Binary files a/bench/test_results/bn_contour_conset.png and b/bench/test_results/bn_contour_conset.png differ
diff --git a/bench/test_results/bn_hovmuller_overlays.gif b/bench/test_results/bn_hovmuller_overlays.gif
index 481b1a2..5e8acfd 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_hovmuller_overlays.pdf b/bench/test_results/bn_hovmuller_overlays.pdf
deleted file mode 100644
index 70a8547..0000000
Binary files a/bench/test_results/bn_hovmuller_overlays.pdf and /dev/null differ
diff --git a/bench/test_results/bn_hovmuller_overlays.png b/bench/test_results/bn_hovmuller_overlays.png
new file mode 100644
index 0000000..46b792b
Binary files /dev/null and b/bench/test_results/bn_hovmuller_overlays.png differ
diff --git a/bench/test_results/bn_inf2missing.pdf b/bench/test_results/bn_inf2missing.pdf
new file mode 100644
index 0000000..ea7644b
Binary files /dev/null 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 db45f13..47929c2 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 26db98b..733b8dc 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
new file mode 100644
index 0000000..ae54874
Binary files /dev/null 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
new file mode 100644
index 0000000..53ac89e
Binary files /dev/null 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 7d46ced..582f1b6 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_subspan_mod_strides.png b/bench/test_results/bn_subspan_mod_strides.png
index 786570a..b42641c 100644
Binary files a/bench/test_results/bn_subspan_mod_strides.png and b/bench/test_results/bn_subspan_mod_strides.png differ
diff --git a/bench/test_results/bn_vs_const_value.gif b/bench/test_results/bn_vs_const_value.gif
new file mode 100644
index 0000000..4ffeb2c
Binary files /dev/null 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
new file mode 100644
index 0000000..a946743
Binary files /dev/null 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 78ec285..bc10ec7 100644
Binary files a/bench/test_results/bnplot.pdf and b/bench/test_results/bnplot.pdf differ
diff --git a/bench/test_results/bnplot.png b/bench/test_results/bnplot.png
deleted file mode 100644
index 4d91a1a..0000000
Binary files a/bench/test_results/bnplot.png and /dev/null differ
diff --git a/bench/test_results/bnplot_1.png b/bench/test_results/bnplot_1.png
index b79ade2..264385a 100644
Binary files a/bench/test_results/bnplot_1.png and b/bench/test_results/bnplot_1.png differ
diff --git a/bench/test_results/bnplot_2.gif b/bench/test_results/bnplot_2.gif
index 1af8edf..f6bfc91 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_2.png b/bench/test_results/bnplot_2.png
index 8f1923b..97d62fc 100644
Binary files a/bench/test_results/bnplot_2.png and b/bench/test_results/bnplot_2.png differ
diff --git a/bench/test_results/bnplot_3.gif b/bench/test_results/bnplot_3.gif
index 0e821a3..e16612d 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_3.png b/bench/test_results/bnplot_3.png
index 119e73f..56dc690 100644
Binary files a/bench/test_results/bnplot_3.png and b/bench/test_results/bnplot_3.png differ
diff --git a/bench/test_results/bnplot_4.ps b/bench/test_results/bnplot_4.eps
similarity index 99%
copy from bench/test_results/bnplot_4.ps
copy to bench/test_results/bnplot_4.eps
index 9aad02a..5e237ea 100644
--- a/bench/test_results/bnplot_4.ps
+++ b/bench/test_results/bnplot_4.eps
@@ -1,18 +1,14 @@
-%!PS-Adobe-3.0
+%!PS-Adobe-3.0 EPSF-3.0
 %%Creator: cairo 1.14.4 (http://cairographics.org)
-%%CreationDate: Fri Jun 17 15:19:10 2016
+%%CreationDate: Tue Apr 18 17:19:02 2017
 %%Pages: 1
 %%DocumentData: Clean7Bit
 %%LanguageLevel: 2
-%%DocumentMedia: 224x389mm 634 1102 0 () ()
-%%BoundingBox: 0 -1 634 1102
+%%BoundingBox: 0 -1 1102 634
 %%EndComments
 %%BeginProlog
-/languagelevel where
-{ pop languagelevel } { 1 } ifelse
-2 lt { /Helvetica findfont 12 scalefont setfont 50 500 moveto
-  (This print job requires a PostScript Language Level 2 printer.) show
-  showpage quit } if
+save
+50 dict begin
 /q { gsave } bind def
 /Q { grestore } bind def
 /cm { 6 array astore concat } bind def
@@ -62,53 +58,19 @@
 /g { setgray } bind def
 /rg { setrgbcolor } bind def
 /d1 { setcachedevice } bind 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
-  % so we use the same when checking if the size changes.
-  /setpagedevice where {
-    pop currentpagedevice
-    /PageSize known {
-      2 copy
-      currentpagedevice /PageSize get aload pop
-      exch 4 1 roll
-      sub abs 5 gt
-      3 1 roll
-      sub abs 5 gt
-      or
-    } {
-      true
-    } ifelse
-    {
-      2 array astore
-      2 dict begin
-        /PageSize exch def
-        /ImagingBBox null def
-      currentdict end
-      setpagedevice
-    } {
-      pop pop
-    } ifelse
-  } {
-    pop
-  } ifelse
-} def
 %%EndProlog
 %%BeginSetup
 %%EndSetup
 %%Page: 1 1
 %%BeginPageSetup
-%%PageOrientation: Landscape
-%%PageMedia: 224x389mm
-%%PageBoundingBox: 0 -1 634 1102
-634 1102 cairo_set_page_size
+%%PageBoundingBox: 0 -1 1102 634
 %%EndPageSetup
-q 0 -1 634 1103 rectclip q
+q 0 -1 1102 635 rectclip q
 1 g
-0 0 633.600014 1101.600014 rectfill
+0 0 1101.600014 633.600014 rectfill
 q
-0 1101.6 634 -1102 re W n
-[ 0 0.999814 -0.999814 0 633.881823 0 ] concat
+0 633.6 1102 -634 re W n
+[ 0.999814 0 0 0.999814 0 -0.281809 ] concat
   q
 0 g
 1 w
@@ -156,17 +118,14 @@ l 191.09 493.477 l 202.566 496.723 l 213.254 499.973 l 223.16 503.219 l
  532.438 l 285.668 535.684 l 289.109 538.93 l 292.188 542.18 l 294.934 545.426
  l 297.367 548.672 l 299.523 551.918 l 301.422 555.164 l S
 0 g
-67.609 409.062 m 60.566 409.062 l 67.609 409.062 l S
-67.609 425.297 m 60.566 425.297 l 67.609 425.297 l S
-67.609 441.531 m 60.566 441.531 l 67.609 441.531 l S
-67.609 457.766 m 60.566 457.766 l 67.609 457.766 l S
-67.609 473.996 m 60.566 473.996 l 67.609 473.996 l S
-67.609 490.23 m 60.566 490.23 l 67.609 490.23 l S
-67.609 506.465 m 60.566 506.465 l 67.609 506.465 l S
-67.609 522.699 m 60.566 522.699 l 67.609 522.699 l S
-67.609 538.93 m 60.566 538.93 l 67.609 538.93 l S
-67.609 555.164 m 60.566 555.164 l 67.609 555.164 l S
-67.609 396.078 m 67.609 555.164 l S
+67.609 409.062 m 60.566 409.062 l 67.609 409.062 l 67.609 425.297 l 60.566
+ 425.297 l 67.609 425.297 l 67.609 441.531 l 60.566 441.531 l 67.609 441.531
+ l 67.609 457.766 l 60.566 457.766 l 67.609 457.766 l 67.609 473.996 l 60.566
+ 473.996 l 67.609 473.996 l 67.609 490.23 l 60.566 490.23 l 67.609 490.23
+ l 67.609 506.465 l 60.566 506.465 l 67.609 506.465 l 67.609 522.699 l 60.566
+ 522.699 l 67.609 522.699 l 67.609 538.93 l 60.566 538.93 l 67.609 538.93
+ l 67.609 555.164 l 60.566 555.164 l 67.609 555.164 l 67.609 396.078 l 67.609
+ 555.164 l S
 55 411.879 m 52.316 411.879 l 52.051 409.465 l 52.316 409.734 l 53.121 
 410.004 l 53.926 410.004 l 54.73 409.734 l 55.27 409.199 l 55.535 408.395
  l 55.535 407.855 l 55.27 407.051 l 54.73 406.516 l 53.926 406.246 l 53.121
@@ -198,17 +157,14 @@ l 191.09 493.477 l 202.566 496.723 l 213.254 499.973 l 223.16 503.219 l
  l 53.926 539.871 l 54.73 539.602 l 55.27 539.066 l 55.535 538.262 l 55.535
  537.723 l 55.27 536.918 l 54.73 536.383 l 53.926 536.113 l 53.121 536.113
  l 52.316 536.383 l 52.051 536.652 l 51.781 537.188 l S
-310.539 409.062 m 317.582 409.062 l 310.539 409.062 l S
-310.539 425.297 m 317.582 425.297 l 310.539 425.297 l S
-310.539 441.531 m 317.582 441.531 l 310.539 441.531 l S
-310.539 457.766 m 317.582 457.766 l 310.539 457.766 l S
-310.539 473.996 m 317.582 473.996 l 310.539 473.996 l S
-310.539 490.23 m 317.582 490.23 l 310.539 490.23 l S
-310.539 506.465 m 317.582 506.465 l 310.539 506.465 l S
-310.539 522.699 m 317.582 522.699 l 310.539 522.699 l S
-310.539 538.93 m 317.582 538.93 l 310.539 538.93 l S
-310.539 555.164 m 317.582 555.164 l 310.539 555.164 l S
-310.539 396.078 m 310.539 555.164 l S
+310.539 409.062 m 317.582 409.062 l 310.539 409.062 l 310.539 425.297 l
+ 317.582 425.297 l 310.539 425.297 l 310.539 441.531 l 317.582 441.531 l
+ 310.539 441.531 l 310.539 457.766 l 317.582 457.766 l 310.539 457.766 l
+ 310.539 473.996 l 317.582 473.996 l 310.539 473.996 l 310.539 490.23 l 
+317.582 490.23 l 310.539 490.23 l 310.539 506.465 l 317.582 506.465 l 310.539
+ 506.465 l 310.539 522.699 l 317.582 522.699 l 310.539 522.699 l 310.539
+ 538.93 l 317.582 538.93 l 310.539 538.93 l 310.539 555.164 l 317.582 555.164
+ l 310.539 555.164 l 310.539 396.078 l 310.539 555.164 l S
 67.609 555.164 m 67.609 562.207 l 67.609 555.164 l 91.902 555.164 l 91.902
  562.207 l 91.902 555.164 l 116.195 555.164 l 116.195 562.207 l 116.195 
 555.164 l 140.488 555.164 l 140.488 562.207 l 140.488 555.164 l 164.781 
@@ -217,8 +173,7 @@ l 191.09 493.477 l 202.566 496.723 l 213.254 499.973 l 223.16 503.219 l
 555.164 l 237.66 555.164 l 237.66 562.207 l 237.66 555.164 l 261.953 555.164
  l 261.953 562.207 l 261.953 555.164 l 286.246 555.164 l 286.246 562.207
  l 286.246 555.164 l 310.539 555.164 l 310.539 562.207 l 310.539 555.164
- l S
-67.609 555.164 m 310.539 555.164 l S
+ l 67.609 555.164 l 310.539 555.164 l S
 67.609 396.078 m 67.609 389.035 l 67.609 396.078 l 91.902 396.078 l 91.902
  389.035 l 91.902 396.078 l 116.195 396.078 l 116.195 389.035 l 116.195 
 396.078 l 140.488 396.078 l 140.488 389.035 l 140.488 396.078 l 164.781 
@@ -227,8 +182,7 @@ l 191.09 493.477 l 202.566 496.723 l 213.254 499.973 l 223.16 503.219 l
 396.078 l 237.66 396.078 l 237.66 389.035 l 237.66 396.078 l 261.953 396.078
  l 261.953 389.035 l 261.953 396.078 l 286.246 396.078 l 286.246 389.035
  l 286.246 396.078 l 310.539 396.078 l 310.539 389.035 l 310.539 396.078
- l S
-67.609 396.078 m 310.539 396.078 l S
+ l 67.609 396.078 l 310.539 396.078 l S
 80.098 380.746 m 84.926 380.746 l S
 88.414 383.965 m 87.609 383.695 l 87.074 382.891 l 86.805 381.551 l 86.805
  380.746 l 87.074 379.402 l 87.609 378.598 l 88.414 378.332 l 88.949 378.332
@@ -315,8 +269,8 @@ l 288.125 378.332 l 287.051 378.332 l 286.246 378.598 l 285.98 378.867 l
   Q
 Q
 q
-0 1101.6 634 -1102 re W n
-[ 0 0.999814 -0.999814 0 633.881823 0 ] concat
+0 633.6 1102 -634 re W n
+[ 0.999814 0 0 0.999814 0 -0.281809 ] concat
   q
 1 0 1 rg
 1 w
@@ -332,8 +286,8 @@ q
   Q
 Q
 q
-0 1101.6 634 -1102 re W n
-[ 0 0.999814 -0.999814 0 633.881823 0 ] concat
+0 633.6 1102 -634 re W n
+[ 0.999814 0 0 0.999814 0 -0.281809 ] concat
   q
 0 g
 1 w
@@ -444,8 +398,8 @@ q
   Q
 Q
 q
-0 1101.6 634 -1102 re W n
-[ 0 0.999814 -0.999814 0 633.881823 0 ] concat
+0 633.6 1102 -634 re W n
+[ 0.999814 0 0 0.999814 0 -0.281809 ] concat
   q
 1 0 1 rg
 1 w
@@ -590,8 +544,8 @@ q
   Q
 Q
 q
-0 1101.6 634 -1102 re W n
-[ 0 0.999814 -0.999814 0 633.881823 0 ] concat
+0 633.6 1102 -634 re W n
+[ 0.999814 0 0 0.999814 0 -0.281809 ] concat
   q
 0 g
 1 w
@@ -2578,20 +2532,17 @@ l 938.734 150 l 950.719 150.43 l 962.707 150.859 l 974.695 151.293 l 986.68
 1022.641 218.535 m 1034.629 219.375 l S
 1033.535 218.281 m 1034.629 218.281 l S
 1034.629 220.473 m 1033.535 220.473 l 1033.535 218.281 l S
-447.266 94.234 m 438.887 94.234 l 447.266 94.234 l S
-447.266 105 m 438.887 105 l 447.266 105 l S
-447.266 115.766 m 438.887 115.766 l 447.266 115.766 l S
-447.266 126.531 m 438.887 126.531 l 447.266 126.531 l S
-447.266 137.297 m 438.887 137.297 l 447.266 137.297 l S
-447.266 148.062 m 438.887 148.062 l 447.266 148.062 l S
-447.266 158.828 m 438.887 158.828 l 447.266 158.828 l S
-447.266 169.594 m 438.887 169.594 l 447.266 169.594 l S
-447.266 180.359 m 438.887 180.359 l 447.266 180.359 l S
-447.266 191.121 m 438.887 191.121 l 447.266 191.121 l S
-447.266 201.887 m 438.887 201.887 l 447.266 201.887 l S
-447.266 212.652 m 438.887 212.652 l 447.266 212.652 l S
-447.266 223.418 m 438.887 223.418 l 447.266 223.418 l S
-447.266 94.234 m 447.266 223.418 l S
+447.266 94.234 m 438.887 94.234 l 447.266 94.234 l 447.266 105 l 438.887
+ 105 l 447.266 105 l 447.266 115.766 l 438.887 115.766 l 447.266 115.766
+ l 447.266 126.531 l 438.887 126.531 l 447.266 126.531 l 447.266 137.297
+ l 438.887 137.297 l 447.266 137.297 l 447.266 148.062 l 438.887 148.062
+ l 447.266 148.062 l 447.266 158.828 l 438.887 158.828 l 447.266 158.828
+ l 447.266 169.594 l 438.887 169.594 l 447.266 169.594 l 447.266 180.359
+ l 438.887 180.359 l 447.266 180.359 l 447.266 191.121 l 438.887 191.121
+ l 447.266 191.121 l 447.266 201.887 l 438.887 201.887 l 447.266 201.887
+ l 447.266 212.652 l 438.887 212.652 l 447.266 212.652 l 447.266 223.418
+ l 438.887 223.418 l 447.266 223.418 l 447.266 94.234 l 447.266 223.418 
+l S
 404.496 93.758 m 410.242 93.758 l S
 413.434 96.312 m 414.07 96.629 l 415.027 97.586 l 415.027 90.887 l S
 419.496 91.523 m 419.18 91.203 l 419.496 90.887 l 419.816 91.203 l 419.496
@@ -2703,20 +2654,17 @@ l 938.734 150 l 950.719 150.43 l 962.707 150.859 l 974.695 151.293 l 986.68
 430.988 220.066 l 431.945 220.387 l 432.582 221.344 l 432.902 222.941 l 
 432.902 223.898 l 432.582 225.492 l 431.945 226.449 l 430.988 226.77 l 430.348
  226.77 l S
-1034.629 94.234 m 1043.008 94.234 l 1034.629 94.234 l S
-1034.629 105 m 1043.008 105 l 1034.629 105 l S
-1034.629 115.766 m 1043.008 115.766 l 1034.629 115.766 l S
-1034.629 126.531 m 1043.008 126.531 l 1034.629 126.531 l S
-1034.629 137.297 m 1043.008 137.297 l 1034.629 137.297 l S
-1034.629 148.062 m 1043.008 148.062 l 1034.629 148.062 l S
-1034.629 158.828 m 1043.008 158.828 l 1034.629 158.828 l S
-1034.629 169.594 m 1043.008 169.594 l 1034.629 169.594 l S
-1034.629 180.359 m 1043.008 180.359 l 1034.629 180.359 l S
-1034.629 191.121 m 1043.008 191.121 l 1034.629 191.121 l S
-1034.629 201.887 m 1043.008 201.887 l 1034.629 201.887 l S
-1034.629 212.652 m 1043.008 212.652 l 1034.629 212.652 l S
-1034.629 223.418 m 1043.008 223.418 l 1034.629 223.418 l S
-1034.629 94.234 m 1034.629 223.418 l S
+1034.629 94.234 m 1043.008 94.234 l 1034.629 94.234 l 1034.629 105 l 1043.008
+ 105 l 1034.629 105 l 1034.629 115.766 l 1043.008 115.766 l 1034.629 115.766
+ l 1034.629 126.531 l 1043.008 126.531 l 1034.629 126.531 l 1034.629 137.297
+ l 1043.008 137.297 l 1034.629 137.297 l 1034.629 148.062 l 1043.008 148.062
+ l 1034.629 148.062 l 1034.629 158.828 l 1043.008 158.828 l 1034.629 158.828
+ l 1034.629 169.594 l 1043.008 169.594 l 1034.629 169.594 l 1034.629 180.359
+ l 1043.008 180.359 l 1034.629 180.359 l 1034.629 191.121 l 1043.008 191.121
+ l 1034.629 191.121 l 1034.629 201.887 l 1043.008 201.887 l 1034.629 201.887
+ l 1034.629 212.652 l 1043.008 212.652 l 1034.629 212.652 l 1034.629 223.418
+ l 1043.008 223.418 l 1034.629 223.418 l 1034.629 94.234 l 1034.629 223.418
+ l S
 495.211 223.418 m 495.211 231.797 l 495.211 223.418 l 555.148 223.418 l
  555.148 231.797 l 555.148 223.418 l 615.082 223.418 l 615.082 231.797 l
  615.082 223.418 l 675.02 223.418 l 675.02 231.797 l 675.02 223.418 l 734.953
@@ -2724,16 +2672,15 @@ l 938.734 150 l 950.719 150.43 l 962.707 150.859 l 974.695 151.293 l 986.68
  231.797 l 794.887 223.418 l 854.824 223.418 l 854.824 231.797 l 854.824
  223.418 l 914.758 223.418 l 914.758 231.797 l 914.758 223.418 l 974.695
  223.418 l 974.695 231.797 l 974.695 223.418 l 1034.629 223.418 l 1034.629
- 231.797 l 1034.629 223.418 l S
-447.266 223.418 m 1034.629 223.418 l S
+ 231.797 l 1034.629 223.418 l 447.266 223.418 l 1034.629 223.418 l S
 495.211 94.234 m 495.211 85.859 l 495.211 94.234 l 555.148 94.234 l 555.148
  85.859 l 555.148 94.234 l 615.082 94.234 l 615.082 85.859 l 615.082 94.234
  l 675.02 94.234 l 675.02 85.859 l 675.02 94.234 l 734.953 94.234 l 734.953
  85.859 l 734.953 94.234 l 794.887 94.234 l 794.887 85.859 l 794.887 94.234
  l 854.824 94.234 l 854.824 85.859 l 854.824 94.234 l 914.758 94.234 l 914.758
  85.859 l 914.758 94.234 l 974.695 94.234 l 974.695 85.859 l 974.695 94.234
- l 1034.629 94.234 l 1034.629 85.859 l 1034.629 94.234 l S
-447.266 94.234 m 1034.629 94.234 l S
+ l 1034.629 94.234 l 1034.629 85.859 l 1034.629 94.234 l 447.266 94.234 
+l 1034.629 94.234 l S
 496.809 79.828 m 493.617 79.828 l 493.297 76.953 l 493.617 77.273 l 494.574
  77.594 l 495.531 77.594 l 496.488 77.273 l 497.129 76.637 l 497.445 75.68
  l 497.445 75.039 l 497.129 74.082 l 496.488 73.445 l 495.531 73.125 l 494.574
@@ -2768,8 +2715,8 @@ l 938.734 150 l 950.719 150.43 l 962.707 150.859 l 974.695 151.293 l 986.68
   Q
 Q
 q
-0 1101.6 634 -1102 re W n
-[ 0 0.999814 -0.999814 0 633.881823 0 ] concat
+0 633.6 1102 -634 re W n
+[ 0.999814 0 0 0.999814 0 -0.281809 ] concat
   q
 0 g
 1 w
@@ -2789,18 +2736,15 @@ l 794.887 493.754 l 806.875 498.613 l 818.863 503.074 l 830.848 507.16 l
  938.734 530.461 l 950.719 531.918 l 962.707 533.215 l 974.695 534.359 l
  986.68 535.367 l 998.668 536.25 l 1010.656 537.02 l 1022.641 537.684 l 
 1034.629 538.25 l S
-447.266 411.035 m 438.887 411.035 l 447.266 411.035 l S
-447.266 423.953 m 438.887 423.953 l 447.266 423.953 l S
-447.266 436.871 m 438.887 436.871 l 447.266 436.871 l S
-447.266 449.789 m 438.887 449.789 l 447.266 449.789 l S
-447.266 462.711 m 438.887 462.711 l 447.266 462.711 l S
-447.266 475.629 m 438.887 475.629 l 447.266 475.629 l S
-447.266 488.547 m 438.887 488.547 l 447.266 488.547 l S
-447.266 501.465 m 438.887 501.465 l 447.266 501.465 l S
-447.266 514.383 m 438.887 514.383 l 447.266 514.383 l S
-447.266 527.301 m 438.887 527.301 l 447.266 527.301 l S
-447.266 540.219 m 438.887 540.219 l 447.266 540.219 l S
-447.266 411.035 m 447.266 540.219 l S
+447.266 411.035 m 438.887 411.035 l 447.266 411.035 l 447.266 423.953 l
+ 438.887 423.953 l 447.266 423.953 l 447.266 436.871 l 438.887 436.871 l
+ 447.266 436.871 l 447.266 449.789 l 438.887 449.789 l 447.266 449.789 l
+ 447.266 462.711 l 438.887 462.711 l 447.266 462.711 l 447.266 475.629 l
+ 438.887 475.629 l 447.266 475.629 l 447.266 488.547 l 438.887 488.547 l
+ 447.266 488.547 l 447.266 501.465 l 438.887 501.465 l 447.266 501.465 l
+ 447.266 514.383 l 438.887 514.383 l 447.266 514.383 l 447.266 527.301 l
+ 438.887 527.301 l 447.266 527.301 l 447.266 540.219 l 438.887 540.219 l
+ 447.266 540.219 l 447.266 411.035 l 447.266 540.219 l S
 404.496 423.477 m 410.242 423.477 l S
 414.391 427.305 m 413.434 426.988 l 412.793 426.027 l 412.477 424.434 l
  412.477 423.477 l 412.793 421.879 l 413.434 420.922 l 414.391 420.602 l
@@ -2887,18 +2831,15 @@ l S
  523.949 l 431.945 524.27 l 432.582 525.227 l 432.902 526.82 l 432.902 527.777
  l 432.582 529.375 l 431.945 530.332 l 430.988 530.652 l 430.348 530.652
  l S
-1034.629 411.035 m 1043.008 411.035 l 1034.629 411.035 l S
-1034.629 423.953 m 1043.008 423.953 l 1034.629 423.953 l S
-1034.629 436.871 m 1043.008 436.871 l 1034.629 436.871 l S
-1034.629 449.789 m 1043.008 449.789 l 1034.629 449.789 l S
-1034.629 462.711 m 1043.008 462.711 l 1034.629 462.711 l S
-1034.629 475.629 m 1043.008 475.629 l 1034.629 475.629 l S
-1034.629 488.547 m 1043.008 488.547 l 1034.629 488.547 l S
-1034.629 501.465 m 1043.008 501.465 l 1034.629 501.465 l S
-1034.629 514.383 m 1043.008 514.383 l 1034.629 514.383 l S
-1034.629 527.301 m 1043.008 527.301 l 1034.629 527.301 l S
-1034.629 540.219 m 1043.008 540.219 l 1034.629 540.219 l S
-1034.629 411.035 m 1034.629 540.219 l S
+1034.629 411.035 m 1043.008 411.035 l 1034.629 411.035 l 1034.629 423.953
+ l 1043.008 423.953 l 1034.629 423.953 l 1034.629 436.871 l 1043.008 436.871
+ l 1034.629 436.871 l 1034.629 449.789 l 1043.008 449.789 l 1034.629 449.789
+ l 1034.629 462.711 l 1043.008 462.711 l 1034.629 462.711 l 1034.629 475.629
+ l 1043.008 475.629 l 1034.629 475.629 l 1034.629 488.547 l 1043.008 488.547
+ l 1034.629 488.547 l 1034.629 501.465 l 1043.008 501.465 l 1034.629 501.465
+ l 1034.629 514.383 l 1043.008 514.383 l 1034.629 514.383 l 1034.629 527.301
+ l 1043.008 527.301 l 1034.629 527.301 l 1034.629 540.219 l 1043.008 540.219
+ l 1034.629 540.219 l 1034.629 411.035 l 1034.629 540.219 l S
 495.211 540.219 m 495.211 548.594 l 495.211 540.219 l 555.148 540.219 l
  555.148 548.594 l 555.148 540.219 l 615.082 540.219 l 615.082 548.594 l
  615.082 540.219 l 675.02 540.219 l 675.02 548.594 l 675.02 540.219 l 734.953
@@ -2906,8 +2847,7 @@ l S
  548.594 l 794.887 540.219 l 854.824 540.219 l 854.824 548.594 l 854.824
  540.219 l 914.758 540.219 l 914.758 548.594 l 914.758 540.219 l 974.695
  540.219 l 974.695 548.594 l 974.695 540.219 l 1034.629 540.219 l 1034.629
- 548.594 l 1034.629 540.219 l S
-447.266 540.219 m 1034.629 540.219 l S
+ 548.594 l 1034.629 540.219 l 447.266 540.219 l 1034.629 540.219 l S
 495.211 411.035 m 495.211 402.66 l 495.211 411.035 l 555.148 411.035 l 
 555.148 402.66 l 555.148 411.035 l 615.082 411.035 l 615.082 402.66 l 615.082
  411.035 l 675.02 411.035 l 675.02 402.66 l 675.02 411.035 l 734.953 411.035
@@ -2915,8 +2855,7 @@ l S
  794.887 411.035 l 854.824 411.035 l 854.824 402.66 l 854.824 411.035 l 
 914.758 411.035 l 914.758 402.66 l 914.758 411.035 l 974.695 411.035 l 974.695
  402.66 l 974.695 411.035 l 1034.629 411.035 l 1034.629 402.66 l 1034.629
- 411.035 l S
-447.266 411.035 m 1034.629 411.035 l S
+ 411.035 l 447.266 411.035 l 1034.629 411.035 l S
 496.809 396.629 m 493.617 396.629 l 493.297 393.754 l 493.617 394.074 l
  494.574 394.395 l 495.531 394.395 l 496.488 394.074 l 497.129 393.434 l
  497.445 392.477 l 497.445 391.84 l 497.129 390.883 l 496.488 390.242 l 
@@ -2957,8 +2896,8 @@ l S
   Q
 Q
 q
-0 1101.6 634 -1102 re W n
-[ 0 0.999814 -0.999814 0 633.881823 0 ] concat
+0 633.6 1102 -634 re W n
+[ 0.999814 0 0 0.999814 0 -0.281809 ] concat
   q
 1 0 0 rg
 1 w
@@ -4991,8 +4930,8 @@ l 830.848 518.258 l 842.836 519.551 l 854.824 520.84 l 866.812 522.133 l
   Q
 Q
 q
-0 1101.6 634 -1102 re W n
-[ 0 0.999814 -0.999814 0 633.881823 0 ] concat
+0 633.6 1102 -634 re W n
+[ 0.999814 0 0 0.999814 0 -0.281809 ] concat
   q
 0 g
 1 w
@@ -20138,20 +20077,16 @@ l 308.852 222.605 l 308.883 222.605 l 308.883 222.609 l 308.91 222.609 l
 l 310.383 222.789 l 310.387 222.793 l 310.414 222.793 l 310.418 222.797 
 l 310.449 222.797 l 310.453 222.801 l 310.48 222.801 l 310.484 222.805 l
  310.516 222.805 l 310.516 222.809 l 310.539 222.809 l S
-67.609 79.277 m 60.566 79.277 l 67.609 79.277 l S
-67.609 92.535 m 60.566 92.535 l 67.609 92.535 l S
-67.609 105.793 m 60.566 105.793 l 67.609 105.793 l S
-67.609 119.051 m 60.566 119.051 l 67.609 119.051 l S
-67.609 132.305 m 60.566 132.305 l 67.609 132.305 l S
-67.609 145.562 m 60.566 145.562 l 67.609 145.562 l S
-67.609 158.82 m 60.566 158.82 l 67.609 158.82 l S
-67.609 172.078 m 60.566 172.078 l 67.609 172.078 l S
-67.609 185.336 m 60.566 185.336 l 67.609 185.336 l S
-67.609 198.594 m 60.566 198.594 l 67.609 198.594 l S
-67.609 211.852 m 60.566 211.852 l 67.609 211.852 l S
-67.609 225.105 m 60.566 225.105 l 67.609 225.105 l S
-67.609 238.363 m 60.566 238.363 l 67.609 238.363 l S
-67.609 79.277 m 67.609 238.363 l S
+67.609 79.277 m 60.566 79.277 l 67.609 79.277 l 67.609 92.535 l 60.566 
+92.535 l 67.609 92.535 l 67.609 105.793 l 60.566 105.793 l 67.609 105.793
+ l 67.609 119.051 l 60.566 119.051 l 67.609 119.051 l 67.609 132.305 l 60.566
+ 132.305 l 67.609 132.305 l 67.609 145.562 l 60.566 145.562 l 67.609 145.562
+ l 67.609 158.82 l 60.566 158.82 l 67.609 158.82 l 67.609 172.078 l 60.566
+ 172.078 l 67.609 172.078 l 67.609 185.336 l 60.566 185.336 l 67.609 185.336
+ l 67.609 198.594 l 60.566 198.594 l 67.609 198.594 l 67.609 211.852 l 60.566
+ 211.852 l 67.609 211.852 l 67.609 225.105 l 60.566 225.105 l 67.609 225.105
+ l 67.609 238.363 l 60.566 238.363 l 67.609 238.363 l 67.609 79.277 l 67.609
+ 238.363 l S
 31.66 78.875 m 36.488 78.875 l S
 39.172 81.02 m 39.707 81.289 l 40.512 82.094 l 40.512 76.461 l S
 44.27 76.996 m 44 76.727 l 44.27 76.461 l 44.539 76.727 l 44.27 76.996 
@@ -20249,36 +20184,31 @@ l S
  237.961 l 52.051 236.621 l 52.586 235.816 l 53.391 235.547 l 53.926 235.547
  l 54.73 235.816 l 55.27 236.621 l 55.535 237.961 l 55.535 238.766 l 55.27
  240.109 l 54.73 240.914 l 53.926 241.184 l 53.391 241.184 l S
-310.539 79.277 m 317.582 79.277 l 310.539 79.277 l S
-310.539 92.535 m 317.582 92.535 l 310.539 92.535 l S
-310.539 105.793 m 317.582 105.793 l 310.539 105.793 l S
-310.539 119.051 m 317.582 119.051 l 310.539 119.051 l S
-310.539 132.305 m 317.582 132.305 l 310.539 132.305 l S
-310.539 145.562 m 317.582 145.562 l 310.539 145.562 l S
-310.539 158.82 m 317.582 158.82 l 310.539 158.82 l S
-310.539 172.078 m 317.582 172.078 l 310.539 172.078 l S
-310.539 185.336 m 317.582 185.336 l 310.539 185.336 l S
-310.539 198.594 m 317.582 198.594 l 310.539 198.594 l S
-310.539 211.852 m 317.582 211.852 l 310.539 211.852 l S
-310.539 225.105 m 317.582 225.105 l 310.539 225.105 l S
-310.539 238.363 m 317.582 238.363 l 310.539 238.363 l S
-310.539 79.277 m 310.539 238.363 l S
+310.539 79.277 m 317.582 79.277 l 310.539 79.277 l 310.539 92.535 l 317.582
+ 92.535 l 310.539 92.535 l 310.539 105.793 l 317.582 105.793 l 310.539 105.793
+ l 310.539 119.051 l 317.582 119.051 l 310.539 119.051 l 310.539 132.305
+ l 317.582 132.305 l 310.539 132.305 l 310.539 145.562 l 317.582 145.562
+ l 310.539 145.562 l 310.539 158.82 l 317.582 158.82 l 310.539 158.82 l 
+310.539 172.078 l 317.582 172.078 l 310.539 172.078 l 310.539 185.336 l 
+317.582 185.336 l 310.539 185.336 l 310.539 198.594 l 317.582 198.594 l 
+310.539 198.594 l 310.539 211.852 l 317.582 211.852 l 310.539 211.852 l 
+310.539 225.105 l 317.582 225.105 l 310.539 225.105 l 310.539 238.363 l 
+317.582 238.363 l 310.539 238.363 l 310.539 79.277 l 310.539 238.363 l S
 92.145 238.363 m 92.145 245.406 l 92.145 238.363 l 116.684 238.363 l 116.684
  245.406 l 116.684 238.363 l 141.223 238.363 l 141.223 245.406 l 141.223
  238.363 l 165.762 238.363 l 165.762 245.406 l 165.762 238.363 l 190.301
  238.363 l 190.301 245.406 l 190.301 238.363 l 214.84 238.363 l 214.84 245.406
  l 214.84 238.363 l 239.379 238.363 l 239.379 245.406 l 239.379 238.363 
 l 263.918 238.363 l 263.918 245.406 l 263.918 238.363 l 288.457 238.363 
-l 288.457 245.406 l 288.457 238.363 l S
-67.609 238.363 m 310.539 238.363 l S
+l 288.457 245.406 l 288.457 238.363 l 67.609 238.363 l 310.539 238.363 l
+ S
 92.145 79.277 m 92.145 72.234 l 92.145 79.277 l 116.684 79.277 l 116.684
  72.234 l 116.684 79.277 l 141.223 79.277 l 141.223 72.234 l 141.223 79.277
  l 165.762 79.277 l 165.762 72.234 l 165.762 79.277 l 190.301 79.277 l 190.301
  72.234 l 190.301 79.277 l 214.84 79.277 l 214.84 72.234 l 214.84 79.277
  l 239.379 79.277 l 239.379 72.234 l 239.379 79.277 l 263.918 79.277 l 263.918
  72.234 l 263.918 79.277 l 288.457 79.277 l 288.457 72.234 l 288.457 79.277
- l S
-67.609 79.277 m 310.539 79.277 l S
+ l 67.609 79.277 l 310.539 79.277 l S
 80.34 66.09 m 80.879 66.359 l 81.684 67.164 l 81.684 61.531 l S
 86.512 67.164 m 85.707 66.898 l 85.168 66.09 l 84.902 64.75 l 84.902 63.945
  l 85.168 62.605 l 85.707 61.801 l 86.512 61.531 l 87.047 61.531 l 87.852
@@ -20381,4 +20311,5 @@ Q
 Q Q
 showpage
 %%Trailer
+end restore
 %%EOF
diff --git a/bench/test_results/bnplot_4.pdf b/bench/test_results/bnplot_4.pdf
index f0ce3d7..d55879d 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 9aad02a..e5110c8 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: Fri Jun 17 15:19:10 2016
+%%CreationDate: Tue Apr 18 17:19:02 2017
 %%Pages: 1
 %%DocumentData: Clean7Bit
 %%LanguageLevel: 2
@@ -156,17 +156,14 @@ l 191.09 493.477 l 202.566 496.723 l 213.254 499.973 l 223.16 503.219 l
  532.438 l 285.668 535.684 l 289.109 538.93 l 292.188 542.18 l 294.934 545.426
  l 297.367 548.672 l 299.523 551.918 l 301.422 555.164 l S
 0 g
-67.609 409.062 m 60.566 409.062 l 67.609 409.062 l S
-67.609 425.297 m 60.566 425.297 l 67.609 425.297 l S
-67.609 441.531 m 60.566 441.531 l 67.609 441.531 l S
-67.609 457.766 m 60.566 457.766 l 67.609 457.766 l S
-67.609 473.996 m 60.566 473.996 l 67.609 473.996 l S
-67.609 490.23 m 60.566 490.23 l 67.609 490.23 l S
-67.609 506.465 m 60.566 506.465 l 67.609 506.465 l S
-67.609 522.699 m 60.566 522.699 l 67.609 522.699 l S
-67.609 538.93 m 60.566 538.93 l 67.609 538.93 l S
-67.609 555.164 m 60.566 555.164 l 67.609 555.164 l S
-67.609 396.078 m 67.609 555.164 l S
+67.609 409.062 m 60.566 409.062 l 67.609 409.062 l 67.609 425.297 l 60.566
+ 425.297 l 67.609 425.297 l 67.609 441.531 l 60.566 441.531 l 67.609 441.531
+ l 67.609 457.766 l 60.566 457.766 l 67.609 457.766 l 67.609 473.996 l 60.566
+ 473.996 l 67.609 473.996 l 67.609 490.23 l 60.566 490.23 l 67.609 490.23
+ l 67.609 506.465 l 60.566 506.465 l 67.609 506.465 l 67.609 522.699 l 60.566
+ 522.699 l 67.609 522.699 l 67.609 538.93 l 60.566 538.93 l 67.609 538.93
+ l 67.609 555.164 l 60.566 555.164 l 67.609 555.164 l 67.609 396.078 l 67.609
+ 555.164 l S
 55 411.879 m 52.316 411.879 l 52.051 409.465 l 52.316 409.734 l 53.121 
 410.004 l 53.926 410.004 l 54.73 409.734 l 55.27 409.199 l 55.535 408.395
  l 55.535 407.855 l 55.27 407.051 l 54.73 406.516 l 53.926 406.246 l 53.121
@@ -198,17 +195,14 @@ l 191.09 493.477 l 202.566 496.723 l 213.254 499.973 l 223.16 503.219 l
  l 53.926 539.871 l 54.73 539.602 l 55.27 539.066 l 55.535 538.262 l 55.535
  537.723 l 55.27 536.918 l 54.73 536.383 l 53.926 536.113 l 53.121 536.113
  l 52.316 536.383 l 52.051 536.652 l 51.781 537.188 l S
-310.539 409.062 m 317.582 409.062 l 310.539 409.062 l S
-310.539 425.297 m 317.582 425.297 l 310.539 425.297 l S
-310.539 441.531 m 317.582 441.531 l 310.539 441.531 l S
-310.539 457.766 m 317.582 457.766 l 310.539 457.766 l S
-310.539 473.996 m 317.582 473.996 l 310.539 473.996 l S
-310.539 490.23 m 317.582 490.23 l 310.539 490.23 l S
-310.539 506.465 m 317.582 506.465 l 310.539 506.465 l S
-310.539 522.699 m 317.582 522.699 l 310.539 522.699 l S
-310.539 538.93 m 317.582 538.93 l 310.539 538.93 l S
-310.539 555.164 m 317.582 555.164 l 310.539 555.164 l S
-310.539 396.078 m 310.539 555.164 l S
+310.539 409.062 m 317.582 409.062 l 310.539 409.062 l 310.539 425.297 l
+ 317.582 425.297 l 310.539 425.297 l 310.539 441.531 l 317.582 441.531 l
+ 310.539 441.531 l 310.539 457.766 l 317.582 457.766 l 310.539 457.766 l
+ 310.539 473.996 l 317.582 473.996 l 310.539 473.996 l 310.539 490.23 l 
+317.582 490.23 l 310.539 490.23 l 310.539 506.465 l 317.582 506.465 l 310.539
+ 506.465 l 310.539 522.699 l 317.582 522.699 l 310.539 522.699 l 310.539
+ 538.93 l 317.582 538.93 l 310.539 538.93 l 310.539 555.164 l 317.582 555.164
+ l 310.539 555.164 l 310.539 396.078 l 310.539 555.164 l S
 67.609 555.164 m 67.609 562.207 l 67.609 555.164 l 91.902 555.164 l 91.902
  562.207 l 91.902 555.164 l 116.195 555.164 l 116.195 562.207 l 116.195 
 555.164 l 140.488 555.164 l 140.488 562.207 l 140.488 555.164 l 164.781 
@@ -217,8 +211,7 @@ l 191.09 493.477 l 202.566 496.723 l 213.254 499.973 l 223.16 503.219 l
 555.164 l 237.66 555.164 l 237.66 562.207 l 237.66 555.164 l 261.953 555.164
  l 261.953 562.207 l 261.953 555.164 l 286.246 555.164 l 286.246 562.207
  l 286.246 555.164 l 310.539 555.164 l 310.539 562.207 l 310.539 555.164
- l S
-67.609 555.164 m 310.539 555.164 l S
+ l 67.609 555.164 l 310.539 555.164 l S
 67.609 396.078 m 67.609 389.035 l 67.609 396.078 l 91.902 396.078 l 91.902
  389.035 l 91.902 396.078 l 116.195 396.078 l 116.195 389.035 l 116.195 
 396.078 l 140.488 396.078 l 140.488 389.035 l 140.488 396.078 l 164.781 
@@ -227,8 +220,7 @@ l 191.09 493.477 l 202.566 496.723 l 213.254 499.973 l 223.16 503.219 l
 396.078 l 237.66 396.078 l 237.66 389.035 l 237.66 396.078 l 261.953 396.078
  l 261.953 389.035 l 261.953 396.078 l 286.246 396.078 l 286.246 389.035
  l 286.246 396.078 l 310.539 396.078 l 310.539 389.035 l 310.539 396.078
- l S
-67.609 396.078 m 310.539 396.078 l S
+ l 67.609 396.078 l 310.539 396.078 l S
 80.098 380.746 m 84.926 380.746 l S
 88.414 383.965 m 87.609 383.695 l 87.074 382.891 l 86.805 381.551 l 86.805
  380.746 l 87.074 379.402 l 87.609 378.598 l 88.414 378.332 l 88.949 378.332
@@ -2578,20 +2570,17 @@ l 938.734 150 l 950.719 150.43 l 962.707 150.859 l 974.695 151.293 l 986.68
 1022.641 218.535 m 1034.629 219.375 l S
 1033.535 218.281 m 1034.629 218.281 l S
 1034.629 220.473 m 1033.535 220.473 l 1033.535 218.281 l S
-447.266 94.234 m 438.887 94.234 l 447.266 94.234 l S
-447.266 105 m 438.887 105 l 447.266 105 l S
-447.266 115.766 m 438.887 115.766 l 447.266 115.766 l S
-447.266 126.531 m 438.887 126.531 l 447.266 126.531 l S
-447.266 137.297 m 438.887 137.297 l 447.266 137.297 l S
-447.266 148.062 m 438.887 148.062 l 447.266 148.062 l S
-447.266 158.828 m 438.887 158.828 l 447.266 158.828 l S
-447.266 169.594 m 438.887 169.594 l 447.266 169.594 l S
-447.266 180.359 m 438.887 180.359 l 447.266 180.359 l S
-447.266 191.121 m 438.887 191.121 l 447.266 191.121 l S
-447.266 201.887 m 438.887 201.887 l 447.266 201.887 l S
-447.266 212.652 m 438.887 212.652 l 447.266 212.652 l S
-447.266 223.418 m 438.887 223.418 l 447.266 223.418 l S
-447.266 94.234 m 447.266 223.418 l S
+447.266 94.234 m 438.887 94.234 l 447.266 94.234 l 447.266 105 l 438.887
+ 105 l 447.266 105 l 447.266 115.766 l 438.887 115.766 l 447.266 115.766
+ l 447.266 126.531 l 438.887 126.531 l 447.266 126.531 l 447.266 137.297
+ l 438.887 137.297 l 447.266 137.297 l 447.266 148.062 l 438.887 148.062
+ l 447.266 148.062 l 447.266 158.828 l 438.887 158.828 l 447.266 158.828
+ l 447.266 169.594 l 438.887 169.594 l 447.266 169.594 l 447.266 180.359
+ l 438.887 180.359 l 447.266 180.359 l 447.266 191.121 l 438.887 191.121
+ l 447.266 191.121 l 447.266 201.887 l 438.887 201.887 l 447.266 201.887
+ l 447.266 212.652 l 438.887 212.652 l 447.266 212.652 l 447.266 223.418
+ l 438.887 223.418 l 447.266 223.418 l 447.266 94.234 l 447.266 223.418 
+l S
 404.496 93.758 m 410.242 93.758 l S
 413.434 96.312 m 414.07 96.629 l 415.027 97.586 l 415.027 90.887 l S
 419.496 91.523 m 419.18 91.203 l 419.496 90.887 l 419.816 91.203 l 419.496
@@ -2703,20 +2692,17 @@ l 938.734 150 l 950.719 150.43 l 962.707 150.859 l 974.695 151.293 l 986.68
 430.988 220.066 l 431.945 220.387 l 432.582 221.344 l 432.902 222.941 l 
 432.902 223.898 l 432.582 225.492 l 431.945 226.449 l 430.988 226.77 l 430.348
  226.77 l S
-1034.629 94.234 m 1043.008 94.234 l 1034.629 94.234 l S
-1034.629 105 m 1043.008 105 l 1034.629 105 l S
-1034.629 115.766 m 1043.008 115.766 l 1034.629 115.766 l S
-1034.629 126.531 m 1043.008 126.531 l 1034.629 126.531 l S
-1034.629 137.297 m 1043.008 137.297 l 1034.629 137.297 l S
-1034.629 148.062 m 1043.008 148.062 l 1034.629 148.062 l S
-1034.629 158.828 m 1043.008 158.828 l 1034.629 158.828 l S
-1034.629 169.594 m 1043.008 169.594 l 1034.629 169.594 l S
-1034.629 180.359 m 1043.008 180.359 l 1034.629 180.359 l S
-1034.629 191.121 m 1043.008 191.121 l 1034.629 191.121 l S
-1034.629 201.887 m 1043.008 201.887 l 1034.629 201.887 l S
-1034.629 212.652 m 1043.008 212.652 l 1034.629 212.652 l S
-1034.629 223.418 m 1043.008 223.418 l 1034.629 223.418 l S
-1034.629 94.234 m 1034.629 223.418 l S
+1034.629 94.234 m 1043.008 94.234 l 1034.629 94.234 l 1034.629 105 l 1043.008
+ 105 l 1034.629 105 l 1034.629 115.766 l 1043.008 115.766 l 1034.629 115.766
+ l 1034.629 126.531 l 1043.008 126.531 l 1034.629 126.531 l 1034.629 137.297
+ l 1043.008 137.297 l 1034.629 137.297 l 1034.629 148.062 l 1043.008 148.062
+ l 1034.629 148.062 l 1034.629 158.828 l 1043.008 158.828 l 1034.629 158.828
+ l 1034.629 169.594 l 1043.008 169.594 l 1034.629 169.594 l 1034.629 180.359
+ l 1043.008 180.359 l 1034.629 180.359 l 1034.629 191.121 l 1043.008 191.121
+ l 1034.629 191.121 l 1034.629 201.887 l 1043.008 201.887 l 1034.629 201.887
+ l 1034.629 212.652 l 1043.008 212.652 l 1034.629 212.652 l 1034.629 223.418
+ l 1043.008 223.418 l 1034.629 223.418 l 1034.629 94.234 l 1034.629 223.418
+ l S
 495.211 223.418 m 495.211 231.797 l 495.211 223.418 l 555.148 223.418 l
  555.148 231.797 l 555.148 223.418 l 615.082 223.418 l 615.082 231.797 l
  615.082 223.418 l 675.02 223.418 l 675.02 231.797 l 675.02 223.418 l 734.953
@@ -2724,16 +2710,15 @@ l 938.734 150 l 950.719 150.43 l 962.707 150.859 l 974.695 151.293 l 986.68
  231.797 l 794.887 223.418 l 854.824 223.418 l 854.824 231.797 l 854.824
  223.418 l 914.758 223.418 l 914.758 231.797 l 914.758 223.418 l 974.695
  223.418 l 974.695 231.797 l 974.695 223.418 l 1034.629 223.418 l 1034.629
- 231.797 l 1034.629 223.418 l S
-447.266 223.418 m 1034.629 223.418 l S
+ 231.797 l 1034.629 223.418 l 447.266 223.418 l 1034.629 223.418 l S
 495.211 94.234 m 495.211 85.859 l 495.211 94.234 l 555.148 94.234 l 555.148
  85.859 l 555.148 94.234 l 615.082 94.234 l 615.082 85.859 l 615.082 94.234
  l 675.02 94.234 l 675.02 85.859 l 675.02 94.234 l 734.953 94.234 l 734.953
  85.859 l 734.953 94.234 l 794.887 94.234 l 794.887 85.859 l 794.887 94.234
  l 854.824 94.234 l 854.824 85.859 l 854.824 94.234 l 914.758 94.234 l 914.758
  85.859 l 914.758 94.234 l 974.695 94.234 l 974.695 85.859 l 974.695 94.234
- l 1034.629 94.234 l 1034.629 85.859 l 1034.629 94.234 l S
-447.266 94.234 m 1034.629 94.234 l S
+ l 1034.629 94.234 l 1034.629 85.859 l 1034.629 94.234 l 447.266 94.234 
+l 1034.629 94.234 l S
 496.809 79.828 m 493.617 79.828 l 493.297 76.953 l 493.617 77.273 l 494.574
  77.594 l 495.531 77.594 l 496.488 77.273 l 497.129 76.637 l 497.445 75.68
  l 497.445 75.039 l 497.129 74.082 l 496.488 73.445 l 495.531 73.125 l 494.574
@@ -2789,18 +2774,15 @@ l 794.887 493.754 l 806.875 498.613 l 818.863 503.074 l 830.848 507.16 l
  938.734 530.461 l 950.719 531.918 l 962.707 533.215 l 974.695 534.359 l
  986.68 535.367 l 998.668 536.25 l 1010.656 537.02 l 1022.641 537.684 l 
 1034.629 538.25 l S
-447.266 411.035 m 438.887 411.035 l 447.266 411.035 l S
-447.266 423.953 m 438.887 423.953 l 447.266 423.953 l S
-447.266 436.871 m 438.887 436.871 l 447.266 436.871 l S
-447.266 449.789 m 438.887 449.789 l 447.266 449.789 l S
-447.266 462.711 m 438.887 462.711 l 447.266 462.711 l S
-447.266 475.629 m 438.887 475.629 l 447.266 475.629 l S
-447.266 488.547 m 438.887 488.547 l 447.266 488.547 l S
-447.266 501.465 m 438.887 501.465 l 447.266 501.465 l S
-447.266 514.383 m 438.887 514.383 l 447.266 514.383 l S
-447.266 527.301 m 438.887 527.301 l 447.266 527.301 l S
-447.266 540.219 m 438.887 540.219 l 447.266 540.219 l S
-447.266 411.035 m 447.266 540.219 l S
+447.266 411.035 m 438.887 411.035 l 447.266 411.035 l 447.266 423.953 l
+ 438.887 423.953 l 447.266 423.953 l 447.266 436.871 l 438.887 436.871 l
+ 447.266 436.871 l 447.266 449.789 l 438.887 449.789 l 447.266 449.789 l
+ 447.266 462.711 l 438.887 462.711 l 447.266 462.711 l 447.266 475.629 l
+ 438.887 475.629 l 447.266 475.629 l 447.266 488.547 l 438.887 488.547 l
+ 447.266 488.547 l 447.266 501.465 l 438.887 501.465 l 447.266 501.465 l
+ 447.266 514.383 l 438.887 514.383 l 447.266 514.383 l 447.266 527.301 l
+ 438.887 527.301 l 447.266 527.301 l 447.266 540.219 l 438.887 540.219 l
+ 447.266 540.219 l 447.266 411.035 l 447.266 540.219 l S
 404.496 423.477 m 410.242 423.477 l S
 414.391 427.305 m 413.434 426.988 l 412.793 426.027 l 412.477 424.434 l
  412.477 423.477 l 412.793 421.879 l 413.434 420.922 l 414.391 420.602 l
@@ -2887,18 +2869,15 @@ l S
  523.949 l 431.945 524.27 l 432.582 525.227 l 432.902 526.82 l 432.902 527.777
  l 432.582 529.375 l 431.945 530.332 l 430.988 530.652 l 430.348 530.652
  l S
-1034.629 411.035 m 1043.008 411.035 l 1034.629 411.035 l S
-1034.629 423.953 m 1043.008 423.953 l 1034.629 423.953 l S
-1034.629 436.871 m 1043.008 436.871 l 1034.629 436.871 l S
-1034.629 449.789 m 1043.008 449.789 l 1034.629 449.789 l S
-1034.629 462.711 m 1043.008 462.711 l 1034.629 462.711 l S
-1034.629 475.629 m 1043.008 475.629 l 1034.629 475.629 l S
-1034.629 488.547 m 1043.008 488.547 l 1034.629 488.547 l S
-1034.629 501.465 m 1043.008 501.465 l 1034.629 501.465 l S
-1034.629 514.383 m 1043.008 514.383 l 1034.629 514.383 l S
-1034.629 527.301 m 1043.008 527.301 l 1034.629 527.301 l S
-1034.629 540.219 m 1043.008 540.219 l 1034.629 540.219 l S
-1034.629 411.035 m 1034.629 540.219 l S
+1034.629 411.035 m 1043.008 411.035 l 1034.629 411.035 l 1034.629 423.953
+ l 1043.008 423.953 l 1034.629 423.953 l 1034.629 436.871 l 1043.008 436.871
+ l 1034.629 436.871 l 1034.629 449.789 l 1043.008 449.789 l 1034.629 449.789
+ l 1034.629 462.711 l 1043.008 462.711 l 1034.629 462.711 l 1034.629 475.629
+ l 1043.008 475.629 l 1034.629 475.629 l 1034.629 488.547 l 1043.008 488.547
+ l 1034.629 488.547 l 1034.629 501.465 l 1043.008 501.465 l 1034.629 501.465
+ l 1034.629 514.383 l 1043.008 514.383 l 1034.629 514.383 l 1034.629 527.301
+ l 1043.008 527.301 l 1034.629 527.301 l 1034.629 540.219 l 1043.008 540.219
+ l 1034.629 540.219 l 1034.629 411.035 l 1034.629 540.219 l S
 495.211 540.219 m 495.211 548.594 l 495.211 540.219 l 555.148 540.219 l
  555.148 548.594 l 555.148 540.219 l 615.082 540.219 l 615.082 548.594 l
  615.082 540.219 l 675.02 540.219 l 675.02 548.594 l 675.02 540.219 l 734.953
@@ -2906,8 +2885,7 @@ l S
  548.594 l 794.887 540.219 l 854.824 540.219 l 854.824 548.594 l 854.824
  540.219 l 914.758 540.219 l 914.758 548.594 l 914.758 540.219 l 974.695
  540.219 l 974.695 548.594 l 974.695 540.219 l 1034.629 540.219 l 1034.629
- 548.594 l 1034.629 540.219 l S
-447.266 540.219 m 1034.629 540.219 l S
+ 548.594 l 1034.629 540.219 l 447.266 540.219 l 1034.629 540.219 l S
 495.211 411.035 m 495.211 402.66 l 495.211 411.035 l 555.148 411.035 l 
 555.148 402.66 l 555.148 411.035 l 615.082 411.035 l 615.082 402.66 l 615.082
  411.035 l 675.02 411.035 l 675.02 402.66 l 675.02 411.035 l 734.953 411.035
@@ -2915,8 +2893,7 @@ l S
  794.887 411.035 l 854.824 411.035 l 854.824 402.66 l 854.824 411.035 l 
 914.758 411.035 l 914.758 402.66 l 914.758 411.035 l 974.695 411.035 l 974.695
  402.66 l 974.695 411.035 l 1034.629 411.035 l 1034.629 402.66 l 1034.629
- 411.035 l S
-447.266 411.035 m 1034.629 411.035 l S
+ 411.035 l 447.266 411.035 l 1034.629 411.035 l S
 496.809 396.629 m 493.617 396.629 l 493.297 393.754 l 493.617 394.074 l
  494.574 394.395 l 495.531 394.395 l 496.488 394.074 l 497.129 393.434 l
  497.445 392.477 l 497.445 391.84 l 497.129 390.883 l 496.488 390.242 l 
@@ -20138,20 +20115,16 @@ l 308.852 222.605 l 308.883 222.605 l 308.883 222.609 l 308.91 222.609 l
 l 310.383 222.789 l 310.387 222.793 l 310.414 222.793 l 310.418 222.797 
 l 310.449 222.797 l 310.453 222.801 l 310.48 222.801 l 310.484 222.805 l
  310.516 222.805 l 310.516 222.809 l 310.539 222.809 l S
-67.609 79.277 m 60.566 79.277 l 67.609 79.277 l S
-67.609 92.535 m 60.566 92.535 l 67.609 92.535 l S
-67.609 105.793 m 60.566 105.793 l 67.609 105.793 l S
-67.609 119.051 m 60.566 119.051 l 67.609 119.051 l S
-67.609 132.305 m 60.566 132.305 l 67.609 132.305 l S
-67.609 145.562 m 60.566 145.562 l 67.609 145.562 l S
-67.609 158.82 m 60.566 158.82 l 67.609 158.82 l S
-67.609 172.078 m 60.566 172.078 l 67.609 172.078 l S
-67.609 185.336 m 60.566 185.336 l 67.609 185.336 l S
-67.609 198.594 m 60.566 198.594 l 67.609 198.594 l S
-67.609 211.852 m 60.566 211.852 l 67.609 211.852 l S
-67.609 225.105 m 60.566 225.105 l 67.609 225.105 l S
-67.609 238.363 m 60.566 238.363 l 67.609 238.363 l S
-67.609 79.277 m 67.609 238.363 l S
+67.609 79.277 m 60.566 79.277 l 67.609 79.277 l 67.609 92.535 l 60.566 
+92.535 l 67.609 92.535 l 67.609 105.793 l 60.566 105.793 l 67.609 105.793
+ l 67.609 119.051 l 60.566 119.051 l 67.609 119.051 l 67.609 132.305 l 60.566
+ 132.305 l 67.609 132.305 l 67.609 145.562 l 60.566 145.562 l 67.609 145.562
+ l 67.609 158.82 l 60.566 158.82 l 67.609 158.82 l 67.609 172.078 l 60.566
+ 172.078 l 67.609 172.078 l 67.609 185.336 l 60.566 185.336 l 67.609 185.336
+ l 67.609 198.594 l 60.566 198.594 l 67.609 198.594 l 67.609 211.852 l 60.566
+ 211.852 l 67.609 211.852 l 67.609 225.105 l 60.566 225.105 l 67.609 225.105
+ l 67.609 238.363 l 60.566 238.363 l 67.609 238.363 l 67.609 79.277 l 67.609
+ 238.363 l S
 31.66 78.875 m 36.488 78.875 l S
 39.172 81.02 m 39.707 81.289 l 40.512 82.094 l 40.512 76.461 l S
 44.27 76.996 m 44 76.727 l 44.27 76.461 l 44.539 76.727 l 44.27 76.996 
@@ -20249,36 +20222,31 @@ l S
  237.961 l 52.051 236.621 l 52.586 235.816 l 53.391 235.547 l 53.926 235.547
  l 54.73 235.816 l 55.27 236.621 l 55.535 237.961 l 55.535 238.766 l 55.27
  240.109 l 54.73 240.914 l 53.926 241.184 l 53.391 241.184 l S
-310.539 79.277 m 317.582 79.277 l 310.539 79.277 l S
-310.539 92.535 m 317.582 92.535 l 310.539 92.535 l S
-310.539 105.793 m 317.582 105.793 l 310.539 105.793 l S
-310.539 119.051 m 317.582 119.051 l 310.539 119.051 l S
-310.539 132.305 m 317.582 132.305 l 310.539 132.305 l S
-310.539 145.562 m 317.582 145.562 l 310.539 145.562 l S
-310.539 158.82 m 317.582 158.82 l 310.539 158.82 l S
-310.539 172.078 m 317.582 172.078 l 310.539 172.078 l S
-310.539 185.336 m 317.582 185.336 l 310.539 185.336 l S
-310.539 198.594 m 317.582 198.594 l 310.539 198.594 l S
-310.539 211.852 m 317.582 211.852 l 310.539 211.852 l S
-310.539 225.105 m 317.582 225.105 l 310.539 225.105 l S
-310.539 238.363 m 317.582 238.363 l 310.539 238.363 l S
-310.539 79.277 m 310.539 238.363 l S
+310.539 79.277 m 317.582 79.277 l 310.539 79.277 l 310.539 92.535 l 317.582
+ 92.535 l 310.539 92.535 l 310.539 105.793 l 317.582 105.793 l 310.539 105.793
+ l 310.539 119.051 l 317.582 119.051 l 310.539 119.051 l 310.539 132.305
+ l 317.582 132.305 l 310.539 132.305 l 310.539 145.562 l 317.582 145.562
+ l 310.539 145.562 l 310.539 158.82 l 317.582 158.82 l 310.539 158.82 l 
+310.539 172.078 l 317.582 172.078 l 310.539 172.078 l 310.539 185.336 l 
+317.582 185.336 l 310.539 185.336 l 310.539 198.594 l 317.582 198.594 l 
+310.539 198.594 l 310.539 211.852 l 317.582 211.852 l 310.539 211.852 l 
+310.539 225.105 l 317.582 225.105 l 310.539 225.105 l 310.539 238.363 l 
+317.582 238.363 l 310.539 238.363 l 310.539 79.277 l 310.539 238.363 l S
 92.145 238.363 m 92.145 245.406 l 92.145 238.363 l 116.684 238.363 l 116.684
  245.406 l 116.684 238.363 l 141.223 238.363 l 141.223 245.406 l 141.223
  238.363 l 165.762 238.363 l 165.762 245.406 l 165.762 238.363 l 190.301
  238.363 l 190.301 245.406 l 190.301 238.363 l 214.84 238.363 l 214.84 245.406
  l 214.84 238.363 l 239.379 238.363 l 239.379 245.406 l 239.379 238.363 
 l 263.918 238.363 l 263.918 245.406 l 263.918 238.363 l 288.457 238.363 
-l 288.457 245.406 l 288.457 238.363 l S
-67.609 238.363 m 310.539 238.363 l S
+l 288.457 245.406 l 288.457 238.363 l 67.609 238.363 l 310.539 238.363 l
+ S
 92.145 79.277 m 92.145 72.234 l 92.145 79.277 l 116.684 79.277 l 116.684
  72.234 l 116.684 79.277 l 141.223 79.277 l 141.223 72.234 l 141.223 79.277
  l 165.762 79.277 l 165.762 72.234 l 165.762 79.277 l 190.301 79.277 l 190.301
  72.234 l 190.301 79.277 l 214.84 79.277 l 214.84 72.234 l 214.84 79.277
  l 239.379 79.277 l 239.379 72.234 l 239.379 79.277 l 263.918 79.277 l 263.918
  72.234 l 263.918 79.277 l 288.457 79.277 l 288.457 72.234 l 288.457 79.277
- l S
-67.609 79.277 m 310.539 79.277 l S
+ l 67.609 79.277 l 310.539 79.277 l S
 80.34 66.09 m 80.879 66.359 l 81.684 67.164 l 81.684 61.531 l S
 86.512 67.164 m 85.707 66.898 l 85.168 66.09 l 84.902 64.75 l 84.902 63.945
  l 85.168 62.605 l 85.707 61.801 l 86.512 61.531 l 87.047 61.531 l 87.852
diff --git a/bench/test_results/closed_lev.pdf b/bench/test_results/closed_lev.pdf
index 18c4d3d..6ad8e73 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 2ca2161..28b93af 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_green.pdf b/bench/test_results/contourcolor_green.pdf
index 4c104e1..19469b3 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 9245b62..eb6721e 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.gif b/bench/test_results/dashbug.gif
index 9241731..0882353 100644
Binary files a/bench/test_results/dashbug.gif and b/bench/test_results/dashbug.gif differ
diff --git a/bench/test_results/dashbug.pdf b/bench/test_results/dashbug.pdf
index 36b4eaf..72429c7 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 a515545..c6d99b9 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 6d3e911..efe781c 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
new file mode 100644
index 0000000..fbd9133
Binary files /dev/null and b/bench/test_results/err700_key.gif differ
diff --git a/bench/test_results/err700_key.png b/bench/test_results/err700_key.png
new file mode 100644
index 0000000..49017b1
Binary files /dev/null and b/bench/test_results/err700_key.png differ
diff --git a/bench/test_results/ferret_run_tests_err b/bench/test_results/ferret_run_tests_err
index a486762..ad33656 100644
--- a/bench/test_results/ferret_run_tests_err
+++ b/bench/test_results/ferret_run_tests_err
@@ -1,5 +1,5 @@
 Using FERRET /home/flat/ksmith/Ferret/bin/ferret
-lrwxrwxrwx. 1 ksmith oerdnewp 11 Jun 17 15:03 /home/flat/ksmith/Ferret/bin/ferret -> ferret_v7.0
+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
@@ -279,13 +279,30 @@ Benchmark scripts that will be run:
    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
-Beginning at Fri Jun 17 15:03:50 PDT 2016
+   err700_decimate.jnl
+Beginning at Tue Apr 18 17:03:01 PDT 2017
 *** Running ferret script: bn_syntax.jnl
- Cached data cleared from memory
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
@@ -305,7 +322,6 @@ that
  **ERROR: command syntax: \!
 \! ignore (err cuz bang gets escaped)
 *** Running ferret script: bn_dollar.jnl
- Cached data cleared from memory
  **ERROR: invalid command: Value needed for argument 3 in command
           GO bn_dollar.jnl hello
 message/cont $3
@@ -355,7 +371,6 @@ say ($100)
           GO bn_dollar.jnl hello
 say ($10)0
 *** Running ferret script: bn_grave.jnl
- Cached data cleared from memory
  **ERROR: command syntax: unpaired grave accents: message/continue "2+2=`2+2"
 message/continue "2+2=`2+2"
  **ERROR: variable unknown or not in data set: GARBAGE
@@ -397,7 +412,6 @@ MESSAGE/CONTINUE `sst,return=Xsize`
           sst,return=trash
 MESSAGE/CONTINUE `sst,return=trash`
 *** Running ferret script: bn_letd.jnl
- Cached data cleared from memory
  **ERROR: unknown data set: NOEXIST
 DEFINE VARIABLE/d=noexist a = b
  **ERROR: variable unknown or not in data set: AIRT[D=GT4D011]
@@ -407,7 +421,6 @@ can var
  LISTing to file v12file.nc
  LISTing to file v1file.nc
 *** Running ferret script: bn_if.jnl
- Cached data cleared from memory
  **ERROR: invalid command: ENDIF can only be used in an IF clause
 ENDIF
  **ERROR: command syntax: ELIF cannot be used in single line IF
@@ -416,16 +429,15 @@ IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
  **ERROR: command syntax: Trash after ENDIF
           IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
 IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
-           *** NOTE: Unclosed IF statement ... assuming ENDIF
+           *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./bn_if.sub
  **ERROR: invalid command: ELSE can only be used between IF and ENDIF
 else
  **ERROR: invalid command: ENDIF can only be used in an IF clause
 endif
  **ERROR: invalid command: ELIF can only be used between IF and ENDIF
 elif
-           *** NOTE: Unclosed IF statement ... assuming ENDIF
+           *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./bn_if.jnl
 *** Running ferret script: bn_expressions.jnl
- Cached data cleared from memory
  **ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
 LIST/ORDER=X  IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
@@ -436,7 +448,6 @@ DEFINE VARIABLE A = IF I LT 5 THEN I ELSE -9
  **ERROR: variable unknown or not in data set: A1
 load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
 *** Running ferret script: bn_geometry.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -447,7 +458,6 @@ load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
           expression has 5 points (I=1:5)
 LIST X[I=1:5] - X[I=6:9]
 *** Running ferret script: bn_output.jnl
- Cached data cleared from memory
  LISTing to file WV.J34K56L7
  LISTing to file test.dat
  LISTing to file test.dat
@@ -455,15 +465,11 @@ LIST X[I=1:5] - X[I=6:9]
  **ERROR: invalid subcommand: File type no longer supported TMA
 LIST/FILE=test.gt/FORMAT=TMAP/L=1:3 v,v^0.5
 *** Running ferret script: bn_in_plane.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_compress.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 *** Running ferret script: bn_interpolate.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_regrid.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis XFINE
@@ -472,10 +478,8 @@ Replacing definition of axis YFINE
 Replacing definition of axis YCOARSE
 Replacing definition of grid G24
 *** Running ferret script: bn_ez.jnl
- Cached data cleared from memory
  LISTing to file test.unf
 *** Running ferret script: bn_plot.jnl
- Cached data cleared from memory
  **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
@@ -537,7 +541,6 @@ cont/over/i=1:10/thick=4 i
           Value must be positive
 cont/over/i=1:10/sigdig=-1 i
 *** Running ferret script: bn_curv.jnl
- Cached data cleared from memory
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
 Replacing definition of axis LON_FIELD_I_AXIS
 Replacing definition of axis LON_FIELD_J_AXIS
@@ -557,7 +560,6 @@ shade/nolabel sst, x_page[j=1:12], y_page
 shade/nolabel sst, x_page[j=1:12], y_page
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
 *** Running ferret script: bn_symbols.jnl
- Cached data cleared from memory
  **ERROR: command syntax: illegal name: TEST*
 define symbol test* = hello
  **ERROR: invalid command: Value needed for argument 5 in command
@@ -576,9 +578,7 @@ message/continue ($t2"|solong>really hello|bye|")
            *** NOTE: symbol t2 received was: hello
            *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
 *** Running ferret script: bn_comma_delimited.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_dynamic_grids.jnl
- Cached data cleared from memory
  **ERROR: unknown defining grid: GX=NOEXIST
 list temp[gx=noexist]
  **ERROR: command syntax: P=NOEXIST
@@ -621,12 +621,8 @@ list tu
 list tu
  **ERROR: regridding: Axis orientation not matching request:GX=PSYU
 list tu
- Cached data cleared from memory
- **ERROR: request exceeds memory setting: 50 Mwords were requested.
+ **ERROR: request exceeds memory setting
 list temp[gz=z999999,z=5:15]
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
- Cached data cleared from memory
            *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
            *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
            *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
@@ -648,7 +644,6 @@ list a
           Axis extremes are I=1:8
 list a
 *** Running ferret script: bn_cdf.jnl
- Cached data cleared from memory
  LISTing to file test0a.cdf
  LISTing to file test0b.cdf
  LISTing to file test0c.cdf
@@ -761,13 +756,11 @@ list/format=cdf/l=13/append/file=test_abs.cdf l1
  LISTing to file test_fil.cdf
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
 *** Running ferret script: bn_regrid_transforms.jnl
- Cached data cleared from memory
  **ERROR: regridding: G=W - more than 1 target grid
 load temp[g=u,g=w]
  **ERROR: unknown defining grid: G=X --> g=user-or-pseudo-var not allowed
 load temp[g=x]
 *** Running ferret script: bn_axis_limits.jnl
- Cached data cleared from memory
            *** NOTE: /XLIMITS and /YLIMITS are deprecated.
            *** NOTE: Use /HLIMITS and /VLIMITS instead.
  **ERROR: command syntax: xlimits
@@ -787,9 +780,7 @@ plot/xlimits=1:2: i
  **ERROR: invalid command: Must give a range: xlimits=5:5
 plot/xlimits=5:5 i
 *** Running ferret script: bn_movie.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_ez_order.jnl
- Cached data cleared from memory
  LISTing to file test_perm10.dat
  LISTing to file test_perm24.dat
  LISTing to file test_perm48.dat
@@ -799,12 +790,9 @@ plot/xlimits=5:5 i
  LISTing to file test_stream.unf
  LISTing to file test_stream.unf
 *** Running ferret script: bn_user.jnl
- Cached data cleared from memory
            *** NOTE: Only one window can be open in batch mode
 *** Running ferret script: bn_stream.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_mc.jnl
- Cached data cleared from memory
  **TMAP ERR: Attempt to access unsupported feature
              Descriptor requests delta of 0, please use 1
              Data set: ./coads_clim_bad_delta.des
@@ -816,72 +804,73 @@ set data coads_clim_step_order.des
              coads_clim.001b
 list sst
 *** Running ferret script: bn_negative_t.jnl
- Cached data cleared from memory
  **ERROR: regridding: only @ASN regridding between calendar and
           non-calendar axes: A
 LIST a[gt=tcal]
 *** Running ferret script: bn_xact_regrid.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_gc_functions.jnl
- Cached data cleared from memory
            *** NOTE: /XLIMITS and /YLIMITS are deprecated.
            *** NOTE: Use /HLIMITS and /VLIMITS instead.
 *** Running ferret script: bn491_bug_fixes.jnl
- Cached data cleared from memory
            *** NOTE: Cannot cancel window when in batch mode
  LISTing to file test.cdf
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_odd_variable_name.jnl
- Cached data cleared from memory
- Cached data cleared from memory
  **ERROR: command syntax: v2-and-minus
           - before and is illegal
 list v2-and-minus
- **ERROR: dimensions improperly specified: 99999999 words were requested.
+ **ERROR: illegal limits: Limits must be provided for pseudo-variable.
 list x
-           *** NOTE: Check for unspecified limits on an ABSTRACT axis
-           *** NOTE: Use the SHOW GRID command to see the axes
- **ERROR: dimensions improperly specified: 99999999 words were requested.
+ **ERROR: illegal limits: Limits must be provided for pseudo-variable.
 list i
-           *** NOTE: Check for unspecified limits on an ABSTRACT axis
-           *** NOTE: Use the SHOW GRID command to see the axes
  **ERROR: command syntax: v2-and-minus[i=5:15 at ddc]
           - before and is illegal
 list v2-and-minus[i=5:15 at ddc]
- Cached data cleared from memory
 *** Running ferret script: bn_test_stream.jnl
- Cached data cleared from memory
  LISTing to file permutedBinaryTest.dat
  LISTing to file junk.dat
- **ERROR: request exceeds memory setting: 48000 Mwords were requested.
+ **ERROR: request exceeds memory setting
 load num
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 25.6 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 0 (0%)
+    The size of the requested object was: : 24000000000 (93750%)
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
 Replacing definition of axis TAX
- **ERROR: request exceeds memory setting: 2000 Mwords were requested.
+ **ERROR: request exceeds memory setting
 load num
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 25.6 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 0 (0%)
+    The size of the requested object was: : 1000000000 (3906%)
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
@@ -897,7 +886,6 @@ SET DATA/EZ/var=num/order=vxyzt/grid=mygrid junk.dat
  **ERROR: invalid command: invalid argument for /TYPE
 SET DATA/EZ/var=num/type=i3/grid=mygrid/form=stream junk.dat
 *** Running ferret script: bn_define_axes.jnl
- Cached data cleared from memory
 Replacing definition of axis XAX
 Replacing definition of axis XAX
 Replacing definition of axis XAX
@@ -938,13 +926,8 @@ Replacing definition of axis XAX
 Replacing definition of axis XAX
            *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
-           *** NOTE: Axis has repeated values -- micro-adjusting ...
- **ERROR: improper grid or axis definition: unrepairable repeated axis coords
-define axis/from/x/name=xax {6,6}
-           *** NOTE: Axis has repeated values -- micro-adjusting ...
- **ERROR: improper grid or axis definition: unrepairable repeated axis coords
-define axis/from/x/name=xax/edges {6,6}
-           *** NOTE: Axis has repeated values -- micro-adjusting ...
+Replacing definition of axis XAX
+Replacing definition of axis XAX
  **ERROR: improper grid or axis definition: unrepairable repeated axis coords
 define axis/from/x/name=xax/edges {6,6,6}
            *** NOTE: Axis has repeated values -- micro-adjusting ...
@@ -955,50 +938,58 @@ Replacing definition of axis XAX2
            *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
 Replacing definition of axis XAX2
 *** Running ferret script: bn_pattern.jnl
- Cached data cleared from memory
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
            *** NOTE: Only one window can be open in batch mode
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
            *** NOTE: Cannot cancel window when in batch mode
 *** Running ferret script: bn_polygon.jnl
- Cached data cleared from memory
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
 *** Running ferret script: bn500_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file out.cdf
  LISTing to file out.cdf
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: command syntax: noname(i)
           unknown function "noname"
 stat i, noname(i)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_sample.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1036,7 +1027,6 @@ stat i, noname(i)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 *** Running ferret script: bn_strides_revs_perms.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1056,23 +1046,19 @@ LIST/i=2:4:2 VAR
            *** NOTE: Not using NetCDF strides for multi-cycle modulo
            *** NOTE: Stride value not a factor of axis length
 *** Running ferret script: bn_non_COARDS_netCDF.jnl
- Cached data cleared from memory
            *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
            *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
            *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
 *** Running ferret script: bn_cache_hits.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_regrid_to_user.jnl
- Cached data cleared from memory
 Replacing definition of grid GG2
  **ERROR: unknown defining grid: G=NO_EXIST
 load/x=160e/y=5s temp[d=2,k=1,g=no_exist]
  **ERROR: unknown defining grid: GX=A[D=1]
 load/x=160e/y=5s v2
 *** Running ferret script: bn_calendar.jnl
- Cached data cleared from memory
 Replacing definition of axis TDAYS
 Replacing definition of axis TDAYS
 Replacing definition of axis TDAYS
@@ -1087,7 +1073,6 @@ Replacing definition of axis TDAYS
 Replacing definition of grid TGRID
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
 *** Running ferret script: bn_dash_dot.jnl
- Cached data cleared from memory
  **ERROR: command syntax: dash=(1., 2.)
           DASH[=(dn1,up1,dn2,up2)] takes 4 arguments or no argument
 plot/dash=(1., 2.)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
@@ -1095,18 +1080,18 @@ plot/dash=(1., 2.)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
           DASH arguments must be positive
 plot/dash=(-1., 2., 3., 4.)/i=1:1000 sin(62.8*(i+20) )
 *** Running ferret script: bn_flowlines.jnl
- Cached data cleared from memory
  Using every   2th vector in the Y direction
  Using every   2th vector in the Y direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
  Using every   2th vector in the X direction
  Using every   2th vector in the Y direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_logaxes.jnl
- Cached data cleared from memory
 Replacing definition of axis DLOG
 Replacing definition of axis DLOG
  **ERROR: value out of legal range: Limits for log axis negative or too small: -9.00 : 0.00
@@ -1124,48 +1109,63 @@ Bailing out of external function "eof_stat":
 
 Bailing out of external function "eof_tfunc":
 	 Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis DAYT
  **ERROR: error in external function
 LIST vw_fft
 Replacing definition of grid TGRID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  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
  PERMANENT data cleared from memory
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis XAXS
+Replacing definition of axis YAXS
+Replacing definition of axis ZAXS
+Replacing definition of axis TAXS
+Replacing definition of grid MYGRD
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: illegal limits: VWND does not contain L=102:150
           Data are available in L =    1:60
 list tsorted_indices, tsorted_wnd
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: error in external function
 list/l=1:2 eofxyfcn
  **ERROR: error in external function
@@ -1174,10 +1174,13 @@ list/i=1:3/j=1:3 eofstat
 list/i=1:2 eoftime
  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
  **ERROR: command syntax: strindex("Ferret is fun for the whole family - real family fun")
           The strindex function has an incorrect number of arguments
 list strindex("Ferret is fun for the whole family - real family fun")
@@ -1195,16 +1198,20 @@ list substring("Have you fed your ferret today")
 list strcat ("All work and no play")
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_modulo_strides.jnl
- Cached data cleared from memory
  LISTing to file test_modulo.cdf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1213,7 +1220,6 @@ list strcat ("All work and no play")
            *** NOTE: Not using NetCDF strides for multi-cycle modulo
            *** NOTE: Stride value not a factor of axis length
 *** Running ferret script: bn_axis_viewports.jnl
- Cached data cleared from memory
 Re-defining viewport MID
 Re-defining viewport MID2
 Re-defining viewport LLAX
@@ -1221,7 +1227,6 @@ Re-defining viewport LRAX
 Re-defining viewport ULAX
 Re-defining viewport URAX
 *** Running ferret script: bn_strings.jnl
- Cached data cleared from memory
  **ERROR: command syntax: "string2"}
 list e
  **ERROR: command syntax: 5, "string2"}
@@ -1264,76 +1269,86 @@ list/nohead SIN({"a","b","c"})
  **ERROR: invalid command: cannot use strings in numerical expression
 list/nohead MAX("a",{"a","b","c"})
 *** Running ferret script: bn_axcontrol.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_vec_curv.jnl
- Cached data cleared from memory
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
 *** Running ferret script: bn_delimited_read.jnl
- Cached data cleared from memory
 Replacing definition of axis TAX
 Replacing definition of grid G1
  **TMAP ERR: syntax error in string
-             Unrecognized field type: D
+             Unrecognized field type: DA2
              Data set: ./bn_delimited_read_date_time.dat
-           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME,DATIME,EDATIME
 SET DATA/FORM=delimited/type="d, da2,date2"  bn_delimited_read_date_time.dat
  **TMAP ERR: syntax error in string
              Unrecognized field type: DATE2
              Data set: ./bn_delimited_read_date_time.dat
-           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME,DATIME,EDATIME
 SET DATA/FORM=delimited/type="da,da, date2"  bn_delimited_read_date_time.dat
  **ERROR: command syntax: ,,:
 SET DATA/EZ/form=delim/delim="/,,,:" bn_delimited_read_date_time.dat
 *** Running ferret script: bn541_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file test_good_order.cdf
  LISTing to file test_bad_order.cdf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis T2
  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
  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
  LISTing to file profiles.nc
  LISTing to file profiles.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file test_100x100.nc
- Cached data cleared from memory
- Cached 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
 Replacing definition of axis XAX
 Replacing definition of axis YAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_cancel_axes.jnl
- Cached data cleared from memory
  LISTing to file longax.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis has repeated values -- micro-adjusting ...
            *** NOTE: Axis has repeated values -- micro-adjusting ...
            *** NOTE: Axis has repeated values -- micro-adjusting ...
@@ -1346,24 +1361,29 @@ Replacing definition of axis YAX
            *** NOTE: Axis has repeated values -- micro-adjusting ...
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: regarding ./test_axes.nc ...
            *** NOTE: Climatological axes test_irreg, test_seas defined
 *** Running ferret script: bn542_bug_fixes.jnl
- Cached 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
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file string4d.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: regarding ./test_axes.nc ...
            *** NOTE: Climatological axes test_irreg, test_seas defined
            *** NOTE: Not deleted: TEST_IRREG
@@ -1372,8 +1392,8 @@ Replacing definition of axis YAX
            *** NOTE: Axis is in use by grid (G001)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_subspan_modulo.jnl
- Cached data cleared from memory
  LISTing to file test_mod.cdf
  LISTing to file test_mod.cdf
  LISTing to file test_mod.cdf
@@ -1398,52 +1418,54 @@ define axis/x=130e:500:10/modulo=360 xsub
            *** NOTE: Not using NetCDF strides for multi-cycle modulo
            *** NOTE: Stride value not a factor of axis length
 *** Running ferret script: bn_dots.jnl
- Cached data cleared from memory
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
            *** NOTE: /THICKNESS ignored  on /SYMBOL=DOT
            *** NOTE: /SIZE= ignored  on /SYMBOL=DOT
 *** Running ferret script: bn_lev_symbols.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_mode_logo_lab.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_modulo_attribute.jnl
- Cached data cleared from memory
            *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
            *** NOTE: modulo = "j"
            *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
            *** NOTE: modulo = "j"
 *** Running ferret script: bn550_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn551_bug_fixes.jnl
- Cached 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
 Re-defining viewport MID1
  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
  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
 *** Running ferret script: bn_multi_line_labels.jnl
- Cached data cleared from memory
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
 *** Running ferret script: bn552_bug_fixes.jnl
- Cached 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
  **ERROR: value out of legal range: # of contour levels > 500  (3283)
 CONTOUR/L=1/LEV=0.01d sst
  **ERROR: value out of legal range: # of contour levels > 500  (3283)
@@ -1454,17 +1476,21 @@ SHADE/L=1/LEV=0.01d sst
 POLYGON/KEY/LEV=0.01d/coord_ax=Z  PLMxpoly+PLMxpolymark, PLMypoly+PLMypolymark, PLMpolydata
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
            *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
            *** NOTE: A dummy axis of subscripts will be used
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 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
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
             dsetnum,dsetpath,dsettitle,*size,*start,*end,
             *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
@@ -1473,53 +1499,61 @@ ls: cannot access input.txt: No such file or directory
 MESSAGE/CONTINUE `axy, return=xx`
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
  LISTing to file a.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis YAX
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file clim.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+ooooooooooooooooooooooooooooooooooooooooooo
+           *** NOTE: Coordinates missing on axis LONGITUDE at subscript -1423
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: Coordinates missing on axis LATITUDE at subscript -1423
+           *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Axis has repeated values -- micro-adjusting TIME
  **ERROR: illegal limits: "DUMMY" does not exist at T=01-JAN-1990 00:00
           Axis extremes are T=31-DEC-1997 12:00:30-JAN-1998 12:00
 list/t=1-jan-1990 dummy
 *** Running ferret script: bn_set_var_scale_off.jnl
- Cached data cleared from memory
  **ERROR: invalid command: Can SET VARIABLE/OFFSET= only with NetCDF datasets
 SET VAR/OFFSET=1 x1
  **ERROR: invalid command: Can SET VARIABLE/SCALEFAC= only with NetCDF datasets
 SET VAR/SCALE=10 x2
 *** Running ferret script: bn_longvarnames.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file longvname.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file longvname.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_shakey.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_eof_4d.jnl
- Cached data cleared from memory
  LISTing to file eofsp.cdf
  LISTing to file eofti.cdf
  LISTing to file eofst.cdf
 *** Running ferret script: bn_abstract_axis_names.jnl
- Cached data cleared from memory
  LISTing to file confuse_xz.nc
  LISTing to file confuse_yz.nc
  LISTing to file confuse_yt.nc
@@ -1529,16 +1563,14 @@ SET VAR/SCALE=10 x2
  LISTing to file confuse_yt.nc
  LISTing to file confuse_yzt.nc
 *** Running ferret script: bn_many_polygons.jnl
- Cached data cleared from memory
 Replacing definition of axis YQ
 *** Running ferret script: bn_fill_irregular.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_xml_output.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 SHO VAR/XML
 SHO VAR/XML
 SHO VAR/XML
@@ -1549,17 +1581,17 @@ SHOW VAR/XML
 SHOW VAR/XML
  LISTing to file a.nc
 *** Running ferret script: bn_test_nan.jnl
- Cached data cleared from memory
 *** Running ferret script: bn553_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_graticules.jnl
- Cached data cleared from memory
  Using every   5th vector in the X direction
  Using every   3th vector in the Y direction
  Using every   2th vector in the X direction
@@ -1570,7 +1602,6 @@ Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
 *** Running ferret script: bn_repeat_range.jnl
- Cached data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: invalid command: REPEAT/NAME requires /RANGE
 rep/name=a say `a`
@@ -1601,24 +1632,30 @@ repeat/range=3:1:-1/name=a list a
  **ERROR: command syntax: nested REPEAT loops with the same counter name a
 repeat/range=3:1:-1/name=a list a
 *** Running ferret script: bn554_bug_fixes.jnl
- Cached 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
  **ERROR: illegal limits: "TEMP" does not exist at T=01-AUG-1980 00:00:01-JAN-1982 00:00
           Axis extremes are T=14-AUG-1982 11:00:13-JAN-1983 13:00
 list/t=1-aug-1980:1-jan-1982/i=92/j=35 temp
  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
  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 TAX1
 Replacing definition of axis TAX2
 Replacing definition of axis TAX1
@@ -1627,6 +1664,7 @@ Replacing definition of axis TAX1
 Replacing definition of axis TAX2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1642,28 +1680,35 @@ Replacing definition of grid AGRID
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis X_AX
  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
  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
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 *** Running ferret script: bn_bounds.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -1690,7 +1735,6 @@ def axis/t/bounds tax={1.2,2,3.2,5,7,8.4,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.
 def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,24, 24,48, 24,48, 48,72, 48,72, 72,96, 72,96, 96,120}
  LISTing to file a.nc
  LISTing to file a.nc
-           *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
  LISTing to file a.nc
            *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
  LISTing to file a.nc
@@ -1712,85 +1756,102 @@ def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,
            *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
            *** NOTE: Substituting coordinate midpoints
 *** Running ferret script: bn_all_leap.jnl
- Cached data cleared from memory
  **ERROR: command syntax: Invalid calendar name. Names are, GREGORIAN, NOLEAP, JULIAN, 360_DAY, ALL_LEAP
 def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
 *** Running ferret script: bn570_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file xlong.nc
  LISTing to file xlongshift.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_modstats.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_mc_vary_scale.jnl
- Cached data cleared from memory
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
 *** Running ferret script: bn_plot_nokey.jnl
- Cached data cleared from memory
 *** Running ferret script: bn580_bug_fixes.jnl
- Cached 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
 Re-defining viewport VP_1
  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
 Replacing definition of axis XAX
 Replacing definition of axis YAX
  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
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 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
  LISTing to file fine.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: illegal limits: One-point independent axis: Requires a /HLIMIT or /VLIMIT specification
 plot/sym/siz=0.3 0*t[gt=vwnd]
  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
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
  LISTing to file aa.nc
  LISTing to file cc.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: First argument is a letter of the alphabet
 query/ignore $1%q|a|b|c|d|<First argument is a letter of the alphabet%
  **ERROR: invalid command: Valid value needed for argument $2
@@ -1823,29 +1884,32 @@ message/continue ($t2"|solong>really hello|bye|")
            *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
  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: delta non-positive on X axis of EX#1
 list/l=1/j=40/i=0:300:0 sst
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file 10a.nc
  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
 *** Running ferret script: bn_inf_levels.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_regulart.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_labwid.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_redefine_taxis_mc.jnl
- Cached data cleared from memory
 Replacing definition of axis TIME1
            *** NOTE: grid GHB1 used by data set coads_clim
            *** NOTE: Redefinition may alter apparent contents of data set
@@ -1853,7 +1917,6 @@ Replacing definition of axis TIME1
            *** NOTE: grid GHB1 used by data set coads_clim
            *** NOTE: Redefinition may alter apparent contents of data set
 *** Running ferret script: bn_illegal_axisname.jnl
- Cached data cleared from memory
 Replacing definition of axis COADSX.ILLEGAL
            *** NOTE: grid GEX1 used by data set illeg_axname
            *** NOTE: Redefinition may alter apparent contents of data set
@@ -1865,37 +1928,41 @@ Replacing definition of axis COADSY.ILLEGAL
            *** NOTE: grid GEX3 used by data set illeg_axname
            *** NOTE: Redefinition may alter apparent contents of data set
 *** Running ferret script: bn_exit_script.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_exit_cycle.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_curv_mod.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_shade_keycont.jnl
- Cached data cleared from memory
 *** Running ferret script: bn581_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  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
  LISTing to file longtitle.nc
  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
  LISTing to file longtitle.nc
  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
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  **ERROR: improper grid or axis definition: error in start,end,delta
 DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
@@ -1904,35 +1971,40 @@ DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
 DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file t0_cdc.nc
  LISTing to file my_cdc_timeaxis.nc
  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
 *** Running ferret script: bn_tab_comma_multivar.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_element_functions.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_long_revision_num.jnl
- Cached data cleared from memory
  LISTing to file revision.nc
 *** Running ferret script: bn_window_title.jnl
- Cached data cleared from memory
            *** NOTE: Cannot create new windows when batch mode set
            *** NOTE: Cannot create new windows when batch mode set
            *** NOTE: Cannot cancel window when in batch mode
@@ -1941,7 +2013,6 @@ DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
 
 Bailing out of external function "ffta":
 	 Time axis must be a regular axis
- Cached data cleared from memory
  **ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
 LIST/ORDER=X  IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
@@ -1961,18 +2032,14 @@ repeat/range=1:3/name=L (use coads_climatology; list/nohead [sst=I=1,j=1])
  **ERROR: error in external function
 LOAD vw_fft
 *** Running ferret script: bn_deg_min.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_dp_readscale.jnl
- Cached data cleared from memory
  TEMPORARY data cleared from memory
 *** Running ferret script: bn_bounds_defineax.jnl
- Cached data cleared from memory
 Replacing definition of axis TAX
  LISTing to file irrxzt.nc
 Replacing definition of axis ZAX
 Replacing definition of axis ZAX2
 *** Running ferret script: bn_attributes.jnl
- Cached data cleared from memory
  **ERROR: invalid command: SHOW ATTRIBUTE given with no argument
 sho att/all
  **ERROR: unknown data set: d=2
@@ -1984,28 +2051,37 @@ sho att salt.nonsense
 sho att/all .
  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
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute temp.pp
            *** NOTE: Changing the length  of attribute temp.pp
            *** NOTE: Changing the value of attribute temp.some_text
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute temp.long_name
            *** NOTE: Changing the value of attribute temp.units
            *** NOTE: Changing the value of attribute temp.missing_value
@@ -2024,8 +2100,10 @@ list coadsx.units
 set att (COADSX81_81).axis = "Z"
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute temp.pp
            *** NOTE: Changing the length  of attribute temp.pp
            *** NOTE: Changing the value of attribute temp.some_text
@@ -2039,33 +2117,40 @@ set att (COADSX81_81).axis = "Z"
            *** NOTE: Changing the value of attribute temp.pp
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  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
  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
            *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file a.nc
@@ -2078,6 +2163,7 @@ set att (COADSX81_81).axis = "Z"
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
            *** NOTE: Changing the value of attribute (COADSX).point_spacing
            *** NOTE: Changing the value of attribute (COADSY).point_spacing
@@ -2095,6 +2181,7 @@ set var/outtype=char broiled
 set var/outtype=garbage broiled
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute (PSXT).units
  LISTing to file a.nc
  LISTing to file a.nc
@@ -2103,17 +2190,21 @@ set var/outtype=garbage broiled
  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
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis X2AX
            *** NOTE: Changing the value of attribute (z4ax).positive
  LISTing to file string4d.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute (TIME).units
            *** NOTE: Changing the value of attribute (TIME).units
            *** NOTE: Changing the value of attribute (TIME).time_origin
@@ -2127,11 +2218,8 @@ Replacing definition of axis TIME
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_transforms.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_variance.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_linecolors.jnl
- Cached data cleared from memory
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
            *** NOTE: Cannot cancel window when in batch mode
            *** NOTE: Cannot create new windows when batch mode set
@@ -2147,14 +2235,13 @@ 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: 
- Cached data cleared from memory
  **TMAP ERR: non-existent or not on line
              this_is_not_a_file.nc
 SET DAT/FORM=CDF this_is_not_a_file.nc
  **Internet Data error
              NetCDF: file not found (OPeNDAP/netCDF Error code -90)
-             Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf
-SET DAT/FORM=CDF "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
+             Data set: http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf
+SET DAT/FORM=CDF "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
  **Internet Data error
              NetCDF: I/O failure (OPeNDAP/netCDF Error code -68)
              Data set: http://noserver/a/nofile.cdf
@@ -2165,122 +2252,154 @@ SET DAT/FORM=CDF  "http://noserver/a/nofile.cdf"
              Data set: ./asc.nc
 SET DAT/FORM=CDF asc.nc
 *** Running ferret script: bn600_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file err581_subspanx_fill_bug.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file xyir.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: illegal use of transformation:  not all dimensions present on grid
 shade sst[x=@var,k=@var]
  **ERROR: illegal use of transformation:  not all dimensions present on grid
 shade sst[t=@AVE,Z=@ave]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
  LISTing to file t3file.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file 0000_a.nc
  LISTing to file subdir/a.nc
  LISTing to file subdir/0000_a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  LISTing to file a.nc
            *** NOTE: cannot parse "units since date", date= "event"; leaving units string
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** 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]"
 plot/i=100/k=1 temp[x=122.5W]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 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
- Cached data cleared from memory
- Cached data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn601_bug_fixes.jnl
- Cached data cleared from memory
  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 b.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file b.nc
  LISTing to file b.nc
  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
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TIME4
            *** NOTE: grid GSQ1 used by data set coads_climatology
            *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TIME
  LISTing to file a.nc
  LISTing to file t2.nc
  LISTing to file t12.nc
  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
  LISTing to file out.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_set_strides.jnl
- Cached data cleared from memory
  **ERROR: invalid command: it is a child axis already
 set axis/stride=2/offset=1 (AX005)
  **ERROR: invalid command: not a strided axis: COADSX
@@ -2295,32 +2414,35 @@ cancel axis/stride COADSX
  **ERROR: invalid command: unknown axis: NORMAL
 set axis/stride=2 NORMAL
 *** Running ferret script: bn_lsl_lowpass.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_return_xmod_tmod.jnl
- Cached data cleared from memory
 *** Running ferret script: bn602_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file noleap.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
            *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file tripolar_missing_lon.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_modnbd.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_fifty_files.jnl
- Cached data cleared from memory
-           *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+           *** NOTE: Coordinates missing on axis LONGITUDE at subscript -169
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: Coordinates missing on axis LATITUDE at subscript -169
+           *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Axis has repeated values -- micro-adjusting TIME
            *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
            *** NOTE: Substituting coordinate midpoints
@@ -2346,128 +2468,142 @@ set axis/stride=2 NORMAL
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
 *** Running ferret script: bn603_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_set_var_name.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_memory_symbol.jnl
- Cached data cleared from memory
- Cached data cleared from memory
- Cached data cleared from memory
- Cached data cleared from memory
- Cached data cleared from memory
 *** Running ferret script: bn605_bug_fixes.jnl
- Cached 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
 *** Running ferret script: bn608_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file b.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: invalid command: "300": Number of contour levels must be between 1 and 250
 SHADE/LEV=300/I=1:100/J=1:100 i+j
 *** Running ferret script: bn_shade_trim.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_mode_nlevels.jnl
- Cached data cleared from memory
 *** Running ferret script: bn61_bug_fixes.jnl
- Cached data cleared from memory
  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
 *** Running ferret script: bn_test_opendap.jnl
 CURL Error: Couldn't resolve host name
 curl error details: 
- Cached data cleared from memory
 *** Running ferret script: bn611_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file b.nc
  LISTing to file b.nc
  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
  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
  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
  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
  LISTing to file z1.nc
  LISTing to file z2.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TIME
  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
  LISTing to file b.nc
  LISTing to file b.nc
 *** Running ferret script: bn_no_valid_on_plot.jnl
- Cached data cleared from memory
  Using every   5th vector in the X direction
 *** Running ferret script: bn_median.jnl
- Cached data cleared from memory
  **ERROR: value out of legal range: Median smoother length must be odd
 plot/trans var, var[z=@med:4]
 *** Running ferret script: bn614_bug_fixes.jnl
- Cached 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
 Replacing definition of axis TIME
  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
  LISTing to file b.nc
  LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Units on axis "ENS" are not recognized: count
            *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file 1a.dat
  LISTing to file 3a.dat
  LISTing to file 5a.dat
@@ -2476,49 +2612,59 @@ Replacing definition of axis TIME
  LISTing to file 11a.dat
  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
  **ERROR: variable unknown or not in data set: A_REGRID[D=1,GT=B[D=2]@MOD]
 LIST a_regrid[D=1,GT=b[D=2]@MOD]
  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
  LISTing to file dat.dat
  LISTing to file a.nc
  LISTing to file unf.dat
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file lonlat.dat
  LISTing to file lonlat.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file b.nc
 *** Running ferret script: bn_mode_nodata_lab.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_proleptic_gregorian_calendar.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_string_ngd_nbd.jnl
- Cached data cleared from memory
            *** NOTE: @NGD of string variable, counting null strings as missing
            *** NOTE: @NBD of string variable, counting null strings as missing
            *** NOTE: @NGD of string variable, counting null strings as missing
@@ -2541,21 +2687,15 @@ Replacing definition of axis TAX
            *** NOTE: @NBD of string variable, counting null strings as missing
            *** NOTE: @NGD of string variable, counting null strings as missing
 *** Running ferret script: bn_cat_string.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_sort_strings.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_samplexyt.jnl
- Cached data cleared from memory
            *** NOTE: /XLIMITS and /YLIMITS are deprecated.
            *** NOTE: Use /HLIMITS and /VLIMITS instead.
 *** Running ferret script: bn_last_go_file.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_cancel_upcase_uservar.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_cdf_keepax.jnl
- Cached data cleared from memory
  LISTing to file test0a.cdf
  LISTing to file test0b.cdf
  LISTing to file test0c.cdf
@@ -2751,40 +2891,37 @@ list/format=cdf/keep_axnames/append/file=test_fil.cdf ijklave
 show grid ijkl
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
 *** Running ferret script: bn_keep_axisnames.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_key_label_minmax.jnl
- Cached data cleared from memory
 *** Running ferret script: bn62_bug_fixes.jnl
- Cached 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
 *** Running ferret script: bn_convolve.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_tax_tstep.jnl
- Cached data cleared from memory
  LISTing to file a.nc
 Replacing definition of axis TSEC
 *** Running ferret script: bn_grads_z.jnl
- Cached data cleared from memory
 Replacing definition of axis CAXIS
            *** NOTE: grid GMY1 used by data set grads_bug_file
            *** NOTE: Redefinition may alter apparent contents of data set
 *** Running ferret script: bn_clock_syms.jnl
- Cached data cleared from memory
 *** Running ferret script: bn63_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  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
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
            *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
@@ -2796,31 +2933,41 @@ Replacing definition of axis CAXIS
            *** NOTE: Cannot create new windows when batch mode set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file xz.nc
  TEMPORARY data cleared from memory
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file t_bug.nc
 Replacing definition of axis T_AXIS
  LISTing to file t_bug.nc
@@ -2829,46 +2976,49 @@ NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
 LIST/FORMAT=CDF/FILE=t_bug.nc/APPEND var
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: offset must be greater than or equal to zero
 SET AXIS/STRIDE=12/OFFSET=-1 truemonth
  **ERROR: invalid command: stride must be greater than zero
 SET AXIS/STRIDE=-1/OFFSET=1 truemonth
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_axis_reversed_syms.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_isdepth.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_var_hist_levels.jnl
- Cached data cleared from memory
 *** Running ferret script: bn64_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_long_grid_names.jnl
- Cached 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
 Replacing definition of grid GG123456789012345678902
  **ERROR: unknown defining grid: G=NO_EXIST12345678901234567890
 load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_xml_repl.jnl
- Cached data cleared from memory
  LISTing to file a.nc
 *** Running ferret script: bn65_bug_fixes.jnl
- Cached 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
            *** NOTE: Units on axis "ENS" are not recognized: count
            *** NOTE: They will not be convertible:
  LISTing to file mypack.nc
@@ -2880,24 +3030,27 @@ load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
            *** NOTE: They will not be convertible:
  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
  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
 Replacing definition of axis TAX
 *** Running ferret script: bn_txtype_dmy.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_n_open_dsets_sym.jnl
- Cached data cleared from memory
  LISTing to file list_of_numbers.dat
 *** Running ferret script: bn_multi_decade.jnl
- Cached data cleared from memory
 Re-defining viewport V1
 Re-defining viewport V2
 Re-defining viewport V3
@@ -2907,15 +3060,13 @@ Re-defining viewport V6
 Re-defining viewport V7
 Re-defining viewport V8
 *** Running ferret script: bn_show_xml_file.jnl
- Cached data cleared from memory
  LISTing to file b.nc
  LISTing to file dummy.dat
 *** Running ferret script: bn66_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_netcdf4.jnl
- Cached data cleared from memory
  Restoring default chunk cache settings
  Restoring default chunk cache settings
  PERMANENT data cleared from memory
@@ -2949,29 +3100,27 @@ LIST/FORMAT=CDF/file=nc4_deflate4_t1.nc/clobber/ncformat=4/deflate/shuffle/tchun
              TChunkSize 0 is larger than dimension length 3
 LIST/FORMAT=CDF/file=nc4_deflate4chunktoobig.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
 *** Running ferret script: bn_scat2grid_bin.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 *** Running ferret script: bn_axis_dir_symbols.jnl
- Cached data cleared from memory
 *** Running ferret script: bn663_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_set_axis_regular.jnl
- Cached data cleared from memory
            *** NOTE: Axis reset to be regular (evenly-spaced): MYX
            *** NOTE: Axis is already regular: MYX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
 *** Running ferret script: bn_set_cancel_redirect.jnl
- Cached data cleared from memory
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
  
@@ -3026,52 +3175,58 @@ show grid garbage
  
  Use "GO/HELP filename" to read documentation in  the file to be executed.
 *** Running ferret script: bn_min_max_smoothers.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_vector_symbols.jnl
- Cached data cleared from memory
  Using every   8th vector in the X direction
  Using every   7th vector in the Y direction
 *** Running ferret script: bn_variance_large.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_labnum_calendar.jnl
- Cached data cleared from memory
 *** Running ferret script: bn665_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_floatstr.jnl
- Cached data cleared from memory
 *** Running ferret script: bn67_bug_fixes.jnl
- Cached 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
 Replacing definition of axis YAX
 Replacing definition of axis YAX
  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
  LISTing to file aa.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
-set mode desperate   9999999999.000000
+set mode desperate 9999999999.
  **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
 set mode desperate 1234567890123456789
+           *** NOTE: MODE DESPERATE is deprecated. Use MODE FRUGAL
+           *** NOTE: MODE DESPERATE is deprecated. Use MODE FRUGAL
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file g.nc
 Replacing definition of axis YAX_DUP_AXNAMES
  LISTing to file h.nc
@@ -3080,36 +3235,50 @@ Replacing definition of axis YAX_DUP_AXNAMES
  LISTing to file justg.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_NaN_note.jnl
- Cached data cleared from memory
-           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: unrepairable repeated axis coords on axis j at subscript -126
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: unrepairable repeated axis coords on axis l at subscript -126
+           *** NOTE: A dummy axis of subscripts will be used
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
-           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: unrepairable repeated axis coords on axis j at subscript -126
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: j
+           *** NOTE: unrepairable repeated axis coords on axis l at subscript -126
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: l
 *** Running ferret script: bn671_bug_fixes.jnl
 
 Bailing out of external function "tax_year":
 	 Function not valid for modulo time axis
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: error in external function
 list/L=15:20 tax_year(t[gt=tvar],tvar)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file cc.nc
  LISTing to file c1.nc
  TEMPORARY data cleared from memory
@@ -3117,39 +3286,50 @@ list/L=15:20 tax_year(t[gt=tvar],tvar)
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn68_bug_fixes.jnl
- Cached 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
 Replacing definition of axis TAXIS
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
            *** NOTE: ./err672_vert_axislabel.jnl
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
  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
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: command syntax: illegal name, matches an operator: AND
 DEFINE VARIABLE AND = 5
  **ERROR: command syntax: illegal name, matches an operator: OR
@@ -3172,10 +3352,10 @@ DEFINE VARIABLE IF  = 5
 DEFINE VARIABLE ELSE = 5
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a1.nc
  LISTing to file a2.nc
 *** Running ferret script: bn_ifv.jnl
- Cached data cleared from memory
  **ERROR: command syntax: IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
 LIST/ORDER=X  IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333
@@ -3184,7 +3364,6 @@ LIST/ORDER=X  IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333
           negative constants need to be enclosed in parentheses
 DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
 *** Running ferret script: bn_randu2_randn2.jnl
- Cached data cleared from memory
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
@@ -3192,7 +3371,6 @@ DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
 *** Running ferret script: bn_axis_cf.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -3202,13 +3380,11 @@ DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_repeated_coords.jnl
- Cached data cleared from memory
            *** NOTE: Axis has repeated values -- micro-adjusting TMIN
            *** NOTE: Coordinates out of order or missing on axis TMIN at subscript 4
            *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Axis has repeated values -- micro-adjusting ...
 *** Running ferret script: bn_xml_header.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_eof_simple.jnl
 
 Bailing out of external function "eofsvd_stat":
@@ -3219,7 +3395,6 @@ Bailing out of external function "eofsvd_space":
 
 Bailing out of external function "eofsvd_tfunc":
 	There are no spatial locations having complete time series.
- Cached data cleared from memory
 Replacing definition of axis XAXIS
  **ERROR: error in external function
 list eofsvd_stat(spacegap)
@@ -3228,11 +3403,8 @@ list eofsvd_space(spacegap)
  **ERROR: error in external function
 list eofsvd_tfunc(spacegap)
 *** Running ferret script: bn_eof_simple2.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_interpolate_6d.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_regrid_6d.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis XFINE
@@ -3241,9 +3413,7 @@ Replacing definition of axis YFINE
 Replacing definition of axis YCOARSE
 Replacing definition of grid G24
 *** Running ferret script: bn_syntax_6d.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_expressions_6d.jnl
- Cached data cleared from memory
  **ERROR: command syntax: IF _m GT 3 THEN ( IF _m LT 5 THEN _m ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
 LIST/order=e  IF _m GT 3 THEN ( IF _m LT 5 THEN _m ELSE -9 ) ELSE .333
@@ -3254,14 +3424,12 @@ DEFINE VARIABLE A = IF _m LT 5 THEN _m ELSE -9
  **ERROR: variable unknown or not in data set: A1
 load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
 *** Running ferret script: bn_direction_fcns_6d.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_regrid_transforms_6d.jnl
- Cached data cleared from memory
 Replacing definition of axis FAX4DAY
 *** Running ferret script: bn_aggregate_e.jnl
- Cached data cleared from memory
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
  **ERROR: unknown data set: dset 3
 DEFINE DATA/AGGREGAT/E windy = 1,2,3
            *** NOTE: Variable "UWND" excluded from aggregate: T axis differs among members
@@ -3278,39 +3446,49 @@ DEFINE DATA/AGGREGAT/E windy = 1,2
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: Dataset used in aggregation.  Canceling aggregation, fourfiles
            *** NOTE: Dataset used in aggregation.  Canceling aggregation, some
            *** NOTE: Dataset used in aggregation.  Canceling aggregation, more
 *** Running ferret script: bn_6d_lab_mode.jnl
- Cached data cleared from memory
+           *** NOTE: MODE 6D_lab is deprecated. Leave the mode set; output automatically adjusts to 4D or 6D grids
+           *** NOTE: MODE 6D_lab is deprecated. Leave the mode set; output automatically adjusts to 4D or 6D grids
+           *** NOTE: MODE 6D_lab is deprecated. Leave the mode set; output automatically adjusts to 4D or 6D grids
+           *** NOTE: MODE 6D_lab is deprecated. Leave the mode set; output automatically adjusts to 4D or 6D grids
 *** Running ferret script: bn682_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn683_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  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
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_outtype.jnl
- Cached data cleared from memory
  LISTing to file mytype.nc
  LISTing to file mytype.nc
            *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
@@ -3326,14 +3504,15 @@ DEFINE DATA/AGGREGAT/E windy = 1,2
  LISTing to file mytype.nc
  LISTing to file mytype.nc
 *** Running ferret script: bn_ribbon_plot.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_descr_4digit.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_axis_outtype.jnl
- Cached data cleared from memory
  LISTing to file mytype.nc
+           *** NOTE: unrepairable repeated axis coords on axis TIME at subscript -126
+           *** NOTE: A dummy axis of subscripts will be used
  LISTing to file mytype.nc
            *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+           *** NOTE: unrepairable repeated axis coords on axis TIME at subscript -126
+           *** NOTE: A dummy axis of subscripts will be used
  LISTing to file mytype.nc
  LISTing to file mytype.nc
  LISTing to file mytype.nc
@@ -3348,38 +3527,45 @@ NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
 LIST/FORMAT=CDF/clobber/file=mytype.nc my_data
  LISTing to file mytype.nc
 *** Running ferret script: bn_axis_nonmonotonic.jnl
- Cached data cleared from memory
  **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonically increasing at index 12
 define axis/t/units=days tax = tvar
 *** Running ferret script: bn_vec_mod.jnl
- Cached data cleared from memory
  Using every   9th vector in the X direction
  Using every   9th vector in the X direction
  Using every   9th vector in the X direction
 *** Running ferret script: bn685_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file aa.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file aa.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file aa.nc
  LISTing to file aa.nc
@@ -3392,20 +3578,25 @@ NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
  data in attribute _FillValue not representable in output type NC_INT
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  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
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: command syntax: .HELLO
 list .hello
  **ERROR: variable unknown or not in data set: A.UNITS
@@ -3420,6 +3611,7 @@ list ..history
 list ..history
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis AXI
 Replacing definition of axis AXI_COARSE
 Replacing definition of axis AXI
@@ -3432,22 +3624,21 @@ Replacing definition of axis AXI
 Replacing definition of axis AXI_COARSE
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
-           *** NOTE: A dummy axis of subscripts will be used
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file sst_new.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_dsg_e_x.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_nco_append.jnl
- Cached data cleared from memory
  LISTing to file append_to_this.nc
 *** Running ferret script: bn_nobounds.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
            *** NOTE: Axis definition error on axis: TGAP
@@ -3456,12 +3647,9 @@ Replacing definition of axis AXI_COARSE
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_write_integer_att.jnl
- Cached data cleared from memory
  LISTing to file a.nc
 *** Running ferret script: bn_descriptor_mc.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_plot_color_only.jnl
- Cached data cleared from memory
            *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
            *** NOTE: Cannot cancel window when in batch mode
            *** NOTE: Cannot create new windows when batch mode set
@@ -3475,7 +3663,6 @@ plot/i=1:100/over/COLOR 0.6*sin(i/7)
           /COLOR not valid for PLOT/LEVELS ribbon plot
 plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
 *** Running ferret script: bn_vtree.jnl
- Cached data cleared from memory
            *** NOTE: Variable "FVX" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
@@ -3492,21 +3679,26 @@ list e
 list f
 Replacing definition of axis ZAX
 *** Running ferret script: bn686_bug_fixes.jnl
- Cached 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
  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
            *** NOTE: Changing the type of attribute a.ival
            *** NOTE: Changing the value of attribute a.ival
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **TMAP ERR: non-existent or not on line
              nosuchfile.nc
 SET DAT/FORM=CDF nosuchfile.nc
@@ -3522,29 +3714,31 @@ SET DAT/FORM=CDF snoopy
 SET DAT/FORM=CDF snoopy.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: regarding ./climatological_axes.cdf ...
            *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_long_symnames.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_strdim.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_single_colorlev.jnl
- Cached data cleared from memory
 *** Running ferret script: bn69_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
 Replacing definition of axis XAXIS_TEST
  LISTing to file b.nc
@@ -3559,20 +3753,21 @@ Replacing definition of axis XAXIS_TEST
 LIST/FORMAT=CDF/clobber/keep/file=nc b,a[d=1]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **ERROR: dimensions improperly specified: must be a 2D region
-          shade b
-shade b
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute v1.long_name
            *** NOTE: Changing the value of attribute v1.units
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: attribute undefined or invalid attribute name: temp.noexist[d=levitus_climatology]
           attribute noexist not found for variable TEMP
 show att temp.noexist[d=levitus_climatology]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: illegal new name.  Variable b already defined
 set var/name=b a
  **ERROR: invalid command: illegal new name.  Variable b already defined
@@ -3584,16 +3779,12 @@ set var/name=psi myvar
  **ERROR: invalid command: illegal new name.  Variable diff already defined
 set var/name=diff w
 *** Running ferret script: bn_bad_axis_bounds.jnl
- Cached data cleared from memory
            *** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
            *** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
            *** NOTE: Substituting coordinate midpoints
 *** Running ferret script: bn_enter_exit_GO.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_stddev.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_set_axis_name.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file b.nc
@@ -3607,72 +3798,19 @@ 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_STRING, expecting WORD_WORD
-context: Error { code = 500; message = "Error processing XML header file /usr/local/src/nvods/tomcat/content/las/conf/server/temp/6790FDCBF64A0E6EFAA6A20D854071E0/header.xml (No such file or directory)"^;};
- Cached data cleared from memory
-           *** 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 = t0112mn1[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]
- **netCDF error
-             Unable to open URL with REMOTE variable definitions:
-             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.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_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.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_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.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_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
-list/x=300/y=15 avar
+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/ [...]
 *** Running ferret script: bn691_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: string/numeric data type mix-up. Argument 3 : TAX_DATESTRING
 list tax_datestring (tt[L=3], tt, 5)
  **ERROR: invalid command: string/numeric data type mix-up. Argument 2 : TAX_DATESTRING
 list tax_datestring (tt[L=3], "my_tax", "minutes")
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
            *** NOTE: Substituting coordinate midpoints
            *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
@@ -3681,6 +3819,7 @@ list tax_datestring (tt[L=3], "my_tax", "minutes")
            *** NOTE: Substituting coordinate midpoints
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: command syntax: must be a constant COS(1)
 list {cos(1), sin(0)}
  **ERROR: command syntax: must be a constant 0-180
@@ -3691,42 +3830,51 @@ list {0.1, 0.2, 1./5.}
 list {5*3+1, 2+3}
  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
  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
  LISTing to file tval.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file out.xml
  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
- **ERROR: request exceeds memory setting: 4739 Mwords were requested.
+ **ERROR: request exceeds memory setting
 load bigvar
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis LONGTIME
- **ERROR: request exceeds memory setting: 9472 Mwords were requested.
+ **ERROR: request exceeds memory setting
 load bigvar
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
            *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
  LISTing to file aa.nc
@@ -3736,6 +3884,7 @@ load bigvar
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: variable unknown or not in data set: A
 list a
  **ERROR: variable unknown or not in data set: A
@@ -3746,6 +3895,7 @@ list b
 shade a
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: variable unknown or not in data set: A
 list a
  **ERROR: variable unknown or not in data set: A
@@ -3756,38 +3906,39 @@ list b
 shade a
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
 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
- Cached data cleared from memory
 rm: cannot remove `test_save_dsg.nc': No such file or directory
 *** Running ferret script: bn_global_atts.jnl
- Cached data cleared from memory
  LISTing to file anew_global.nc
 *** Running ferret script: bn_conventions_history.jnl
- Cached data cleared from memory
  LISTing to file conventions_history.nc
 *** Running ferret script: bn_center_key_labels.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_wgt_transform.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_show_outfile.jnl
- Cached data cleared from memory
            *** NOTE: Variable "FVX" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
@@ -3803,75 +3954,105 @@ list e
           Are you giving explicit limits when SET REGION would suffice ?
 list f
 *** Running ferret script: bn_date1900_array.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_spawn_size.jnl
- Cached data cleared from memory
+ LISTing to file bn_spawn_size1.cdf
+ LISTing to file bn_spawn_size2.cdf
+ LISTing to file bn_spawn_size3.cdf
+ LISTing to file bn_spawn_size4.cdf
+ LISTing to file bn_spawn_size5.cdf
+ LISTing to file bn_spawn_size02.dat
+ LISTing to file bn_spawn_size04.dat
+ LISTing to file bn_spawn_size06.dat
+ LISTing to file bn_spawn_size08.dat
+ LISTing to file bn_spawn_size10.dat
+ LISTing to file bn_spawn_size12.dat
+ LISTing to file bn_spawn_size14.dat
 *** Running ferret script: bn_polygon_log.jnl
- Cached data cleared from memory
  **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.850
 poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
  **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.689E-02
 poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
 *** Running ferret script: bn694_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file aa.nc
  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
  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
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: unknown data set: BAD_D
 stat/l=1/x=180/y=0 a
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: REPEAT what ?
 repeat/range=1:2/name=row
  **ERROR: invalid command: REPEAT what ?
 repeat/range=1:2/name=row
  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
 Replacing definition of axis TREDEF
            *** NOTE: grid GSI1 used by data set a
            *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: illegal format type - must be "GIF"
           frame/format=hdf/file=a.hdf
 frame/format=hdf/file=a.hdf
@@ -3880,74 +4061,77 @@ frame/format=hdf/file=a.hdf
 frame/file=a.png
  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
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  TEMPORARY data cleared from memory
  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
 *** Running ferret script: bn_permute_ascii.jnl
- Cached data cleared from memory
 Replacing definition of grid GRID3D
 *** Running ferret script: bn_lon_lat_time_string.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_save_justdim.jnl
- Cached data cleared from memory
  LISTing to file a.nc
            *** NOTE: Saving E or F axis with time axis uses /RIGID in time
  LISTing to file a.nc
 *** Running ferret script: bn_time2d.jnl
- Cached data cleared from memory
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 *** Running ferret script: bn_legend_labels.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_DQ.jnl
- Cached data cleared from memory
            *** NOTE: Changing the value of attribute foobar.some_text
            *** NOTE: Changing the value of attribute foobar.some_text
 *** Running ferret script: bn695_bug_fixes.jnl
- Cached 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
 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
 *** Running ferret script: bn_f_tax_fcns.jnl
- Cached data cleared from memory
  LISTing to file a.nc
 Replacing definition of axis FSEC
            *** NOTE: grid GSI1 used by data set a
            *** NOTE: Redefinition may alter apparent contents of data set
 *** Running ferret script: bn_fmrc.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_return_defined.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_can_var_noerr.jnl
- Cached data cleared from memory
  **ERROR: variable unknown or not in data set: B
 cancel var b,a
 *** Running ferret script: bn_annotate.jnl
- Cached data cleared from memory
  **ERROR: command syntax: xpos=a2
 annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
  **ERROR: command syntax: ypos=b
@@ -3981,7 +4165,6 @@ 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
- Cached data cleared from memory
 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
@@ -3991,7 +4174,6 @@ SET VAR/layerz=depth noexist
 LIST/PREC=7 tempz6d_unmatch
 Replacing definition of axis ZAX
 *** Running ferret script: bn_plot_ribbon_gaploc.jnl
- Cached data cleared from memory
  **ERROR: command syntax: PLOT/VS/RIBBON/GAPLOC plot needs 4 arguments
 plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
  **ERROR: command syntax: PLOT/GAPLOC applies only to PLOT/VS/RIBBON
@@ -3999,17 +4181,16 @@ plot/vs/thick/line/sym=21/siz=0.3/gap xpts, 10*ypts, 10.1*ypts, 9.93*ypts, gvar
  **ERROR: command syntax: PLOT/GAPLOC applies only to PLOT/VS/RIBBON
 plot/ov/nolab/vs/thick/line/sym=21/siz=.3/gapl xpts, color, gvar
 *** Running ferret script: bn_time_short_axes.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_floatstr_extended.jnl
- Cached data cleared from memory
 *** Running ferret script: bn696_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Units on axis "pfull1_1" are not recognized: hpa
            *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: unknown data set: noexist
 SHOW DATA noexist
  **ERROR: unknown data set: 2
@@ -4018,8 +4199,8 @@ SHOW DATA 2
 SHOW DATA/ATT noexist
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_bin_regrid.jnl
- Cached data cleared from memory
 Replacing definition of axis DCOARSE
 Replacing definition of axis IRR
 Replacing definition of axis DCOARSE
@@ -4031,70 +4212,85 @@ Replacing definition of axis IRR
 Replacing definition of axis DCOARSE
 Replacing definition of axis IRR
 *** Running ferret script: bn697_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **TMAP ERR: error in axis attributes
              Calendar definitions on T and F axes must match
              Data file: ./ft_cal_one.nc
 SET DAT/FORM=CDF ft_cal_mixed.nc
  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
  LISTing to file myfile.nc
  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
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- Cached data cleared from memory
- **ERROR: request exceeds memory setting: 13 Mwords were requested.
+ooooooooooooooooooooooooooooooooooooooooooo
+ **ERROR: request exceeds memory setting
 load/l=1:5 bigvar
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
- Cached data cleared from memory
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  Using every   4th vector in the Y direction
  Using every   4th vector in the Y direction
  Using every   4th vector in the Y direction
  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
  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
 Replacing definition of axis F_AX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis T_AXIS
 Replacing definition of axis F_AXIS
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 Replacing definition of axis XAX
 Replacing definition of axis XAX
@@ -4103,35 +4299,43 @@ Replacing definition of axis XAX
 Replacing definition of axis XAX
  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
 Replacing definition of axis XAX
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAXIS
  LISTing to file a.nc
  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
  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
  LISTing to file a.nc
            *** NOTE: Changing the type of attribute sst.newch
            *** NOTE: Changing the value of attribute sst.newch
  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
 *** Running ferret script: bn_aggregate_t.jnl
- Cached data cleared from memory
  LISTing to file tmp/tagg_reg_1.nc
  LISTing to file tmp/tagg_reg_2.nc
  LISTing to file tmp/tagg_reg_3.nc
@@ -4205,6 +4409,8 @@ Replacing definition of axis TDAY_TVAR
  LISTing to file tmp/tagg_single_6.nc
            *** NOTE: Not deleted: tday
            *** NOTE: Axis is in use by grid (G001)
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
  **ERROR: invalid command: given aggregation dataset name already in use: myagg2
 define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc, tmp/tagg_reg_2.nc
  **TMAP ERR: non-existent or not on line
@@ -4217,9 +4423,16 @@ define data/agg/t myaggbad = tmp/tagg_reg_1.nc, tmp/tagg_no_exist.nc
 DEFINE DATA/AGGREGAT/T myTindepagg = tmp/tagg_reg_no_T.nc
  **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_reg_3.nc
 define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2_overlarge.nc,tmp/tagg_reg_3.nc
+ **TMAP ERR: non-existent or not on line
+             Searched $FER_DESCR and $FER_DATA for 1(.nc ,.cdf,.des). For a Timeseries aggregation, specify the NetCDF file/path names or OPeNDAP dataset names.
+define data/agg/t myagg2num = 1,2
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
  **TMAP ERR: Unknown variable code
              in file tmp/tagg_disjoint_T0varying_4_wrong.nc time axis variable is missing: TDAY_TVAR
 define data/agg/t myagg5_bad = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_4_wrong.nc,tmp/tagg_disjoint_T0varying_5.nc
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
  **ERROR: unknown command: garbage
 garbage command syntax
  **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_single_1.nc
@@ -4227,7 +4440,6 @@ define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_1.nc
  **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_single_5.nc
 define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc, tmp/tagg_single_5.nc
 *** Running ferret script: bn_unquoted_args.jnl
- Cached data cleared from memory
  LISTing to file tmp/test1.nc
  LISTing to file tmp/test2.nc
  LISTing to file tmp/test3.nc
@@ -4247,7 +4459,6 @@ go/garbage /home/flat/ksmith/ferret_dev/bench/tmp/testMe.jnl
  **ERROR: unknown command qualifier: garbage
 go/garbage "/home/flat/ksmith/ferret_dev/bench/tmp/testMe.jnl"
 *** Running ferret script: bn_long_lists.jnl
- Cached data cleared from memory
  **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 [...]
  **ERROR: variable unknown or not in data set: A
@@ -4257,9 +4468,7 @@ load a
  **ERROR: command syntax: "/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0020.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0021.t_surf...
 "/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0020.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0021.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0022.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0023.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr [...]
 *** Running ferret script: bn_show_uvar_grid.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_aggregate_f.jnl
- Cached data cleared from memory
  LISTing to file tmp/fcst_1.nc
  LISTing to file tmp/fcst_2.nc
  LISTing to file tmp/fcst_3.nc
@@ -4278,13 +4487,19 @@ load a
  LISTing to file tmp/consecutive_month_fcst.nc
 Replacing definition of axis TRUEMONTH
  LISTing to file tmp/irregular_start_time_fcst.nc
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
            *** NOTE: Dataset used in aggregation.  Canceling aggregation, bn_aggregate_f.jnl
            *** NOTE: Dataset used in aggregation.  Canceling aggregation, my_fmrc
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: Ambiguous coordinates on T axis: FCST_2[D=MY_FMRC_LETD_6] - FCST_2[D=MY_FMRC_LETD_1]
  **ERROR: error defining aggregate dataset: some files have duplicate forecast start times
 DEFINE DATA/AGGREGAT/F my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc,tmp/fcst_2.nc,tmp/fcst_3.nc
@@ -4296,7 +4511,7 @@ DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/consecutive_month_fcst.nc")
  **ERROR: error defining aggregate dataset: forecast start times are irregular or too gappy
 DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/irregular_start_time_fcst.nc")
 *** Running ferret script: bn_aggregate_tef.jnl
- Cached data cleared from memory
+ls: cannot access tmp/f04_e3_t3_1v.nc: No such file or directory
  LISTing to file tmp/f01_e1_t1.nc
  LISTing to file tmp/f01_e1_t2.nc
  LISTing to file tmp/f01_e1_t3.nc
@@ -4489,26 +4704,21 @@ DEFINE DATA/AGGREGAT/E bad_ens = te_f01, te_f03, te_f04
  **ERROR: error defining aggregate dataset: some files have duplicate forecast start times
 DEFINE DATA/AGGREGAT/F bad_fmrc = tf_e1, tf_e3, tf_e4
 *** Running ferret script: bn_dataset_qualifier.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_speedtest.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_show_noupcase.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 SHO VAR/XML
 SHO VAR/XML
 *** Running ferret script: bn_letd_attributes.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_list_clim_axes.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_climatology_attr.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
 Replacing definition of axis TAX
@@ -4516,29 +4726,616 @@ Replacing definition of axis TAX
  LISTing to file a.nc
 Replacing definition of axis TAX
  LISTing to file a.nc
+ LISTing to file a.nc
 *** Running ferret script: bn_plot_along.jnl
- Cached data cleared from memory
            *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
            *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
            *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
            *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
 *** Running ferret script: bn_show_commands.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_plot_decimate.jnl
- Cached data cleared from memory
            *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
            *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
            *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
            *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
 *** Running ferret script: bn_auto_tprec.jnl
- Cached data cleared from memory
 Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
 *** Running ferret script: bn_coordvars_atts.jnl
- Cached data cleared from memory
+*** Running ferret script: bn710_bug_fixes.jnl
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+           *** NOTE: unrepairable repeated axis coords on axis xax at subscript 1
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: unrepairable repeated axis coords on axis yax at subscript 1
+           *** NOTE: A dummy axis of subscripts will be used
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+           *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./unclosed_if.sub
+ 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
+ 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
+ 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
+Replacing definition of axis TAX
+ 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
+Replacing definition of axis XAXIS
+Replacing definition of axis YAXIS
+Replacing definition of axis TAXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis TAX
+ 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
+ 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
+Replacing definition of axis YAXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis TAX
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ **TMAP ERR: attribute already defined
+             coordinates for variable ZETA
+             Data set: testdata
+ **TMAP ERR: attribute already defined
+             coordinates for variable U
+             Data set: testdata
+ **TMAP ERR: attribute already defined
+             coordinates for variable V
+             Data set: testdata
+ **TMAP ERR: attribute already defined
+             coordinates for variable TEMP
+             Data set: testdata
+ **TMAP ERR: attribute already defined
+             coordinates for variable SALT
+             Data set: testdata
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis XAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis XLON
+ LISTing to file a1.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
+ LISTing to file a.nc
+           *** NOTE: Requested region on modulo axis XLONN7_141 is larger than modulo length. Modulo attribute not written.
+ 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
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ LISTing to file a1.nc
+ LISTing to file a2.nc
+*** Running ferret script: bn_delim_datetime.jnl
+Replacing definition of axis TIMAX
+Replacing definition of axis TIMAX
+Replacing definition of axis TIMAX
+Replacing definition of axis TIMAX
+Replacing definition of axis TIMAX
+ **ERROR: Error reading file: Check Date or Time fields.
+list index,edtim,udtim,udate,edate
+ **ERROR: Error reading file: Check Date or Time fields.
+list index,edtim,udtim,udate,edate
+ **ERROR: Error reading file: Check Date or Time fields.
+list index,edtim,udtim,udate,edate
+ **ERROR: Error reading file: Check Date or Time fields.
+list index,edtim,udtim,udate,edate
+*** Running ferret script: bn_aggregate_u.jnl
+ LISTing to file tmp/uagg_1.nc
+ LISTing to file tmp/uagg_2.nc
+ LISTing to file tmp/uagg_3.nc
+ LISTing to file tmp/uagg_4.nc
+ LISTing to file tmp/uagg_1_t1.nc
+ LISTing to file tmp/uagg_1_t2.nc
+ LISTing to file tmp/uagg_1_t3.nc
+ LISTing to file tmp/uagg_5.nc
+           *** NOTE: Skipping variable SST from set 2, already in the Union dataset.
+ LISTing to file tmp/f01_e1_tu1.nc
+ LISTing to file tmp/f01_e1_tu2.nc
+ LISTing to file tmp/f01_e1_tu3.nc
+ LISTing to file tmp/f01_e2_tu1.nc
+ LISTing to file tmp/f01_e2_tu2.nc
+ LISTing to file tmp/f01_e2_tu3.nc
+ LISTing to file tmp/f02_e1_tu1.nc
+ LISTing to file tmp/f02_e1_tu2.nc
+ LISTing to file tmp/f02_e1_tu3.nc
+ LISTing to file tmp/f02_e2_tu1.nc
+ LISTing to file tmp/f02_e2_tu2.nc
+ LISTing to file tmp/f02_e2_tu3.nc
+ LISTing to file tmp/f03_e1_tu1.nc
+ LISTing to file tmp/f03_e1_tu2.nc
+ LISTing to file tmp/f03_e1_tu3.nc
+ LISTing to file tmp/f03_e2_tu1.nc
+ LISTing to file tmp/f03_e2_tu2.nc
+ LISTing to file tmp/f03_e2_tu3.nc
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: Skipping variable REALIZATION from set 1, already in the Union dataset.
+           *** NOTE: Skipping variable REALIZATION from set 8, already in the Union dataset.
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+*** Running ferret script: bn_ez_noupcase.jnl
+ LISTing to file abc.dat
+ LISTing to file a.nc
+ 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
+*** Running ferret script: bn_ave_of_ave.jnl
+*** Running ferret script: bn_agg_member_syntax.jnl
+ **ERROR: unknown data set: D=5.3
+stat/br fcst[d=5.3]
+ **ERROR: unknown data set: D=12.30
+stat/br fcst[d=12.30]
+ **ERROR: unknown data set: D=12.300000
+stat/br fcst[d=12.300000]
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+ **ERROR: unknown data set: D=4.1
+stat/br sst[d=4.1]
+ **ERROR: unknown data set: D=5.30
+stat/br sst[d=5.30]
+*** Running ferret script: bn_true_monthly.jnl
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis, T0 not specified. Using start of first year of axis
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis, T0 not specified. Using start of first year of axis
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+ LISTing to file a.nc
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+ LISTing to file a.nc
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+ LISTing to file a.nc
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis, T0 not specified. Using 01-jan-0000
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+ LISTing to file a.nc
+           *** NOTE: True monthly axis
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis, T0 not specified. Using start of first year of axis
+Replacing definition of axis TAXIS
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY specify /UNITS=month or omit /UNITS (MONTH is default)
+define axis/t=1-jan-2010:31-jul-2011:30/t0=1-jan-2000/monthly/units=days taxis
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis: /NPOINTS not allowed. Use /T=lo:hi:del
+define axis/t=1-jan-2010:31-dec-2012:1/t0=1-jan-2000/monthly/npoints=13 taxis
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis delta-t must be 1
+define axis/t=1-jan-2010:31-dec-2012/t0=1-jan-2000/monthly taxis
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis delta-t must be 1
+define axis/t=1-jan-2010:31-dec-2012:2/t0=1-jan-2000/monthly taxis
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis: Definition /FROMDATA not allowed. Use /T=LO:HI:DEL
+define axis/t/t0=1-jan-2000/monthly taxis = {123,124,126}
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis: Definition /FROMDATA not allowed. Use /T=LO:HI:DEL
+define axis/from/t/t0=1-jan-2001/monthly/edges taxis = {5,6,6,6,7}
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis: /BOUNDS not allowed. Use /T=lo:hi:del
+def axis/t/t0=1-jan-2000/monthly/bounds tax={1.2, 2, 3.2, 5, 7, 8.4, 9}, {0.5,1.5, 1.5,2.5, 2.5,3.5, 3.5,6.5, 6.5,7.5, 7.5,8.5, 8.5,9.5}
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis: needs /T=lo:hi:del
+define axis/x=1:5:1/monthly aaxis
+*** Running ferret script: bn720_bug_fixes.jnl
+ 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
+ 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
+ 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
+ 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
+*** Running ferret script: bn_compressed_gather.jnl
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+Replacing definition of axis YAX
+Replacing definition of axis TAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+Replacing definition of axis TAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+Replacing definition of axis ZAX
+Replacing definition of axis TAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+*** Running ferret script: bn_dynamic_gather.jnl
+ls: cannot access tmp/test_dyn_mem.nc: No such file or directory
+ LISTing to file tmp/test_dyn_mem.nc
+ 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
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ 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 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
+           *** NOTE: No active redirects to cancel
+ **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
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ 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 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
+ **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
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ 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 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
+ **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
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ 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 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
+ **ERROR: value out of legal range: illegal mode argument. Must be 0 to 90 percent
+SET MODE FRUGAL:95
+*** Running ferret script: bn_stat_precision.jnl
+*** 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
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+*** Running ferret script: bn_cache_management.jnl
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ls: cannot access tmp/test_auto_cache_20.nc: No such file or directory
+ 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
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+*** Running ferret script: bn_transp_choose.jnl
+ TEMPORARY data cleared from memory
 *** Running ferret script: bn_gif.jnl
- Cached data cleared from memory
  **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
@@ -4581,8 +5378,10 @@ Re-defining viewport UM6
  Using every   2th vector in the Y direction
  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 UL6
 Re-defining viewport UM6
 Re-defining viewport UR6
@@ -4592,14 +5391,16 @@ Replacing definition of axis TDAYS
  Using every   4th vector in the X direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX
  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 XAX
 *** Running ferret script: bn_ps.jnl
- Cached data cleared from memory
  **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
@@ -4634,24 +5435,16 @@ Re-defining viewport UM6
           frame/file=bnplot.ps
 frame/file=bnplot.ps
 *** Running ferret script: bn_all_ef.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: command syntax: unknown region name: @w
 set region/@w
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **ERROR: command syntax: writev5d(tr, 0, 0, 0, 0, 0, 0, 0, "vis5d_out.v5d")
-          unknown function "writev5d"
-DEFINE VARIABLE/QUIET vflag = writev5d(tr, 0, 0, 0, 0, 0, 0, 0, "vis5d_out.v5d")
- **ERROR: variable unknown or not in data set: VFLAG
-LOAD/TEMPORARY vflag
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_startupfile.jnl
- Cached data cleared from memory
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
            *** NOTE: in GIF mode: ignoring SET MODE METAFILE
-Ended at Fri Jun 17 15:04:48 PDT 2016
+*** 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 0c92cef..ab3ee90 100644
--- a/bench/test_results/ferret_run_tests_log
+++ b/bench/test_results/ferret_run_tests_log
@@ -1,5 +1,5 @@
 Using FERRET /home/flat/ksmith/Ferret/bin/ferret
-lrwxrwxrwx. 1 ksmith oerdnewp 11 Jun 17 15:03 /home/flat/ksmith/Ferret/bin/ferret -> ferret_v7.0
+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
@@ -279,11 +279,28 @@ Benchmark scripts that will be run:
    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
-Beginning at Fri Jun 17 15:03:50 PDT 2016
+   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
@@ -308,43 +325,43 @@ SHOW DATA/BRIEF
 SHOW DATA
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
  
 SHOW DATA/VARIABLES
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.8S:51.4N  
  
@@ -353,43 +370,43 @@ SHOW DATA/VARIABLES
 SHOW DATA/FILES
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
  
 SHOW DATA/FULL
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.8S:51.4N  
  
@@ -427,8 +444,8 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./snoopy.dat  (default)
  
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:2       ...       ...       ...
                on grid (G008) with -1.E+34 for missing data
              X=-0.5:1.5  
  
@@ -439,8 +456,8 @@ FILE/TITLE="quick and dirty" snoopy.dat
 SHOW DATA
      currently SET data sets:
     1> ./snoopy.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:2       ...       ...       ...
  
 SET MODE IGNORE_ERROR
 SET DATA/EZ/VAR="P,Q" 1
@@ -581,11 +598,11 @@ region W
 ! SET - SHOW - CANCEL  MODE
 SHOW MODES
       MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
+      DIAGNOSTIC    CANCELED            99
       VERIFY           SET         DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
+      INTERPOLATE   CANCELED
+      IGNORE_ERROR  CANCELED
+      STUPID        CANCELED
       JOURNAL          SET         ferret.jnl
       LONG_LABEL       SET               1
       LATIT_LABEL      SET               1
@@ -595,32 +612,33 @@ SHOW MODES
       F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
+      WAIT          CANCELED
+      DESPERATE     CANCELED       2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      .gif
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
-      LOGO          CANCELLED
+      METAFILE      CANCELED       .gif
+      PPLLIST       CANCELED       ppllist.out
+      GUI           CANCELED
+      LOGO          CANCELED
       LABELS           SET
-      GRATICULE     CANCELLED
+      GRATICULE     CANCELED
       LINECOLORS       SET               6
       UPCASE_OUTPU     SET
       NLEVELS          SET              30
       NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      LAYERZ        CANCELLED
+      SHRINK_YLAB   CANCELED
+      CURVILINEAR   CANCELED
+      LAYERZ        CANCELED
       6D_LAB           SET
+      FRUGAL           SET              30
 SET MODE IGNORE_ERROR
 SHOW MODES
       MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
+      DIAGNOSTIC    CANCELED            99
       VERIFY           SET         DEFAULT
-      INTERPOLATE   CANCELLED
+      INTERPOLATE   CANCELED
       IGNORE_ERROR     SET
-      STUPID        CANCELLED
+      STUPID        CANCELED
       JOURNAL          SET         ferret.jnl
       LONG_LABEL       SET               1
       LATIT_LABEL      SET               1
@@ -630,32 +648,33 @@ SHOW MODES
       F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
+      WAIT          CANCELED
+      DESPERATE     CANCELED       2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      .gif
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
-      LOGO          CANCELLED
+      METAFILE      CANCELED       .gif
+      PPLLIST       CANCELED       ppllist.out
+      GUI           CANCELED
+      LOGO          CANCELED
       LABELS           SET
-      GRATICULE     CANCELLED
+      GRATICULE     CANCELED
       LINECOLORS       SET               6
       UPCASE_OUTPU     SET
       NLEVELS          SET              30
       NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      LAYERZ        CANCELLED
+      SHRINK_YLAB   CANCELED
+      CURVILINEAR   CANCELED
+      LAYERZ        CANCELED
       6D_LAB           SET
+      FRUGAL           SET              30
 CANCEL MODE IGNORE_ERROR
 SHOW MODES
       MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
+      DIAGNOSTIC    CANCELED            99
       VERIFY           SET         DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
+      INTERPOLATE   CANCELED
+      IGNORE_ERROR  CANCELED
+      STUPID        CANCELED
       JOURNAL          SET         ferret.jnl
       LONG_LABEL       SET               1
       LATIT_LABEL      SET               1
@@ -665,27 +684,28 @@ SHOW MODES
       F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
+      WAIT          CANCELED
+      DESPERATE     CANCELED       2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      .gif
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
-      LOGO          CANCELLED
+      METAFILE      CANCELED       .gif
+      PPLLIST       CANCELED       ppllist.out
+      GUI           CANCELED
+      LOGO          CANCELED
       LABELS           SET
-      GRATICULE     CANCELLED
+      GRATICULE     CANCELED
       LINECOLORS       SET               6
       UPCASE_OUTPU     SET
       NLEVELS          SET              30
       NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      LAYERZ        CANCELLED
+      SHRINK_YLAB   CANCELED
+      CURVILINEAR   CANCELED
+      LAYERZ        CANCELED
       6D_LAB           SET
+      FRUGAL           SET              30
 SHOW MODE STUPID
       MODE            STATE        ARGUMENT
-      STUPID        CANCELLED
+      STUPID        CANCELED
 SET MODE STUPID
 SHOW MODE STUPID
       MODE            STATE        ARGUMENT
@@ -693,7 +713,7 @@ SHOW MODE STUPID
 SET MODE/LAST STUPID
 SHOW MODE STUPID
       MODE            STATE        ARGUMENT
-      STUPID        CANCELLED
+      STUPID        CANCELED
  
 ! new modes 5/93
 set mode journal newjournal.jnl
@@ -721,52 +741,52 @@ ppl list plot
 cancel mode journal
 show mode journal
       MODE            STATE        ARGUMENT
-      JOURNAL       CANCELLED      ferret.jnl
+      JOURNAL       CANCELED       ferret.jnl
  
 ! new 1/94  (syntax check also applies to modes journal and ppllist)
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      .gif
+      METAFILE      CANCELED       .gif
 set mode metafile newmetafile1.plt
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      .gif
+      METAFILE      CANCELED       .gif
 set mode metafile:newmetafile2.plt
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      .gif
+      METAFILE      CANCELED       .gif
 set mode metafile: newmetafile3.plt
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      .gif
+      METAFILE      CANCELED       .gif
 set mode metafile: "newmetafile4.plt"
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      .gif
+      METAFILE      CANCELED       .gif
 set mode metafile: "./newmetafile5.plt"
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      .gif
+      METAFILE      CANCELED       .gif
 set mode metafile: ./newmetafile6.plt
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      .gif
+      METAFILE      CANCELED       .gif
 set mode metafile newmetafile7.plt
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      .gif
+      METAFILE      CANCELED       .gif
 set mode metafile "newmetafile8.plt"
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      .gif
+      METAFILE      CANCELED       .gif
 set mode metafile "./newmetafile9.plt"
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      .gif
+      METAFILE      CANCELED       .gif
 set mode metafile ./newmetafile10.plt
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      .gif
+      METAFILE      CANCELED       .gif
 set mode metafile metafile.plt
  
 ! SET - SHOW - CANCEL EXPRESSION
@@ -810,8 +830,6 @@ SHOW GRID
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 LIST/I=101:105/J=50/K=1/L=5 SALT
              VARIABLE : (SALINITY(ppt) - 35) /1000 (frac. by wt. less .035)
              FILENAME : gt4d011.cdf
@@ -835,8 +853,6 @@ SHOW GRID
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
- normal    E
- normal    F
 SET GRID/SAVE
 SET GRID ABSTRACT
 SHOW GRID
@@ -848,8 +864,6 @@ SHOW GRID
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
- normal    E
- normal    F
 SHOW GRID/X=180:165W SALT
     GRID PS3DT2
  name       axis              # pts   start                end                 subset
@@ -857,8 +871,6 @@ SHOW GRID/X=180:165W SALT
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
       50>  179.5E                1          179E
@@ -894,56 +906,62 @@ SHOW VARIABLES
  
 ! SHOW MEMORY , LOAD
 SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 5 words
 SHOW MEMORY/TEMPORARY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 5 words
 data loaded without /PERMANENT:
- SALT[D=gt4d011]                   X     mr:3  blk1:1  nblk:1
-  101  /130W          50  /1.3N           1  /0              5  /07-SEP-1982  ...  / ...         ...  / ...
-  105  /125W          50  /1.7N           1  /10             5  /13-SEP-1982  ...  / ...         ...  / ...
+ SALT[D=gt4d011]                   X     mr:3 size:5
+       101/130W               50/1.3N                1/0                   5/07-SEP-1982
+       105/125W               50/1.7N                1/10                  5/13-SEP-1982
  
 SHOW MEMORY/PERMANENT
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 5 words
 data loaded with /PERMANENT:
 SHOW MEMORY/ALL
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 5 words
 all data in memory:
- SALT[D=gt4d011]                   X     mr:3  blk1:1  nblk:1
-  101  /130W          50  /1.3N           1  /0              5  /07-SEP-1982  ...  / ...         ...  / ...
-  105  /125W          50  /1.7N           1  /10             5  /13-SEP-1982  ...  / ...         ...  / ...
+ SALT[D=gt4d011]                   X     mr:3 size:5
+       101/130W               50/1.3N                1/0                   5/07-SEP-1982
+       105/125W               50/1.7N                1/10                  5/13-SEP-1982
  
  
 LET A=i
 LOAD/PERM/I=1:5 A
 SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 15 words
+    Permanent: 5 words
 SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 12800
- 
-            number of free memory blocks: 1997
-            largest free region: 1997
-            number of free regions: 1
-            free memory table slots: 497
-            number of UN-CACHED variables: 0
-            number of /PERMANENT variables: 1
-            number of blocks used /PERM: 1
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 15 words
+    Permanent: 5 words
+    Total table slots: 500
+    Free table slots: 497
+    Un-cached variables: 0
+    number of /PERMANENT variables: 1
+    memory used for /PERM: 5
 LOAD/TEMPORARY/I=1:5 A
 SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 10 words
 SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 12800
- 
-            number of free memory blocks: 1998
-            largest free region: 1997
-            number of free regions: 2
-            free memory table slots: 498
-            number of UN-CACHED variables: 0
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 10 words
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
  
 ! REPEAT
 REPEAT/L=1:3 LIST/I=1:6/ORDER=X 1/(I+L)
@@ -1540,17 +1558,17 @@ use coads_climatology
 set mode diagnostic
 let sst2 = sst[l=5:8]
 say `sst, return=size`    ! should only do a GETGRID
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  !-> MESSAGE/CONTINUE 48600
 48600
 say `sst2,return=lend`    ! should inherit L=5:8
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 SST2     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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
+ getgrid SST2     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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  !-> MESSAGE/CONTINUE 8
 8
 set mode/last diagnostic
@@ -1666,42 +1684,42 @@ say `sst[L=1:3 at ave]+sst,return=lsize`
 let a = XSEQUENCE(J[j=1:5])
 set mode diagnostic
 say `a,return=isize`          ! full evaluation occurs
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C01,V08 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C11,V08 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ 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
+ getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C01,V08 C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C11,V08 C: 11 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 (C11,V08 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- -DELETE X        M:  4 dset:   0 I:  160  160  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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: -999 -999  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V08 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C11,V08 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M:  4 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pass #2 (C11,V08 C: 11 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ -DELETE X        M:  4 dset:   0 I:    160    160  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V08 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C11,V08 C: 10 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  J        M:  4 dset:   0 I:   -999   -999  J:    1    5  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 5
 5
 say `a[i=2:3],return=isize`   ! full evaluation is bypassed
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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
- -DELETE J        M:  4 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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: -999 -999  M: -999 -999  N: -999 -999
- found   A        M: 10 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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
+ -DELETE J        M:  4 dset:   0 I:   -999   -999  J:    1    5  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ found   A        M: 10 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 2
 2
 say `a[i=100:200],return=isize`    ! correct starting with Ferret v694 (tkt 2213)
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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: -999 -999  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I:  100  200  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V08 C:  8 dset:   0 I:  100  200  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- found   (C11,V08 M:  8 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -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
+ 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:   -999   -999
+ eval    A        C:  6 dset:   0 I:    100    200  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V08 C:  8 dset:   0 I:    100    200  J: -999 -999  K: -999 -999  L:   -999   -999
+ found   (C11,V08 M:  8 dset:   0 I:   -999   -999  J:    1    5  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 5
 5
 set mode/last diagnostic
@@ -1761,8 +1779,8 @@ show var/d=clim_airt_lev
 show data clim_airt_lev
      currently SET data sets:
     1> ./clim_airt_lev.cdf  (default)
- name     title                             I         J         K         L         M         N
- AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12
  ------------------------------
  A[D=clim_airt_lev] = CLIM_AIRT_LEV-SPECIFIC
  
@@ -1842,22 +1860,22 @@ set var/titl=test3 t3[d=snoopy.dat]
 show data
      currently SET data sets:
     1> ./clim_airt_lev.cdf
- name     title                             I         J         K         L         M         N
- AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12
  ------------------------------
  T3[D=clim_airt_lev] = 3
  
     2> ./snoopy.dat  (default)
- name     title                             I         J         K         L         M         N
- T4       test4                            1:2       ...       ...       ...       ...       ...
- T3       test3                            1:2       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ T4       test4                            1:2       ...       ...       ...
+ T3       test3                            1:2       ...       ...       ...
  
 show data/full 1
      currently SET data sets:
     1> ./clim_airt_lev.cdf
  
- name     title                             I         J         K         L         M         N
- AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12
              deg. C on grid GGT1 with -1.E+34 for missing data
              X=130E:70W  Y=30S:50N  
  
@@ -3193,8 +3211,8 @@ USE gt4d011
 CANCEL MEMORY/ALL
 SET MODE DIAGNOSTIC
 DEFINE REGION/I=101 IPT
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1
 DEFINE REGION/J=46 JPT
 DEFINE REGION/K=1 KPT
 DEFINE REGION/L=1 LPT
@@ -3202,10 +3220,10 @@ DEFINE REGION/I=101:105/J=46:50/K=1:5/L=1:5 R4D
 SET REG R4D
 SET EXPRESSION temp
 LOAD		! load full 4-D region
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  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 PS3DT2          PSXT      PSYT      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
+ reading TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
 GO bn_geometry.sub
 ! BN200_GEOMETRY.SUB
 ! list the variable vtest on variuos geometries
@@ -3215,8 +3233,8 @@ GO bn_geometry.sub
 ! lines of data
 LIST/@JPT/@KPT/@LPT/ORDER=X
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (LONGITUDE)
@@ -3226,11 +3244,11 @@ LIST/@JPT/@KPT/@LPT/ORDER=X
           129.5W 128.5W 127.5W 126.5W 125.5W 
           101    102    103    104    105
           25.78  25.80  25.82  25.80  25.74
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      1
 LIST/@IPT/@KPT/@LPT/ORDER=Y
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (LATITUDE)
@@ -3240,11 +3258,11 @@ LIST/@IPT/@KPT/@LPT/ORDER=Y
            0.17N  0.5N   0.83N  1.17N  1.5N  
            46     47     48     49     50
           25.78  25.90  26.04  26.22  26.42
- -DELETE TEMP     M: 29 dset:   1 I:   46   50  J:  101  101  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:     46     50  J:  101  101  K:    1    1  L:      1      1
 LIST/@IPT/@JPT/@LPT/ORDER=Z
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (DEPTH (m))
@@ -3254,11 +3272,11 @@ LIST/@IPT/@JPT/@LPT/ORDER=Z
            5      15     25     35     45    
             1      2      3      4      5
           25.78  25.67  25.51  25.35  25.16
- -DELETE TEMP     M: 29 dset:   1 I:    1    5  J:  101  101  K:   46   46  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:      1      5  J:  101  101  K:   46   46  L:      1      1
 LIST/@IPT/@JPT/@KPT/ORDER=T
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    1  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (TIME)
@@ -3268,13 +3286,13 @@ LIST/@IPT/@JPT/@KPT/ORDER=T
            1982   1982   1982   1982   1982  
             1      2      3      4      5
           25.78  25.98  26.18  26.39  26.62
- -DELETE TEMP     M: 29 dset:   1 I:    1    5  J:  101  101  K:   46   46  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:      1      5  J:  101  101  K:   46   46  L:      1      1
  
 ! planes of data
 LIST/@KPT/@LPT	!XY
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
@@ -3287,11 +3305,11 @@ LIST/@KPT/@LPT	!XY
  0.83N / 48:  26.04  26.10  26.13  26.11  26.06
  0.5N  / 47:  25.90  25.94  25.96  25.94  25.89
  0.17N / 46:  25.78  25.80  25.82  25.80  25.74
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      1
 LIST/@JPT/@LPT	!XZ
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-DEPTH (m))
@@ -3304,11 +3322,11 @@ LIST/@JPT/@LPT	!XZ
  25    / 3:  25.51  25.53  25.54  25.53  25.48
  35    / 4:  25.35  25.36  25.36  25.34  25.29
  45    / 5:  25.16  25.15  25.12  25.07  25.02
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:    1    5  K:   46   46  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:    1    5  K:   46   46  L:      1      1
 LIST/@JPT/@KPT	!XT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-TIME)
@@ -3321,11 +3339,11 @@ LIST/@JPT/@KPT	!XT
  29-AUG-1982 16 / 3:  26.18  26.13  26.07  26.01  25.97
  04-SEP-1982 18 / 4:  26.39  26.31  26.24  26.18  26.15
  10-SEP-1982 20 / 5:  26.62  26.55  26.47  26.40  26.36
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:    1    5  K:   46   46  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:    1    5  K:   46   46  L:      1      1
 LIST/@IPT/@LPT	!YZ
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LATITUDE-DEPTH (m))
@@ -3338,11 +3356,11 @@ LIST/@IPT/@LPT	!YZ
  25    / 3:  25.51  25.68  25.90  26.12  26.35
  35    / 4:  25.35  25.58  25.86  26.11  26.35
  45    / 5:  25.16  25.41  25.77  26.10  26.35
- -DELETE TEMP     M: 29 dset:   1 I:   46   50  J:    1    5  K:  101  101  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:     46     50  J:    1    5  K:  101  101  L:      1      1
 LIST/@IPT/@KPT	!YT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LATITUDE-TIME)
@@ -3355,11 +3373,11 @@ LIST/@IPT/@KPT	!YT
  29-AUG-1982 16 / 3:  26.18  26.30  26.46  26.65  26.86
  04-SEP-1982 18 / 4:  26.39  26.51  26.67  26.85  27.05
  10-SEP-1982 20 / 5:  26.62  26.72  26.87  27.03  27.17
- -DELETE TEMP     M: 29 dset:   1 I:   46   50  J:    1    5  K:  101  101  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:     46     50  J:    1    5  K:  101  101  L:      1      1
 LIST/@IPT/@JPT	!ZT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (DEPTH (m)-TIME)
@@ -3372,13 +3390,13 @@ LIST/@IPT/@JPT	!ZT
  29-AUG-1982 16 / 3:  26.18  26.08  25.93  25.79  25.60
  04-SEP-1982 18 / 4:  26.39  26.31  26.16  26.04  25.83
  10-SEP-1982 20 / 5:  26.62  26.53  26.36  26.25  26.04
- -DELETE TEMP     M: 29 dset:   1 I:    1    5  J:    1    5  K:  101  101  L:   46   46  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:      1      5  J:    1    5  K:  101  101  L:     46     46
  
 ! cubes of data
 LIST/@LPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-DEPTH (m))
@@ -3415,11 +3433,11 @@ LIST/@LPT
  0.83N / 48:  25.77  25.81  25.82  25.81  25.76
  0.5N  / 47:  25.41  25.43  25.41  25.38  25.32
  0.17N / 46:  25.16  25.15  25.12  25.07  25.02
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      1
 LIST/@KPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-TIME)
@@ -3456,11 +3474,11 @@ LIST/@KPT
  0.83N / 48:  26.87  26.75  26.62  26.54  26.52
  0.5N  / 47:  26.72  26.63  26.52  26.45  26.43
  0.17N / 46:  26.62  26.55  26.47  26.40  26.36
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      1
 LIST/@JPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-DEPTH (m)-TIME)
@@ -3497,11 +3515,11 @@ LIST/@JPT
  25    / 3:  26.36  26.31  26.19  26.08  26.03
  35    / 4:  26.25  26.21  26.09  25.98  25.92
  45    / 5:  26.04  26.01  25.93  25.84  25.77
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:    1    5  K:    1    5  L:   46   46  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:    1    5  K:    1    5  L:     46     46
 LIST/@IPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LATITUDE-DEPTH (m)-TIME)
@@ -3538,12 +3556,12 @@ LIST/@IPT
  25    / 3:  26.36  26.59  26.78  26.95  27.09
  35    / 4:  26.25  26.53  26.78  26.95  27.09
  45    / 5:  26.04  26.32  26.68  26.95  27.09
- -DELETE TEMP     M: 29 dset:   1 I:   46   50  J:    1    5  K:    1    5  L:  101  101  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:     46     50  J:    1    5  K:    1    5  L:    101    101
  
 ! 4D region
 LOAD
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
 SET MODE/LAST DIAGNOSTIC
  
 ! ******** disk-resident file variable ************
@@ -3551,7 +3569,7 @@ USE gt4d011
 CANCEL MEMORY/ALL
 SET MODE DIAGNOSTIC
 DEFINE REGION/I=101 IPT
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1
 DEFINE REGION/J=46 JPT
 DEFINE REGION/K=1 KPT
 DEFINE REGION/L=1 LPT
@@ -3566,11 +3584,11 @@ GO bn_geometry.sub
  
 ! lines of data
 LIST/@JPT/@KPT/@LPT/ORDER=X
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     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 PS3DT2          PSXT      PSYT      PSZT      TIME1
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 31 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      1
+ reading TEMP     M: 31 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (LONGITUDE)
@@ -3582,8 +3600,8 @@ LIST/@JPT/@KPT/@LPT/ORDER=X
           25.78  25.80  25.82  25.80  25.74
 LIST/@IPT/@KPT/@LPT/ORDER=Y
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 29 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      1
+ reading TEMP     M: 29 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (LATITUDE)
@@ -3595,8 +3613,8 @@ LIST/@IPT/@KPT/@LPT/ORDER=Y
           25.78  25.90  26.04  26.22  26.42
 LIST/@IPT/@JPT/@LPT/ORDER=Z
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 28 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      1
+ reading TEMP     M: 28 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (DEPTH (m))
@@ -3608,8 +3626,8 @@ LIST/@IPT/@JPT/@LPT/ORDER=Z
           25.78  25.67  25.51  25.35  25.16
 LIST/@IPT/@JPT/@KPT/ORDER=T
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 27 dset:   1 I:  101  101  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    1  L:      1      5
+ reading TEMP     M: 27 dset:   1 I:    101    101  J:   46   46  K:    1    1  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (TIME)
@@ -3623,8 +3641,8 @@ LIST/@IPT/@JPT/@KPT/ORDER=T
 ! planes of data
 LIST/@KPT/@LPT	!XY
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 26 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      1
+ reading TEMP     M: 26 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
@@ -3639,8 +3657,8 @@ LIST/@KPT/@LPT	!XY
  0.17N / 46:  25.78  25.80  25.82  25.80  25.74
 LIST/@JPT/@LPT	!XZ
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 25 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      1
+ reading TEMP     M: 25 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-DEPTH (m))
@@ -3655,8 +3673,8 @@ LIST/@JPT/@LPT	!XZ
  45    / 5:  25.16  25.15  25.12  25.07  25.02
 LIST/@JPT/@KPT	!XT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 24 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      5
+ reading TEMP     M: 24 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-TIME)
@@ -3671,8 +3689,8 @@ LIST/@JPT/@KPT	!XT
  10-SEP-1982 20 / 5:  26.62  26.55  26.47  26.40  26.36
 LIST/@IPT/@LPT	!YZ
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 23 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      1
+ reading TEMP     M: 23 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LATITUDE-DEPTH (m))
@@ -3687,8 +3705,8 @@ LIST/@IPT/@LPT	!YZ
  45    / 5:  25.16  25.41  25.77  26.10  26.35
 LIST/@IPT/@KPT	!YT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 22 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      5
+ reading TEMP     M: 22 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LATITUDE-TIME)
@@ -3703,8 +3721,8 @@ LIST/@IPT/@KPT	!YT
  10-SEP-1982 20 / 5:  26.62  26.72  26.87  27.03  27.17
 LIST/@IPT/@JPT	!ZT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 21 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      5
+ reading TEMP     M: 21 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (DEPTH (m)-TIME)
@@ -3721,8 +3739,8 @@ LIST/@IPT/@JPT	!ZT
 ! cubes of data
 LIST/@LPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 20 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      1
+ reading TEMP     M: 20 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-DEPTH (m))
@@ -3761,8 +3779,8 @@ LIST/@LPT
  0.17N / 46:  25.16  25.15  25.12  25.07  25.02
 LIST/@KPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 19 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      5
+ reading TEMP     M: 19 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-TIME)
@@ -3801,8 +3819,8 @@ LIST/@KPT
  0.17N / 46:  26.62  26.55  26.47  26.40  26.36
 LIST/@JPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 18 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      5
+ reading TEMP     M: 18 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-DEPTH (m)-TIME)
@@ -3841,8 +3859,8 @@ LIST/@JPT
  45    / 5:  26.04  26.01  25.93  25.84  25.77
 LIST/@IPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 17 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      5
+ reading TEMP     M: 17 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LATITUDE-DEPTH (m)-TIME)
@@ -3882,8 +3900,8 @@ LIST/@IPT
  
 ! 4D region
 LOAD
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 16 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
+ reading TEMP     M: 16 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
 SET MODE/LAST DIAGNOSTIC
  
 ! ******** diagnostic variable ************
@@ -3908,6 +3926,7 @@ SET MODE/LAST IGNORE_ERRORS
 ! 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)
  
 LET v = 1000*i + 100*j + 10*k + l
 SET REGION/I=1:2/J=3:4/K=5:6/L=7:8
@@ -6880,15 +6899,16 @@ LIST
 2   / 2:  2467.  2.000  4.000  6.000  7.000
 CANCEL LIST/ALL
 SET LIST/FILE=AUTO-X
-LIST/FILE
-LIST/FILE=test.dat
+LIST/CLOBBER/FILE
+LIST/CLOBBER/FILE=test.dat
 LIST/FILE=test.dat/APPEND
-LIST/FILE=test.unf/FORMAT=UNFORMATTED
+LIST/CLOBBER/FILE=test.unf/FORMAT=UNFORMATTED
 ! V6.8 we no longer write this file type
 SET MODE IGNORE
 LIST/FILE=test.gt/FORMAT=TMAP/L=1:3 v,v^0.5
 SET MODE/LAST IGNORE
 CANCEL LIST
+ 
 *** Running ferret script: bn_in_plane.jnl
 ! bn200_in_plane.JNL
 ! benchmark various geometries with in-plane transformation applied (@SBX)
@@ -9627,8 +9647,6 @@ show grid/l=1:4 g24 g48
  normal    Y
  normal    Z
  TAX24     TIME               732 r   01-JAN-1980 00:00    01-JAN-1982 00:00
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (HOURS)
        1>  01-JAN-1980 00:00:00  24         31-DEC-1979 12:00:00   87648
@@ -9641,8 +9659,6 @@ show grid/l=1:4 g24 g48
  normal    Y
  normal    Z
  TAX48     TIME               367 r   01-JAN-1980 00:00    02-JAN-1982 00:00
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (HOURS)
        1>  01-JAN-1980 00:00:00  48         31-DEC-1979 00:00:00   525960
@@ -9697,8 +9713,8 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- V1       V1                               1:5       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:5       ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:5.5  
  
@@ -9717,8 +9733,8 @@ LIST V1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:5       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:5       ...       ...       ...
  
  
 ! first 2 values from each line
@@ -9727,11 +9743,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:5       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:5       ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:5.5  
- X2       X2                               1:5       ...       ...       ...       ...       ...
+ X2       X2                               1:5       ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:5.5  
  
@@ -9752,9 +9768,9 @@ LIST X1,X2
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:5       ...       ...       ...       ...       ...
- X2       X2                               1:5       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:5       ...       ...       ...
+ X2       X2                               1:5       ...       ...       ...
  
  
 ! all 6 values on each line
@@ -9763,11 +9779,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:15.5  
  
@@ -9796,9 +9812,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
  
  
 ! all 6 but skip first 2 lines
@@ -9807,11 +9823,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:15.5  
  
@@ -9834,9 +9850,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:9       ...       ...       ...       ...       ...
- X2       X2                               1:9       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:9       ...       ...       ...
+ X2       X2                               1:9       ...       ...       ...
  
  
 ! take 1st and 4th values on each line as X1
@@ -9845,11 +9861,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:15.5  
  
@@ -9869,9 +9885,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:6       ...       ...       ...       ...       ...
- X2       X2                               1:6       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:6       ...       ...       ...
+ X2       X2                               1:6       ...       ...       ...
  
  
 ! specify the format explicitly
@@ -9880,11 +9896,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:15.5  
  
@@ -9907,9 +9923,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:9       ...       ...       ...       ...       ...
- X2       X2                               1:9       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:9       ...       ...       ...
+ X2       X2                               1:9       ...       ...       ...
  
  
 ! specify the format to skip every second line
@@ -9918,11 +9934,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:15.5  
  
@@ -9942,9 +9958,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:6       ...       ...       ...       ...       ...
- X2       X2                               1:6       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:6       ...       ...       ...
+ X2       X2                               1:6       ...       ...       ...
  
  
 ! modify variable title
@@ -9952,9 +9968,9 @@ SET VARIABLE/TITLE="first variable" X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       first variable                   1:6       ...       ...       ...       ...       ...
- X2       X2                               1:6       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       first variable                   1:6       ...       ...       ...
+ X2       X2                               1:6       ...       ...       ...
  
  
 ! read onto a 2D grid
@@ -9965,11 +9981,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:3       1:20480   ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:3       1:20480   ...       ...
                on grid GEZ1 with -1.E+34 for missing data
              X=0.5:3.5  Y=0.5:20480.5  
- X2       X2                               1:3       1:20480   ...       ...       ...       ...
+ X2       X2                               1:3       1:20480   ...       ...
                on grid GEZ1 with -1.E+34 for missing data
              X=0.5:3.5  Y=0.5:20480.5  
  
@@ -9990,9 +10006,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:3       1:5       ...       ...       ...       ...
- X2       X2                               1:3       1:5       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:3       1:5       ...       ...
+ X2       X2                               1:3       1:5       ...       ...
  
  
 ! read onto a 4D grid
@@ -10005,11 +10021,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:1       1:3       1:2       1:20480   ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:1       1:3       1:2       1:20480
                on grid GEZ2 with -1.E+34 for missing data
              X=0.5:1.5  Y=0.5:3.5  Z=0.5:2.5  
- X2       X2                               1:1       1:3       1:2       1:20480   ...       ...
+ X2       X2                               1:1       1:3       1:2       1:20480
                on grid GEZ2 with -1.E+34 for missing data
              X=0.5:1.5  Y=0.5:3.5  Z=0.5:2.5  
  
@@ -10032,12 +10048,16 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:1       1:3       1:2       1:2       ...       ...
- X2       X2                               1:1       1:3       1:2       1:2       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:1       1:3       1:2       1:2
+ X2       X2                               1:1       1:3       1:2       1:2
  
  
 ! truncate reading by grid size limit
+! V702: *sh* note that with 3 columns of pairs and a request to read only
+! 8 values total, the final record is incomplete.  These final values
+! **do not get initialized**.  This has been reported in trac #2509
+! The presence of uninitialized values can throw off the formatting of the output
 DEFINE AXIS/X=1:8:1 xez3
 DEFINE GRID/X=XEZ3 GEZ3
 FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ3 EZ.DAT
@@ -10045,11 +10065,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:8       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:8       ...       ...       ...
                on grid GEZ3 with -1.E+34 for missing data
              X=0.5:8.5  
- X2       X2                               1:8       ...       ...       ...       ...       ...
+ X2       X2                               1:8       ...       ...       ...
                on grid GEZ3 with -1.E+34 for missing data
              X=0.5:8.5  
  
@@ -10066,14 +10086,14 @@ LIST X1
  4   / 4:  0.3550
  5   / 5:  0.3790
  6   / 6:  0.3930
- 7   / 7:  0.4100
- 8   / 8:  0.4170
+ 7   / 7:  0.0000
+ 8   / 8:  0.0000
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:8       ...       ...       ...       ...       ...
- X2       X2                               1:8       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:8       ...       ...       ...
+ X2       X2                               1:8       ...       ...       ...
  
  
 ! 8/10/95 -- added tests of unformatted writing and reading
@@ -10081,7 +10101,7 @@ SP rm -f test.unf
 LIST/FILE=test.unf/format=unf/i=1:10 i
 file/form=unf/var=my_var test.unf
 list my_var
-             VARIABLE : MY_VAR
+             VARIABLE : my_var
              FILENAME : test.unf
              SUBSET   : 10 points (X)
  1    /  1:   1.00
@@ -10500,20 +10520,22 @@ show symbols/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7"
-FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7.1"
+FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "17-Jun-16"
-SESSION_TIME = "15:03"
-SESSION_PID = "7724"
-DELTA_CPU = "0.008997"
-CLOCK_SECS = "0.002"
-CURRENT_DATE = "17-Jun-16"
-CURRENT_TIME = "15:03:53"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
+PEAK_MEMORY = "0"
+SPAWN_STATUS = "1"
  
 ! define some symbols ... syntax variations
 define symbol s1 = hello
@@ -10529,20 +10551,22 @@ show symbol/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7"
-FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7.1"
+FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "17-Jun-16"
-SESSION_TIME = "15:03"
-SESSION_PID = "7724"
-DELTA_CPU = "0.001"
-CLOCK_SECS = "0.003"
-CURRENT_DATE = "17-Jun-16"
-CURRENT_TIME = "15:03:53"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
+PEAK_MEMORY = "0"
+SPAWN_STATUS = "1"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10550,9 +10574,10 @@ NUM = "3"
 T$DOLLAR = "hi"
 T_HELLO = "hi"
 show symbol s*
-SESSION_DATE = "17-Jun-16"
-SESSION_TIME = "15:03"
-SESSION_PID = "7724"
+SESSION_DATE = "18-Apr-17"
+SESSION_TIME = "17:03"
+SESSION_PID = "25874"
+SPAWN_STATUS = "1"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10562,15 +10587,17 @@ S2 = ""hello""
 ! exercise CANCEL SYMBOL
 cancel symbol s2
 show symbol s*
-SESSION_DATE = "17-Jun-16"
-SESSION_TIME = "15:03"
-SESSION_PID = "7724"
+SESSION_DATE = "18-Apr-17"
+SESSION_TIME = "17:03"
+SESSION_PID = "25874"
+SPAWN_STATUS = "1"
 S1 = "hello"
 S3 = "hello and goodbye"
 show symbol S*
-SESSION_DATE = "17-Jun-16"
-SESSION_TIME = "15:03"
-SESSION_PID = "7724"
+SESSION_DATE = "18-Apr-17"
+SESSION_TIME = "17:03"
+SESSION_PID = "25874"
+SPAWN_STATUS = "1"
 S1 = "hello"
 S3 = "hello and goodbye"
 cancel symbol s2	! already deleted
@@ -10698,20 +10725,22 @@ show symbols/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7"
-FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7.1"
+FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "17-Jun-16"
-SESSION_TIME = "15:03"
-SESSION_PID = "7724"
-DELTA_CPU = "0.014998"
-CLOCK_SECS = "0.021"
-CURRENT_DATE = "17-Jun-16"
-CURRENT_TIME = "15:03:53"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
+PEAK_MEMORY = "201"
+SPAWN_STATUS = "1"
  
 *** Running ferret script: bn_comma_delimited.jnl
 ! bn420_comma_delimited
@@ -12186,7 +12215,7 @@ LIST/FORMAT=comma/precision=5/order=x temp
              DEPTH (m): 15
              TIME     : 10-SEP-1982 20:00
    135.5W,134.5W
-row 1,27.335,27.222
+27.335 ,27.222
 LIST/FORMAT=comma/precision=5/order=y temp
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
@@ -12209,7 +12238,7 @@ LIST/FORMAT=comma/precision=5/order=y temp
              DEPTH (m): 15
              TIME     : 10-SEP-1982 20:00
    1.5S,1.2S
-row 1,27.335,27.238
+27.335 ,27.238
 LIST/FORMAT=comma/precision=5/order=x temp
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
@@ -12232,7 +12261,7 @@ LIST/FORMAT=comma/precision=5/order=z temp
              LATITUDE : 1.5S
              TIME     : 10-SEP-1982 20:00
    15      ,25      
-row 1,27.335,27.248
+27.335 ,27.248
 LIST/FORMAT=comma/precision=5/order=x temp
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
@@ -12257,7 +12286,7 @@ LIST/FORMAT=comma/precision=5/order=t temp
              LATITUDE : 1.5S
              DEPTH (m): 15
    10-SEP-1982 20:00,16-SEP-1982 22:00
-row 1,27.335,27.775
+27.335 ,27.775
 LIST/FORMAT=comma/precision=5/order=x temp
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
@@ -12317,8 +12346,8 @@ LIST/FORMAT=comma/precision=9 randu(i)*temp*1e7
              DEPTH (m): 15
              TIME     : 10-SEP-1982 20:00
    135.5W,134.5W
-1.5S,  166750845.,  202088412.
-1.2S,  166162833.,  201366579.
+1.5S,166750845.,202088412.
+1.2S,166162833.,201366579.
  
 ! small number formatting test
 set region/i=95:96/j=41:42/k=2/l=5
@@ -12406,10 +12435,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
  
 set mode ignore_errors
@@ -12457,10 +12482,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 list temp[gx=psyu]		! err during get_context_grid - axis mismatch
 show grid/dynamic
@@ -12501,10 +12522,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 let  tu = temp[gx=noexist]
 list tu				! err during get_context_mods
@@ -12548,10 +12565,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 let  tu = temp[gx=psyu]
 list tu				! err during get_context_grid - axis mismatch
@@ -12571,6 +12584,11 @@ let save_mem = ($ferret_memory)
 set mem/siz = 10
  
 list temp[gz=z999999,z=5:15]	! err during regrid
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 10 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 50 (5.E-04%)
+    The size of the requested object was: : 24999975 (250%)
 show grid/dynamic
 Dynamic grids:
     GRID (G005)                          use count:   1
@@ -12579,10 +12597,6 @@ Dynamic grids:
  PSYT      LATITUDE           100 i   28.836S              48.568N
  Z999999   DEPTH (m)       999999 r-  5                    15
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
 set mem/siz=`save_mem`
  !-> set mem/siz=25.6
  
@@ -12595,10 +12609,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 set mode/last ignore
  
@@ -12627,10 +12637,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 list temp[gy=psyu]
              VARIABLE : TEMPERATURE (deg. C)
@@ -12669,10 +12675,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 list temp[gx=w]
              VARIABLE : TEMPERATURE (deg. C)
@@ -12710,10 +12712,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 list  5 + temp[gx=psxu]
              VARIABLE : 5 + TEMP[GX=PSXU]
@@ -12736,10 +12734,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 let tu = temp[gx=psxu]
 list tu
@@ -12763,10 +12757,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
 show grid tu
     GRID (G005)
  name       axis              # pts   start                end                 subset
@@ -12774,8 +12764,6 @@ show grid tu
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00   full
- normal    E
- normal    F
  
 let tu = temp[gx=psxu] + 5
 list tu
@@ -12799,10 +12787,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
  
 ! implicit grid conformability
@@ -12878,10 +12862,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 ! regridding between grids with mutually exclusive axes
 cancel region
@@ -13090,20 +13070,6 @@ Dynamic grids:
  (AX009)   Y                    3 r   95                   109
  normal    Z
  normal    T
- normal    E
- normal    F
-    GRID (G005)                          use count:   1
- name       axis              # pts   start                end
- (AX011)   X                    7 r   0.1                  9.1
- (AX010)   Y                   10 r   101                  110
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX009)                         use count:   1
-    AXIS (AX011)                         use count:   2
-    AXIS (AX010)                         use count:   1
  
 ! ambiguous coordinate tests
 list/order=x  x[x=0.1:10:1.5] +  x[x=1.1:11:1.5]
@@ -13127,10 +13093,6 @@ Dynamic grids:
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX009)                         use count:   1
  
 ! box size on dynamic axes
 cancel region
@@ -13157,12 +13119,10 @@ show grid/x
  Last successful data access was on grid (G005)
     GRID (G005)
  name       axis              # pts   start                end                 subset
- (AX011)   X                    5 i   1                    6561                4 pts
+ (AX011)   X                    5 i   1                    6561                5 pts
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     280        -59
@@ -13237,10 +13197,6 @@ Dynamic grids:
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX011)                         use count:   1
  
 ! this expression does NOT inherit the X axis -- the result is
 !	i) ambiguous X axis coordinates
@@ -13266,19 +13222,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-    GRID (G005)                          use count:   1
- name       axis              # pts   start                end
- (AX011)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX009)                         use count:   1
-    AXIS (AX011)                         use count:   1
  
 list/j=46:50/l=1/k=1 temp[i=101:120:4]+x[g=temp,i=101:120:4]
              VARIABLE : TEMP[I=101:120:4]+X[G=TEMP,I=101:120:4]
@@ -13350,19 +13293,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-    GRID (G005)                          use count:   1
- name       axis              # pts   start                end
- (AX011)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX009)                         use count:   1
-    AXIS (AX011)                         use count:   1
  
 ! regular dynamic axis
 ! ... by subscript
@@ -13433,19 +13363,6 @@ Dynamic grids:
  (AX009)   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
- normal    E
- normal    F
-    GRID (G005)                          use count:   1
- name       axis              # pts   start                end
- (AX011)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX009)                         use count:   1
-    AXIS (AX011)                         use count:   1
  
 ! ========
 ! 2/96: repeat the very same commands using GX=lo:hi:delta notation
@@ -13611,20 +13528,6 @@ Dynamic grids:
  (AX010)   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
- normal    E
- normal    F
-    GRID (G005)                          use count:   1
- name       axis              # pts   start                end
- (AX011)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX010)                         use count:   1
-    AXIS (AX012)                         use count:   1
-    AXIS (AX011)                         use count:   1
  
 ! the same tests but now on a nested definition
 ! regular dynamic axis
@@ -13796,19 +13699,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-    GRID (G005)                          use count:   1
- name       axis              # pts   start                end
- (AX012)   LONGITUDE            4 r   130W                 121W
- 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
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX010)                         use count:   1
-    AXIS (AX012)                         use count:   1
  
 ! irregular dynamic axis
 ! ... by subscript
@@ -13950,19 +13840,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-    GRID (G005)                          use count:   1
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- (AX011)   LATITUDE             6 r   3.5S                 4N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX012)                         use count:   1
-    AXIS (AX011)                         use count:   1
  
 ! nested modulo (the dynamic axis is **NOT** modulo)
 ! ... by subscript
@@ -14148,19 +14025,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-    GRID (G005)                          use count:   1
- name       axis              # pts   start                end
- (AX010)   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
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX011)                         use count:   1
-    AXIS (AX010)                         use count:   1
  
 ! calendar axes
 list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]   ! 6-day ave
@@ -14256,8 +14120,8 @@ set data/format=cdf test0a, test0b, test0c, test0d, test0e, test0f, test0g, test
 show data 1
      currently SET data sets:
     1> ./test0a.cdf
- name     title                             I         J         K         L         M         N
- L_       L                                ...       ...       ...       1:500     ...       ...
+ name     title                             I         J         K         L
+ L_       L                                ...       ...       ...       1:500
        (axis ABSTRACT)
  
 show data/br
@@ -14408,78 +14272,78 @@ show data/full
      currently SET data sets:
     1> ./test_abs.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       I                                1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       I                                1:10      ...       ...       ...
                on grid GEU1 with -1.E+34 for missing data
              X=0.5:10.5  
- J1       J                                ...       1:20      ...       ...       ...       ...
+ J1       J                                ...       1:20      ...       ...
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- K1       K                                ...       ...       1:100     ...       ...       ...
+ K1       K                                ...       ...       1:100     ...
                on grid GEU3 with -1.E+34 for missing data
              Z=0.5:100.5  
- L1       L[G=GCENTURY]                    ...       ...       ...       1:12      ...       ...
+ L1       L[G=GCENTURY]                    ...       ...       ...       1:12
                on grid GEU4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:10      ...       ...
+ L2       L                                ...       ...       ...       1:10
                on grid GEU5 with -1.E+34 for missing data
              
- IJ       I+J                              1:10      1:20      ...       ...       ...       ...
+ IJ       I+J                              1:10      1:20      ...       ...
                on grid GEU6 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IK       I+K                              1:10      ...       1:100     ...       ...       ...
+ IK       I+K                              1:10      ...       1:100     ...
                on grid GEU7 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IL       I+L1                             1:10      ...       ...       1:12      ...       ...
+ IL       I+L1                             1:10      ...       ...       1:12
                on grid GEU8 with -1.E+34 for missing data
              X=0.5:10.5  
- JK       J+K                              ...       1:20      1:100     ...       ...       ...
+ JK       J+K                              ...       1:20      1:100     ...
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJK      I+J+K                            1:10      1:20      1:100     ...       ...       ...
+ IJK      I+J+K                            1:10      1:20      1:100     ...
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IKL      I+K+L1                           1:10      ...       1:100     1:12      ...       ...
+ IKL      I+K+L1                           1:10      ...       1:100     1:12
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJL      I+J+L1                           1:10      1:20      ...       1:12      ...       ...
+ IJL      I+J+L1                           1:10      1:20      ...       1:12
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- JKL      J+K+L1                           ...       1:20      1:100     1:12      ...       ...
+ JKL      J+K+L1                           ...       1:20      1:100     1:12
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJKL     I+J+K+L1                         1:10      1:20      1:100     1:12      ...       ...
+ IJKL     I+J+K+L1                         1:10      1:20      1:100     1:12
                on grid GEU14 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IJK2     I+J+K                            ...       1:20      1:100     ...       ...       ...
+ IJK2     I+J+K                            ...       1:20      1:100     ...
        (X=0.5:10.5 at AVE)
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IKL2     I+K+L1                           ...       ...       1:100     1:12      ...       ...
+ IKL2     I+K+L1                           ...       ...       1:100     1:12
        (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
                on grid GEU15 with -1.E+34 for missing data
              Z=0.5:100.5  
- IJL2     I+J+L1                           ...       ...       ...       1:12      ...       ...
+ IJL2     I+J+L1                           ...       ...       ...       1:12
        (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
                on grid GEU4 with -1.E+34 for missing data
              
- JKL2     J+K+L1                           ...       1:20      ...       ...       ...       ...
+ JKL2     J+K+L1                           ...       1:20      ...       ...
        (Z=0.5:100.5 at AV4, T=03-JAN-1902 12:00:08-JAN-1902 12:00 at AV4)
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:12      ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:12
        (X=0.5:10.5)
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:12      ...       ...
+ IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:12
        (Y=0.5:20.5)
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:12      ...       ...
+ IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:12
        (Z=0.5:100.5)
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...
        (T=03-JAN-1902 12:00:08-JAN-1902 12:00)
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
@@ -14494,8 +14358,6 @@ show grid ijkl
  YAX1_20   Y                   20 r   1                    20                  full
  ZAX1_100  Z                  100 r   1                    100                 full
  TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00   full
- normal    E
- normal    F
 cancel data test_abs
  
 ! make the time axis irregular by leaving out l=13
@@ -14505,78 +14367,78 @@ show data/full
      currently SET data sets:
     1> ./test_abs.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       I                                1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       I                                1:10      ...       ...       ...
                on grid GEU1 with -1.E+34 for missing data
              X=0.5:10.5  
- J1       J                                ...       1:20      ...       ...       ...       ...
+ J1       J                                ...       1:20      ...       ...
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- K1       K                                ...       ...       1:100     ...       ...       ...
+ K1       K                                ...       ...       1:100     ...
                on grid GEU3 with -1.E+34 for missing data
              Z=0.5:100.5  
- L1       L[G=GCENTURY]                    ...       ...       ...       1:15      ...       ...
+ L1       L[G=GCENTURY]                    ...       ...       ...       1:15
                on grid GEU4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:10      ...       ...
+ L2       L                                ...       ...       ...       1:10
                on grid GEU5 with -1.E+34 for missing data
              
- IJ       I+J                              1:10      1:20      ...       ...       ...       ...
+ IJ       I+J                              1:10      1:20      ...       ...
                on grid GEU6 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IK       I+K                              1:10      ...       1:100     ...       ...       ...
+ IK       I+K                              1:10      ...       1:100     ...
                on grid GEU7 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IL       I+L1                             1:10      ...       ...       1:15      ...       ...
+ IL       I+L1                             1:10      ...       ...       1:15
                on grid GEU8 with -1.E+34 for missing data
              X=0.5:10.5  
- JK       J+K                              ...       1:20      1:100     ...       ...       ...
+ JK       J+K                              ...       1:20      1:100     ...
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJK      I+J+K                            1:10      1:20      1:100     ...       ...       ...
+ IJK      I+J+K                            1:10      1:20      1:100     ...
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IKL      I+K+L1                           1:10      ...       1:100     1:15      ...       ...
+ IKL      I+K+L1                           1:10      ...       1:100     1:15
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJL      I+J+L1                           1:10      1:20      ...       1:15      ...       ...
+ IJL      I+J+L1                           1:10      1:20      ...       1:15
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- JKL      J+K+L1                           ...       1:20      1:100     1:15      ...       ...
+ JKL      J+K+L1                           ...       1:20      1:100     1:15
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJKL     I+J+K+L1                         1:10      1:20      1:100     1:15      ...       ...
+ IJKL     I+J+K+L1                         1:10      1:20      1:100     1:15
                on grid GEU14 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IJK2     I+J+K                            ...       1:20      1:100     ...       ...       ...
+ IJK2     I+J+K                            ...       1:20      1:100     ...
        (X=0.5:10.5 at AVE)
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IKL2     I+K+L1                           ...       ...       1:100     1:15      ...       ...
+ IKL2     I+K+L1                           ...       ...       1:100     1:15
        (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
                on grid GEU15 with -1.E+34 for missing data
              Z=0.5:100.5  
- IJL2     I+J+L1                           ...       ...       ...       1:15      ...       ...
+ IJL2     I+J+L1                           ...       ...       ...       1:15
        (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
                on grid GEU4 with -1.E+34 for missing data
              
- JKL2     J+K+L1                           ...       1:20      ...       ...       ...       ...
+ JKL2     J+K+L1                           ...       1:20      ...       ...
        (Z=0.5:100.5 at AV4, T=03-JAN-1902 12:00:08-JAN-1902 12:00 at AV4)
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:15      ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:15
        (X=0.5:10.5)
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:15      ...       ...
+ IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:15
        (Y=0.5:20.5)
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:15      ...       ...
+ IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:15
        (Z=0.5:100.5)
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...
        (T=03-JAN-1902 12:00:08-JAN-1902 12:00)
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
@@ -14590,8 +14452,6 @@ show grid ijkl
  YAX1_20   Y                   20 r   1                    20                  full
  ZAX1_100  Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
  
  
 ! list long time series using a rigid (non-record axis) time axis --> FAST
@@ -14625,40 +14485,30 @@ show grid j1 jkl jkl2 iavejkl ijkl
  YAX1_20   Y                   20 r   1                    20                  full
  normal    Z
  normal    T
- normal    E
- normal    F
     GRID GEU13
  name       axis              # pts   start                end                 subset
  normal    X
  YAX1_20   Y                   20 r   1                    20                  full
  ZAX1_100  Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
     GRID GEU2
  name       axis              # pts   start                end                 subset
  normal    X
  YAX1_20   Y                   20 r   1                    20                  full
  normal    Z
  normal    T
- normal    E
- normal    F
     GRID GEU13
  name       axis              # pts   start                end                 subset
  normal    X
  YAX1_20   Y                   20 r   1                    20                  full
  ZAX1_100  Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
     GRID GEU14
  name       axis              # pts   start                end                 subset
  XAX1_10   X                   10 r   1                    10                  full
  YAX1_20   Y                   20 r   1                    20                  full
  ZAX1_100  Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
 cancel data test_abs
  
 ! test TMAP data io
@@ -14742,29 +14592,29 @@ show data/full
      currently SET data sets:
     1> ./gtbc011.cdf
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.8S:51.4N  
  
@@ -14772,67 +14622,67 @@ show data/full
  
     2> ./test_fil0.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...
                on grid PS3DT1_NYZT with -1.E+34 for missing data
              X=130E:140E  
- J1       Y[G=TEMP,J=5:10]                 ...       5:10      ...       ...       ...       ...
+ J1       Y[G=TEMP,J=5:10]                 ...       5:10      ...       ...
                on grid PS3DT1_NXZT with -1.E+34 for missing data
              Y=21.1S:12.5S  
- K1       Z[G=U,K=5:15]                    ...       ...       5:15      ...       ...       ...
+ K1       Z[G=U,K=5:15]                    ...       ...       5:15      ...
                on grid PS3DU1_NXYT with -1.E+34 for missing data
              Z=40:190  
- L1       L[G=U,L=1:3]                     ...       ...       ...       1:3       ...       ...
+ L1       L[G=U,L=1:3]                     ...       ...       ...       1:3
                on grid GRH1 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:2       ...       ...
+ L2       L                                ...       ...       ...       1:2
                on grid GRH2 with -1.E+34 for missing data
              
- IJ       TAUX[L=@AVE]                    69:71      1:100     ...       ...       ...       ...
+ IJ       TAUX[L=@AVE]                    69:71      1:100     ...       ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid PS2DU1_NT with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- IK       I1+K1                            1:10      ...       5:15      ...       ...       ...
+ IK       I1+K1                            1:10      ...       5:15      ...
                on grid G016_NYT with -1.E+34 for missing data
              X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
+ IL       I1+L1                            1:10      ...       ...       1:3
                on grid G016_NYZ with -1.E+34 for missing data
              X=130E:140E  
- JK       J1+K1                            ...       5:10      5:15      ...       ...       ...
+ JK       J1+K1                            ...       5:10      5:15      ...
                on grid G002_NXT with -1.E+34 for missing data
              Y=21.1S:12.5S  Z=40:190  
- IJK      TEMP[L=@AVE]                    70:72      1:100     1:27      ...       ...       ...
+ IJK      TEMP[L=@AVE]                    70:72      1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid PS3DT1_NT with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- IKL      TEMP[J=@AVE]                    70:72      ...       1:27      1:3       ...       ...
+ IKL      TEMP[J=@AVE]                    70:72      ...       1:27      1:3
        (Y=30S:50N)
                on grid PS3DT1_NY with -1.E+34 for missing data
              X=161W:158W  Z=0:4149  
- IJL      TEMP[K=@AVE]                    70:72      1:100     ...       1:3       ...       ...
+ IJL      TEMP[K=@AVE]                    70:72      1:100     ...       1:3
        (Z=0:4149)
                on grid PS3DT1_NZ with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  
- JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130E:70W)
                on grid GRH3 with -1.E+34 for missing data
              Y=30S:50N  Z=0:4149  
- IJKL     U                               69:72      1:100     1:27      1:3       ...       ...
+ IJKL     U                               69:72      1:100     1:27      1:3
                on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130.5E:69.5W)
                on grid GRH4 with -1.E+34 for missing data
              Y=28.8S:51.4N  Z=0:4149  
- IJAVEKL  IJKL[J=@AVE]                    69:72      ...       1:27      1:3       ...       ...
+ IJAVEKL  IJKL[J=@AVE]                    69:72      ...       1:27      1:3
        (Y=28.8S:51.4N)
                on grid PS3DU1_NY with -1.E+34 for missing data
              X=161.5W:157.5W  Z=0:4149  
- IJKAVEL  IJKL[K=@AVE]                    69:72      1:100     ...       1:3       ...       ...
+ IJKAVEL  IJKL[K=@AVE]                    69:72      1:100     ...       1:3
        (Z=0:4149)
                on grid PS3DU1_NZ with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  
- IJKLAVE  IJKL[L=@AVE]                    69:72      1:100     1:27      ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                    69:72      1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid PS3DU1_NT with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
@@ -14847,8 +14697,6 @@ show grid ijkl
  PSYU      LATITUDE           100 i   27.672S              50N                 full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
- normal    E
- normal    F
 cancel data test_fil0
 ! 5/99 moved old bn230_cdf.sub3 to bn_cdf.sub4 to stay inline w/ old benchmarks *kob*
 GO bn_cdf.sub4
@@ -14932,29 +14780,29 @@ show data/full
      currently SET data sets:
     1> ./gtbc011.cdf
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.8S:51.4N  
  
@@ -14962,67 +14810,67 @@ show data/full
  
     2> ./test_fil.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...
                on grid GLZ1 with -1.E+34 for missing data
              X=130E:140E  
- J1       Y[G=TEMP,J=5:10]                 ...       1:6       ...       ...       ...       ...
+ J1       Y[G=TEMP,J=5:10]                 ...       1:6       ...       ...
                on grid GLZ2 with -1.E+34 for missing data
              Y=21.1S:12.5S  
- K1       Z[G=U,K=5:15]                    ...       ...       1:11      ...       ...       ...
+ K1       Z[G=U,K=5:15]                    ...       ...       1:11      ...
                on grid GLZ3 with -1.E+34 for missing data
              Z=40:190  
- L1       L[G=U,L=1:3]                     ...       ...       ...       1:3       ...       ...
+ L1       L[G=U,L=1:3]                     ...       ...       ...       1:3
                on grid GLZ4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:2       ...       ...
+ L2       L                                ...       ...       ...       1:2
                on grid GLZ5 with -1.E+34 for missing data
              
- IJ       TAUX[L=@AVE]                     1:3       1:100     ...       ...       ...       ...
+ IJ       TAUX[L=@AVE]                     1:3       1:100     ...       ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid GLZ6 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- IK       I1+K1                            1:10      ...       1:11      ...       ...       ...
+ IK       I1+K1                            1:10      ...       1:11      ...
                on grid GLZ7 with -1.E+34 for missing data
              X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
+ IL       I1+L1                            1:10      ...       ...       1:3
                on grid GLZ8 with -1.E+34 for missing data
              X=130E:140E  
- JK       J1+K1                            ...       1:6       1:11      ...       ...       ...
+ JK       J1+K1                            ...       1:6       1:11      ...
                on grid GLZ9 with -1.E+34 for missing data
              Y=21.1S:12.5S  Z=40:190  
- IJK      TEMP[L=@AVE]                     1:3       1:100     1:27      ...       ...       ...
+ IJK      TEMP[L=@AVE]                     1:3       1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid GLZ10 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- IKL      TEMP[J=@AVE]                     1:3       ...       1:27      1:3       ...       ...
+ IKL      TEMP[J=@AVE]                     1:3       ...       1:27      1:3
        (Y=30S:50N)
                on grid GLZ11 with -1.E+34 for missing data
              X=161W:158W  Z=0:4149  
- IJL      TEMP[K=@AVE]                     1:3       1:100     ...       1:3       ...       ...
+ IJL      TEMP[K=@AVE]                     1:3       1:100     ...       1:3
        (Z=0:4149)
                on grid GLZ12 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  
- JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130E:70W)
                on grid GLZ13 with -1.E+34 for missing data
              Y=30S:50N  Z=0:4149  
- IJKL     U                                1:4       1:100     1:27      1:3       ...       ...
+ IJKL     U                                1:4       1:100     1:27      1:3
                on grid GLZ14 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130.5E:69.5W)
                on grid GLZ15 with -1.E+34 for missing data
              Y=28.8S:51.4N  Z=0:4149  
- IJAVEKL  IJKL[J=@AVE]                     1:4       ...       1:27      1:3       ...       ...
+ IJAVEKL  IJKL[J=@AVE]                     1:4       ...       1:27      1:3
        (Y=28.8S:51.4N)
                on grid GLZ16 with -1.E+34 for missing data
              X=161.5W:157.5W  Z=0:4149  
- IJKAVEL  IJKL[K=@AVE]                     1:4       1:100     ...       1:3       ...       ...
+ IJKAVEL  IJKL[K=@AVE]                     1:4       1:100     ...       1:3
        (Z=0:4149)
                on grid GLZ17 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  
- IJKLAVE  IJKL[L=@AVE]                     1:4       1:100     1:27      ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                     1:4       1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid GLZ18 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
@@ -15037,8 +14885,6 @@ show grid ijkl
  PSYU      LATITUDE           100 i   27.672S              50N                 full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
- normal    E
- normal    F
 cancel data test_fil
 GO bn_cdf_reversed.sub
 ! bn320_cdf_reversed.sub
@@ -15055,15 +14901,15 @@ show data/var
      currently SET data sets:
     1> ./reverse_axes.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...
                on grid GAF1 with -1.E+34 for missing data
              X=129.5E:179.5W  Y=10.5S:10.5N  
- FCN_REV  COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...       ...       ...
+ FCN_REV  COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...
                on grid GAF2 with -1.E+34 for missing data
              X=129.5E:179.5W  Y=10.5S:10.5N  
  FCN_REV_SUB
-          COS(X/10)*SIN(Y/2)               1:51     10:19      ...       ...       ...       ...
+          COS(X/10)*SIN(Y/2)               1:51     10:19      ...       ...
                on grid GREV with -1.E+34 for missing data
              X=129.5E:179.5W  Y=1.5S:8.5N  
  
@@ -15143,15 +14989,15 @@ set mode diag
 define axis/t=15-jan-1982:15-mar-1984:120/unit=hour tax5day
 define axis/x=120e:60w:10/unit=degrees xax10
 define grid/like=u/t=tax5day g5day
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
 define grid/like=u/x=xax10/z=w/t=tax5day g5_10
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  6 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     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 PS3DW11         PSXT      PSYT      PSZW      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ getgrid EX#1     C:  6 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ getgrid EX#1     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 PS3DW11         PSXT      PSYT      PSZW      TIME1
  
 set reg/x=130w:125w/y=0:1.5/z=0:15/t=21-JAN-1982:24-jan-1982
 !set reg/i=101:105/j=41:42/k=1:2/l=3:4
@@ -15161,97 +15007,97 @@ use gtsa056_1    	!kob 4/99
 ! deliberate errors
 set mode ignore
 load temp[g=@lin]    ! no target grid specified
- dealloc  dynamic grid PS3DW11         PSXT      PSYT      PSZW      TIME1     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 PS3DT2          PSXT      PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- reading TEMP     M:  1 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DW11         PSXT      PSYT      PSZW      TIME1
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
+ reading TEMP     M:  1 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
 load temp[gx=@ave]   ! no target grid specified
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2     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 PS3DT2          PSXT      PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- found   TEMP     M:  1 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      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 PS3DT2          PSXT      PSYT      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
+ found   TEMP     M:  1 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
 load temp[g=u,g=w]   ! more than 1 target grid
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2     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
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      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
 load temp[g=x]       ! g=user-or-pseudo-var not allowed
- getgrid 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 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
 set mode/last ignore
  
 ! valid syntax tests
 load temp
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- found   TEMP     M:  1 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  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 PS3DT2          PSXT      PSYT      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
+ found   TEMP     M:  1 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
 load temp[g=u]
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ reading TEMP     M:  2 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
  regrid XY
- regrid  TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:  3 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
 load temp[g=u at lin]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- found   TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ found   TEMP     M:  3 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
 load temp[g=u at ave,gy=@asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @AVE
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  4 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  5 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  4 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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    106  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M:  5 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M:  4 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
 load temp[g=u at lin,gy=@asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @LIN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  4 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  6 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  4 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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    106  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M:  6 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M:  4 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
 load temp[g=u,gx=@ave,gy=@asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- found   TEMP     M:  5 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ found   TEMP     M:  5 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
 load temp[gx=u]  		! changed V4.20 --> implicit regrid
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
+ 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
+ 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
- found   TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  4 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
+ 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
 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     NORMAL    NORMAL
- -DELETE TEMP     M:  4 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- found   TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- found   TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid (G009)          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
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ found   TEMP     M:  3 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:  3 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  
              TEMP[G=U] - TEMP[G=U at AVE,GX=U at LIN,GY=U at LIN,GZ=U at LIN,GT=U at LIN]
              LONGITUDE: 130W to 125W
@@ -15269,18 +15115,18 @@ 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
  Mean    value: 0 (unweighted average)
  Standard deviation: 0
 stat temp[g=u,gx=@ave] - temp[gx=@ave,g=u]    ! == 0
- -DELETE EX#1     M:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
- found   TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  4 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  7 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  4 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- found   TEMP     M:  7 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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    106  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M:  7 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M:  4 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
+ found   TEMP     M:  7 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  
              TEMP[G=U,GX=@AVE] - TEMP[GX=@AVE,G=U]
              LONGITUDE: 130W to 125W
@@ -15300,15 +15146,15 @@ stat temp[g=u,gx=@ave] - temp[gx=@ave,g=u]    ! == 0
  
 ! basic regrid tests
 LIST temp[g=u at ave]
- -DELETE EX#1     M:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @AAV
- found   TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ found   TEMP     M:  2 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
  regrid XY
- regrid  TEMP     M:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at AAV, on Y at AAV
              FILENAME : gtsa056_1.cdf
@@ -15342,15 +15188,15 @@ LIST temp[g=u at ave]
  0.33N / 46:  23.55  23.54  23.61  23.81  24.12  24.30
  0     / 45:  23.54  23.47  23.45  23.53  23.74  23.92
 LIST temp[g=u,gx=u at ave]	! V4.20 mod
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- found   TEMP     M:  7 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:  7 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at AVE, on Y at LIN
              FILENAME : gtsa056_1.cdf
@@ -15384,20 +15230,20 @@ LIST temp[g=u,gx=u at ave]	! V4.20 mod
  0.33N / 46:  23.55  23.54  23.61  23.81  24.12  24.30
  0     / 45:  23.54  23.47  23.45  23.53  23.74  23.92
 LIST temp[g=u,gy=u at ave]	! V4.20 mod
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
- found   TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  8 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  9 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  8 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M:  2 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
+ regrid  TEMP     M:  8 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M:  9 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M:  8 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at LIN, on Y at AVE
              FILENAME : gtsa056_1.cdf
@@ -15431,15 +15277,15 @@ LIST temp[g=u,gy=u at ave]	! V4.20 mod
  0.33N / 46:  23.55  23.54  23.61  23.81  24.12  24.30
  0     / 45:  23.54  23.47  23.45  23.53  23.74  23.92
 LIST temp[g=u,gz=u at ave]	! V4.20 mod
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- found   TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:  3 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15473,15 +15319,15 @@ LIST temp[g=u,gz=u at ave]	! V4.20 mod
  0.33N / 46:  23.55  23.54  23.61  23.81  24.12  24.30
  0     / 45:  23.54  23.47  23.45  23.53  23.74  23.92
 LIST temp[g=u,gt=u at ave]	! V4.20 mod, etc --> many more similar syntax chgs
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- found   TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:  3 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15516,11 +15362,11 @@ LIST temp[g=u,gt=u at ave]	! V4.20 mod, etc --> many more similar syntax chgs
  0     / 45:  23.54  23.47  23.45  23.53  23.74  23.92
  
 LIST temp[g=u]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- found   TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ found   TEMP     M:  3 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15554,16 +15400,16 @@ LIST temp[g=u]
  0.33N / 46:  23.55  23.54  23.61  23.81  24.12  24.30
  0     / 45:  23.54  23.47  23.45  23.53  23.74  23.92
 LIST temp[g=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  8 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 10 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  8 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ found   TEMP     M:  2 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
+ regrid  TEMP     M:  8 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M: 10 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M:  8 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at ASN, on Y at ASN
              FILENAME : gtsa056_1.cdf
@@ -15597,20 +15443,20 @@ LIST temp[g=u at asn]
  0.33N / 46:  23.54  23.48  23.46  23.52  23.76  24.05
  0     / 45:  23.62  23.51  23.42  23.38  23.48  23.69
 LIST temp[g=u,gx=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @LIN
- found   TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  8 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 11 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  8 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M:  2 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
+ regrid  TEMP     M:  8 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M: 11 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M:  8 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at ASN, on Y at LIN
              FILENAME : gtsa056_1.cdf
@@ -15644,15 +15490,15 @@ LIST temp[g=u,gx=u at asn]
  0.33N / 46:  23.57  23.54  23.55  23.66  23.97  24.27
  0     / 45:  23.58  23.50  23.44  23.45  23.62  23.87
 LIST temp[g=u,gy=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- found   TEMP     M:  6 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:  6 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at LIN, on Y at ASN
              FILENAME : gtsa056_1.cdf
@@ -15686,15 +15532,15 @@ LIST temp[g=u,gy=u at asn]
  0.33N / 46:  23.51  23.47  23.49  23.64  23.90  24.09
  0     / 45:  23.57  23.47  23.40  23.43  23.58  23.74
 LIST temp[g=u,gz=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- found   TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:  3 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15728,15 +15574,15 @@ LIST temp[g=u,gz=u at asn]
  0.33N / 46:  23.55  23.54  23.61  23.81  24.12  24.30
  0     / 45:  23.54  23.47  23.45  23.53  23.74  23.92
 LIST temp[g=u,gt=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- found   TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:  3 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15772,16 +15618,16 @@ LIST temp[g=u,gt=u at asn]
  
 ! Z and T axes different
 LIST temp[g=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ 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
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- reading TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 12 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M:  8 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 12 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
  regrid XY
- regrid  TEMP     M: 13 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 12 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 13 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 12 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at AAV, on Y at AAV, on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -15815,19 +15661,19 @@ LIST temp[g=g5day at ave]
  0.33N / 46:  23.56  23.57  23.66  23.87  24.13  24.26
  0     / 45:  23.54  23.48  23.48  23.57  23.76  23.89
 LIST temp[g=g5day,gx=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 13 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  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
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ -DELETE TEMP     M: 13 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> YNTERMED         @LIN
- found   TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 13 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 12 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 13 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 13 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 12 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 13 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 12 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 13 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 13 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 12 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at AVE, on Y at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -15861,18 +15707,18 @@ LIST temp[g=g5day,gx=g5day at ave]
  0.33N / 46:  23.56  23.55  23.63  23.85  24.14  24.29
  0     / 45:  23.54  23.47  23.46  23.56  23.76  23.92
 LIST temp[g=g5day,gy=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> YNTERMED         @LIN
- found   TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 12 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 14 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 12 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 12 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 14 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 12 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 14 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 12 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 12 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 14 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at LIN, on Y at AVE, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -15906,16 +15752,16 @@ LIST temp[g=g5day,gy=g5day at ave]
  0.33N / 46:  23.56  23.55  23.63  23.85  24.14  24.29
  0     / 45:  23.54  23.47  23.46  23.56  23.76  23.92
 LIST temp[g=g5day,gz=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
- found   TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 14 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 14 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
  regrid XY
- regrid  TEMP     M: 15 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 14 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 15 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 14 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY
              FILENAME : gtsa056_1.cdf
@@ -15949,16 +15795,16 @@ LIST temp[g=g5day,gz=g5day at ave]
  0.33N / 46:  23.56  23.55  23.63  23.85  24.14  24.29
  0     / 45:  23.54  23.47  23.46  23.56  23.76  23.92
 LIST temp[g=g5day,gt=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 14 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 14 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
  regrid XY
- regrid  TEMP     M: 16 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 14 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 16 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 14 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at LIN, on Y at LIN, on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -15993,10 +15839,10 @@ LIST temp[g=g5day,gt=g5day at ave]
  0     / 45:  23.54  23.48  23.48  23.57  23.76  23.89
  
 LIST temp[g=g5day]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- found   TEMP     M: 15 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
+ found   TEMP     M: 15 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY
              FILENAME : gtsa056_1.cdf
@@ -16030,18 +15876,18 @@ LIST temp[g=g5day]
  0.33N / 46:  23.56  23.55  23.63  23.85  24.14  24.29
  0     / 45:  23.54  23.47  23.46  23.56  23.76  23.92
 LIST temp[g=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on T: TEMP --> YNTERMED         @ASN
- found   TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 14 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 17 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 14 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 14 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 17 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 14 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ regrid  TEMP     M: 17 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 14 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 14 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 17 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at ASN, on Y at ASN, on T at ASN
              FILENAME : gtsa056_1.cdf
@@ -16075,18 +15921,18 @@ LIST temp[g=g5day at asn]
  0.33N / 46:  23.52  23.47  23.42  23.37  23.46  23.73
  0     / 45:  23.61  23.53  23.43  23.34  23.30  23.45
 LIST temp[g=g5day,gx=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> YNTERMED         @LIN
- found   TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 17 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 18 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 17 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 17 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 18 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 17 dset:   1 I:    100    105  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 18 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 17 dset:   1 I:    100    105  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 17 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 18 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at ASN, on Y at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16120,18 +15966,18 @@ LIST temp[g=g5day,gx=g5day at asn]
  0.33N / 46:  23.57  23.54  23.57  23.70  24.00  24.28
  0     / 45:  23.58  23.50  23.45  23.47  23.64  23.88
 LIST temp[g=g5day,gy=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on T: TEMP --> YNTERMED         @LIN
- found   TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 18 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 19 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 18 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 18 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 19 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 18 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3
+ regrid  TEMP     M: 19 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 18 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 18 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 19 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at LIN, on Y at ASN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16165,10 +16011,10 @@ LIST temp[g=g5day,gy=g5day at asn]
  0.33N / 46:  23.51  23.48  23.51  23.67  23.93  24.09
  0     / 45:  23.56  23.47  23.41  23.45  23.60  23.75
 LIST temp[g=g5day,gz=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- found   TEMP     M: 15 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
+ found   TEMP     M: 15 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY
              FILENAME : gtsa056_1.cdf
@@ -16202,16 +16048,16 @@ LIST temp[g=g5day,gz=g5day at asn]
  0.33N / 46:  23.56  23.55  23.63  23.85  24.14  24.29
  0     / 45:  23.54  23.47  23.46  23.56  23.76  23.92
 LIST temp[g=g5day,gt=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @ASN
- found   TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 19 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 19 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
  regrid XY
- regrid  TEMP     M: 20 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 19 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 20 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 19 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at LIN, on Y at LIN, on T at ASN
              FILENAME : gtsa056_1.cdf
@@ -16247,19 +16093,19 @@ LIST temp[g=g5day,gt=g5day at asn]
  
 ! all 4 axes different
 LIST temp[g=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M: 19 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 22 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 21 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 19 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 21 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 22 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 21 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 21 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 22 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 21 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 22 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at AAV, on Y at AAV, on Z at AVE, on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -16271,22 +16117,22 @@ LIST temp[g=g5_10 at ave]
  20-JAN-1982 00 / 2:  23.88  23.97  24.15  24.37  24.63
  25-JAN-1982 00 / 3:  23.89  23.98  24.17  24.40  24.65
 LIST temp[g=g5_10,gx=g5_10 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 21 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  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
- eval    EX#1     C:  4 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ -DELETE TEMP     M: 21 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M: 19 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 22 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 21 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 22 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 22 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 21 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 19 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 21 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 22 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 21 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 21 dset:   1 I:     95    106  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 22 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 22 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 21 dset:   1 I:     95    106  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at AVE, on Y at LIN, on Z at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16298,21 +16144,21 @@ LIST temp[g=g5_10,gx=g5_10 at ave]
  20-JAN-1982 00 / 2:  23.88  23.98  24.15  24.38  24.63
  25-JAN-1982 00 / 3:  23.88  23.97  24.15  24.39  24.64
 LIST temp[g=g5_10,gy=g5_10 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M: 19 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 23 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 21 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 23 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 23 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 21 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 19 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 21 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 23 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 21 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 21 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 23 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 23 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 21 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at AVE, on Z at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16324,19 +16170,19 @@ LIST temp[g=g5_10,gy=g5_10 at ave]
  20-JAN-1982 00 / 2:  23.75  23.75  23.85  24.01  24.21
  25-JAN-1982 00 / 3:  23.75  23.76  23.85  24.02  24.21
 LIST temp[g=g5_10,gz=g5_10 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M: 19 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 24 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 21 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 19 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 21 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 24 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 21 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 21 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 24 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 21 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 24 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at LIN, on Z at AVE, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16348,19 +16194,19 @@ LIST temp[g=g5_10,gz=g5_10 at ave]
  20-JAN-1982 00 / 2:  23.75  23.75  23.85  24.01  24.21
  25-JAN-1982 00 / 3:  23.75  23.76  23.85  24.02  24.21
 LIST temp[g=g5_10,gt=g5_10 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- found   TEMP     M: 19 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 24 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 25 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 24 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 19 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 24 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 25 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 24 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 24 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 25 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 24 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 25 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at LIN, on Z at LIN, on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -16373,21 +16219,21 @@ LIST temp[g=g5_10,gt=g5_10 at ave]
  25-JAN-1982 00 / 3:  23.75  23.76  23.87  24.03  24.23
  
 LIST temp[g=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M: 25 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 26 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 27 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 26 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 26 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 27 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 27 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 26 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 25 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ regrid  TEMP     M: 26 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ regrid  TEMP     M: 27 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 26 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 26 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 27 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 27 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 26 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at ASN, on Y at ASN, on Z at ASN, on T at ASN
              FILENAME : gtsa056_1.cdf
@@ -16399,21 +16245,21 @@ LIST temp[g=g5_10 at asn]
  20-JAN-1982 00 / 2:  29.59  29.58  29.58  29.57  29.56
  25-JAN-1982 00 / 3:  29.58  29.57  29.57  29.55  29.54
 LIST temp[g=g5_10,gx=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 26 dset:   1 I:   12   12  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 28 dset:   1 I:   12   12  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 29 dset:   1 I:   12   12  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 28 dset:   1 I:   12   12  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 28 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 29 dset:   1 I:   12   12  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 29 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 28 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 26 dset:   1 I:     12     12  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 28 dset:   1 I:     12     12  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 29 dset:   1 I:     12     12  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 28 dset:   1 I:     12     12  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 28 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 29 dset:   1 I:     12     12  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 29 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 28 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at ASN, on Y at LIN, on Z at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16425,21 +16271,21 @@ LIST temp[g=g5_10,gx=g5_10 at asn]
  20-JAN-1982 00 / 2:  29.57  29.57  29.55  29.53  29.53
  25-JAN-1982 00 / 3:  29.56  29.55  29.54  29.51  29.51
 LIST temp[g=g5_10,gy=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M: 19 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 28 dset:   1 I:  100  101  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 30 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 28 dset:   1 I:  100  101  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 28 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 30 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 30 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 28 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 19 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 28 dset:   1 I:    100    101  J:   45   49  K:    1    2  L:      2      3
+ regrid  TEMP     M: 30 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 28 dset:   1 I:    100    101  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 28 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 30 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 30 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 28 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at ASN, on Z at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16451,19 +16297,19 @@ LIST temp[g=g5_10,gy=g5_10 at asn]
  20-JAN-1982 00 / 2:  23.78  23.72  23.78  23.91  24.10
  25-JAN-1982 00 / 3:  23.77  23.72  23.79  23.92  24.11
 LIST temp[g=g5_10,gz=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M: 19 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 28 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 31 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 28 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 19 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 28 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ regrid  TEMP     M: 31 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 28 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 28 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 31 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 28 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 31 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at LIN, on Z at ASN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16475,19 +16321,19 @@ LIST temp[g=g5_10,gz=g5_10 at asn]
  20-JAN-1982 00 / 2:  23.96  23.95  24.02  24.15  24.32
  25-JAN-1982 00 / 3:  23.96  23.96  24.03  24.16  24.34
 LIST temp[g=g5_10,gt=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- found   TEMP     M: 19 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 31 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 32 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 31 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 19 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 31 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 32 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 31 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 31 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 32 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 31 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 32 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at LIN, on Z at LIN, on T at ASN
              FILENAME : gtsa056_1.cdf
@@ -16504,210 +16350,210 @@ SET MODE IGNORE	! V.5 change
 canc reg
 set reg/l=1:3  ! x,y,z unspecified
 load temp
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DT2          PSXT      PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
- reading TEMP     M: 32 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
+ reading TEMP     M: 32 dset:   1 I:      1    160  J:    5   89  K:    1    2  L:      1      3
 load temp[g=u]
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
  strip regrid on X: TEMP --> PS3DU2           @LIN
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
- found   TEMP     M: 32 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
+ found   TEMP     M: 32 dset:   1 I:      1    160  J:    5   89  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
  regrid XY
- regrid  TEMP     M: 34 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 34 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
 load temp[g=u at lin]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
  strip regrid on X: TEMP --> PS3DU2           @LIN
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
- found   TEMP     M: 33 dset:   1 I:    1  161  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
+ found   TEMP     M: 33 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
  regrid XY
- regrid  TEMP     M: 36 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 36 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
  
 load temp[g=u at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
  strip regrid on X: TEMP --> PS3DU2           @AAV
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
- found   TEMP     M: 35 dset:   1 I:    1  161  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
+ found   TEMP     M: 35 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
  regrid XY
- regrid  TEMP     M: 38 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 38 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
 load temp[g=u,gx=u at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @AVE
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
  strip regrid on Y: TEMP --> XNTERMED         @LIN
- found   TEMP     M: 37 dset:   1 I:    1  161  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 39 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
- regrid  TEMP     M: 41 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 40 dset:   1 I:    1  161  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M: 37 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M: 39 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
+ regrid  TEMP     M: 41 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ -DELETE TEMP     M: 40 dset:   1 I:      1    161  J:    1  100  K:    1    2  L:      1      3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
 load temp[g=u,gy=u at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @LIN
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
  strip regrid on Y: TEMP --> XNTERMED         @AVE
- found   TEMP     M: 37 dset:   1 I:    1  161  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 40 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
- regrid  TEMP     M: 43 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 42 dset:   1 I:    1  161  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M: 37 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M: 40 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
+ regrid  TEMP     M: 43 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ -DELETE TEMP     M: 42 dset:   1 I:      1    161  J:    1  100  K:    1    2  L:      1      3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  
 load temp[g=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
  strip regrid on X: TEMP --> PS3DU2           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 37 dset:   1 I:    1  161  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 42 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 44 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 42 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 37 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M: 42 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ regrid  TEMP     M: 44 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ -DELETE TEMP     M: 42 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3  M: -999 -999  N: -999 -999
 load temp[g=u,gx=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @LIN
- found   TEMP     M: 37 dset:   1 I:    1  161  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 42 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 45 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 42 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M: 37 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M: 42 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ regrid  TEMP     M: 45 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ -DELETE TEMP     M: 42 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
 load temp[g=u,gy=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @LIN
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 37 dset:   1 I:    1  161  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 42 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
- regrid  TEMP     M: 47 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 46 dset:   1 I:    1  161  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M: 37 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M: 42 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
+ regrid  TEMP     M: 47 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ -DELETE TEMP     M: 46 dset:   1 I:      1    161  J:    1  100  K:    1    2  L:      1      3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  
 canc reg
 use gtsa056_2		!kob 4/99
 set reg/i=101:105/j=41:42  ! z,t unspecified
 load temp[g=u]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
  strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M: 46 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ reading TEMP     M: 46 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M: 48 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 48 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
  
 load temp[g=u at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
  strip regrid on X: TEMP --> PS3DU1           @AAV
- found   TEMP     M: 46 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M: 46 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M: 49 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 49 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
 load temp[g=u,gz=u at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip regrid on X: TEMP --> PS3DU1           @LIN
- found   TEMP     M: 46 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M: 46 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M: 50 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ regrid  TEMP     M: 50 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
 load temp[g=u,gt=u at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip regrid on X: TEMP --> PS3DU1           @LIN
- found   TEMP     M: 46 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M: 46 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M: 51 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ regrid  TEMP     M: 51 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  
 load temp[g=u at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 46 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 52 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 53 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 52 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M: 46 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
+ regrid  TEMP     M: 52 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ regrid  TEMP     M: 53 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ -DELETE TEMP     M: 52 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168  M: -999 -999  N: -999 -999
 load temp[g=u,gz=u at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip regrid on X: TEMP --> PS3DU1           @LIN
- found   TEMP     M: 46 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M: 46 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M: 52 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ regrid  TEMP     M: 52 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
 load temp[g=u,gt=u at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip regrid on X: TEMP --> PS3DU1           @LIN
- found   TEMP     M: 46 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M: 46 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M: 54 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ regrid  TEMP     M: 54 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
 SET MODE/LAST IGNORE	! V.5 change
  
 ! plot verifications
@@ -16719,250 +16565,250 @@ set window/size=.5/aspect=.4 1
 use gtsa056_1 		!kob 4/99
 set region/x=130E:90W/y=0/z=5/t=21-JAN-1982
 plot temp
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     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 PS3DT2          PSXT      PSYT      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    1  140  J:   45   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- found   TEMP     M: 37 dset:   1 I:    1  161  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:      1    140  J:   45   46  K:    1    1  L:      2      3
+ found   TEMP     M: 37 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 1    complete
 plot/over temp[g=u]
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      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 PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
- found   TEMP     M: 36 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
+ found   TEMP     M: 36 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 2    complete
 plot/over temp[g=g5day]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
- reading TEMP     M: 60 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 61 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 60 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      5
+ regrid  TEMP     M: 61 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3
  regrid XY
- regrid  TEMP     M: 62 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 61 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ regrid  TEMP     M: 62 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 61 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 3    complete
 plot/over temp[g=g5_10]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  7 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
- strip moduloing TEMP on X axis:     0   141 dset:   1
+ strip moduloing TEMP on X axis:        0      141 dset:   1
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 65 dset:   1 I:    1  141  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 66 dset:   1 I:    1  141  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 67 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 66 dset:   1 I:    1  141  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   141 dset:   1
+ reading TEMP     M: 65 dset:   1 I:      1    141  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 66 dset:   1 I:      1    141  J:   44   46  K:    1    2  L:      2      3
+ regrid  TEMP     M: 67 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 66 dset:   1 I:      1    141  J:   44   46  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      141 dset:   1
  regrid XY
- regrid  TEMP     M: 68 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 66 dset:   1 I:    0  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 68 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 66 dset:   1 I:      0    141  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 4    complete
 plot/over temp[g=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
- found   TEMP     M: 38 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
+ found   TEMP     M: 38 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 5    complete
 plot/over temp[g=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
  strip regrid on X: TEMP --> G5DAY            @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M: 65 dset:   1 I:    1  141  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 74 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 65 dset:   1 I:      1    141  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 74 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3
  regrid XY
- regrid  TEMP     M: 75 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 74 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ regrid  TEMP     M: 75 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 74 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 6    complete
 plot/over temp[g=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  7 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AAV
- strip moduloing TEMP on X axis:     0   146 dset:   1
+ strip moduloing TEMP on X axis:        0      146 dset:   1
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M: 78 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 79 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 80 dset:   1 I:    1  146  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 79 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   146 dset:   1
+ reading TEMP     M: 78 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 79 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      3
+ regrid  TEMP     M: 80 dset:   1 I:      1    146  J:   44   46  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 79 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      146 dset:   1
  regrid XY
- regrid  TEMP     M: 81 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 79 dset:   1 I:    0  146  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 81 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 79 dset:   1 I:      0    146  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 7    complete
 plot/over temp[g=u at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
- found   TEMP     M: 44 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
+ found   TEMP     M: 44 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 8    complete
 plot/over temp[g=g5day at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
  strip regrid on X: TEMP --> G5DAY            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on T: TEMP --> YNTERMED         @ASN
- found   TEMP     M: 78 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 87 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 88 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 87 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 87 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 88 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ found   TEMP     M: 78 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 87 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ regrid  TEMP     M: 88 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 87 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 87 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 88 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 9    complete
 plot/over temp[g=u,gx=u at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  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
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip moduloing TEMP on X axis:     0   140 dset:   1
- found   TEMP     M: 41 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ strip moduloing TEMP on X axis:        0      140 dset:   1
+ found   TEMP     M: 41 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing moduloing TEMP on X axis:        1      140 dset:   1
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 10   complete
 plot/over temp[g=g5day,gx=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
  strip regrid on X: TEMP --> G5DAY            @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> YNTERMED         @LIN
- found   TEMP     M: 78 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 94 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 95 dset:   1 I:    1  141  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 94 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 94 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 95 dset:   1 I:    1  141  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ found   TEMP     M: 78 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 94 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3
+ regrid  TEMP     M: 95 dset:   1 I:      1    141  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 94 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 94 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 95 dset:   1 I:      1    141  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 11   complete
 plot/over temp[g=g5_10,gx=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  7 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AVE
- strip moduloing TEMP on X axis:     0   146 dset:   1
+ strip moduloing TEMP on X axis:        0      146 dset:   1
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M: 78 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 98 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 99 dset:   1 I:    1  146  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 98 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 98 dset:   1 I:    1  146  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 99 dset:   1 I:    1  146  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   146 dset:   1
- regrid  TEMP     M:100 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 99 dset:   1 I:    0  146  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 78 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 98 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      3
+ regrid  TEMP     M: 99 dset:   1 I:      1    146  J:   44   46  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 98 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 98 dset:   1 I:      1    146  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 99 dset:   1 I:      1    146  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      146 dset:   1
+ regrid  TEMP     M:100 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 99 dset:   1 I:      0    146  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 12   complete
 plot/over temp[g=g5_10 at asn]   ! invalid interpretation of data
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  7 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- found   TEMP     M: 78 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:103 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:104 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:103 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:103 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:104 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:104 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:103 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 78 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M:103 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ regrid  TEMP     M:104 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M:103 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:103 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M:104 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:104 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M:103 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
@@ -16972,205 +16818,205 @@ PPL plot 13   complete
 ! Y axis
 set region/x=180/y=20s:20n/z=5/t=21-JAN-1982
 plot temp
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DT2          PSXT      PSYT      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- found   TEMP     M: 37 dset:   1 I:    1  161  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:     50     51  J:    5   88  K:    1    1  L:      2      3
+ found   TEMP     M: 37 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 14   complete
 plot/over temp[g=u]
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      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 PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- found   TEMP     M: 36 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ found   TEMP     M: 36 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 15   complete
 plot/over temp[g=g5day]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
- reading TEMP     M:110 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:111 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M:110 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      5
+ regrid  TEMP     M:111 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3
  regrid XY
- regrid  TEMP     M:112 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:111 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:112 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:111 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 16   complete
 plot/over temp[g=g5_10]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M:113 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:114 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:115 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:114 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M:113 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M:114 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      3
+ regrid  TEMP     M:115 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3
+ -DELETE TEMP     M:114 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:114 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:115 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:114 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:115 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 17   complete
 plot/over temp[g=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- found   TEMP     M: 38 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ found   TEMP     M: 38 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 18   complete
 plot/over temp[g=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M:113 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:118 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:113 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M:118 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3
  regrid XY
- regrid  TEMP     M:119 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:118 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:119 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:118 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 19   complete
 plot/over temp[g=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M:120 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:121 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:122 dset:   1 I:   45   56  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:121 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M:120 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M:121 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      3
+ regrid  TEMP     M:122 dset:   1 I:     45     56  J:    5   89  K:    1    1  L:      2      3
+ -DELETE TEMP     M:121 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:121 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:122 dset:   1 I:   45   56  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:121 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:122 dset:   1 I:     45     56  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 20   complete
 plot/over temp[g=u at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- found   TEMP     M: 44 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ found   TEMP     M: 44 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 21   complete
 plot/over temp[g=g5day at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on T: TEMP --> YNTERMED         @ASN
- found   TEMP     M:120 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:125 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:126 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:125 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:125 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:126 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:120 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M:125 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ regrid  TEMP     M:126 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:125 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:125 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:126 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 22   complete
 plot/over temp[g=u,gy=u at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  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
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- found   TEMP     M: 43 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M: 43 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 23   complete
 plot/over temp[g=g5day,gy=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> YNTERMED         @LIN
- found   TEMP     M:120 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:128 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:129 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:128 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:128 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:129 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:120 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M:128 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3
+ regrid  TEMP     M:129 dset:   1 I:     50     51  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:128 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:128 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:129 dset:   1 I:     50     51  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 24   complete
 plot/over temp[g=g5_10,gy=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M:120 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:130 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:131 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:130 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:130 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:131 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:131 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:130 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:120 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M:130 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      3
+ regrid  TEMP     M:131 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3
+ -DELETE TEMP     M:130 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:130 dset:   1 I:     50     51  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:131 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:131 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:130 dset:   1 I:     50     51  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 25   complete
 plot/over temp[g=g5_10 at asn]  ! invalid interpretation of data
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- found   TEMP     M: 37 dset:   1 I:    1  161  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:133 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:134 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:133 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:133 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:134 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:134 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:133 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 37 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M:133 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ regrid  TEMP     M:134 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:133 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:133 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:134 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:134 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:133 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
@@ -17180,248 +17026,248 @@ PPL plot 26   complete
 use gtsa056_2	!kob  4/99
 set region/x=180W/y=0/z=5/t=21-JAN-1982:13-JUN-1983
 load temp[i=50:51,j=45:56,k=1:2,l=1:172]  ! preload to save time
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DT1          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     1   172 dset:   2
- reading TEMP     M:136 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DT1          PSXT      PSYT      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing TEMP on T axis:        1      172 dset:   2
+ reading TEMP     M:136 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
 plot temp
- dealloc  dynamic grid PS3DT1          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DT1          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT1          PSXT      PSYT      PSZT      TIME1
+ 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 PS3DT1          PSXT      PSYT      PSZT      TIME1
  strip --> EX#1[Y=0 at ITP,D=2]
  strip --> EX#1[X=180E at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- found   TEMP     M:137 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      3    170
+ found   TEMP     M:137 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
  doing --> TEMP[X=180E at ITP,D=2]
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 27   complete
 plot/over temp[g=u]
- dealloc  dynamic grid PS3DT1          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT1          PSXT      PSYT      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:140 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
+ reading TEMP     M:140 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      3    168
  regrid XY
- regrid  TEMP     M:141 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ regrid  TEMP     M:141 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    168
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:143 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
+ reading TEMP     M:143 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      1      2
  regrid XY
- regrid  TEMP     M:144 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ regrid  TEMP     M:144 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      1      2
+ doing moduloing TEMP on T axis:        1        2 dset:   2
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 28   complete
 plot/over temp[g=g5day]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:146 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:148 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ strip moduloing TEMP on T axis:        2      171 dset:   2
+ reading TEMP     M:146 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
+ regrid  TEMP     M:148 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M:149 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:148 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:149 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:148 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 29   complete
 plot/over temp[g=g5_10]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- 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
+ 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
  strip --> EX#1[Z=5 at ITP,D=2]
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:150 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:152 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:153 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:152 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ strip moduloing TEMP on T axis:        2      171 dset:   2
+ reading TEMP     M:150 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
+ regrid  TEMP     M:152 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    104
+ regrid  TEMP     M:153 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M:152 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:152 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:153 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:152 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:153 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
  doing --> TEMP[Z=5 at ITP,D=2]
 setting up plot
 PPL plot 30   complete
 plot/over temp[g=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @AAV
- found   TEMP     M:151 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
+ found   TEMP     M:151 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    171
  regrid XY
- regrid  TEMP     M:155 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ regrid  TEMP     M:155 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    168
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @AAV
- found   TEMP     M:150 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M:150 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M:157 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ regrid  TEMP     M:157 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      1      2
+ doing moduloing TEMP on T axis:        1        2 dset:   2
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 31   complete
 plot/over temp[g=g5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAY            @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M:151 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M:159 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:151 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:159 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M:160 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:159 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:160 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:159 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 32   complete
 plot/over temp[g=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- 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
+ 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
  strip --> EX#1[Z=5 at ITP,D=2]
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10            @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:161 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:163 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:164 dset:   2 I:   45   56  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:163 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ strip moduloing TEMP on T axis:        2      171 dset:   2
+ reading TEMP     M:161 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
+ regrid  TEMP     M:163 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    104
+ regrid  TEMP     M:164 dset:   2 I:     45     56  J:   44   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M:163 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:163 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:164 dset:   2 I:   45   56  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:163 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:164 dset:   2 I:     45     56  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
  doing --> TEMP[Z=5 at ITP,D=2]
 setting up plot
 PPL plot 33   complete
 plot/over temp[g=u at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M:162 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M:166 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M:167 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:166 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ found   TEMP     M:162 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:166 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    168
+ regrid  TEMP     M:167 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    168
+ -DELETE TEMP     M:166 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    168  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M:161 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M:168 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid  TEMP     M:169 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:168 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ found   TEMP     M:161 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      1    168
+ regrid  TEMP     M:168 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      1      2
+ regrid  TEMP     M:169 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      1      2
+ -DELETE TEMP     M:168 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      1      2  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on T axis:        1        2 dset:   2
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 34   complete
 plot/over temp[g=g5_10 at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
  strip --> EX#1[Z=5 at ITP,D=2]
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M:170 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:171 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:172 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:171 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:171 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:172 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:172 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:171 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ reading TEMP     M:170 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ regrid  TEMP     M:171 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ regrid  TEMP     M:172 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:171 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:171 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:172 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:172 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:171 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
  doing --> TEMP[Z=5 at ITP,D=2]
 setting up plot
 PPL plot 35   complete
 plot/over temp[g=u,gt=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- found   TEMP     M:142 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    170
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ found   TEMP     M:142 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    170
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 36   complete
 plot/over temp[g=g5day,gt=g5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M:162 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M:175 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:162 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:175 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M:176 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:175 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:176 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:175 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 37   complete
 plot/over temp[g=g5_10,gt=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- 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
+ 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
  strip --> EX#1[Z=5 at ITP,D=2]
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- found   TEMP     M:162 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M:177 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:178 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:177 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:162 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:177 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    104
+ regrid  TEMP     M:178 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M:177 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:177 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:178 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:177 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:178 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
  doing --> TEMP[Z=5 at ITP,D=2]
 setting up plot
 PPL plot 38   complete
 plot/over temp[g=g5day,gt=g5day at asn]  ! invalid interpretation of data
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @ASN
- found   TEMP     M:162 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M:180 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:162 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:180 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M:181 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:180 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:181 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:180 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 39   complete
@@ -17439,24 +17285,24 @@ let a1 = x[gx=x1pt]	! single point
 let a2 = x[gx=x2pt]
  
 list a1[gx=xoffset at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- 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    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
- eval    A1       C:  7 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:182 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:184 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ 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
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at AVE
              SUBSET   : 7 points (X)
@@ -17468,19 +17314,19 @@ list a1[gx=xoffset at ave]
  6.1 / 6:   ....
  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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:184 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -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
+ -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
+ 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
- found   A1       M:183 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:184 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -17492,18 +17338,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    NORMAL    NORMAL
- -DELETE A1       M:184 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          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
+ 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
- found   A1       M:183 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:184 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : Variance of X[GX=X1PT]
                         regrid: 1 delta on X at VAR
              SUBSET   : 7 points (X)
@@ -17516,25 +17362,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    NORMAL    NORMAL
- -DELETE A1       M:184 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          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
+ 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
- eval    A2       C:  7 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:184 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:185 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ 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
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at AVE
              SUBSET   : 7 points (X)
@@ -17546,19 +17392,19 @@ list a2[gx=xoffset at ave]
  6.1 / 6:  6.000
  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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:185 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -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
+ -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
+ 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
- found   A2       M:182 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:185 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -17570,18 +17416,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    NORMAL    NORMAL
- -DELETE A2       M:185 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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
+ 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
- found   A2       M:182 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:185 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : Variance of X[GX=X2PT]
                         regrid: 1 delta on X at VAR
              SUBSET   : 7 points (X)
@@ -17599,42 +17445,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    NORMAL    NORMAL
- -DELETE A2       M:185 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:182 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:183 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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
+ -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
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
  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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:183 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G012)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:182 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:182 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G012)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:183 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:183 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:182 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
+ 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
+ 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
+ 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
+ -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
+ 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
              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)
@@ -17648,21 +17494,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    NORMAL    NORMAL
- -DELETE A1       M:182 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          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
+ 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
  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  M: -999 -999  N: -999 -999
- regrid  A1       M:182 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:183 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
+ 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
              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)
@@ -17676,21 +17522,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    NORMAL    NORMAL
- -DELETE A1       M:183 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          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
+ 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
  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  M: -999 -999  N: -999 -999
- regrid  A1       M:183 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:182 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
+ 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
              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)
@@ -17705,35 +17551,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    NORMAL    NORMAL
- -DELETE A1       M:182 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X2PT      Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          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
+ 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
  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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G012)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:182 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G013)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:183 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:183 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G013)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:182 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G012)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:182 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:183 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
+ 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
+ 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
+ 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
+ -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
+ 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
              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)
@@ -17747,21 +17593,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    NORMAL    NORMAL
- -DELETE A2       M:183 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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
+ 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
  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  M: -999 -999  N: -999 -999
- regrid  A2       M:183 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:182 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
+ 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
              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)
@@ -17776,21 +17622,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    NORMAL    NORMAL
- -DELETE A2       M:182 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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
+ 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
  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  M: -999 -999  N: -999 -999
- regrid  A2       M:182 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:183 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
+ 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
              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)
@@ -17811,33 +17657,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    NORMAL    NORMAL
- -DELETE A2       M:183 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:184 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:185 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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
+ -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
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
- eval    A1       C:  7 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:185 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:183 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ 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
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -17849,26 +17695,26 @@ list a1[gx=xoffset at max]
  6.1 / 6:   ....
  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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:183 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -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
+ -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
+ 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
- eval    A2       C:  7 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:183 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:182 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ 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
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -17880,26 +17726,26 @@ list a2[gx=xoffset at max]
  6.1 / 6:  6.000
  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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:182 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -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
+ -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
+ 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
- eval    A4       C:  7 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:182 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A4       M:186 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ 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
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -17911,19 +17757,19 @@ list a4[gx=xoffset at max]
  6.1 / 6:  6.500
  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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A4       M:186 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -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
+ -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
+ 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
- found   A4       M:183 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A4       M:186 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at MIN
              SUBSET   : 7 points (X)
@@ -17935,18 +17781,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    NORMAL    NORMAL
- -DELETE A4       M:186 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G012)          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
+ 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
- found   A4       M:183 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A4       M:186 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -17963,25 +17809,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    NORMAL    NORMAL
- -DELETE A4       M:186 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G012)          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
+ 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
- eval    A5       C:  7 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:186 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A5       M:187 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ 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
              VARIABLE : X[GX=X5_EDGES]
                         regrid: 1 delta on X at MAX
              SUBSET   : 5 points (X)
@@ -17991,35 +17837,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    NORMAL    NORMAL
- -DELETE A5       M:187 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A5       M:182 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:186 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A4       M:183 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:185 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:184 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G013)          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
+ -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
+ -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
+ -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
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
- eval    A5       C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:184 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A5       M:183 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ 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
              VARIABLE : X[GX=X5_EDGES, I=3]
                         regrid: 1 delta on X at MAX
              SUBSET   : 5 points (X)
@@ -18029,35 +17875,35 @@ list a5[gx=x5 at max]
  4   / 4:   ....
  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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A5       M:183 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -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
+ -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
+ 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
- found   A5       M:185 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A5       M:183 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
              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    NORMAL    NORMAL
- -DELETE A5       M:183 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          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
+ 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
- found   A5       M:185 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : X[GX=X5_EDGES, I=3]
                         regrid: 1 delta on X at MAX
              X        : 4
@@ -18068,19 +17914,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    NORMAL    NORMAL
- -DELETE A5       M:183 dset:   0 I:    4    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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      NORMAL    NORMAL
- dealloc  dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- allocate dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- allocate dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- eval    ATIME    C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- pseudo  T        M:183 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          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
+ 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
+ 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
              VARIABLE : T[GT=TDAY]
              SUBSET   : 5 points (TIME)
  01-JAN-1990 00 / 1:  32493.
@@ -18097,21 +17943,19 @@ show grid
  normal    Y
  normal    Z
  TDAY      TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
- normal    E
- normal    F
 list atime[gt=thour at max]
- -DELETE T        M:183 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- 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     NORMAL    NORMAL
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
+ -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
+ 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
+ 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
- found   ATIME    M:184 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- regrid  ATIME    M:183 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
+ 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
              VARIABLE : T[GT=TDAY]
                         regrid: 24 hour on T at MAX
              SUBSET   : 5 points (TIME)
@@ -18129,8 +17973,6 @@ show grid
  normal    Y
  normal    Z
  THOUR     TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
- normal    E
- normal    F
  
 set mode/last diag
  
@@ -18697,7 +18539,7 @@ list v1
 ! *** 2D
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6 test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 points (X-Y)
              1      2    
@@ -18707,7 +18549,7 @@ list v10
  3   / 3:  5.000  6.000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6/order=yx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 points (X-Y)
              1      2    
@@ -18717,7 +18559,7 @@ list v10
  3   / 3:  3.000  6.000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6yt test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 points (Y-T)
              1      2    
@@ -18727,7 +18569,7 @@ list v10
  3   / 3:  5.000  6.000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6yt/order=ty test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 points (Y-T)
              1      2    
@@ -18737,7 +18579,7 @@ list v10
  3   / 3:  3.000  6.000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6yt/order=xtyz test_perm48_10.dat
 list v10 ! should be just the same as the last
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 points (Y-T)
              1      2    
@@ -18749,7 +18591,7 @@ list v10 ! should be just the same as the last
 ! *** 3D
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12 test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
              1      2    
@@ -18764,7 +18606,7 @@ list v10
  3   / 3:  11.00  12.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=xzy test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
              1      2    
@@ -18779,7 +18621,7 @@ list v10
  3   / 3:  11.00  12.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=yxz test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
              1      2    
@@ -18794,7 +18636,7 @@ list v10
  3   / 3:   9.00  12.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=yzx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
              1      2    
@@ -18809,7 +18651,7 @@ list v10
  3   / 3:   6.00  12.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=zxy test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
              1      2    
@@ -18824,7 +18666,7 @@ list v10
  3   / 3:  10.00  12.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=zyx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
              1      2    
@@ -18840,7 +18682,7 @@ list v10
 ! *** 4D  (incomplete - 24 in all)
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24 test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
              1      2    
@@ -18865,7 +18707,7 @@ list v10
  3   / 3:  23.00  24.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xytz test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
              1      2    
@@ -18890,7 +18732,7 @@ list v10
  3   / 3:  23.00  24.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xzyt test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
              1      2    
@@ -18915,7 +18757,7 @@ list v10
  3   / 3:  23.00  24.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xtyz test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
              1      2    
@@ -18940,7 +18782,7 @@ list v10
  3   / 3:  23.00  24.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xtzy test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
              1      2    
@@ -18965,7 +18807,7 @@ list v10
  3   / 3:  23.00  24.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=ytzx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
              1      2    
@@ -18990,7 +18832,7 @@ list v10
  3   / 3:  12.00  24.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=zytx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
              1      2    
@@ -19015,7 +18857,7 @@ list v10
  3   / 3:  12.00  24.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=tyzx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
              1      2    
@@ -19040,7 +18882,7 @@ list v10
  3   / 3:  12.00  24.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=tzyx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
              1      2    
@@ -19081,8 +18923,8 @@ list v1
 show data
      currently SET data sets:
     1> ./test_perm10.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       1:3       1:1       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:2       1:3       1:1       ...
  
  
 file/grid=g24/order=xytz test_perm10.dat
@@ -19104,8 +18946,8 @@ list v1
 show data
      currently SET data sets:
     1> ./test_perm10.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       1:3       1:2       1:1       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:2       1:3       1:2       1:1
  
  
 file/grid=g24/order=xzyt test_perm10.dat
@@ -19127,8 +18969,8 @@ list v1
 show data
      currently SET data sets:
     1> ./test_perm10.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       1:3       1:2       1:1       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:2       1:3       1:2       1:1
  
  
  
@@ -19359,7 +19201,7 @@ define axis/y=1:5:1 y5
 define grid/x=x10/y=y5 g10x5
 file/var=myvar/grid=g10x5/format=stream stream_data_link.unf
 list myvar
-             VARIABLE : MYVAR
+             VARIABLE : myvar
              FILENAME : stream_data_link.unf
              SUBSET   : 10 by 5 points (X-Y)
              1      2      3      4      5      6      7      8      9     10    
@@ -19380,8 +19222,8 @@ list myv1,myv2
              DATA SET: ./stream_data_link.unf
              X: 0.5 to 10.5
              Y: 0.5 to 2.5
- Column  1: MYV1
- Column  2: MYV2
+ Column  1: MYV1 is myv1
+ Column  2: MYV2 is myv2
             MYV1   MYV2
  ---- J:1 Y:   1
 1    /  1:  11.00  31.00
@@ -19419,8 +19261,8 @@ CAN MODE VERIFY
      currently SET data sets:
     1> ./coads_clim.des  (default)
      COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6
              Deg C on grid GHB1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -19432,8 +19274,6 @@ CAN MODE VERIFY
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME1     TIME                 6 r   16-JAN-1900 06:00    17-JUN-1900 10:25   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (hour)
        1>  16-JAN-1900 06:00:00  730.485    01-JAN-1900 00:45:27    366
@@ -19488,8 +19328,8 @@ CAN MODE VERIFY
      currently SET data sets:
     1> ./coads_clim.des
      COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6
              Deg C on grid GHB1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -19497,8 +19337,8 @@ CAN MODE VERIFY
  
     2> ./coads_clim_irreg.des  (default)
      COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
              Deg C on grid GJR1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -19510,8 +19350,6 @@ CAN MODE VERIFY
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME2     TIME                 3 i   16-JAN-1900 06:00    17-MAY-1900 23:56   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (hour)
        1>  16-JAN-1900 06:00:00  730.485    01-JAN-1900 00:45:27    366
@@ -19557,8 +19395,8 @@ CAN MODE VERIFY
      currently SET data sets:
     1> ./coads_clim_missing_step1.des  (default)
      COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
              Deg C on grid GQO1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -19567,8 +19405,8 @@ CAN MODE VERIFY
      currently SET data sets:
     1> ./coads_clim_missing_stepN.des  (default)
      COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
              Deg C on grid GCQ1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -22840,7 +22678,9 @@ shade/x=0/l=1/ylim=0:200:-20/lev ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[z=0:2
  
 set mode/last verify
 ********File successfully written******
+ooooooooooooooooooooooooooooooooooooooooooo
 ****Variable defined successfully******
+ooooooooooooooooooooooooooooooooooooooooooo
  
              T
              axis ABSTRACT
@@ -23036,6 +22876,7 @@ list tgap[t=-5:-8 at fav]  ! value at T=-6 should be -6
 ! l=@ave compression failure
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err490_l_ave.jnl
 ! err490_lave.jnl 12/1/97 - *sh* (reported by Weimin Wang)
 ! L=@AVE is failing to compress to a point
@@ -23119,6 +22960,7 @@ quit
 ! neg time axis grid failure
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err490_neg_time_show_grid.jnl
 ! err490_neg_time_show_grid
  
@@ -23133,8 +22975,6 @@ show grid/t=15-JAN-1982:15-JAN-1983 temp
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME      TIME               168mr   15-JAN-1982 14:00    07-JUN-1983 13:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (hour)
        1>  15-JAN-1982 14:00:00  73         14-JAN-1982 01:30:00    52632
@@ -23263,6 +23103,7 @@ show grid/t=15-JAN-1982:15-JAN-1983 temp
 !explicit limit problem
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_explicit_limits.jnl
 ! err491_explicit_limits
 ! 2/98 *sh*
@@ -23313,6 +23154,7 @@ list timestamp[i=1:1]
 !regridding by association problem  *kob* 4/98
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_asn.jnl
 ! err491_asn.jnl 4/98 *sh* (extracted from bug reported by Jennifer Adams)
 ! Ferret crashes on regridding by association where destination
@@ -23392,6 +23234,7 @@ exit/script
 !double precision attribute problem *kob* 4/98
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_attrib_dp.jnl
 ! err491_attrib_dp.jnl
 ! kob  4/23/98
@@ -23554,13 +23397,13 @@ use weird_name1.cdf
 sh data
      currently SET data sets:
     1> ./weird_name1.cdf  (default)
- name     title                             I         J         K         L         M         N
- v1       lower case v1                    1:20      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ v1       lower case v1                    1:20      ...       ...       ...
  v2-and-minus
-          SIN(2+I/10)                      1:20      ...       ...       ...       ...       ...
- V1       Upper case V1                    1:20      ...       ...       ...       ...       ...
- I        SIN(4+I/10)                      1:20      ...       ...       ...       ...       ...
- X        SIN(5+I/10)                      1:20      ...       ...       ...       ...       ...
+          SIN(2+I/10)                      1:20      ...       ...       ...
+ V1       Upper case V1                    1:20      ...       ...       ...
+ I        SIN(4+I/10)                      1:20      ...       ...       ...
+ X        SIN(5+I/10)                      1:20      ...       ...       ...
  
 set mode ignore
 list v1
@@ -23921,7 +23764,7 @@ canc mode ignore
 !!OK, load file in 'normal order'
 file/format=str/var=num,num1/grid=mygrid/order=xyztv permutedBinaryTest.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -23944,7 +23787,7 @@ list num
  2   / 2:  21.00  22.00
  3   / 3:  23.00  24.00
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -23970,7 +23813,7 @@ list num1
 !! Load file w/o order qualifier (should be same as above)
 file/format=str/var=num,num1/grid=mygrid/order=xyztv permutedBinaryTest.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -23993,7 +23836,7 @@ list num
  2   / 2:  21.00  22.00
  3   / 3:  23.00  24.00
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24020,7 +23863,7 @@ list num1
 !! Permute tzyxv
 file/format=str/var=num,num1/grid=mygrid/order=tzyxv permutedBinaryTest.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24043,7 +23886,7 @@ list num
  2   / 2:   8.00  20.00
  3   / 3:  12.00  24.00
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24069,7 +23912,7 @@ list num1
 !!Try permuted v
 file/format=str/var=num,num1/grid=mygrid/order=vxyzt permutedBinaryTest.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24092,7 +23935,7 @@ list num
  2   / 2:  41.00  43.00
  3   / 3:  45.00  47.00
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24119,7 +23962,7 @@ list num1
 !! for big endian architecture)
 file/format=str/var=num,num1/grid=mygrid/type=i1 byte.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : byte.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24144,7 +23987,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=i2/swap short.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : short.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24169,7 +24012,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=i4/swap int.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : int.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24194,7 +24037,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=r4/swap float.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : float.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24219,7 +24062,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=r8/swap double.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : double.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24246,7 +24089,7 @@ list num1
 !! Test swapped
 file/format=str/var=num,num1/grid=mygrid/type=i1 byteSwapped.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : byteSwapped.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24271,7 +24114,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=i2 shortSwapped.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : shortSwapped.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24296,7 +24139,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=i4 intSwapped.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : intSwapped.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24321,7 +24164,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=r4 floatSwapped.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : floatSwapped.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24346,7 +24189,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=r8 doubleSwapped.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : doubleSwapped.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24375,7 +24218,7 @@ list num1
 ! get correct result with /skip=2 (??)
 file/format=str/var=num,num1/grid=mygrid/type=r8/skip=2/swap skip.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : skip.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24402,7 +24245,7 @@ list num1
 ! Try list of types
 file/format=str/var=num,num1/grid=mygrid/type=r8,i1/swap twoType.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : twoType.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24425,7 +24268,7 @@ list num
  2   / 2:  20.00  21.00
  3   / 3:  22.00  23.00
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : twoType.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24451,7 +24294,7 @@ list num1
 ! Grand finale of xyvzt permutation with r4,i2 types
 file/format=str/var=num,num1/grid=mygrid/type=r4,i2/order=xyvzt/swap finale.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : finale.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24474,7 +24317,7 @@ list num
  2   / 2:  20.00  21.00
  3   / 3:  22.00  23.00
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : finale.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24499,7 +24342,9 @@ list num1
 *** Running ferret script: bn_define_axes.jnl
 ! bn_define_axes.jnl
 ! *sh* 5/99
-! *sh* 12/99 - with streamlined syntax
+! *sh* 12/99 -  with streamlined syntax
+! *acm* 12/16 - change to a comment only
+! 1/2017 *acm* changes in output due to backing off auto-detection of truemonth axes, tkt 2497
  
 ! exercise the DEFINE AXIS command
  
@@ -24722,6 +24567,10 @@ T0 = 1-JAN-1990
        2>  04-JAN-1990 12:00:00  3          03-JAN-1990 00:00:00    3.5
  
 ! real monthly calendar
+! (Note: when running pre-true-month Ferret versions, the timestep output from
+! show axis/l below was eliminated by the "clean_draconian" script)
+! 1/17/2017 changes due to backing off auto-detection of truemonth axes, tkt 2497
+ 
 let month = MOD(l-1,12)+1
 let add_year = INT((l-1)/12)
 let tstep = DAYS1900(1980+add_year,month,1)
@@ -25034,6 +24883,7 @@ can mode meta
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_RESHAPE_ctx.jnl
 ! err491_RESHAPE_ctx
  
@@ -25094,61 +24944,36 @@ let out_grid = x[g=gsrc] + y[g=gsrc] + z[gz=zmonth] + t[gt=tyear]
 let out = reshape(src,out_grid)
 list out
              VARIABLE : RESHAPE(SRC,OUT_GRID)
-             SUBSET   : 5 by 12 by 2 points (X-Z-T)
+             SUBSET   : 12 by 2 points (Z-T)
              Y        : 0.5 to 1.5
-                1        2        3        4        5     
-                1        2        3        4        5
- ---- L:1 T:   1951
- 1    /  1:  438289.  438290.  438291.  438292.  438293.
- 2    /  2:  439019.  439020.  439021.  439022.  439023.
- 3    /  3:  439750.  439751.  439752.  439753.  439754.
- 4    /  4:  440480.  440481.  440482.  440483.  440484.
- 5    /  5:  441211.  441212.  441213.  441214.  441215.
- 6    /  6:  441941.  441942.  441943.  441944.  441945.
- 7    /  7:  442672.  442673.  442674.  442675.  442676.
- 8    /  8:  443402.  443403.  443404.  443405.  443406.
- 9    /  9:  444132.  444133.  444134.  444135.  444136.
- 10   / 10:  444863.  444864.  444865.  444866.  444867.
- 11   / 11:  445593.  445594.  445595.  445596.  445597.
- 12   / 12:  446324.  446325.  446326.  446327.  446328.
- ---- L:2 T:   1952
- 1    /  1:  447054.  447055.  447056.  447057.  447058.
- 2    /  2:  447785.  447786.  447787.  447788.  447789.
- 3    /  3:  448515.  448516.  448517.  448518.  448519.
- 4    /  4:  449246.  449247.  449248.  449249.  449250.
- 5    /  5:  449976.  449977.  449978.  449979.  449980.
- 6    /  6:  450706.  450707.  450708.  450709.  450710.
- 7    /  7:  451437.  451438.  451439.  451440.  451441.
- 8    /  8:  452167.  452168.  452169.  452170.  452171.
- 9    /  9:  452898.  452899.  452900.  452901.  452902.
- 10   / 10:  453628.  453629.  453630.  453631.  453632.
- 11   / 11:  454359.  454360.  454361.  454362.  454363.
- 12   / 12:  455089.  455090.  455091.  455092.  455093.
+                 1        2        3        4        5        6        7        8        9       10       11       12     
+                 1        2        3        4        5        6        7        8        9       10       11       12
+ 1951   / 1:  438289.  438290.  438291.  438292.  438293.  439019.  439020.  439021.  439022.  439023.  439750.  439751.
+ 1952   / 2:  439752.  439753.  439754.  440480.  440481.  440482.  440483.  440484.  441211.  441212.  441213.  441214.
  
 ! NOW THE ERROR: L LIMITS PASSED INCORRECTLY(ERRONEOUSLY) TO SRC
 list/l=1 out
              VARIABLE : RESHAPE(SRC,OUT_GRID)
-             SUBSET   : 5 by 12 points (X-Z)
+             SUBSET   : 12 points (Z)
              Y        : 0.5 to 1.5
              T        : 1951
-                1        2        3        4        5     
-                1        2        3        4        5
- 1    /  1:  438289.  438290.  438291.  438292.  438293.
- 2    /  2:  439019.  439020.  439021.  439022.  439023.
- 3    /  3:  439750.  439751.  439752.  439753.  439754.
- 4    /  4:  440480.  440481.  440482.  440483.  440484.
- 5    /  5:  441211.  441212.  441213.  441214.  441215.
- 6    /  6:  441941.  441942.  441943.  441944.  441945.
- 7    /  7:  442672.  442673.  442674.  442675.  442676.
- 8    /  8:  443402.  443403.  443404.  443405.  443406.
- 9    /  9:  444132.  444133.  444134.  444135.  444136.
- 10   / 10:  444863.  444864.  444865.  444866.  444867.
- 11   / 11:  445593.  445594.  445595.  445596.  445597.
- 12   / 12:  446324.  446325.  446326.  446327.  446328.
+ 1    /  1:  438289.
+ 2    /  2:  438290.
+ 3    /  3:  438291.
+ 4    /  4:  438292.
+ 5    /  5:  438293.
+ 6    /  6:  439019.
+ 7    /  7:  439020.
+ 8    /  8:  439021.
+ 9    /  9:  439022.
+ 10   / 10:  439023.
+ 11   / 11:  439750.
+ 12   / 12:  439751.
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_delete_child_var.jnl
 ! err491_delete_child_var.jnl
 ! *sh* 4/99
@@ -25186,6 +25011,7 @@ list  ypolymark	! incorrect values: 10, 20, 30
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_dp_time_write.jnl
 ! err491_dp_time_write.jnl
 ! *sh* 10/98
@@ -25208,6 +25034,7 @@ sp ncdump out.cdf >> all_ncdump.out
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_gmax.jnl
 ! err491_gmax.jnl
 ! 9 Dec. 1998 *sh*
@@ -25224,6 +25051,7 @@ load ts[gt=t24 at max]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_grid_from_name.jnl
 ! err491_grid_from_name.jnl
 ! *sh* 3/99
@@ -25244,12 +25072,11 @@ show grid
  normal    Y
  Z10       Z                   10 r   1                    10                  full
  normal    T
- normal    E
- normal    F
 can mode ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_let_d.jnl
 ! err491_let_d.jnl
 ! *sh* 10/98
@@ -25280,6 +25107,7 @@ stat/i=1:3/j=1:3 a
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_sh_var_templates.jnl
 ! SHOW VARIABLE templates are not robust
  
@@ -25294,6 +25122,7 @@ sho var mld*dec		! works
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_single_char_replace.jnl
 ! err491_single_char_replace.jnl
  
@@ -25312,6 +25141,7 @@ hh
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_spawn_quotes.jnl
 ! err491_spawn_quotes.jnl
  
@@ -25319,10 +25149,11 @@ GO err491_spawn_quotes.jnl
  
 ! this should be a valid command
 SPAWN "date"
-Fri Jun 17 15:03:56 PDT 2016
+Tue Apr 18 17:03:12 PDT 2017
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_time_regridding.jnl
 ! err491_time_regridding.jnl
 ! from Jon 10/16/98
@@ -25358,6 +25189,7 @@ plot/over bad[t=@sbx:3]
 ! 3/01 *kob* uncomment the below - seems to run on all systems
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_unknown_function.jnl
 ! err491_unknown_function
 ! 3/99 *sh*
@@ -25375,6 +25207,7 @@ can mode ignore
 ! *kob* added 6/11/1999
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err500_IF_THEN_ELSE_quote.jnl
 ! err500_IF_THEN_ELSE_quote.jnl
  
@@ -25441,45 +25274,41 @@ list SAMPLEI(sst[l=1:3,y=-2:2],{30,40,50})
  1N   / 46:  29.14  28.92  28.33
  1S   / 45:  28.90  28.82  28.54
 SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 12800
- 
-            number of free memory blocks: 1987
-            largest free region: 1984
-            number of free regions: 4
-            free memory table slots: 487
-            number of UN-CACHED variables: 0
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 39 words
+    Current cache: 63 words
+    Total table slots: 500
+    Free table slots: 487
+    Un-cached variables: 0
  
 ! these should break sampling up into separate reads
 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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      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      NORMAL    NORMAL
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G002)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  7 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 16 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    (C09,V02 C: 11 dset:   1 I:   30   30  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading SST      M: 13 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 11 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  8 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 11 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  5 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C09,V02 M: 14 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M: 15 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  9 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 16 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ const_v {30,...} M: 16 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing sampling tpry on I axis:        1        3 dset:   1
+ eval    (C09,V02 C: 11 dset:   1 I:     30     30  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading SST      M: 13 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ eval    (C09,V02 C: 11 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:  8 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ eval    (C09,V02 C: 11 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:  5 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE (C09,V02 M: 14 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 15 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  9 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M: 16 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST[L=1,Y=-2:2],{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 2 points (LATITUDE)
@@ -25489,32 +25318,32 @@ list/i=2 SAMPLEI(sst[l=1,y=-2:2],{30,40,50})	! only I=2 from result
                2
  1N   / 46:  28.20
  1S   / 45:  28.56
- -DELETE (C01,V02 M: 16 dset:   1 I:    2    2  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE (C01,V02 M: 16 dset:   1 I:      2      2  J:   45   46  K: -999 -999  L:      1      1
 cancel memory/all
- -DELETE (C09,V02 M:  4 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  5 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C09,V02 M:  7 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  8 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C09,V02 M: 12 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 13 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C01,V02 M: 15 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE (C09,V02 M:  4 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:  5 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE (C09,V02 M:  7 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:  8 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE (C09,V02 M: 12 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M: 13 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ -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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      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)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G002)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 15 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M:  8 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  5 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  4 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE          M: 12 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M: 13 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  7 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 15 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ reading SST      M:  8 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:  5 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:  4 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE          M: 12 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 13 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  7 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M: 15 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25524,30 +25353,30 @@ list/l=1/y=-2:2  SAMPLEI(sst,{30,40,50})
  1N   / 46:  28.22  28.20  28.45
  1S   / 45:  28.15  28.56  28.83
 cancel memory/all
- -DELETE SST      M:  4 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  5 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  8 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 13 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M:  4 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:  5 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ -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      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 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      NORMAL    NORMAL
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 13 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    A        C:  9 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  4 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  9 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 12 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  9 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  9 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  5 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M:  8 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  7 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 13 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ eval    A        C:  9 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:  4 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ eval    A        C:  9 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M: 12 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ eval    A        C:  9 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:  9 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:  5 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE SST      M:  8 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  7 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M: 13 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(A  ,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25559,32 +25388,32 @@ list/l=1/y=-2:2  SAMPLEI(a  ,{30,40,50})
  
 ! these should NOT break up the access into chunks
 cancel memory/all
- -DELETE SST      M:  4 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M:  8 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  9 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 12 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 14 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 15 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 16 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M:  4 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE EX#1     M:  8 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:  9 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M: 12 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE A        M: 14 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -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      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      NORMAL    NORMAL
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  7 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 16 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    (C09,V02 C: 11 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 12 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 14 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE A        M: 15 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  8 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 16 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ const_v {30,...} M: 16 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing sampling tpry on I axis:        1        3 dset:   1
+ eval    (C09,V02 C: 11 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M: 12 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE A        M: 14 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE A        M: 15 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  8 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M: 16 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST[I=30:40],{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25594,29 +25423,29 @@ list/l=1/y=-2:2  SAMPLEI(sst[i=30:40],{30,40,50})
  1N   / 46:  28.22  28.20   ....
  1S   / 45:  28.15  28.56   ....
 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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE (C01,V02 M: 15 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
+ -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 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  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 12 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
 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      NORMAL    NORMAL
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      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 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 12 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    A        C:  9 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 16 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE          M:  9 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE          M: 15 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 14 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 12 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ eval    A        C:  9 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M: 16 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE          M:  9 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE          M: 15 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 14 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M: 12 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(A,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25626,23 +25455,23 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  1N   / 46:  28.22  28.20   ....
  1S   / 45:  28.15  28.56   ....
 cancel memory/all
- -DELETE A        M:  8 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 15 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 16 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:  8 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -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      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)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30}     M: 16 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     1 dset:   1
- eval    A        C:  9 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 12 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:  8 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 15 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  9 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30}     M: 16 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        1 dset:   1
+ eval    A        C:  9 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M: 12 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE A        M:  8 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      1  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M: 15 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  9 dset:   1 I:      1      1  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30}     M: 16 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(A,{30})
              FILENAME : coads_climatology.cdf
              SUBSET   : 2 points (LATITUDE)
@@ -25653,28 +25482,28 @@ list/l=1/y=-2:2  SAMPLEI(a,{30})		! sample at just 1 point
  1N   / 46:  28.22
  1S   / 45:  28.15
 cancel memory/all
- -DELETE SST      M: 12 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 14 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 15 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 12 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -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      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 (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      NORMAL    NORMAL
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  7 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C11,V02 C:  9 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- constan cnst     M: 15 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 15 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     1 dset:   1
- eval    A        C: 11 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 16 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 12 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 15 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  8 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ eval    (C11,V02 C:  9 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ constan cnst     M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ doing sampling tpry on I axis:        1        1 dset:   1
+ eval    A        C: 11 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M: 16 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M: 12 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      1  M: -999 -999  N: -999 -999
+ -DELETE cnst     M: 15 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  8 dset:   1 I:      1      1  J:   45   46  K: -999 -999  L:      1      1
              VARIABLE : SAMPLEI(A,30)
              FILENAME : coads_climatology.cdf
              SUBSET   : 2 points (LATITUDE)
@@ -25685,40 +25514,40 @@ list/l=1/y=-2:2  SAMPLEI(a,30)			! sample at just 1 point
  1N   / 46:  28.22
  1S   / 45:  28.15
 cancel memory/all
- -DELETE A        M:  9 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C11,V02 M: 14 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V02 M: 15 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 16 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:  9 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE (C11,V02 M: 14 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE (C01,V02 M: 15 dset:   1 I:      1      1  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
 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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G002)          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
- getgrid A        C:  8 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- 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      NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      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 A        C:  8 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 16 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    A        C:  9 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ eval    A        C:  9 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
  strip --> FSST[X=20E:20E(380)@IIN,D=1]
- eval    FSST     C: 12 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    FSST     C: 12 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
  strip --> SST[I=1:180 at FLN:1,D=1]
- strip moduloing SST on X axis:     0   181 dset:   1
- reading SST      M:  9 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing SST on X axis:     1   180 dset:   1
+ strip moduloing SST on X axis:        0      181 dset:   1
+ reading SST      M:  9 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ doing moduloing SST on X axis:        1      180 dset:   1
  doing --> SST[I=1:180 at FLN:1,D=1]
  doing --> FSST[X=20E:20E(380)@IIN,D=1]
- -DELETE          M: 14 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE          M: 15 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  5 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 16 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE          M: 14 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE          M: 15 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  5 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M: 16 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(A,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25728,36 +25557,36 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  1N   / 46:  1.829E+08  2.458E+08  3.068E+08
  1S   / 45:  1.837E+08  2.469E+08  3.095E+08
 cancel memory/all
- -DELETE FSST     M:  4 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:  7 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  8 dset:   1 I:    0  181  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  9 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 12 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE FSST     M: 13 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 15 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE FSST     M:  4 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE A        M:  7 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:  8 dset:   1 I:      0    181  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:  9 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M: 12 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE FSST     M: 13 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE EX#1     M: 15 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
  
 ! 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      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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 15 dset:   1 I:   30   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M: 15 dset:   1 I:     30     50  J:   45   45  K: -999 -999  L:      1      1
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 13 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- found   SST      M: 15 dset:   1 I:   30   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  9 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M: 12 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  8 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 13 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ found   SST      M: 15 dset:   1 I:     30     50  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE SST      M:  9 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 12 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  8 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE {30,...} M: 13 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -25769,30 +25598,30 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  2   / 2:  28.56
  3   / 3:  28.83
 cancel memory/all
- -DELETE EX#1     M: 12 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 15 dset:   1 I:   30   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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      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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 15 dset:   1 I:   30   39  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M: 15 dset:   1 I:     30     39  J:   45   45  K: -999 -999  L:      1      1
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 12 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- found   SST      M: 15 dset:   1 I:   30   39  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  7 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  4 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  8 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 13 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  9 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 12 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ found   SST      M: 15 dset:   1 I:     30     39  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:  7 dset:   1 I:     40     40  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:  4 dset:   1 I:     50     50  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE tpry     M:  8 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M: 13 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  9 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE {30,...} M: 12 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -25804,31 +25633,31 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  2   / 2:  28.56
  3   / 3:  28.83
 cancel memory/all
- -DELETE SST      M:  4 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  7 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 13 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 15 dset:   1 I:   30   39  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M:  4 dset:   1 I:     50     50  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE SST      M:  7 dset:   1 I:     40     40  J:   45   45  K: -999 -999  L:      1      1
+ -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      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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 15 dset:   1 I:   30   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M: 15 dset:   1 I:     30     40  J:   45   45  K: -999 -999  L:      1      1
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 13 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- found   SST      M: 15 dset:   1 I:   30   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  9 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M:  7 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 12 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 13 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ found   SST      M: 15 dset:   1 I:     30     40  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:  9 dset:   1 I:     50     50  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE SST      M:  4 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE SST      M:  7 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 12 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE {30,...} M: 13 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -25840,30 +25669,30 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  2   / 2:  28.56
  3   / 3:  28.83
 cancel memory/all
- -DELETE EX#1     M:  7 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  9 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 15 dset:   1 I:   30   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M:  7 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
+ -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      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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 15 dset:   1 I:   30   41  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M: 15 dset:   1 I:     30     41  J:   45   45  K: -999 -999  L:      1      1
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M:  9 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- found   SST      M: 15 dset:   1 I:   30   41  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  4 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 13 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE EX#1     M:  7 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 12 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M:  9 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ found   SST      M: 15 dset:   1 I:     30     41  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:  4 dset:   1 I:     50     50  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE EX#1     M: 13 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M:  7 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 12 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:  9 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -25931,18 +25760,6 @@ Dynamic grids:
  (AX004)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-    GRID (G002)                          use count:   1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX004)   LATITUDE             5 r   1S                   1N
- normal    Z
- TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX004)                         use count:   2
 cancel memory/all
 let/quiet a = sst[l=1,y=1s:1n:.5]
 list SAMPLEI(a,{30,40,50})
@@ -25965,18 +25782,6 @@ Dynamic grids:
  (AX005)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-    GRID (G003)                          use count:   1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX005)   LATITUDE             5 r   1S                   1N
- normal    Z
- TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX005)                         use count:   2
  
 ! sampling a pseudo-variable
 list SAMPLEI(X[x=1:12],{3,4,7,15})
@@ -26133,29 +25938,29 @@ 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    NORMAL    NORMAL
- dealloc  dynamic grid (G002)          ABSTRACT  (AX004)   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G002)          ABSTRACT  (AX004)   NORMAL    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 (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      NORMAL    NORMAL
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {31-,48} M: 15 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     7 dset:   1
- eval    (C09,V02 C: 10 dset:   1 I:   31   35  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading SST      M: 11 dset:   1 I:   31   35  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 10 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  4 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 10 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 13 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C01,V02 M: 12 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
- -DELETE SST      M: 14 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  7 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {31-,48} M: 15 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G003)          NORMAL    (AX004)   NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          ABSTRACT  (AX004)   NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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    TIME
+ allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G002)          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
+ doing sampling tpry on I axis:        1        7 dset:   1
+ eval    (C09,V02 C: 10 dset:   1 I:     31     35  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading SST      M: 11 dset:   1 I:     31     35  J:   48   48  K: -999 -999  L:      1      1
+ eval    (C09,V02 C: 10 dset:   1 I:     37     37  J:   48   48  K: -999 -999  L:      1      1
+ reading SST      M:  4 dset:   1 I:     37     37  J:   48   48  K: -999 -999  L:      1      1
+ eval    (C09,V02 C: 10 dset:   1 I:     44     48  J:   48   48  K: -999 -999  L:      1      1
+ reading SST      M: 13 dset:   1 I:     44     48  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE (C01,V02 M: 12 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:      7      7  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 14 dset:   1 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  7 dset:   1 I:      1      7  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE {31,...} M: 15 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
              FILENAME : coads_climatology.cdf
              SUBSET   : 7 points (X)
@@ -26173,17 +25978,17 @@ list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
  
 ! test cache hits
 list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48}) !   <-- CACHE HIT FAILS!!!
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {31-,48} M: 15 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     7 dset:   1
- found   (C09,V02 M:  8 dset:   1 I:   31   35  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   (C09,V02 M:  3 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   (C09,V02 M: 16 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C01,V02 M: 12 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  7 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 10 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {31-,48} M: 15 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        7 dset:   1
+ found   (C09,V02 M:  8 dset:   1 I:     31     35  J:   48   48  K: -999 -999  L:      1      1
+ found   (C09,V02 M:  3 dset:   1 I:     37     37  J:   48   48  K: -999 -999  L:      1      1
+ found   (C09,V02 M: 16 dset:   1 I:     44     48  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE (C01,V02 M: 12 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:      7      7  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  7 dset:   1 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 10 dset:   1 I:      1      7  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE {31,...} M: 15 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
              FILENAME : coads_climatology.cdf
              SUBSET   : 7 points (X)
@@ -26203,18 +26008,18 @@ let a = SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
 load a
 set mode diagnostic
 list a 			!   <-- CACHE HIT FAILS!!!
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V01 C:  8 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {31-,48} M:  3 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     7 dset:   1
- found   (C09,V01 M:  8 dset:   1 I:   31   35  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   (C09,V01 M: 15 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   (C09,V01 M: 10 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE          M: 12 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
- -DELETE          M: 16 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  2 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {31-,48} M:  3 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V01 C:  8 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ const_v {31,...} M:  3 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing sampling tpry on I axis:        1        7 dset:   1
+ found   (C09,V01 M:  8 dset:   1 I:     31     35  J:   48   48  K: -999 -999  L:      1      1
+ found   (C09,V01 M: 15 dset:   1 I:     37     37  J:   48   48  K: -999 -999  L:      1      1
+ found   (C09,V01 M: 10 dset:   1 I:     44     48  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE          M: 12 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:      7      7  M: -999 -999  N: -999 -999
+ -DELETE          M: 16 dset:   1 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  2 dset:   1 I:      1      7  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE {31,...} M:  3 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
              FILENAME : coads_climatology.cdf
              SUBSET   : 7 points (X)
@@ -26232,16 +26037,12 @@ list a 			!   <-- CACHE HIT FAILS!!!
 set mode/last diagnostic
  
 SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 12800
- 
-            number of free memory blocks: 1990
-            largest free region: 1990
-            number of free regions: 1
-            free memory table slots: 490
-            number of UN-CACHED variables: 0
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 38 words
+    Current cache: 50 words
+    Total table slots: 500
+    Free table slots: 490
+    Un-cached variables: 0
  
 ! test SAMPLEJ
 let/quiet a = sst + Z[z=0:500:5]
@@ -26563,8 +26364,6 @@ show grid xytvar
  YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
  TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
- normal    E
- normal    F
 list xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -26589,8 +26388,6 @@ show grid xytvar
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
- normal    E
- normal    F
 list xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -26615,8 +26412,6 @@ show grid xytvar
  YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
  XLON      T (degrees_east)    40mr   141                  180                 full
- normal    E
- normal    F
 list xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -26641,8 +26436,6 @@ show grid xytvar
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  YLAT      T (degrees_north)   30 r   1                    30                  full
- normal    E
- normal    F
 list xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -26668,8 +26461,6 @@ show grid xytvar
  XLON      Y (degrees_east)    40mr   141                  180                 full
  YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
- normal    E
- normal    F
 list/k=1:2 xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -26695,8 +26486,6 @@ show grid xytvar
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  YLAT      T (degrees_north)   30 r   1                    30                  full
- normal    E
- normal    F
 list xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -26722,8 +26511,6 @@ show grid xytvar
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  YLAT      T (degrees_north)   30 r   1                    30                  full
- normal    E
- normal    F
 show grid var
     GRID GPC1
  name       axis              # pts   start                end                 subset
@@ -26731,8 +26518,6 @@ show grid var
  XAX1_4    Y                    4 r   1                    4                   full
  YAX1_3    Z                    3 r   1                    3                   full
  ZAX1_2    T                    2 r   1                    2                   full
- normal    E
- normal    F
 canc data/all
  
 ! * * * * * STRIDES * * * * *
@@ -26743,28 +26528,28 @@ cancel memory/all
 SHOW DATA
      currently SET data sets:
     1> ./bn_strides.cdf  (default)
- name     title                             I         J         K         L         M         N
- VAR      L*1000 + K*100 + J*10 + I        1:4       1:3       1:2       1:1       ...       ...
- MIDVAR   VAR                              1:9       1:8       1:7       1:6       ...       ...
- BIGVAR   VAR                              1:40      1:30      1:20      1:10      ...       ...
+ name     title                             I         J         K         L
+ VAR      L*1000 + K*100 + J*10 + I        1:4       1:3       1:2       1:1
+ MIDVAR   VAR                              1:9       1:8       1:7       1:6
+ BIGVAR   VAR                              1:40      1:30      1:20      1:10
  UNEVENVAR
-          L*1000 + K*100 + J[GY=YUNEVEN]*  1:10      1:8       1:6       1:4       ...       ...
- XYTVAR   L*1000 + J*10 + I                1:40      1:30      ...       1:20      ...       ...
+          L*1000 + K*100 + J[GY=YUNEVEN]*  1:10      1:8       1:6       1:4
+ XYTVAR   L*1000 + J*10 + I                1:40      1:30      ...       1:20
  
  
 ! 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    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 (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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:  2 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  1 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -26783,10 +26568,10 @@ 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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- found   VAR      M:  2 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -26806,22 +26591,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    NORMAL    NORMAL
- -DELETE VAR      M:  2 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  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 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX021)   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
+ 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
- rdstride VAR      C:  9 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:  1 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  2 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : VAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
@@ -26837,8 +26622,8 @@ list a
  2   / 2:  1222.  1224.
  3   / 3:  1232.  1234.
 list a		! from cache ...
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- found   A        M:  2 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
+ found   A        M:  2 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
              VARIABLE : VAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
@@ -26856,27 +26641,27 @@ list a		! from cache ...
  
 ! cache hit from full region cache -- bypass use of strides
 cancel memory/all
- -DELETE VAR      M:  1 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:  2 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -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    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 GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- reading VAR      M:  2 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX020)   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
+ reading VAR      M:  2 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
 LIST VAR[i=2:4:2]
- dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    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 (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:  3 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  1 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -26893,18 +26678,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    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 (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX020)   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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  1 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -26919,26 +26704,26 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.  1214.
  3   / 2:  1232.  1234.
 CANC MEM/ALL
- -DELETE VAR      M:  2 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  3 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:  2 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
+ -DELETE VAR      M:  3 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
+ -DELETE VAR      M:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  
 ! 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    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 (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX020)   (AX022)   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
+ 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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -26953,24 +26738,24 @@ LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
  7    / 3:  1113.
  10   / 4:  1112.
 cancel axis/modulo XAX1_4
- -DELETE VAR      M:  2 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  3 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  4 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:  2 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
+ -DELETE VAR      M:  3 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
+ -DELETE VAR      M:  4 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  
 ! 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    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 (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX021)   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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:  3 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  4 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -26985,19 +26770,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    NORMAL    NORMAL
- -DELETE VAR      M:  3 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  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 (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX020)   (AX022)   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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  3 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27014,24 +26799,24 @@ 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    NORMAL    NORMAL
- -DELETE VAR      M:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  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 GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX020)   (AX021)   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
  
 ! averaging causes bypass of strides
 LIST VAR[i=2:4:2 at ave]
- dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    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 (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
+ 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
- reading VAR      M:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- regrid  VAR      M:  3 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X at AVE
              FILENAME : bn_strides.cdf
@@ -27050,25 +26835,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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M:  3 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G006)          (AX020)   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   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10   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 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    3    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- rdstride BIGVAR   C: 10 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  2 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  3 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -27080,26 +26865,26 @@ list/j=1/k=1/l=1 a[i=3:5]
  11   / 3:  1121.
  16   / 4:  1126.
  21   / 5:  1131.
- -DELETE A        M:  1 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -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   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 (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX021)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- eval    A        C:  8 dset:   1 I:    3    5  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- rdstride BIGVAR   C: 11 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  5 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  1 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- regrid  A        M:  6 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27116,13 +26901,13 @@ 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   NORMAL    NORMAL
- -DELETE A        M:  6 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  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 GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX021)   (AX022)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading UNE-NVAR M:  6 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
+ reading UNE-NVAR M:  6 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
              FILENAME : bn_strides.cdf
              SUBSET   : 4 points (X)
@@ -27133,28 +26918,28 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR
             1      2      3      4
           1111.  1112.  1113.  1114.
 cancel mem/all
- -DELETE A        M:  1 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  2 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:  3 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  5 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  6 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:  1 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
+ -DELETE BIGVAR   M:  2 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
+ -DELETE A        M:  3 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
+ -DELETE VAR      M:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
+ -DELETE BIGVAR   M:  5 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
+ -DELETE UNE-NVAR M:  6 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  
 ! basic strides
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    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 (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M:  5 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  6 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27169,10 +26954,10 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
 ! cache hit after changes to COMPLETE_MISSING_LIMS and FLESH_OUT_AXIS
 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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- found   UNE-NVAR M:  5 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27186,25 +26971,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M:  5 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX020)   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
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    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 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C: 10 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M:  6 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  5 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : UNEVENVAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 points (X)
@@ -27216,8 +27001,8 @@ list/order=x/j=1/k=1/l=1 a
           1112.  1114.
 list/order=x/j=1/k=1/l=1 a		! from cache ...
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- found   A        M:  5 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
+ found   A        M:  5 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
              VARIABLE : UNEVENVAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 points (X)
@@ -27230,29 +27015,29 @@ list/order=x/j=1/k=1/l=1 a		! from cache ...
  
 ! cache hit from full region cache -- bypass use of strides
 cancel memory/all
- -DELETE A        M:  5 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  6 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -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    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 GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX020)   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
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading UNE-NVAR M:  6 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
+ reading UNE-NVAR M:  6 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
 LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    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 (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M:  4 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  5 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27265,19 +27050,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    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 (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX020)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M:  3 dset:   1 I:    1    2  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  5 dset:   1 I:    2    4  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
  doing limits reconciliation on Y axis: UNEVENVAR
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
@@ -27290,28 +27075,28 @@ LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:5:2]
               1
  0.3  / 1:  1112.
  0.6  / 2:  1114.
- -DELETE UNE-NVAR M:  5 dset:   1 I:    1    1  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M:  5 dset:   1 I:      1      1  J:    1    2  K:    1    1  L:      1      1
 CANC MEM/ALL
- -DELETE UNE-NVAR M:  3 dset:   1 I:    1    2  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  4 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  6 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M:  3 dset:   1 I:      1      2  J:    1    3  K:    1    1  L:      1      1
+ -DELETE UNE-NVAR M:  4 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
+ -DELETE UNE-NVAR M:  6 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
  
 ! 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    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 (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX020)   (AX022)   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
+ 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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27323,25 +27108,25 @@ LIST/order=x UNEVENVAR[I=1:30:7,j=1,k=1,l=1]    ! 1, 8, 15(5), 22(2)
             1      2      3      4      5
           1111.  1118.  1115.  1112.  1119.
 cancel axis/modulo XUNEVEN
- -DELETE UNE-NVAR M:  3 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  4 dset:   1 I:    1   29  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  6 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M:  3 dset:   1 I:      1      5  J:    1    1  K:    1    1  L:      1      1
+ -DELETE UNE-NVAR M:  4 dset:   1 I:      1     29  J:    1    1  K:    1    1  L:      1      1
+ -DELETE UNE-NVAR M:  6 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
  
 ! 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    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 (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX021)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M:  4 dset:   1 I:    1    2  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  6 dset:   1 I:    2    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
              FILENAME : bn_strides.cdf
@@ -27353,20 +27138,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M:  4 dset:   1 I:    1    2  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  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 (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX020)   (AX022)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    6  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M:  6 dset:   1 I:    1    3  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  4 dset:   1 I:    2    6  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
              FILENAME : bn_strides.cdf
@@ -27381,19 +27166,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M:  6 dset:   1 I:    1    3  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  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 (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX021)   (AX023)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- reading UNE-NVAR M:  6 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- regrid  UNE-NVAR M:  4 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X at AVE
              FILENAME : bn_strides.cdf
@@ -27408,20 +27193,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M:  4 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  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 (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX021)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M:  3 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  4 dset:   1 I:    2    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27438,19 +27223,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M:  3 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  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 (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX023)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- reading UNE-NVAR M:  3 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- regrid  UNE-NVAR M:  4 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X at AVE
              FILENAME : bn_strides.cdf
@@ -27473,19 +27258,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M:  4 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  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 (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX021)   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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  5 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  4 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27502,19 +27287,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   NORMAL    NORMAL
- -DELETE BIGVAR   M:  5 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  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 (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX023)   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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  4 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  5 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27531,19 +27316,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   NORMAL    NORMAL
- -DELETE BIGVAR   M:  4 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  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 (G007)          (AX023)   (AX022)   (AX024)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          XAX1_40   (AX021)   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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  4 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -27560,26 +27345,26 @@ 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   NORMAL    NORMAL
- -DELETE BIGVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX023)   (AX022)   (AX024)   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
  canceling dset ./bn_strides.cdf
- -DELETE UNE-NVAR M:  3 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  6 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -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
  
 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   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10   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 (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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  3 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  6 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27596,19 +27381,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   NORMAL    NORMAL
- -DELETE BIGVAR   M:  3 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  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 (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  6 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  3 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27625,19 +27410,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   NORMAL    NORMAL
- -DELETE BIGVAR   M:  6 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  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 (G006)          (AX024)   (AX022)   (AX023)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ZAX1_20   (AX020)   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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  6 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -27654,23 +27439,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   NORMAL    NORMAL
- -DELETE BIGVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   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   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10   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 (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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  6 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  3 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27687,19 +27472,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   NORMAL    NORMAL
- -DELETE BIGVAR   M:  6 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  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 (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX022)   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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  3 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  6 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27716,19 +27501,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   NORMAL    NORMAL
- -DELETE BIGVAR   M:  3 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  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 (G006)          (AX022)   (AX024)   (AX020)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ZAX1_20   (AX023)   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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  3 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -27745,8 +27530,8 @@ 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   NORMAL    NORMAL
- -DELETE BIGVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   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
  
 ! now with xytvar
@@ -27754,29 +27539,27 @@ cancel region
 set region/i=1:4/j=1:3/l=1:2
 use bn_strides
 show grid xytvar
- 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 GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ 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 GPC5            XLON      YLAT      NORMAL    TTIME
     GRID GPC5
  name       axis              # pts   start                end                 subset
  XLON      LONGITUDE           40mr   141E                 180E                full
  YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
  TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
- normal    E
- normal    F
 list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     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 (G006)          (AX024)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ 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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
              FILENAME : bn_strides.cdf
@@ -27792,19 +27575,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     NORMAL    NORMAL
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G006)          XLON      (AX020)   NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME     NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -27820,19 +27603,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     NORMAL    NORMAL
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XLON      (AX020)   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)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -27848,35 +27631,33 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
+ -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
 use/order=yx bn_strides
 show grid xytvar
- 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 GPC5            YLAT      XLON      NORMAL    TTIME     NORMAL    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 GPC5            YLAT      XLON      NORMAL    TTIME
     GRID GPC5
  name       axis              # pts   start                end                 subset
  YLAT      X (degrees_north)   30 r   1                    30                  full
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
- normal    E
- normal    F
 list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            YLAT      XLON      NORMAL    TTIME     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 (G006)          (AX022)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ 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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
              FILENAME : bn_strides.cdf
@@ -27892,19 +27673,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     NORMAL    NORMAL
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G006)          YLAT      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX022)   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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -27920,19 +27701,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     NORMAL    NORMAL
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          YLAT      (AX023)   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)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -27948,35 +27729,33 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
+ -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
 use/order=tyx bn_strides
 show grid xytvar
- 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 GPC5            TTIME     YLAT      NORMAL    XLON      NORMAL    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 GPC5            TTIME     YLAT      NORMAL    XLON
     GRID GPC5
  name       axis              # pts   start                end                 subset
  TTIME     X (DAYS)            20 r   34319                34338               full
  YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
  XLON      T (degrees_east)    40mr   141                  180                 full
- normal    E
- normal    F
 list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            TTIME     YLAT      NORMAL    XLON      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 (G006)          (AX024)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ 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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -27992,19 +27771,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      NORMAL    NORMAL
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G006)          TTIME     (AX020)   NORMAL    XLON      NORMAL    NORMAL
- dealloc  dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON      NORMAL    NORMAL
- allocate dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON      NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON      NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28020,19 +27799,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      NORMAL    NORMAL
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          TTIME     (AX020)   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)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
              FILENAME : bn_strides.cdf
@@ -28048,35 +27827,33 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
+ -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
 use/order=txy bn_strides
 show grid xytvar
- 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 GPC5            TTIME     XLON      NORMAL    YLAT      NORMAL    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 GPC5            TTIME     XLON      NORMAL    YLAT
     GRID GPC5
  name       axis              # pts   start                end                 subset
  TTIME     X (DAYS)            20 r   34319                34338               full
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  YLAT      T (degrees_north)   30 r   1                    30                  full
- normal    E
- normal    F
 list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            TTIME     XLON      NORMAL    YLAT      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 (G006)          (AX022)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ 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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28092,19 +27869,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      NORMAL    NORMAL
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G006)          TTIME     (AX023)   NORMAL    YLAT      NORMAL    NORMAL
- dealloc  dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT      NORMAL    NORMAL
- allocate dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT      NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX022)   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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT      NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28120,19 +27897,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      NORMAL    NORMAL
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          TTIME     (AX023)   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)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
              FILENAME : bn_strides.cdf
@@ -28148,37 +27925,35 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
+ -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
 ! map into Z instead of T
 use/order=zxy bn_strides
 show grid xytvar
- 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 GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    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 GPC5            TTIME     XLON      YLAT      NORMAL
     GRID GPC5
  name       axis              # pts   start                end                 subset
  TTIME     X (DAYS)            20 r   34319                34338               full
  XLON      Y (degrees_east)    40mr   141                  180                 full
  YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
- normal    E
- normal    F
 list/k=1:2 xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      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 (G006)          (AX024)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ 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
- rdstride XYTVAR   C:  8 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28194,20 +27969,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    NORMAL    NORMAL
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  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 (G006)          TTIME     (AX020)   YLAT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL    NORMAL    NORMAL
+ 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
- rdstride XYTVAR   C:  8 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28223,19 +27998,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    NORMAL    NORMAL
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  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 (G006)          (AX024)   (AX022)   (AX023)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          TTIME     (AX020)   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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -28251,8 +28026,8 @@ 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    NORMAL    NORMAL
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL
+ -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  canceling dset ./bn_strides.cdf
  
  
@@ -28275,17 +28050,17 @@ cancel region; set region/l=1
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    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 (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
+ allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28300,26 +28075,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    NORMAL    NORMAL
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6    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 (G006)          (AX024)   (AX022)   (AX023)   TAX1_6
+ dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6
+ allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28334,26 +28109,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    NORMAL    NORMAL
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    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 (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
+ allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28368,24 +28143,24 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   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
  
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    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 (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
+ dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
+ allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:  3 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28400,27 +28175,27 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M:  3 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   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
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    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 (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
+ allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:  3 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28435,24 +28210,24 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M:  3 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   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
  
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    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 (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
+ dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
+ allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28467,26 +28242,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    NORMAL    NORMAL
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    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 (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
+ allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28501,8 +28276,8 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   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
 ! bn_non_COARDS_netCDF.jnl
@@ -28516,31 +28291,31 @@ use non_COARDS
 show data
      currently SET data sets:
     1> ./non_COARDS.cdf  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  UNORDERED_AXIS
-          disordered axis                  1:5       ...       ...       ...       ...       ...
+          disordered axis                  1:5       ...       ...       ...
        (invalid coordinate axis)
  GAPPY_AXIS
-          gappy axis                       1:5       ...       ...       ...       ...       ...
+          gappy axis                       1:5       ...       ...       ...
        (invalid coordinate axis)
  SCALAR_VAR
-          a good way to encode model parm  1:1       ...       ...       ...       ...       ...
+          a good way to encode model parm  1:1       ...       ...       ...
  TRUE_SCALAR
-          with no dims at all              ...       ...       ...       ...       ...       ...
+          with no dims at all              ...       ...       ...       ...
  MASKED_SST
-          SST * MP_MASK                    1:180     1:90      ...       1:1       ...       ...
- COADSX   Longitude page positions         1:180     1:90      ...       ...       ...       ...
- COADSY   Latitude page positions          1:180     1:90      ...       ...       ...       ...
+          SST * MP_MASK                    1:180     1:90      ...       1:1
+ COADSX   Longitude page positions         1:180     1:90      ...       ...
+ COADSY   Latitude page positions          1:180     1:90      ...       ...
  HAS_NO_AXIS
-          variable with no axis            1:5       ...       ...       ...       ...       ...
+          variable with no axis            1:5       ...       ...       ...
  HAS_UNORDERED_AXIS
-          variable with disordered axis    1:5       ...       ...       ...       ...       ...
+          variable with disordered axis    1:5       ...       ...       ...
  HAS_GAPPY_AXIS
-          variable with gappy axis         1:5       ...       ...       ...       ...       ...
+          variable with gappy axis         1:5       ...       ...       ...
  HAS_BACKWARDS_AXIS
-          variable with backwards axis     1:5       ...       ...       ...       ...       ...
+          variable with backwards axis     1:5       ...       ...       ...
  USES_BIG_IRREG
-          variable defined on too-long ir  ...       ...       ...       1:200000  ...       ...
+          variable defined on too-long ir  ...       ...       ...       1:200000
  
 show grid/x HAS_NO_AXIS
     GRID GAB7
@@ -28549,8 +28324,6 @@ show grid/x HAS_NO_AXIS
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -28565,8 +28338,6 @@ show grid/x HAS_UNORDERED_AXIS
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -28581,8 +28352,6 @@ show grid/x HAS_GAPPY_AXIS
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -28597,8 +28366,6 @@ show grid/x HAS_BACKWARDS_AXIS
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -28613,8 +28380,6 @@ show grid/x SCALAR_VAR
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -28626,8 +28391,6 @@ show grid/i=1:5 USES_BIG_IRREG
  normal    Y
  normal    Z
  BIG_IRREG T (hours)       200000 i   1                    200000              full
- normal    E
- normal    F
  
 show grid MASKED_SST
     GRID GAB5
@@ -28636,8 +28399,6 @@ show grid MASKED_SST
  COADSY    LATITUDE            90 r   1N                   90N                 full
  normal    Z
  TIME      TIME                 1mr   16-JAN 06:00         16-JAN 06:00        full
- normal    E
- normal    F
 show grid COADSX
     GRID GAB6
  name       axis              # pts   start                end                 subset
@@ -28645,8 +28406,6 @@ show grid COADSX
  COADSY    LATITUDE            90 r   1N                   90N                 full
  normal    Z
  normal    T
- normal    E
- normal    F
 show grid COADSY
     GRID GAB6
  name       axis              # pts   start                end                 subset
@@ -28654,37 +28413,35 @@ show grid COADSY
  COADSY    LATITUDE            90 r   1N                   90N                 full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 show data
      currently SET data sets:
     1> ./non_COARDS.cdf  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  UNORDERED_AXIS
-          disordered axis                  1:5       ...       ...       ...       ...       ...
+          disordered axis                  1:5       ...       ...       ...
        (invalid coordinate axis)
  GAPPY_AXIS
-          gappy axis                       1:5       ...       ...       ...       ...       ...
+          gappy axis                       1:5       ...       ...       ...
        (invalid coordinate axis)
  SCALAR_VAR
-          a good way to encode model parm  1:1       ...       ...       ...       ...       ...
+          a good way to encode model parm  1:1       ...       ...       ...
  TRUE_SCALAR
-          with no dims at all              ...       ...       ...       ...       ...       ...
+          with no dims at all              ...       ...       ...       ...
  MASKED_SST
-          SST * MP_MASK                    1:180     1:90      ...       1:1       ...       ...
- COADSX   Longitude page positions         1:180     1:90      ...       ...       ...       ...
- COADSY   Latitude page positions          1:180     1:90      ...       ...       ...       ...
+          SST * MP_MASK                    1:180     1:90      ...       1:1
+ COADSX   Longitude page positions         1:180     1:90      ...       ...
+ COADSY   Latitude page positions          1:180     1:90      ...       ...
  HAS_NO_AXIS
-          variable with no axis            1:5       ...       ...       ...       ...       ...
+          variable with no axis            1:5       ...       ...       ...
  HAS_UNORDERED_AXIS
-          variable with disordered axis    1:5       ...       ...       ...       ...       ...
+          variable with disordered axis    1:5       ...       ...       ...
  HAS_GAPPY_AXIS
-          variable with gappy axis         1:5       ...       ...       ...       ...       ...
+          variable with gappy axis         1:5       ...       ...       ...
  HAS_BACKWARDS_AXIS
-          variable with backwards axis     1:5       ...       ...       ...       ...       ...
+          variable with backwards axis     1:5       ...       ...       ...
  USES_BIG_IRREG
-          variable defined on too-long ir  ...       ...       ...       1:200000  ...       ...
+          variable defined on too-long ir  ...       ...       ...       1:200000
  
 list UNORDERED_AXIS
              VARIABLE : disordered axis
@@ -28751,10 +28508,10 @@ GO bn_cache_hits.sub sst
  
 stat $1
  !-> stat sst
- getgrid EX#1     C:  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      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ reading SST      M:  1 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              LONGITUDE: 20E to 20E(380)
@@ -28772,21 +28529,21 @@ stat $1
  Mean    value: 16.52 (unweighted average)
  Standard deviation: 10.139
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  2 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  2 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1
  !-> stat sst
- -DELETE I        M:  2 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:  1 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              LONGITUDE: 20E to 20E(380)
@@ -28807,17 +28564,17 @@ stat $1
 define axis/x=130e:80w:1 xtrop
 stat $1[gx=xtrop]
  !-> stat sst[gx=xtrop]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
+ 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
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M:  2 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28836,28 +28593,28 @@ stat $1[gx=xtrop]
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST      M:  2 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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
+ dealloc  dynamic grid (G002)          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
- 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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  2 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  2 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[gx=xtrop]
  !-> stat sst[gx=xtrop]
- -DELETE I        M:  2 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ -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
+ 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
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M:  2 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28880,21 +28637,21 @@ let $1x = $1[gx=xtrop]
  !-> DEFINE VARIABLE sstx = sst[gx=xtrop]
 stat $1x
  !-> stat sstx
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST      M:  2 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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 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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTX     C:  6 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
+ 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
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M:  2 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
  
              SST[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -28912,21 +28669,21 @@ stat $1x
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      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
+ dealloc  dynamic grid (G002)          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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  4 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  4 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1x
  !-> stat sstx
- -DELETE I        M:  4 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SSTX     M:  3 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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
+ 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
  
              SST[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -28947,15 +28704,15 @@ stat $1x
 define grid/x=xtrop gx
 stat $1[g=gx]
  !-> stat sst[g=gx]
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- found   SST      M:  2 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
+ 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
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28974,25 +28731,25 @@ stat $1[g=gx]
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      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
+ dealloc  dynamic grid (G002)          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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  4 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  4 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[g=gx]
  !-> stat sst[g=gx]
- -DELETE I        M:  4 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- found   SST      M:  2 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ -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
+ 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
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -29014,18 +28771,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      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      NORMAL    NORMAL
- dealloc  dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
+ 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
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X, 1 deg on Y
@@ -29044,29 +28801,29 @@ 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      NORMAL    NORMAL
- -DELETE SST      M:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  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
+ dealloc  dynamic grid (G003)          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
- 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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  4 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  4 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[gx=xtrop,gy=ytrop]
  !-> stat sst[gx=xtrop,gy=ytrop]
- -DELETE I        M:  4 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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      NORMAL    NORMAL
- dealloc  dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
+ -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
+ 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
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X, 1 deg on Y
@@ -29087,19 +28844,19 @@ 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      NORMAL    NORMAL
- -DELETE SST      M:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- 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      NORMAL    NORMAL
+ dealloc  dynamic grid (G003)          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
 stat $1[g=gxyt]
  !-> stat sst[g=gxyt]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  strip regrid on X: SST --> GXYT             @LIN
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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  M: -999 -999  N: -999 -999
+ regrid  SST      M:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              regrid: GXYT
@@ -29118,24 +28875,24 @@ stat $1[g=gxyt]
  Mean    value: 26.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST      M:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  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
+ 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
+ getgrid 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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  4 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  4 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[g=gxyt]
  !-> stat sst[g=gxyt]
- -DELETE I        M:  4 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  strip regrid on X: SST --> GXYT             @LIN
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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  M: -999 -999  N: -999 -999
+ regrid  SST      M:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              regrid: GXYT
@@ -29158,16 +28915,16 @@ let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sstxyt = sst[g=gxyt]
 stat $1xyt
  !-> stat sstxyt
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST      M:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  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 SSTXYT   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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXYT   C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ getgrid 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 SSTXYT   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:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ eval    SSTXYT   C:  6 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  strip regrid on X: SST --> GXYT             @LIN
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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  M: -999 -999  N: -999 -999
+ regrid  SST      M:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29185,20 +28942,20 @@ stat $1xyt
  Mean    value: 26.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  6 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  6 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xyt
  !-> stat sstxyt
- -DELETE I        M:  6 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SSTXYT   M:  5 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M:  6 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SSTXYT   M:  5 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29218,23 +28975,23 @@ stat $1xyt
  
 let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sstxyt = sst[g=gxyt]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- -DELETE SSTXYT   M:  5 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST      M:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTX     M:  3 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST      M:  2 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME
+ -DELETE SSTXYT   M:  5 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ 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
+ -DELETE SST      M:  2 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
 stat $1xyt
  !-> stat sstxyt
- getgrid 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 SSTXYT   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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXYT   C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  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 SSTXYT   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:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ eval    SSTXYT   C:  6 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  strip regrid on X: SST --> GXYT             @LIN
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ found   SST      M:  1 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid XY
- regrid  SST      M:  2 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST      M:  2 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29252,20 +29009,20 @@ stat $1xyt
  Mean    value: 26.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  4 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  4 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xyt
  !-> stat sstxyt
- -DELETE I        M:  4 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SSTXYT   M:  3 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SSTXYT   M:  3 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29285,13 +29042,14 @@ stat $1xyt
  
 stat $1[x=@ave]
  !-> stat sst[x=@ave]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  strip --> SST[X=20E:20E(380)@AVE,D=1]
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ found   SST      M:  1 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  doing --> SST[X=20E:20E(380)@AVE,D=1]
+ final --> SST[X=20E:20E(380)@AVE,D=1]
  
              SEA SURFACE TEMPERATURE
              LONGITUDE: 20E to 20E(380) (averaged)
@@ -29309,21 +29067,21 @@ stat $1[x=@ave]
  Mean    value: 14.429 (unweighted average)
  Standard deviation: 10.445
 CONFUSE	
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  5 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  5 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[x=@ave]
  !-> stat sst[x=@ave]
- -DELETE I        M:  5 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST      M:  4 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M:  5 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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:  4 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              LONGITUDE: 20E to 20E(380) (averaged)
@@ -29345,14 +29103,14 @@ let $1xave = $1[x=@ave]
  !-> DEFINE VARIABLE sstxave = sst[x=@ave]
 stat $1xave
  !-> stat sstxave
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 SSTXAVE  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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXAVE  C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST      M:  4 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ getgrid SSTXAVE  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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ eval    SSTXAVE  C:  6 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:  4 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SST[X=@AVE]
              LONGITUDE: 20E to 20E(380)
@@ -29370,21 +29128,21 @@ stat $1xave
  Mean    value: 14.429 (unweighted average)
  Standard deviation: 10.445
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  6 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  6 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xave
  !-> stat sstxave
- -DELETE I        M:  6 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SSTXAVE  M:  5 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M:  6 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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SSTXAVE  M:  5 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SST[X=@AVE]
              LONGITUDE: 20E to 20E(380)
@@ -29404,14 +29162,14 @@ stat $1xave
  
 stat $1[x=@sbx]
  !-> stat sst[x=@sbx]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  strip --> SST[X=20E:20E(380)@SBX:3,D=1]
- strip moduloing SST on X axis:     0   181 dset:   1
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing SST on X axis:     1   180 dset:   1
+ strip moduloing SST on X axis:        0      181 dset:   1
+ found   SST      M:  1 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ doing moduloing SST on X axis:        1      180 dset:   1
  doing --> SST[X=20E:20E(380)@SBX:3,D=1]
  
              SEA SURFACE TEMPERATURE
@@ -29431,21 +29189,21 @@ stat $1[x=@sbx]
  Mean    value: 16.633 (unweighted average)
  Standard deviation: 10.112
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  8 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  8 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[x=@sbx]
  !-> stat sst[x=@sbx]
- -DELETE I        M:  8 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST      M:  7 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M:  8 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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:  7 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              box smoothed by 3 pts on X
@@ -29468,14 +29226,14 @@ let $1sbx = $1[x=@sbx]
  !-> DEFINE VARIABLE sstsbx = sst[x=@sbx]
 stat $1sbx
  !-> stat sstsbx
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 SSTSBX   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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTSBX   C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST      M:  7 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ getgrid SSTSBX   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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ eval    SSTSBX   C:  6 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:  7 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST[X=@SBX]
              LONGITUDE: 20E to 20E(380)
@@ -29493,21 +29251,21 @@ stat $1sbx
  Mean    value: 16.633 (unweighted average)
  Standard deviation: 10.112
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  9 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  9 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1sbx
  !-> stat sstsbx
- -DELETE I        M:  9 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SSTSBX   M:  8 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SSTSBX   M:  8 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST[X=@SBX]
              LONGITUDE: 20E to 20E(380)
@@ -29535,16 +29293,16 @@ GO bn_cache_hits.sub sst5
  
 stat $1
  !-> stat sst5
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 SST5     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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5     C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST      M:  6 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M:  9 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  9 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ getgrid SST5     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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ eval    SST5     C:  6 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:  6 dset:   1 I:      0    181  J:    1   90  K: -999 -999  L:      1      1
+ constan cnst     M:  9 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:  9 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  
              SST+5
              LONGITUDE: 20E to 20E(380)
@@ -29562,21 +29320,21 @@ stat $1
  Mean    value: 21.52 (unweighted average)
  Standard deviation: 10.139
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  9 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  9 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1
  !-> stat sst5
- -DELETE I        M:  9 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5     M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5     M: 10 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST+5
              LONGITUDE: 20E to 20E(380)
@@ -29597,17 +29355,17 @@ stat $1
 define axis/x=130e:80w:1 xtrop
 stat $1[gx=xtrop]
  !-> stat sst5[gx=xtrop]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
+ 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
- found   SST5     M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST5     M:  9 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
  
              SST+5
              regrid: 1 deg on X
@@ -29626,28 +29384,28 @@ stat $1[gx=xtrop]
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST5     M:  9 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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
+ dealloc  dynamic grid (G002)          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
- 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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  9 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  9 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[gx=xtrop]
  !-> stat sst5[gx=xtrop]
- -DELETE I        M:  9 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ -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
+ 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
- found   SST5     M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST5     M:  9 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
  
              SST+5
              regrid: 1 deg on X
@@ -29670,21 +29428,21 @@ let $1x = $1[gx=xtrop]
  !-> DEFINE VARIABLE sst5x = sst5[gx=xtrop]
 stat $1x
  !-> stat sst5x
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST5     M:  9 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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 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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5X    C:  6 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
+ 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
- found   SST5     M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST5     M:  9 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
  
              SST5[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -29702,21 +29460,21 @@ stat $1x
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      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
+ dealloc  dynamic grid (G002)          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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 12 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M: 12 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1x
  !-> stat sst5x
- -DELETE I        M: 12 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5X    M: 11 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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
+ 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
  
              SST5[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -29737,15 +29495,15 @@ stat $1x
 define grid/x=xtrop gx
 stat $1[g=gx]
  !-> stat sst5[g=gx]
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- found   SST5     M:  9 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
+ 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
+ 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
  
              SST+5
              regrid: 1 deg on X
@@ -29764,25 +29522,25 @@ stat $1[g=gx]
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      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
+ dealloc  dynamic grid (G002)          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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 12 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M: 12 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[g=gx]
  !-> stat sst5[g=gx]
- -DELETE I        M: 12 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- found   SST5     M:  9 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ -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
+ 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
+ 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
  
              SST+5
              regrid: 1 deg on X
@@ -29804,13 +29562,13 @@ 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      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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G002)          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
- found   SST5     M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ found   SST5     M: 10 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid XY
- regrid  SST5     M: 12 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST5     M: 12 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST+5
              regrid: GXYT
@@ -29829,20 +29587,20 @@ stat $1[gx=xtrop,gy=ytrop]
  Mean    value: 31.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 13 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M: 13 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[gx=xtrop,gy=ytrop]
  !-> stat sst5[gx=xtrop,gy=ytrop]
- -DELETE I        M: 13 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5     M: 12 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M: 13 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5     M: 12 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST+5
              regrid: GXYT
@@ -29863,15 +29621,15 @@ stat $1[gx=xtrop,gy=ytrop]
  
 define grid/like=$1/x=xtrop/y=ytrop gxyt
  !-> define grid/like=sst5/x=xtrop/y=ytrop gxyt
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- 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      NORMAL    NORMAL
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME
+ 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
 stat $1[g=gxyt]
  !-> stat sst5[g=gxyt]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5     M: 12 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5     M: 12 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST+5
              regrid: GXYT
@@ -29890,20 +29648,20 @@ stat $1[g=gxyt]
  Mean    value: 31.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 13 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M: 13 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[g=gxyt]
  !-> stat sst5[g=gxyt]
- -DELETE I        M: 13 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5     M: 12 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M: 13 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5     M: 12 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST+5
              regrid: GXYT
@@ -29926,12 +29684,12 @@ let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sst5xyt = sst5[g=gxyt]
 stat $1xyt
  !-> stat sst5xyt
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      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 SST5XYT  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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XYT  C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5     M: 12 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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 SST5XYT  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:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ eval    SST5XYT  C:  6 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5     M: 12 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST5[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29949,20 +29707,20 @@ stat $1xyt
  Mean    value: 31.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 14 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M: 14 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xyt
  !-> stat sst5xyt
- -DELETE I        M: 14 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5XYT  M: 13 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M: 14 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5XYT  M: 13 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST5[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29982,36 +29740,36 @@ stat $1xyt
  
 let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sst5xyt = sst5[g=gxyt]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST5XYT  M: 13 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST5X    M: 11 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST5     M:  9 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 12 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SSTSBX   M:  8 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SSTXAVE  M:  5 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SSTXYT   M:  3 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME
+ -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
+ -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
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ -DELETE SSTSBX   M:  8 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ -DELETE SSTXAVE  M:  5 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ -DELETE SSTXYT   M:  3 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME
 stat $1xyt
  !-> stat sst5xyt
- getgrid 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 SST5XYT  C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid SST5     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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XYT  C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  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 SST5XYT  C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid SST5     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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ eval    SST5XYT  C:  6 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  9 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST      M:  6 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    SST5     C:  9 dset:   1 I:     55    131  J:   35   56  K: -999 -999  L:      1      1
+ found   SST      M:  6 dset:   1 I:      0    181  J:    1   90  K: -999 -999  L:      1      1
+ constan cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  regrid XY
- regrid  SST5     M:  3 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST5     M:  3 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST5[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -30029,20 +29787,20 @@ stat $1xyt
  Mean    value: 31.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 12 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M: 12 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xyt
  !-> stat sst5xyt
- -DELETE I        M: 12 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5XYT  M:  8 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5XYT  M:  8 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST5[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -30062,16 +29820,17 @@ stat $1xyt
  
 stat $1[x=@ave]
  !-> stat sst5[x=@ave]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  strip --> SST5[X=20E:20E(380)@AVE,D=1]
- eval    SST5     C:  7 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST      M:  6 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    SST5     C:  7 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:  6 dset:   1 I:      0    181  J:    1   90  K: -999 -999  L:      1      1
+ constan cnst     M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  doing --> SST5[X=20E:20E(380)@AVE,D=1]
+ final --> SST5[X=20E:20E(380)@AVE,D=1]
  
              SST+5
              LONGITUDE: 20E to 20E(380) (averaged)
@@ -30089,21 +29848,21 @@ stat $1[x=@ave]
  Mean    value: 19.429 (unweighted average)
  Standard deviation: 10.445
 CONFUSE	
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  9 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  9 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[x=@ave]
  !-> stat sst5[x=@ave]
- -DELETE I        M:  9 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5     M: 12 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5     M: 12 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SST+5
              LONGITUDE: 20E to 20E(380) (averaged)
@@ -30125,14 +29884,14 @@ let $1xave = $1[x=@ave]
  !-> DEFINE VARIABLE sst5xave = sst5[x=@ave]
 stat $1xave
  !-> stat sst5xave
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 SST5XAVE 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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XAVE C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5     M: 12 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ getgrid SST5XAVE 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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ eval    SST5XAVE C:  6 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5     M: 12 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SST5[X=@AVE]
              LONGITUDE: 20E to 20E(380)
@@ -30150,21 +29909,21 @@ stat $1xave
  Mean    value: 19.429 (unweighted average)
  Standard deviation: 10.445
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 11 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M: 11 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xave
  !-> stat sst5xave
- -DELETE I        M: 11 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5XAVE M:  9 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M: 11 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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5XAVE M:  9 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SST5[X=@AVE]
              LONGITUDE: 20E to 20E(380)
@@ -30184,14 +29943,14 @@ stat $1xave
  
 stat $1[x=@sbx]
  !-> stat sst5[x=@sbx]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  strip --> SST5[X=20E:20E(380)@SBX:3,D=1]
- strip moduloing SST5 on X axis:     0   181 dset:   1
- found   SST5     M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing SST5 on X axis:     1   180 dset:   1
+ strip moduloing SST5 on X axis:        0      181 dset:   1
+ found   SST5     M: 10 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ doing moduloing SST5 on X axis:        1      180 dset:   1
  doing --> SST5[X=20E:20E(380)@SBX:3,D=1]
  
              SST+5
@@ -30211,21 +29970,21 @@ stat $1[x=@sbx]
  Mean    value: 21.633 (unweighted average)
  Standard deviation: 10.112
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 14 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M: 14 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[x=@sbx]
  !-> stat sst5[x=@sbx]
- -DELETE I        M: 14 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5     M: 13 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M: 14 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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5     M: 13 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST+5
              box smoothed by 3 pts on X
@@ -30248,14 +30007,14 @@ let $1sbx = $1[x=@sbx]
  !-> DEFINE VARIABLE sst5sbx = sst5[x=@sbx]
 stat $1sbx
  !-> stat sst5sbx
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 SST5SBX  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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5SBX  C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5     M: 13 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ getgrid SST5SBX  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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ eval    SST5SBX  C:  6 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5     M: 13 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST5[X=@SBX]
              LONGITUDE: 20E to 20E(380)
@@ -30273,21 +30032,21 @@ stat $1sbx
  Mean    value: 21.633 (unweighted average)
  Standard deviation: 10.112
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 15 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M: 15 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1sbx
  !-> stat sst5sbx
- -DELETE I        M: 15 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5SBX  M: 14 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M: 15 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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5SBX  M: 14 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST5[X=@SBX]
              LONGITUDE: 20E to 20E(380)
@@ -30318,24 +30077,24 @@ set mode diag
  
 let a = i[i=1:10]
 say `a,return=isize`     ! no evaluation of a required -- just context
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ 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
+ getgrid A        C:  7 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 A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 15 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pass #2 A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  I        M: 15 dset:   0 I:      1     10  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 10
 10
 list/nohead a            ! evaluate it now
- -DELETE I        M: 15 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- found   A        M: 16 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M: 15 dset:   0 I:      1     10  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
+ found   A        M: 16 dset:   0 I:      1     10  J: -999 -999  K: -999 -999  L:   -999   -999
  1    /  1:   1.00
  2    /  2:   2.00
  3    /  3:   3.00
@@ -30348,46 +30107,46 @@ list/nohead a            ! evaluate it now
  10   / 10:  10.00
  
 let a = XSEQUENCE(j[j=1:5])
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 16 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE SST5SBX  M: 14 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST5XAVE M:  9 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST5XYT  M:  8 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST5     M:  3 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M:  5 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 11 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 12 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 13 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE A        M: 16 dset:   0 I:      1     10  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE SST5SBX  M: 14 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ -DELETE SST5XAVE M:  9 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ -DELETE SST5XYT  M:  8 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME
+ -DELETE SST5     M:  3 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ -DELETE SST5     M:  5 dset:   1 I:     55    131  J:   35   56  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: 11 dset:   1 I:      0    181  J:    1   90  K: -999 -999  L:      1      1
+ -DELETE SST5     M: 12 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
+ -DELETE SST5     M: 13 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
 say `a,return=isize`     ! evaluate it now
- getgrid 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
- getgrid (C01,V11 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C11,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  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 A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C01,V11 C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C11,V11 C: 11 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 (C11,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C11,V11 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M: 13 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pass #2 (C11,V11 C: 11 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V11 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C11,V11 C: 10 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  J        M: 13 dset:   0 I:   -999   -999  J:    1    5  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 5
 5
 list/nohead a            ! cache hit
- -DELETE J        M: 13 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- found   (C11,V11 M: 12 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE J        M: 13 dset:   0 I:   -999   -999  J:    1    5  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V11 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ found   (C11,V11 M: 12 dset:   0 I:   -999   -999  J:    1    5  K: -999 -999  L:   -999   -999
  1   / 1:  1.000
  2   / 2:  2.000
  3   / 3:  3.000
@@ -30395,51 +30154,51 @@ list/nohead a            ! cache hit
  5   / 5:  5.000
  
 let a = SAMPLEI(I[i=1:100], {8,5,3})
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C11,V11 M: 12 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid YABSTRACT       NORMAL    ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C01,V11 M: 11 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 13 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M:  5 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M: 10 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE (C11,V11 M: 12 dset:   0 I:   -999   -999  J:    1    5  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid YABSTRACT       NORMAL    ABSTRACT  NORMAL    NORMAL
+ -DELETE (C01,V11 M: 11 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE (C01,V11 M: 13 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE A        M:  5 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE A        M: 10 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
 say `a,return=isize`     ! evaluate it now
- getgrid 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
- getgrid (C01,V11 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- 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
+ getgrid 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
+ getgrid (C01,V11 C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {8,5,3}  M: 10 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   0
- eval    (C09,V11 C: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 11 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 13 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE A        M:  5 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  3 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE {8,5,3}  M: 10 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ 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
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V11 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ const_v {8,5,3}  M: 10 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing sampling tpry on I axis:        1        3 dset:   0
+ eval    (C09,V11 C: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  I        M: 11 dset:   0 I:      1    100  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE (C01,V11 M: 13 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE A        M:  5 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  3 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE {8,5,3}  M: 10 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 3
 3
 list/nohead a            ! cache hit
- -DELETE I        M: 11 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {8,5,3}  M: 11 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   0
- found   (C09,V11 M: 12 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 13 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  3 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  8 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE {8,5,3}  M: 11 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M: 11 dset:   0 I:      1    100  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V11 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ const_v {8,5,3}  M: 11 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing sampling tpry on I axis:        1        3 dset:   0
+ found   (C09,V11 M: 12 dset:   0 I:      1    100  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE (C01,V11 M: 13 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  3 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  8 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE {8,5,3}  M: 11 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  1   / 1:  8.000
  2   / 2:  5.000
  3   / 3:  3.000
@@ -30447,76 +30206,74 @@ list/nohead a            ! cache hit
 spawn rm -f foo.bar*
 spawn touch foo.bar1 foo.bar2 foo.bar3
 let a = SPAWN("ls foo.bar*")
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C09,V11 M: 12 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C01,V11 M:  3 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M:  5 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 10 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M: 11 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE (C09,V11 M: 12 dset:   0 I:      1    100  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE (C01,V11 M:  3 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE (C01,V11 M:  5 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE A        M: 10 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE A        M: 11 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
 say `a,return=isize`     ! evaluate it now
- getgrid 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
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- string str      M: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  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 A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ string str      M: 11 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 3
 3
 list/nohead a            ! cache hit
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- found   A        M: 10 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 10 dset:   0 I:      1      3  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
+ found   A        M:  5 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  1   / 1:"foo.bar1"
  2   / 2:"foo.bar2"
  3   / 3:"foo.bar3"
  
 ! RESHAPE, alone, is set to require matched limits in order to make a cache hit
 let a = RESHAPE(I[I=1:3]+10*j[j=1:3], I[i=1:9])
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 10 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE A        M:  5 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
 say `a,return=isize`
- getgrid 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
- getgrid (C01,V11 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C31,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  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 A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C01,V11 C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C31,V11 C: 11 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 (C31,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- 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
+ pass #2 (C31,V11 C: 11 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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    NORMAL    NORMAL
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C09,V11 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 10 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- constan cnst     M:  5 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M:  3 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE J        M:  3 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  5 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 12 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE I        M: 10 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C31,V11 C: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 10 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ 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
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V11 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C09,V11 C: 10 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  I        M:  5 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ constan cnst     M: 10 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  J        M:  3 dset:   0 I:   -999   -999  J:    1    3  K: -999 -999  L:   -999   -999
+ -DELETE J        M:  3 dset:   0 I:   -999   -999  J:    1    3  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M: 10 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE tpry     M: 12 dset:   0 I:   -999   -999  J:    1    3  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE I        M:  5 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C31,V11 C: 11 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  I        M:  5 dset:   0 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 9
 9
 list/nohead a            ! no cache hit
- -DELETE I        M: 10 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- found   (C09,V11 M:  5 dset:   0 I:    1    3  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- found   (C31,V11 M: 12 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M:  5 dset:   0 I:      1      9  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
+ found   A        M:  8 dset:   0 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
  1   / 1:  11.00
  2   / 2:  12.00
  3   / 3:  13.00
@@ -30578,8 +30335,6 @@ show grid
  COADSY    LATITUDE            90 r   89S                  89N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! per axis regrid
 ! 5/01 note: changed from y=0 yo y=5s to accomodate Y-truncated
@@ -30609,8 +30364,6 @@ show grid
  YAX       LATITUDE            81 r   20S                  20N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! combined full grid and per-axis
 list/x=160e/y=5s temp[d=2,k=1,g=gg,gx=a[d=1]]
@@ -30638,8 +30391,6 @@ show grid
  YAX       LATITUDE            81 r   20S                  20N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! pseudo-variable access
 list/i=1:4 i[g=a]		! a is previously loaded
@@ -30679,8 +30430,6 @@ show grid gg1
  COADSY    LATITUDE            90 r   89S                  89N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
 let f = sst[y=20s:20n:.1,d=coads_climatology]
 DEFINE GRID/LIKE=f/x=temp[d=levitus_climatology] gg2
 cancel variable f
@@ -30691,8 +30440,6 @@ show grid gg2
  (AX008)   LATITUDE           401 r   20S                  20N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     no implicit grids
@@ -30714,8 +30461,6 @@ show grid gg2
  YAXLEVITR1_90 LATITUDE        90 r   89.5S                0.5S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     no implicit grids
@@ -30734,8 +30479,6 @@ show grid
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! The SET GRID (default) definition should be protected -- not altered
 load/d=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
@@ -30745,11 +30488,9 @@ show grid
     GRID (G004)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX010)   LATITUDE           201 r   10S                  10N                 200 pts
+ (AX010)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     GRID (G004)                          use count:   1
@@ -30758,20 +30499,6 @@ Dynamic grids:
  (AX010)   LATITUDE           201 r   10S                  10N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-    GRID (G003)                          use count:   1
- name       axis              # pts   start                end
- (AX009)   LONGITUDE          301 r   0E                   30E
- COADSY    LATITUDE            90 r   89S                  89N
- normal    Z
- TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX010)                         use count:   1
-    AXIS (AX009)                         use count:   1
-    AXIS (AX008)                         use count:   1
  
 ! deliberate errors
 set mode ignore
@@ -30889,63 +30616,49 @@ SHOW GRID temp[d=2,gx=sst[d=1],y=10s:2s:.2]             ! implicit Y axis
     GRID (G006)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX007)   LATITUDE            41 r   10S                  2S                  40 pts
+ (AX007)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
 SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5"
     GRID (G006)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX010)   LATITUDE            41 r   10S                  2S                  40 pts
+ (AX010)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
 SHOW GRID FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) ! imposed T axis
     GRID (G007)
  name       axis              # pts   start                end                 subset
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
- (AX007)   LATITUDE            41 r   10S                  2S                  40 pts
+ (AX007)   LATITUDE            41 r   10S                  2S                  41 pts
  normal    Z
  (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
- normal    E
- normal    F
 SHOW GRID SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])      ! abstract X axis
     GRID (G006)
  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                  40 pts
+ (AX007)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
 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)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX011)   LATITUDE            41 r   10S                  2S                  40 pts
+ (AX011)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
     GRID (G007)
  name       axis              # pts   start                end                 subset
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
- (AX007)   LATITUDE            41 r   10S                  2S                  40 pts
+ (AX007)   LATITUDE            41 r   10S                  2S                  41 pts
  normal    Z
  (AX010)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
- normal    E
- normal    F
     GRID (G006)
  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                  40 pts
+ (AX007)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
  
 load/x=160e/y=5s temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5
 SHOW GRID
@@ -30954,11 +30667,9 @@ SHOW GRID
     GRID (G006)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX010)   LATITUDE            41 r   10S                  2S                  40 pts
+ (AX010)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
 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)
@@ -30969,8 +30680,6 @@ SHOW GRID
  (AX007)   LATITUDE            41 r   10S                  2S                  full
  normal    Z
  (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448          full
- normal    E
- normal    F
 list/j=1:5 j
              VARIABLE : J
                         axis (AX007)
@@ -30988,8 +30697,6 @@ SHOW GRID MYGRID
  (AX007)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
- normal    E
- normal    F
 SHOW GRID/DYNAMIC
 Dynamic grids:
     GRID (G004)                          use count:   1
@@ -30998,20 +30705,6 @@ Dynamic grids:
  (AX007)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
- normal    E
- normal    F
-    GRID (G007)                          use count:   1
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX007)   LATITUDE            41 r   10S                  2S
- normal    Z
- (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX011)                         use count:   1
-    AXIS (AX007)                         use count:   3
-    AXIS (AX008)                         use count:   1
  
 *** Running ferret script: bn_calendar.jnl
 ! bn_calendar.jnl
@@ -31154,8 +30847,8 @@ use calsst
 sh data
      currently SET data sets:
     1> ./calsst.cdf  (default)
- name     title                             I         J         K         L         M         N
- NDATA    TEMP[GT=TGRID]                   1:10      1:13      1:1       1:21      ...       ...
+ name     title                             I         J         K         L
+ NDATA    TEMP[GT=TGRID]                   1:10      1:13      1:1       1:21
  
 sh grid ndata
     GRID GSH1
@@ -31164,8 +30857,6 @@ sh grid ndata
  PSYT39_51 LATITUDE            13 i   2.167S               1.833N              full
  PSZT1_1   DEPTH (m)            1 r-  5                    5                   full
  TWEEKS1   TIME                21 r   20-AUG-1982 00:00    07-JAN-1983 00:00   full
- normal    E
- normal    F
 sh axis tweeks
  name       axis              # pts   start                end
  TWEEKS    TIME                21 r   20-AUG-1982 00:00    07-JAN-1983 00:00
@@ -31336,6 +31027,7 @@ vector/flow/over/len=10  u,v
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 set mode meta flowlines.plt
 can mode logo
  
@@ -31348,6 +31040,7 @@ can mode meta
 ! curvilinear flowline plots
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 use coads_climatology
 go mp_sinusoidal
@@ -31420,6 +31113,7 @@ plot/hlog fcn
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_fft
 ! Benchmark Ferret script for FFT.  Uses analytic function of time.
  
@@ -31453,8 +31147,6 @@ SH GRID tgrid
  normal    Y
  normal    Z
  DAYT      TIME               365 r   01-JAN-1990 00:00    31-DEC-1990 00:00
- normal    E
- normal    F
 SET GRID tgrid
  
 LET fcn1 = sin(kt*tpts - phase) /2.
@@ -31560,6 +31252,7 @@ CANCEL MODE IGNORE_ERRORS
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_gridding
 ! bench_gridding.jnl
 ! *acm* 8/99
@@ -31757,6 +31450,7 @@ can axis x10
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_scat2grid_test
 ! bn_scat2grid_test.jnl
 ! From JonCallahan's insitu_gaussian_*.jnl
@@ -31827,8 +31521,6 @@ show grid xy_laplace_gridded
  Y_20      LATITUDE            20 r   10N                  20N                 full
  normal    Z
  normal    T
- normal    E
- normal    F
 ! when the result grid axes were extended, the axis coordinates in the following were messed up
 list xy_laplace_gridded
              VARIABLE : SCAT2GRIDLAPLACE_XY(XAX,YAX,O2_UMOL_KG,X[GX=X_20],Y[GY=Y_20],2,2)
@@ -31906,6 +31598,7 @@ can axis x_20
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_scat2grid_gl
 ! bn_scat2grid_gl.jnl
 ! test the scat2gridgauss and scat2gridlaplace functions,
@@ -32433,6 +32126,7 @@ can axis x_15
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_scat2gridlaplace_tarasoff
 ! bn_scat2gridlaplace_tarasoff
 ! check for error reported by Lev Tarasoff 5/10/2006
@@ -32458,8 +32152,6 @@ show grid wgtl
  YLATEF    LATITUDE            73 r   47.25N               83.25N              full
  normal    Z
  normal    T
- normal    E
- normal    F
 load wgtl
 ! shade wgtl ! Result is shifted in X:
 ! data shows up at 70e that should be at 35e
@@ -32536,6 +32228,7 @@ cancel axis ylatef
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_scat2grid_nobs
 ! bn_scat2grid_nobs.jnl
 ! test of scat2grid_nobs functions,
@@ -32839,6 +32532,7 @@ can axis x_15
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_scat2grid_t
 ! bn_scat2grid_t.jnl
 ! test the ave_scat2grid_t and scat2grid_t functions,
@@ -32918,6 +32612,7 @@ can axis t_32
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_transpose
 ! bn_tranpose.jnl
 ! test the transpose functions,
@@ -33278,6 +32973,979 @@ list transpose_zt(myvar)
  2   / 3:  110.0  111.0  112.0  113.0  114.0
  3   / 4:  115.0  116.0  117.0  118.0  119.0
  
+def axis /X=0.0:4.0:1.0/units=degrees_east xaxs
+def axis /Y=0.0:3.0:1.0/units=degrees_north yaxs
+def axis /Z=0.0:1.4:0.2/units=m/depth zaxs
+def axis /T=0.0:6.0:1.0/units=days/t0=1-jan-2001 taxs
+def axis /E=0.0:10.0:5 eaxs
+def axis /F=0.0:100.0:20 faxs
+def grid /X=xaxs /Y=yaxs /Z=zaxs /T=taxs /E=eaxs /F=faxs mygrd
+ 
+set grid mygrd
+let myvar = X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+ 
+ 
+! * * * * Simple XYZTEF examples * * *
+ 
+list/x=1/y=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 3 by 6 points (E-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+               0      5     10    
+               1      2      3
+ 0     / 1:  86.00  91.00  96.00
+ 20    / 2:  66.00  71.00  76.00
+ 40    / 3:  46.00  51.00  56.00
+ 60    / 4:  26.00  31.00  36.00
+ 80    / 5:   6.00  11.00  16.00
+ 100   / 6: -14.00  -9.00  -4.00
+list/x=1/y=1/z=1/t=1 transpose_ef(myvar)
+             VARIABLE : TRANSPOSE_EF(MYVAR)
+             SUBSET   : 6 by 3 points (E-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             1      2      3      4      5      6    
+             1      2      3      4      5      6
+ 1   / 1:  86.00  66.00  46.00  26.00   6.00 -14.00
+ 2   / 2:  91.00  71.00  51.00  31.00  11.00  -9.00
+ 3   / 3:  96.00  76.00  56.00  36.00  16.00  -4.00
+ 
+list/e=5/y=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 6 points (LONGITUDE-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+              0E     1E     2E     3E     4E    
+               1      2      3      4      5
+ 0     / 1:  90.00  91.00  92.00  93.00  94.00
+ 20    / 2:  70.00  71.00  72.00  73.00  74.00
+ 40    / 3:  50.00  51.00  52.00  53.00  54.00
+ 60    / 4:  30.00  31.00  32.00  33.00  34.00
+ 80    / 5:  10.00  11.00  12.00  13.00  14.00
+ 100   / 6: -10.00  -9.00  -8.00  -7.00  -6.00
+list/e=5/y=1/z=1/t=1 transpose_xf(myvar)
+             VARIABLE : TRANSPOSE_XF(MYVAR)
+             SUBSET   : 6 by 5 points (X-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+             1      2      3      4      5      6    
+             1      2      3      4      5      6
+ 1   / 1:  90.00  70.00  50.00  30.00  10.00 -10.00
+ 2   / 2:  91.00  71.00  51.00  31.00  11.00  -9.00
+ 3   / 3:  92.00  72.00  52.00  32.00  12.00  -8.00
+ 4   / 4:  93.00  73.00  53.00  33.00  13.00  -7.00
+ 5   / 5:  94.00  74.00  54.00  34.00  14.00  -6.00
+list/F=25/y=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 3 points (LONGITUDE-E)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+             0E     1E     2E     3E     4E    
+              1      2      3      4      5
+ 0    / 1:  65.00  66.00  67.00  68.00  69.00
+ 5    / 2:  70.00  71.00  72.00  73.00  74.00
+ 10   / 3:  75.00  76.00  77.00  78.00  79.00
+list/F=25/y=1/z=1/t=1 transpose_xe(myvar)
+             VARIABLE : TRANSPOSE_XE(MYVAR)
+             SUBSET   : 3 by 5 points (X-E)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+             1      2      3    
+             1      2      3
+ 1   / 1:  65.00  70.00  75.00
+ 2   / 2:  66.00  71.00  76.00
+ 3   / 3:  67.00  72.00  77.00
+ 4   / 4:  68.00  73.00  78.00
+ 5   / 5:  69.00  74.00  79.00
+ 
+list/e=5/x=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 4 by 6 points (LATITUDE-F)
+             LONGITUDE: 1E
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+               0     1N     2N     3N    
+               1      2      3      4
+ 0     / 1:   86.0   91.0   96.0  101.0
+ 20    / 2:   66.0   71.0   76.0   81.0
+ 40    / 3:   46.0   51.0   56.0   61.0
+ 60    / 4:   26.0   31.0   36.0   41.0
+ 80    / 5:    6.0   11.0   16.0   21.0
+ 100   / 6:  -14.0   -9.0   -4.0    1.0
+list/e=5/x=1/z=1/t=1 transpose_yf(myvar)
+             VARIABLE : TRANSPOSE_YF(MYVAR)
+             SUBSET   : 6 by 4 points (Y-F)
+             LONGITUDE: 1E
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+             1      2      3      4      5      6    
+             1      2      3      4      5      6
+ 1   / 1:   86.0   66.0   46.0   26.0    6.0  -14.0
+ 2   / 2:   91.0   71.0   51.0   31.0   11.0   -9.0
+ 3   / 3:   96.0   76.0   56.0   36.0   16.0   -4.0
+ 4   / 4:  101.0   81.0   61.0   41.0   21.0    1.0
+list/F=25/x=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 4 by 3 points (LATITUDE-E)
+             LONGITUDE: 1E
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+              0     1N     2N     3N    
+              1      2      3      4
+ 0    / 1:  61.00  66.00  71.00  76.00
+ 5    / 2:  66.00  71.00  76.00  81.00
+ 10   / 3:  71.00  76.00  81.00  86.00
+list/F=25/x=1/z=1/t=1 transpose_ye(myvar)
+             VARIABLE : TRANSPOSE_YE(MYVAR)
+             SUBSET   : 3 by 4 points (Y-E)
+             LONGITUDE: 1E
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+             1      2      3    
+             1      2      3
+ 1   / 1:  61.00  66.00  71.00
+ 2   / 2:  66.00  71.00  76.00
+ 3   / 3:  71.00  76.00  81.00
+ 4   / 4:  76.00  81.00  86.00
+ 
+list/e=5/x=1/y=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 8 by 6 points (DEPTH (m)-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+              0      0.2    0.4    0.6    0.8    1      1.2    1.4   
+               1      2      3      4      5      6      7      8
+ 0     / 1:  71.00  75.00  79.00  83.00  87.00  91.00  95.00  99.00
+ 20    / 2:  51.00  55.00  59.00  63.00  67.00  71.00  75.00  79.00
+ 40    / 3:  31.00  35.00  39.00  43.00  47.00  51.00  55.00  59.00
+ 60    / 4:  11.00  15.00  19.00  23.00  27.00  31.00  35.00  39.00
+ 80    / 5:  -9.00  -5.00  -1.00   3.00   7.00  11.00  15.00  19.00
+ 100   / 6: -29.00 -25.00 -21.00 -17.00 -13.00  -9.00  -5.00  -1.00
+list/e=5/x=1/y=1/t=1 transpose_zf(myvar)
+             VARIABLE : TRANSPOSE_ZF(MYVAR)
+             SUBSET   : 6 by 8 points (Z-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+             1      2      3      4      5      6    
+             1      2      3      4      5      6
+ 1   / 1:  71.00  51.00  31.00  11.00  -9.00 -29.00
+ 2   / 2:  75.00  55.00  35.00  15.00  -5.00 -25.00
+ 3   / 3:  79.00  59.00  39.00  19.00  -1.00 -21.00
+ 4   / 4:  83.00  63.00  43.00  23.00   3.00 -17.00
+ 5   / 5:  87.00  67.00  47.00  27.00   7.00 -13.00
+ 6   / 6:  91.00  71.00  51.00  31.00  11.00  -9.00
+ 7   / 7:  95.00  75.00  55.00  35.00  15.00  -5.00
+ 8   / 8:  99.00  79.00  59.00  39.00  19.00  -1.00
+list/F=25/x=1/y=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 8 by 3 points (DEPTH (m)-E)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+             0      0.2    0.4    0.6    0.8    1      1.2    1.4   
+              1      2      3      4      5      6      7      8
+ 0    / 1:  46.00  50.00  54.00  58.00  62.00  66.00  70.00  74.00
+ 5    / 2:  51.00  55.00  59.00  63.00  67.00  71.00  75.00  79.00
+ 10   / 3:  56.00  60.00  64.00  68.00  72.00  76.00  80.00  84.00
+list/F=25/x=1/y=1/t=1 transpose_ze(myvar)
+             VARIABLE : TRANSPOSE_ZE(MYVAR)
+             SUBSET   : 3 by 8 points (Z-E)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+             1      2      3    
+             1      2      3
+ 1   / 1:  46.00  51.00  56.00
+ 2   / 2:  50.00  55.00  60.00
+ 3   / 3:  54.00  59.00  64.00
+ 4   / 4:  58.00  63.00  68.00
+ 5   / 5:  62.00  67.00  72.00
+ 6   / 6:  66.00  71.00  76.00
+ 7   / 7:  70.00  75.00  80.00
+ 8   / 8:  74.00  79.00  84.00
+ 
+list/e=5/x=1/y=1/z=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 7 by 6 points (TIME-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             E        : 5
+              2001   2001   2001   2001   2001   2001   2001  
+               1      2      3      4      5      6      7
+ 0     / 1:   31.0   91.0  151.0  211.0  271.0  331.0  391.0
+ 20    / 2:   11.0   71.0  131.0  191.0  251.0  311.0  371.0
+ 40    / 3:   -9.0   51.0  111.0  171.0  231.0  291.0  351.0
+ 60    / 4:  -29.0   31.0   91.0  151.0  211.0  271.0  331.0
+ 80    / 5:  -49.0   11.0   71.0  131.0  191.0  251.0  311.0
+ 100   / 6:  -69.0   -9.0   51.0  111.0  171.0  231.0  291.0
+list/e=5/x=1/y=1/z=1 transpose_tf(myvar)
+             VARIABLE : TRANSPOSE_TF(MYVAR)
+             SUBSET   : 6 by 7 points (T-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             E        : 5
+             1      2      3      4      5      6    
+             1      2      3      4      5      6
+ 1   / 1:   31.0   11.0   -9.0  -29.0  -49.0  -69.0
+ 2   / 2:   91.0   71.0   51.0   31.0   11.0   -9.0
+ 3   / 3:  151.0  131.0  111.0   91.0   71.0   51.0
+ 4   / 4:  211.0  191.0  171.0  151.0  131.0  111.0
+ 5   / 5:  271.0  251.0  231.0  211.0  191.0  171.0
+ 6   / 6:  331.0  311.0  291.0  271.0  251.0  231.0
+ 7   / 7:  391.0  371.0  351.0  331.0  311.0  291.0
+list/F=25/x=1/y=1/z=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 7 by 3 points (TIME-E)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             F        : 20
+             2001   2001   2001   2001   2001   2001   2001  
+              1      2      3      4      5      6      7
+ 0    / 1:    6.0   66.0  126.0  186.0  246.0  306.0  366.0
+ 5    / 2:   11.0   71.0  131.0  191.0  251.0  311.0  371.0
+ 10   / 3:   16.0   76.0  136.0  196.0  256.0  316.0  376.0
+list/F=25/x=1/y=1/z=1 transpose_te(myvar)
+             VARIABLE : TRANSPOSE_TE(MYVAR)
+             SUBSET   : 3 by 7 points (T-E)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             F        : 20
+             1      2      3    
+             1      2      3
+ 1   / 1:    6.0   11.0   16.0
+ 2   / 2:   66.0   71.0   76.0
+ 3   / 3:  126.0  131.0  136.0
+ 4   / 4:  186.0  191.0  196.0
+ 5   / 5:  246.0  251.0  256.0
+ 6   / 6:  306.0  311.0  316.0
+ 7   / 7:  366.0  371.0  376.0
+ 
+ 
+! * * * *  XYZTEF examples with another dimension * * *
+ 
+list/y=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 3 by 6 points (LONGITUDE-E-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             0E     1E     2E     3E     4E    
+              1      2      3      4      5
+ ---- N:1 F:   0
+ 0    / 1:  85.00  86.00  87.00  88.00  89.00
+ 5    / 2:  90.00  91.00  92.00  93.00  94.00
+ 10   / 3:  95.00  96.00  97.00  98.00  99.00
+ ---- N:2 F:   20
+ 0    / 1:  65.00  66.00  67.00  68.00  69.00
+ 5    / 2:  70.00  71.00  72.00  73.00  74.00
+ 10   / 3:  75.00  76.00  77.00  78.00  79.00
+ ---- N:3 F:   40
+ 0    / 1:  45.00  46.00  47.00  48.00  49.00
+ 5    / 2:  50.00  51.00  52.00  53.00  54.00
+ 10   / 3:  55.00  56.00  57.00  58.00  59.00
+ ---- N:4 F:   60
+ 0    / 1:  25.00  26.00  27.00  28.00  29.00
+ 5    / 2:  30.00  31.00  32.00  33.00  34.00
+ 10   / 3:  35.00  36.00  37.00  38.00  39.00
+ ---- N:5 F:   80
+ 0    / 1:   5.00   6.00   7.00   8.00   9.00
+ 5    / 2:  10.00  11.00  12.00  13.00  14.00
+ 10   / 3:  15.00  16.00  17.00  18.00  19.00
+ ---- N:6 F:   100
+ 0    / 1: -15.00 -14.00 -13.00 -12.00 -11.00
+ 5    / 2: -10.00  -9.00  -8.00  -7.00  -6.00
+ 10   / 3:  -5.00  -4.00  -3.00  -2.00  -1.00
+list/y=1/z=1/t=1 transpose_ef(myvar)
+             VARIABLE : TRANSPOSE_EF(MYVAR)
+             SUBSET   : 5 by 6 by 3 points (LONGITUDE-E-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+            0E     1E     2E     3E     4E    
+             1      2      3      4      5
+ ---- N:1 F:   1
+ 1   / 1:  85.00  86.00  87.00  88.00  89.00
+ 2   / 2:  65.00  66.00  67.00  68.00  69.00
+ 3   / 3:  45.00  46.00  47.00  48.00  49.00
+ 4   / 4:  25.00  26.00  27.00  28.00  29.00
+ 5   / 5:   5.00   6.00   7.00   8.00   9.00
+ 6   / 6: -15.00 -14.00 -13.00 -12.00 -11.00
+ ---- N:2 F:   2
+ 1   / 1:  90.00  91.00  92.00  93.00  94.00
+ 2   / 2:  70.00  71.00  72.00  73.00  74.00
+ 3   / 3:  50.00  51.00  52.00  53.00  54.00
+ 4   / 4:  30.00  31.00  32.00  33.00  34.00
+ 5   / 5:  10.00  11.00  12.00  13.00  14.00
+ 6   / 6: -10.00  -9.00  -8.00  -7.00  -6.00
+ ---- N:3 F:   3
+ 1   / 1:  95.00  96.00  97.00  98.00  99.00
+ 2   / 2:  75.00  76.00  77.00  78.00  79.00
+ 3   / 3:  55.00  56.00  57.00  58.00  59.00
+ 4   / 4:  35.00  36.00  37.00  38.00  39.00
+ 5   / 5:  15.00  16.00  17.00  18.00  19.00
+ 6   / 6:  -5.00  -4.00  -3.00  -2.00  -1.00
+ 
+list/e=5/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 4 by 6 points (LONGITUDE-LATITUDE-F)
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+             0E     1E     2E     3E     4E    
+              1      2      3      4      5
+ ---- N:1 F:   0
+ 3N   / 4:  100.0  101.0  102.0  103.0  104.0
+ 2N   / 3:   95.0   96.0   97.0   98.0   99.0
+ 1N   / 2:   90.0   91.0   92.0   93.0   94.0
+ 0    / 1:   85.0   86.0   87.0   88.0   89.0
+ ---- N:2 F:   20
+ 3N   / 4:   80.0   81.0   82.0   83.0   84.0
+ 2N   / 3:   75.0   76.0   77.0   78.0   79.0
+ 1N   / 2:   70.0   71.0   72.0   73.0   74.0
+ 0    / 1:   65.0   66.0   67.0   68.0   69.0
+ ---- N:3 F:   40
+ 3N   / 4:   60.0   61.0   62.0   63.0   64.0
+ 2N   / 3:   55.0   56.0   57.0   58.0   59.0
+ 1N   / 2:   50.0   51.0   52.0   53.0   54.0
+ 0    / 1:   45.0   46.0   47.0   48.0   49.0
+ ---- N:4 F:   60
+ 3N   / 4:   40.0   41.0   42.0   43.0   44.0
+ 2N   / 3:   35.0   36.0   37.0   38.0   39.0
+ 1N   / 2:   30.0   31.0   32.0   33.0   34.0
+ 0    / 1:   25.0   26.0   27.0   28.0   29.0
+ ---- N:5 F:   80
+ 3N   / 4:   20.0   21.0   22.0   23.0   24.0
+ 2N   / 3:   15.0   16.0   17.0   18.0   19.0
+ 1N   / 2:   10.0   11.0   12.0   13.0   14.0
+ 0    / 1:    5.0    6.0    7.0    8.0    9.0
+ ---- N:6 F:   100
+ 3N   / 4:    0.0    1.0    2.0    3.0    4.0
+ 2N   / 3:   -5.0   -4.0   -3.0   -2.0   -1.0
+ 1N   / 2:  -10.0   -9.0   -8.0   -7.0   -6.0
+ 0    / 1:  -15.0  -14.0  -13.0  -12.0  -11.0
+list/e=5/z=1/t=1 transpose_xf(myvar)
+             VARIABLE : TRANSPOSE_XF(MYVAR)
+             SUBSET   : 6 by 4 by 5 points (X-LATITUDE-F)
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+              1      2      3      4      5      6    
+              1      2      3      4      5      6
+ ---- N:1 F:   1
+ 3N   / 4:  100.0   80.0   60.0   40.0   20.0    0.0
+ 2N   / 3:   95.0   75.0   55.0   35.0   15.0   -5.0
+ 1N   / 2:   90.0   70.0   50.0   30.0   10.0  -10.0
+ 0    / 1:   85.0   65.0   45.0   25.0    5.0  -15.0
+ ---- N:2 F:   2
+ 3N   / 4:  101.0   81.0   61.0   41.0   21.0    1.0
+ 2N   / 3:   96.0   76.0   56.0   36.0   16.0   -4.0
+ 1N   / 2:   91.0   71.0   51.0   31.0   11.0   -9.0
+ 0    / 1:   86.0   66.0   46.0   26.0    6.0  -14.0
+ ---- N:3 F:   3
+ 3N   / 4:  102.0   82.0   62.0   42.0   22.0    2.0
+ 2N   / 3:   97.0   77.0   57.0   37.0   17.0   -3.0
+ 1N   / 2:   92.0   72.0   52.0   32.0   12.0   -8.0
+ 0    / 1:   87.0   67.0   47.0   27.0    7.0  -13.0
+ ---- N:4 F:   4
+ 3N   / 4:  103.0   83.0   63.0   43.0   23.0    3.0
+ 2N   / 3:   98.0   78.0   58.0   38.0   18.0   -2.0
+ 1N   / 2:   93.0   73.0   53.0   33.0   13.0   -7.0
+ 0    / 1:   88.0   68.0   48.0   28.0    8.0  -12.0
+ ---- N:5 F:   5
+ 3N   / 4:  104.0   84.0   64.0   44.0   24.0    4.0
+ 2N   / 3:   99.0   79.0   59.0   39.0   19.0   -1.0
+ 1N   / 2:   94.0   74.0   54.0   34.0   14.0   -6.0
+ 0    / 1:   89.0   69.0   49.0   29.0    9.0  -11.0
+list/F=25/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 4 by 3 points (LONGITUDE-LATITUDE-E)
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+             0E     1E     2E     3E     4E    
+              1      2      3      4      5
+ ---- M:1 E:   0
+ 3N   / 4:  75.00  76.00  77.00  78.00  79.00
+ 2N   / 3:  70.00  71.00  72.00  73.00  74.00
+ 1N   / 2:  65.00  66.00  67.00  68.00  69.00
+ 0    / 1:  60.00  61.00  62.00  63.00  64.00
+ ---- M:2 E:   5
+ 3N   / 4:  80.00  81.00  82.00  83.00  84.00
+ 2N   / 3:  75.00  76.00  77.00  78.00  79.00
+ 1N   / 2:  70.00  71.00  72.00  73.00  74.00
+ 0    / 1:  65.00  66.00  67.00  68.00  69.00
+ ---- M:3 E:   10
+ 3N   / 4:  85.00  86.00  87.00  88.00  89.00
+ 2N   / 3:  80.00  81.00  82.00  83.00  84.00
+ 1N   / 2:  75.00  76.00  77.00  78.00  79.00
+ 0    / 1:  70.00  71.00  72.00  73.00  74.00
+list/F=25/z=1/t=1 transpose_xe(myvar)
+             VARIABLE : TRANSPOSE_XE(MYVAR)
+             SUBSET   : 3 by 4 by 5 points (X-LATITUDE-E)
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+              1      2      3    
+              1      2      3
+ ---- M:1 E:   1
+ 3N   / 4:  75.00  80.00  85.00
+ 2N   / 3:  70.00  75.00  80.00
+ 1N   / 2:  65.00  70.00  75.00
+ 0    / 1:  60.00  65.00  70.00
+ ---- M:2 E:   2
+ 3N   / 4:  76.00  81.00  86.00
+ 2N   / 3:  71.00  76.00  81.00
+ 1N   / 2:  66.00  71.00  76.00
+ 0    / 1:  61.00  66.00  71.00
+ ---- M:3 E:   3
+ 3N   / 4:  77.00  82.00  87.00
+ 2N   / 3:  72.00  77.00  82.00
+ 1N   / 2:  67.00  72.00  77.00
+ 0    / 1:  62.00  67.00  72.00
+ ---- M:4 E:   4
+ 3N   / 4:  78.00  83.00  88.00
+ 2N   / 3:  73.00  78.00  83.00
+ 1N   / 2:  68.00  73.00  78.00
+ 0    / 1:  63.00  68.00  73.00
+ ---- M:5 E:   5
+ 3N   / 4:  79.00  84.00  89.00
+ 2N   / 3:  74.00  79.00  84.00
+ 1N   / 2:  69.00  74.00  79.00
+ 0    / 1:  64.00  69.00  74.00
+ 
+list/e=5/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 4 by 6 points (LONGITUDE-LATITUDE-F)
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+             0E     1E     2E     3E     4E    
+              1      2      3      4      5
+ ---- N:1 F:   0
+ 3N   / 4:  100.0  101.0  102.0  103.0  104.0
+ 2N   / 3:   95.0   96.0   97.0   98.0   99.0
+ 1N   / 2:   90.0   91.0   92.0   93.0   94.0
+ 0    / 1:   85.0   86.0   87.0   88.0   89.0
+ ---- N:2 F:   20
+ 3N   / 4:   80.0   81.0   82.0   83.0   84.0
+ 2N   / 3:   75.0   76.0   77.0   78.0   79.0
+ 1N   / 2:   70.0   71.0   72.0   73.0   74.0
+ 0    / 1:   65.0   66.0   67.0   68.0   69.0
+ ---- N:3 F:   40
+ 3N   / 4:   60.0   61.0   62.0   63.0   64.0
+ 2N   / 3:   55.0   56.0   57.0   58.0   59.0
+ 1N   / 2:   50.0   51.0   52.0   53.0   54.0
+ 0    / 1:   45.0   46.0   47.0   48.0   49.0
+ ---- N:4 F:   60
+ 3N   / 4:   40.0   41.0   42.0   43.0   44.0
+ 2N   / 3:   35.0   36.0   37.0   38.0   39.0
+ 1N   / 2:   30.0   31.0   32.0   33.0   34.0
+ 0    / 1:   25.0   26.0   27.0   28.0   29.0
+ ---- N:5 F:   80
+ 3N   / 4:   20.0   21.0   22.0   23.0   24.0
+ 2N   / 3:   15.0   16.0   17.0   18.0   19.0
+ 1N   / 2:   10.0   11.0   12.0   13.0   14.0
+ 0    / 1:    5.0    6.0    7.0    8.0    9.0
+ ---- N:6 F:   100
+ 3N   / 4:    0.0    1.0    2.0    3.0    4.0
+ 2N   / 3:   -5.0   -4.0   -3.0   -2.0   -1.0
+ 1N   / 2:  -10.0   -9.0   -8.0   -7.0   -6.0
+ 0    / 1:  -15.0  -14.0  -13.0  -12.0  -11.0
+list/e=5/z=1/t=1 transpose_yf(myvar)
+             VARIABLE : TRANSPOSE_YF(MYVAR)
+             SUBSET   : 5 by 6 by 4 points (LONGITUDE-Y-F)
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+            0E     1E     2E     3E     4E    
+             1      2      3      4      5
+ ---- N:1 F:   1
+ 1   / 1:   85.0   86.0   87.0   88.0   89.0
+ 2   / 2:   65.0   66.0   67.0   68.0   69.0
+ 3   / 3:   45.0   46.0   47.0   48.0   49.0
+ 4   / 4:   25.0   26.0   27.0   28.0   29.0
+ 5   / 5:    5.0    6.0    7.0    8.0    9.0
+ 6   / 6:  -15.0  -14.0  -13.0  -12.0  -11.0
+ ---- N:2 F:   2
+ 1   / 1:   90.0   91.0   92.0   93.0   94.0
+ 2   / 2:   70.0   71.0   72.0   73.0   74.0
+ 3   / 3:   50.0   51.0   52.0   53.0   54.0
+ 4   / 4:   30.0   31.0   32.0   33.0   34.0
+ 5   / 5:   10.0   11.0   12.0   13.0   14.0
+ 6   / 6:  -10.0   -9.0   -8.0   -7.0   -6.0
+ ---- N:3 F:   3
+ 1   / 1:   95.0   96.0   97.0   98.0   99.0
+ 2   / 2:   75.0   76.0   77.0   78.0   79.0
+ 3   / 3:   55.0   56.0   57.0   58.0   59.0
+ 4   / 4:   35.0   36.0   37.0   38.0   39.0
+ 5   / 5:   15.0   16.0   17.0   18.0   19.0
+ 6   / 6:   -5.0   -4.0   -3.0   -2.0   -1.0
+ ---- N:4 F:   4
+ 1   / 1:  100.0  101.0  102.0  103.0  104.0
+ 2   / 2:   80.0   81.0   82.0   83.0   84.0
+ 3   / 3:   60.0   61.0   62.0   63.0   64.0
+ 4   / 4:   40.0   41.0   42.0   43.0   44.0
+ 5   / 5:   20.0   21.0   22.0   23.0   24.0
+ 6   / 6:    0.0    1.0    2.0    3.0    4.0
+list/F=25/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 4 by 3 points (LONGITUDE-LATITUDE-E)
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+             0E     1E     2E     3E     4E    
+              1      2      3      4      5
+ ---- M:1 E:   0
+ 3N   / 4:  75.00  76.00  77.00  78.00  79.00
+ 2N   / 3:  70.00  71.00  72.00  73.00  74.00
+ 1N   / 2:  65.00  66.00  67.00  68.00  69.00
+ 0    / 1:  60.00  61.00  62.00  63.00  64.00
+ ---- M:2 E:   5
+ 3N   / 4:  80.00  81.00  82.00  83.00  84.00
+ 2N   / 3:  75.00  76.00  77.00  78.00  79.00
+ 1N   / 2:  70.00  71.00  72.00  73.00  74.00
+ 0    / 1:  65.00  66.00  67.00  68.00  69.00
+ ---- M:3 E:   10
+ 3N   / 4:  85.00  86.00  87.00  88.00  89.00
+ 2N   / 3:  80.00  81.00  82.00  83.00  84.00
+ 1N   / 2:  75.00  76.00  77.00  78.00  79.00
+ 0    / 1:  70.00  71.00  72.00  73.00  74.00
+list/F=25/z=1/t=1 transpose_ye(myvar)
+             VARIABLE : TRANSPOSE_YE(MYVAR)
+             SUBSET   : 5 by 3 by 4 points (LONGITUDE-Y-E)
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+            0E     1E     2E     3E     4E    
+             1      2      3      4      5
+ ---- M:1 E:   1
+ 1   / 1:  60.00  61.00  62.00  63.00  64.00
+ 2   / 2:  65.00  66.00  67.00  68.00  69.00
+ 3   / 3:  70.00  71.00  72.00  73.00  74.00
+ ---- M:2 E:   2
+ 1   / 1:  65.00  66.00  67.00  68.00  69.00
+ 2   / 2:  70.00  71.00  72.00  73.00  74.00
+ 3   / 3:  75.00  76.00  77.00  78.00  79.00
+ ---- M:3 E:   3
+ 1   / 1:  70.00  71.00  72.00  73.00  74.00
+ 2   / 2:  75.00  76.00  77.00  78.00  79.00
+ 3   / 3:  80.00  81.00  82.00  83.00  84.00
+ ---- M:4 E:   4
+ 1   / 1:  75.00  76.00  77.00  78.00  79.00
+ 2   / 2:  80.00  81.00  82.00  83.00  84.00
+ 3   / 3:  85.00  86.00  87.00  88.00  89.00
+ 
+list/e=5/y=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 8 by 6 points (LONGITUDE-DEPTH (m)-F)
+             LATITUDE : 1N
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+              0E     1E     2E     3E     4E    
+               1      2      3      4      5
+ ---- N:1 F:   0
+ 0     / 1:   70.0   71.0   72.0   73.0   74.0
+ 0.2   / 2:   74.0   75.0   76.0   77.0   78.0
+ 0.4   / 3:   78.0   79.0   80.0   81.0   82.0
+ 0.6   / 4:   82.0   83.0   84.0   85.0   86.0
+ 0.8   / 5:   86.0   87.0   88.0   89.0   90.0
+ 1     / 6:   90.0   91.0   92.0   93.0   94.0
+ 1.2   / 7:   94.0   95.0   96.0   97.0   98.0
+ 1.4   / 8:   98.0   99.0  100.0  101.0  102.0
+ ---- N:2 F:   20
+ 0     / 1:   50.0   51.0   52.0   53.0   54.0
+ 0.2   / 2:   54.0   55.0   56.0   57.0   58.0
+ 0.4   / 3:   58.0   59.0   60.0   61.0   62.0
+ 0.6   / 4:   62.0   63.0   64.0   65.0   66.0
+ 0.8   / 5:   66.0   67.0   68.0   69.0   70.0
+ 1     / 6:   70.0   71.0   72.0   73.0   74.0
+ 1.2   / 7:   74.0   75.0   76.0   77.0   78.0
+ 1.4   / 8:   78.0   79.0   80.0   81.0   82.0
+ ---- N:3 F:   40
+ 0     / 1:   30.0   31.0   32.0   33.0   34.0
+ 0.2   / 2:   34.0   35.0   36.0   37.0   38.0
+ 0.4   / 3:   38.0   39.0   40.0   41.0   42.0
+ 0.6   / 4:   42.0   43.0   44.0   45.0   46.0
+ 0.8   / 5:   46.0   47.0   48.0   49.0   50.0
+ 1     / 6:   50.0   51.0   52.0   53.0   54.0
+ 1.2   / 7:   54.0   55.0   56.0   57.0   58.0
+ 1.4   / 8:   58.0   59.0   60.0   61.0   62.0
+ ---- N:4 F:   60
+ 0     / 1:   10.0   11.0   12.0   13.0   14.0
+ 0.2   / 2:   14.0   15.0   16.0   17.0   18.0
+ 0.4   / 3:   18.0   19.0   20.0   21.0   22.0
+ 0.6   / 4:   22.0   23.0   24.0   25.0   26.0
+ 0.8   / 5:   26.0   27.0   28.0   29.0   30.0
+ 1     / 6:   30.0   31.0   32.0   33.0   34.0
+ 1.2   / 7:   34.0   35.0   36.0   37.0   38.0
+ 1.4   / 8:   38.0   39.0   40.0   41.0   42.0
+ ---- N:5 F:   80
+ 0     / 1:  -10.0   -9.0   -8.0   -7.0   -6.0
+ 0.2   / 2:   -6.0   -5.0   -4.0   -3.0   -2.0
+ 0.4   / 3:   -2.0   -1.0    0.0    1.0    2.0
+ 0.6   / 4:    2.0    3.0    4.0    5.0    6.0
+ 0.8   / 5:    6.0    7.0    8.0    9.0   10.0
+ 1     / 6:   10.0   11.0   12.0   13.0   14.0
+ 1.2   / 7:   14.0   15.0   16.0   17.0   18.0
+ 1.4   / 8:   18.0   19.0   20.0   21.0   22.0
+ ---- N:6 F:   100
+ 0     / 1:  -30.0  -29.0  -28.0  -27.0  -26.0
+ 0.2   / 2:  -26.0  -25.0  -24.0  -23.0  -22.0
+ 0.4   / 3:  -22.0  -21.0  -20.0  -19.0  -18.0
+ 0.6   / 4:  -18.0  -17.0  -16.0  -15.0  -14.0
+ 0.8   / 5:  -14.0  -13.0  -12.0  -11.0  -10.0
+ 1     / 6:  -10.0   -9.0   -8.0   -7.0   -6.0
+ 1.2   / 7:   -6.0   -5.0   -4.0   -3.0   -2.0
+ 1.4   / 8:   -2.0   -1.0    0.0    1.0    2.0
+list/e=5/y=1/t=1 transpose_zf(myvar)
+             VARIABLE : TRANSPOSE_ZF(MYVAR)
+             SUBSET   : 5 by 6 by 8 points (LONGITUDE-Z-F)
+             LATITUDE : 1N
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+            0E     1E     2E     3E     4E    
+             1      2      3      4      5
+ ---- N:1 F:   1
+ 1   / 1:   70.0   71.0   72.0   73.0   74.0
+ 2   / 2:   50.0   51.0   52.0   53.0   54.0
+ 3   / 3:   30.0   31.0   32.0   33.0   34.0
+ 4   / 4:   10.0   11.0   12.0   13.0   14.0
+ 5   / 5:  -10.0   -9.0   -8.0   -7.0   -6.0
+ 6   / 6:  -30.0  -29.0  -28.0  -27.0  -26.0
+ ---- N:2 F:   2
+ 1   / 1:   74.0   75.0   76.0   77.0   78.0
+ 2   / 2:   54.0   55.0   56.0   57.0   58.0
+ 3   / 3:   34.0   35.0   36.0   37.0   38.0
+ 4   / 4:   14.0   15.0   16.0   17.0   18.0
+ 5   / 5:   -6.0   -5.0   -4.0   -3.0   -2.0
+ 6   / 6:  -26.0  -25.0  -24.0  -23.0  -22.0
+ ---- N:3 F:   3
+ 1   / 1:   78.0   79.0   80.0   81.0   82.0
+ 2   / 2:   58.0   59.0   60.0   61.0   62.0
+ 3   / 3:   38.0   39.0   40.0   41.0   42.0
+ 4   / 4:   18.0   19.0   20.0   21.0   22.0
+ 5   / 5:   -2.0   -1.0    0.0    1.0    2.0
+ 6   / 6:  -22.0  -21.0  -20.0  -19.0  -18.0
+ ---- N:4 F:   4
+ 1   / 1:   82.0   83.0   84.0   85.0   86.0
+ 2   / 2:   62.0   63.0   64.0   65.0   66.0
+ 3   / 3:   42.0   43.0   44.0   45.0   46.0
+ 4   / 4:   22.0   23.0   24.0   25.0   26.0
+ 5   / 5:    2.0    3.0    4.0    5.0    6.0
+ 6   / 6:  -18.0  -17.0  -16.0  -15.0  -14.0
+ ---- N:5 F:   5
+ 1   / 1:   86.0   87.0   88.0   89.0   90.0
+ 2   / 2:   66.0   67.0   68.0   69.0   70.0
+ 3   / 3:   46.0   47.0   48.0   49.0   50.0
+ 4   / 4:   26.0   27.0   28.0   29.0   30.0
+ 5   / 5:    6.0    7.0    8.0    9.0   10.0
+ 6   / 6:  -14.0  -13.0  -12.0  -11.0  -10.0
+ ---- N:6 F:   6
+ 1   / 1:   90.0   91.0   92.0   93.0   94.0
+ 2   / 2:   70.0   71.0   72.0   73.0   74.0
+ 3   / 3:   50.0   51.0   52.0   53.0   54.0
+ 4   / 4:   30.0   31.0   32.0   33.0   34.0
+ 5   / 5:   10.0   11.0   12.0   13.0   14.0
+ 6   / 6:  -10.0   -9.0   -8.0   -7.0   -6.0
+ ---- N:7 F:   7
+ 1   / 1:   94.0   95.0   96.0   97.0   98.0
+ 2   / 2:   74.0   75.0   76.0   77.0   78.0
+ 3   / 3:   54.0   55.0   56.0   57.0   58.0
+ 4   / 4:   34.0   35.0   36.0   37.0   38.0
+ 5   / 5:   14.0   15.0   16.0   17.0   18.0
+ 6   / 6:   -6.0   -5.0   -4.0   -3.0   -2.0
+ ---- N:8 F:   8
+ 1   / 1:   98.0   99.0  100.0  101.0  102.0
+ 2   / 2:   78.0   79.0   80.0   81.0   82.0
+ 3   / 3:   58.0   59.0   60.0   61.0   62.0
+ 4   / 4:   38.0   39.0   40.0   41.0   42.0
+ 5   / 5:   18.0   19.0   20.0   21.0   22.0
+ 6   / 6:   -2.0   -1.0    0.0    1.0    2.0
+list/F=25/y=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 8 by 3 points (LONGITUDE-DEPTH (m)-E)
+             LATITUDE : 1N
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+              0E     1E     2E     3E     4E    
+               1      2      3      4      5
+ ---- M:1 E:   0
+ 0     / 1:  45.00  46.00  47.00  48.00  49.00
+ 0.2   / 2:  49.00  50.00  51.00  52.00  53.00
+ 0.4   / 3:  53.00  54.00  55.00  56.00  57.00
+ 0.6   / 4:  57.00  58.00  59.00  60.00  61.00
+ 0.8   / 5:  61.00  62.00  63.00  64.00  65.00
+ 1     / 6:  65.00  66.00  67.00  68.00  69.00
+ 1.2   / 7:  69.00  70.00  71.00  72.00  73.00
+ 1.4   / 8:  73.00  74.00  75.00  76.00  77.00
+ ---- M:2 E:   5
+ 0     / 1:  50.00  51.00  52.00  53.00  54.00
+ 0.2   / 2:  54.00  55.00  56.00  57.00  58.00
+ 0.4   / 3:  58.00  59.00  60.00  61.00  62.00
+ 0.6   / 4:  62.00  63.00  64.00  65.00  66.00
+ 0.8   / 5:  66.00  67.00  68.00  69.00  70.00
+ 1     / 6:  70.00  71.00  72.00  73.00  74.00
+ 1.2   / 7:  74.00  75.00  76.00  77.00  78.00
+ 1.4   / 8:  78.00  79.00  80.00  81.00  82.00
+ ---- M:3 E:   10
+ 0     / 1:  55.00  56.00  57.00  58.00  59.00
+ 0.2   / 2:  59.00  60.00  61.00  62.00  63.00
+ 0.4   / 3:  63.00  64.00  65.00  66.00  67.00
+ 0.6   / 4:  67.00  68.00  69.00  70.00  71.00
+ 0.8   / 5:  71.00  72.00  73.00  74.00  75.00
+ 1     / 6:  75.00  76.00  77.00  78.00  79.00
+ 1.2   / 7:  79.00  80.00  81.00  82.00  83.00
+ 1.4   / 8:  83.00  84.00  85.00  86.00  87.00
+list/F=25/y=1/t=1 transpose_ze(myvar)
+             VARIABLE : TRANSPOSE_ZE(MYVAR)
+             SUBSET   : 5 by 3 by 8 points (LONGITUDE-Z-E)
+             LATITUDE : 1N
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+            0E     1E     2E     3E     4E    
+             1      2      3      4      5
+ ---- M:1 E:   1
+ 1   / 1:  45.00  46.00  47.00  48.00  49.00
+ 2   / 2:  50.00  51.00  52.00  53.00  54.00
+ 3   / 3:  55.00  56.00  57.00  58.00  59.00
+ ---- M:2 E:   2
+ 1   / 1:  49.00  50.00  51.00  52.00  53.00
+ 2   / 2:  54.00  55.00  56.00  57.00  58.00
+ 3   / 3:  59.00  60.00  61.00  62.00  63.00
+ ---- M:3 E:   3
+ 1   / 1:  53.00  54.00  55.00  56.00  57.00
+ 2   / 2:  58.00  59.00  60.00  61.00  62.00
+ 3   / 3:  63.00  64.00  65.00  66.00  67.00
+ ---- M:4 E:   4
+ 1   / 1:  57.00  58.00  59.00  60.00  61.00
+ 2   / 2:  62.00  63.00  64.00  65.00  66.00
+ 3   / 3:  67.00  68.00  69.00  70.00  71.00
+ ---- M:5 E:   5
+ 1   / 1:  61.00  62.00  63.00  64.00  65.00
+ 2   / 2:  66.00  67.00  68.00  69.00  70.00
+ 3   / 3:  71.00  72.00  73.00  74.00  75.00
+ ---- M:6 E:   6
+ 1   / 1:  65.00  66.00  67.00  68.00  69.00
+ 2   / 2:  70.00  71.00  72.00  73.00  74.00
+ 3   / 3:  75.00  76.00  77.00  78.00  79.00
+ ---- M:7 E:   7
+ 1   / 1:  69.00  70.00  71.00  72.00  73.00
+ 2   / 2:  74.00  75.00  76.00  77.00  78.00
+ 3   / 3:  79.00  80.00  81.00  82.00  83.00
+ ---- M:8 E:   8
+ 1   / 1:  73.00  74.00  75.00  76.00  77.00
+ 2   / 2:  78.00  79.00  80.00  81.00  82.00
+ 3   / 3:  83.00  84.00  85.00  86.00  87.00
+ 
+list/e=5/y=1/z=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 7 by 6 points (LONGITUDE-TIME-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             E        : 5
+                       0E     1E     2E     3E     4E    
+                        1      2      3      4      5
+ ---- N:1 F:   0
+ 01-JAN-2001 00 / 1:   30.0   31.0   32.0   33.0   34.0
+ 02-JAN-2001 00 / 2:   90.0   91.0   92.0   93.0   94.0
+ 03-JAN-2001 00 / 3:  150.0  151.0  152.0  153.0  154.0
+ 04-JAN-2001 00 / 4:  210.0  211.0  212.0  213.0  214.0
+ 05-JAN-2001 00 / 5:  270.0  271.0  272.0  273.0  274.0
+ 06-JAN-2001 00 / 6:  330.0  331.0  332.0  333.0  334.0
+ 07-JAN-2001 00 / 7:  390.0  391.0  392.0  393.0  394.0
+ ---- N:2 F:   20
+ 01-JAN-2001 00 / 1:   10.0   11.0   12.0   13.0   14.0
+ 02-JAN-2001 00 / 2:   70.0   71.0   72.0   73.0   74.0
+ 03-JAN-2001 00 / 3:  130.0  131.0  132.0  133.0  134.0
+ 04-JAN-2001 00 / 4:  190.0  191.0  192.0  193.0  194.0
+ 05-JAN-2001 00 / 5:  250.0  251.0  252.0  253.0  254.0
+ 06-JAN-2001 00 / 6:  310.0  311.0  312.0  313.0  314.0
+ 07-JAN-2001 00 / 7:  370.0  371.0  372.0  373.0  374.0
+ ---- N:3 F:   40
+ 01-JAN-2001 00 / 1:  -10.0   -9.0   -8.0   -7.0   -6.0
+ 02-JAN-2001 00 / 2:   50.0   51.0   52.0   53.0   54.0
+ 03-JAN-2001 00 / 3:  110.0  111.0  112.0  113.0  114.0
+ 04-JAN-2001 00 / 4:  170.0  171.0  172.0  173.0  174.0
+ 05-JAN-2001 00 / 5:  230.0  231.0  232.0  233.0  234.0
+ 06-JAN-2001 00 / 6:  290.0  291.0  292.0  293.0  294.0
+ 07-JAN-2001 00 / 7:  350.0  351.0  352.0  353.0  354.0
+ ---- N:4 F:   60
+ 01-JAN-2001 00 / 1:  -30.0  -29.0  -28.0  -27.0  -26.0
+ 02-JAN-2001 00 / 2:   30.0   31.0   32.0   33.0   34.0
+ 03-JAN-2001 00 / 3:   90.0   91.0   92.0   93.0   94.0
+ 04-JAN-2001 00 / 4:  150.0  151.0  152.0  153.0  154.0
+ 05-JAN-2001 00 / 5:  210.0  211.0  212.0  213.0  214.0
+ 06-JAN-2001 00 / 6:  270.0  271.0  272.0  273.0  274.0
+ 07-JAN-2001 00 / 7:  330.0  331.0  332.0  333.0  334.0
+ ---- N:5 F:   80
+ 01-JAN-2001 00 / 1:  -50.0  -49.0  -48.0  -47.0  -46.0
+ 02-JAN-2001 00 / 2:   10.0   11.0   12.0   13.0   14.0
+ 03-JAN-2001 00 / 3:   70.0   71.0   72.0   73.0   74.0
+ 04-JAN-2001 00 / 4:  130.0  131.0  132.0  133.0  134.0
+ 05-JAN-2001 00 / 5:  190.0  191.0  192.0  193.0  194.0
+ 06-JAN-2001 00 / 6:  250.0  251.0  252.0  253.0  254.0
+ 07-JAN-2001 00 / 7:  310.0  311.0  312.0  313.0  314.0
+ ---- N:6 F:   100
+ 01-JAN-2001 00 / 1:  -70.0  -69.0  -68.0  -67.0  -66.0
+ 02-JAN-2001 00 / 2:  -10.0   -9.0   -8.0   -7.0   -6.0
+ 03-JAN-2001 00 / 3:   50.0   51.0   52.0   53.0   54.0
+ 04-JAN-2001 00 / 4:  110.0  111.0  112.0  113.0  114.0
+ 05-JAN-2001 00 / 5:  170.0  171.0  172.0  173.0  174.0
+ 06-JAN-2001 00 / 6:  230.0  231.0  232.0  233.0  234.0
+ 07-JAN-2001 00 / 7:  290.0  291.0  292.0  293.0  294.0
+list/e=5/y=1/z=1 transpose_tf(myvar)
+             VARIABLE : TRANSPOSE_TF(MYVAR)
+             SUBSET   : 5 by 6 by 7 points (LONGITUDE-T-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             E        : 5
+            0E     1E     2E     3E     4E    
+             1      2      3      4      5
+ ---- N:1 F:   1
+ 1   / 1:   30.0   31.0   32.0   33.0   34.0
+ 2   / 2:   10.0   11.0   12.0   13.0   14.0
+ 3   / 3:  -10.0   -9.0   -8.0   -7.0   -6.0
+ 4   / 4:  -30.0  -29.0  -28.0  -27.0  -26.0
+ 5   / 5:  -50.0  -49.0  -48.0  -47.0  -46.0
+ 6   / 6:  -70.0  -69.0  -68.0  -67.0  -66.0
+ ---- N:2 F:   2
+ 1   / 1:   90.0   91.0   92.0   93.0   94.0
+ 2   / 2:   70.0   71.0   72.0   73.0   74.0
+ 3   / 3:   50.0   51.0   52.0   53.0   54.0
+ 4   / 4:   30.0   31.0   32.0   33.0   34.0
+ 5   / 5:   10.0   11.0   12.0   13.0   14.0
+ 6   / 6:  -10.0   -9.0   -8.0   -7.0   -6.0
+ ---- N:3 F:   3
+ 1   / 1:  150.0  151.0  152.0  153.0  154.0
+ 2   / 2:  130.0  131.0  132.0  133.0  134.0
+ 3   / 3:  110.0  111.0  112.0  113.0  114.0
+ 4   / 4:   90.0   91.0   92.0   93.0   94.0
+ 5   / 5:   70.0   71.0   72.0   73.0   74.0
+ 6   / 6:   50.0   51.0   52.0   53.0   54.0
+ ---- N:4 F:   4
+ 1   / 1:  210.0  211.0  212.0  213.0  214.0
+ 2   / 2:  190.0  191.0  192.0  193.0  194.0
+ 3   / 3:  170.0  171.0  172.0  173.0  174.0
+ 4   / 4:  150.0  151.0  152.0  153.0  154.0
+ 5   / 5:  130.0  131.0  132.0  133.0  134.0
+ 6   / 6:  110.0  111.0  112.0  113.0  114.0
+ ---- N:5 F:   5
+ 1   / 1:  270.0  271.0  272.0  273.0  274.0
+ 2   / 2:  250.0  251.0  252.0  253.0  254.0
+ 3   / 3:  230.0  231.0  232.0  233.0  234.0
+ 4   / 4:  210.0  211.0  212.0  213.0  214.0
+ 5   / 5:  190.0  191.0  192.0  193.0  194.0
+ 6   / 6:  170.0  171.0  172.0  173.0  174.0
+ ---- N:6 F:   6
+ 1   / 1:  330.0  331.0  332.0  333.0  334.0
+ 2   / 2:  310.0  311.0  312.0  313.0  314.0
+ 3   / 3:  290.0  291.0  292.0  293.0  294.0
+ 4   / 4:  270.0  271.0  272.0  273.0  274.0
+ 5   / 5:  250.0  251.0  252.0  253.0  254.0
+ 6   / 6:  230.0  231.0  232.0  233.0  234.0
+ ---- N:7 F:   7
+ 1   / 1:  390.0  391.0  392.0  393.0  394.0
+ 2   / 2:  370.0  371.0  372.0  373.0  374.0
+ 3   / 3:  350.0  351.0  352.0  353.0  354.0
+ 4   / 4:  330.0  331.0  332.0  333.0  334.0
+ 5   / 5:  310.0  311.0  312.0  313.0  314.0
+ 6   / 6:  290.0  291.0  292.0  293.0  294.0
+list/F=25/y=1/z=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 7 by 3 points (LONGITUDE-TIME-E)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             F        : 20
+                       0E     1E     2E     3E     4E    
+                        1      2      3      4      5
+ ---- M:1 E:   0
+ 01-JAN-2001 00 / 1:    5.0    6.0    7.0    8.0    9.0
+ 02-JAN-2001 00 / 2:   65.0   66.0   67.0   68.0   69.0
+ 03-JAN-2001 00 / 3:  125.0  126.0  127.0  128.0  129.0
+ 04-JAN-2001 00 / 4:  185.0  186.0  187.0  188.0  189.0
+ 05-JAN-2001 00 / 5:  245.0  246.0  247.0  248.0  249.0
+ 06-JAN-2001 00 / 6:  305.0  306.0  307.0  308.0  309.0
+ 07-JAN-2001 00 / 7:  365.0  366.0  367.0  368.0  369.0
+ ---- M:2 E:   5
+ 01-JAN-2001 00 / 1:   10.0   11.0   12.0   13.0   14.0
+ 02-JAN-2001 00 / 2:   70.0   71.0   72.0   73.0   74.0
+ 03-JAN-2001 00 / 3:  130.0  131.0  132.0  133.0  134.0
+ 04-JAN-2001 00 / 4:  190.0  191.0  192.0  193.0  194.0
+ 05-JAN-2001 00 / 5:  250.0  251.0  252.0  253.0  254.0
+ 06-JAN-2001 00 / 6:  310.0  311.0  312.0  313.0  314.0
+ 07-JAN-2001 00 / 7:  370.0  371.0  372.0  373.0  374.0
+ ---- M:3 E:   10
+ 01-JAN-2001 00 / 1:   15.0   16.0   17.0   18.0   19.0
+ 02-JAN-2001 00 / 2:   75.0   76.0   77.0   78.0   79.0
+ 03-JAN-2001 00 / 3:  135.0  136.0  137.0  138.0  139.0
+ 04-JAN-2001 00 / 4:  195.0  196.0  197.0  198.0  199.0
+ 05-JAN-2001 00 / 5:  255.0  256.0  257.0  258.0  259.0
+ 06-JAN-2001 00 / 6:  315.0  316.0  317.0  318.0  319.0
+ 07-JAN-2001 00 / 7:  375.0  376.0  377.0  378.0  379.0
+list/F=25/y=1/z=1 transpose_te(myvar)
+             VARIABLE : TRANSPOSE_TE(MYVAR)
+             SUBSET   : 5 by 3 by 7 points (LONGITUDE-T-E)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             F        : 20
+            0E     1E     2E     3E     4E    
+             1      2      3      4      5
+ ---- M:1 E:   1
+ 1   / 1:    5.0    6.0    7.0    8.0    9.0
+ 2   / 2:   10.0   11.0   12.0   13.0   14.0
+ 3   / 3:   15.0   16.0   17.0   18.0   19.0
+ ---- M:2 E:   2
+ 1   / 1:   65.0   66.0   67.0   68.0   69.0
+ 2   / 2:   70.0   71.0   72.0   73.0   74.0
+ 3   / 3:   75.0   76.0   77.0   78.0   79.0
+ ---- M:3 E:   3
+ 1   / 1:  125.0  126.0  127.0  128.0  129.0
+ 2   / 2:  130.0  131.0  132.0  133.0  134.0
+ 3   / 3:  135.0  136.0  137.0  138.0  139.0
+ ---- M:4 E:   4
+ 1   / 1:  185.0  186.0  187.0  188.0  189.0
+ 2   / 2:  190.0  191.0  192.0  193.0  194.0
+ 3   / 3:  195.0  196.0  197.0  198.0  199.0
+ ---- M:5 E:   5
+ 1   / 1:  245.0  246.0  247.0  248.0  249.0
+ 2   / 2:  250.0  251.0  252.0  253.0  254.0
+ 3   / 3:  255.0  256.0  257.0  258.0  259.0
+ ---- M:6 E:   6
+ 1   / 1:  305.0  306.0  307.0  308.0  309.0
+ 2   / 2:  310.0  311.0  312.0  313.0  314.0
+ 3   / 3:  315.0  316.0  317.0  318.0  319.0
+ ---- M:7 E:   7
+ 1   / 1:  365.0  366.0  367.0  368.0  369.0
+ 2   / 2:  370.0  371.0  372.0  373.0  374.0
+ 3   / 3:  375.0  376.0  377.0  378.0  379.0
+ 
 can var /all
 set grid abstract
 can grid mygrd
@@ -33285,10 +33953,12 @@ can axis taxs
 can axis zaxs
 can axis yaxs
 can axis xaxs
- 
+can axis eaxs
+can axis faxs
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_unique_str2int
 ! bn_unique_str2int.jnl
  
@@ -33368,6 +34038,7 @@ list unique_str2int(blist), blist
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_sort
  
  
@@ -34101,6 +34772,7 @@ list my_vwnd
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_eof
 ! Benchmark for EOF functions
 ! Statically linked as of ferret V5.34
@@ -34171,6 +34843,7 @@ exit/script
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_compress_by
 let mask = {1,,1,,1} + 0*L[l=101:102] + 0*K[k=10:11]
 list compressi_by({10,20,30,40,50},mask)
@@ -34208,6 +34881,7 @@ list compressi_by({10,20,30,40,50},mask2)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_compress
  ! NOAA/PMEL TMAP
  ! Program FERRET
@@ -34356,6 +35030,7 @@ list compressk(a[i=91,j=35,l=1])
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bench_internal_string_functions
 ! test internal string functions:
 !       strlen
@@ -34451,6 +35126,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_ef_bench_extrema.jnl
 ! bench_extrema.jnl
 !  benchmark tests for findhi and findlo
@@ -34507,6 +35183,7 @@ list a[i=@ngd]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_ef_err541_date_delim.jnl
 ! err541_date_delim.jnl
 ! Fix errors occurring with delimted reads - four digit years were
@@ -34579,6 +35256,7 @@ if `date_check` then say **** DELIMTED READ DATE CHECK FAILED
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_ef_zaxr_fcns.jnl
 ! bn_ef_zaxr_functions.jnl
 ! 04-apr-05 *acm* move to tests of shared-obj efs.
@@ -34630,6 +35308,7 @@ list ddat_a, ddat_b, ddat_c
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_ef_curv_to_rect.jnl
 ! bn_ef_curv_to_rect.jnl
 ! Test of curvilinear to rectilinear regridding
@@ -34779,6 +35458,7 @@ shade fill_xy(sst[l=1], mask[l=1], 4)
 ! Compare SAMPLEXY and SAMPLEIJ
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_samplexy_sampleij
 ! bn_samplexy_sampleij
  
@@ -34833,43 +35513,43 @@ cancel memory/all
 set mode diag
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    B        C:  6 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    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 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
+ 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
- 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  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:    18    20 dset:   1
- -DELETE A        M:  1 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- rdstride A        C: 11 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:     2     2 dset:   1
- -DELETE A        M:  1 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  A        M:  1 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:  2 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ -DELETE A        M:  1 dset:   1 I:     18     20  J: -999 -999  K: -999 -999  L:   -999   -999
+ rdstride A        C: 11 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing A on X axis:        2        2 dset:   1
+ -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
  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    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    NORMAL    NORMAL
- dealloc  dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          (AX002)   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
+ 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
- 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  M: -999 -999  N: -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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
  1    / 1:   1.00
  4    / 2:   4.00
  7    / 3:   7.00
@@ -34880,12 +35560,12 @@ 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    NORMAL    NORMAL
- -DELETE A        M:  4 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  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 (G002)          (AX002)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- found   B        M:  2 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G003)          (AX003)   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
+ 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
  20   / 2:  20.00
  22   / 3:   2.00
@@ -35086,42 +35766,42 @@ 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    NORMAL    NORMAL
- -DELETE A        M:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  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 (G002)          (AX002)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G003)          (AX001)   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
+ 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
- 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  M: -999 -999  N: -999 -999
- doing moduloing STR on X axis:    18    20 dset:   1
- -DELETE STR      M:  4 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- rdstride STR      C:  9 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing STR on X axis:     2     2 dset:   1
- -DELETE STR      M:  4 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  STR      M:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE STR      M:  6 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ -DELETE STR      M:  4 dset:   1 I:     18     20  J: -999 -999  K: -999 -999  L:   -999   -999
+ rdstride STR      C:  9 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing STR on X axis:        2        2 dset:   1
+ -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
  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    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    NORMAL    NORMAL
- dealloc  dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          (AX002)   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
+ 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
- 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  M: -999 -999  N: -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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
  1    / 1:"a"
  4    / 2:"d"
  7    / 3:"g"
@@ -35539,7 +36219,7 @@ ppl list yaxis
  
 sh mode stupid
       MODE            STATE        ARGUMENT
-      STUPID        CANCELLED
+      STUPID        CANCELED
 cancel mode stupid  ! for testing in double precision
  
  
@@ -35663,8 +36343,8 @@ use test_string
 sh dat test_string
      currently SET data sets:
     1> ./test_string.cdf  (default)
- name     title                             I         J         K         L         M         N
- A        {"hello"}                        1:1       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        {"hello"}                        1:1       ...       ...       ...
  
 list a
              VARIABLE : {"hello"}
@@ -35680,8 +36360,8 @@ use test_string
 sh dat test_string
      currently SET data sets:
     1> ./test_string.cdf  (default)
- name     title                             I         J         K         L         M         N
- B        "one line of text"               ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ B        "one line of text"               ...       ...       ...       ...
  
 list b
              VARIABLE : "one line of text"
@@ -35703,11 +36383,11 @@ use test_string.cdf
 show data test_string
      currently SET data sets:
     1> ./test_string.cdf  (default)
- name     title                             I         J         K         L         M         N
- A        {"hello","goodbye", "wave to me  1:3       ...       ...       ...       ...       ...
- B        "one line of text"               ...       ...       ...       ...       ...       ...
- D        {"INITIALIZE", SPAWN:"ls *.str_  1:19      ...       ...       ...       ...       ...
- B2       "two line of text"               ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        {"hello","goodbye", "wave to me  1:3       ...       ...       ...
+ B        "one line of text"               ...       ...       ...       ...
+ D        {"INITIALIZE", SPAWN:"ls *.str_  1:19      ...       ...       ...
+ B2       "two line of text"               ...       ...       ...       ...
  
 list/nohead a
  1   / 1:"hello"     
@@ -35726,8 +36406,8 @@ use test_string
 show data test_string
      currently SET data sets:
     1> ./test_string.cdf  (default)
- name     title                             I         J         K         L         M         N
- D        partial filename list            2:5       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ D        partial filename list            2:5       ...       ...       ...
  
 list d
              VARIABLE : partial filename list
@@ -35826,8 +36506,6 @@ sh grid
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 list/nohead  ysequence({"a","b","c","d","e"})
  1   / 1:"a"
  2   / 2:"b"
@@ -35843,8 +36521,6 @@ sh grid
  ABSTRACT  Y             99999999 r   1                    1.E+08              full
  normal    Z
  normal    T
- normal    E
- normal    F
 list/nohead  zsequence({"a","b","c","d","e"})
  1   / 1:"a"
  2   / 2:"b"
@@ -35860,8 +36536,6 @@ sh grid
  normal    Y
  ABSTRACT  Z             99999999 r   1                    1.E+08              full
  normal    T
- normal    E
- normal    F
 list/nohead  tsequence({"a","b","c","d","e"})
  1   / 1:"a"
  2   / 2:"b"
@@ -35877,8 +36551,6 @@ sh grid
  normal    Y
  normal    Z
  ABSTRACT  T             99999999 r   1                    1.E+08              full
- normal    E
- normal    F
 let a = TSEQUENCE({"a","b","c","d","e"})
 list/l=2:3 a
              VARIABLE : TSEQUENCE({"a","b","c","d","e"})
@@ -36230,53 +36902,53 @@ show data/var
      currently SET data sets:
     1> ./bn_delimited_read_1.dat  (default)
  
- name     title                             I         J         K         L         M         N
- V1       V1                               1:7       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G001) with -1.E+34 for missing data
              X=0.5:7.5  
- V2       V2                               1:7       ...       ...       ...       ...       ...
+ V2       V2                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G001) with -1.E+34 for missing data
              X=0.5:7.5  
- V3       V3                               1:7       ...       ...       ...       ...       ...
+ V3       V3                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G001) with -1.E+34 for missing data
              X=0.5:7.5  
- V4       V4                               1:7       ...       ...       ...       ...       ...
+ V4       V4                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G001) with -1.E+34 for missing data
              X=0.5:7.5  
- V5       V5                               1:7       ...       ...       ...       ...       ...
+ V5       V5                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G001) with -1.E+34 for missing data
              X=0.5:7.5  
- V6       V6                               1:7       ...       ...       ...       ...       ...
+ V6       V6                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G001) with -1.E+34 for missing data
              X=0.5:7.5  
- V7       V7                               1:7       ...       ...       ...       ...       ...
+ V7       V7                               1:7       ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G001) with -1.E+34 for missing data
              X=0.5:7.5  
- V8       V8                               1:7       ...       ...       ...       ...       ...
+ V8       V8                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G001) with -1.E+34 for missing data
              X=0.5:7.5  
- V9       V9                               1:7       ...       ...       ...       ...       ...
+ V9       V9                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G001) with -1.E+34 for missing data
              X=0.5:7.5  
- V10      V10                              1:7       ...       ...       ...       ...       ...
+ V10      V10                              1:7       ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G001) with -1.E+34 for missing data
@@ -36310,13 +36982,13 @@ file/format=delim/var=a1,a2,a3,a4,a5,a6,a7 bn_delimited_read_1.dat
 list a1,a2,a3,a4,a5,a6,a7
              DATA SET: ./bn_delimited_read_1.dat
              X: 0.5 to 7.5
- Column  1: A1
- Column  2: A2
- Column  3: A3
- Column  4: A4
- Column  5: A5
- Column  6: A6
- Column  7: A7
+ Column  1: A1 is a1
+ Column  2: A2 is a2
+ Column  3: A3 is a3
+ Column  4: A4 is a4
+ Column  5: A5 is a5
+ Column  6: A6 is a6
+ Column  7: A7 is a7
                   A1    A2     A3     A4     A5    A6    A7
 1   / 1: "col1"       "col2" "col3" "col4" "col5" " "    ....
 2   / 2: "one"        " "    "1.1"  "24S"  "130E" " "    10.0
@@ -36378,21 +37050,21 @@ file/format=delim/skip=1/type=text/var=a1,a2,a3,a4,a5 bn_delimited_read_1.dat
 show data
      currently SET data sets:
     1> ./bn_delimited_read_1.dat  (default)
- name     title                             I         J         K         L         M         N
- A1       A1                               1:7       ...       ...       ...       ...       ...
- A2       A2                               1:7       ...       ...       ...       ...       ...
- A3       A3                               1:7       ...       ...       ...       ...       ...
- A4       A4                               1:7       ...       ...       ...       ...       ...
- A5       A5                               1:7       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A1       a1                               1:7       ...       ...       ...
+ A2       a2                               1:7       ...       ...       ...
+ A3       a3                               1:7       ...       ...       ...
+ A4       a4                               1:7       ...       ...       ...
+ A5       a5                               1:7       ...       ...       ...
  
 list a1,a2,a3,a4,a5
              DATA SET: ./bn_delimited_read_1.dat
              X: 0.5 to 6.5
- Column  1: A1
- Column  2: A2
- Column  3: A3
- Column  4: A4
- Column  5: A5
+ Column  1: A1 is a1
+ Column  2: A2 is a2
+ Column  3: A3 is a3
+ Column  4: A4 is a4
+ Column  5: A5 is a5
                   A1   A2   A3    A4    A5
 1   / 1: "one"        " " "1.1" "24S" "130E"
 2   / 2: "two"        " " "2.2" "24N" "130W"
@@ -36473,11 +37145,11 @@ columns/grid=g1/var=c1,c2,c3,c4,c5 bn_delimited_read_1.dat
 list c1,c2,c3,c4,c5
              DATA SET: ./bn_delimited_read_1.dat
              X: 1
- Column  1: C1
- Column  2: C2
- Column  3: C3
- Column  4: C4
- Column  5: C5
+ Column  1: C1 is c1
+ Column  2: C2 is c2
+ Column  3: C3 is c3
+ Column  4: C4 is c4
+ Column  5: C5 is c5
              C1    C2     C3     C4     C5
 I / *:    "col1" "col2" "col3" "col4" "col5"
  
@@ -36486,23 +37158,25 @@ cancel data/all
 ! file using blank as a delimiter
 ! Note record 1 has blanks at end of record
 ! Note record of many blanks sandwiched in as record 2
+! (note prev. to 7/13/2016 the file had incorrect date formats with the year first.
+!  File replaced so it can be read after the fix for ticket 2449.)
 file/form=delimited bn_delimited_read_2.dat
 show data
      currently SET data sets:
     1> ./bn_delimited_read_2.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:3       ...       ...       ...
  
 file/form=delimited/delimiter=" " bn_delimited_read_2.dat
 show data
      currently SET data sets:
     1> ./bn_delimited_read_2.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:3       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V2       V2                               1:3       ...       ...       ...       ...       ...
+ V2       V2                               1:3       ...       ...       ...
        (Time of day)
- V3       V3                               1:3       ...       ...       ...       ...       ...
+ V3       V3                               1:3       ...       ...       ...
        (all values missing)
  
 list v1,v2
@@ -36511,9 +37185,9 @@ list v1,v2
  Column  1: V1 is V1 (days)(Julian days since 1-Jan-1900)
  Column  2: V2 is V2 (hours)(Time of day)
              V1    V2
-1   / 1:  37965.  12.58
+1   / 1:  29921.  12.58
 2   / 2:    ....   ....
-3   / 3:  39051.  13.75
+3   / 3:  -1790.  13.75
  
 ! ==========
 ! look at the date/time file
@@ -36545,18 +37219,18 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
- V2       V2                               1:4       ...       ...       ...       ...       ...
- V3       V3                               1:4       ...       ...       ...       ...       ...
- V4       V4                               1:4       ...       ...       ...       ...       ...
- V5       V5                               1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:4       ...       ...       ...
+ V2       V2                               1:4       ...       ...       ...
+ V3       V3                               1:4       ...       ...       ...
+ V4       V4                               1:4       ...       ...       ...
+ V5       V5                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V6       V6                               1:4       ...       ...       ...       ...       ...
+ V6       V6                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V7       V7                               1:4       ...       ...       ...       ...       ...
+ V7       V7                               1:4       ...       ...       ...
        (Time of day)
- V8       V8                               1:4       ...       ...       ...       ...       ...
+ V8       V8                               1:4       ...       ...       ...
        (Time of day)
  
  
@@ -36594,22 +37268,22 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V2       V2                               1:4       ...       ...       ...       ...       ...
+ V2       V2                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V3       V3                               1:4       ...       ...       ...       ...       ...
+ V3       V3                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V4       V4                               1:4       ...       ...       ...       ...       ...
+ V4       V4                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V5       V5                               1:4       ...       ...       ...       ...       ...
+ V5       V5                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V6       V6                               1:4       ...       ...       ...       ...       ...
+ V6       V6                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V7       V7                               1:4       ...       ...       ...       ...       ...
+ V7       V7                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V8       V8                               1:4       ...       ...       ...       ...       ...
+ V8       V8                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
  
  
@@ -36633,22 +37307,22 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:4       ...       ...       ...
        (Time of day)
- V2       V2                               1:4       ...       ...       ...       ...       ...
+ V2       V2                               1:4       ...       ...       ...
        (Time of day)
- V3       V3                               1:4       ...       ...       ...       ...       ...
+ V3       V3                               1:4       ...       ...       ...
        (Time of day)
- V4       V4                               1:4       ...       ...       ...       ...       ...
+ V4       V4                               1:4       ...       ...       ...
        (Time of day)
- V5       V5                               1:4       ...       ...       ...       ...       ...
+ V5       V5                               1:4       ...       ...       ...
        (Time of day)
- V6       V6                               1:4       ...       ...       ...       ...       ...
+ V6       V6                               1:4       ...       ...       ...
        (Time of day)
- V7       V7                               1:4       ...       ...       ...       ...       ...
+ V7       V7                               1:4       ...       ...       ...
        (Time of day)
- V8       V8                               1:4       ...       ...       ...       ...       ...
+ V8       V8                               1:4       ...       ...       ...
        (Time of day)
  
  
@@ -36672,22 +37346,22 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V2       V2                               1:4       ...       ...       ...       ...       ...
+ V2       V2                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V3       V3                               1:4       ...       ...       ...       ...       ...
+ V3       V3                               1:4       ...       ...       ...
        (Time of day)
- V4       V4                               1:4       ...       ...       ...       ...       ...
+ V4       V4                               1:4       ...       ...       ...
        (Time of day)
- V5       V5                               1:4       ...       ...       ...       ...       ...
+ V5       V5                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V6       V6                               1:4       ...       ...       ...       ...       ...
+ V6       V6                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V7       V7                               1:4       ...       ...       ...       ...       ...
+ V7       V7                               1:4       ...       ...       ...
        (Time of day)
- V8       V8                               1:4       ...       ...       ...       ...       ...
+ V8       V8                               1:4       ...       ...       ...
        (Time of day)
  
  
@@ -36707,14 +37381,14 @@ list v1,v3,v5,v7
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V3       V3                               1:4       ...       ...       ...       ...       ...
+ V3       V3                               1:4       ...       ...       ...
        (Time of day)
- V5       V5                               1:4       ...       ...       ...       ...       ...
+ V5       V5                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V7       V7                               1:4       ...       ...       ...       ...       ...
+ V7       V7                               1:4       ...       ...       ...
        (Time of day)
  
  
@@ -36802,364 +37476,364 @@ show data/full
      currently SET data sets:
     1> ./bn_delimited_read_CO2.dat  (default)
  
- name     title                             I         J         K         L         M         N
- V1       V1                               1:20      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:20      ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V2       V2                               1:20      ...       ...       ...       ...       ...
+ V2       V2                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V3       V3                               1:20      ...       ...       ...       ...       ...
+ V3       V3                               1:20      ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V4       V4                               1:20      ...       ...       ...       ...       ...
+ 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
              X=0.5:20.5  
- V5       V5                               1:20      ...       ...       ...       ...       ...
+ V5       V5                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V6       V6                               1:20      ...       ...       ...       ...       ...
+ V6       V6                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V7       V7                               1:20      ...       ...       ...       ...       ...
+ V7       V7                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V8       V8                               1:20      ...       ...       ...       ...       ...
+ V8       V8                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V9       V9                               1:20      ...       ...       ...       ...       ...
+ V9       V9                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V10      V10                              1:20      ...       ...       ...       ...       ...
+ V10      V10                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V11      V11                              1:20      ...       ...       ...       ...       ...
+ V11      V11                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V12      V12                              1:20      ...       ...       ...       ...       ...
+ V12      V12                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V13      V13                              1:20      ...       ...       ...       ...       ...
+ V13      V13                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V14      V14                              1:20      ...       ...       ...       ...       ...
+ V14      V14                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V15      V15                              1:20      ...       ...       ...       ...       ...
+ V15      V15                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V16      V16                              1:20      ...       ...       ...       ...       ...
+ V16      V16                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V17      V17                              1:20      ...       ...       ...       ...       ...
+ V17      V17                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V18      V18                              1:20      ...       ...       ...       ...       ...
+ V18      V18                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V19      V19                              1:20      ...       ...       ...       ...       ...
+ V19      V19                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V20      V20                              1:20      ...       ...       ...       ...       ...
+ V20      V20                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V21      V21                              1:20      ...       ...       ...       ...       ...
+ V21      V21                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V22      V22                              1:20      ...       ...       ...       ...       ...
+ V22      V22                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V23      V23                              1:20      ...       ...       ...       ...       ...
+ V23      V23                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V24      V24                              1:20      ...       ...       ...       ...       ...
+ V24      V24                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V25      V25                              1:20      ...       ...       ...       ...       ...
+ V25      V25                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V26      V26                              1:20      ...       ...       ...       ...       ...
+ V26      V26                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V27      V27                              1:20      ...       ...       ...       ...       ...
+ V27      V27                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V28      V28                              1:20      ...       ...       ...       ...       ...
+ V28      V28                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V29      V29                              1:20      ...       ...       ...       ...       ...
+ V29      V29                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V30      V30                              1:20      ...       ...       ...       ...       ...
+ V30      V30                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V31      V31                              1:20      ...       ...       ...       ...       ...
+ V31      V31                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V32      V32                              1:20      ...       ...       ...       ...       ...
+ V32      V32                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V33      V33                              1:20      ...       ...       ...       ...       ...
+ V33      V33                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V34      V34                              1:20      ...       ...       ...       ...       ...
+ V34      V34                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V35      V35                              1:20      ...       ...       ...       ...       ...
+ V35      V35                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V36      V36                              1:20      ...       ...       ...       ...       ...
+ V36      V36                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V37      V37                              1:20      ...       ...       ...       ...       ...
+ V37      V37                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V38      V38                              1:20      ...       ...       ...       ...       ...
+ V38      V38                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V39      V39                              1:20      ...       ...       ...       ...       ...
+ V39      V39                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V40      V40                              1:20      ...       ...       ...       ...       ...
+ V40      V40                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V41      V41                              1:20      ...       ...       ...       ...       ...
+ V41      V41                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V42      V42                              1:20      ...       ...       ...       ...       ...
+ V42      V42                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V43      V43                              1:20      ...       ...       ...       ...       ...
+ V43      V43                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V44      V44                              1:20      ...       ...       ...       ...       ...
+ V44      V44                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V45      V45                              1:20      ...       ...       ...       ...       ...
+ V45      V45                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V46      V46                              1:20      ...       ...       ...       ...       ...
+ V46      V46                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V47      V47                              1:20      ...       ...       ...       ...       ...
+ V47      V47                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V48      V48                              1:20      ...       ...       ...       ...       ...
+ V48      V48                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V49      V49                              1:20      ...       ...       ...       ...       ...
+ V49      V49                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V50      V50                              1:20      ...       ...       ...       ...       ...
+ V50      V50                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V51      V51                              1:20      ...       ...       ...       ...       ...
+ V51      V51                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V52      V52                              1:20      ...       ...       ...       ...       ...
+ V52      V52                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V53      V53                              1:20      ...       ...       ...       ...       ...
+ V53      V53                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V54      V54                              1:20      ...       ...       ...       ...       ...
+ V54      V54                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V55      V55                              1:20      ...       ...       ...       ...       ...
+ V55      V55                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V56      V56                              1:20      ...       ...       ...       ...       ...
+ V56      V56                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V57      V57                              1:20      ...       ...       ...       ...       ...
+ V57      V57                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V58      V58                              1:20      ...       ...       ...       ...       ...
+ V58      V58                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V59      V59                              1:20      ...       ...       ...       ...       ...
+ V59      V59                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V60      V60                              1:20      ...       ...       ...       ...       ...
+ V60      V60                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V61      V61                              1:20      ...       ...       ...       ...       ...
+ V61      V61                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V62      V62                              1:20      ...       ...       ...       ...       ...
+ V62      V62                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V63      V63                              1:20      ...       ...       ...       ...       ...
+ V63      V63                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V64      V64                              1:20      ...       ...       ...       ...       ...
+ V64      V64                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V65      V65                              1:20      ...       ...       ...       ...       ...
+ V65      V65                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V66      V66                              1:20      ...       ...       ...       ...       ...
+ V66      V66                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V67      V67                              1:20      ...       ...       ...       ...       ...
+ V67      V67                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V68      V68                              1:20      ...       ...       ...       ...       ...
+ V68      V68                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V69      V69                              1:20      ...       ...       ...       ...       ...
+ V69      V69                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V70      V70                              1:20      ...       ...       ...       ...       ...
+ V70      V70                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V71      V71                              1:20      ...       ...       ...       ...       ...
+ V71      V71                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V72      V72                              1:20      ...       ...       ...       ...       ...
+ V72      V72                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
@@ -37274,6 +37948,7 @@ cancel mode ignore
 !
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! tics on horiz log axes were wrong; (plot only)
 ! GO bn_reset
@@ -37283,6 +37958,7 @@ cancel mode verify
 !missing vertices in polygon call
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_polymissing
 ! err540_polymissing.jnl
 ! 3/02 *acm*
@@ -37314,6 +37990,7 @@ polygon  xvertex1,yvertex,values
 ! formatting axis label numbers
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_ill_format.jnl
 ! err540_ill_format.jnl
 ! 3/02 *acm*
@@ -37332,6 +38009,7 @@ plot/trans/i=1:100  0.001 - 0.002/ i
 ! variable permutation in netCDF writes
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_write_order
 ! err540_write_order.jnl
 ! *sh* 3/02
@@ -37410,6 +38088,7 @@ sp rm -f test_bad_order.cdf
 !@AVE error when plotting unlike grids together
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_ax_ave
 !err540_ax_ave.jnl
 ! 3/02 *acm
@@ -37426,6 +38105,7 @@ plot/x=140w/y=0/sym/line sst,sst[gt=t2 at ave]
 !Make PPL AXSET settings persist, but not settings made w/ qualifiers /AXES= or /NOAXES
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_axset
 !err540_axset.jnl
 ! 3/02 *acm
@@ -37460,6 +38140,7 @@ PPL axset 1,1,1,1
 !Previously couldn't do PLOT/VS/DASH, but no reason not to allow it.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_vs_dash
 ! PLOT/VS/DASH  previously was not allowed.
  
@@ -37503,6 +38184,7 @@ plot/over/thick/dash/color=blue 50*sin(ypts/3)+700, 30*cos(ypts/3)+800, 20*cos(y
 !overlay on polygon plots
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_poly_overlay
 !overlay on polygon plots
  
@@ -37512,6 +38194,7 @@ shade/over/i=1:2/j=0:2/patt i+j
 !polytube failed on plot/over; go polytube, because YAXIS_MIN, _MAX not defined.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_axis_symbols
 ! err540_axis_symbols.jnl
 ! 3/02 *acm*
@@ -37544,6 +38227,7 @@ XAXIS_MAX = "10.00000"
 !nested repeat loops and parsing parentheses
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_parse_repeat
 ! err540_parse_repeat.jnl
 ! 3/03 *acm
@@ -37589,6 +38273,7 @@ why not
 ! appending a scalar to NetCDF file
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_cd_use_recdim
 ! err540_cd_use_recdim
 ! 3/02 *sh*
@@ -37610,9 +38295,9 @@ use profiles.nc
 sh data
      currently SET data sets:
     1> ./profiles.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     X[GX=XPROFILE] + Y[GY=YLON] + Z  1:50      1:10      1:10      1:10      ...       ...
- MAXPROF  5                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ TEMP     X[GX=XPROFILE] + Y[GY=YLON] + Z  1:50      1:10      1:10      1:10
+ MAXPROF  5                                ...       ...       ...       ...
  
 sp rm -f profiles.nc
  
@@ -37631,6 +38316,7 @@ sp rm -f profiles.nc
 !missing data in xpts,ypts sample points wasnt checked
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_samplexy_missing
 ! err540_samplexy_missing.jnl
 ! 3/03 *acm
@@ -37663,8 +38349,10 @@ list asst
 ! test the fixed delta stride bug
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_strides_rev.jnl
 ! err540_strides_rev.jnl
+! V702: *sh* 2/2017 - modified this bench script
  
 ! reported Feb '02
 ! fixed April 17, '02
@@ -37699,35 +38387,34 @@ cancel var/all
  
 set mode stupid
 set mode diag
-set mem/size=0.05
+! *sh* 2/17 - such a small memory size makes it impossible to succeed
+! with the command under the new dynamic memory management
+!set mem/size=0.05
+set mem/size=1   ! use this larger size, instead
 show mem/free
- Current size of FERRET memory cache: 0.2 MegaWords  (1 word = 8 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 100
- 
-            number of free memory blocks: 2000
-            largest free region: 2000
-            number of free regions: 1
-            free memory table slots: 500
-            number of UN-CACHED variables: 0
+    SET MEMORY/SIZE: 1000000 words
+    Peak demand: 0 words
+    Current cache: 0 words
+    Total table slots: 500
+    Free table slots: 500
+    Un-cached variables: 0
  
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  100  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    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)   YAX1_100  NORMAL    NORMAL
+ dealloc  dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL
+ allocate dynamic grid (G003)          (AX003)   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
- 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  M: -999 -999  N: -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  M: -999 -999  N: -999 -999
- nulrgd  A        M:  1 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:  2 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : IF I EQ J THEN 1 ELSE A0
                         regrid: 10 delta on X
              FILENAME : test_100x100.nc
@@ -37839,27 +38526,25 @@ show grid
  Last successful data access was on grid (G003)
     GRID (G003)
  name       axis              # pts   start                end                 subset
- (AX003)   X                   10 r   1                    91                  9 pts
+ (AX003)   X                   10 r   1                    91                  10 pts
  YAX1_100  Y                  100 r   1                    100                 full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! 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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL    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
- 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  M: -999 -999  N: -999 -999
- doing reversing A on Y axis:     1   100 dset:   1
- -DELETE A        M:  2 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  A        M:  2 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:  3 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ 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
 setting up 2D plot
- -DELETE A        M:  3 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M: 21 dset:   1 I:      1     10  J:    1  100  K: -999 -999  L:   -999   -999
 PPL plot 26   complete
 ppl list stats
 
@@ -38093,6 +38778,7 @@ set mem/size=25.6
 ! unknown data type for clauses with constants only
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_data_type.jnl
 ! err540_data_type
 ! 2/19/02 *sh*
@@ -38126,6 +38812,7 @@ plot IF {1,3,5} GE 3 THEN 1  ! data type unknown
 ! gridding scattered points to modulo axis had bug
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_modscat.jnl
 ! test gridding scattered points to modulo axis.
 ! Show Southern hemisphere.
@@ -38149,6 +38836,7 @@ plot/vs/over xpts[i=1:1000]+360, ypts[i=1:1000]
 ! make sure the USE bug reported 5/01 by A Wittenberg is fixed
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_use.jnl
 ! err540_use.jnl
 !
@@ -38179,17 +38867,17 @@ use g.nc
 sh data
      currently SET data sets:
     1> ./f.nc
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        1                                ...       ...       ...       ...
  
     2> ./f2.nc
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
- B        2                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        1                                ...       ...       ...       ...
+ B        2                                ...       ...       ...       ...
  
     3> ./g.nc  (default)
- name     title                             I         J         K         L         M         N
- B        2                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ B        2                                ...       ...       ...       ...
  
 can data/all
  
@@ -38198,19 +38886,19 @@ use f.nc
 sh data
      currently SET data sets:
     1> ./f.nc  (default)
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        1                                ...       ...       ...       ...
  
 use g.nc
 sh data
      currently SET data sets:
     1> ./f.nc
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        1                                ...       ...       ...       ...
  
     2> ./g.nc  (default)
- name     title                             I         J         K         L         M         N
- B        2                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ B        2                                ...       ...       ...       ...
  
 can dat 1
  
@@ -38221,13 +38909,13 @@ use f2.nc
 show dat
      currently SET data sets:
     1> ./f2.nc  (default)
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
- B        2                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        1                                ...       ...       ...       ...
+ B        2                                ...       ...       ...       ...
  
     2> ./g.nc
- name     title                             I         J         K         L         M         N
- B        2                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ B        2                                ...       ...       ...       ...
  
  
 ! This should work
@@ -38249,6 +38937,7 @@ set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! longax cancel axis axname
 repeat/k=1:10 go bn_cancel_axes_1.sub
 !-> REPEAT: K=1
@@ -38374,6 +39063,7 @@ can data longax.dat
  
  go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! longax cancel axis/all
  
 ! Note: cancel axes/all tested in err541_cancel_axes.jnl
@@ -38384,6 +39074,7 @@ cancel mode verify
 ! test remaining axes are intact when we cancel one.
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 define axis/x ax1={2,4,5,6,9}
 define axis/x ax2={30,60,90,100}
 sh axis/x ax2
@@ -38493,6 +39184,7 @@ T0 = 01-JAN-0000 00:00:00
 ! Interior tics disappear on FILL plots
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err541_fill_tics
 ! pplus tics bug - pre 5.42, fill plots overlaid interior tics.
  
@@ -38511,6 +39203,7 @@ ppl tics,,.25,,.25,-1,-1
 ! are used rather than date specifications
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err541_non_gregorian
 !From Andrew Wittenberg, non-Gregorian time axis bug 01 Oct 2002
 ! pre-542, second axis has just one point.
@@ -38540,6 +39233,7 @@ CALENDAR = JULIAN
 ! Could not write or read a NetCDF file with a 4-D string variable.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err541_string4d
  ! Write a 4-D NetCDF file with a string variable.
  
@@ -38597,8 +39291,8 @@ use string4d.nc
 sh data
      currently SET data sets:
     1> ./string4d.nc  (default)
- name     title                             I         J         K         L         M         N
- AXY      RESHAPE (A,RVAR)                 1:2       1:3       1:4       1:2       ...       ...
+ name     title                             I         J         K         L
+ AXY      RESHAPE (A,RVAR)                 1:2       1:3       1:4       1:2
  
 list axy
              VARIABLE : RESHAPE (A,RVAR)
@@ -38645,6 +39339,7 @@ list axy
 ! Cancel axis/all did not check whether axes were in use
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err541_cancel_axes
 ! Check that an axis in use cannot be cancelled.
 ! 4/2013 changes for Ferret with climatological axes
@@ -38690,6 +39385,7 @@ show axis test_i*
 ! 5/4/05 *acm* Move to bn_ef_err541_date_delim; pulling all jnls that call shared-obj efs out
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! GO err541_date_delim
  
 *** Running ferret script: bn_subspan_modulo.jnl
@@ -38987,11 +39683,11 @@ set mode diag
 set mode stupid  ! always re-read and recompute
 lsx $1  ! default avoids void points
  !-> list/order=x vreg
- dealloc  dynamic grid GFJ3            XAX_SUBSPANORMAL    NORMAL    TAX_SUBSPANORMAL    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 GFJ1            XAX_SUBSPANORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VREG     M:  2 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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 GFJ1            XAX_SUBSPANORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VREG     M:  2 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : X[GX=XAX_SUBSPAN] -40 + 10
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 6 points (X)
@@ -39001,36 +39697,36 @@ lsx $1  ! default avoids void points
 lsxn/x=100 $1  ! void point above, alone (via "modulo-void-filling")
  !-> list/order=x/nohead/x=100 vreg
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     7     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VREG     M:  1 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing modulo-void-filling VREG on X axis:     6     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        7        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VREG     M:  1 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing modulo-void-filling VREG on X axis:        6        6 dset:   1
         ....
 lsxn/x=0 $1 ! void point below, alone (via modulo)
  !-> list/order=x/nohead/x=0 vreg
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    0    0  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VREG on X axis:     0     0 dset:   1
- reading VREG     M:  5 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing VREG on X axis:     6     6 dset:   1
+ eval    EX#1     C:  5 dset:   1 I:      0      0  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing VREG on X axis:        0        0 dset:   1
+ reading VREG     M:  5 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing VREG on X axis:        6        6 dset:   1
         ....
 lsxn/x=45:100 $1  ! void above (via subspan-fill)
  !-> list/order=x/nohead/x=45:100 vreg
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     5     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VREG     M:  3 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing modulo-void-filling VREG on X axis:     5     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        5        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      5      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VREG     M:  3 dset:   1 I:      5      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing modulo-void-filling VREG on X axis:        5        6 dset:   1
           15.00  16.00   ....
 lsxn/x=0:100 $1  ! voids above & below (via modulo)
  !-> list/order=x/nohead/x=0:100 vreg
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     0     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    0    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VREG on X axis:     0     6 dset:   1
- reading VREG     M:  8 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing VREG on X axis:     1     6 dset:   1
- doing modulo-void-filling VREG on X axis:     0     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        0        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing VREG on X axis:        0        6 dset:   1
+ reading VREG     M:  8 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing VREG on X axis:        1        6 dset:   1
+ doing modulo-void-filling VREG on X axis:        0        6 dset:   1
            ....  11.00  12.00  13.00  14.00  15.00  16.00   ....
 set mode/last diag
 lsxn/x=50:160 $1  ! modulo above
@@ -39283,39 +39979,39 @@ l200n/order=x $2[l=1,i=0:14]
            ....  11.00  12.00  13.00  14.00  15.00  16.00   ....  11.00  12.00  13.00  14.00  15.00  16.00   ....
 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_SUBSPANORMAL    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 (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- dealloc  dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- allocate dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ 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
+ 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
- found   V2D_REG  M: 71 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  V2D_REG  M: 72 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ 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
            ....  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_SUBSPANORMAL    NORMAL
- -DELETE V2D_REG  M: 73 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  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 (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)   NORMAL    NORMAL
- dealloc  dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)   NORMAL    NORMAL
- allocate dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- allocate dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)   NORMAL    NORMAL
+ dealloc  dynamic grid (G004)          (AX001)   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)
+ 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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  V2D_REG  M: 73 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- -DELETE V2D_REG  M: 74 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)   NORMAL    NORMAL
+ 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)
  16-JAN-0000 / 1:   11.0
  16-MAR-0000 / 2:   71.0
  15-MAY-0000 / 3:  131.0
@@ -39518,11 +40214,11 @@ set mode diag
 set mode stupid  ! always re-read and recompute
 lsx $1  ! default avoids void points
  !-> list/order=x virr
- dealloc  dynamic grid GFJ4            XIRREG_SUBNORMAL    NORMAL    TIRREG_SUBNORMAL    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 GFJ2            XIRREG_SUBNORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VIRR     M: 80 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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 GFJ2            XIRREG_SUBNORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VIRR     M: 80 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : X[GX=XIRREG_SUBSPAN] -40 + 10
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 6 points (X)
@@ -39532,36 +40228,36 @@ lsx $1  ! default avoids void points
 lsxn/x=100 $1  ! void point above, alone (via "modulo-void-filling")
  !-> list/order=x/nohead/x=100 virr
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     7     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VIRR     M: 81 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing modulo-void-filling VIRR on X axis:     6     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        7        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VIRR     M: 81 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing modulo-void-filling VIRR on X axis:        6        6 dset:   1
         ....
 lsxn/x=0 $1 ! void point below, alone (via modulo)
  !-> list/order=x/nohead/x=0 virr
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    0    0  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VIRR on X axis:     0     0 dset:   1
- reading VIRR     M: 83 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing VIRR on X axis:     6     6 dset:   1
+ eval    EX#1     C:  5 dset:   1 I:      0      0  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing VIRR on X axis:        0        0 dset:   1
+ reading VIRR     M: 83 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing VIRR on X axis:        6        6 dset:   1
         ....
 lsxn/x=45:100 $1  ! void above (via subspan-fill)
  !-> list/order=x/nohead/x=45:100 virr
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     5     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VIRR     M: 85 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing modulo-void-filling VIRR on X axis:     5     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        5        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      5      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VIRR     M: 85 dset:   1 I:      5      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing modulo-void-filling VIRR on X axis:        5        6 dset:   1
           15.00  16.00   ....
 lsxn/x=0:100 $1  ! voids above & below (via modulo)
  !-> list/order=x/nohead/x=0:100 virr
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     0     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    0    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VIRR on X axis:     0     6 dset:   1
- reading VIRR     M: 87 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing VIRR on X axis:     1     6 dset:   1
- doing modulo-void-filling VIRR on X axis:     0     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        0        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing VIRR on X axis:        0        6 dset:   1
+ reading VIRR     M: 87 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing VIRR on X axis:        1        6 dset:   1
+ doing modulo-void-filling VIRR on X axis:        0        6 dset:   1
            ....  11.00  12.00  12.10  14.00  15.00  16.00   ....
 set mode/last diag
 lsxn/x=50:160 $1  ! modulo above
@@ -39814,39 +40510,39 @@ l200n/order=x $2[l=1,i=0:14]
            ....  11.00  12.00  12.10  14.00  15.00  16.00   ....  11.00  12.00  12.10  14.00  15.00  16.00   ....
 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_SUBNORMAL    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)          (AX001)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- allocate dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ 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
+ 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
- found   V2D_IRR  M:150 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  V2D_IRR  M:151 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ 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
            ....  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_SUBNORMAL    NORMAL
- -DELETE V2D_IRR  M:152 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  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 (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)   NORMAL    NORMAL
- allocate dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX005)   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)
+ 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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  V2D_IRR  M:152 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- -DELETE V2D_IRR  M:153 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)   NORMAL    NORMAL
+ 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)
  16-JAN-0000 / 1:   11.0
  15-MAR-0000 / 2:   70.2
  15-MAY-0000 / 3:  131.2
@@ -40056,11 +40752,11 @@ can mode labels
 can mode logo
 show modes
       MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
+      DIAGNOSTIC    CANCELED            99
       VERIFY           SET         DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
+      INTERPOLATE   CANCELED
+      IGNORE_ERROR  CANCELED
+      STUPID        CANCELED
       JOURNAL          SET         ferret.jnl
       LONG_LABEL       SET               1
       LATIT_LABEL      SET               1
@@ -40070,24 +40766,25 @@ show modes
       F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
+      WAIT          CANCELED
+      DESPERATE     CANCELED       2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      .gif
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
-      LOGO          CANCELLED
-      LABELS        CANCELLED
-      GRATICULE     CANCELLED
+      METAFILE      CANCELED       .gif
+      PPLLIST       CANCELED       ppllist.out
+      GUI           CANCELED
+      LOGO          CANCELED
+      LABELS        CANCELED
+      GRATICULE     CANCELED
       LINECOLORS       SET               6
       UPCASE_OUTPU     SET
       NLEVELS          SET              30
       NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      LAYERZ        CANCELLED
+      SHRINK_YLAB   CANCELED
+      CURVILINEAR   CANCELED
+      LAYERZ        CANCELED
       6D_LAB           SET
+      FRUGAL           SET              30
 contour/i=1:10/j=1:10 i/j
  
 ! restore the labels, logo still gone
@@ -40177,6 +40874,7 @@ T0 = %%
 ! Polygon/overlay calendar axis bug
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err542_poly_over_calendar
 ! POLY/OVER when data has a non-standard calendar caused
 ! calendar mismatch error, even on a plot with no time axis.
@@ -40196,6 +40894,7 @@ poly/over/color=red/line=2/title="polygon" {220,240,280,250},{-20,70,40,-30}
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_view_axes_fill.jnl
 ! err550_view_axes_fill.jnl
 ! acm 2/5/03
@@ -40285,6 +40984,7 @@ set win/aspect=0.75
 ! defined as a VIEW/AXES viewport.
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_view_axes_position.jnl
 ! err550_view_axes_position.jnl
 ! acm 2/5/03
@@ -40303,6 +41003,7 @@ shade/x=1:10/y=1:10 x-y
 ! SHADE bug: hlimits, vlimits without effect
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_shade_limits.jnl
 ! err550_shade_limits.jnl
 ! acm 2/5/03
@@ -40317,6 +41018,7 @@ set view lower; shade/hlimits=212:324/vlimits=-34:23 sst[l=1]
 ! Redefining an axis with a new calendar definition
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_redefine_calendar_axis.jnl
 ! err550_redefine_calendar_axis.jnl
 ! different calendar axis not recognized as a different specifier,
@@ -40340,6 +41042,7 @@ CALENDAR = JULIAN
 ! Bug in defining axis from an expression.
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_define_axis_expression.jnl
 ! err550_define_axis_expression.jnl
 ! reported by A. Wittenberg.
@@ -40391,6 +41094,7 @@ list x[gx=xax]
 ! Bug in reading seconds from time origin in nc file.
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_nc_seconds.jnl
 ! err550_nc_seconds.jnl
 ! 2/12/03 ACM
@@ -40417,6 +41121,7 @@ list t[gt=height]    ! Seconds should be 36, 37, 38...
 ! Bug in plotting polymarker dots with pen numbers gt 6
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_dots_thickpens.jnl
 ! err550_dots_thickpens.jnl
 ! For pen code higher than 6, get *  rather than dot.
@@ -40561,6 +41266,7 @@ ppl rlabs,4,0
 ! Default behavior (all axes on) was not reset after a plot/set/AXES=
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_axes_set.jnl
 ! Default behavior (all axes on) was not reset after a PLOT/SET/AXES=
  
@@ -40580,6 +41286,7 @@ plot/i=1:100/title="PLOT (no quals); all axes plotted" i*cos(i/12)
 ! test on SHADE and POLYGON plots, and these crashed Ferret.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_num_levels.jnl
 ! Test whether too many levels specified. Previous to v552, no
 ! test was made on SHADE and POLYGON plots, and these crashed Ferret.
@@ -40606,6 +41313,7 @@ SET WIN/CLEAR
 ! Check for invalid value of calendar attribute on reading NetCDF files.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_invalid_calendar.jnl
 ! check on input for invalid calendar name
 ! If file gives calendar attribute with unrecognized name,
@@ -40615,14 +41323,15 @@ set data err_calendar.nc
 sh data
      currently SET data sets:
     1> ./err_calendar.nc  (default)
- name     title                             I         J         K         L         M         N
- TIME     observation time                 ...       ...       ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ TIME     observation time                 ...       ...       ...       1:12
        (invalid coordinate axis)
  
  
 ! String bug fixes *kob*
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_strings.jnl
  
  
@@ -40692,6 +41401,7 @@ list strcmp("b", mystring)
 ! 2-D @AVE bug fix
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_2dave.jnl
 ! Bug in 2-D averaging, if source data thats loaded has a
 ! larger range than the dest data, code didnt check whether
@@ -40721,6 +41431,7 @@ list/l=1/y=20 sst[gx=xax at ave,gy=yax at ave]
 ! RETURN error message, and new var,RETURN=dsettitle  argument
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_return_message.jnl
  ! err551_return_message.jnl
  ! 4/15/03 ACM
@@ -40744,6 +41455,7 @@ SET MODE/LAST IGNORE_ERROR
 !  file/form=stream didnt see file in another directory
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_streamread_directory.jnl
 ! Bug: file/form=stream doesnt see file in another directory
  
@@ -40754,7 +41466,7 @@ def grid/x=xax g
 list/clobber/form=stream/file="a.dat" 1
 file/form=stream/grid=g/var=a "a.dat"
 list a
-             VARIABLE : A
+             VARIABLE : a
              FILENAME : a.dat
              X        : 1
           1.000
@@ -40764,7 +41476,7 @@ sp mkdir -p subdir
 sp mv a.dat subdir
 file/form=stream/grid=g/var=a "subdir/a.dat"
 list a
-             VARIABLE : A
+             VARIABLE : a
              FILENAME : a.dat
              FILEPATH : subdir/
              X        : 1
@@ -40773,6 +41485,7 @@ list a
 ! GXY=var  regridding syntax, when the variable hasnt been loaded
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_regrid_undef_grid.jnl
 ! err551_regrid_undef_grid.jnl
 ! 5/03 *acm* based on bn_regrid_to_user; more testing of multi-axis GXY=var
@@ -40822,8 +41535,6 @@ show grid
  COADSY    LATITUDE            90 r   89S                  89N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 can data/all
 can var/all
@@ -40910,6 +41621,7 @@ list dzdt_anom
 ! Symbol substituted on each repetition of REPEAT
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_repeat_sym.jnl
  
 ! This had worked, but stopped working in v541
@@ -40937,6 +41649,7 @@ def sym a 0; rep/i=1:3:1 (def sym a `i`; say ($a))
 ! another time axis, some times have missing data
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_modulo_nc_regrid.jnl
 ! data from nc file with time axis having modulo=value, when regridded
 ! to another time axis, some times have missing data
@@ -40998,6 +41711,7 @@ list/l=23:27 vwnd_clim[gt=vwnd[d=1]]
 ! FFT frequency axis not computed accurately enough.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_fft_freqaxis.jnl
  
 DEFINE AXIS/t=1:4998:1 dayt
@@ -41025,6 +41739,7 @@ list `tpts,return=lend`
 ! No error message on request for time on bad time axis
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_no_taxis_errmsg.jnl
 ! The time axis is bad, having repeated values, so an abstract axis is
 ! used by Ferret and the list/t=time should result in an error.
@@ -41122,14 +41837,13 @@ SHOW GRID
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
  
  
 ! save to a file a variable that is 128 long
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 LET a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567 = {12,14,20,28,22,10}
 SAVE/CLOBBER/FILE=longvname.nc a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
@@ -41137,6 +41851,7 @@ SAVE/CLOBBER/FILE=longvname.nc a234567890b234567890c234567890d234567890e23456789
 ! read from the file
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 USE longvname
 LIST a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
              VARIABLE : {12,14,20,28,22,10}
@@ -41152,11 +41867,13 @@ LIST a234567890b234567890c234567890d234567890e234567890f234567890g234567890h2345
 ! save a 4-D variable
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 LET a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567 = I[I=1:5] * J[J=1:4] * K[K=1:3] + L[L=1:3]
 SAVE/CLOBBER/FILE=longvname.nc a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 USE longvname.nc
 lIST/I=1/J=2 a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
              VARIABLE : I[I=1:5] * J[J=1:4] * K[K=1:3] + L[L=1:3]
@@ -41577,8 +42294,6 @@ sh grid r
  normal    Y
  XXX       Z                    6 r   -4                   1                   full
  normal    T
- normal    E
- normal    F
 can data 1
  
 use confuse_yz.nc
@@ -41589,8 +42304,6 @@ sh grid s
  THE       Y                    8 r   10                   80                  full
  XXX       Z                    6 r   -4                   1                   full
  normal    T
- normal    E
- normal    F
 can data 1
  
 use confuse_yt.nc
@@ -41601,8 +42314,6 @@ sh grid u
  THE       Y                    8 r   10                   80                  full
  normal    Z
  LONG      T                    7 r   1                    13                  full
- normal    E
- normal    F
 can data 1
  
 use confuse_yzt.nc
@@ -41613,8 +42324,6 @@ sh grid v
  THE       Y                    8 r   10                   80                  full
  XXX       Z                    6 r   -4                   1                   full
  LONG      T                    7 r   1                    13                  full
- normal    E
- normal    F
 can data 1
  
  
@@ -41673,8 +42382,6 @@ sh grid r
  normal    Y
  CCC       Z                    6 r   -4                   1                   full
  normal    T
- normal    E
- normal    F
 can data 1
  
 use confuse_yz.nc
@@ -41685,8 +42392,6 @@ sh grid s
  BBB       Y                    8 r   10                   80                  full
  CCC       Z                    6 r   -4                   1                   full
  normal    T
- normal    E
- normal    F
 can data 1
  
 use confuse_yt.nc
@@ -41697,8 +42402,6 @@ sh grid u
  BBB       Y                    8 r   10                   80                  full
  normal    Z
  DDD       T                    7 r   1                    13                  full
- normal    E
- normal    F
 can data 1
  
 use confuse_yzt.nc
@@ -41709,8 +42412,6 @@ sh grid v
  BBB       Y                    8 r   10                   80                  full
  CCC       Z                    6 r   -4                   1                   full
  DDD       T                    7 r   1                    13                  full
- normal    E
- normal    F
 can data 1
 *** Running ferret script: bn_many_polygons.jnl
 ! testing large number of polygons in a plot.  Map plot has
@@ -41766,10 +42467,14 @@ fill/x=180 sst
 ! 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.
- 
+!
 ! 22-Feb-2005 USE SHO AXIS/XML `temp,return=taxis` instead
 ! of naming the axes; other axes of the same name (e.g. TIME)
 ! may have been defined in other benchmark scrips.
+!
+! 24-Oct-2016 Changes in Ferret, handling of grid and datatype
+! info. Order of listing in xml output, ferret_data_type is listed
+* for all variables
  
 USE levitus_climatology.cdf
  
@@ -41841,6 +42546,7 @@ save/clobber/file=b.nc ddat
 can var/all
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 USE a.nc
 USE b.nc
@@ -41899,12 +42605,12 @@ SHO DATA/VAR/XML 1
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
 <attribute name="long_name" type="char">
    <value><![CDATA[DDAT[D=2,X=@AVE]]]></value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <zaxis>ZAX1_5</zaxis>
@@ -41980,6 +42686,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <zaxis>ZAX1_5</zaxis>
@@ -41993,6 +42702,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="ABSTRACT">
 <axes>
 </axes>
@@ -42005,6 +42717,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <zaxis>ZAX1_5</zaxis>
@@ -42026,6 +42741,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <zaxis>ZAX1_5</zaxis>
@@ -42039,6 +42757,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="ABSTRACT">
 <axes>
 </axes>
@@ -42058,6 +42779,9 @@ SHOW VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="ABSTRACT">
 <axes>
 </axes>
@@ -42084,6 +42808,9 @@ SHOW VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GSI1">
 <axes>
 </axes>
@@ -42096,6 +42823,9 @@ SHOW VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GSI1">
 <axes>
 <taxis>MONTH_REG</taxis>
@@ -42104,6 +42834,121 @@ SHOW VAR/XML
 </var>
 </global>
  
+! Test getting the data type of a user-defined variable
+ 
+let/d=a dates = tax_datestring(t[gt=tvar], tvar, "days")
+SHOW VAR/XML dates
+<global>
+<var name="DATES[D=./a.nc]">
+<attribute name="definition" type="char">
+   <value><![CDATA[TAX_DATESTRING(T[GT=TVAR], TVAR, "days")]]></value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[STRING]]></value>
+</attribute>
+<grid name="GSI1">
+<axes>
+<taxis>MONTH_REG</taxis>
+</axes>
+</grid>
+</var>
+</global>
+SHO DATA/VAR/XML 1
+<datasets>
+<dataset name="./a.nc" default="true">
+<title> </title>
+<var name="TVAR">
+<attribute name="long_name" type="char">
+   <value><![CDATA[T[GT=MONTH_REG]]]></value>
+</attribute>
+<attribute name="_FillValue" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
+</attribute>
+<grid name="GSI1">
+<axes>
+<taxis>MONTH_REG</taxis>
+</axes>
+</grid>
+</var>
+<var name="dates">
+<attribute name="definition" type="char">
+   <value><![CDATA[TAX_DATESTRING(T[GT=TVAR], TVAR, "days")]]></value>
+</attribute>
+<attribute name="_FillValue" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="long_name" type="char">
+   <value><![CDATA[TAX_DATESTRING(T[GT=TVAR], TVAR, "days")]]></value>
+</attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[STRING]]></value>
+</attribute>
+<grid name="GSI1">
+<axes>
+<taxis>MONTH_REG</taxis>
+</axes>
+</grid>
+</var>
+</dataset>
+</datasets>
+<axes>
+<axis name="MONTH_REG">
+<attribute name="direction" type="char">
+   <value><![CDATA[L]]></value>
+</attribute>
+<attribute name="units" type="char">
+   <value><![CDATA[hour since 0000-01-01 00:00:00]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>12</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>0000-01-16 06:00:00</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>0000-12-16 01:20:00</value>
+</attribute>
+<attribute name="point_spacing" type="char">
+   <value><![CDATA[even]]></value>
+</attribute>
+<attribute name="modulo" type="char">
+   <value><![CDATA[yes]]></value>
+</attribute>
+<attribute name="time_origin" type="char">
+   <value><![CDATA[0000-01-01 00:00:00]]></value>
+</attribute>
+<attribute name="calendar" type="char">
+   <value><![CDATA[GREGORIAN]]></value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
+</attribute>
+<attribute name="axis" type="char">
+   <value><![CDATA[T]]></value>
+</attribute>
+<attribute name="standard_name" type="char">
+   <value><![CDATA[time]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[MONTH_REG]]></value>
+</attribute>
+</axis>
+</axes>
 *** Running ferret script: bn_test_nan.jnl
 !bn_test_nan.jnl
 ! test to make sure that NaN is able to be set by user
@@ -42189,6 +43034,7 @@ can var/all
 ! Make sure numeric filenames works
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_numeric_filename.jnl
 ! err553_numeric_filename.jnl
 ! 9/03 kob
@@ -42224,6 +43070,7 @@ list vwnd_clim
 ! Make sure long string variables work
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_long_string_var_name.jnl
 ! err553_long_string_var_name.jnl
 ! 9/03 kob
@@ -42247,6 +43094,7 @@ list a
 ! Fixes for colorbar key labelling
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_colorkey.jnl
  
 ! colorkey label bugs
@@ -42350,7 +43198,7 @@ plot/trans/thick/vg="(line,color=blue)"/hg="large(line,color=blue),small(line,co
 ! Tests for MODE GRATICULE  added in Ferret v5.7
 show mode graticule
       MODE            STATE        ARGUMENT
-      GRATICULE     CANCELLED
+      GRATICULE     CANCELED
 set mode graticule
 show mode graticule
       MODE            STATE        ARGUMENT
@@ -42727,19 +43575,20 @@ set mode diag
 set reg/y=0:50/L=1
 repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
 !-> REPEAT: M:300
- getgrid 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  M: -999 -999  N: -999 -999
- constan cnst     M: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1  M: -999 -999  N: -999 -999
+ constan cnst     M: 11 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M: 10 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:300 at ave,y=@ave]
- -DELETE cnst     M: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M: 11 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- getgrid EX#1     C:  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      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J:   46   70  K: -999 -999  L:      1      1
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M: 11 dset:   1 I:  131  140  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 11 dset:   1 I:    131    140  J:   46   70  K: -999 -999  L:      1      1
  doing --> SST[Y=0:50N at AV4,D=1]
+ final --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
              LONGITUDE: 80W to 60W (XY ave)
@@ -42747,20 +43596,21 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
              TIME     : 16-JAN 06:00
           20.79
 !-> REPEAT: M:330
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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  M: -999 -999  N: -999 -999
- constan cnst     M:  9 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1  M: -999 -999  N: -999 -999
+ constan cnst     M:  9 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:330 at ave,y=@ave]
- -DELETE cnst     M:  9 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  9 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- getgrid EX#1     C:  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      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J:   46   70  K: -999 -999  L:      1      1
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M:  9 dset:   1 I:  131  155  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:  9 dset:   1 I:    131    155  J:   46   70  K: -999 -999  L:      1      1
  doing --> SST[Y=0:50N at AV4,D=1]
+ final --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
              LONGITUDE: 80W to 30W (XY ave)
@@ -42768,20 +43618,21 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
              TIME     : 16-JAN 06:00
           21.25
 !-> REPEAT: M:360
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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  M: -999 -999  N: -999 -999
- constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  2 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1  M: -999 -999  N: -999 -999
+ constan cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  2 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:360 at ave,y=@ave]
- -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- getgrid EX#1     C:  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      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J:   46   70  K: -999 -999  L:      1      1
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M:  3 dset:   1 I:  131  170  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:  3 dset:   1 I:    131    170  J:   46   70  K: -999 -999  L:      1      1
  doing --> SST[Y=0:50N at AV4,D=1]
+ final --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
              LONGITUDE: 80W to 0E(360) (XY ave)
@@ -42878,6 +43729,7 @@ cancel mode ignore
 ! Test use of longer strings in region names
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_regionname_lengths.jnl
 ! In v5.50, we upped the region name storage to
 ! allow 24-characters.  Wasnt fully implemented.
@@ -42934,6 +43786,7 @@ SET MODE/LAST IGNORE_ERRORS
 ! Reqests for data at times outside range of data
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_timeregion.jnl
 ! try to apply a region whose limits are both below,
 ! or both above, the data bounds. In v5.53 the error
@@ -42952,6 +43805,7 @@ SET MODE/LAST IGNORE_ERRORS
 ! Contour plot on fine grid has precision problems
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_contour_fine_grid.jnl
 ! err553_contour_find_grid.jnl
 ! 11/21/03 ACM
@@ -42987,6 +43841,7 @@ PPLUS/RESET   ! reset aspect ratio
 ! PLOT/SYM/SIZE= did not change the size
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_symsize.jnl
 ! PLOT/SYM/SIZE= does not change the size from the default.
 ! acm 11/03
@@ -42997,6 +43852,7 @@ plot/over/i=1:10/sym=20/siz=0.2 i
 ! test labels on shade keys; consistent number of digits set by 5th shakey arg
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_shakey_labels.jnl
 ! The 5th argument to shakey is supposed to define
 ! number of digits in the label.
@@ -43013,6 +43869,7 @@ ppl shade
 ! couldnt set the number of small tics with arg to %xaxis, %yaxis commands
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_xaxis_nsmtc.jnl
 ! Bug: 5th argument failed to set the number of small
 ! tics for the axis.
@@ -43029,6 +43886,7 @@ ppl %yaxis/nouser 1,100,10,2,6
 ! vs DEFINE AXIS/UNIT=yr
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_year_yr.jnl
 ! err553_year_yr.jnl
 ! 2/2004 ACM
@@ -43220,60 +44078,61 @@ can mode ignore
 ! strides, Ferret did a regridding instead.  Test the fix for this
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_stride_def_grid.jnl
  
 use gtsa056_2.cdf
 set mode diag
 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)   NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   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 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)
+ 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
- rdstride TAUX     C:  9 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- nulrgd  TAUX     M: 23 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M: 24 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
+ 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)
 can mem/all
- -DELETE TAUX     M: 23 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE A        M: 24 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -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)   NORMAL    NORMAL
- 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      NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)
+ 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      NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
+ dealloc  dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME
+ dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)
 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)   NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   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 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)
+ 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
- rdstride TAUX     C:  9 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- nulrgd  TAUX     M: 23 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M: 24 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
+ 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)
  
 can mem/all
- -DELETE TAUX     M: 23 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE A        M: 24 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -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)   NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)
+ dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)
  canceling dset ./gtsa056_2.cdf
  
 ! Some tests taken from  bn_strides_revs_perms.jnl but with
@@ -43283,26 +44142,26 @@ can data/all
 set region/i=3:6/j=2:4/k=1:2/l=1
 use bn_strides
 define grid/like=var agrid
- getgrid EX#1     C:  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    NORMAL    NORMAL
- dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    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 GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
 define grid/like=midvar bgrid
- 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 GPC2            XAX1_9    YAX1_8    ZAX1_7    TAX1_6    NORMAL    NORMAL
+ 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 GPC2            XAX1_9    YAX1_8    ZAX1_7    TAX1_6
 define grid/like=bigvar cgrid
- dealloc  dynamic grid GPC2            XAX1_9    YAX1_8    ZAX1_7    TAX1_6    NORMAL    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 GPC3            XAX1_40   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid GPC2            XAX1_9    YAX1_8    ZAX1_7    TAX1_6
+ 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 GPC3            XAX1_40   YAX1_30   ZAX1_20   TAX1_10
 define grid/like=unevenvar dgrid
- dealloc  dynamic grid GPC3            XAX1_40   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- getgrid EX#1     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 GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid GPC3            XAX1_40   YAX1_30   ZAX1_20   TAX1_10
+ getgrid EX#1     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 GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
 define grid/like=xytvar egrid
- dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- getgrid EX#1     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 GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
+ getgrid EX#1     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 GPC5            XLON      YLAT      NORMAL    TTIME
 canc data/all
- dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME
  canceling dset ./bn_strides.cdf
  
  
@@ -43310,22 +44169,22 @@ canc data/all
 cancel memory/all
 use bn_strides
 load var
- getgrid 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:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- reading VAR      M: 24 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  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
+ eval    EX#1     C:  4 dset:   1 I:      3      4  J:    2    3  K:    1    2  L:      1      1
+ reading VAR      M: 24 dset:   1 I:      3      4  J:    2    3  K:    1    2  L:      1      1
 LIST VAR[i=2:4:2]
- dealloc  dynamic grid AGRID           XAX1_4    YAX1_3    ZAX1_2    TAX1_1    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 (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 22 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 23 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -43340,19 +44199,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    NORMAL    NORMAL
- -DELETE VAR      M: 22 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  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 (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX001)   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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 22 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -43367,25 +44226,25 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.  1214.
  3   / 2:  1232.  1234.
 CANC MEM/ALL
- -DELETE VAR      M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 24 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
+ -DELETE VAR      M: 24 dset:   1 I:      3      4  J:    2    3  K:    1    2  L:      1      1
  
 ! 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    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 (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX007)   (AX002)   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
+ 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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -43400,24 +44259,24 @@ LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
  7    / 3:  1113.
  10   / 4:  1112.
 cancel axis/modulo XAX1_4
- -DELETE VAR      M: 22 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 23 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 24 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 22 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
+ -DELETE VAR      M: 23 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
+ -DELETE VAR      M: 24 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  
 ! 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    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 (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX007)   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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 24 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -43432,19 +44291,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    NORMAL    NORMAL
- -DELETE VAR      M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  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 (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX002)   (AX001)   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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 23 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -43461,24 +44320,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    NORMAL    NORMAL
- -DELETE VAR      M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX002)   (AX007)   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   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   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 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    3    6  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    3    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- rdstride BIGVAR   C: 10 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 23 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 24 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -43490,26 +44349,26 @@ list/j=1/k=1/l=1 a[i=3:5]
  11   / 3:  1121.
  16   / 4:  1126.
  21   / 5:  1131.
- -DELETE A        M: 22 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -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   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 (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX002)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    3    6  J:    2    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- eval    A        C:  8 dset:   1 I:    3    5  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- rdstride BIGVAR   C: 11 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 20 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 22 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- regrid  A        M:  8 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -43526,27 +44385,27 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
 ! ****** unequally spaced points on parent axis
  
 cancel mem/all
- -DELETE A        M:  8 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 20 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 22 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 23 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 24 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:  8 dset:   1 I:      3      5  J:    1    4  K:    1    1  L:      1      1
+ -DELETE BIGVAR   M: 20 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
+ -DELETE A        M: 22 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
+ -DELETE BIGVAR   M: 23 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
+ -DELETE A        M: 24 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
  
 ! 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   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 (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX002)   (AX001)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    3    6  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 23 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 24 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -43564,19 +44423,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 23 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  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 (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX007)   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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 23 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -43593,24 +44452,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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX001)   (AX023)   (AX024)   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
  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   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10   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 (G006)          (AX024)   (AX023)   (AX001)   TAX1_10
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 23 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 24 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -43627,8 +44486,8 @@ 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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 23 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   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
  
 ! now with xytvar
@@ -43637,17 +44496,17 @@ set region/i=1:4/j=1:3/l=1:2
 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)   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)   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 (G006)          (AX023)   (AX024)   NORMAL    (AX002)
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)
+ allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 23 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -43665,31 +44524,29 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- 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
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)
+ -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
  name       axis              # pts   start                end                 subset
  XLON      LONGITUDE           40mr   141E                 180E                full
  YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
  TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
- normal    E
- normal    F
  
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid EGRID           XLON      YLAT      NORMAL    TTIME     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 (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
+ 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)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 23 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 24 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -43705,37 +44562,35 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M: 23 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)
+ -DELETE XYTVAR   M: 23 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
 ! map into Z instead of T
 use/order=zxy bn_strides
 show grid xytvar
- 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 GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    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 GPC5            TTIME     XLON      YLAT      NORMAL
     GRID GPC5
  name       axis              # pts   start                end                 subset
  TTIME     X (DAYS)            20 r   34319                34338               full
  XLON      Y (degrees_east)    40mr   141                  180                 full
  YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
- normal    E
- normal    F
  
 list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
- dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      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 (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
+ 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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 23 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -43751,8 +44606,8 @@ 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    NORMAL    NORMAL
- -DELETE XYTVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL
+ -DELETE XYTVAR   M: 24 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  canceling dset ./bn_strides.cdf
  
  
@@ -43761,17 +44616,17 @@ cancel region; set region/l=1
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6    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 (G006)          (AX024)   (AX023)   (AX001)   TAX1_6
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 24 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -43786,26 +44641,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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6    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 (G006)          (AX023)   (AX024)   (AX002)   TAX1_6
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 24 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -43820,24 +44675,24 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   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
  
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    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 (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 23 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -43852,27 +44707,27 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   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
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    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 (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 23 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -43887,24 +44742,24 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   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
  
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    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 (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 24 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -43919,26 +44774,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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    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 (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 24 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -43953,13 +44808,14 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   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
  
 ! DEFINE AXIS can get the axis too long (bug 673)
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_axis_too_long.jnl
 ! From Ned Cokelet
 ! First definition of axis had last grid cell completely
@@ -43990,6 +44846,7 @@ LIST X[GX=x_ax], XBOXLO[GX=x_ax], XBOXHI[GX=x_ax]
 ! non-centered shade key
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_lev_c.jnl
  ! under linux only, this has a non-centered shade key
  
@@ -44019,6 +44876,7 @@ ppl list shakey
 ! At lon = 0, we used to have an E; remove this.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_lon_ax_0_label.jnl
 ! Label longitude axes with the degree sign only
 ! at x=0 (previously had an E).
@@ -44032,6 +44890,7 @@ shade/x=-20:20/y=-40:40/L=1 sst
 ! Errors listing string and numeric data together
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_list_string_numeric.jnl
 ! err553_list_string_numeric.jnl
 ! 2/2004 ACM
@@ -44127,6 +44986,7 @@ list/i=3:4/l=1:2 b, c, v
 ! Bug in setting axis to depth when reading from nc file
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_set_axis_depth.jnl
  ! NOAA/PMEL TMAP
  ! FERRET v5.53
@@ -44146,6 +45006,7 @@ q
 ! Set symbols showing levels settings when poly command is called
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_symbol_lev.jnl
 ! err553_symbol_lev.jnl
 ! 2/2004 ACM
@@ -44166,7 +45027,7 @@ LEV_TEXT = "C"
 LEV_MIN = "1"
 LEV_MAX = "10.2"
 LEV_NUM = "46"
-LEV_DEL = "irregular"
+LEV_DEL = "0.2"
  
 can sym lev*
 ! Now with /LEV=(min,max,del)
@@ -44203,6 +45064,7 @@ can sym lev*
 ! Fixes for modulo striding bugs
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_stride_modulo.jnl
 ! err553_stride_modulo_neg.jnl
 ! *acm* 3/31/2004
@@ -44305,6 +45167,7 @@ can mem; list/y=0 var[i=68]
 ! Fixes bug creating format for listing a very long line
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_list_width.jnl
 ! err553_list_width.jnl
 ! *acm* 4/1/2004
@@ -44751,6 +45614,7 @@ can mode ignore
 ! Test use of automatic levels in SHADE
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_shade_levels.jnl
 ! err560_shade_levels.jnl  *acm* 4/28/04
 ! Missing levels on SHADE auto-level
@@ -44765,6 +45629,7 @@ set view lower; shade/i=1:10/j=1:10 -1*i*j*0.0034
 ! Test use of reading irregular-time mc datasets
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_mc_irreg_t.jnl
 ! err560_mc_irreg_t.jnl
 ! 4/2004  ACM
@@ -44801,6 +45666,7 @@ list/x=180/y=0/t=2000 sst
 ! Crashed on SHADE of variable with NOLEAP axis, and subregion.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_shade_noleap.jnl
 ! err560_shade_noleap.jnl
 ! 4/30/04 ACM
@@ -44818,6 +45684,7 @@ shade/t=4-jan-2000:10-nov-2000 a
 ! -111, was treated as missing rather than a valid index.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_regridding_gaps.jnl
 ! err560_regrid
 !
@@ -44943,6 +45810,7 @@ sp rm xlongshift.nc
 ! bug in drawing the time axis.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_leap_years.jnl
 ! err560_leap_years.jnl
 ! Fixes for bug 882, inconsistency in computing whether
@@ -44961,6 +45829,7 @@ plot v[gt=tax at asn]
 ! Century portion of years were not properly tested in numdm1.F
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_century
 ! err560_century.jnl.jnl  *acm* 4/28/04
 ! Century portion of years were not properly tested in numdm1.F
@@ -45232,6 +46101,7 @@ PLOT/OVER/NOKEY/X=180/Y=1/K=1 temp
 ! POLYGON (or SHADE) plots with a single level had no fill color
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_singlecolor.jnl
 ! err570_singlecolor.jnl
 ! 7/6/2004
@@ -45275,6 +46145,7 @@ poly/lev=2 {0,1,2},{1,2,1},a ! OR lev=1
 ! colorbar labels too close to the bar, when user sets bar location
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_shakeylab.jnl
  
 ! err570_shakeylab.jnl
@@ -45336,6 +46207,7 @@ ppl dfltfnt sr
 ! Null input gives wierd error message
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_null_symbol.jnl
 ! err570_null_symbol.jnl
 ! null input -- > wierd error message see bug 919
@@ -45353,6 +46225,7 @@ can mode ignore
 ! Replace text expression with its value: string variable was too short
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_parse_labelcommand.jnl
 ! err570_parse_labelcommand.jnl
 ! fix for bug 956.
@@ -45383,6 +46256,7 @@ label/nouser 3.6,`($ppl$ylen)+0.2`,0,0,0.08, `tsulab`
 ! result of COMPRESSK_BY function does not vary in X
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_compressk_by.jnl
 ! err570_compress_by.jnl
 ! fix for bug 925
@@ -45476,6 +46350,7 @@ list tlev[k=1]
 ! Command parsing on PPL side had string lengths too short
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_long_label.jnl
 ! err570_long_label.jnl
 ! Fix for bug 956
@@ -45526,6 +46401,7 @@ set mode/last verify
 ! Allow PPL POLYGON after a POLY/SET (previously was PPL FILLPOL)
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_ppl_poly.jnl
 ! err570_ppl_poly.jnl
  
@@ -45548,6 +46424,7 @@ ppl polygon
 ! Fix formatting of coordinates on LIST/FORMAT=tab or /FORMAT=comma
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_list_tab_coords.jnl
 ! err570_list_tab_coords.jnl
 ! acm 9/7/04
@@ -45591,6 +46468,7 @@ list/form=comma aa
 ! Fix bug in HASH_CX for large numbers of varibles
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_many_variables.jnl
 ! err570_many_variables.jnl
 ! 27-sep-2004  ACM
@@ -45854,6 +46732,7 @@ list str4a
 ! Fix bug in @CNNN within multi-line labels
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_cnnn_multiline.jnl
 ! Changing pen with @Cnnn did not work in
 ! multi-line labels
@@ -45868,6 +46747,7 @@ label 0.1, 0.3, 0, 0, 0.2, "greek<NL>@SGt at SR_y<NL>works"
 ! For a very fine grid, coordinates not listed with enough precision.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_fine_grid_list.jnl
 ! err570_fine_grid_list.jnl
 ! ACM 10/2004
@@ -45972,6 +46852,7 @@ cancel list/precision
 ! Plot using /HLIM
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_hlimit_onepoint
 !err570_hlimit_onepoint.jnl
 ! 15-Oct-2004  ACM
@@ -45994,6 +46875,7 @@ set mode/last ignore_error
 ! caused a segfault.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_index111.jnl
 ! err570_index111.jnl
 ! 3-nov-04 ACM
@@ -46040,6 +46922,7 @@ LIST/T=1-jan-1997:1-jan-1998 s2[GT=s1 at NRST]
 ! crashed on trying to format value for the output buffer.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_sh_dat_nan.jnl
 ! err570_sh_dat_nan.jnl
 ! 4-Nov-2004 acm
@@ -46053,8 +46936,8 @@ show data/full
      currently SET data sets:
     1> ./nan_missing.nc  (default)
      NCEP Ocean Analysis
- name     title                             I         J         K         L         M         N
- TEMP     temperature                      1:1       1:1       1:19      1:1       ...       ...
+ name     title                             I         J         K         L
+ TEMP     temperature                      1:1       1:1       1:19      1:1
              degree_Celsius on grid GGH1 with -1.E+34 & NaN for missing data
              X=139.8E:140.8E  Y=0.5S:0.5N  Z=0:375  
  
@@ -46065,6 +46948,7 @@ show data/full
 ! Time reqest out of range on NOLEAP axes.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_time_range.jnl
 ! err570_time_range.jnl  bug1080
 ! time request out of range with calendar axis and RETURN=
@@ -46089,6 +46973,7 @@ set var/units="`a[gx=var1_grid_,gy=var1_grid_,d=2,t="16-Jan-1861 12:00:00"],retu
 ! a non-standard calendar axis
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_poly_over_julian.jnl
 ! err570_poly_over_julian.jnl
 ! ACM 11/12/04
@@ -46111,6 +46996,7 @@ poly/ov/pal=green {400,900,900,400}, {25.5,25.5,26.5,25.5}
 ! string substitution returns the user-given error message
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_coaching hello
 ! err570_coaching.jnl
 ! ACM 11/12/04  Bug 1077
@@ -46155,6 +47041,7 @@ set mode/last ignore_errors
 ! name of the script
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_dollar_zero.jnl
 ! err570_dollar_zero.jnl
 ! (bug 485) Got a command syntax error;
@@ -46170,6 +47057,7 @@ SET MODE/LAST ignore_error
 ! Fix for bug 596; list/i=0:300:0 var crashed Ferret
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_illegal_stride.jnl
 ! err570_illegal_stride.jnl
 ! (bug 596) list/i=0:300:0 var crashed Ferret
@@ -46183,6 +47071,7 @@ SET MODE/LAST ignore_error
 ! Fix for bug 1085; /THICK without color specifier caused all lines to revert to black
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_thick_colors.jnl
 ! err570_thick_colors.jnl  bug1085
 ! /THICK without color specifier causes all lines to revert to black
@@ -46208,6 +47097,7 @@ PLOT/OVER/VS/LINE/THICK=1/I=1:314 i*cos(i/14), i*sin(i/14)
 ! starts with a digit.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_digit_filename.jnl
 ! err570_digit_filename.jnl
 ! Bug 1102: under linux, var[d=filename] fails if filename
@@ -46273,13 +47163,14 @@ list a[i=1:4,d=10a.nc]
 ! Fix for bug 1098: DODS URL label was cut off
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_dods_url_label.jnl
 ! err570_dods_url_label.jnl
 !
 ! Bug 1098. Look for the label with the URL: it should include
 ! everything up to the last slash.
 ! acm 11/04
- 
+! acm* 3/17 check the URL with TEST_OPENDAP befor trying to open it.
  
 !! Change to another dataset, our server down...
 !!use  "http://www.ferret.noaa.gov/cgi-bin/nph-nc/data/bn_strides.cdf"
@@ -46309,23 +47200,26 @@ GO err570_dods_url_label.jnl
 !!plot/x=180/y=0/k=1 temp
 !!ppl list labels
  
+! If we cant open this, just bail on the test
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/coads_climatology.nc") NE 0` THEN EXIT/SCRIPT
+ !-> IF 0 THEN EXIT/SCRIPT
  
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/coads_climatology.nc"
+use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/coads_climatology.nc"
 sh data
      currently SET data sets:
-    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/coads_climatology.nc  (default)
- name     title                             I         J         K         L         M         N
- 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      ...       ...
+    1> http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/coads_climatology.nc  (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
  
 plot/x=180/y=0 sst
 ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C)                                             
+ @ACSEA SURFACE TEMPERATURE                                                     
                                                                                 
  @ASDeg C                                                                       
 
@@ -46338,13 +47232,14 @@ ppl list labels
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  LAB 4  4.000E+00  6.330E+00 0.120    0  SYSTEM  @A
  LINE PT:    0.000E+00 0.000E+00  NO LINE     CENTER JUSTIFY LABEL
- LAB 5  8.000E+00  6.790E+00 0.064    0  SYSTEM  @ASOPeNDAP <NL>URL: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
+ LAB 5  8.000E+00  6.790E+00 0.058    0  SYSTEM  @ASOPeNDAP <NL>URL: http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  
  
 ! Fix for bug 906: auto-formatting of labels on color keys loses precision
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_keylabels.jnl
 ! err570_keylabels.jnl
 ! 11/2004
@@ -46360,6 +47255,7 @@ shade/lev=(370,382,0.5) a
 ! where polygon arguments have latitude or longitude units
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_poly_lonlat_axis.jnl
 ! err570_poly_lonlat_axis.jnl
 ! 12/14/04
@@ -46406,8 +47302,8 @@ set view left
 fill/x=20e:150e/lev=(-inf),(4,28,0.5)(inf) sst[l=1]
 sh sym lev*
 LEV_TEXT = "(-INF),(4,28,0.5)(INF)"
-LEV_MIN = "-2.8"
-LEV_MAX = "32"
+LEV_MIN = "open-ended"
+LEV_MAX = "open-ended"
 LEV_NUM = "50"
 LEV_DEL = "irregular"
  
@@ -46415,8 +47311,8 @@ set view right
 shade/lev=(-inf),(4,28,0.5)(inf)/key=cont sst[l=1]
 sh sym lev*
 LEV_TEXT = "(-INF),(4,28,0.5)(INF)"
-LEV_MIN = "-2.8"
-LEV_MAX = "32"
+LEV_MIN = "open-ended"
+LEV_MAX = "open-ended"
 LEV_NUM = "50"
 LEV_DEL = "irregular"
  
@@ -46643,12 +47539,12 @@ use illeg_axname.nc
 sh data
      currently SET data sets:
     1> ./illeg_axname.nc  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:21      1:16      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:21      1:16      ...       ...
  NEW.LONGITUDES
-          X[GX=SST]                        1:21      ...       ...       ...       ...       ...
+          X[GX=SST]                        1:21      ...       ...       ...
  NEW.LATITUDES
-          Y[GY=SST]                        ...       1:16      ...       ...       ...       ...
+          Y[GY=SST]                        ...       1:16      ...       ...
  
 list/i=1:5 x[gx=sst]
              VARIABLE : X
@@ -46683,8 +47579,6 @@ sh grid sst
  'COADSY.ILLEGAL' LATITUDE     16 r   35N                  65N                 full
  normal    Z
  normal    T
- normal    E
- normal    F
 *** Running ferret script: bn_exit_script.jnl
 ! bn_exit_script.jnl
 ! 5/2005 ACM
@@ -46919,6 +47813,7 @@ ppl fill
 ! Bug 1160 short axis with irreg bounds seen as regular.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_irreg_bounds.jnl
 ! err580_irreg_bounds.jnl
 ! Define a short irregular time axis with some time_bounds,
@@ -46935,8 +47830,6 @@ show grid/t a
  normal    Y
  normal    Z
  TIME      T                    2 i   0.5                  2                   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO
        1>  0.5                   1          0
@@ -46959,8 +47852,6 @@ show grid/t a
  normal    Y
  normal    Z
  TIME1     T                    2 i   0.5                  2                   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO
        1>  0.5                   1          0
@@ -46969,6 +47860,7 @@ show grid/t a
 ! Bug 1179 Cartesian_axis and positive="down" resulted in depth axis not being recognized
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_cartesian_depth.jnl
  ! err580_cartesian_depth.jnl
 ! cartesian_axis attribute
@@ -46984,12 +47876,11 @@ sh grid temp
  GRID_Y_T  LATITUDE             1 r   0.25S                0.25S               full
  ZT        DEPTH (m)           10 i-  22.5                 158                 full
  TIME1     TIME                 1mr   15-FEB-1900 03:00    15-FEB-1900 03:00   full
- normal    E
- normal    F
  
 ! Bug 1181 Titles were truncated at 80 characters
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_long_title.jnl
  
  ! err580_long_title.jnl
@@ -47003,6 +47894,7 @@ sp ncdump longtitle.nc >> all_ncdump.out
 ! Bug 1180 Allow "use filename.des"
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_use_des.jnl
 ! err580_use_des.jnl
 ! Allow "use filename.des"   (previously gave an "is this a CDF file?" error)
@@ -47011,14 +47903,15 @@ use vary_scale.des
 sh data
      currently SET data sets:
     1> ./vary_scale.des  (default)
- name     title                             I         J         K         L         M         N
- TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20
  
  
  
 ! Bug 1180 Allow "use filename.des"
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_use_des.jnl
 ! err580_use_des.jnl
 ! Allow "use filename.des"   (previously gave an "is this a CDF file?" error)
@@ -47027,13 +47920,14 @@ use vary_scale.des
 sh data
      currently SET data sets:
     1> ./vary_scale.des  (default)
- name     title                             I         J         K         L         M         N
- TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20
  
  
 ! fix for bug 1181: dataset title was limited to 80 characters.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_long_dsettitle.jnl
 ! err580_long_dsettitle
 ! fix for bug 1181
@@ -47056,6 +47950,7 @@ sp ncdump longtitle.nc >> all_ncdump.out
 ! fix for bug 1200:crash due to the long veckey format spec.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_long_veckey.jnl
 ! err580_long_veckey.jnl
 ! Bug 1200 The following caused a crash due to the long veckey format spec.
@@ -47071,6 +47966,7 @@ ppl veckey,0,0,,"(1PG10.3)"
 ! fix for bug 1201: mistranslation of time region.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_cal360_region.jnl
 ! err580_cal360_region.jnl
 ! Wrong output region: the set region mistakenly tranlated
@@ -47092,6 +47988,7 @@ default region:
 ! fix for bug 1203: crash if time range left off.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_def_tax_norange.jnl
 ! err580_def_t_norange.jnl
 ! bug 1203. without the T range, these statements cause a STOP.
@@ -47104,6 +48001,7 @@ DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
 ! fix for bug 1207: closest distance and closest index transformations.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_cdb.jnl
 ! err580_cdb.jnl
 ! bug 1207
@@ -47147,6 +48045,7 @@ list var[i=5 at cia:10]
 ! fix for bug 1214: crash on repeating a SET VIEW when viewport defined with /AXES
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_def_view_axes.jnl
 ! err580_def_view_axes.jnl
 ! BUG 1214
@@ -47187,6 +48086,7 @@ sp rm -f viewaxes.plt*
 ! fix for bug 1205: symbol LEV_DEL wrong when single level specified
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_lev_del.jnl
 ! err580_lev_del.jnl
 ! demonstrates bug 1205; precision of LEV_DEL when single level specified.
@@ -47215,6 +48115,7 @@ LEV_DEL = "1.2"
 ! Fix for bug 1174: strfloat_c("nonsense") gave result of 0 rather than missing.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_strfloat_errors.jnl
 ! err580_strfloat_errors.jnl
 ! Previously a nonsense input gave a result of 0.
@@ -47236,6 +48137,7 @@ list/prec=6 strfloat(b)
 ! Fixes for bugs 1249, 1250: uppercase not recognized for qualifier argument
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_arg_case.jnl
 ! err580_arg_case.jnl
 ! 5/2005
@@ -47255,6 +48157,7 @@ plot/step=CONN/i=1:10 sin(i)
 ! Fixes for bugs 1019: kludge for CDC time axes made time origin incorrect on outputs
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_cdc_timeaxis.jnl
 ! err580_cdc_timeaxis.jnl
 ! 6/3/05
@@ -47304,6 +48207,7 @@ sp rm -f my_cdc_timeaxis.nc
 ! Fix for bug 1272: show axis/t= with NOLEAP calendar
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_show_axis_t.jnl
 ! err580_show_axis_t
 ! bug 1272: wrong range shown when nonstd calendar
@@ -47350,6 +48254,7 @@ T0 = 15-JAN-1901
 ! Fix for bug 1279 which was only in the first iteration of v5.81 release
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_nlev.jnl
 ! err580_nlev.jnl
 ! bug 1279
@@ -47364,6 +48269,7 @@ fill/lev=30 sst[l=2]
 ! acm 8/29/2005
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_vs_poly_axis.jnl
 ! err581_vs_poly_axis.jnl
 ! Test fix of bug 1349: formatted axis labels on PLOT/VS and POLYGON plot
@@ -47564,7 +48470,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"
+FERRET_VERSION = "7.1"
  
 ! history attribute
 let a = 12
@@ -47582,7 +48488,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:
+ Commands in Program FERRET  version7.1:
  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
@@ -47610,12 +48516,12 @@ sho command
  SHOW EXPRSION/ALL
  SHOW LIST/ALL
  SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
-       /HIDDEN
+       /HIDDEN/MEMBERS
  SHOW MODE/ALL
  SHOW MOVIE/ALL
  SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
  SHOW COMMANDS/ALL/BRIEF
- SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+ SHOW MEMORY/ALL/DIAGNOST/TEMPORY/PERMANT/FREE
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
  SHOW VIEWPORT/ALL
  SHOW TRANFORM/ALL
@@ -47668,13 +48574,13 @@ sho command
  DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+         /EDGES/CALENDAR/BOUNDS/QUIET/MONTHLY/LIKE
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
  DEFINE ALIAS
  DEFINE SYMBOL
  DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE/U
  DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
  EXIT/COMMAND/LOOP/SCRIPT/PROMPT/PROGRAM/CYCLE/TOPYTHON
  MESSAGE/CONTINUE/QUIET/JOURNAL/ERROR/OUTFILE/APPEND/CLOBBER
@@ -47685,13 +48591,12 @@ sho command
  PPLUS/RESET
  FRAME/FORMAT/FILE/TRANSPAR
  REPEAT/I/J/K/L/M/N/X/Y/Z/T/E/F/ANIMATE/LOOP/RANGE/NAME
- STAT/BRIEF/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET
+ STAT/BRIEF/PRECISIO/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET
  SHADE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/TRIM
         /LINE/NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/AXES
         /NOAXES/PATTERN/HGRATICU/VGRATICU/GRATICUL/MODULO/HLIMITS/VLIMITS
         /DEGMINSE/HALFSPAC
  SPAWN
- USER/OPT1/OPT2/COMMAND/I/J/K/L/X/Y/Z/T/DATASET/FILE/FORMAT
  WIRE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/VIEWPOIN/ZLIMITS
        /TRANPOSE/NOLABEL/ZSCALE/TITLE
  QUERY/ALL/FILE/IGNORE
@@ -47735,7 +48640,7 @@ sho sym win_title
 WIN_TITLE = "_"
  
 set win/title="($session_date):($session_time)"
- !-> set win/title="17-Jun-16:15:04"
+ !-> set win/title="18-Apr-17:17:03"
  
 ! If the date or time starts with a blank then we get an extra
 ! underscore in the window title. Evaluating the symbols into
@@ -47744,16 +48649,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-Jun-16
+ !-> DEFINE SYMBOL the_date = 18-Apr-17
 DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 15:04
+ !-> DEFINE SYMBOL the_time = 17:03
 SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="17-Jun-16:15:04"
+ !-> SET WIN/TITLE="18-Apr-17:17:03"
  
 can win/all
 set win/new
 sh sym win_title
-WIN_TITLE = "17-Jun-16:15:04"
+WIN_TITLE = "18-Apr-17:17:03"
 *** Running ferret script: bn_last_error.jnl
 ! bn_last_error.jnl
 ! acm Nov 2005
@@ -48144,6 +49049,7 @@ list zboxlo[gz=zax2], z[gz=zax2], zboxhi[gz=zax2]
 ! 31Aug2006 ACM Remove OPeNDAP references; not essential to the
 ! benchmark tests.
  
+! small addition below 1/17 *sh*
  
 !-----
  
@@ -48499,6 +49405,7 @@ can mode ignore
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! attributes of string variables
@@ -48514,6 +49421,7 @@ sp ncdump a.nc >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Demonstrate `var,return=` output for attributes
@@ -48558,6 +49466,7 @@ say `broiled.acf,return=size`
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! define variables to contain attribute value(s)
@@ -48592,6 +49501,7 @@ list s
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Variables containing number of variables, attributes, dimensions,
@@ -48800,6 +49710,7 @@ let anames = `names[i=2]`.attnames
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
  
 !-----
@@ -48841,6 +49752,7 @@ say `(yax_lev94).nattrs[d=1]`
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! more on access to attribute names and values as variables
@@ -48860,12 +49772,10 @@ list/d=3 a
 list temp.units[d=3]
              VARIABLE : TEMP.UNITS[D=ocean_atlas_temp]
              FILENAME : ocean_atlas_temp.cdf
-             X        : 1
         "Deg C"
 list/d=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : ocean_atlas_temp.cdf
-             X        : 1
         "From ocean_atlas_monthly"
  
 can data/all
@@ -48982,6 +49892,7 @@ list a[i=1]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! keyword . to refer to global properties and attributes
@@ -49009,24 +49920,23 @@ list/d=2 ..nvars
 sh data
      currently SET data sets:
     1> ./gt4d011.cdf
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
+ SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
+ U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
+ V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
+ W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
+ TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
+ TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
+ PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  
     2> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
 list/d=2 ..varnames
              VARIABLE : ..VARNAMES
              FILENAME : coads_climatology.cdf
-             X        : 1
         "SST"
  
 list/d=2 ..dimnames
@@ -49070,7 +49980,6 @@ list/d=1 ..nattrs
 list/d=1 ..attnames
              VARIABLE : ..ATTNAMES
              FILENAME : gt4d011.cdf
-             X        : 1
         "history"
  
 list/d=1 ..ndims
@@ -49119,6 +50028,7 @@ list/d=2 pp
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Editing attributes: add new attributes to a variable.
@@ -49171,6 +50081,7 @@ sh att/all temp[d=1]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Edit existing attributes on variables
@@ -49204,12 +50115,10 @@ use coads_climatology
 list (coadsx).units
              VARIABLE : (COADSX).UNITS
              FILENAME : coads_climatology.cdf
-             X        : 1
         "degrees_east"
 list (coadsx).modulo
              VARIABLE : (COADSX).MODULO
              FILENAME : coads_climatology.cdf
-             X        : 1
         " "
 sho att/all (coadsx)
      attributes for dataset: ./coads_climatology.cdf
@@ -49339,6 +50248,7 @@ can view
 can mode ignore
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Edit attributes: inherit all attrs from another variable
@@ -49358,11 +50268,11 @@ sh att/all salt
 set att/like=temp salt
 sh att/all salt
      attributes for dataset: ./gt4d011.cdf
+ SALT.missing_value = 0.01
+ SALT._FillValue = 0.01
  SALT.parent_grid = PS3DT2 
  SALT.slab_min_index = 91, 35, 1, 0
  SALT.slab_max_index = 108, 56, 10, 0
- SALT.missing_value = -1.E+34
- SALT._FillValue = -1.E+34
  SALT.long_name = TEMPERATURE 
  SALT.history = From gt4d011 
  SALT.units = deg. C 
@@ -49393,11 +50303,10 @@ let temp3 = temp*3
 set att/like=temp temp3
 sh att/all temp3
      attributes for user-defined variables
+ temp3.missing_value = -1.E+34
  temp3.parent_grid = PS3DT2 
  temp3.slab_min_index = 91, 35, 1, 0
  temp3.slab_max_index = 108, 56, 10, 0
- temp3.missing_value = -1.E+34
- temp3._FillValue = -1.E+34
  temp3.long_name = TEMPERATURE 
  temp3.history = From gt4d011 
  temp3.units = deg. C 
@@ -49405,7 +50314,7 @@ sh att/all temp3
  
 can var temp2
 let/units="degrees C"/title="my new TEMP"/bad=`temp,return=bad` temp2 = temp*2
- !-> DEFINE VARIABLE/units="degrees C"/title="my new TEMP"/bad= -9.999999790214768E+33 temp2 = temp*2
+ !-> DEFINE VARIABLE/units="degrees C"/title="my new TEMP"/bad=-9.999999790214768E+33 temp2 = temp*2
 sh att/all temp2
      attributes for user-defined variables
  temp2.long_name = my new TEMP 
@@ -49414,6 +50323,7 @@ sh att/all temp2
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Edit attributes, changing type
@@ -49503,6 +50413,7 @@ list pq
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! When we CANCEL MODE upcase_output, writing a netcdf file preserves
 ! case of variable and axis names. This file has lower case and some
@@ -49524,6 +50435,7 @@ set mode/last upcase_output
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
  
@@ -49571,6 +50483,7 @@ sp ncdump -c a.nc >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
  
 !-----
@@ -49634,6 +50547,7 @@ sp ncdump -h a.nc >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Read EZ ascii, delimited, and stream data files,
@@ -49645,9 +50559,9 @@ file/var="a1,a2,a3" EZ.DAT
 def att a1.three={1,2,3}
 sh att/all a1
      attributes for dataset: ./EZ.DAT
- A1.long_name = A1 
- A1.missing_value = -1.E+34
- A1.three = 1, 2, 3
+ a1.long_name = a1 
+ a1.missing_value = -1.E+34
+ a1.three = 1, 2, 3
 sh dat/att
      currently SET data sets:
     1> ./EZ.DAT  (default)
@@ -49656,14 +50570,14 @@ sh dat/att
   
  .                               history         CHAR        6    F       EZ.DAT
   
- A1                    FLOAT     long_name       CHAR        2    T       A1
+ a1                    FLOAT     long_name       CHAR        2    T       a1
                                  missing_value   FLOAT       1    T       -1.E+34
                                  three           FLOAT       3    T       1 2 3
   
- A2                    FLOAT     long_name       CHAR        2    T       A2
+ a2                    FLOAT     long_name       CHAR        2    T       a2
                                  missing_value   FLOAT       1    T       -1.E+34
   
- A3                    FLOAT     long_name       CHAR        2    T       A3
+ a3                    FLOAT     long_name       CHAR        2    T       a3
                                  missing_value   FLOAT       1    T       -1.E+34
   
 save/file=a.nc/clobber a1,a2,a3
@@ -49698,11 +50612,12 @@ file/format=str/var=num,num1/grid=mygrid/order=xyztv permutedBinaryTest.dat
 define att/type=string num.new = "a string attribute"
 sh att/all num
      attributes for dataset: ./permutedBinaryTest.dat
- NUM.long_name = NUM 
- NUM.missing_value = -1.E+34
- NUM.new = a string attribute 
+ num.long_name = num 
+ num.missing_value = -1.E+34
+ num.new = a string attribute 
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! manipulate attributes of user-defined variables
@@ -49755,6 +50670,7 @@ sp ncdump -h a.nc >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
  
@@ -49820,6 +50736,7 @@ sp ncdump a.nc  >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Set type of data on output, uses netcdf call to output
@@ -49887,6 +50804,7 @@ can data test0
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! More tests of user-defined variables. Bug 1427, now fixed, problem with varid of user vars
@@ -49962,6 +50880,7 @@ set var/outtype=garbage broiled
 can mode ignore
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
  
 !---!!!---
@@ -50009,6 +50928,7 @@ save/file=a.nc/clobber/L=1 t2
 sp ncdump -h a.nc >> all_ncdump.out
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! User-defined axes and variables
  
@@ -50039,6 +50959,7 @@ sh att/all (x2ax)
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 use levitus_climatology
 define att/out (`temp,return=xaxis`).new_att = "something"
@@ -50082,6 +51003,7 @@ save/file=a.nc/clobber/y=0:5 two
 sp ncdump -h a.nc >> all_ncdump.out
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! defining more axes with attributes
  
@@ -50115,6 +51037,7 @@ sp ncdump -h string4d.nc >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! For SET ATT timeaxis.units or SET ATT timeaxis.time_origin
 ! include the correct time origin as part of the units attribute.
  
@@ -50212,12 +51135,11 @@ set att/like=sst sst2
 list sst2.attnames
              VARIABLE : SST2.ATTNAMES
              FILENAME : coads_climatology.cdf
-             SUBSET   : 5 points (X)
+             SUBSET   : 4 points (X)
  1   / 1:"missing_value"
- 2   / 2:"_FillValue"   
- 3   / 3:"long_name"    
- 4   / 4:"history"      
- 5   / 5:"units"        
+ 2   / 2:"long_name"    
+ 3   / 3:"history"      
+ 4   / 4:"units"        
  
  
 ! Add a global attribute
@@ -50405,6 +51327,17 @@ sho att (`temp[d=1],return=taxis`[d=1])
 sho att .
      attributes for dataset: ./levitus_climatology.cdf
  ..history = FERRET V5.22    5-Apr-01 
+ 
+! 1/17 *sh*
+! added a test of shifting attributes in is_attrib_val.F
+define att temp.test_counter = {1, 2, 3, 4, 5}
+list temp.test_counter[i=3:5]
+             VARIABLE : TEMP.TEST_COUNTER[I=3:5]
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 3 points (X)
+ 3   / 3:  3.000
+ 4   / 4:  4.000
+ 5   / 5:  5.000
 *** Running ferret script: bn_transforms.jnl
 ! Test the transforms
  
@@ -50734,10 +51667,13 @@ use this_is_not_a_file.nc
 !!use "http://iridl.ldeo.columbia.edu/SOURCES/.FSU/.FULL/.tauyyyyy/dods"
  
 ! This is a valid address
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_air.cdf"
+use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_air.cdf"
+ 
+ 
+! Intentional errors
  
 ! change the variable name to something nonexistent
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
+use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
  
 ! bad server
 use  "http://noserver/a/nofile.cdf"
@@ -50761,6 +51697,7 @@ set mode/last ignore
 ! Bug 1129 axis formatting when /HLIM sets axis length < 0.15 deg
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_hlim_axislab.jnl
 ! err581_hlim_axislab.jn
 ! bug 1129
@@ -50795,6 +51732,7 @@ ppl list xaxis
 ! Bug 1275 stray characters appear in data lines listing string data
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_list_stray_chars.jnl
 ! err581_list_stray_chars.jnl
 ! 8/2005 (acm) bug 1275  stray characters in data listing
@@ -50832,6 +51770,7 @@ list/i=1:5 id, country, type
 ! pattern matching for SHO FUNC failed to match all EF's
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_sho_func_pattern_match.jnl
 ! err581_sho_func_pattern_match.jnl
 ! bug 1186
@@ -50876,6 +51815,7 @@ IS_ELEMENT_OF_STR_N(VAR,VALUES)
 ! FILL on data with subspan modulo axis, got wrong data
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_subspanx_fill_bug.jnl
 ! err581_subspanx_fill_bug.jnl
 ! bug 900: subspan longitude axis and hlimits gets wrong data
@@ -50901,6 +51841,7 @@ sp rm -f err581_subspanx_fill_bug.nc
 ! bug 1318 Spurious error message on USE file where file has axes with bounds.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_use_bounds.jnl
 ! err581_use_bounds.jnl
 ! bug 1318 Spurious error message on USE file where file has axes with bounds.
@@ -50916,6 +51857,7 @@ use xyir
 ! Bug 1332 variable not scaled unless it is first variable in stepfile.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_des_scale.jnl
 ! err581_des_scale.jnl  bug 1332. When using a descriptor file and
 ! a varriable has scale_factor and/or add_offset attributes, the
@@ -50935,6 +51877,7 @@ EXIT/SCRIPT   ! error in namelist record...
 ! Bug 1335 Zero-contour should be dark line.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_contour_zero_lev.jnl
 ! err581_contour_zero_lev.jnl
 ! acm 9/7/2005
@@ -50947,6 +51890,7 @@ contour/lev=(-20,20,2) sst[L=1] - 20
 ! Bug 1339, code hangs with this combination of (-INF)(INF) levels and shakey
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_shakey_inf.jnl
 ! err581_shakey_inf.jnl
 ! acm 9/7/2005
@@ -50965,6 +51909,7 @@ ppl/reset  ! undo the SHAKEY setting.
 ! Bug 918, immediate mode parsing in IF blocks
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_if_conditional.jnl
 ! err581_if_conditional.jnl  bug 918.
 ! acm 10/2005
@@ -51175,6 +52120,7 @@ palette rainbow
 ! Ungraceful STOP if we asl for multi-var transformations on axis where there is no data
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_illegal_trans.jnl
 ! err581_illegal_trans.jnl
 ! Ungraceful STOP if we do @VAR on an axis where there is no data
@@ -51191,6 +52137,7 @@ can mode ignore_error
 ! missing flag gets scaled by scale and offset factors!
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_missing_scale_off.jnl
 ! err581_missing_scale_off.jnl
 ! ACM 11/8/05
@@ -51224,6 +52171,7 @@ list tt
 ! SHOW GRID and other output have wrong dates, non-std calendar axesv
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_cal_dates_output.jnl
 ! err581_cal_dates_output.jnl
 ! bug 1363:
@@ -51245,13 +52193,12 @@ sho grid t3
  normal    Y
  normal    Z
  T360      TIME                61 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
- normal    E
- normal    F
  
 ! bug 1365
 ! STOP on shade command when modulo-regridding a time-limited nonstd calendar
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_noleap_mod.jnl
 ! err581_noleap_mod.jnl
 ! This is bug 1365: STOP on shade command
@@ -51271,6 +52218,7 @@ shade/y=0/k=1 a_clim
 ! CANCEL DATA errors
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_cancel_data.jnl
 ! err581_cancel_data.jnl
  
@@ -51291,8 +52239,8 @@ use "subdir/a.nc"
 sh data
      currently SET data sets:
     1> subdir/a.nc  (default)
- name     title                             I         J         K         L         M         N
- A        {1,5,6}                          1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        {1,5,6}                          1:3       ...       ...       ...
  
 can data "subdir/a.nc"
 sh data
@@ -51302,8 +52250,8 @@ set data "subdir/0000_a.nc"
 sh data
      currently SET data sets:
     1> subdir/0000_a.nc  (default)
- name     title                             I         J         K         L         M         N
- A        {1,5,6}                          1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        {1,5,6}                          1:3       ...       ...       ...
  
 can dat 0000_a
 set data "subdir/0000_a.nc"
@@ -51323,6 +52271,7 @@ sp rm -f subdir/0000_a.nc
 ! CANCEL DATA errors
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_since_units.jnl
 ! err581_since_units.jnl
 ! bug 1394: units of months_since_event
@@ -51355,6 +52304,7 @@ list a
 ! CANCEL DATA errors
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_exp_spaces.jnl
 ! err581_exp_spaces.jnl
 ! bug 1395
@@ -51411,6 +52361,7 @@ can mode ignore
 ! bugs 439,1390: applying command context
 GO bn_reset.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_command_cx.jnl
 ! err590_command_cx.jnl
 ! bugs 439 and 1390: the command context should apply to immed. mode evaluation
@@ -51437,6 +52388,7 @@ can mode ignore
 ! bug 1401: define 1-point axis with bounds; gets bounds wrong
 GO bn_reset.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_define_1pt_bounds.jnl
 ! err581_define_1pt_bounds.jnl
 ! see bug 1401:
@@ -51480,6 +52432,7 @@ list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
 ! Bug in strrindex when 1st argument is a list of strings
 GO bn_reset.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_strrindex.jnl
 ! err581_strrindex.jnl
 ! 5/2/2006
@@ -51499,6 +52452,7 @@ list strrindex(var,"s")
 ! POLYGON/LINE over a depth axis.
 GO bn_reset.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_poly_rev.jnl
 ! err581_poly_rev.jnl
 ! POLYGON/LINE mis-locates the line when there is a depth or
@@ -51561,6 +52515,7 @@ set mem /size=25.6
 ! Bug 1443
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_long_bounds_name
 ! err600_long_bounds_name.jnl
 ! Long name for bounds attribute was not read by Ferret
@@ -51593,6 +52548,7 @@ list  x[gx=var], xbox[gx=var], xboxlo[gx=var], xboxhi[gx=var]
 ! bug1434
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_check_bounds_regular.jnl
 ! err600_check_bounds_regular.jnl
 ! Previously TM_CHECK_BNDS had not been used to check bounds on regular axes.
@@ -51613,6 +52569,7 @@ use b
 ! Bug 1439
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_long_symbol_string.jnl
 ! err600_longsym_symbol_string.jnl
 ! Long values for symbols: previously strings were cut off at 255 characters.
@@ -51656,6 +52613,7 @@ CANCEL SYMBOL longsym*
 ! bug 1445
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_missing_flag.jnl
 ! noglobalhistory.nc has no global history attribute, and
 ! also the variable B has no missing or fill value flag
@@ -51679,6 +52637,7 @@ list b
 ! ( a parsing error, confusing the dot in the filename with dot in `var.att,return=size` )
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_returnsize.jnl
 ! err600_returnsize.jnl
 ! ACM 10-4-2006
@@ -51706,6 +52665,7 @@ say `(($the_x_axis)).units,return=size`
 ! thrown off and we got an error about an invalid ENDIF
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_if_comments_tab.jnl
 ! err600_if_comments_tab.jnl
 ! ACM 10-4-2006
@@ -51723,6 +52683,7 @@ ENDIF
 ! Bug 1454 Settings made by SET VAR/TITLE=/UNITS= were not saved in output file
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_set_var_title.jnl
 ! err600_set_var_title.jnl
 ! Bug 1454
@@ -51780,6 +52741,7 @@ use a.nc
 ! be labelled with the var name but it only has units label
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_var_label.jnl
 ! err600_var_label.jnl
 ! bug1442
@@ -51825,6 +52787,7 @@ list/i=70/l=1/j=30/k=1 temp
 ! Bug 1461 upcasing of axis name on creating bounds variable for output
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_upcase.jnl
  ! err600_upcase.jnl
  ! 10/23/2006
@@ -51849,6 +52812,7 @@ SET MODE/LAST ignore_error
 ! structure fail, and the list of variable names was incorrect.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_let_d.jnl
 ! err600_let_d.jnl
 ! Making a LET/D= assignment caused the return of dimension
@@ -51876,6 +52840,7 @@ list ..varnames
 ! Bug 1459 order of multiple descriptor file opening causes netCDF error
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_nc_des_order.jnl
 ! err600_nc_des_order.jnl
 ! 11/07/2006 ACM
@@ -51937,6 +52902,7 @@ stat rose[j=12,d=1]
 ! in the attribute structure.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_reset_redefine_axis.jnl
 ! err600_reset_redefine_axis.jnl
 ! Bug 1470; redefine or reset attributes of an axis
@@ -52070,6 +53036,7 @@ show axis ($zax)
 ! orig_file_axname keeps the input name.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_ferret_axis_names.jnl
 ! err600_ferret_axis_names.jnl
 ! If Ferret needed to rename an axis on file initialization for uniqueness,
@@ -52127,7 +53094,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -52176,7 +53143,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -52227,6 +53194,7 @@ sho dat/att
 ! should output a comma or tab as placeholder for the missing value
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_tab_comma_missingdat.jnl
 ! err600_tab_comma_missingdat.jnl
 ! 11/21/2006 acm
@@ -52299,6 +53267,7 @@ list/form=tab a,b,a
 ! VECTOR/ASPECT plots are wrong (incorrect fix for bug 1348)
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_vec_aspect.jnl
 ! err600_vec_aspect.jnl
 ! VECTOR/ASPECT plots are wrong (incorrect fix for bug 1348)
@@ -52322,6 +53291,7 @@ vec/asp/over a,b
 ! when checking whether 2nd variable has same grid.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_save_two.jnl
 ! err600_save_two.jnl
 ! 12/11/2006
@@ -52339,6 +53309,7 @@ save/clobber/file="out.nc" olr[d=1], swdn_toa[d=2]
 ! Bug 1459 order of multiple descriptor file opening causes netCDF error
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_nc_des_order.jnl
 ! err600_nc_des_order.jnl
 ! 11/07/2006 ACM
@@ -52681,8 +53652,8 @@ use/order=yzt coads_climatology
 show data/all
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          ...       1:180     1:90      1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          ...       1:180     1:90      1:3
  
 set axis/stride=5 `sst,return=yaxis`
  !-> set axis/stride=5 COADSX
@@ -52876,8 +53847,6 @@ sh grid temp
  YAX_LEV94 LATITUDE           180 r   89.5S                89.5N               full
  ZAXLEVIT191_1 DEPTH (m)        1 r-  0                    0                   full
  TIME      TIME                 2mr   16-JAN 06:00         15-FEB 16:29        full
- normal    E
- normal    F
 sh axis XAX_LEV9421_380
  name       axis              # pts   start                end
  XAX_LEV9421_380 LONGITUDE    360mr   20.5E                19.5E(379.5)
@@ -52928,8 +53897,6 @@ sh grid axy
  Y3AX      Y                    3 r   1                    3                   full
  Z4AX      Z                    4 r   1                    4                   full
  T2AX      T                    2 r   1                    2                   full
- normal    E
- normal    F
 show axis x2ax
  name       axis              # pts   start                end
  X2AX      X                    2mr   1                    2
@@ -52946,6 +53913,7 @@ say `axy,return=xmod`
 ! bug 1468: SHOW AXIS/ALL/XML listed the wrong info for the calendar
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err601_sho_ax_xml_calendar.jnl
 ! err601_sho_ax_xml_calendar.jnl
 ! 11/8/2006 ACM
@@ -53000,6 +53968,7 @@ sh axis/xml timenoleap
 ! with unspecified_int4.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err601_index_111.jnl
  
 ! err601_index_111.jnl
@@ -53026,6 +53995,7 @@ list x[gx=sst,x=-193:-203]
 ! Check for irregular axis actually being irregular failed; bug 1483
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err601_irregular_axis.jnl
 ! err601_irregular_axis.jnl
 ! V6.0 had a new scheme to check for irregular axes; for an axis
@@ -53040,8 +54010,6 @@ SHOW GRID/Z atmos
  normal    Y
  ALTITUDE  Z (Pa)              50 i   6.791595619E-10      1400                full
  TIME      TIME                 1mr   01-JAN 04:00         01-JAN 04:00        full
- normal    E
- normal    F
  
        K     Z                   ZBOX      ZBOXLO
        1>  6.791595619227E-10    6.885E-10  3.349092392302E-10
@@ -53100,6 +54068,7 @@ SHOW GRID/Z atmos
 ! see bug 1485, check on missing coordinates for 3-argument graphics
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err601_check_missing_3arg.jnl
 ! err601_check_missing_3arg.jnl
 ! see bug 1485: if missing coordinates in a curvilinear dataset, we should be
@@ -53183,6 +54152,7 @@ sp rm -f tripolar_missing_lon.nc
 !  when the last element is missing.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err601_missing_string_element.jnl
 ! err601_missing_string_element.jnl
 !  Bug 1488. Seg fault when try to list a string variable
@@ -53327,6 +54297,7 @@ cancel mode ignore_error
 ! SHADE/LEV did not keep same levels after a SHADE/LINE
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err602_shade_line_lev.jnl
 ! err602_shade_line_lev.jnl
 ! Bug 904.
@@ -53366,6 +54337,7 @@ LEV_DEL = "0.05"
 ! Draw correct SHADE and FILL plots across the modulo branch cut.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err602_curvi_modulo_cut
 ! err602_curvi_modulo_cut.jnl
 ! 5/07  bug 1302
@@ -53388,6 +54360,7 @@ fill/hlim=75:85/vlim=-10:0/mod u,geolon_c,geolat_c
 ! SET LIST/PREC worked for multi-var listings, LIST/PREC= var1,var2 did not
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err602_list_prec
 ! err602_list_prec.jnl
 ! fixes for bug 1388: SET LIST/PREC worked for multi-variable listings,
@@ -53443,8 +54416,8 @@ SET VAR/NAME=my_sst sst
 SHOW DATA
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- MY_SST   SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ MY_SST   SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
  
 LIST/X=179:183/Y=40/L=3 my_sst
@@ -53477,8 +54450,6 @@ LIST/X=179:183/Y=40/L=3 sst
  177W   / 82:  36.24
  
 *** Running ferret script: bn_memory_symbol.jnl
-Unable to allocate 500000.0 Mwords of memory.
-Restoring previous memory of 0.2 Mwords.
 ! bn_memory_symbol.jnl
 ! Ferret v6.06 15-Aug-07
 ! Symbol FERRET_MEMORY shows current size of Ferret memory in MWords
@@ -53490,19 +54461,23 @@ set mem/siz=90
 sh sym ferret_memory
 FERRET_MEMORY = "90"
 show memory
- Current size of FERRET memory cache: 90 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 90 megawords
+    Peak demand: 0 words
+    Current cache: 0 words
  
 set mem/size=0.05
 sh sym ferret_memory
-FERRET_MEMORY = "0.2"
+FERRET_MEMORY = "0.05"
  
 set mem/siz=500000  ! too large to allow
 sho sym ferret_memory
-FERRET_MEMORY = "0.2"
+FERRET_MEMORY = "500000"
  
 set mem/siz=25.6  ! return to the default setting
 show memory
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 0 words
+    Current cache: 0 words
 *** Running ferret script: bn605_bug_fixes.jnl
 ! bn604_bug_fixes.jnl
 ! test various fixes that went into version 6.05
@@ -53511,6 +54486,7 @@ show memory
 ! Fix for Bug 1524: irregular axis detected as REGULAR
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err604_irreg_axis.jnl
 ! Bug 1524: irregular axis detected as REGULAR!
  
@@ -53542,6 +54518,7 @@ list t[gt=month_irreg], tbox[gt=month_irreg]
 ! SHOW FUNCTIONS caused a crash or a message
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err605_show_func.jnl
 ! err605_show_func.jnl
 ! Reported by Andrew W.
@@ -53599,6 +54576,8 @@ DNCASE(STR)
 STRCAT(STR1,STR2)
 SUBSTRING(STR,OFFSET,LENGTH)
 STRFLOAT(STR)
+INNERPRODUCT(VAR1,VAR2,IDIM)
+TRANSPOSE(VAR,DIM1,DIM2)
  
 Externally defined functions available to Ferret:
 AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
@@ -53733,11 +54712,20 @@ TAX_YEARFRAC(A,B)
 TCAT(A,B)
 TCAT_STR(A,B)
 TEST_OPENDAP(url)
+TRANSPOSE_EF(VAR)
+TRANSPOSE_TE(VAR)
+TRANSPOSE_TF(VAR)
+TRANSPOSE_XE(VAR)
+TRANSPOSE_XF(VAR)
 TRANSPOSE_XT(VAR)
 TRANSPOSE_XY(VAR)
 TRANSPOSE_XZ(VAR)
+TRANSPOSE_YE(VAR)
+TRANSPOSE_YF(VAR)
 TRANSPOSE_YT(VAR)
 TRANSPOSE_YZ(VAR)
+TRANSPOSE_ZE(VAR)
+TRANSPOSE_ZF(VAR)
 TRANSPOSE_ZT(VAR)
 TREVERSE(A)
 UNIQUE_STR2INT(A)
@@ -53781,6 +54769,15 @@ 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)
@@ -53817,6 +54814,7 @@ SUBTRACT(A,B)
 ! Fix for Bug 1539: SHOW VAR/XML
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err607_show_var_xml
 ! Bug 1539 SHOW VAR/XML didnt show all vars.
  
@@ -53855,6 +54853,9 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <xaxis>XAX1_15</xaxis>
@@ -53869,6 +54870,9 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <xaxis>XAX1_15</xaxis>
@@ -53883,6 +54887,9 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GSI1">
 <axes>
 </axes>
@@ -53893,6 +54900,7 @@ show var/xml
 ! err607_set_new_history_att
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err607_set_new_history_att
 ! err607_set_new_history_att.jnl
 ! Previously if we set a history attribute on a user-defined variable that
@@ -53909,8 +54917,8 @@ use a.nc
 show data
      currently SET data sets:
     1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- VAR      SST                              1:10      1:1       ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ VAR      SST                              1:10      1:1       ...       1:3
  
 show att/all var
      attributes for user-defined variables
@@ -53921,6 +54929,7 @@ show att/all var
 ! Symbols YAXIS_MIN, YAXIS_MAX were 0 when values small
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err607_axis_minmax_syms
 ! Bug 1542
 ! Symbols YAXIS_MIN, YAXIS_MAX were 0 when values small
@@ -53954,6 +54963,7 @@ YAXIS_MAX = "2.005050505E-06"
 ! Error message for too many contour levels requested
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err607_lev_errmsg
 ! err607_lev_errmsg.F
 ! Make the error message more detailed, saying it is the choice of
@@ -54044,6 +55054,7 @@ set mode nlevels 40
 ! Error processing parentheses on abstract axis names.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err608_bug1556
 ! err608_bug1556.jnl
 ! Error processing parentheses on abstract axis names.
@@ -54071,6 +55082,7 @@ SAVE/FILE=a.nc/CLOBBER sst[i=1:5:1,j=1:5:1,l=1:1:1]
 ! Precision of immediate-mode output of negative values
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err608_precision_neg_numbers
 ! err608_precision_neg_numbers.jnl
 ! ACM 1/2/2008
@@ -54098,8 +55110,8 @@ SET MODE IGNORE
 !!list test_opendap ("http://iridl.ldeo.NOT.columbia.edu/SOURCES/.LEVITUS/.MONTHLY/.temp/dods")
  
 !! Change to another server, this one not working 8/2012
-list test_opendap ("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
-             VARIABLE : TEST_OPENDAP ("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
+list test_opendap ("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
+             VARIABLE : TEST_OPENDAP ("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
              X        : 1
           0.0000
 list test_opendap ("http://ferret.pmel.NOT.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
@@ -54115,6 +55127,7 @@ CANCEL MODE IGNORE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_write_bounds
 ! err61_write_bounds.jnl
 ! test fixes for bugzilla 1534: write correct bounds
@@ -54144,6 +55157,7 @@ sp ncdump a.nc >> all_ncdump.out
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_poly_shade_over_noaxes
 ! err61_poly_shade_over_noaxes.jnl
 ! See bug 1571
@@ -54194,6 +55208,7 @@ go polymark poly/lev=(-5,30,1)/fill/line=1/nolab/over v1 v2 v3 circle 2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_context_scalar_strings
 ! err61_context_scalar_strings.jnl
 ! Bug 1558, first present in Ferret v6.02
@@ -54210,6 +55225,7 @@ say `"a" EQ "a"`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_exit_script
 ! Bug 1566 Andrew Wittenberb
 !
@@ -54356,6 +55372,7 @@ exit/script
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_new_attr_on_axis
 ! err61_new_attr_on_axis.jnl
 ! For any var or axis, allow adding an attribute
@@ -54365,8 +55382,8 @@ use ocean_atlas_temp
 sh dat
      currently SET data sets:
     1> ./ocean_atlas_temp.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     Temperature                      1:360     1:180     1:1       1:2       ...       ...
+ name     title                             I         J         K         L
+ TEMP     Temperature                      1:360     1:180     1:1       1:2
  
 define att/output (`temp,return=xaxis`).long_name = "Here is a long name for the x axis of TEMP"
  !-> define att/output (XAX_LEV9421_380).long_name = "Here is a long name for the x axis of TEMP"
@@ -54388,6 +55405,7 @@ sp ncdump -h a.nc >> all_ncdump.out
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_varcontext_attributes
 ! Examples from bn_attributes, where instead of var.att[specifiers]
 ! we use var[specifiers].att  where appropriate.
@@ -54448,6 +55466,7 @@ list lnames
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
  
 !-----
@@ -54488,6 +55507,7 @@ say `($yaxnam)[d=1].nattrs`
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! more on access to attribute names and values as variables
@@ -54506,12 +55526,10 @@ list/d=3 a
 list temp[d=3].units
              VARIABLE : TEMP[D=ocean_atlas_temp].UNITS
              FILENAME : gt4d011.cdf
-             X        : 1
         "Deg C"
 list/d=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : ocean_atlas_temp.cdf
-             X        : 1
         "From ocean_atlas_monthly"
  
 can data/all
@@ -54531,6 +55549,7 @@ list a[i=2]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! When the variable context is given in an attribute
 ! spec, we want to ignore the information except for the
@@ -54542,7 +55561,6 @@ list ($ferret_plot_var).long_name
  !-> list sst[x=30:39,y=-90:90].long_name
              VARIABLE : SST[X=30:39,Y=-90:90].LONG_NAME
              FILENAME : coads_climatology.cdf
-             X        : 1
         "SEA SURFACE TEMPERATURE"
  
 use coads_climatology
@@ -54551,7 +55569,6 @@ list ($ferret_plot_var).units
  !-> list sst[d=1,x=30:35,y=-90:90].units
              VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].UNITS
              FILENAME : coads_climatology.cdf
-             X        : 1
         "Deg C"
  
 use coads_climatology
@@ -54561,11 +55578,11 @@ list ($ferret_plot_var).history
  !-> list sst[d=1,x=30:35,y=-90:90].history
              VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].HISTORY
              FILENAME : levitus_climatology.cdf
-             X        : 1
         "From coads_climatology"
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 use levitus_climatology
 use coads_climatology
@@ -54579,18 +55596,17 @@ list ($xaxnam)[d=1].modulo
  !-> list (XAXLEVITR1_160)[d=1].modulo
              VARIABLE : (XAXLEVITR1_160)[D=levitus_climatology].MODULO
              FILENAME : coads_climatology.cdf
-             X        : 1
         " "
 list ($yaxnam).point_spacing[d=1]
  !-> list (YAXLEVITR1_90).point_spacing[d=1]
              VARIABLE : (YAXLEVITR1_90).POINT_SPACING[D=levitus_climatology]
              FILENAME : levitus_climatology.cdf
-             X        : 1
         "even"
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_show_dat_var_xml
 ! err61_show_dat_var_xml.jnl
 ! See bug 1580. Intermediate variablels associated with a
@@ -54628,9 +55644,9 @@ LET/D=2 ddat_a = ZAXREPLACE(ddat_orig[d=1], cycle_orig[d=2], dummy)
 SHOW DATA 2
      currently SET data sets:
     2> ./z2.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  CYCLE_ORIG
-          CYCLE[GZ=ZAXIS_ORIG at ASN]         ...       ...       1:5       ...       ...       ...
+          CYCLE[GZ=ZAXIS_ORIG at ASN]         ...       ...       1:5       ...
  ------------------------------
  DDAT_A[D=z2] = ZAXREPLACE(DDAT_ORIG[D=1], CYCLE_ORIG[D=2], DUMMY)
  
@@ -54674,12 +55690,12 @@ SHOW DATA/VAR/XML 2
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
 <attribute name="long_name" type="char">
    <value><![CDATA[ZAXREPLACE(DDAT_ORIG[D=1], CYCLE_ORIG[D=2], DUMMY)]]></value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="(G006)">
 <axes>
 <zaxis>ZAXIS_DES</zaxis>
@@ -54751,6 +55767,7 @@ SHOW DATA/VAR/XML 2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_360_calendar
 ! err61_360_calendar.jnl
 !
@@ -54776,6 +55793,7 @@ define axis/t=30-feb-1909:07-mar-1909:2/units=days/t0=1-jan-1909/calendar=d360 t
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_exit_if.jnl
 ! err611_exit_if.jnl
 !
@@ -54802,6 +55820,7 @@ exit/script
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_save_irreg.jnl
 ! err611_save_irreg.jnl
 !
@@ -54834,7 +55853,7 @@ save/clob/file=b.nc b
 use coads_climatology
 plot/x=56e:100e/y=40 sst[L=1]
 ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C) No Valid Data                               
+ @ACSEA SURFACE TEMPERATURE No Valid Data                                       
  @ASLONGITUDE                                                                   
  @ASDeg C                                                                       
 
@@ -55013,6 +56032,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_axislab
 ! err611_axislab.jnl
 ! Fix bug 1582: Horizontal axis label disappeared
@@ -55027,6 +56047,7 @@ ppl plot
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_360_calendar
 ! err61_360_calendar.jnl
 !
@@ -55052,6 +56073,7 @@ define axis/t=30-feb-1909:07-mar-1909:2/units=days/t0=1-jan-1909/calendar=d360 t
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_exit_if.jnl
 ! err611_exit_if.jnl
 !
@@ -55078,6 +56100,7 @@ exit/script
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_save_irreg.jnl
 ! err611_save_irreg.jnl
 !
@@ -55102,6 +56125,7 @@ save/clob/file=b.nc b
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_wrong_fineaxis_range
 ! err611_wrong_fineaxis_range.jnl
 ! Bug 1594
@@ -55123,8 +56147,6 @@ sh grid sst
  LAT1800_1800 LATITUDE          1 r   0.025S               0.025S              full
  ENS       Z (count)            1 r   1                    1                   full
  TIME1     TIME                 1 r   01-APR-2006 00:00    01-APR-2006 00:00   full
- normal    E
- normal    F
  
 ! This first was wrong, returned data at x=-180
 list/x=180 sst
@@ -55174,6 +56196,7 @@ say `the_plot_var,return=size`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_digit_filename
 ! err611_digit_filename.jnl
 ! Under linux, FILE command fails if filename
@@ -55188,7 +56211,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=1a.dat i
  !-> SET DATA/EZ/VAR="a1" 1a.dat
  !-> LIST a1
-             VARIABLE : A1
+             VARIABLE : a1
              FILENAME : 1a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000
@@ -55198,7 +56221,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=3a.dat i
  !-> SET DATA/EZ/VAR="a3" 3a.dat
  !-> LIST a3
-             VARIABLE : A3
+             VARIABLE : a3
              FILENAME : 3a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000
@@ -55208,7 +56231,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=5a.dat i
  !-> SET DATA/EZ/VAR="a5" 5a.dat
  !-> LIST a5
-             VARIABLE : A5
+             VARIABLE : a5
              FILENAME : 5a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000
@@ -55218,7 +56241,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=7a.dat i
  !-> SET DATA/EZ/VAR="a7" 7a.dat
  !-> LIST a7
-             VARIABLE : A7
+             VARIABLE : a7
              FILENAME : 7a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000
@@ -55228,7 +56251,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=9a.dat i
  !-> SET DATA/EZ/VAR="a9" 9a.dat
  !-> LIST a9
-             VARIABLE : A9
+             VARIABLE : a9
              FILENAME : 9a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000
@@ -55238,7 +56261,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=11a.dat i
  !-> SET DATA/EZ/VAR="a11" 11a.dat
  !-> LIST a11
-             VARIABLE : A11
+             VARIABLE : a11
              FILENAME : 11a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000
@@ -55247,32 +56270,33 @@ REPEAT/RANGE=1:12:2/name=m \
 SHOW DATA
      currently SET data sets:
     1> ./1a.dat
- name     title                             I         J         K         L         M         N
- A1       A1                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A1       a1                               1:3       ...       ...       ...
  
     2> ./3a.dat
- name     title                             I         J         K         L         M         N
- A3       A3                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A3       a3                               1:3       ...       ...       ...
  
     3> ./5a.dat
- name     title                             I         J         K         L         M         N
- A5       A5                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A5       a5                               1:3       ...       ...       ...
  
     4> ./7a.dat
- name     title                             I         J         K         L         M         N
- A7       A7                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A7       a7                               1:3       ...       ...       ...
  
     5> ./9a.dat
- name     title                             I         J         K         L         M         N
- A9       A9                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A9       a9                               1:3       ...       ...       ...
  
     6> ./11a.dat  (default)
- name     title                             I         J         K         L         M         N
- A11      A11                              1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A11      a11                              1:3       ...       ...       ...
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_parse_semicolon
 ! err611_parse_semicolon.jnl
 ! Bug 1608. The first time it was issued, the first command
@@ -55293,6 +56317,7 @@ c (d; say a ; b
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_ov_ax
 ! err611_ov_ax.jnl
 !
@@ -55313,6 +56338,7 @@ set v lr; ppl axlabp 0 0; plot/nolab {-1,1,6}
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_context_after_error
 ! err611_context_after_error.jnl
 ! ACM 11/12/08
@@ -55334,12 +56360,12 @@ USE bug1421_b
 SHOW DATA
      currently SET data sets:
     1> ./bug1421_a.nc
- name     title                             I         J         K         L         M         N
- A        zonal wind stress                1:1       1:1       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ A        zonal wind stress                1:1       1:1       ...       1:20
  
     2> ./bug1421_b.nc  (default)
- name     title                             I         J         K         L         M         N
- B        T[GT=MON_IRREG_NLP]              ...       ...       ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ B        T[GT=MON_IRREG_NLP]              ...       ...       ...       1:12
  
 SHOW AXIS LON88_88
  name       axis              # pts   start                end
@@ -55393,6 +56419,7 @@ SET MODE/LAST ignore_error
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_isize_gc_fcns
 ! err611_isize_gc_fcns.jnl
 ! ACM 11/13/2008
@@ -55436,6 +56463,7 @@ SAY `XSEQUENCE(a),RETURN=size`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_return_precision
 ! err611_return_precision.jnl
 ! 17-Nov-08 ACM
@@ -55586,6 +56614,7 @@ a-950
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_set_var_ez
 ! err611_set_var_ez.jnl
 ! 6-Jan-2009
@@ -55613,7 +56642,7 @@ SHOW DAT/ATT
   
  .                               history         CHAR        7    F       dat.dat
   
- MY_ASC                FLOAT     long_name       CHAR        11   T       chlorophyll
+ my_asc                FLOAT     long_name       CHAR        11   T       chlorophyll
                                  missing_value   FLOAT       1    T       3
                                  units           CHAR        12   T       micrograms/L
   
@@ -55632,6 +56661,7 @@ SP ncdump -h a.nc >> all_ncdump.out
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_convert_missing_type
 ! err611_convert_missing_type.jnl
 ! Fix for bug 1620 message about converting data type of
@@ -55654,6 +56684,7 @@ SAVE/CLOBBER/FILE=lonlat.nc lat, lon
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_shade_fill_levs
 ! err611_shade_fill_levs.jnl
 ! 2/27/2009
@@ -55675,6 +56706,7 @@ LEV_DEL = "0.05"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_set_uvar_outtyp
 ! err611_set_uvar_outtyp.jnl
 ! fix for bug 1646: set outtype for user variables.
@@ -55697,6 +56729,7 @@ SP ncdump a.nc >> all_ncdump.out
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_save_from_desc
 ! err611_save_from_desc.jnl
 !
@@ -55708,6 +56741,7 @@ save/clobber/file=a.nc/i=100 sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_irregular_axis
  ! err611_irregular_axis.jnl
  
@@ -55734,12 +56768,11 @@ sh grid cc
  normal    Y
  normal    Z
  TAX       TIME               142 i   30-DEC-2007 00:00    30-DEC-2007 00:02   full
- normal    E
- normal    F
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_ef_string_result
 ! err611_ef_string_result.jnl
 ! testing the fix for bug 1621
@@ -55825,6 +56858,7 @@ list xt
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_contour_subspan_reps
 ! err61_contour_subspan_reps.jnl
 ! Bug 1659.
@@ -55898,8 +56932,8 @@ set data proleptic_gregorian.nc
 show data
      currently SET data sets:
     1> ./proleptic_gregorian.nc  (default)
- name     title                             I         J         K         L         M         N
- MY_DATA  SIN(L[GT=TDAYS])                 ...       ...       ...       1:32      ...       ...
+ name     title                             I         J         K         L
+ MY_DATA  SIN(L[GT=TDAYS])                 ...       ...       ...       1:32
  
 show axis tdays
  name       axis              # pts   start                end
@@ -56617,8 +57651,8 @@ set data/format=cdf test0a, test0b, test0c, test0d, test0e, test0f, test0g, test
 show data 1
      currently SET data sets:
     1> ./test0a.cdf
- name     title                             I         J         K         L         M         N
- L_       L                                ...       ...       ...       1:500     ...       ...
+ name     title                             I         J         K         L
+ L_       L                                ...       ...       ...       1:500
        (axis ABSTRACT)
  
 show data/br
@@ -56769,78 +57803,78 @@ show data/full
      currently SET data sets:
     1> ./test_abs.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       I                                1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       I                                1:10      ...       ...       ...
                on grid GEU1 with -1.E+34 for missing data
              X=0.5:10.5  
- J1       J                                ...       1:20      ...       ...       ...       ...
+ J1       J                                ...       1:20      ...       ...
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- K1       K                                ...       ...       1:100     ...       ...       ...
+ K1       K                                ...       ...       1:100     ...
                on grid GEU3 with -1.E+34 for missing data
              Z=0.5:100.5  
- L1       L[G=GCENTURY]                    ...       ...       ...       1:12      ...       ...
+ L1       L[G=GCENTURY]                    ...       ...       ...       1:12
                on grid GEU4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:10      ...       ...
+ L2       L                                ...       ...       ...       1:10
                on grid GEU5 with -1.E+34 for missing data
              
- IJ       I+J                              1:10      1:20      ...       ...       ...       ...
+ IJ       I+J                              1:10      1:20      ...       ...
                on grid GEU6 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IK       I+K                              1:10      ...       1:100     ...       ...       ...
+ IK       I+K                              1:10      ...       1:100     ...
                on grid GEU7 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IL       I+L1                             1:10      ...       ...       1:12      ...       ...
+ IL       I+L1                             1:10      ...       ...       1:12
                on grid GEU8 with -1.E+34 for missing data
              X=0.5:10.5  
- JK       J+K                              ...       1:20      1:100     ...       ...       ...
+ JK       J+K                              ...       1:20      1:100     ...
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJK      I+J+K                            1:10      1:20      1:100     ...       ...       ...
+ IJK      I+J+K                            1:10      1:20      1:100     ...
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IKL      I+K+L1                           1:10      ...       1:100     1:12      ...       ...
+ IKL      I+K+L1                           1:10      ...       1:100     1:12
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJL      I+J+L1                           1:10      1:20      ...       1:12      ...       ...
+ IJL      I+J+L1                           1:10      1:20      ...       1:12
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- JKL      J+K+L1                           ...       1:20      1:100     1:12      ...       ...
+ JKL      J+K+L1                           ...       1:20      1:100     1:12
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJKL     I+J+K+L1                         1:10      1:20      1:100     1:12      ...       ...
+ IJKL     I+J+K+L1                         1:10      1:20      1:100     1:12
                on grid GEU14 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IJK2     I+J+K                            ...       1:20      1:100     ...       ...       ...
+ IJK2     I+J+K                            ...       1:20      1:100     ...
        (X=0.5:10.5 at AVE)
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IKL2     I+K+L1                           ...       ...       1:100     1:12      ...       ...
+ IKL2     I+K+L1                           ...       ...       1:100     1:12
        (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
                on grid GEU15 with -1.E+34 for missing data
              Z=0.5:100.5  
- IJL2     I+J+L1                           ...       ...       ...       1:12      ...       ...
+ IJL2     I+J+L1                           ...       ...       ...       1:12
        (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
                on grid GEU4 with -1.E+34 for missing data
              
- JKL2     J+K+L1                           ...       1:20      ...       ...       ...       ...
+ JKL2     J+K+L1                           ...       1:20      ...       ...
        (Z=0.5:100.5 at AV4, T=03-JAN-1902 12:00:08-JAN-1902 12:00 at AV4)
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:12      ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:12
        (X=0.5:10.5)
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:12      ...       ...
+ IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:12
        (Y=0.5:20.5)
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:12      ...       ...
+ IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:12
        (Z=0.5:100.5)
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...
        (T=03-JAN-1902 12:00:08-JAN-1902 12:00)
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
@@ -56855,8 +57889,6 @@ show grid ijkl
  YAX       Y                   20 r   1                    20                  full
  ZAX       Z                  100 r   1                    100                 full
  TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00   full
- normal    E
- normal    F
 cancel data test_abs
  
 ! make the time axis irregular by leaving out l=13
@@ -56866,78 +57898,78 @@ show data/full
      currently SET data sets:
     1> ./test_abs.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       I                                1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       I                                1:10      ...       ...       ...
                on grid GEU1 with -1.E+34 for missing data
              X=0.5:10.5  
- J1       J                                ...       1:20      ...       ...       ...       ...
+ J1       J                                ...       1:20      ...       ...
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- K1       K                                ...       ...       1:100     ...       ...       ...
+ K1       K                                ...       ...       1:100     ...
                on grid GEU3 with -1.E+34 for missing data
              Z=0.5:100.5  
- L1       L[G=GCENTURY]                    ...       ...       ...       1:15      ...       ...
+ L1       L[G=GCENTURY]                    ...       ...       ...       1:15
                on grid GEU4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:10      ...       ...
+ L2       L                                ...       ...       ...       1:10
                on grid GEU5 with -1.E+34 for missing data
              
- IJ       I+J                              1:10      1:20      ...       ...       ...       ...
+ IJ       I+J                              1:10      1:20      ...       ...
                on grid GEU6 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IK       I+K                              1:10      ...       1:100     ...       ...       ...
+ IK       I+K                              1:10      ...       1:100     ...
                on grid GEU7 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IL       I+L1                             1:10      ...       ...       1:15      ...       ...
+ IL       I+L1                             1:10      ...       ...       1:15
                on grid GEU8 with -1.E+34 for missing data
              X=0.5:10.5  
- JK       J+K                              ...       1:20      1:100     ...       ...       ...
+ JK       J+K                              ...       1:20      1:100     ...
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJK      I+J+K                            1:10      1:20      1:100     ...       ...       ...
+ IJK      I+J+K                            1:10      1:20      1:100     ...
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IKL      I+K+L1                           1:10      ...       1:100     1:15      ...       ...
+ IKL      I+K+L1                           1:10      ...       1:100     1:15
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJL      I+J+L1                           1:10      1:20      ...       1:15      ...       ...
+ IJL      I+J+L1                           1:10      1:20      ...       1:15
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- JKL      J+K+L1                           ...       1:20      1:100     1:15      ...       ...
+ JKL      J+K+L1                           ...       1:20      1:100     1:15
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJKL     I+J+K+L1                         1:10      1:20      1:100     1:15      ...       ...
+ IJKL     I+J+K+L1                         1:10      1:20      1:100     1:15
                on grid GEU14 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IJK2     I+J+K                            ...       1:20      1:100     ...       ...       ...
+ IJK2     I+J+K                            ...       1:20      1:100     ...
        (X=0.5:10.5 at AVE)
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IKL2     I+K+L1                           ...       ...       1:100     1:15      ...       ...
+ IKL2     I+K+L1                           ...       ...       1:100     1:15
        (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
                on grid GEU15 with -1.E+34 for missing data
              Z=0.5:100.5  
- IJL2     I+J+L1                           ...       ...       ...       1:15      ...       ...
+ IJL2     I+J+L1                           ...       ...       ...       1:15
        (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
                on grid GEU4 with -1.E+34 for missing data
              
- JKL2     J+K+L1                           ...       1:20      ...       ...       ...       ...
+ JKL2     J+K+L1                           ...       1:20      ...       ...
        (Z=0.5:100.5 at AV4, T=03-JAN-1902 12:00:08-JAN-1902 12:00 at AV4)
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:15      ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:15
        (X=0.5:10.5)
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:15      ...       ...
+ IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:15
        (Y=0.5:20.5)
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:15      ...       ...
+ IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:15
        (Z=0.5:100.5)
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...
        (T=03-JAN-1902 12:00:08-JAN-1902 12:00)
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
@@ -56951,8 +57983,6 @@ show grid ijkl
  YAX       Y                   20 r   1                    20                  full
  ZAX       Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
  
  
 ! list long time series using a rigid (non-record axis) time axis --> FAST
@@ -56985,40 +58015,30 @@ show grid j1 jkl jkl2 iavejkl ijkl
  YAX       Y                   20 r   1                    20                  full
  normal    Z
  normal    T
- normal    E
- normal    F
     GRID GEU13
  name       axis              # pts   start                end                 subset
  normal    X
  YAX       Y                   20 r   1                    20                  full
  ZAX       Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
     GRID GEU2
  name       axis              # pts   start                end                 subset
  normal    X
  YAX       Y                   20 r   1                    20                  full
  normal    Z
  normal    T
- normal    E
- normal    F
     GRID GEU13
  name       axis              # pts   start                end                 subset
  normal    X
  YAX       Y                   20 r   1                    20                  full
  ZAX       Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
     GRID GEU14
  name       axis              # pts   start                end                 subset
  XAX       X                   10 r   1                    10                  full
  YAX       Y                   20 r   1                    20                  full
  ZAX       Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
 cancel data test_abs
  
 ! test TMAP data io
@@ -57102,29 +58122,29 @@ show data/full
      currently SET data sets:
     1> ./gtbc011.cdf
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.8S:51.4N  
  
@@ -57132,67 +58152,67 @@ show data/full
  
     2> ./test_fil0.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...
                on grid PS3DT1_NYZT with -1.E+34 for missing data
              X=130E:140E  
- J1       Y[G=TEMP,J=5:10]                 ...       5:10      ...       ...       ...       ...
+ J1       Y[G=TEMP,J=5:10]                 ...       5:10      ...       ...
                on grid PS3DT1_NXZT with -1.E+34 for missing data
              Y=21.1S:12.5S  
- K1       Z[G=U,K=5:15]                    ...       ...       5:15      ...       ...       ...
+ K1       Z[G=U,K=5:15]                    ...       ...       5:15      ...
                on grid PS3DU1_NXYT with -1.E+34 for missing data
              Z=40:190  
- L1       L[G=U,L=1:3]                     ...       ...       ...       1:3       ...       ...
+ L1       L[G=U,L=1:3]                     ...       ...       ...       1:3
                on grid GRH1 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:2       ...       ...
+ L2       L                                ...       ...       ...       1:2
                on grid GRH2 with -1.E+34 for missing data
              
- IJ       TAUX[L=@AVE]                    69:71      1:100     ...       ...       ...       ...
+ IJ       TAUX[L=@AVE]                    69:71      1:100     ...       ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid PS2DU1_NT with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- IK       I1+K1                            1:10      ...       5:15      ...       ...       ...
+ IK       I1+K1                            1:10      ...       5:15      ...
                on grid G016_NYT with -1.E+34 for missing data
              X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
+ IL       I1+L1                            1:10      ...       ...       1:3
                on grid G016_NYZ with -1.E+34 for missing data
              X=130E:140E  
- JK       J1+K1                            ...       5:10      5:15      ...       ...       ...
+ JK       J1+K1                            ...       5:10      5:15      ...
                on grid G002_NXT with -1.E+34 for missing data
              Y=21.1S:12.5S  Z=40:190  
- IJK      TEMP[L=@AVE]                    70:72      1:100     1:27      ...       ...       ...
+ IJK      TEMP[L=@AVE]                    70:72      1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid PS3DT1_NT with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- IKL      TEMP[J=@AVE]                    70:72      ...       1:27      1:3       ...       ...
+ IKL      TEMP[J=@AVE]                    70:72      ...       1:27      1:3
        (Y=30S:50N)
                on grid PS3DT1_NY with -1.E+34 for missing data
              X=161W:158W  Z=0:4149  
- IJL      TEMP[K=@AVE]                    70:72      1:100     ...       1:3       ...       ...
+ IJL      TEMP[K=@AVE]                    70:72      1:100     ...       1:3
        (Z=0:4149)
                on grid PS3DT1_NZ with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  
- JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130E:70W)
                on grid GRH3 with -1.E+34 for missing data
              Y=30S:50N  Z=0:4149  
- IJKL     U                               69:72      1:100     1:27      1:3       ...       ...
+ IJKL     U                               69:72      1:100     1:27      1:3
                on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130.5E:69.5W)
                on grid GRH4 with -1.E+34 for missing data
              Y=28.8S:51.4N  Z=0:4149  
- IJAVEKL  IJKL[J=@AVE]                    69:72      ...       1:27      1:3       ...       ...
+ IJAVEKL  IJKL[J=@AVE]                    69:72      ...       1:27      1:3
        (Y=28.8S:51.4N)
                on grid PS3DU1_NY with -1.E+34 for missing data
              X=161.5W:157.5W  Z=0:4149  
- IJKAVEL  IJKL[K=@AVE]                    69:72      1:100     ...       1:3       ...       ...
+ IJKAVEL  IJKL[K=@AVE]                    69:72      1:100     ...       1:3
        (Z=0:4149)
                on grid PS3DU1_NZ with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  
- IJKLAVE  IJKL[L=@AVE]                    69:72      1:100     1:27      ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                    69:72      1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid PS3DU1_NT with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
@@ -57207,8 +58227,6 @@ show grid ijkl
  PSYU      LATITUDE           100 i   27.672S              50N                 full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
- normal    E
- normal    F
 cancel data test_fil0
 ! 5/99 moved old bn230_cdf.sub3 to bn_cdf_keepax.sub4 to stay inline w/ old benchmarks *kob*
 GO bn_cdf_keepax.sub4
@@ -57296,29 +58314,29 @@ show data/full
      currently SET data sets:
     1> ./gtbc011.cdf
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.8S:51.4N  
  
@@ -57326,33 +58344,33 @@ show data/full
  
     2> ./test_fil.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...
                on grid GLZ1 with -1.E+34 for missing data
              X=130E:140E  
- J1       Y[G=TEMP,J=5:10]                 ...       1:6       ...       ...       ...       ...
+ J1       Y[G=TEMP,J=5:10]                 ...       1:6       ...       ...
                on grid GLZ2 with -1.E+34 for missing data
              Y=21.1S:12.5S  
- K1       Z[G=U,K=5:15]                    ...       ...       1:11      ...       ...       ...
+ K1       Z[G=U,K=5:15]                    ...       ...       1:11      ...
                on grid GLZ3 with -1.E+34 for missing data
              Z=40:190  
- L1       L[G=U,L=1:3]                     ...       ...       ...       1:3       ...       ...
+ L1       L[G=U,L=1:3]                     ...       ...       ...       1:3
                on grid GLZ4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:2       ...       ...
+ L2       L                                ...       ...       ...       1:2
                on grid GLZ5 with -1.E+34 for missing data
              
- IJ       TAUX[L=@AVE]                     1:3       1:100     ...       ...       ...       ...
+ IJ       TAUX[L=@AVE]                     1:3       1:100     ...       ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid GLZ6 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- IK       I1+K1                            1:10      ...       1:11      ...       ...       ...
+ IK       I1+K1                            1:10      ...       1:11      ...
                on grid GLZ7 with -1.E+34 for missing data
              X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
+ IL       I1+L1                            1:10      ...       ...       1:3
                on grid GLZ8 with -1.E+34 for missing data
              X=130E:140E  
- JK       J1+K1                            ...       1:6       1:11      ...       ...       ...
+ JK       J1+K1                            ...       1:6       1:11      ...
                on grid GLZ9 with -1.E+34 for missing data
              Y=21.1S:12.5S  Z=40:190  
  
@@ -57379,15 +58397,15 @@ show data/var
      currently SET data sets:
     1> ./reverse_axes.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...
                on grid GAF1 with -1.E+34 for missing data
              X=129.5E:179.5W  Y=10.5S:10.5N  
- FCN_REV  COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...       ...       ...
+ FCN_REV  COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...
                on grid GAF2 with -1.E+34 for missing data
              X=129.5E:179.5W  Y=10.5S:10.5N  
  FCN_REV_SUB
-          COS(X/10)*SIN(Y/2)               1:51     10:19      ...       ...       ...       ...
+          COS(X/10)*SIN(Y/2)               1:51     10:19      ...       ...
                on grid GREV with -1.E+34 for missing data
              X=129.5E:179.5W  Y=1.5S:8.5N  
  
@@ -57550,6 +58568,7 @@ shade/lev=35 sst[L=1]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err618_julday.jnl
 ! err618_julday.jnl
 ! Bug 1639
@@ -57599,6 +58618,7 @@ list/t=27-feb-1999:02-mar-1999 rjulianday
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_polygons.jnl
 ! err611_polygons.jnl
 ! bug 1661
@@ -57876,13 +58896,13 @@ USE grads_bug_file.nc
 SHOW DATA
      currently SET data sets:
     1> ./grads_bug_file.nc  (default)
- name     title                             I         J         K         L         M         N
- AM       Z[GZ=CAXIS] + Y[GY=BAXIS] + X[G  1:10      1:5       1:5       ...       ...       ...
- AR       Z[GZ=DAXIS]+ Y[GY=BAXIS] + X[GX  1:10      1:5       1:6       ...       ...       ...
- A1                                        ...       ...       1:5       ...       ...       ...
- A2                                        ...       ...       1:5       ...       ...       ...
- A3                                        ...       ...       1:5       ...       ...       ...
- A4                                        ...       ...       1:5       ...       ...       ...
+ name     title                             I         J         K         L
+ AM       Z[GZ=CAXIS] + Y[GY=BAXIS] + X[G  1:10      1:5       1:5       ...
+ AR       Z[GZ=DAXIS]+ Y[GY=BAXIS] + X[GX  1:10      1:5       1:6       ...
+ A1                                        ...       ...       1:5       ...
+ A2                                        ...       ...       1:5       ...
+ A3                                        ...       ...       1:5       ...
+ A4                                        ...       ...       1:5       ...
  
  
 ! The z axis of AM has no useful clues about its direction.
@@ -57894,8 +58914,6 @@ SH GRID am
  BAXIS     Y (METERS)           5 r   1                    9                   full
  CAXIS     Z (METERS)           5 r   2                    10                  full
  normal    T
- normal    E
- normal    F
  
 ! This axis has long_name = "depth" so it is (now) reversed.
 ! Previously it was not.
@@ -57906,8 +58924,6 @@ SH GRID ar
  BAXIS     Y (METERS)           5 r   1                    9                   full
  DAXIS     DEPTH (m)            6 i-  0                    8                   full
  normal    T
- normal    E
- normal    F
  
 ! Can redefine the axis for variable AM to make it a z depth axis
  
@@ -57922,14 +58938,12 @@ SH GRID am
  BAXIS     Y (METERS)           5 r   1                    9                   full
  CAXIS     DEPTH (m)            5 r-  2                    10                  full
  normal    T
- normal    E
- normal    F
 *** Running ferret script: bn_clock_syms.jnl
 SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "0.005998"
+DELTA_CPU = "0.007998"
 CLOCK_SECS = "0.003"
-CURRENT_DATE = "17-Jun-16"
-CURRENT_TIME = "15:04:16"
+CURRENT_DATE = "18-Apr-17"
+CURRENT_TIME = "17:03:41"
 ! test special symbols DELTA_CPU, CLOCK_SECS
 !
 ! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -57938,8 +58952,8 @@ CURRENT_TIME = "15:04:16"
 use gt4d011
 shade/k=1 temp[L=@ave]
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.035994"
-CLOCK_SECS = "0.041"
+DELTA_CPU = "0.041993"
+CLOCK_SECS = "0.051"
  
 repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=1
@@ -57953,66 +58967,67 @@ repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=9
 !-> REPEAT: K=10
 let ten_plots = ($DELTA_CPU)
- !-> DEFINE VARIABLE ten_plots = 0.138979
+ !-> DEFINE VARIABLE ten_plots = 0.143978
 sh sym DELTA_CPU, CLOCK_SECS
 DELTA_CPU = "0"
-CLOCK_SECS = "0.181"
+CLOCK_SECS = "0.194"
  
 let  sumclock = 0
 let  sumcpu = 0
 sh sym CLOCK_SECS
-CLOCK_SECS = "0.182"
+CLOCK_SECS = "0.195"
 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.014998
- !-> DEFINE VARIABLE sumcpu =0.014998
+ !-> DEFINE VARIABLE dt = 0.015998
+ !-> DEFINE VARIABLE sumcpu =0.015998
 !-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.014998
- !-> DEFINE VARIABLE sumcpu =0.029996
-!-> REPEAT: K=3
  !-> DEFINE VARIABLE dt = 0.015998
- !-> DEFINE VARIABLE sumcpu =0.045994
+ !-> DEFINE VARIABLE sumcpu =0.031996
+!-> REPEAT: K=3
+ !-> DEFINE VARIABLE dt = 0.016997
+ !-> DEFINE VARIABLE sumcpu =0.048993
 !-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.015997
- !-> DEFINE VARIABLE sumcpu =0.061991
+ !-> DEFINE VARIABLE dt = 0.015998
+ !-> DEFINE VARIABLE sumcpu =0.064991
 !-> REPEAT: K=5
  !-> DEFINE VARIABLE dt = 0.015997
- !-> DEFINE VARIABLE sumcpu =0.077988
+ !-> DEFINE VARIABLE sumcpu =0.080988
 !-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.014998
- !-> DEFINE VARIABLE sumcpu =0.092986
-!-> REPEAT: K=7
  !-> DEFINE VARIABLE dt = 0.015998
- !-> DEFINE VARIABLE sumcpu =0.108984
+ !-> DEFINE VARIABLE sumcpu =0.096986
+!-> REPEAT: K=7
+ !-> DEFINE VARIABLE dt = 0.015997
+ !-> DEFINE VARIABLE sumcpu =0.112983
 !-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.014997
- !-> DEFINE VARIABLE sumcpu =0.123981
+ !-> DEFINE VARIABLE dt = 0.015998
+ !-> DEFINE VARIABLE sumcpu =0.128981
 !-> REPEAT: K=9
  !-> DEFINE VARIABLE dt = 0.014998
- !-> DEFINE VARIABLE sumcpu =0.138979
+ !-> DEFINE VARIABLE sumcpu =0.143979
 !-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.014998
- !-> DEFINE VARIABLE sumcpu =0.153977
+ !-> DEFINE VARIABLE dt = 0.015997
+ !-> DEFINE VARIABLE sumcpu =0.159976
  
 say `sumcpu`
- !-> MESSAGE/CONTINUE 0.153977
-0.153977
+ !-> MESSAGE/CONTINUE 0.159976
+0.159976
 sh sym CLOCK_SECS
-CLOCK_SECS = "0.338"
+CLOCK_SECS = "0.355"
  
 SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "17-Jun-16"
-SESSION_TIME = "15:04"
-CURRENT_DATE = "17-Jun-16"
-CURRENT_TIME = "15:04:17"
+SESSION_DATE = "18-Apr-17"
+SESSION_TIME = "17:03"
+CURRENT_DATE = "18-Apr-17"
+CURRENT_TIME = "17:03:42"
 *** Running ferret script: bn63_bug_fixes.jnl
 ! bn63_bug_fixes.jnl
 ! Fixes that go into v6.3 release
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_string_write_nc
 ! err62_string_write_nc.jnl
 ! Bug 1664: string variable written as a float.
@@ -58091,6 +59106,7 @@ list cruise_id_xz
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_levset
 ! err62_levset.jnl
 ! fix for bug 1672, top color level chopped off in some circumstances
@@ -58102,6 +59118,7 @@ shade/x=350:390/y=1:10/lev=(376.6,379.0,0.8)(379.0,385.4,0.2) var
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_thick_tic_time_axis
 ! err62_thick_tic_time_axis.jnl
 ! Fixing bug 1668
@@ -58155,6 +59172,7 @@ set win/new
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_reset_after_inf
 ! err62_reset_after_inf.jnl
 ! Bug 1292
@@ -58174,6 +59192,7 @@ cancel mode meta
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_reversed_up
 ! err62_reversed_up.jnl
 !
@@ -58220,6 +59239,7 @@ list z[gz=temp], zboxlo[gz=temp], zboxhi[gz=temp]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_samplexy
 ! err62_samplexy
 ! bug 1677
@@ -58254,6 +59274,7 @@ list sr
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_one_point_bounds
 ! err62_one_point_bounds.jnl
 ! Bug 1680
@@ -58286,6 +59307,7 @@ I / *:     5.000  4.890  5.110
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_cos_lat_uncentered
 !err62_cos_lat_uncentered.jnl
 ! See this thread, here is the esample, with his test.nc renamed to uncentered.nc
@@ -58434,6 +59456,7 @@ list cell18[x=@din,y=@din]/total_area
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_if_inside_repeat
 ! err62_if_inside_repeat.jnl
 ! Bug 1681. Parsing error when, inside the REPEAT, we have
@@ -58500,6 +59523,7 @@ done
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_title_curvi_plot
 ! err62_title_curvi_plot.jnl
 ! bug 1669; when the variable and its coordinate variables
@@ -58537,6 +59561,7 @@ LABTIT = "SEA SURFACE TEMPERATURE (Deg C)"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err62_save_missingcoordvar
 ! err62_save_missingcoordvar.jnl
 ! see bug 1686
@@ -58553,6 +59578,7 @@ save/clobber/file=a.nc sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_contourbug
 ! err62_contourbug.jnl
 ! Bug 1688
@@ -58575,6 +59601,7 @@ fill/hlimits=-100:400:50 0.0000001*(xb2+zb)^3,xb2,zb
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_append_irreg_to_reg
 ! err62_append_irreg_to_reg.jnl
 ! bug 1692
@@ -58607,9 +59634,11 @@ SET MODE/LAST IGNORE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_axis_stride_off
 ! err62_axis_stride_off.jnl
 ! fixing bug 1689: offset shifted by 1 so /OFFSET=0 >> start index = 1
+! 1/2017 *acm* changes in output due to backing off auto-detection of truemonth axes, tkt 2497
  
 USE truemonth.nc
  
@@ -58683,6 +59712,7 @@ SET MODE/LAST IGNORE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_compound_string_conditional
 ! err62_compound_string_conditional
 ! Bug 1380
@@ -58843,7 +59873,7 @@ shade/line/lev=50v/title="/LEV=50v" temp[K=1]
 sh sym lev*
 LEV_TEXT = "50V"
 LEV_MIN = "-2"
-LEV_MAX = "30.74"
+LEV_MAX = "open-ended"
 LEV_NUM = "56"
 LEV_DEL = "irregular"
 LEV_OPNLEVS = "(-2,3.05,0.505)(3.5,25.5,0.5)(25.5,25.5,0.505)(inf)"
@@ -58895,6 +59925,7 @@ shade/line/key/lev=50h/title="/LEV=50h" cvar[K=1]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err63_days1900toydmhms
 ! err63_days1900toydmhms.jnl
 !
@@ -58919,6 +59950,7 @@ list/k=2:3 tpts
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err63_log_vaxis
 ! err63_log_vaxis.jnl
 ! fix for bug 1708
@@ -58937,6 +59969,7 @@ plot/vlog z[gz=vert_axis_dn]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err63_delim_E.jnl
 ! err63_delim_E.jnl
 ! bug 1700
@@ -58987,11 +60020,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:3       1:20480   ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:3       1:20480   ...       ...
                on grid ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 with -1.E+34 for missing data
              X=0.5:3.5  Y=0.5:20480.5  
- X2       X2                               1:3       1:20480   ...       ...       ...       ...
+ X2       X2                               1:3       1:20480   ...       ...
                on grid ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 with -1.E+34 for missing data
              X=0.5:3.5  Y=0.5:20480.5  
  
@@ -59012,9 +60045,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:3       1:5       ...       ...       ...       ...
- X2       X2                               1:3       1:5       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:3       1:5       ...       ...
+ X2       X2                               1:3       1:5       ...       ...
  
 CAN DATA/ALL
  
@@ -59181,6 +60214,7 @@ stat v1234[g=even]-veven, v1234
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! regrid_transforms
 use gtsa056_1
 use gtsa056_2
@@ -59189,15 +60223,15 @@ set mode diag
 define axis/t=15-jan-1982:15-mar-1984:120/unit=hour tax5day
 define axis/x=120e:60w:10/unit=degrees xax10
 define grid/like=u/t=tax5day g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day
- getgrid EX#1     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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ getgrid EX#1     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 PS3DU1          PSXU      PSYU      PSZT      TIME1
 define grid/like=u/x=xax10/z=w/t=tax5day g5_10g00abcdefghijklmnopqrstuvwxyz1234567890
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  8 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  9 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DW11         PSXT      PSYT      PSZW      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ getgrid EX#1     C:  8 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ getgrid EX#1     C:  9 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DW11         PSXT      PSYT      PSZW      TIME1
  
 set reg/x=130w:125w/y=0:1.5/z=0:15/t=21-JAN-1982:24-jan-1982
 !set reg/i=101:105/j=41:42/k=1:2/l=3:4
@@ -59205,19 +60239,19 @@ set reg/x=130w:125w/y=0:1.5/z=0:15/t=21-JAN-1982:24-jan-1982
 use gtsa056_1    	!kob 4/99
  
 LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc  dynamic grid PS3DW11         PSXT      PSYT      PSZW      TIME1     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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DW11         PSXT      PSYT      PSZW      TIME1
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M:  6 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  2 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  1 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  2 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M:  6 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M:  2 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M:  1 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M:  2 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:  2 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  1 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:  2 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M:  1 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10G00ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 on X at AAV, on Y at AAV*
              FILENAME : gtsa056_1.cdf
@@ -59229,22 +60263,22 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
  20-JAN-1982 00 / 2:  23.88  23.97  24.15  24.37  24.63
  25-JAN-1982 00 / 3:  23.89  23.98  24.17  24.40  24.65
 LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gx=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M:  2 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  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
- eval    EX#1     C:  4 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      TAX5DAY
+ -DELETE TEMP     M:  2 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M:  6 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  2 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  1 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  2 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  2 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  1 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  1 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  2 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  6 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M:  2 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M:  1 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M:  2 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:  2 dset:   1 I:     95    106  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M:  1 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:  1 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M:  2 dset:   1 I:     95    106  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10G00ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 on X at AVE, on Y at LIN*
              FILENAME : gtsa056_1.cdf
@@ -59257,19 +60291,19 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gx=g5_10g00abcdefghijkl
  25-JAN-1982 00 / 3:  23.88  23.97  24.15  24.39  24.64
  
 LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
- dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- found   TEMP     M:  6 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  2 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  5 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  2 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  6 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M:  2 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M:  5 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M:  2 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:  2 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  5 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:  2 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M:  5 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10G00ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 on X at LIN, on Y at LIN*
              FILENAME : gtsa056_1.cdf
@@ -59285,211 +60319,211 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijkl
 use gtsa056_2	!kob  4/99
 set region/x=180W/y=0/z=5/t=21-JAN-1982:13-JUN-1983
 load temp[i=50:51,j=45:56,k=1:2,l=1:172]  ! preload to save time
- dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DT1          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     1   172 dset:   2
- reading TEMP     M:  5 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
+ dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DT1          PSXT      PSYT      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing TEMP on T axis:        1      172 dset:   2
+ reading TEMP     M:  5 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
 plot temp
- dealloc  dynamic grid PS3DT1          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DT1          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- found   TEMP     M:  3 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DT1          PSXT      PSYT      PSZT      TIME1
+ 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 PS3DT1          PSXT      PSYT      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ found   TEMP     M:  3 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
 setting up plot
 PPL plot 1    complete
 plot/over temp[g=u]
- dealloc  dynamic grid PS3DT1          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ dealloc  dynamic grid PS3DT1          PSXT      PSYT      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @LIN
- found   TEMP     M:  3 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ found   TEMP     M:  3 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
  regrid XY
- regrid  TEMP     M:  9 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ regrid  TEMP     M:  9 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    168
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @LIN
- found   TEMP     M:  3 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ found   TEMP     M:  3 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
  regrid XY
- regrid  TEMP     M:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ regrid  TEMP     M:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      1      2
+ doing moduloing TEMP on T axis:        1        2 dset:   2
 setting up plot
 PPL plot 2    complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
- found   TEMP     M:  3 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  8 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:  3 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
+ regrid  TEMP     M:  8 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M: 10 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  8 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 10 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:  8 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 3    complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890]
- dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 10 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -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
- eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT      TAX5DAY
+ -DELETE TEMP     M: 10 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ 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
+ eval    EX#1     C:  4 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M:  3 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 10 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  8 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 10 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:  3 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
+ regrid  TEMP     M: 10 dset:   2 I:     50     51  J:   45   46  K:    1    2  L:      2    104
+ regrid  TEMP     M:  8 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 10 dset:   2 I:     50     51  J:   45   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 10 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  8 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 10 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:  8 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 4    complete
 plot/over temp[g=u at ave]
- dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @AAV
- found   TEMP     M:  3 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ found   TEMP     M:  3 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
  regrid XY
- regrid  TEMP     M:  8 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ regrid  TEMP     M:  8 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    168
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @AAV
- found   TEMP     M:  3 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ found   TEMP     M:  3 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
  regrid XY
- regrid  TEMP     M: 12 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ regrid  TEMP     M: 12 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      1      2
+ doing moduloing TEMP on T axis:        1        2 dset:   2
 setting up plot
 PPL plot 5    complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M:  3 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 13 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:  3 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
+ regrid  TEMP     M: 13 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M: 14 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 13 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 14 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 13 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 6    complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 14 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -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
- eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT      TAX5DAY
+ -DELETE TEMP     M: 14 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ 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
+ eval    EX#1     C:  4 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M: 14 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M: 15 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 16 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 15 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ strip moduloing TEMP on T axis:        2      171 dset:   2
+ reading TEMP     M: 14 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
+ regrid  TEMP     M: 15 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    104
+ regrid  TEMP     M: 16 dset:   2 I:     45     56  J:   45   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 15 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 15 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 16 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 15 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 16 dset:   2 I:     45     56  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 7    complete
 plot/over temp[g=u at asn]
- dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 13 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 16 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 17 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 16 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ found   TEMP     M: 13 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    171
+ regrid  TEMP     M: 16 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    168
+ regrid  TEMP     M: 17 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    168
+ -DELETE TEMP     M: 16 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    168  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 14 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 18 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 19 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 18 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ found   TEMP     M: 14 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      1    168
+ regrid  TEMP     M: 18 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      1      2
+ regrid  TEMP     M: 19 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      1      2
+ -DELETE TEMP     M: 18 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      1      2  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on T axis:        1        2 dset:   2
 setting up plot
 PPL plot 8    complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
+ eval    EX#1     C:  4 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M: 18 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 20 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 20 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 20 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 21 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 20 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ reading TEMP     M: 18 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ regrid  TEMP     M: 20 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ regrid  TEMP     M: 21 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 20 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 20 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 21 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 21 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 20 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 9    complete
 plot/over temp[g=u,gt=u at ave]
- dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- found   TEMP     M:  7 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ found   TEMP     M:  7 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
 setting up plot
 PPL plot 10   complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
  strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M: 13 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 20 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M: 13 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    171
+ regrid  TEMP     M: 20 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M: 22 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 20 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 22 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 20 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 11   complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      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
+ eval    EX#1     C:  4 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- found   TEMP     M: 13 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 20 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 23 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 20 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M: 13 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    171
+ regrid  TEMP     M: 20 dset:   2 I:     50     51  J:   45   46  K:    1    2  L:      2    104
+ regrid  TEMP     M: 23 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 20 dset:   2 I:     50     51  J:   45   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 20 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 23 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 20 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 23 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 12   complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at asn]  ! invalid interpretation of data
- dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      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
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
  strip regrid on T: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 13 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 23 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M: 13 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    171
+ regrid  TEMP     M: 23 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M: 24 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 23 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 24 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 23 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 13   complete
  
@@ -59498,6 +60532,7 @@ set mode/last diag
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! regrid_to_user
  
 use coads_climatology
@@ -59538,8 +60573,6 @@ show grid
  COADSY    LATITUDE            90 r   89S                  89N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! per axis regrid
 ! 5/01 note: changed from y=0 yo y=5s to accomodate Y-truncated
@@ -59569,8 +60602,6 @@ show grid
  YAX       LATITUDE            81 r   20S                  20N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! combined full grid and per-axis
 list/x=160e/y=5s temp[d=2,k=1,g=gg12345678901234567890,gx=a[d=1]]
@@ -59598,8 +60629,6 @@ show grid
  YAX       LATITUDE            81 r   20S                  20N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! pseudo-variable access
 list/i=1:4 i[g=a]		! a is previously loaded
@@ -59639,8 +60668,6 @@ show grid gg123456789012345678901
  COADSY    LATITUDE            90 r   89S                  89N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
 let f = sst[y=20s:20n:.1,d=coads_climatology]
 DEFINE GRID/LIKE=f/x=temp[d=levitus_climatology] gg123456789012345678902
 cancel variable f
@@ -59651,8 +60678,6 @@ show grid gg123456789012345678902
  (AX011)   LATITUDE           401 r   20S                  20N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     no implicit grids
@@ -59674,8 +60699,6 @@ show grid gg123456789012345678902
  YAXLEVITR1_90 LATITUDE        90 r   89.5S                0.5S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     no implicit grids
@@ -59694,8 +60717,6 @@ show grid
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! The SET GRID (default) definition should be protected -- not altered
 load/d=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
@@ -59705,11 +60726,9 @@ show grid
     GRID (G005)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX014)   LATITUDE           201 r   10S                  10N                 200 pts
+ (AX014)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     GRID (G005)                          use count:   1
@@ -59718,20 +60737,6 @@ Dynamic grids:
  (AX014)   LATITUDE           201 r   10S                  10N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-    GRID (G006)                          use count:   1
- name       axis              # pts   start                end
- (AX013)   LONGITUDE          301 r   0E                   30E
- COADSY    LATITUDE            90 r   89S                  89N
- normal    Z
- TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX014)                         use count:   1
-    AXIS (AX013)                         use count:   1
-    AXIS (AX011)                         use count:   1
  
 ! deliberate errors
 set mode ignore
@@ -59741,6 +60746,7 @@ set mode/last ignore
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! dynamic grid commands
  
@@ -59755,8 +60761,6 @@ SHOW GRID mygrid_123456789012345678901234567890
  (AX014)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
- normal    E
- normal    F
 *** Running ferret script: bn_xml_repl.jnl
 ! bn_xml_repl.jnl
 ! replace > and < and & with their html equivalents.
@@ -59808,6 +60812,7 @@ sh dat/xml/var
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_very_small_latlon
 ! err64_very_small_latlon.jnl
 ! Based on a report and data file from Jean Newman.
@@ -59822,6 +60827,7 @@ shade/i=1:10/j=1:10 bathy
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_packed_data
 ! err64_packed_data.jnl
 ! Test writing packed data. Prior to v6.4 this example shows the
@@ -59914,6 +60920,7 @@ list/i=1:15 sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_repl_9999999
 ! bn_repl_9999999.jnl
 ! Bug 1717
@@ -59928,6 +60935,7 @@ can view view9999999
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_shakey_missingdata
 ! err64_shakey_missingdata.jnl
 ! starting with v6.2 a polygon plot with all missing data.
@@ -59952,6 +60960,7 @@ go polytube polygon/over/key/lev=(0,6,1) xpts,ypts,zpts
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_return_precision
 !err64_return_precision.jnl
 ! most of these resulted in *** - format too small.
@@ -59984,6 +60993,7 @@ say `999.999,p=-2`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_parse_equals
 ! err64_parse_equals
 ! Bug1469 (and duplicate 1690)
@@ -60004,6 +61014,7 @@ DEFINE SYMBOL my_sym  = `UPCASE("/lev=(0,30,2)")`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_regrid_noleap
 ! err64_regrid_noleap.jnl
 !
@@ -60047,6 +61058,7 @@ list b[t=15-feb-1150]  ! Now ok??
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_polymark_over_calendar
 ! err64_polymark_over_calendar.jnl
 ! bug1722.  Polymark script failed with calendar mismatch
@@ -60475,6 +61487,7 @@ sp cat the_xml_file.xml
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err65_averages.jnl
  
 use gt4d011
@@ -60619,13 +61632,13 @@ save/file=nc4_deflate4_defaultchunk.nc/clobber/ncformat=4/deflate/shuffle sst
 ! history attribute; e.g. changing the Ferret version name from v6.97 to v7
  
 sp stat nc4_nodeflate3.nc --printf="Bytes: %s\n"
-Bytes: 197504
+Bytes: 197508
 sp stat nc4_deflate4bigchunk.nc --printf="Bytes: %s\n"
-Bytes: 125210
+Bytes: 125212
 sp stat nc4_deflate4_xyt.nc --printf="Bytes: %s\n"
-Bytes: 124798
+Bytes: 124800
 sp stat nc4_deflate4_defaultchunk.nc --printf="Bytes: %s\n"
-Bytes: 118863
+Bytes: 118865
  
 ! Write variable as INT
 CAN DAT/all; can var/all; can mem/all
@@ -60640,11 +61653,11 @@ save/clobber/shuffle=1/file=nc4_inttemp_shuffle_set_list_deflate_chunk.nc temp
  
 ! get the file sizes
 sp stat nc4_inttemp_classic.nc --printf="Bytes: %s\n"
-Bytes: 60544
+Bytes: 60548
 sp stat nc4_inttemp_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
-Bytes: 32390
+Bytes: 32392
 sp stat nc4_inttemp_shuffle_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
-Bytes: 32567
+Bytes: 32569
  
 cancel list/all
 set list/ncformat=classic
@@ -60714,9 +61727,7 @@ sh grid tt
  normal    X
  normal    Y
  normal    Z
- TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   9 pts
- normal    E
- normal    F
+ TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   10 pts
  
  
 define axis/x=0:10:0.05 x10
@@ -60921,9 +61932,7 @@ show grid tt
  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   9 pts
- normal    E
- normal    F
+ TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   10 pts
  
 let sgrid = scat2grid_bin_xyt (xpts, ypts, tpts, sample_function, x[gx=xax5], y[gy=yax5], tt)
 SAVE/FILE=a.nc/clobber sgrid
@@ -61069,6 +62078,7 @@ AX_VERT = "Y"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err65_dots_in_dashes.jnl
 ! err65_dots_in_dashes.jnl
 ! Test fix to bug 1396: dots where there should
@@ -61089,6 +62099,7 @@ cancel mode meta
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err66_all_missing_lev_v.jnl
 ! err66_all_missing_lev_v.jnl
 ! Ferret hangs with /LEV=V and all missing data
@@ -61173,8 +62184,6 @@ show grid
  MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! --- force the x axis to be regular
 set axis /regular myx
@@ -61234,8 +62243,6 @@ show grid
  MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! --- setting a regular axis as regular does nothing
 set axis /regular myx
@@ -61295,12 +62302,11 @@ show grid
  MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! --- clean up
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 cancel grid mygrid
  
 ! --- read a NetCDF file with the irregular axes and data
@@ -61308,8 +62314,8 @@ use bn_set_axis_regular
 show data
      currently SET data sets:
     1> ./bn_set_axis_regular.nc  (default)
- name     title                             I         J         K         L         M         N
- MYDATA   2 * X + Y                        1:10      1:10      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ MYDATA   2 * X + Y                        1:10      1:10      ...       ...
  
 list mydata
              VARIABLE : 2 * X + Y
@@ -61336,8 +62342,6 @@ show grid
  MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! --- force the x axis to be regular
 set axis /regular `..dimnames[i=1]`
@@ -61367,8 +62371,6 @@ show grid
  MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 *** Running ferret script: bn_set_cancel_redirect.jnl
 ! bn_set_cancel_redirect.jnl
@@ -61419,8 +62421,6 @@ show grid mygrid
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 go /help
  
 ! --- 5. show the contents of the redirect file
@@ -61509,8 +62509,6 @@ show grid mygrid
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 go /help
  
 ! --- 10. results of CANCEL REDIRECT when nothing is redirected
@@ -61680,8 +62678,6 @@ show grid mygrid
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 go /help
  
 ! --- 18. see what happens to messages (say, warn, error)
@@ -61698,7 +62694,7 @@ let contents = { spawn:"cat redirect_stdout.txt" }
 ! ---     should be the stdout of 17, whatever stdout of 18, and cancel redirect from 19
 list contents
              VARIABLE : { SPAWN:"cat redirect_stdout.txt" }
-             SUBSET   : 24 points (X)
+             SUBSET   : 22 points (X)
  1    /  1:"set redirect /tee /file="redirect_stderr.txt" /clobber stderr"   
  2    /  2:" "                                                               
  3    /  3:"! --- 17. produce some output"                                   
@@ -61709,20 +62705,18 @@ list contents
  8    /  8:" normal    Y"                                                    
  9    /  9:" normal    Z"                                                    
  10   / 10:" normal    T"                                                    
- 11   / 11:" normal    E"                                                    
- 12   / 12:" normal    F"                                                    
- 13   / 13:"go /help"                                                        
- 14   / 14:" "                                                               
- 15   / 15:"! --- 18. see what happens to messages (say, warn, error)"       
- 16   / 16:"say "   This is a say message""                                  
- 17   / 17:"   This is a say message"                                        
- 18   / 18:"set axis /regular myaxis"                                        
- 19   / 19:"set mode ignore_error"                                           
- 20   / 20:"show grid garbage"                                               
- 21   / 21:"cancel mode ignore_error"                                        
- 22   / 22:" "                                                               
- 23   / 23:"! --- 19. cancel redirections and show the contents of the files"
- 24   / 24:"cancel redirect"                                                 
+ 11   / 11:"go /help"                                                        
+ 12   / 12:" "                                                               
+ 13   / 13:"! --- 18. see what happens to messages (say, warn, error)"       
+ 14   / 14:"say "   This is a say message""                                  
+ 15   / 15:"   This is a say message"                                        
+ 16   / 16:"set axis /regular myaxis"                                        
+ 17   / 17:"set mode ignore_error"                                           
+ 18   / 18:"show grid garbage"                                               
+ 19   / 19:"cancel mode ignore_error"                                        
+ 20   / 20:" "                                                               
+ 21   / 21:"! --- 19. cancel redirections and show the contents of the files"
+ 22   / 22:"cancel redirect"                                                 
 cancel var contents
 let contents = { spawn:"cat redirect_stderr.txt" }
 ! ---     should be the stderr of 17.
@@ -61783,8 +62777,6 @@ show grid mygrid
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 go /help
  
 ! --- 26. turn off journal mode
@@ -61817,11 +62809,11 @@ cancel redirect
 let contents = { spawn:"cat redirect_journal.txt" }
 list contents
              VARIABLE : { SPAWN:"cat redirect_journal.txt" }
-             SUBSET   : 47 points (X)
+             SUBSET   : 45 points (X)
  1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! FERRET v7 (beta/dbg)"                                                    
- 3    /  3:" ! Linux 2.6.32-642.1.1.el6.x86_64 64-bit - 06/17/16"                       
- 4    /  4:" ! 17-Jun-16 15:04     "                                                    
+ 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     "                                                    
  5    /  5:""                                                                           
  6    /  6:"! "                                                                         
  7    /  7:"!! --- 22. produce some output to stdout and stderr"                        
@@ -61855,16 +62847,14 @@ list contents
  35   / 35:"! normal    Y"                                                              
  36   / 36:"! normal    Z"                                                              
  37   / 37:"! normal    T"                                                              
- 38   / 38:"! normal    E"                                                              
- 39   / 39:"! normal    F"                                                              
- 40   / 40:"!go /help"                                                                  
- 41   / 41:"! Use the GO command to name a file of FERRET commands to be executed."     
- 42   / 42:"!     e.g.   yes? GO filename"                                              
+ 38   / 38:"!go /help"                                                                  
+ 39   / 39:"! Use the GO command to name a file of FERRET commands to be executed."     
+ 40   / 40:"!     e.g.   yes? GO filename"                                              
+ 41   / 41:"! "                                                                         
+ 42   / 42:"! Use "GO/HELP filename" to read documentation in  the file to be executed."
  43   / 43:"! "                                                                         
- 44   / 44:"! Use "GO/HELP filename" to read documentation in  the file to be executed."
- 45   / 45:"! "                                                                         
- 46   / 46:"!! --- 26. turn off journal mode"                                           
- 47   / 47:"!set mode journal:ferret.jnl"                                               
+ 44   / 44:"!! --- 26. turn off journal mode"                                           
+ 45   / 45:"!set mode journal:ferret.jnl"                                               
 cancel var contents
  
 ! --- clean-up: get rid of mygrid
@@ -62277,6 +63267,7 @@ LAB4 = "CALENDAR: NOLEAP"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err664_xml_keep_case
 ! err664_xml_keep_case.jnl
 !
@@ -62472,6 +63463,7 @@ REPEAT/RANGE=1:`nd`/name=m (DEFINE SYMBOL m = `m`; SH AXIS/XML `axis_names[i=($m
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err664_xml_one_point_axis
 ! err664_xml_one_point_axis.jnl
 ! See LAS ticket 969.
@@ -62483,8 +63475,8 @@ USE a_cartesian_bug1179.nc
 SH DAT
      currently SET data sets:
     1> ./a_cartesian_bug1179.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
+ name     title                             I         J         K         L
+ TEMP     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1
  
  
 LET/D=1 a = temp
@@ -62499,6 +63491,9 @@ SH VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GHU1">
 <axes>
 <xaxis>GRID_X_T</xaxis>
@@ -62524,6 +63519,9 @@ SH VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GHU1">
 <axes>
 <xaxis>GRID_X_T</xaxis>
@@ -62537,6 +63535,7 @@ SH VAR/XML
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err65_read_epic_cdf
 ! Ned Cokelet reports that the time coordinate is read incorrectly
 ! from this file.  Should translate to  04-MAY-2007 05:02
@@ -62575,6 +63574,7 @@ list ..dimnames
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err664_tax_fcns
 ! err664_tax_fcns.jnl
 ! Fixes for tickets 1766 and 1765
@@ -62772,6 +63772,7 @@ LIST/X=165W:135W/Y=-50/L=1 STRLEN(var)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err665_sum_4d_labels
 ! A multi-dimensioned sum is now done as a 4D transformation.
 ! the labels on a LISTing of the result contained ???
@@ -62788,6 +63789,7 @@ list sst[X=125E,Y=75S:75N at sum,l=1:12 at sum]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err665_din
 ! err665_din
 ! Fixing incorrect latitude corrections for single-point y axis,
@@ -62857,6 +63859,7 @@ list p[x=279:380 at din,z=0:10 at din]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err665_centered_lev
 ! err665_centered_lev
 ! Bug 1803; computation of new levels isnt requested for
@@ -62897,6 +63900,7 @@ LEV_DEL = "5"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err665_hours_since_T
 ! err665_hours_since_T.jnl
 ! Ticket 1806: allow time-axis units string to
@@ -62915,6 +63919,7 @@ T0 = 15-JAN-1901 12:00:00
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_att_too_long
 ! err667_att_too_long.jnl
 ! 3/25/2011 ACM
@@ -62965,6 +63970,7 @@ save/file=aa.nc/clobber sfco2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_mode_desperate
 ! err667_mode_desperate
 ! 3/25/2011 ACM
@@ -62976,22 +63982,22 @@ set mode ignore
  
 ! setting too large
 set mode desperate `9999999999`
- !-> set mode desperate   9999999999.000000
+ !-> set mode desperate 9999999999.
 show mode desperate
       MODE            STATE        ARGUMENT
-      DESPERATE     CANCELLED      2560000
+      DESPERATE     CANCELED       2560000
  
 ! another setting too large (previously value
 ! was set to the first 10 digits of this)
 set mode desperate 1234567890123456789
 show mode desperate
       MODE            STATE        ARGUMENT
-      DESPERATE     CANCELLED      2560000
+      DESPERATE     CANCELED       2560000
  
 ! Previously couldnt handle a floating point
 ! input. Now we can.
 set mode desperate `96 * 1024 * 1024`
- !-> set mode desperate   100663296.0000000
+ !-> set mode desperate 100663296.
 show mode desperate
       MODE            STATE        ARGUMENT
       DESPERATE        SET           100663296
@@ -63001,6 +64007,7 @@ cancel mode desperate
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_dup_axnames
 ! err667_dup_axnames.jnl
 ! See bug 1750
@@ -63031,6 +64038,7 @@ save/clob/file="justg.nc" g[d=1]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_string_if
 ! err667_string_if.jnl
 ! Previously both of these LIST commands caused a crash.
@@ -63056,6 +64064,7 @@ list IF strings EQ "a" THEN "" ELSE strings
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_show_var_twice
  ! err667_show_var_twice.jnl
  ! ticket 1825
@@ -63077,11 +64086,13 @@ sh var airt2[d=1]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_5d_netcdf
 exit/script  ! this test is not valid for 6D Ferret.
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_save_append_open
 ! err67_save_append_open.jnl
 ! ticket 1832
@@ -63104,8 +64115,8 @@ save/append/file=a.nc temp_mm
 sh dat
      currently SET data sets:
     1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25
  
 can dat/all
  
@@ -63115,9 +64126,9 @@ use a.nc
 sh dat
      currently SET data sets:
     1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
- TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25
+ TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25
  
  
 *** Running ferret script: bn_NaN_note.jnl
@@ -63134,6 +64145,7 @@ USE test0
 ! Now we get the NOTE
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 SET MODE diag
 USE test0
 CANCEL MODE diag
@@ -63144,6 +64156,7 @@ CANCEL MODE diag
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_tax_modtime
 ! err67_tax_modtime.jnl
 ! 5/17/2011
@@ -63214,6 +64227,7 @@ list tax_units(tvar)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_save_append_open
 ! err67_save_append_open.jnl
 ! ticket 1832
@@ -63236,8 +64250,8 @@ save/append/file=a.nc temp_mm
 sh dat
      currently SET data sets:
     1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25
  
 can dat/all
  
@@ -63247,13 +64261,14 @@ use a.nc
 sh dat
      currently SET data sets:
     1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
- TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25
+ TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_regridding_dyn
 ! err67_regridding_dyn.jnl
 !  6/2011
@@ -63361,6 +64376,7 @@ list/x=330/y=40:90 filled[d=3,gxy=filled[d=2]]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_reverse_bounds
 ! err67_reverse_bounds.jnl
 !
@@ -63403,6 +64419,7 @@ list lev_var, zboxlo[gz=lev_var], zboxhi[gz=lev_var]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_nrst_trans
 ! err67_nrst_trans.jnl
 !
@@ -63433,6 +64450,7 @@ list var
 !
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_stray_line
 ! err672_stray_line.jnl
 ! bug 1545, present in older versions of Ferret too.
@@ -63453,6 +64471,7 @@ plot/over/vs/nolab/line/sym {148.83, 148.17}, {-29.96, -29.68}
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_tax_functions_prec
 ! See ticket 1642: arg 1 of TAX_* functions
 ! is a single-precision variale representing double-precision coords.
@@ -63750,6 +64769,7 @@ can mode ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_subscr_precision
 ! err672_subscr_precision.jnl
 ! See ticket 1888.
@@ -63777,6 +64797,7 @@ list/t="02-JUN-2010:13:34:40":"02-JUN-2010:13:34:50" tt
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_vert_axislabel
 ! err672_vert_axislabel.jnl
 ! bug 1896
@@ -63807,6 +64828,7 @@ SET MODE/LAST shrink_ylab
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_axis_label_prec
 ! See ticket 1907
 ! Axis label format didnt give enough precision for accurate labels
@@ -63840,6 +64862,7 @@ plot v
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_long_show_axis
 ! See ticket 1905 - axes with very large number of points overflowed
 ! the format in SHOW AXIS commands
@@ -63855,6 +64878,7 @@ can axis huge
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_axis_order
 ! err672_axis_order
 ! See comment 5 under ticket 1774.
@@ -63866,20 +64890,20 @@ use err67_axis_order_copy.nc
 sh dat
      currently SET data sets:
     1> ./err67_axis_order.nc
- name     title                             I         J         K         L         M         N
- UCOV     UCOV                             1:6       1:9       1:3       1:1       ...       ...
- CONTROLE CONTROLE                         1:6       ...       ...       ...       ...       ...
- NIVSIGS  NIVSIGS                          ...       ...       1:3       ...       ...       ...
- NIVSIG   NIVSIG                           1:6       ...       ...       ...       ...       ...
- AP       AP                               1:6       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ UCOV     UCOV                             1:6       1:9       1:3       1:1
+ CONTROLE CONTROLE                         1:6       ...       ...       ...
+ NIVSIGS  NIVSIGS                          ...       ...       1:3       ...
+ NIVSIG   NIVSIG                           1:6       ...       ...       ...
+ AP       AP                               1:6       ...       ...       ...
  
     2> ./err67_axis_order_copy.nc  (default)
- name     title                             I         J         K         L         M         N
- UCOV     UCOV                             1:6       1:9       1:3       1:1       ...       ...
- CONTROLE CONTROLE                         1:6       ...       ...       ...       ...       ...
- NIVSIGS  NIVSIGS                          ...       ...       1:3       ...       ...       ...
- NIVSIG   NIVSIG                           1:6       ...       ...       ...       ...       ...
- AP       AP                               1:6       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ UCOV     UCOV                             1:6       1:9       1:3       1:1
+ CONTROLE CONTROLE                         1:6       ...       ...       ...
+ NIVSIGS  NIVSIGS                          ...       ...       1:3       ...
+ NIVSIG   NIVSIG                           1:6       ...       ...       ...
+ AP       AP                               1:6       ...       ...       ...
  
  
 ! Listings should be identical with the bug they are reversed.
@@ -63923,6 +64947,7 @@ list/k=3/i=1 ucov[d=2]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_runoff_page
 ! err672_runoff_page
 ! acm 5/3/2012
@@ -63943,6 +64968,7 @@ SET MODE/LAST shrink_ylab
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_samplexy_modulo
 ! err672_samplexy_modulo.jnl
 ! See ticket 1950: samplexy doesnt correctly do modulo operations.
@@ -64001,6 +65027,7 @@ list samplexyt(sst,{160,180,-20},{0,0,0},{`t1`,`t1`,`t1`})
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_varnames
 ! err672_varnames.jnl
 ! ticket 1938
@@ -64031,6 +65058,7 @@ CAN MODE IGNORE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_dset_cx
 ! err672_dset_cx.jnl
 ! Ticket 1951: The dataset specified in list x[gx=a[d=1,i=1:3]] is not applied.
@@ -64040,12 +65068,10 @@ let a = x[gx=0:2:1]; save/clob/file=a1.nc a
 sho grid/x a
     GRID (G008)
  name       axis              # pts   start                end                 subset
- (AX007)   X                    3 r   0                    2                   2 pts
+ (AX007)   X                    3 r   0                    2                   3 pts
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  0                     1          -0.5
@@ -64056,12 +65082,10 @@ let a = x[gx=1:3:1]; save/clob/file=a2.nc a
 sho grid/x a
     GRID (G008)
  name       axis              # pts   start                end                 subset
- (AX002)   X                    3 r   1                    3                   2 pts
+ (AX002)   X                    3 r   1                    3                   3 pts
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -64281,40 +65305,40 @@ can mode ver
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.683
-randu2_randn2       0.222
-randu2_randn2       0.353
-randu2_randn2       0.343
-randu2_randn2       0.801
+randu2_randn2       0.984
+randu2_randn2       0.760
+randu2_randn2       0.059
+randu2_randn2       0.800
+randu2_randn2       0.018
              VARIABLE : RANDU2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.495
-randu2_randn2       0.861
-randu2_randn2       0.378
-randu2_randn2       0.055
-randu2_randn2       0.942
+randu2_randn2       0.095
+randu2_randn2       0.166
+randu2_randn2       0.374
+randu2_randn2       0.197
+randu2_randn2       0.116
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.084
-randu2_randn2       0.827
-randu2_randn2       0.542
-randu2_randn2       0.220
-randu2_randn2       0.666
-randu2_randn2       0.185
+randu2_randn2       0.430
+randu2_randn2       0.122
+randu2_randn2       0.969
+randu2_randn2       0.258
+randu2_randn2       0.197
+randu2_randn2       0.467
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.269
-randu2_randn2       0.984
-randu2_randn2       0.421
-randu2_randn2       0.136
-randu2_randn2       0.206
-randu2_randn2       0.407
+randu2_randn2       0.404
+randu2_randn2       0.358
+randu2_randn2       0.446
+randu2_randn2       0.532
+randu2_randn2       0.141
+randu2_randn2       0.323
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -64339,40 +65363,40 @@ randu2_randn2       0.638
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2      -0.614
-randu2_randn2       1.569
-randu2_randn2      -0.755
-randu2_randn2       0.211
-randu2_randn2       0.498
+randu2_randn2      -1.441
+randu2_randn2      -0.355
+randu2_randn2      -0.879
+randu2_randn2       0.105
+randu2_randn2       1.220
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.861
-randu2_randn2       0.993
-randu2_randn2       1.219
-randu2_randn2       0.023
-randu2_randn2       0.386
+randu2_randn2       0.813
+randu2_randn2      -0.893
+randu2_randn2       0.103
+randu2_randn2      -0.424
+randu2_randn2      -0.914
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2      -0.499
-randu2_randn2       0.675
-randu2_randn2       1.434
-randu2_randn2       1.342
-randu2_randn2       0.211
-randu2_randn2      -0.779
+randu2_randn2       1.442
+randu2_randn2      -0.797
+randu2_randn2      -1.054
+randu2_randn2      -0.922
+randu2_randn2      -0.741
+randu2_randn2       0.201
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2      -1.513
-randu2_randn2      -1.701
-randu2_randn2       1.080
-randu2_randn2       0.144
-randu2_randn2      -0.043
-randu2_randn2       0.280
+randu2_randn2       1.390
+randu2_randn2       0.539
+randu2_randn2       0.251
+randu2_randn2       1.731
+randu2_randn2      -1.350
+randu2_randn2       2.628
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -64397,14 +65421,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.930       1.930       0.351
-randu2_randn2       1.014       1.014       0.351
-randu2_randn2       0.328       0.351       0.328
-randu2_randn2       0.351       0.328       0.328
-randu2_randn2      -0.183      -0.183       0.328
-randu2_randn2      -0.736      -0.376       0.328
-randu2_randn2      -0.376      -0.376       0.328
-randu2_randn2       0.201       0.201       0.351
+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
 *** Running ferret script: bn_axis_cf.jnl
 ! Ticket 1792: Write axes with CF-compliant units
 ! and with standard name attributes for geophysical attrs.
@@ -64486,8 +65510,6 @@ show grid a
  normal    Y
  normal    Z
  TMIN      TIME                71 i   01-JAN-2001 00:00    01-JAN-2001 01:10   full
- normal    E
- normal    F
 show axis tmin
  name       axis              # pts   start                end
  TMIN      TIME                71 i   01-JAN-2001 00:00    01-JAN-2001 01:10
@@ -64519,8 +65541,6 @@ show grid a
  normal    Y
  normal    Z
  TMIN      T                   71 r   1                    71                  full
- normal    E
- normal    F
 show axis tmin
  name       axis              # pts   start                end
  TMIN      T                   71 r   1                    71
@@ -64796,8 +65816,6 @@ show grid spacetime
  YAXIS     Y                    1 r   1                    1                   full
  normal    Z
  TAXIS     T                  240 r   0                    59.75               full
- normal    E
- normal    F
  
 show func eofsvd_stat
 EOFSVD_STAT(A)
@@ -65418,8 +66436,6 @@ show grid spacetime
  YAXIS     Y                    2 r   1                    2                   full
  normal    Z
  TAXIS     T                  240 r   0                    23.9                full
- normal    E
- normal    F
  
 show func eofsvd_stat
 EOFSVD_STAT(A)
@@ -68357,7 +69373,7 @@ set mode calendar:years
 define axis/f=23-jan-1982:30-jan-1982:20/unit=hour fax20
 define axis/x=120e:60w:10/unit=degrees xax10
 define grid/like=temp/f=fax20 g5day
- getgrid 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 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
  
 set reg/x=130w:125w/y=0:1.5/e=1:2/f=23-JAN-1982:24-jan-1982/t=21-JAN-1982/z=5
@@ -68366,14 +69382,14 @@ use gtsa056_1_ef    	!kob 4/99
  
 stat temp[g=g5day] - temp[g=g5day at ave]
  dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
- getgrid 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:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    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
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
  strip regrid on F: TEMP --> G5DAY            @LIN
- reading TEMP     M:  1 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
- regrid  TEMP     M:  2 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
+ reading TEMP     M:  1 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:  2 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
  strip regrid on F: TEMP --> G5DAY            @AVE
- found   TEMP     M:  1 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
- regrid  TEMP     M:  3 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
+ found   TEMP     M:  1 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:  3 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
  
              TEMP[G=G5DAY] - TEMP[G=G5DAY at AVE]
              LONGITUDE: 130W to 125W
@@ -68393,15 +69409,15 @@ stat temp[g=g5day] - temp[g=g5day at ave]
  
 ! basic regrid tests
 LIST temp[g=g5day at ave]
- -DELETE EX#1     M:  4 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
+ -DELETE EX#1     M:  4 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAX20
- -DELETE TEMP     M:  2 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
- -DELETE TEMP     M:  3 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    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
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
+ -DELETE TEMP     M:  2 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
+ -DELETE TEMP     M:  3 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    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
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
  strip regrid on F: TEMP --> G5DAY            @AVE
- found   TEMP     M:  1 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
- regrid  TEMP     M:  3 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
+ found   TEMP     M:  1 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:  3 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on F at AVE
              FILENAME : gtsa056_1_ef.nc
@@ -68442,12 +69458,12 @@ LIST temp[g=g5day at ave]
  0.17S / 41:  43.35  43.26  43.17  43.14  43.27
 LIST temp[g=g5day]	
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAX20
- -DELETE TEMP     M:  3 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    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
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
+ -DELETE TEMP     M:  3 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    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
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
  strip regrid on F: TEMP --> G5DAY            @LIN
- found   TEMP     M:  1 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
- regrid  TEMP     M:  3 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
+ found   TEMP     M:  1 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:  3 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY
              FILENAME : gtsa056_1_ef.nc
@@ -68507,15 +69523,15 @@ use gtsa056_1_ef 		!kob 4/99
 set region/x=180E/y=0/f=23-JAN-1982/t=21-JAN-1982/z=5
 plot temp
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAX20
- -DELETE TEMP     M:  3 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    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
+ -DELETE TEMP     M:  3 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    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 GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
  strip --> EX#1[F=1982 at ITP,D=1]
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  8 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- reading TEMP     M:  3 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ eval    EX#1     C:  8 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ reading TEMP     M:  3 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
@@ -68524,14 +69540,14 @@ setting up plot
 PPL plot 1    complete
 plot/over temp[g=g5day]
  dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
- getgrid 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 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ eval    EX#1     C:  7 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @LIN
- found   TEMP     M:  3 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- regrid  TEMP     M:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ found   TEMP     M:  3 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:  7 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
@@ -68539,18 +69555,18 @@ setting up plot
 PPL plot 2    complete
 plot/over temp[g=g5day at ave]
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAX20
- -DELETE TEMP     M:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M:  8 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M:  9 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 10 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    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
+ -DELETE TEMP     M:  7 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:  8 dset:   1 I:   -999   -999  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:  9 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M: 10 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:   -999   -999  M:    1    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
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ eval    EX#1     C:  7 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @AVE
- found   TEMP     M:  3 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- regrid  TEMP     M: 10 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ found   TEMP     M:  3 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M: 10 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
@@ -68558,18 +69574,18 @@ setting up plot
 PPL plot 3    complete
 plot/over temp[g=g5day at asn]
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAX20
- -DELETE TEMP     M:  7 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
- -DELETE TEMP     M:  8 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M:  9 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 10 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    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
+ -DELETE TEMP     M:  7 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:   -999   -999  M:    1    2  N:    1    1
+ -DELETE TEMP     M:  8 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:  9 dset:   1 I:   -999   -999  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M: 10 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    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
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ eval    EX#1     C:  7 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @ASN
- found   TEMP     M:  3 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- regrid  TEMP     M: 10 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ found   TEMP     M:  3 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M: 10 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
@@ -68580,17 +69596,17 @@ PPL plot 4    complete
 set region/x=180/y=20s:20n/e=2/t=21-JAN-1982/z=5
 plot temp
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAX20
- -DELETE TEMP     M:  7 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
- -DELETE TEMP     M:  8 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M:  9 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 10 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    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
+ -DELETE TEMP     M:  7 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:   -999   -999  M:    1    2  N:    1    1
+ -DELETE TEMP     M:  8 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:  9 dset:   1 I:   -999   -999  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M: 10 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    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
  allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
  strip --> EX#1[F=1982 at ITP,D=1]
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
- reading TEMP     M: 10 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
+ eval    EX#1     C:  7 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
+ reading TEMP     M: 10 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
  doing --> TEMP[F=1982 at ITP,D=1]
@@ -68598,45 +69614,45 @@ setting up plot
 PPL plot 5    complete
 plot/over temp[g=g5day]
  dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
- getgrid 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 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ eval    EX#1     C:  6 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @LIN
- found   TEMP     M: 10 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
- regrid  TEMP     M: 11 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ found   TEMP     M: 10 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
+ regrid  TEMP     M: 11 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
 PPL plot 6    complete
 plot/over temp[g=g5day at ave]
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAX20
- -DELETE TEMP     M: 11 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- -DELETE TEMP     M: 12 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- -DELETE TEMP     M: 13 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  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
+ -DELETE TEMP     M: 11 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
+ -DELETE TEMP     M: 12 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
+ -DELETE TEMP     M: 13 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:   -999   -999  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
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ eval    EX#1     C:  6 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @AVE
- found   TEMP     M: 10 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
- regrid  TEMP     M: 13 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ found   TEMP     M: 10 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
+ regrid  TEMP     M: 13 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
 PPL plot 7    complete
 plot/over temp[g=g5day at asn]
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAX20
- -DELETE TEMP     M: 11 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
- -DELETE TEMP     M: 12 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- -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
+ -DELETE TEMP     M: 11 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:   -999   -999  M:    2    2  N:    1    1
+ -DELETE TEMP     M: 12 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
+ -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
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ eval    EX#1     C:  6 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @ASN
- found   TEMP     M: 10 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
- regrid  TEMP     M: 13 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ found   TEMP     M: 10 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
+ regrid  TEMP     M: 13 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
@@ -68662,11 +69678,11 @@ let a2 = _e[ge=e2pt]+_f[gf=f2pt]
  
 list a1[ge=eoffset at ave, gf=fax4day at ave]
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAX20
- -DELETE TEMP     M: 11 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
- -DELETE TEMP     M: 12 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- -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
+ -DELETE TEMP     M: 11 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:   -999   -999  M:    2    2  N:    1    1
+ -DELETE TEMP     M: 12 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
+ -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
@@ -68675,22 +69691,22 @@ list a1[ge=eoffset at ave, gf=fax4day at ave]
  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
- 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
+ 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
  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
+ 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
- pseudo  _E       M: 13 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
+ 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
- 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
+ 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
- -DELETE _E       M: 13 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
+ -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
- 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
+ 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
              VARIABLE : _E[GE=E1PT]+_F[GF=F1PT]
                         regrid: 1 delta on E at AVE, 96 hour on F at AVE
@@ -68715,19 +69731,19 @@ list a1[ge=eoffset at ave, gf=fax4day at ave]
  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
- -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
+ -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
- 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
+ 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
  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
+ 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
              VARIABLE : _E[GE=E1PT]+_F[GF=F1PT]
                         regrid: 1 delta on E at SUM, 96 hour on F at SUM
@@ -68752,19 +69768,19 @@ list a1[ge=eoffset at sum, gf=fax4day at sum]
  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
- -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
+ -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
- 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
+ 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
  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
+ 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
              VARIABLE : Variance of _E[GE=E1PT]+_F[GF=F1PT]
                         regrid: 1 delta on E at VAR, 96 hour on F at VAR
@@ -68790,9 +69806,9 @@ list a1[ge=eoffset at var, gf=fax4day at var]
  
 list a2[ge=eoffset at ave, gf=fax4day at ave]
  dealloc  dynamic grid (G003)          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
+ -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
@@ -68801,22 +69817,22 @@ list a2[ge=eoffset at ave, gf=fax4day at ave]
  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
- 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
+ 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
  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
+ 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
- pseudo  _E       M: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ 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
- 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
+ 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
- -DELETE _E       M: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ -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
- 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
+ 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
              VARIABLE : _E[GE=E2PT]+_F[GF=F2PT]
                         regrid: 1 delta on E at AVE, 96 hour on F at AVE
@@ -68841,19 +69857,19 @@ list a2[ge=eoffset at ave, gf=fax4day at ave]
  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
- -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
+ -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
- 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
+ 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
  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
+ 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
              VARIABLE : _E[GE=E2PT]+_F[GF=F2PT]
                         regrid: 1 delta on E at SUM, 96 hour on F at SUM
@@ -68878,19 +69894,19 @@ list a2[ge=eoffset at sum, gf=fax4day at sum]
  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
- -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
+ -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
- 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
+ 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
  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
+ 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
              VARIABLE : Variance of _E[GE=E2PT]+_F[GF=F2PT]
                         regrid: 1 delta on E at VAR, 96 hour on F at VAR
@@ -68918,31 +69934,31 @@ list a2[ge=eoffset at var, gf=fax4day at var]
  
 let a1 = _e[ge=e1pt]
  dealloc  dynamic grid (G004)          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
+ -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
- -DELETE A1       M: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1    1
+ -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
 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
+ getgrid 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
- 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
+ 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
- eval    A1       C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
+ 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
- pseudo  _E       M: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
+ 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
- regrid  A1       M: 13 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ 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
              VARIABLE : _E[GE=E1PT]
                         regrid: 1 delta on E at MAX
@@ -68950,25 +69966,25 @@ list a1[ge=eoffset at max]
  1.1 / 1:   ....
  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
+ -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
- -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
+ -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
- 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
+ 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
- eval    A2       C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ 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
- pseudo  _E       M: 13 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ 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
- regrid  A2       M: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ 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
              VARIABLE : _E[GE=E2PT]
                         regrid: 1 delta on E at MAX
@@ -68976,25 +69992,25 @@ list a2[ge=eoffset at max]
  1.1 / 1:  1.500
  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
+ -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
- -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
+ -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
- 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
+ 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
- eval    A4       C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
+ 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
- pseudo  _E       M: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
+ 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
- regrid  A4       M: 15 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  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
              VARIABLE : _E[GE=E4PT]
                         regrid: 1 delta on E at MAX
@@ -69002,18 +70018,18 @@ list a4[ge=eoffset at max]
  1.1 / 1:  1.500
  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
+ -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
- -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
+ -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
- 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
+ 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
- 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
+ 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
              VARIABLE : _E[GE=E4PT]
                         regrid: 1 delta on E at MIN
@@ -69022,16 +70038,16 @@ list a4[ge=eoffset at min]
  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
- -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
+ -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
- 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
+ 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
- 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
+ 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
              VARIABLE : _E[GE=E4PT]
                         regrid: 1 delta on E at SUM
@@ -69045,17 +70061,17 @@ 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
- -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
+ -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
- 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
+ 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
- pseudo  _F       M: 15 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
+ 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
              VARIABLE : _F[GF=EDAY]
              SUBSET   : 5 points (FORECAST)
@@ -69076,17 +70092,17 @@ show grid
  normal    E
  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
+ -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
- getgrid 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 EX#1     C:  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
- 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    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
- 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
+ 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
              VARIABLE : _F[GF=EDAY]
                         regrid: 24 hour on F at MAX
@@ -69134,25 +70150,26 @@ 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
+ 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
  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
+ 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]
- strip aggregate gathering SST on E axis:     1     4 dset:   5
- reading SST      M:  1 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering SST on E axis:     1     1 dset:   1
- -DELETE SST      M:  1 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:  1 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering SST on E axis:     2     2 dset:   3
- -DELETE SST      M:  1 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:  1 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering SST on E axis:     3     3 dset:   2
- -DELETE SST      M:  1 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:  1 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering SST on E axis:     4     4 dset:   4
- -DELETE SST      M:  1 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ strip aggregate gathering SST on E axis:        1        4 dset:   5
+ reading SST      M:  1 dset:   1 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering SST on E axis:        1        1 dset:   1
+ -DELETE SST      M:  1 dset:   1 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:  1 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering SST on E axis:        2        2 dset:   3
+ -DELETE SST      M:  1 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:  1 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering SST on E axis:        3        3 dset:   2
+ -DELETE SST      M:  1 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:  1 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering SST on E axis:        4        4 dset:   4
+ -DELETE SST      M:  1 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
  doing --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
+ final --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
              VARIABLE : SST_IN (Deg C)
              DATA SET : Ensemble series of 4 datasets patterned on ens1
              FILENAME : fourfiles
@@ -69167,23 +70184,27 @@ list/i=3 sst[T=@ave]
  4   / 4:  114.1  113.8  111.6  109.8  106.9  102.2   ....   ....   ....
  
 show memory/all  ! show memory-resident variables before canceling dataset
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 540 words
+    Current cache: 504 words
 all data in memory:
- SST[D=fourfiles]                  YE    mr:1  blk1:1  nblk:1
-    3  /106W           1  /12N          ...  / ...         ...  /01-JAN 00:45   1  /0.5          ...  / ...
-    3  /104W           9  /30N          ...  / ...         ...  /31-DEC 06:34   4  /4.5          ...  / ...
+ SST[D=fourfiles]                  YE    mr:1 size:72
+         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:2  blk1:2  nblk:1
-    3  /106W           1  /12N          ...  / ...           1  /01-JAN 00:45   1  /0.5          ...  / ...
-    3  /104W           9  /30N          ...  / ...          12  /31-DEC 06:34   4  /4.5          ...  / ...
+ SST[D=fourfiles]                  YTE   mr:2 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              ... / ...
  
 cancel data fourfiles
  dealloc  dynamic grid (G006)          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
+ -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
 show memory/all  ! show memory-resident variables after  canceling dataset
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 540 words
+    Current cache: 0 words
 all data in memory:
  
 ! 12/15 now do again adding COADS to de-align toe dset #s from the sequence #s
@@ -69199,8 +70220,8 @@ define data/agg/E/hide fourfiles = ens1, ens3, ens2, ens4
 show data
      currently SET data sets:
     1> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
     6> fourfiles  (default)  Ensemble aggregation
  name     title                             I         J         K         L         M         N
@@ -69223,12 +70244,12 @@ let/d=ens3 airt = sst + 1
 let/d=ens4 airt = sst + 1
  
 ENSEMBLE fourfiles = ens1, ens3, ens2, ens4
- getgrid AIRT     C:  5 dset:   4 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1     NORMAL    NORMAL
- getgrid AIRT     C:  5 dset:   3 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1     NORMAL    NORMAL
- getgrid AIRT     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 GOH1            COADSX116_COADSY52_6NORMAL    TIME1     NORMAL    NORMAL
+ getgrid AIRT     C:  5 dset:   4 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1
+ getgrid AIRT     C:  5 dset:   3 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1
+ getgrid AIRT     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 GOH1            COADSX116_COADSY52_6NORMAL    TIME1
 show data fourfiles
      currently SET data sets:
     6> fourfiles  (default)  Ensemble aggregation
@@ -69238,34 +70259,35 @@ 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
+ 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
  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
+ 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]
- strip aggregate gathering AIRT on E axis:     1     4 dset:   6
- reading AIRT     M:  2 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     1     1 dset:   2
- -DELETE AIRT     M:  2 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- eval    AIRT     C:  9 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:  2 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     2     2 dset:   4
- -DELETE AIRT     M:  4 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- eval    AIRT     C:  9 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:  4 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     3     3 dset:   3
- -DELETE AIRT     M:  5 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- eval    AIRT     C:  9 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:  5 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     4     4 dset:   5
- -DELETE AIRT     M:  6 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ strip aggregate gathering AIRT on E axis:        1        4 dset:   6
+ reading AIRT     M:  2 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering AIRT on E axis:        1        1 dset:   2
+ -DELETE AIRT     M:  2 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ eval    AIRT     C:  9 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:  2 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing aggregate gathering AIRT on E axis:        2        2 dset:   4
+ -DELETE AIRT     M:  4 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ eval    AIRT     C:  9 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:  4 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing aggregate gathering AIRT on E axis:        3        3 dset:   3
+ -DELETE AIRT     M:  5 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ eval    AIRT     C:  9 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:  5 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing aggregate gathering AIRT on E axis:        4        4 dset:   5
+ -DELETE AIRT     M:  6 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
  doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
+ final --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
              VARIABLE : AIR TEMPERATURE (DEG C)
              DATA SET : Ensemble series of 4 datasets patterned on ens1
              FILENAME : fourfiles
@@ -69281,10 +70303,10 @@ list/i=3 airt[T=@ave]
  
 ! create an ensemble where one member is missing
 ENSEMBLE fourfiles_gap = ens1, -, ens3, ens4
- getgrid AIRT     C:  5 dset:   4 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1     NORMAL    NORMAL
- getgrid AIRT     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 GOH1            COADSX116_COADSY52_6NORMAL    TIME1     NORMAL    NORMAL
+ getgrid AIRT     C:  5 dset:   4 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1
+ getgrid AIRT     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 GOH1            COADSX116_COADSY52_6NORMAL    TIME1
 show data/files fourfiles_gap
      currently SET data sets:
     7> fourfiles_gap  (default)  Ensemble aggregation
@@ -69292,37 +70314,38 @@ show data/files fourfiles_gap
  SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
  AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      1:4       ...
  
-          Aggregated datasets:
-      1: ./ens1.nc
-      2: (dummy)
-      3: ./ens3.nc
-      4: ./ens4.nc
+          Member datasets:
+      7.1: ./ens1.nc
+      7.2: (dummy)
+      7.3: ./ens3.nc
+      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
+ 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
  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
+ 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]
- strip aggregate gathering AIRT on E axis:     1     4 dset:   7
- reading AIRT     M:  3 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     1     1 dset:   2
- -DELETE AIRT     M:  3 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- dummy AIRT     M:  3 dset: 401 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     2     2 dset: 401
- -DELETE AIRT     M:  3 dset: 401 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- eval    AIRT     C:  9 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- found   SST      M:  2 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     3     3 dset:   4
- -DELETE AIRT     M:  8 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- eval    AIRT     C:  9 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- found   SST      M:  5 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     4     4 dset:   5
- -DELETE AIRT     M:  3 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ strip aggregate gathering AIRT on E axis:        1        4 dset:   7
+ reading AIRT     M:  3 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering AIRT on E axis:        1        1 dset:   2
+ -DELETE AIRT     M:  3 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ dummy AIRT     M:  3 dset:5001 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering AIRT on E axis:        2        2 dset:5001
+ -DELETE AIRT     M:  3 dset:5001 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ eval    AIRT     C:  9 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ found   SST      M:  2 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing aggregate gathering AIRT on E axis:        3        3 dset:   4
+ -DELETE AIRT     M:  8 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ eval    AIRT     C:  9 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ found   SST      M:  5 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing aggregate gathering AIRT on E axis:        4        4 dset:   5
+ -DELETE AIRT     M:  3 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
  doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=7]
+ final --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=7]
              VARIABLE : AIR TEMPERATURE (DEG C)
              DATA SET : Ensemble series of 4 datasets patterned on ens1
              FILENAME : fourfiles_gap
@@ -69378,15 +70401,15 @@ let/d=2/units="`vin,return=units`"/title="`vin,return=title`" \
 show data
      currently SET data sets:
     1> ./coads_uw.nc
- name     title                             I         J         K         L         M         N
- UWND     ZONAL WIND                       1:30      1:30      ...       1:12      ...       ...
- VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      ...       ...
- SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12
+ VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12
+ SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12
  
     2> ./navy_uw.nc  (default)
- name     title                             I         J         K         L         M         N
- UIN      ZONAL WIND                       1:30      1:30      ...       1:30      ...       ...
- VIN      MERIDIONAL WIND                  1:30      1:30      ...       1:30      ...       ...
+ name     title                             I         J         K         L
+ UIN      ZONAL WIND                       1:30      1:30      ...       1:30
+ VIN      MERIDIONAL WIND                  1:30      1:30      ...       1:30
  ------------------------------
  VWND[D=navy_uw] = VIN[D=2,GXY=VWND[D=1],GT=VWND[D=1]@MOD]
  UWND[D=navy_uw] = UIN[D=2,GXY=UWND[D=1],GT=UWND[D=1]@MOD]
@@ -69480,13 +70503,13 @@ show command define
  DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+         /EDGES/CALENDAR/BOUNDS/QUIET/MONTHLY/LIKE
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
  DEFINE ALIAS
  DEFINE SYMBOL
  DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE/U
  DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
 show command show
  SHOW/ALL
@@ -69496,12 +70519,12 @@ show command show
  SHOW EXPRSION/ALL
  SHOW LIST/ALL
  SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
-       /HIDDEN
+       /HIDDEN/MEMBERS
  SHOW MODE/ALL
  SHOW MOVIE/ALL
  SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
  SHOW COMMANDS/ALL/BRIEF
- SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+ SHOW MEMORY/ALL/DIAGNOST/TEMPORY/PERMANT/FREE
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
  SHOW VIEWPORT/ALL
  SHOW TRANFORM/ALL
@@ -69594,20 +70617,20 @@ show data/brief/files
      currently SET data sets:
     1> ./coads_climatology.cdf
     6> fourfiles     Ensemble aggregation
-          Aggregated datasets:
-      1: ./ens1.nc
-      2: ./ens2.nc
-      3: ./ens3.nc
-      4: ./ens4.nc
+          Member datasets:
+      6.1: ./ens1.nc
+      6.2: ./ens2.nc
+      6.3: ./ens3.nc
+      6.4: ./ens4.nc
     7> some     Ensemble aggregation
-          Aggregated datasets:
-      1: ./ens1.nc
-      2: ./ens2.nc
+          Member datasets:
+      7.1: ./ens1.nc
+      7.2: ./ens2.nc
     8> more  (default)  Ensemble aggregation
-          Aggregated datasets:
-      1: ./ens2.nc
-      2: ./ens3.nc
-      3: ./ens4.nc
+          Member datasets:
+      8.1: ./ens2.nc
+      8.2: ./ens3.nc
+      8.3: ./ens4.nc
  
 ! Cancel a member of all the ensembles.  All the ensembles get deleted.
 cancel data ens2
@@ -69628,15 +70651,15 @@ set mode 6d_lab  ! this is the default setting
 show data
      currently SET data sets:
     1> ./gt4d011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
+ SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
+ U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
+ V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
+ W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
+ TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
+ TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
+ PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  
 cancel mode 6d_lab
 show data
@@ -69663,8 +70686,6 @@ show grid temp
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
- normal    E
- normal    F
 cancel mode 6d_lab
 show grid temp
     GRID PS3DT2
@@ -69716,14 +70737,15 @@ stat temp
 set mode diag
 set mode 6d_lab
 list/L=1:8 taux[x=@ave,y=@ave]
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     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 PS2DU2          PSXU      PSYU      NORMAL    TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME1
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1  160  J:    1  100  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1    160  J:    1  100  K: -999 -999  L:      1      8
  strip --> TAUX[Y=28.8S:51.4N at AV4,D=1]
- reading TAUX     M:  2 dset:   1 I:   91  108  J:   35   55  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
+ reading TAUX     M:  2 dset:   1 I:     91    108  J:   35   55  K: -999 -999  L:      1      8
  doing --> TAUX[Y=3.5S:3.5N at AV4,D=1]
+ final --> TAUX[Y=3.5S:3.5N at AV4,D=1]
              VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
              FILENAME : gt4d011.cdf
              SUBSET   : 8 points (TIME)
@@ -69740,12 +70762,12 @@ list/L=1:8 taux[x=@ave,y=@ave]
 cancel mode 6d_lab
 list/L=1:8 taux[x=@sum,y=@sum]
  dealloc  dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME1
- getgrid EX#1     C:  5 dset:   1 I:    1    1  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 PS2DU2          PSXU      PSYU      NORMAL    TIME1
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1  160  J:    1  100  K: -999 -999  L:    1    8
+ eval    EX#1     C:  5 dset:   1 I:      1    160  J:    1  100  K: -999 -999  L:      1      8
  strip --> TAUX[Y=28.8S:51.4N at SM4,D=1]
- found   TAUX     M:  2 dset:   1 I:   91  108  J:   35   55  K: -999 -999  L:    1    8
+ found   TAUX     M:  2 dset:   1 I:     91    108  J:   35   55  K: -999 -999  L:      1      8
  doing --> TAUX[Y=3.5S:3.5N at SM4,D=1]
              VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
              FILENAME : gt4d011.cdf
@@ -69771,6 +70793,7 @@ set mode 6d_lab
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err681_dims_direction
 ! err681_dims_direction.jnl
 ! ticket 1955: Code still existed that determined axis direction
@@ -69798,10 +70821,10 @@ use dims_not_coord
 sh dat
      currently SET data sets:
     1> ./dims_not_coord.nc  (default)
- name     title                             I         J         K         L         M         N
- U        zonal current                    1:4       1:7       1:1       ...       ...       ...
- LON_C    uv longitude                     1:4       1:7       ...       ...       ...       ...
- LAT_C    uv latitude                      1:4       1:7       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ U        zonal current                    1:4       1:7       1:1       ...
+ LON_C    uv longitude                     1:4       1:7       ...       ...
+ LAT_C    uv latitude                      1:4       1:7       ...       ...
  
 sho grid lon_c
     GRID GOS2
@@ -69810,8 +70833,6 @@ sho grid lon_c
  TAU1      Y                    7 r   1                    7                   full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 *** Running ferret script: bn683_bug_fixes.jnl
 ! bn683_bug_fixes.jnl
@@ -69820,6 +70841,7 @@ sho grid lon_c
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_shrink_axlab
 ! err682_shrink_axlab.jnl
 ! See ticket 1958. Scripts may want the axis labels to
@@ -69847,6 +70869,7 @@ set mode/last shrink_ylab
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_xact_high_prec
 ! err682_xact_high_prec.jnl
 ! based on an example from the Users List,
@@ -69854,6 +70877,8 @@ GO err682_xact_high_prec
  
 ! shows that the @XACT regridding in double-precision Ferret is broken.
  
+! 3/17 *sh* - broke after change to RESHAPE in GCF_IMPOSE_AXES
+!           - fixed it by cleaning up the definition of var_regrid
  
 Let time = {\
  22585.3295833333,\
@@ -69870,11 +70895,14 @@ Let time = {\
 Define Axis /T /From /T0=1-JAN-1950 /Units=days my_axis = time
  
 Let fake_var = T[GT=my_axis]
-Let var = RANDU( fake_var )
-Let var_regrid = RESHAPE( var, fake_var )
+! this was the definition prior to 3/17
+!Let var = RANDU( fake_var )
+!Let var_regrid = RESHAPE( var, fake_var )
+Let var_regrid = RANDU( fake_var )   ! new definition
+ 
  
 List /T="2-nov-2011 07:54":"2-nov-2011 08:04" var_regrid
-             VARIABLE : RESHAPE( VAR, FAKE_VAR )
+             VARIABLE : RANDU( FAKE_VAR )
              SUBSET   : 10 points (TIME)
  02-NOV-2011 07:54:36 /  1:  0.6251
  02-NOV-2011 07:55:36 /  2:  0.2209
@@ -69932,6 +70960,7 @@ List /T="2-nov-2011 07:54:30":"2-nov-2011 07:54:50" var_sec
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_if_yes_exit
 ! err682_if_yes_exit.jnl
 ! Ticket 1965
@@ -69948,6 +70977,7 @@ if `test` then exit
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_use_no_quotes
 ! err682_use_no_quotes.jnl
 ! See ticket 1974 - on 64-bit machines, this statement causes a crash.
@@ -69961,6 +70991,7 @@ CANCEL MODE ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_axis_no_clue
 ! err682_axis_no_clue.jnl
 ! See ticket 1975. The axis sax is intended to be
@@ -69972,12 +71003,13 @@ use xsz.nc
 sh dat
      currently SET data sets:
     1> ./xsz.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:5       1:7       1:3       ...       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:5       1:7       1:3       ...
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_grid_merge
 ! err682_grid_merge.jnl
 ! Bug 1972. When merging contexts, the calendar time-axis
@@ -70024,6 +71056,7 @@ list b[T=1-JAN-1960:1-JAN-1961]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_scale_no_offset
 ! err682_scale_no_offset.jnl
 ! See ticket 1980 and the report on the Ferret list at
@@ -70059,6 +71092,7 @@ say `sst_rms[x=@nbd,y=@nbd]`  SHOULD BE 30
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_append_packed
 ! err682_append_packed.jnl
 ! See ticket 2004. Write packed variable with scale attributes
@@ -70131,7 +71165,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70189,7 +71223,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70237,7 +71271,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70285,7 +71319,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70325,7 +71359,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70366,7 +71400,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70436,7 +71470,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70489,7 +71523,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70553,7 +71587,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70597,7 +71631,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70641,7 +71675,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70685,7 +71719,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70726,7 +71760,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70917,8 +71951,8 @@ use coads_clim_4digit.des
 sh dat
      currently SET data sets:
     1> ./coads_clim_4digit.des  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:4       1:4       ...       1:6       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:4       1:4       ...       1:6
  
 list/x=180/y=0 sst
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
@@ -70957,7 +71991,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        FLOAT     units           CHAR        12   T       degrees_east
@@ -70998,7 +72032,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        FLOAT     units           CHAR        12   T       degrees_east
@@ -71049,7 +72083,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71097,7 +72131,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -71123,7 +72157,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -71149,7 +72183,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -71229,6 +72263,7 @@ can view
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_label_quotes
 ! err684_label_quotes.jnl
 ! See ticket 1298.
@@ -71256,6 +72291,7 @@ label 4.5 .5 0 0 .3 "'hello'"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_context_shape
 ! when limits are omitted with a compressing transformation the grave
 ! accent R=SHAPE erroneously includes the corresponding axis in the shape
@@ -71286,6 +72322,7 @@ XY
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_tax_fcns
 !err684_tax_fcns.jnl
 ! See ticket 2043, bug in workaround for single-precision arguments
@@ -71374,6 +72411,7 @@ GO err684_tax_fcns
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_save_subset
 ! err684_bug_save_subset
 ! see ticke 2064, precision in internal comparison of coordinate data
@@ -71386,6 +72424,7 @@ save/clobber/file=aa.nc/i=5:15 sh
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_save_subset
 ! err684_bug_save_subset
 ! see ticke 2064, precision in internal comparison of coordinate data
@@ -71398,6 +72437,7 @@ save/clobber/file=aa.nc/i=5:15 sh
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_line_plot_zero
 ! err684_line_plot_zero.jnl
 ! plot all-zero variable gave blank plot.
@@ -71411,6 +72451,7 @@ YAXIS_MAX = "1.00000000"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_delimited_precision
 ! err684_delimited_precision.jnl
 ! 5/2013 Fixing bug 2066
@@ -71445,10 +72486,10 @@ set data/ez/format=delim/del=" "/var="day,lon,lat,tim"/type="numeric,longitude,l
 list/prec=10 day, lon, lat, tim
              DATA SET: ./delim_prec.dat
              X: 0.5 to 4.5
- Column  1: DAY
- Column  2: LON is LON (degrees_east)(Longitude)
- Column  3: LAT is LAT (degrees_north)(Latitude)
- Column  4: TIM is TIM (hours)(Time of day)
+ Column  1: DAY is day
+ Column  2: LON is lon (degrees_east)(Longitude)
+ Column  3: LAT is lat (degrees_north)(Latitude)
+ Column  4: TIM is tim (hours)(Time of day)
                  DAY       LON          LAT            TIM
 1   / 1:  734654.0000  330.1234500  42.00001000  2.777777806E-04
 2   / 2:  734654.0104  330.1234600  42.00004000  2.777777861E-04
@@ -71458,6 +72499,7 @@ list/prec=10 day, lon, lat, tim
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err6842_context_shape
 ! err6842_context_shape.jnl
 ! 5/2013 acm
@@ -71510,6 +72552,7 @@ XYT
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_evnt_z
 ! err684_evnt_z.jnl
 ! see ticket 2054
@@ -71550,6 +72593,7 @@ list my_var, my_event
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_save_expression
 ! err684_save_expression.jnl
 ! Bug 2076. If we write out an expression that has not been defined
@@ -71579,13 +72623,13 @@ variables:
 		A:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
  TIME = 366, 1096.485, 1826.97 ;
 
- A = -0.0994369294620974, -0.0415768591396031, 0.141480238198142 ;
+ A = -0.0994369294620867, -0.0415768591395924, 0.141480238198152 ;
 }
  
 save/clob/file=aa.nc sst[x=@ave,y=@ave]-sst[x=@ave,y=@ave,t=@ave]
@@ -71608,13 +72652,13 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
  TIME = 366, 1096.485, 1826.97 ;
 
- E410 = -0.0994369294620974, -0.0415768591396031, 0.141480238198142 ;
+ E410 = -0.0994369294620867, -0.0415768591395924, 0.141480238198152 ;
 }
  
 ! Double check the missing-value matches what is written.
@@ -71659,7 +72703,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -71694,6 +72738,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_degC_axlab
 ! err684_degC_axlab.jnl
 ! ACM 6/2013
@@ -71713,6 +72758,7 @@ set mode/last logo
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_null_stringwrite
 ! err684_null_stringwrite.jnl
 ! 18-Jun-2013 ACM
@@ -71735,11 +72781,12 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_FillValue_xml
 ! err684_FillValue_xml.jnl
 ! ACM 6/2013
 !
-! See the dataset at http://ferret.pmel.noaa.gov/thredds/dodsC/woa09_1deg_monthly
+! See the dataset at http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/woa09_1deg_monthly
 ! where the "number of" variables have  _FillValues attributes = -2147483647
 ! This value was being written to the xml headers as a float, without enough precision.
 ! See las ticket #761, fixes in show_data_set_vars_xml.F
@@ -71760,7 +72807,7 @@ sh dat/var/xml
    <value><![CDATA[Number of O2 Utilization Observations]]></value>
 </attribute>
 <attribute name="_FillValue" type="float">
-   <value> -2147483647.</value>
+   <value>-2147483647.</value>
 </attribute>
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
@@ -71822,6 +72869,7 @@ sh dat/var/xml
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_axticlab
 ! err684_axticlab
 ! 7/10/2013 *acm
@@ -71845,6 +72893,7 @@ cancel mode meta
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_dotstart
 ! err684_dotstart.jnl
 ! 12-Jul-2013 ACM
@@ -71871,6 +72920,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_vfine_to_coarse
  ! err684_vfine_to_coarse
  ! see ticket 2070.
@@ -72000,6 +73050,7 @@ list v eq v_coarse[gf=v at ave]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_repeated_coordindates
 ! err685_repeated_coordindates.jnl
 !  The NOTE about repeated axis coordaintes reported the wrong index location.
@@ -72009,6 +73060,7 @@ use latestOb.nc
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_packed_output
 ! err684_packed_output.jnl
 ! See ticket 2089
@@ -72049,6 +73101,7 @@ list/i=1:3 sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_string_dim_name
 ! err685_string_dim_name.jnl
 ! Ticket 2091. If the string variable shares its dimension name,
@@ -72072,6 +73125,7 @@ list ..varnames
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_define_grid
 ! err684_define_grid.jnl
 ! 25-Oct-2013 ACM
@@ -72098,7 +73152,7 @@ use dsg.nc
 sh dat
      currently SET data sets:
     1> ./dsg.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  ROWSIZE  number of obs for this profile   ...       ...       ...       ...       1:3       ...
  PROFILE  profile ID: Cruise and Station   ...       ...       ...       ...       1:3       ...
  TIME     time                             ...       ...       ...       ...       1:3       ...
@@ -72106,8 +73160,8 @@ sh dat
  LONGITUDE
           station longitude                ...       ...       ...       ...       1:3       ...
  POT_TEMP_DEGC
-          pot_temp_degc                    1:34      ...       ...       ...       ...       ...
- SAL      sal                              1:34      ...       ...       ...       ...       ...
+          pot_temp_degc                    1:34      ...       ...       ...
+ SAL      sal                              1:34      ...       ...       ...
  
 sh att profile
      attributes for dataset: ./dsg.nc
@@ -72132,8 +73186,6 @@ sh grid sal
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! This file from the datset "West Coast Carbon cruises" in our
 ! example erdadp, has the cf_role attribute on a coordinate variable.
@@ -72145,15 +73197,15 @@ use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
 sh dat 2
      currently SET data sets:
     2> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  PROF     Prof                             ...       ...       ...       ...       1:21      ...
  TIME     Time                             ...       ...       ...       ...       1:21      ...
  LATITUDE Latitude                         ...       ...       ...       ...       1:21      ...
  LONGITUDE
           Longitude                        ...       ...       ...       ...       1:21      ...
  ROWSIZE  Number of Observations for this  ...       ...       ...       ...       1:21      ...
- PRESS_DB PRESS_DB                         1:373     ...       ...       ...       ...       ...
- PCO2     PCO2                             1:373     ...       ...       ...       ...       ...
+ PRESS_DB PRESS_DB                         1:373     ...       ...       ...
+ PCO2     PCO2                             1:373     ...       ...       ...
  
 sh att (profile)
      attributes for dataset: ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
@@ -72180,8 +73232,6 @@ sh grid pco2
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 *** Running ferret script: bn_nco_append.jnl
 ! bn_nco_append.jnl
 ! 5/2013 add a test appending files with ncks
@@ -72197,14 +73247,14 @@ use z2
 sh dat
      currently SET data sets:
     1> ./z1.nc
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  DDAT_ORIG
-          DDAT[GZ=ZAXIS_ORIG at ASN]          ...       ...       1:5       ...       ...       ...
+          DDAT[GZ=ZAXIS_ORIG at ASN]          ...       ...       1:5       ...
  
     2> ./z2.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  CYCLE_ORIG
-          CYCLE[GZ=ZAXIS_ORIG at ASN]         ...       ...       1:5       ...       ...       ...
+          CYCLE[GZ=ZAXIS_ORIG at ASN]         ...       ...       1:5       ...
  
  
 ! Write a file to be appended to and append variable in z1.nc to the file.
@@ -72231,8 +73281,8 @@ variables:
 		DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
 
 // global attributes:
-		:history = "Fri Jun 17 15:04:23 2016: ncks -h -A -h z1.nc append_to_this.nc\n",
-			"FERRET V7  17-Jun-16" ;
+		: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" ;
 		:Conventions = "CF-1.6" ;
 		:NCO = "4.4.6" ;
 }
@@ -72263,7 +73313,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72294,7 +73344,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72309,8 +73359,8 @@ use gappy_bounds.nc
 sh dat
      currently SET data sets:
     1> ./gappy_bounds.nc  (default)
- name     title                             I         J         K         L         M         N
- A        SST[X=150:180 at AVE,Y=-10:0 at AVE]   ...       ...       ...       1:6       ...       ...
+ name     title                             I         J         K         L
+ A        SST[X=150:180 at AVE,Y=-10:0 at AVE]   ...       ...       ...       1:6
  
  
 ! See the bounds attribute on the t axis
@@ -72357,7 +73407,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -72385,7 +73435,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -73696,6 +74746,7 @@ vtree=all tempz4
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_ribbon_by_val
 ! err685_ribbon_by_val.jnl
 ! 11/21/2013
@@ -73711,6 +74762,7 @@ plot/vs/line/thick/ribbon/MISS=black/PAL=ocean_temp xpts, ypts, fpts
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_ppl_palette
 ! err685_ppl_palette.jnl
 ! Further fix for ticket 2049. If the palette or pattern file
@@ -73740,6 +74792,7 @@ pattern solid
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_show_grid_e
 ! err685_show_grid_e.jnl
 ! See ticket 2122
@@ -73806,6 +74859,7 @@ sh grid /f gensy
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_lowercaseAxis
 ! err685_lowercaseAxis.jnl
 ! Ticket  2126
@@ -73816,9 +74870,9 @@ use lowercaseTime.nc
 sh dat
      currently SET data sets:
     1> ./lowercaseTime.nc  (default)
- name     title                             I         J         K         L         M         N
- AA                                        ...       ...       ...       1:15      ...       ...
- BB                                        ...       ...       ...       1:8       ...       ...
+ name     title                             I         J         K         L
+ AA                                        ...       ...       ...       1:15
+ BB                                        ...       ...       ...       1:8
  
 ! This axis has uppercase in the file
 set axis/t0=1-jan-2001/units=days uppercasetime
@@ -73836,8 +74890,6 @@ show grid bb
  normal    Y
  normal    Z
  UPPERCASETIME TIME             8 r   02-JAN-2001 00:00    09-JAN-2001 00:00   full
- normal    E
- normal    F
  
 ! This variable has axis time, lowercase in the file
 sh grid aa
@@ -73847,8 +74899,6 @@ sh grid aa
  normal    Y
  normal    Z
  TIME      T                   15 r   1                    15                  full
- normal    E
- normal    F
 set axis/t0=1-jan-2001/units=days time
  
 ! showed no output
@@ -73875,6 +74925,7 @@ list/L=1:5 aa
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_redefine_uvar_att
 ! err685_redefine_uvar_att.jnl
 ! ticket 2127 Redefine an attribute for a
@@ -73887,6 +74938,7 @@ define att/type=STRING  a.ival = 99
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_use_no_extension
 ! Ticket 2128: if no extension, we should try .cdf, .nc, .des
 !  but .des was not being tried.
@@ -73902,8 +74954,8 @@ use duplicate
 sh dat
      currently SET data sets:
     1> ./duplicate.nc  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:1       1:10      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:1       1:10      ...       1:3
  
  
 set mode ignore
@@ -73923,6 +74975,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_samplexy
 ! err685_samplexy.jnl
 ! Fix for ticket 2137. out-of-bounds error
@@ -73945,6 +74998,7 @@ list  samplexy(sst[x=290:310,y=0:20], lon, lat)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_shade_set
 ! err685_shade_set.jnl
 !
@@ -73992,6 +75046,7 @@ set mode/last logo
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_individual_levels
 ! err686_individual_levels.jnl
 ! Ticket 2142
@@ -74082,7 +75137,7 @@ variables:
 		LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74105,7 +75160,7 @@ variables:
 		STRVAR:long_name = "mystrings" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74133,6 +75188,7 @@ fill/lev=(20,30,10)/L=1 sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_long_list_varnames
 ! err686_long_list_varnames.jnl
 !
@@ -74202,7 +75258,7 @@ longvarnames.tsv
 ! Try to load a variable later than that in the list.
  
 list etopo2_depth
-             VARIABLE : ETOPO2_DEPTH
+             VARIABLE : etopo2_depth
              FILENAME : longvarnames.tsv
              SUBSET   : 10 points (X)
  1    /  1: -97.00
@@ -74220,6 +75276,7 @@ list etopo2_depth
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_faxis_label
 ! err686_faxis_label.jnl
 ! 3/11/2014 ACM
@@ -74253,6 +75310,7 @@ LAB2 = "FORECAST : 03-JAN-2000 00:00 JULIAN"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_dup_axnames
 ! err686_dup_axnames
 ! Ticket 1750
@@ -74273,12 +75331,12 @@ use a; use b
 sh dat
      currently SET data sets:
     1> ./a.nc
- name     title                             I         J         K         L         M         N
- A        X[GX=XAXIS_TEST]                 1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        X[GX=XAXIS_TEST]                 1:4       ...       ...       ...
  
     2> ./b.nc  (default)
- name     title                             I         J         K         L         M         N
- B        X[GX=XAXIS_TEST]                 1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ B        X[GX=XAXIS_TEST]                 1:4       ...       ...       ...
  
 sh grid a[d=1]
     GRID GSI1
@@ -74287,8 +75345,6 @@ sh grid a[d=1]
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 sh grid b[d=2]
     GRID GRR1
  name       axis              # pts   start                end                 subset
@@ -74296,8 +75352,6 @@ sh grid b[d=2]
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! Write b with its Ferret internal axis name XAXIS_TEST1
 save/clob/file=c.nc a[d=1],b
@@ -74325,7 +75379,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74355,7 +75409,7 @@ variables:
 		A:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74376,7 +75430,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74397,7 +75451,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74419,7 +75473,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74432,9 +75486,12 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_cancel_invalid_var
 ! err686_cancel_invalid_var
 ! ticket 2159
+! (Note that the shade of a one-cell or less region is
+!  allowed fully as of Ferret v7.1.  See ticket 2494)
  
 ! The cancel variable ran into an incorrect setting
 ! for variable-in-memory
@@ -74453,6 +75510,7 @@ shade/x=161.1:161.3/y=0.2:0.4/L=1 sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_redef_ascii_att
 ! err686_redef_ascii_att.jnl
 ! Bug 2161
@@ -74491,6 +75549,7 @@ sh att v1
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_sho_nonexist_att
 ! err686_sho_nonexist_att.jnl
 ! See ticket 2133
@@ -74506,6 +75565,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_set_var_name
 ! err686_set_var_name.jnl
 ! ticket 2152
@@ -74541,30 +75601,30 @@ set var/name=temp salt
 show dat
      currently SET data sets:
     1> ./gt4d011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
+ SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
+ U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
+ V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
+ W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
+ TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
+ TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
+ PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  
 ! This rename is ok
 set var/name=salinity salt
 show dat
      currently SET data sets:
     1> ./gt4d011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALINITY (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
+ SALINITY (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
+ U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
+ V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
+ W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
+ TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
+ TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
+ PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  
  
 ! Test LET/D variables:
@@ -74576,15 +75636,15 @@ set var/name=diff myvar
 show dat
      currently SET data sets:
     1> ./gt4d011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALINITY (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
+ SALINITY (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
+ U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
+ V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
+ W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
+ TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
+ TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
+ PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  ------------------------------
  DIFF[D=gt4d011] = TAUX - TAUY
  
@@ -74602,11 +75662,11 @@ use badbounds.nc
 show data
      currently SET data sets:
     1> ./badbounds.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  MONTH_IRREG_BNDS
-                                           1:2       ...       ...       1:12      ...       ...
+                                           1:2       ...       ...       1:12
        (invalid axis bounds)
- TEMP2    TEMP[GT=MONTH_IRREG at ASN]         1:1       1:1       1:1       1:12      ...       ...
+ TEMP2    TEMP[GT=MONTH_IRREG at ASN]         1:1       1:1       1:1       1:12
  
 *** Running ferret script: bn_enter_exit_GO.jnl
 ! GO bn_enter_exit_GO
@@ -74774,9 +75834,7 @@ sh grid a
  normal    X
  normal    Y
  normal    Z
- daysaxis  TIME                 5 r   01-MAY-2010 00:00    05-MAY-2010 00:00   full
- normal    E
- normal    F
+ DAYSAXIS  TIME                 5 r   01-MAY-2010 00:00    05-MAY-2010 00:00   full
  
 cancel data/all
  
@@ -74811,14 +75869,14 @@ X13AXIS
 ! Rename the axis
 set axis/name=x_in_meters x13axis
 say `a[d=1],return=xaxis`
- !-> MESSAGE/CONTINUE x_in_meters
-x_in_meters
+ !-> MESSAGE/CONTINUE X_IN_METERS
+X_IN_METERS
 say `b[d=2],return=xaxis`
- !-> MESSAGE/CONTINUE x_in_meters
-x_in_meters
+ !-> MESSAGE/CONTINUE X_IN_METERS
+X_IN_METERS
 say `c[d=3],return=xaxis`
- !-> MESSAGE/CONTINUE x_in_meters
-x_in_meters
+ !-> MESSAGE/CONTINUE X_IN_METERS
+X_IN_METERS
  
 ! For SHOW DAT/ATT we get info from the attribute structure.
 ! It has the udated name.
@@ -74828,7 +75886,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -74845,7 +75903,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -74862,7 +75920,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -74892,200 +75950,14 @@ set mode/last ignore
 ! 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
  
 ! See if the F-TDS is working and bail if not.
- 
-let status = TEST_OPENDAP("http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
+let status = TEST_OPENDAP("http://ferret.pmel.noaa.gov/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/nvods/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:1000 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:1000 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]
- >>> 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 myvar
-set view ur; shade/l=3 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_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
-             LONGITUDE: 60W to 50W
-             LATITUDE: 14.5N
-             TIME: 14-JUL 12:00
- Column  1: MYVAR is T0112MN1[K=1:5 at SUM]
- Column  2: AVE_Z is T0112MN1[Z=0:1000 at AVE]
-             MYVAR   AVE_Z
-59.5W / 301:  139.9  12.94
-58.5W / 302:  139.5  12.91
-57.5W / 303:  140.5  13.68
-56.5W / 304:  140.0  12.37
-55.5W / 305:  137.6  13.60
-54.5W / 306:  136.1  12.27
-53.5W / 307:  134.2  12.13
-52.5W / 308:  137.2  12.35
-51.5W / 309:   27.3  27.30
-50.5W / 310:  135.4  12.16
- 
-let/D=1/remote ave_t = t0112mn1[L=1:12 at ave]
-set view ll; shade/z=0 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]
-set view lr; shade/z=0 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_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/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_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
- name     title                             I         J         K         L         M         N
- T0112MN1 Temperature                      1:360     1:180     1:24      1:12      ...       ...
- 
-    2> http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl  (default)
- name     title                             I         J         K         L         M         N
- 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_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
- 
-! This is ok let/remote/D=
-let/D=1/remote myvar = t0112mn1[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 = t0112mn1[d=1,z=1:100 at ave]
- 
- 
-! But, require LET/D= with /REMOTE
-let/remote rvar = t0112mn1[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]
-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_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl  (default)
- name     title                             I         J         K         L         M         N
- T0112MN1 Temperature                      1:360     1:180     1:24      1:12      ...       ...
- ------------------------------
- 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]
- 
-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/nvods/thredds/dodsC/las/woa05_monthly/
-             SUBSET   : 7 points (DEPTH (m))
-             LONGITUDE: 60.5W
-             LATITUDE : 14.5N
-             TIME     : 01-JAN 12:00 to 30-DEC 06:00
-               60.5W 
-              300
- 0      / 1:  331.0
- 10     / 2:  330.6
- 20     / 3:  330.4
- 30     / 4:  329.6
- 50     / 5:  324.5
- 75     / 6:  313.6
- 100    / 7:  299.4
- 
-can dat/all; can var/all
- 
+ !-> if 1 then EXIT/SCRIPT
 *** Running ferret script: bn691_bug_fixes.jnl
 ! bn691_bug_fixes
 ! test various fixes that went into version 6.91
@@ -75093,6 +75965,7 @@ can dat/all; can var/all
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_arg_type_error
 ! err69_arg_type_error
 ! See ticket 2169
@@ -75155,6 +76028,7 @@ set mode /last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_bad_bounds
 ! err69_bad_bounds.jnl
 ! See ticket 2170
@@ -75227,6 +76101,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_const_array
 ! err69_const_array.jnl
 ! 5/8/2014  ACM
@@ -75262,6 +76137,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_multi_label_ascii
 ! err69_multi_label_ascii.jnl
 ! 5/2014  ACM
@@ -75295,6 +76171,7 @@ label .55 .2 0 0 .16 "@ASEscape_color_not_font<NL>@P2 at SRred_1<NL>@P3 at SRgreen_2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_ens_badvalue
 ! err69_ens_badvalue.jnl
 !
@@ -75330,6 +76207,7 @@ list/y=29.25  MAIZE_YIELD[d=1], MAIZE_YIELD[d=2], MAIZE_YIELD[d=3],  MAIZE_YIELD
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_ribbon_by_levels
 ! err69_ribbon_by_levels.jnl
 ! ACM 5/19/2014
@@ -75355,6 +76233,7 @@ RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels xpts,ypts,var
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_ribbon_histogram
 ! err69_ribbon_histogram.jnl
 ! ACM 5/24/2014
@@ -75382,6 +76261,7 @@ ribbon/vs/line/thick/lev=10h xpts,ypts,var
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_repl_scinot
 ! err69_repl_scinot.jnl
 ! ticket 2175
@@ -75409,6 +76289,7 @@ say (`a`)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err691_bnds_case
 ! err691_bnds_case
 ! 6/30/14
@@ -75423,6 +76304,7 @@ set mode/last upcase_output
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_plot_vs_labs
 ! err69_plot_vs_labs.jnl
 ! ticket 2187: the axis labels on the dependent axis
@@ -75460,6 +76342,7 @@ LABY = "A[X=150W:90W at AVE]"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_levels_v
 ! err69_levels_v.jnl
 ! Ferret ticket 2186, and LAS ticket 1598
@@ -75477,7 +76360,7 @@ shade/lev=v var2d
 sh sym *lev*
 LEV_TEXT = "V"
 LEV_MIN = "290"
-LEV_MAX = "114930.72"
+LEV_MAX = "open-ended"
 LEV_NUM = "45"
 LEV_DEL = "irregular"
 LEV_OPNLEVS = "(290,330,10)(332,402,2)(400,450,10)(inf)"
@@ -75485,6 +76368,7 @@ LEV_OPNLEVS = "(290,330,10)(332,402,2)(400,450,10)(inf)"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_letd_dsetnum
 ! err69_letd_dsetnum.jnl
 !  Ticket 2189. Previously the grave-accent expression didn't get
@@ -75496,14 +76380,15 @@ let/d=`sst,r=dsetnum` a = 1
 sh dat
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
  A[D=coads_climatology] = 1
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_long_string_to_xml
 ! err69_long_string_to_xml.jnl
 ! ticket 2190  8-8-2014
@@ -75522,6 +76407,7 @@ sp cat out.xml
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_fill_trans
 ! err69_fill_trans.jnl
 ! ticket 2196. Visible only if bounds-checking is turned on.
@@ -75570,6 +76456,7 @@ list myvar[x=6 at fav:18]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_load_big_grid
 ! err69_load_big_grid
 ! ticket 1758
@@ -75593,9 +76480,12 @@ sh grid bigvar
  YAXIS     Y                  180 r   1                    180                 full
  ZAXIS     Z                   20 r   1                    20                  full
  LONGTIME  TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
- normal    E
- normal    F
 load bigvar
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 25.6 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 1297828 (5.1%)
+    The size of the requested object was: : 2369088000 (9254%)
  
 ! also was an incorrect size.
 define axis/t=1-jan-2000:1-jan-2010:1/units=days  longtime
@@ -75606,14 +76496,18 @@ sh grid bigvar
  YAXIS     Y                  180 r   1                    180                 full
  ZAXIS     Z                   20 r   1                    20                  full
  LONGTIME  TIME              3654 r   01-JAN-2000 00:00    01-JAN-2010 00:00   full
- normal    E
- normal    F
 load bigvar
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 25.6 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 1299654 (5.1%)
+    The size of the requested object was: : 4735584000 (18498%)
  
 cancel mode ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_write_attribute
 ! err69_write_attribute.jnl
 ! Bug 1863
@@ -75626,8 +76520,6 @@ sh grid temp
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
- normal    E
- normal    F
 let a = temp[x=@ave,y=@ave,L=1]
  
 ! The attribute we ask not to write is not written for this variable
@@ -75754,6 +76646,7 @@ sp rm aa.nc bb.nc
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_isready_status_errmsgs
 ! err69_isready_status_errmsgs
 ! ticket 2197
@@ -75777,6 +76670,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_isready_status_errmsgs
 ! err69_isready_status_errmsgs
 ! ticket 2197
@@ -75800,6 +76694,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_countervar_context
 ! err69_countervar_context.jnl
 ! ACM 10/3/2014
@@ -75824,6 +76719,7 @@ can region
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_label_backspace
 ! err69_label_backspace
 ! Ticket 2203:  \\ before a character backspaces before
@@ -75835,6 +76731,7 @@ label .5 .5 0 0 1 "El Nin\\^@MA45 at SRo\!"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_isready_and_regridding
 ! err69_isready_and_regridding.jnl
 ! Ticket 2204: A `var,return=isready` sends Ferret into a hanged
@@ -75880,6 +76777,7 @@ ENDIF
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_vtree_and_uvar_regrid
 ! err69_vtree_and_uvar_regrid.jnl
 ! Ticket 2206: This lead to a crash.
@@ -75905,6 +76803,7 @@ c is ready and AVAILABLE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_vtree_cancel_axis
 ! err69_vtree_cancel_axis
 ! Ticket 2201: After a return=isready,
@@ -75932,6 +76831,7 @@ cancel axis xax2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_isready_bugs
 ! err69_isready_bugs.jnl
 ! Tickets 2201 and 2215
@@ -75983,6 +76883,7 @@ m
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err691_substring_arg
 ! err693_substring_arg
 ! ACM 12/10/2014
@@ -76071,7 +76972,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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 }
  
 set mode/last upcase
@@ -76164,7 +77065,7 @@ variables:
 		lon360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0FERRET V7  17-Jun-16" ;
+		:history = "CruiseDsgNcFile 1.0FERRET V7.1  18-Apr-17" ;
 		:featureType = "Trajectory" ;
 		:Conventions = "Some other conventionsCF-1.6" ;
 		:geospatial_lon_min = -92.77 ;
@@ -76191,7 +77092,7 @@ can dat/all; use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
  ..history = Subset of etopo20,
- FERRET V7  17-Jun-16 
+ FERRET V7.1  18-Apr-17 
  ..Conventions = Existing conventions note, , CF-1.6 
  
  
@@ -76221,7 +77122,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  17-Jun-16 
+ ..history = The history of the fileFERRET V7.1  18-Apr-17 
  ..Conventions = Conventions for variables named V2CF-1.6 
 *** Running ferret script: bn_center_key_labels.jnl
 ! bn_center_key_labels
@@ -76428,8 +77329,6 @@ sp cat a.txt
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! show var/outfile
  
@@ -76456,8 +77355,8 @@ sp cat a.txt
  TWO = 2
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
  
 ! combinations of /append and /clobber
@@ -76470,8 +77369,8 @@ SAY ---------------- Just show data, two show data/clobber commands in a row
 sp cat a.txt
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
  
 show grid/clobber/outfile=a.txt sst
@@ -76485,8 +77384,6 @@ sp cat a.txt
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 use coads_climatology
 use levitus_climatology
@@ -76498,8 +77395,8 @@ SAY ---------------- Just dataset 1
 sp cat a.txt
      currently SET data sets:
     1> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
  
 show data/append/outfile=a.txt levitus_climatology
@@ -76509,13 +77406,13 @@ SAY ---------------- appending datset 2 by name
 sp cat a.txt
      currently SET data sets:
     1> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
      currently SET data sets:
     2> ./levitus_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:160     1:90      1:1       ...       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:160     1:90      1:1       ...
  
 show grid/clobber/outfile=a.txt PS3*
  
@@ -77075,57 +77972,81 @@ list t[gt=taxis]
  
 *** Running ferret script: 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
-! the nominalabstract axis length.
- 
-! ticket 981
- 
-let files = {spawn:"ls *cdf*.jnl"}
+! the nominal abstract axis length.
+ 
+! 1/2017 *acm* change this script so the results are always consistent,
+! not depending on the contents of the directory which may change.
+ 
+! Make some files to operate on
+let a = x + 1
+save/clobber/i=1:5/file=bn_spawn_size1.cdf a
+save/clobber/i=1:5/file=bn_spawn_size2.cdf a
+save/clobber/i=1:5/file=bn_spawn_size3.cdf a
+save/clobber/i=1:5/file=bn_spawn_size4.cdf a
+save/clobber/i=1:5/file=bn_spawn_size5.cdf a
+ 
+list/clobber/i=1:7/file=bn_spawn_size02.dat a
+list/clobber/i=1:7/file=bn_spawn_size04.dat a
+list/clobber/i=1:7/file=bn_spawn_size06.dat a
+list/clobber/i=1:7/file=bn_spawn_size08.dat a
+list/clobber/i=1:7/file=bn_spawn_size10.dat a
+list/clobber/i=1:7/file=bn_spawn_size12.dat a
+list/clobber/i=1:7/file=bn_spawn_size14.dat a
+ 
+! Previously these return=isize results returned 2000
+ 
+let files = {spawn:"ls *bn_spawn_size*4.*"}
 list files
-             VARIABLE : {SPAWN:"ls *cdf*.jnl"}
-             SUBSET   : 8 points (X)
- 1   / 1:"bn_cdf_errmsg.jnl"      
- 2   / 2:"bn_cdf.jnl"             
- 3   / 3:"bn_cdf_keepax.jnl"      
- 4   / 4:"bn_netcdf4.jnl"         
- 5   / 5:"err490_cdf_childax.jnl" 
- 6   / 6:"err491_cdf_childax.jnl" 
- 7   / 7:"err65_read_epic_cdf.jnl"
- 8   / 8:"err667_5d_netcdf.jnl"   
+             VARIABLE : {SPAWN:"ls *bn_spawn_size*4.*"}
+             SUBSET   : 3 points (X)
+ 1   / 1:"bn_spawn_size04.dat"
+ 2   / 2:"bn_spawn_size14.dat"
+ 3   / 3:"bn_spawn_size4.cdf" 
 say `files,return=isize`
- !-> MESSAGE/CONTINUE 8
-8
+ !-> MESSAGE/CONTINUE 3
+3
  
 ! Evaluate size without loading the variable first
-let datfiles = {spawn:"ls *.dat"}
+let datfiles = {spawn:"ls bn_spawn_size1*.dat"}
 say `datfiles,return=isize`
- !-> MESSAGE/CONTINUE 37
-37
- 
-! expression syntax
-say `{spawn:"ls xml*.jnl"},return=isize`
  !-> MESSAGE/CONTINUE 3
 3
-list {spawn:"ls xml*.jnl"}
-             VARIABLE : {SPAWN:"ls xml*.jnl"}
-             SUBSET   : 3 points (X)
- 1   / 1:"xml_header_script.jnl"
- 2   / 2:"xml_use_coads.jnl"    
- 3   / 3:"xml_use_numstring.jnl"
  
-! Test variables based on output of a spawn.
+! expression syntax
+say `{spawn:"ls bn_spawn_size*.dat"},return=isize`
+ !-> MESSAGE/CONTINUE 7
+7
+list {spawn:"ls bn_spawn_size*.dat"}
+             VARIABLE : {SPAWN:"ls bn_spawn_size*.dat"}
+             SUBSET   : 7 points (X)
+ 1   / 1:"bn_spawn_size02.dat"
+ 2   / 2:"bn_spawn_size04.dat"
+ 3   / 3:"bn_spawn_size06.dat"
+ 4   / 4:"bn_spawn_size08.dat"
+ 5   / 5:"bn_spawn_size10.dat"
+ 6   / 6:"bn_spawn_size12.dat"
+ 7   / 7:"bn_spawn_size14.dat"
+ 
+! Test variables based on a function operating on output of a spawn.
 ! These already worked correctly, has a grid-changing function.
  
-LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
+LET filesets = XCAT({spawn:"ls bn_spawn_size*.cdf"}, {spawn:"ls bn_spawn_size*.dat"})
 say `filesets, return=isize`
- !-> MESSAGE/CONTINUE 969
-969
+ !-> MESSAGE/CONTINUE 12
+12
  
-let files = {spawn:"ls *cdf*.jnl"}
-let name_len = strindex(files, ".sub")
+let files = {spawn:"ls bn_spawn_size*.dat"}
+let name_len = STRINDEX(files, "ze0")
 say `name_len, return=isize`
- !-> MESSAGE/CONTINUE 8
-8
+ !-> MESSAGE/CONTINUE 7
+7
+ 
+! clean up
+sp rm bn_spawn_size*.dat bn_spawn_size*.cdf
+ 
 *** Running ferret script: bn_polygon_log.jnl
 ! bn_polygon_log.jnl
 ! polygon plots on a log axis need tests
@@ -77169,6 +78090,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_upcase_quoted_name
 ! err693_upcase_quoted_name.jnl
 ! ticket 2050. Names are saved in uppercase
@@ -77193,6 +78115,7 @@ set mode/last upcase
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_isready_hang
 ! err693_isready_hang.jnl
 ! ACM 12/10/2014
@@ -77220,6 +78143,7 @@ IF `a,r=isready` THEN; let/title="`a,r=title`" a5 = a; ENDIF
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_isready_dyn_grid_crash   ! 12/23/2014
 let/unit="m" b = x[gx=1:5:1]
 say "`b,r=unit`"     ! this causes dynamic grid of b to be created
@@ -77235,6 +78159,7 @@ VTREE b2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_attr_in_gcfcn
 ! err693_attr_in_gcfcn.jnl
 ! ACM 12/10/2014
@@ -77274,6 +78199,7 @@ list is_element_of_str (a, {"Kelvin", "Celsius", "DEG C"})
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_inconsistent_quote
 ! inconsistent interpretation of surrounding double quotes
 ! the original source of the problem is in PARSE_COMMAND
@@ -77295,6 +78221,7 @@ LIST "foobar"           ! error: lists the value instead
 ! IF-THEN flow tests
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_2214
 ! bug 2214
 ! If we put the "say hi" in parentheses, this seems to work.
@@ -77326,6 +78253,7 @@ CORRECT
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_2211
 ! bug #2211
  
@@ -77336,6 +78264,7 @@ ELSE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_1860
 ! from bug 1860
 ! continue line found within grave accents
@@ -77351,6 +78280,7 @@ CORRECT IF THIS DISPLAYS
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_1446
 ! testing ticket 1446
  
@@ -77365,6 +78295,7 @@ ENDIF
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_1681
 ! testing ticker 1681
  
@@ -77393,6 +78324,7 @@ endif
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_1706
 ! testing ticket 1706
 !
@@ -77409,6 +78341,7 @@ ENDIF
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_1368   ! Jan 28, 2010, Ferret version 5.812
 ! testing ticket 1368 - first found in Ferret v5.812 (Jan 28, 2010)
  
@@ -77441,6 +78374,7 @@ ENDIF
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_ribbon_start_missing
 ! err693_ribbon_start_missing
 ! 1/6/2015 ACM
@@ -77491,6 +78425,7 @@ let vvar = {,1.e7,,271,319}
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err691_pt_in_poly
 ! err691_pt_in_poly
 ! ticket 1961: modulo longitude for pt_in_poly
@@ -77539,6 +78474,7 @@ list minmax(pts)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_undetected_regrid_dset
 ! err693_undetected_regrid_dset.jnl    - Jan 2015
  
@@ -77558,11 +78494,12 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_line_over_axis
 ! Ticket 2232: line plots overlaid the plot axes
 show mode meta
       MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      .gif
+      METAFILE      CANCELED       .gif
 ! line plot with /VS draw on top of the axes
 let xval = {0.0, 0.2, 1.0, 0.8, 0}
 let yval = {0.0, 1.1, 1.1, 0.0, 0}
@@ -77576,6 +78513,7 @@ plot/ribbon/vs/line/thick=3/over/nolab/pal=green_light xval, yval, yval
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_save_packed
 ! err693_save_packed.jnl
 ! ticket 2240: bug writing multiple vars with one SAVE when scaled
@@ -77587,6 +78525,7 @@ save/clobber/file=a.nc QA_OF_SEAICE_CONC_CDR, GODDARD_MERGED_SEAICE_CONC
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_subspan_trans
 ! err693_subspan_trans
 ! bug 2241  3/9/2015
@@ -77601,31 +78540,31 @@ let b = a[x=@min]
  
 set mode diag
 say `a[x=@min]`
- 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 GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 GSI1            COADSX51_1NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   2 I:      0     83  J: -999 -999  K: -999 -999  L:   -999   -999
  strip --> A[X=25E:25E(385)@MIN,D=2]
- strip modulo-void-filling A on X axis:     0    83 dset:   2
- strip moduloing A on X axis:     0    82 dset:   2
- reading A        M:  5 dset:   2 I:    1   82  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:     1    82 dset:   2
- doing modulo-void-filling A on X axis:     0    82 dset:   2
+ strip modulo-void-filling A on X axis:        0       83 dset:   2
+ strip moduloing A on X axis:        0       82 dset:   2
+ reading A        M:  5 dset:   2 I:      1     82  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing A on X axis:        1       82 dset:   2
+ doing modulo-void-filling A on X axis:        0       82 dset:   2
  doing --> A[X=25E:25E(385)@MIN,D=2]
- -DELETE A        M:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M:  2 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 25.27740573883057
 25.27740573883057
  
 ! This previously resulted in an error.
 say `b`
- dealloc  dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- 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 B        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 GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    B        C:  6 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- found   A        M:  7 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE B        M: 11 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL
+ 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 B        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 GSI1            COADSX51_1NORMAL    NORMAL    NORMAL
+ allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   2 I:      0     83  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    B        C:  6 dset:   2 I:      0     83  J: -999 -999  K: -999 -999  L:   -999   -999
+ found   A        M:  7 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE B        M: 11 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 25.27740573883057
 25.27740573883057
  
@@ -77661,6 +78600,7 @@ bad
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_repeat_err
 !   err693_repeat_err.jnl
 ! test fix for ticket 2244: Error handling in REPEAT
@@ -77692,6 +78632,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_edit_useratt
 ! err693_edit_useratt.jnl
 ! ticket 2249: set attribute properties for user-defined variable
@@ -77751,6 +78692,7 @@ list/x=135.402W:135.321W/y=58.609 elev
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_redef_rec_axis
 ! err693_redef_rec_axis.jnl
 ! ticket 2271. Redefining the record axis meant
@@ -77775,8 +78717,8 @@ show data/full
      currently SET data sets:
     1> ./a.nc  (default)
  
- name     title                             I         J         K         L         M         N
- VAR      X[GX=XAX] + Y[GY=YAX] + T[GT=TR  1:5       1:5       ...       1:7       ...       ...
+ name     title                             I         J         K         L
+ VAR      X[GX=XAX] + Y[GY=YAX] + T[GT=TR  1:5       1:5       ...       1:7
                on grid GSI1 with -1.E+34 for missing data
              X=0.5:5.5  Y=1:11  
  
@@ -77785,6 +78727,7 @@ show data/full
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_frame_types
 ! bn_frame_types.jnl
 ! Ticket 2275
@@ -77809,6 +78752,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_shape
 ! err693_shape.jnl
 ! bug 2273 shape of variable with various subexpressions
@@ -77833,6 +78777,7 @@ say `sst,r=isize`  `a,r=isize` `a_anom,r=isize`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_ef_axis_precision
  ! NOAA/PMEL TMAP
  ! FERRET v6.94
@@ -77864,6 +78809,7 @@ q
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_string_results
 ! err693_string_results.jnl
 ! Ticket 2234, the LIST B returned the numeric pointer to the string.
@@ -77885,6 +78831,7 @@ list d
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_lev_nv_over
 ! err693_lev_nv_over.jnl
 ! The polygon command with /LEV=20V caused a crash; levels settings incorrect.
@@ -77905,6 +78852,7 @@ GO polymark polygon/over/lev=20v/key/title="SST"  xpts,ypts,sst,square, 0.5
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_fcn_of_attvar
 ! err693_fcn_of_attvar.jnl
 ! Ticket 2291 Function of attribute-expression
@@ -77956,6 +78904,7 @@ list ysequence(dncase(sst.dimnames))
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_isize_and_gcfcn
 ! err693_isize_and_gcfcn.jnl
 ! ticket 2213
@@ -77967,12 +78916,10 @@ can mode verify
 8
     GRID XABSTRACT
  name       axis              # pts   start                end                 subset
- ABSTRACT  X             99999999 r   1                    1.E+08              7 pts
+ ABSTRACT  X             99999999 r   1                    1.E+08              8 pts
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 8
 8 a
 8
@@ -77996,8 +78943,6 @@ can mode verify
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 8
 8 a
 8
@@ -78017,6 +78962,7 @@ can mode verify
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_ribbon_scale
 ! err693_ribbon_scale.jnl
 ! ticket 2295: the vertical scale is mis-computed
@@ -78029,11 +78975,12 @@ 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
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_parse_curly
 ! err693_parse_curly.jnl
 ! the sub-routine defines a string variable containing commands for overlays in
@@ -78147,6 +79094,7 @@ define symbol overcommands = `p1s_ov`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_list_missing
 ! err693_list_missing.jnl
  
@@ -78168,6 +79116,7 @@ list a,b
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_shf_subscr
 ! err693_shf_subscr.jnl
 ! ticket 2231  Subscripts used to compute @SHF-1 at the low end of the axis
@@ -78210,6 +79159,7 @@ list/k=3:4 zdiff_t
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_shift_w_region
 ! err693_shift_w_region
 ! Ticket 2300.  In fact with bounds checking on, the list a[i=@shf] would have
@@ -78243,6 +79193,7 @@ list a[i=@shf]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_scalar_grids
 ! err693_scalar_grids.jnl
 ! See ticket 1602
@@ -78330,11 +79281,11 @@ def grid/x=x4ax/t=t12 txgrid
 sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
- name     title                             I         J         K         L         M         N
- TM       TM                               1:4       ...       ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ TM       Tm                               1:4       ...       ...       1:12
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 4 by 12 points (X-T)
                1      2      3      4    
@@ -78360,11 +79311,11 @@ FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
 sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
- name     title                             I         J         K         L         M         N
- TM       TM                               1:4       ...       ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ TM       Tm                               1:4       ...       ...       1:12
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 4 by 12 points (X-T)
                1      2      3      4    
@@ -78393,10 +79344,10 @@ sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
  name     title                             I         J         K         L         M         N
- TM       TM                               1:4       ...       ...       ...       ...       1:12
+ TM       Tm                               1:4       ...       ...       ...       ...       1:12
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 4 by 12 points (X-F)
                1      2      3      4    
@@ -78425,11 +79376,11 @@ FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
 sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
- name     title                             I         J         K         L         M         N
- TM       TM                               ...       1:2       1:4       1:6       ...       ...
+ name     title                             I         J         K         L
+ TM       Tm                               ...       1:2       1:4       1:6
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 2 by 4 by 6 points (Y-Z-T)
              1      2    
@@ -78477,11 +79428,11 @@ FILE/SKIP=4/VAR="Tm"/COL=12/order=tyz/GRID=grid3d fxdata.dat
 sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
- name     title                             I         J         K         L         M         N
- TM       TM                               ...       1:2       1:4       1:6       ...       ...
+ name     title                             I         J         K         L
+ TM       Tm                               ...       1:2       1:4       1:6
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 2 by 4 by 6 points (Y-Z-T)
              1      2    
@@ -78530,10 +79481,10 @@ sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
  name     title                             I         J         K         L         M         N
- TM       TM                               ...       1:2       1:4       ...       1:6       ...
+ TM       Tm                               ...       1:2       1:4       ...       1:6       ...
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 2 by 4 by 6 points (Y-Z-E)
              1      2    
@@ -78580,10 +79531,10 @@ sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
  name     title                             I         J         K         L         M         N
- TM       TM                               ...       1:2       1:4       ...       1:6       ...
+ TM       Tm                               ...       1:2       1:4       ...       1:6       ...
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 2 by 4 by 6 points (Y-Z-E)
              1      2    
@@ -79141,13 +80092,13 @@ LIST a
 show data   ! to side step dset=-1 left behind by SHOW ATTRIBUTE previously
      currently SET data sets:
     1> ./weird_name1.cdf  (default)
- name     title                             I         J         K         L         M         N
- v1       lower case v1                    1:20      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ v1       lower case v1                    1:20      ...       ...       ...
  v2-and-minus
-          SIN(2+I/10)                      1:20      ...       ...       ...       ...       ...
- V1       Upper case V1                    1:20      ...       ...       ...       ...       ...
- I        SIN(4+I/10)                      1:20      ...       ...       ...       ...       ...
- X        SIN(5+I/10)                      1:20      ...       ...       ...       ...       ...
+          SIN(2+I/10)                      1:20      ...       ...       ...
+ V1       Upper case V1                    1:20      ...       ...       ...
+ I        SIN(4+I/10)                      1:20      ...       ...       ...
+ X        SIN(5+I/10)                      1:20      ...       ...       ...
  
 ! !!!!!!
 ! =========================
@@ -79160,8 +80111,6 @@ show grid gg
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! ======
 LET/TITLE= _DQ_'A title w/ "sq"'. Ship_Ka'imimoana_DQ_ A = 1 ! ' char for emacs
@@ -79237,6 +80186,7 @@ plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980:12:00_DQ_ \
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err694_shf_missing
 ! err694_shf_missing.jnl
 ! Test the fix for ticket 2314
@@ -79294,6 +80244,7 @@ list/x=10:30/y=-60/l=1  sst[i=@shf:3]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err694_longname_showdat
 ! err694_longname_showdat.jnl
 ! ticket 2317
@@ -79309,15 +80260,15 @@ use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
 sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
      currently SET data sets:
     1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  PROF     Prof                             ...       ...       ...       ...       1:21      ...
  TIME     Time                             ...       ...       ...       ...       1:21      ...
  LATITUDE Latitude                         ...       ...       ...       ...       1:21      ...
  LONGITUDE
           Longitude                        ...       ...       ...       ...       1:21      ...
  ROWSIZE  Number of Observations for this  ...       ...       ...       ...       1:21      ...
- PRESS_DB PRESS_DB                         1:373     ...       ...       ...       ...       ...
- PCO2     PCO2                             1:373     ...       ...       ...       ...       ...
+ PRESS_DB PRESS_DB                         1:373     ...       ...       ...
+ PCO2     PCO2                             1:373     ...       ...       ...
  
  
 ! If a file matched to 1st 32 characters, the shorter-named
@@ -79327,21 +80278,22 @@ use WestCoastCarbon_9d9c_f562_77b5_5
 sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
      currently SET data sets:
     1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  PROF     Prof                             ...       ...       ...       ...       1:21      ...
  TIME     Time                             ...       ...       ...       ...       1:21      ...
  LATITUDE Latitude                         ...       ...       ...       ...       1:21      ...
  LONGITUDE
           Longitude                        ...       ...       ...       ...       1:21      ...
  ROWSIZE  Number of Observations for this  ...       ...       ...       ...       1:21      ...
- PRESS_DB PRESS_DB                         1:373     ...       ...       ...       ...       ...
- PCO2     PCO2                             1:373     ...       ...       ...       ...       ...
+ PRESS_DB PRESS_DB                         1:373     ...       ...       ...
+ PCO2     PCO2                             1:373     ...       ...       ...
  
  
 sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_std4d
 ! err693_std4d
 ! Check fix to ticket 2319: std transform in multi-dimensions
@@ -80091,24 +81043,24 @@ FILE/VAR=v layerz_test_data.txt
 ! set the layerz link to point to a variable named "depth"
 SET VAR/layerz=depth v
 SHOW VAR/LAYERZ v
-  DEPTH holds the designated vertical (layerz) coordinates of V
+  DEPTH holds the designated vertical (layerz) coordinates of v
 SHOW ATT v
 ! modify the layerz link
 SET VAR/layerz=newdepth v
 SHOW VAR/LAYERZ v
-  NEWDEPTH holds the designated vertical (layerz) coordinates of V
+  NEWDEPTH holds the designated vertical (layerz) coordinates of v
 SHOW ATT v
      attributes for dataset: ./layerz_test_data.txt
- V.long_name = V 
- V.missing_value = -1.E+34
- V.__LayerzRef_ = NEWDEPTH 
+ v.long_name = v 
+ v.missing_value = -1.E+34
+ v.__LayerzRef_ = NEWDEPTH 
 cancel var/layerz v
 SHOW VAR/LAYERZ v
-  No variable holds vertical (layerz) coordinates of V
+  No variable holds vertical (layerz) coordinates of v
 SHOW ATT v
      attributes for dataset: ./layerz_test_data.txt
- V.long_name = V 
- V.missing_value = -1.E+34
+ v.long_name = v 
+ v.missing_value = -1.E+34
 CANCEL DATA layerz_test_data.txt
  
 ! user variable
@@ -80222,10 +81174,8 @@ SHOW GRID
  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                10 pts
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                11 pts
  normal    T
- normal    E
- normal    F
  
 ! use aux var regridding.  Target coordinate points match the source points
 ! identically at 0, 100, 200, ... 500
@@ -80235,33 +81185,33 @@ SHOW GRID
 SET MODE diagnostic
 LET tempz = temp[gz(depth)=zpts]
 LIST/PREC=7 tempz
- dealloc  dynamic grid GAO1            XAXLEVITR1YAXLEVITR4ZAXLEVITR 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 TEMPZ    C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- 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    NORMAL    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    NORMAL    NORMAL
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    (AX005)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G003)          NORMAL    NORMAL    (AX005)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
- eval    TEMPZ    C:  6 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid GAO1            XAXLEVITR1YAXLEVITR4ZAXLEVITR 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 TEMPZ    C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
+ 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
- eval    DEPTH    C:  9 dset:   1 I:    1    2  J:    1    2  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  Z        M:  1 dset:   1 I: -999 -999  J: -999 -999  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
- constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- found   TEMP     M:  2 dset:   1 I:    1    2  J:    1    2  K:    1   11  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  4 dset:   0 I:    1    2  J:    1    2  K:    1    1  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Z        M:  1 dset:   1 I: -999 -999  J: -999 -999  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
- reading TEMP     M:  1 dset:   1 I:    1    2  J:    1    2  K:    7   12  L: -999 -999  M: -999 -999  N: -999 -999
- auxgrd  TEMP     M:  4 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
+ 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
+ found   TEMP     M:  2 dset:   1 I:      1      2  J:    1    2  K:    1   11  L:   -999   -999
+ -DELETE cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE tpry     M:  4 dset:   0 I:      1      2  J:    1    2  K:    1    1  L:   -999   -999  M: -999 -999  N: -999 -999
+ -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
              VARIABLE : TEMP[GZ(DEPTH)=ZPTS]
              FILENAME : levitus_3d_subset.nc
              SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
@@ -80283,17 +81233,15 @@ 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    NORMAL    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    NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   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)
  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
  normal    T
- normal    E
- normal    F
 !LET tempz = temp[gz=zpts,layerz]  ! same regrid using semi-automated notation
 !LIST/PREC=7 tempz
 !SHOW GRID tempz
@@ -80342,8 +81290,6 @@ SHOW GRID tempzax
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAX       Z (METERS)           5 r   100                  500                 full
  normal    T
- normal    E
- normal    F
 !LET tempzax = temp[gz=zax,layerz]  ! same regrid using semi-automated notation
 !LIST tempzax
 !SHOW GRID tempzax
@@ -80376,10 +81322,8 @@ SHOW GRID tempz_alt
  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                  4 pts
+ (AX007)   Z                    5 r   2                    10                  5 pts
  normal    T
- normal    E
- normal    F
  
 !! do same regrid using the shorhand semi-automated notation
 !LIST/PREC=7 temp[z=2:10:2,layerz]   ! lo:hi:delta notation
@@ -80405,8 +81349,6 @@ SHOW GRID/z tempz_1pt
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  (AX008)   Z                    1 r   6                    6                   1 pt
  normal    T
- normal    E
- normal    F
  
        K     Z                   ZBOX      ZBOXLO
        1>  6                     6.E-05     5.99997
@@ -80430,8 +81372,6 @@ SHOW GRID
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAXLEVITR DEPTH (m)           20 i-  0                    5000                1 pt
  normal    T
- normal    E
- normal    F
  
 ! auxiliary points in reverse order
 ! to get results that we can check for correctness, we will reverse the Z-order
@@ -80472,8 +81412,6 @@ SHOW GRID rvtempzax
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
  normal    T
- normal    E
- normal    F
  
 ! deliberate execution errors:
 LET disordered_depth1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
@@ -81667,8 +82605,6 @@ SHOW GRID/z rvtempzaxave
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
  normal    T
- normal    E
- normal    F
  
        K     Z                   ZBOX      ZBOXLO
        1>  100                   100        50
@@ -84151,6 +85087,7 @@ LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err695_bounds_match_axis
 ! err695_bounds_match_axis.jnl
 ! ticket 2321.
@@ -84170,8 +85107,6 @@ sh grid/l=1:4444 temp
  LAT       LATITUDE             1 r   36.65N               36.65N              full
  PFULL1_1  Z (hpa)              1 r-  3.3236               3.3236              full
  TIME      TIME                 4 i   19-JUN-1997 00:00    19-JUN-1997 01:30   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  19-JUN-1997 00:00:00  0.0208333  18-JUN-1997 23:30:00    0.02083333
@@ -84181,6 +85116,7 @@ sh grid/l=1:4444 temp
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err695_show_dat_nodata
 ! err695_show_dat_nodata.jnl
 ! ticket 2322
@@ -84193,14 +85129,14 @@ USE coads_climatology
 SHOW DATA 1
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
 SHOW DATA coads_climatology
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
  
 ! intentional errors
@@ -84213,16 +85149,17 @@ SET MODE/LAST ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err695_grave_prec
 ! err695_grave_prec
 ! Bug 2323. Large numbers had incorrect results on grave-accent
 ! evaluations, returning only 8 digits of precision
  
 list/nohead/p=16 1234567890123456, `1234567890123456`
- !-> list/nohead/p=16 1234567890123456,   1234567890123456.
+ !-> list/nohead/p=16 1234567890123456, 1234567890123456.
 I / *:     1234567890123456.  1234567890123456.
 list/nohead/p=16 -1234567890123.456, `-1234567890123.456`
- !-> list/nohead/p=16 -1234567890123.456,  -1234567890123.456
+ !-> list/nohead/p=16 -1234567890123.456, -1234567890123.456
 I / *:    -1234567890123.456 -1234567890123.456
  
 ! this was ok
@@ -84232,10 +85169,10 @@ I / *:     1.234567890123456  1.123456789012346
  
 ! check output when asking for lower precision
 list/nohead/p=9 1234567890123456, `1234567890123456`
- !-> list/nohead/p=9 1234567890123456,   1234567890123456.
+ !-> list/nohead/p=9 1234567890123456, 1234567890123456.
 I / *:     1.23456789E+15  1.23456789E+15
 list/nohead/p=6 1234567890123456, `1234567890123456`
- !-> list/nohead/p=6 1234567890123456,   1234567890123456.
+ !-> list/nohead/p=6 1234567890123456, 1234567890123456.
 I / *:     1.23457E+15  1.23457E+15
  
 let var = 1.23456e+34
@@ -84302,9 +85239,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GX=dcoarse]
-             X: 0.5 to 5.5
- Column  1: DEST is _X[GX=DCOARSE]
- Column  2: VAR[G=1 delta on X] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X)
+ Column  1: DEST[X=0.5:5.5] is _X[GX=DCOARSE]
+ Column  2: VAR[G=1 delta on X,X=1.5:5.5] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X)
           DEST    VAR
 1   / 1:  1.000   ....
 2   / 2:  2.000   ....
@@ -84365,9 +85301,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GY=dcoarse]
-             Y: 0.5 to 5.5
- Column  1: DEST is _Y[GY=DCOARSE]
- Column  2: VAR[G=1 delta on Y] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y)
+ Column  1: DEST[Y=0.5:5.5] is _Y[GY=DCOARSE]
+ Column  2: VAR[G=1 delta on Y,Y=1.5:5.5] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y)
           DEST    VAR
 1   / 1:  1.000   ....
 2   / 2:  2.000   ....
@@ -84428,9 +85363,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GZ=dcoarse]
-             Z: 0.5 to 5.5
- Column  1: DEST is _Z[GZ=DCOARSE]
- Column  2: VAR[G=1 delta on Z] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z)
+ Column  1: DEST[Z=0.5:5.5] is _Z[GZ=DCOARSE]
+ Column  2: VAR[G=1 delta on Z,Z=1.5:5.5] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z)
           DEST    VAR
 1   / 1:  1.000   ....
 2   / 2:  2.000   ....
@@ -84491,9 +85425,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GT=dcoarse]
-             T: 0.5 to 5.5
- Column  1: DEST is _T[GT=DCOARSE]
- Column  2: VAR[G=1 delta on T] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T)
+ Column  1: DEST[T=0.5:5.5] is _T[GT=DCOARSE]
+ Column  2: VAR[G=1 delta on T,T=1.5:5.5] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T)
           DEST    VAR
 1   / 1:  1.000   ....
 2   / 2:  2.000   ....
@@ -84554,9 +85487,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GE=dcoarse]
-             E: 0.5 to 5.5
- Column  1: DEST is _E[GE=DCOARSE]
- Column  2: VAR[G=1 delta on E] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E)
+ Column  1: DEST[E=0.5:5.5] is _E[GE=DCOARSE]
+ Column  2: VAR[G=1 delta on E,E=1.5:5.5] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E)
           DEST    VAR
 1   / 1:  1.000   ....
 2   / 2:  2.000   ....
@@ -84617,9 +85549,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GF=dcoarse]
-             F: 0.5 to 5.5
- Column  1: DEST is _F[GF=DCOARSE]
- Column  2: VAR[G=1 delta on F] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F)
+ Column  1: DEST[F=0.5:5.5] is _F[GF=DCOARSE]
+ Column  2: VAR[G=1 delta on F,F=1.5:5.5] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F)
           DEST    VAR
 1   / 1:  1.000   ....
 2   / 2:  2.000   ....
@@ -84633,6 +85564,7 @@ LIST dest, var[G$1=dcoarse]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_only_inf_lev
 ! Bug 2326: levels with only a value and (inf) or (-inf)
 ! should show values less-equal or greater-equal to that level.
@@ -84660,6 +85592,7 @@ set view ur; shade/key=horiz/lev=(-inf)(22)(inf) sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_plot_ax_ppl
 ! err696_plot_ax_ppl.jnl
 ! ticket 2327
@@ -84743,6 +85676,7 @@ plot/i=1:199 i*cos(i/10)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_ft_calendars
 ! err696_ft_calendars.jnl
 ! see ticket 2332: check for matching calendars when
@@ -84769,6 +85703,7 @@ can data/all
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_centerlab_restore
 ! err696_centerlab_restore
 ! Ticket 2331.
@@ -84829,6 +85764,7 @@ polygon/trans/i=1:20/nolab/key=horiz  xpts+xsqr, ypts+ysqr, x*x/10
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_time_overlay
 ! err696_time_overlay
 ! bug 2334, first plot/over takes too long and the line is incorrect.
@@ -84836,23 +85772,24 @@ 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
-Fri Jun 17 15:04:31 PDT 2016
+Tue Apr 18 17:04:04 PDT 2017
 set view upper
 plot t[gt=tax_nlp]
 plot/ov/vs/line/dash {1,1}, 1e6*{-1,1}
 sp date
-Fri Jun 17 15:04:31 PDT 2016
+Tue Apr 18 17:04:04 PDT 2017
  
 sp date
-Fri Jun 17 15:04:31 PDT 2016
+Tue Apr 18 17:04:04 PDT 2017
 set view lower
 plot t[gt=tax_jul]
 plot/ov/vs/line/dash {2,2}, 1e6*{-1,1}
 sp date
-Fri Jun 17 15:04:31 PDT 2016
+Tue Apr 18 17:04:04 PDT 2017
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_save_noupcase
 ! err696_save_noupcase
 ! Ticket 2336: When UPCASE canceled an extra upcase axis
@@ -84906,7 +85843,7 @@ variables:
 		var:long_name = "0*TT + X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -84914,6 +85851,7 @@ set mode/last upcase
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_argument_blanks
 ! err696_argument_blanks.jnl
 ! Ticket 2343: quoted argument with a blank at the end.
@@ -84950,6 +85888,7 @@ Hi Hi there my friend
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_annotate_numeric
 ! err696_annotate_numeric
 ! 1/7/2016
@@ -84982,6 +85921,7 @@ annotate/nouser/xpos=1/ypos=0.5 1,2,3,4,5
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_e_component_mem_crptn
 ! canceling of an E aggregation dataset is leaving
 ! corrupted variables in memory as seen by the variable names "%%"
@@ -85012,28 +85952,37 @@ list/i=3 sst[T=@ave]
  4   / 4:  114.1  113.8  111.6  109.8  106.9  102.2   ....   ....   ....
  
 show mem/all
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 540 words
+    Current cache: 504 words
 all data in memory:
- SST[D=fourfiles]                  YE    mr:15  blk1:1  nblk:1
-    3  /106W           1  /12N          ...  / ...         ...  /01-JAN 00:45   1  /0.5          ...  / ...
-    3  /104W           9  /30N          ...  / ...         ...  /31-DEC 06:34   4  /4.5          ...  / ...
+ SST[D=fourfiles]                  YE    mr:15 size:72
+         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:12  blk1:2  nblk:1
-    3  /106W           1  /12N          ...  / ...           1  /01-JAN 00:45   1  /0.5          ...  / ...
-    3  /104W           9  /30N          ...  / ...          12  /31-DEC 06:34   4  /4.5          ...  / ...
+ SST[D=fourfiles]                  YTE   mr:12 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              ... / ...
  
 cancel data fourfiles
 show mem/all
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 540 words
+    Current cache: 0 words
 all data in memory:
  
 exit
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_mem_err_report
 ! err696_mem_err_report.jnl
 ! 1/21/2016 *acm*
+! V702: *sh* 2/17 - This script depends upon the specific formatting
+! of the error string, when memory is exceeded
+! Tweaked it to match the new formatting
+ 
 ! Ticket 2354: The error message shows the wrong number for memory needed.
 !
 ! Try to load some data larger than the default amount of memory
@@ -85056,31 +86005,28 @@ sh grid bigvar
  YAXIS     Y                  180 r   1                    180                 full
  ZAXIS     Z                   20 r   1                    20                  full
  LONGTIME  TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
- normal    E
- normal    F
  
  
 set mode ignore
 load/l=1:5 bigvar
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 2 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 1296005 (65%)
+    The size of the requested object was: : 6480000 (324%)
  
 ! Previously the number Mwords shown was too low
 show sym fer_last_error
-FER_LAST_ERROR = "**ERROR: request exceeds memory setting: 13 Mwords were requested. "
+FER_LAST_ERROR = "**ERROR: request exceeds memory setting"
 cancel mode ignore
  
-! Get the number Ferret says it needs
-let ms1 = `strrindex("($fer_last_error)", ":")`
- !-> DEFINE VARIABLE ms1 = 40
-let ms2 = `strindex("($fer_last_error)", "Mword")`
- !-> DEFINE VARIABLE ms2 = 45
-let siz = substring("($fer_last_error)", `ms1+1`, `ms2-ms1-1`)
- !-> DEFINE VARIABLE siz = substring("**ERROR: request exceeds memory setting: 13 Mwords were requested. ", 41, 4)
- 
-! Increase memory accordingly
+! V702:  we no longer have to parse the error string.
+! Instead look at PEAK_MEMORY
  
-set mem/siz=`siz`
- !-> set mem/siz= 13
+SET MEMORY/SIZE=15
 load/l=1:5 bigvar
+SHOW SYMBOL ($PEAK_MEMORY)
+ !-> SHOW SYMBOL 7776005
  
 ! restore default
 set mem/siz=`memsize`
@@ -85089,6 +86035,7 @@ set mem/siz=`memsize`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_multiple_slashes
 ! err696_multiple_slashes.jnl
 ! 1/25/2016 *acm*
@@ -85133,19 +86080,19 @@ fill/($regqual)($plotqual) sst
  !-> CONTOUR/FILL//x=300:360///y=-20:20/L=3/pal=grayscale/line//key=cont sst
  
 ! command lines with urls unchanged
-IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
  !-> IF 1 THEN
-   set data///format=cdf http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+   set data///format=cdf http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
    let//d=coads_sst myvar = 1
    sh dat
      currently SET data sets:
     1> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
-    2> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      Sea Surface Temperature          1:180     1:90      ...       1:1680    ...       ...
+    2> http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+ name     title                             I         J         K         L
+ SST      Sea Surface Temperature          1:180     1:90      ...       1:1680
  ------------------------------
  MYVAR[D=coads_sst] = 1
  
@@ -85227,6 +86174,7 @@ repeat/l=1:2 (set reg/x=1:4//)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_2d_time_overlay
 ! err696_2d_time_overlay.jnl
 ! ticket 2360: 2-D time overlay plots have never worked.
@@ -85276,6 +86224,7 @@ shade/ov/pal=grayscale/lev f2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_singlevec_over
 ! err696_singlevec_over.jnl
 ! Ticket 2365: overlay a single vector. If
@@ -85319,6 +86268,7 @@ PPL_VECLEN = "  27.2"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_return_type
 ! err696_return_type
 ! See ticket #2367
@@ -85372,6 +86322,7 @@ list allcat
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_hovmuller_mod_fill
 ! err696_hovmuller_mod_fill.jnl
 ! 3/7/2016 ACM
@@ -85387,6 +86338,7 @@ fill/lin/t=1-jan-0000:31-dec-0001/hlim=1-jan-0000:1-jan-0001/x=180/lev=8 sst
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_repeat_escapes.jnl
 ! err696_repeat_escapes.jnl
 ! Ticket 2376 - parsing error with escaped grave-accent syntax
@@ -85434,6 +86386,7 @@ repeat/k=1:3 (rep/i=1:2 (sp echo \``a`\`))
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_red_keylab.jnl
 ! err696_red_keylab.jnl
 ! Ticket 2375: outline and labels of color key were
@@ -85448,6 +86401,7 @@ fill/over/nolab/key/lev=v,2min temp
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_poly_over_label
 ! err696_poly_over_label
 ! Tiket 2396: incorrect label in the lower
@@ -85515,6 +86469,7 @@ ppl list labels  ! shows cvar for lab2
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_def_ax_f
 ! err696_def_ax_f.jnl
 ! See ticket 2380
@@ -85562,6 +86517,7 @@ list _t[gt=aax]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_mode_cal_f
 ! err696_mode_cal_f.jnl
 ! ticket 2399 MODE CALENDAR and F calendar axes
@@ -85625,6 +86581,7 @@ LAB1 = "F (DAY) : 1.5"
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_def_ax_edges
 ! err696_def_ax_edges
 ! See ticket 2400
@@ -85742,6 +86699,7 @@ def ax/edge/x xax = edges[i=1:4]; sh axis xax; list x[gx=xax]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_write_no_dim
 ! err696_write_no_dim.jnl
 ! ticket 2241: save a subset of a variable whose grid
@@ -85751,10 +86709,10 @@ use nodim
 sh dat
      currently SET data sets:
     1> ./nodim.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  EXPOCODE expocode                         ...       ...       ...       ...       1:1       ...
  NUM_OBS  Number of observations           ...       ...       ...       ...       1:1       ...
- TEMP     sea surface temperature          1:51      ...       ...       ...       ...       ...
+ TEMP     sea surface temperature          1:51      ...       ...       ...
  
  
 ! previously this gave an error
@@ -85787,7 +86745,7 @@ variables:
 		TEMP:history = "From /home/data/socat/socatV3/11SS/11SS20140225.nc" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -85797,6 +86755,7 @@ data:
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_mod_sub_fln
 ! err696_mod_sub_fln.jnl
 ! Ticket 2366, @FLN on a modulo subspan axis
@@ -85865,6 +86824,7 @@ list/x=-180:720 b, b[x=@fln]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_subspan_transforms
 ! err696_subspan_transforms.jnl
 ! See ticket 2364.  Results previously
@@ -86664,6 +87624,7 @@ can var a; can ax xaxis; use a.nc
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_subspan_mod_in_expr
 ! err696_subspan_mod_in_expr.jnl
 ! ticket 1845: a subspan modulo due to context info buried
@@ -86695,6 +87656,7 @@ XAXIS_MAX = "145.345261"
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_shade_subspan_clim
 ! err696_shade_subspan_clim
 ! See ticket 2404
@@ -86713,7 +87675,7 @@ set view ul; shade a*x[gx=0:10:1]
 sh sym yaxis*
 YAXIS_REVERSED = "0"
 YAXIS_MIN = "31.0000000"
-YAXIS_MAX = "212.242500"
+YAXIS_MAX = "243.000000"
  
 ! But the top-right SHADE plot was all messed up; it shifts the data
 ! later by a full month, and stretches the last (shifted) cell all
@@ -86723,7 +87685,7 @@ set view ur; shade/t=1-jan-0001:1-jan-0002 a*x[gx=0:10:1]
 sh sym yaxis*
 YAXIS_REVERSED = "0"
 YAXIS_MIN = "31.0000000"
-YAXIS_MAX = "212.242500"
+YAXIS_MAX = "243.000000"
  
 ! In the bottom-right line plot, the actual plotted data look ok.
 ! But the plot limits extend all the way from 1-JUL-0000 to 1-MAR-0002,
@@ -86734,14 +87696,16 @@ set view lr; plot/step=con/t=1-jan-0001:1-jan-0002 a
 sh sym xaxis*
 XAXIS_REVERSED = "0"
 XAXIS_MIN = "31.0000000"
-XAXIS_MAX = "212.242500"
+XAXIS_MAX = "243.000000"
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! go err696_subspan_mod_strides  ! do this test in bn_gif
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_def_att
 ! err696_def_att.jnl
 ! tickets 2415, 2416
@@ -86797,6 +87761,7 @@ sp ncdump a.nc | grep -i sst
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_return_prec
 ! err696_return_prec.jnl
 ! ACM 5/16 See ticket 2389.
@@ -86859,7 +87824,7 @@ say `1.55555551e8,p=14`
  !-> MESSAGE/CONTINUE 155555551
 155555551
 say `1.555555001e8,p=14`
- !-> MESSAGE/CONTINUE   155555500.1
+ !-> MESSAGE/CONTINUE 155555500.1
 155555500.1
  
  
@@ -86867,6 +87832,7 @@ say `1.555555001e8,p=14`
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err686_show_xml_letd
 ! ! bn_show_xml_letd
 ! Testing SHOW DATA/VAR/XML with a let/D variable
@@ -86881,8 +87847,8 @@ let/d=1 salt2 = salt[d=2]
 sh dat 1
      currently SET data sets:
     1> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
  SALT2[D=coads_climatology] = SALT[D=2]
  W2[D=coads_climatology] = W[D=2]
@@ -86904,6 +87870,7 @@ sp grep "var name" out.xml
 ! 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
+! 1/2017 *acm* changes in output due to backing off auto-detection of truemonth axes, tkt 2497
  
 spawn "mkdir -p tmp"     ! tmp directory t store files
  
@@ -87112,9 +88079,9 @@ tseries myagg1 =  tmp/tagg_reg_1.nc
 show data myagg1
      currently SET data sets:
     2> myagg1  (default)
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
  
 show grid myvar
     GRID GQC1
@@ -87123,8 +88090,6 @@ show grid myvar
  normal    Y
  normal    Z
  TDAY1     TIME                10 r   01-JAN-1980 00:00    10-JAN-1980 00:00   full
- normal    E
- normal    F
  
 ! double file aggregation
 define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
@@ -87135,8 +88100,6 @@ show grid myvar
  normal    Y
  normal    Z
  TDAY2     TIME                20 r   01-JAN-1980 00:00    20-JAN-1980 00:00   full
- normal    E
- normal    F
 stat myvar
  
              SIN(T[GT=TDAY]/10) + L[GT=TDAY]/10
@@ -87160,9 +88123,9 @@ define data/agg/t myAgg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
 show data myAgg2
      currently SET data sets:
     3> myagg2
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
  
  
 ! *sh* 1/28/2016 addition
@@ -87182,11 +88145,11 @@ show data/full  ! all 4 datasets
      currently SET data sets:
     1> tmp/tagg_reg_1.nc
  
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10
                on grid GTR1 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GTR2 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -87195,11 +88158,11 @@ show data/full  ! all 4 datasets
     2> myagg1
  
      T-aggregation of 1 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10
                on grid GQC1 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GQC2 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -87211,11 +88174,11 @@ show data/full  ! all 4 datasets
     3> myagg2
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20
                on grid GQC3 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GQC4 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -87228,11 +88191,11 @@ show data/full  ! all 4 datasets
     4> myAgg2
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20
                on grid GQC5 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GQC6 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -87245,11 +88208,11 @@ show data/full  ! all 4 datasets
     5> ./bn_aggregate_t.jnl
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20
                on grid GQC7 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GQC8 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -87262,11 +88225,11 @@ show data/full  ! all 4 datasets
     6> myagg8  (default)
  
      T-aggregation of 8 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:80      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:80
                on grid GQC9 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GQC10 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -87289,8 +88252,6 @@ show grid myvar
  normal    Y
  normal    Z
  TDAY3     TIME                80 r   01-JAN-1980 00:00    20-MAR-1980 00:00   full
- normal    E
- normal    F
 plot/line/sym myvar
  
 ! read a time-independent field from the first file of the aggregation
@@ -87384,10 +88345,13 @@ tseries myTindepagg = tmp/tagg_reg_no_T.nc
 ! erroneous file 2 with 15 time steps, goes beyond start of file 3
 define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2_overlarge.nc,tmp/tagg_reg_3.nc
  
+! Try to use dataset names not file names. This is not allowed for Tseries aggregations.
+use tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+define data/agg/t myagg2num = 1,2
+ 
 set mode/last ignore
 canc data/all
  
- 
 ! --- irregularly-spaced axes ---
 ! aggregation of 2 irregular datasets
  define data/agg/t myagg2 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc
@@ -87399,8 +88363,8 @@ define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irr
     1> myagg2
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20
                on grid GCV1 with -1.E+34 for missing data
              
  
@@ -87413,8 +88377,8 @@ define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irr
     2> myagg8  (default)
  
      T-aggregation of 8 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:80      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:80
                on grid GCV2 with -1.E+34 for missing data
              
  
@@ -87433,8 +88397,8 @@ define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irr
   show data myagg2
      currently SET data sets:
     1> myagg2
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20
  
   show grid/t myvar[d=1]
     GRID GCV1
@@ -87443,8 +88407,6 @@ define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irr
  normal    Y
  normal    Z
  TDAY_IR1  TIME                20 i   02-JAN-1980 00:00    21-JAN-1980 14:35   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1980 00:00:00  1.013911   01-JAN-1980 11:49:59    1
@@ -87474,8 +88436,6 @@ define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irr
  normal    Y
  normal    Z
  TDAY_IR2  TIME                80 i   02-JAN-1980 00:00    24-MAR-1980 14:00   full
- normal    E
- normal    F
   plot/line/sym myvar[d=2],myvar[d=1]
  
 ! aggregate collection that mixes regular (file 2) with irregular
@@ -87487,8 +88447,6 @@ define data/agg/t myagg4 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2_reg.nc,tmp/tagg
  normal    Y
  normal    Z
  TDAY_IR3  TIME                40 i   02-JAN-1980 00:00    11-FEB-1980 12:04   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1980 00:00:00  1.013911   01-JAN-1980 11:49:59    1
@@ -87549,8 +88507,8 @@ define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/
     1> myagg2
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8
                on grid GBN1 with -1.E+34 for missing data
              
  
@@ -87563,8 +88521,8 @@ define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/
     2> myagg8  (default)
  
      T-aggregation of 5 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:20
                on grid GBN2 with -1.E+34 for missing data
              
  
@@ -87580,8 +88538,8 @@ define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/
   show data myagg2
      currently SET data sets:
     1> myagg2
- name     title                             I         J         K         L         M         N
- MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8
  
   show grid/t myvar[d=1]
     GRID GBN1
@@ -87590,8 +88548,6 @@ define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/
  normal    Y
  normal    Z
  TDAY_TVAR TIME                 8 r   02-JAN-1980 00:00    09-JAN-1980 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1980 00:00:00  1          01-JAN-1980 12:00:00    1
@@ -87609,8 +88565,6 @@ define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/
  normal    Y
  normal    Z
  TDAY_TVAR1 TIME               20 r   02-JAN-1980 00:00    21-JAN-1980 00:00   full
- normal    E
- normal    F
   plot/line/sym myvar[d=2],myvar[d=1]
  
 canc data/all
@@ -87627,8 +88581,8 @@ define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T
     1> myagg2
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11
                on grid GKQ1 with -1.E+34 for missing data
              
  
@@ -87641,8 +88595,8 @@ define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T
     2> myagg8  (default)
  
      T-aggregation of 8 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:62      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:62
                on grid GKQ2 with -1.E+34 for missing data
              
  
@@ -87661,8 +88615,8 @@ define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T
   show data myagg2
      currently SET data sets:
     1> myagg2
- name     title                             I         J         K         L         M         N
- MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11
  
   show grid/t myvar[d=1]
     GRID GKQ1
@@ -87671,8 +88625,6 @@ define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T
  normal    Y
  normal    Z
  TDAY_TVAR TIME                11 i   02-JAN-1981 00:00    11-JAN-1982 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    1
@@ -87693,8 +88645,6 @@ define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T
  normal    Y
  normal    Z
  TDAY_TVAR1 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
- normal    E
- normal    F
   plot/line/sym/vlim=0:11 myvar[d=2],myvar[d=1]
  
 ! a few tests of using Ferret string variables to get the names of files
@@ -87702,9 +88652,9 @@ define data/agg/t listAgg1 = {"tmp/tagg_reg_1.nc", "tmp/tagg_reg_2.nc"}
 show data/files listAgg1
      currently SET data sets:
     3> listAgg1  (default)
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
  
           time-dependent data files:
 01-JAN-1980 00:00 -> 10-JAN-1980 00:00    tmp/tagg_reg_1.nc
@@ -87717,9 +88667,9 @@ define data/agg/t listAgg2 = file_list
 show data/files listAgg2
      currently SET data sets:
     4> listAgg2  (default)
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:90      ...       ...
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:90
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
  
           time-dependent data files:
 01-JAN-1980 00:00 -> 10-JAN-1980 00:00    tmp/tagg_reg_1.nc
@@ -87756,8 +88706,6 @@ show grid/l=1:8 myvar[d=myagg8]
  normal    Y
  normal    Z
  TDAY_TVAR1 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    1
@@ -87775,8 +88723,6 @@ show grid/l=1:8 myvar[d=myagg8_disordered3]
  normal    Y
  normal    Z
  TDAY_TVAR2 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    -364
@@ -87809,11 +88755,11 @@ show data/full  MYsing_reg_agg6
     1> MYsing_reg_agg6  (default)
  
      T-aggregation of 6 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:6       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:6
                on grid GMI1 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GMI2 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -87834,8 +88780,6 @@ show grid/t myvar
  normal    Y
  normal    Z
  TDAY1     TIME                 6 r   01-JAN-1980 00:00    06-JAN-1980 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  01-JAN-1980 00:00:00  1          31-DEC-1979 12:00:00    28840
@@ -87871,11 +88815,11 @@ show data/full MYsing_irreg_agg4
     2> MYsing_irreg_agg4  (default)
  
      T-aggregation of 4 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:4       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:4
                on grid GMI3 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GMI4 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -87894,8 +88838,6 @@ show grid/t myvar
  normal    Y
  normal    Z
  TDAY2     TIME                 4 i   01-JAN-1980 00:00    05-JAN-1980 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  01-JAN-1980 00:00:00  1          31-DEC-1979 12:00:00    28840
@@ -87962,14 +88904,18 @@ stat/brief TBOXHI[g=myvar[d=MYsing_irreg_agg4]] - TBOXHI[g=myvar[d=MYsing_irreg_
 canc data/all
  
 ! OPeNDAP test
-IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc") EQ 0` THEN
+! (Note: when running pre-true-month Ferret versions, the timestep output from
+! show grid/T below was eliminated by the "clean_draconian" script)
+! 1/17/2017 changes due to backing off auto-detection of truemonth axes, tkt 2497
+ 
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc") EQ 0` THEN
  !-> IF 1 THEN
-   tseries COADS = http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc, http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2013.nc, http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2014.nc
+   tseries COADS = http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc, http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/ferret/test_coads_monthly_air_2013.nc, http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/ferret/test_coads_monthly_air_2014.nc
 show data COADS
      currently SET data sets:
     1> COADS  (default)
- name     title                             I         J         K         L         M         N
- AIR      Air Temperature Monthly Mean_da  1:180     1:90      ...       1:36      ...       ...
+ name     title                             I         J         K         L
+ AIR      Air Temperature Monthly Mean_da  1:180     1:90      ...       1:36
  
 show grid/T air
     GRID GMW1
@@ -87978,8 +88924,6 @@ show grid/T air
  LAT       LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                36 i   16-JAN-2012 12:00    16-DEC-2014 12:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  16-JAN-2012 12:00:00  31         01-JAN-2012 00:00:00    77446.5
@@ -88125,24 +89069,24 @@ show data/brief
     3> tmp/test3.nc  (default)
 canc data/all
  
-IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
  !-> IF 1 THEN
-  use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
+  use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
   show data/brief
      currently SET data sets:
-    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+    1> http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
   canc data/all
-  use http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+  use http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
   show data/brief
      currently SET data sets:
-    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+    1> http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
   canc data/all
-  use tmp/test1.nc, "tmp/test2.nc", http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+  use tmp/test1.nc, "tmp/test2.nc", http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
   show data/brief
      currently SET data sets:
     1> tmp/test1.nc
     2> tmp/test2.nc
-    3> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+    3> http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
   canc data/all
 ELSE
 ENDIF
@@ -88410,23 +89354,19 @@ use coads_climatology
 show grid sst[x=240:320,y=0,t=@ave]
     GRID GSQ1
  name       axis              # pts   start                end                 subset
- COADSX    LONGITUDE          180mr   21E                  19E(379)            39 pts
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            40 pts
  COADSY    LATITUDE            90 r   89S                  89N                 1 pt
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        compressed
- normal    E
- normal    F
  
 ! Modulo axes ask for superset
 show grid sst[x=0:540,L=1:15]
     GRID GSQ1
  name       axis              # pts   start                end                 subset
- COADSX    LONGITUDE          180mr   21E                  19E(379)            269 pts
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            270 pts
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        14 pts
- normal    E
- normal    F
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        15 pts
  
 ! Constant: full abstract grid
 show grid 1
@@ -88447,18 +89387,14 @@ show grid {1}
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 let var = {1,2,4,8}  ! Note that show grid {1,2,4,8} fails: bug
 show grid var
     GRID XABSTRACT
  name       axis              # pts   start                end                 subset
- ABSTRACT  X             99999999 r   1                    1.E+08              3 pts
+ ABSTRACT  X             99999999 r   1                    1.E+08              4 pts
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! but don't show any user-var grid info if they just ask for the grid by name
 show grid `sst,return=grid`
@@ -88469,8 +89405,6 @@ show grid `sst,return=grid`
  COADSY    LATITUDE            90 r   89S                  89N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
  
 ! grid of last variable loaded
 load sst[x=240,y=@iin,t=@ave]
@@ -88483,8 +89417,6 @@ show grid
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        compressed
- normal    E
- normal    F
  
 ! Result grid is full grid
 let var = sst[L=@ave] - sst[x=@max] - sst[y=0]
@@ -88495,8 +89427,6 @@ show grid var
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! transform on single-point range is equiv. to single-point subset
  
@@ -88509,8 +89439,6 @@ show grid var
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
 set mode/last interpolate
 let var = sst[X=30:30.1 at max]
 show grid var
@@ -88520,8 +89448,6 @@ show grid var
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! dynamic grid
 let var = sst[y=-10:10:.1,l=1,x=160e]
@@ -88529,22 +89455,18 @@ show grid var
     GRID (G002)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX005)   LATITUDE           201 r   10S                  10N                 200 pts
+ (AX005)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
- normal    E
- normal    F
  
 ! striding
 show grid sst[i=1:180:3,j=1:90:2]
     GRID (G003)
  name       axis              # pts   start                end                 subset
- (AX006)   LONGITUDE           60 r   21E                  15E(375)            59 pts
- (AX007)   LATITUDE            45 r   89S                  87N                 44 pts
+ (AX006)   LONGITUDE           60 r   21E                  15E(375)            60 pts
+ (AX007)   LATITUDE            45 r   89S                  87N                 45 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! regridding
  
@@ -88557,9 +89479,7 @@ sh grid vwnd_days
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- DAX       TIME              1096 r   01-JAN-1980 00:00    31-DEC-1982 00:00   44 pts
- normal    E
- normal    F
+ DAX       TIME              1096 r   01-JAN-1980 00:00    31-DEC-1982 00:00   45 pts
  
 let vwnd_clim = vwnd[gt=month_irreg at mod]
 sh grid vwnd_clim[L=4:9]
@@ -88568,9 +89488,7 @@ sh grid vwnd_clim[L=4:9]
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49        5 pts
- normal    E
- normal    F
+ MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49        6 pts
  
 can dat/all
 use coads_climatology
@@ -88585,19 +89503,15 @@ show grid var
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 let var = sst[y=-30:30 at iin]
 show grid var
     GRID GSQ1
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- COADSY    LATITUDE            90 r   89S                  89N                 29 pts
+ COADSY    LATITUDE            90 r   89S                  89N                 30 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 use levitus_3d_subset
 let var = temp[z=@weq:20]
@@ -88608,8 +89522,6 @@ show grid var
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAXLEVITR DEPTH (m)           20 i-  0                    5000                full
  normal    T
- normal    E
- normal    F
  
 let var = temp[z=1:120 at weq:20]
 show grid var
@@ -88617,10 +89529,8 @@ show grid var
  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                6 pts
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                7 pts
  normal    T
- normal    E
- normal    F
  
  
 ! grid-changing functions
@@ -88635,8 +89545,6 @@ show grid depth_rev
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ABSTRACT  Z             99999999 r   1                    1.E+08              (axis from grid-changing func)
  normal    T
- normal    E
- normal    F
  
 DEFINE AXIS/t=1-Jan-1990:31-Dec-1990:24/t0=1-jan-1980 dayt
 let tpts = t[gt=dayt]
@@ -88649,8 +89557,6 @@ show grid ffta(sample_function)
  normal    Y
  normal    Z
  (AX002)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
- normal    E
- normal    F
  
 show grid ffta(sample_function[t=15-jan-1990:15-jun-1990])
     GRID (G003)
@@ -88659,18 +89565,14 @@ show grid ffta(sample_function[t=15-jan-1990:15-jun-1990])
  normal    Y
  normal    Z
  (AX001)   T (CYC/HOURS)       76 r   0.00027412           0.020833            (axis from grid-changing func)
- normal    E
- normal    F
  
 show grid ffta(sample_function + temp[d=levitus_3d_subset,z=0:40])
     GRID (G005)
  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                3 pts
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                4 pts
  (AX002)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
- normal    E
- normal    F
  
 can dat/all
  
@@ -88689,17 +89591,13 @@ sh grid tempz
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  (AX002)   Z                    5 r   100                  500                 full
  normal    T
- normal    E
- normal    F
 sh grid tempz[z=100:400]
     GRID (G002)
  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                 3 pts
+ (AX002)   Z                    5 r   100                  500                 4 pts
  normal    T
- normal    E
- normal    F
  
 ! and with a grid-changing function thrown in
  
@@ -88719,8 +89617,6 @@ show grid rvtempzax
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
  normal    T
- normal    E
- normal    F
  
 ! gc func: limits are hidden so a subset not seen
  
@@ -88732,8 +89628,6 @@ show grid rvtempzax[z=100:300]
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
  normal    T
- normal    E
- normal    F
 *** Running ferret script: bn_aggregate_f.jnl
 ! bn_aggregate_f.F
 ! 12/2015 *sh*
@@ -88860,18 +89754,18 @@ show data/files my_fmrc
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:11
        (L=1:24)
  
-          Aggregated datasets:
-      1 : tmp/fcst_1.nc
-      2 : tmp/fcst_2.nc
-      3 : tmp/fcst_3.nc
-      4 : tmp/fcst_4.nc
-      5 : tmp/fcst_5.nc
-      6 : tmp/fcst_6.nc
-      7 : tmp/fcst_7.nc
-      8 : tmp/fcst_8.nc
-      9 : tmp/fcst_9.nc
-      10: tmp/fcst_10.nc
-      11: tmp/fcst_11.nc
+          Member datasets:
+      12.1 : tmp/fcst_1.nc
+      12.2 : tmp/fcst_2.nc
+      12.3 : tmp/fcst_3.nc
+      12.4 : tmp/fcst_4.nc
+      12.5 : tmp/fcst_5.nc
+      12.6 : tmp/fcst_6.nc
+      12.7 : tmp/fcst_7.nc
+      12.8 : tmp/fcst_8.nc
+      12.9 : tmp/fcst_9.nc
+      12.10: tmp/fcst_10.nc
+      12.11: tmp/fcst_11.nc
 show data/attr my_fmrc
      currently SET data sets:
    12> my_fmrc  (default)  Forecast aggregation
@@ -89117,18 +90011,18 @@ show data/files my_fmrc
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:11
        (L=1:24)
  
-          Aggregated datasets:
-      1 : tmp/fcst_1.nc
-      2 : (dummy)
-      3 : (dummy)
-      4 : tmp/fcst_4.nc
-      5 : tmp/fcst_5.nc
-      6 : tmp/fcst_6.nc
-      7 : tmp/fcst_7.nc
-      8 : tmp/fcst_8.nc
-      9 : (dummy)
-      10: (dummy)
-      11: tmp/fcst_11.nc
+          Member datasets:
+      12.1 : tmp/fcst_1.nc
+      12.2 : (dummy)
+      12.3 : (dummy)
+      12.4 : tmp/fcst_4.nc
+      12.5 : tmp/fcst_5.nc
+      12.6 : tmp/fcst_6.nc
+      12.7 : tmp/fcst_7.nc
+      12.8 : tmp/fcst_8.nc
+      12.9 : (dummy)
+      12.10: (dummy)
+      12.11: tmp/fcst_11.nc
 show data/brief
      currently SET data sets:
     2> tmp/fcst_2.nc
@@ -89156,6 +90050,7 @@ LIST tf_times
  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.
+ 
 GO bn_aggregate_f.sub
 ! bn_aggregate_f.sub
  
@@ -89378,16 +90273,16 @@ show data/files my_fmrc
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:9
        (L=1:36)
  
-          Aggregated datasets:
-      1: tmp/long_fcst_1.nc
-      2: tmp/fcst_2.nc
-      3: tmp/fcst_3.nc
-      4: tmp/fcst_4.nc
-      5: tmp/fcst_5.nc
-      6: tmp/fcst_6.nc
-      7: tmp/fcst_7.nc
-      8: tmp/fcst_8.nc
-      9: tmp/fcst_9.nc
+          Member datasets:
+      10.1: tmp/long_fcst_1.nc
+      10.2: tmp/fcst_2.nc
+      10.3: tmp/fcst_3.nc
+      10.4: tmp/fcst_4.nc
+      10.5: tmp/fcst_5.nc
+      10.6: tmp/fcst_6.nc
+      10.7: tmp/fcst_7.nc
+      10.8: tmp/fcst_8.nc
+      10.9: tmp/fcst_9.nc
 GO bn_aggregate_f.sub
 ! bn_aggregate_f.sub
  
@@ -89588,15 +90483,15 @@ show data/files my_fmrc
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:8
        (L=1:24)
  
-          Aggregated datasets:
-      1: tmp/fcst_1.nc
-      2: tmp/fcst_2.nc
-      3: tmp/fcst_3.nc
-      4: tmp/fcst_4.nc
-      5: tmp/fcst_5.nc
-      6: tmp/long_fcst_6.nc
-      7: tmp/fcst_7.nc
-      8: tmp/fcst_8.nc
+          Member datasets:
+      9.1: tmp/fcst_1.nc
+      9.2: tmp/fcst_2.nc
+      9.3: tmp/fcst_3.nc
+      9.4: tmp/fcst_4.nc
+      9.5: tmp/fcst_5.nc
+      9.6: tmp/long_fcst_6.nc
+      9.7: tmp/fcst_7.nc
+      9.8: tmp/fcst_8.nc
 GO bn_aggregate_f.sub
 ! bn_aggregate_f.sub
  
@@ -89792,12 +90687,12 @@ show data/files
        (L=7:30)
  TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:5
  
-          Aggregated datasets:
-      1: tmp/fcst_3.nc
-      2: tmp/fcst_4.nc
-      3: tmp/fcst_5.nc
-      4: tmp/one_var_fcst_6.nc
-      5: tmp/fcst_7.nc
+          Member datasets:
+      6.1: tmp/fcst_3.nc
+      6.2: tmp/fcst_4.nc
+      6.3: tmp/fcst_5.nc
+      6.4: tmp/one_var_fcst_6.nc
+      6.5: tmp/fcst_7.nc
 stat/l=1:20 fcst
  
              FIELD + FCST_ERROR
@@ -89841,12 +90736,12 @@ show data/full
  
   time range: 15.228 to 715.73
  
-          Aggregated datasets:
-      1: tmp/fcst_3.nc
-      2: tmp/fcst_4.nc
-      3: tmp/fcst_5.nc
-      4: tmp/one_var_fcst_6.nc
-      5: tmp/fcst_7.nc
+          Member datasets:
+      6.1: tmp/fcst_3.nc
+      6.2: tmp/fcst_4.nc
+      6.3: tmp/fcst_5.nc
+      6.4: tmp/one_var_fcst_6.nc
+      6.5: tmp/fcst_7.nc
     7> my_fmrc  (default)  Forecast aggregation
      Forecast series of 5 datasets patterned on fcst_3.nc
  name     title                             I         J         K         L         M         N
@@ -89860,12 +90755,12 @@ show data/full
  
   time range: 15.228 to 715.73
  
-          Aggregated datasets:
-      1: tmp/fcst_3.nc
-      2: tmp/fcst_4.nc
-      3: tmp/fcst_5.nc
-      4: tmp/one_var_fcst_6.nc
-      5: tmp/fcst_7.nc
+          Member datasets:
+      7.1: tmp/fcst_3.nc
+      7.2: tmp/fcst_4.nc
+      7.3: tmp/fcst_5.nc
+      7.4: tmp/one_var_fcst_6.nc
+      7.5: tmp/fcst_7.nc
  
 ! cancel a component dataset -- used in two aggregations
 cancel data tmp/fcst_4.nc
@@ -89906,14 +90801,14 @@ show data/files
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
        (L=1:24)
  
-          Aggregated datasets:
-      1: tmp/fcst_1.nc
-      2: tmp/fcst_2.nc
-      3: tmp/fcst_3.nc
-      4: tmp/fcst_4.nc
-      5: tmp/fcst_5.nc
-      6: tmp/one_var_fcst_6.nc
-      7: tmp/fcst_7.nc
+          Member datasets:
+      9.1: tmp/fcst_1.nc
+      9.2: tmp/fcst_2.nc
+      9.3: tmp/fcst_3.nc
+      9.4: tmp/fcst_4.nc
+      9.5: tmp/fcst_5.nc
+      9.6: tmp/one_var_fcst_6.nc
+      9.7: tmp/fcst_7.nc
    11> my_fmrc_letd_1     Forecast aggregation
  name     title                             I         J         K         L         M         N
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
@@ -89922,14 +90817,14 @@ show data/files
  FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
        (L=1:24)
  
-          Aggregated datasets:
-      1: tmp/one_var_fcst_1.nc
-      2: tmp/fcst_2.nc
-      3: tmp/fcst_3.nc
-      4: tmp/fcst_4.nc
-      5: tmp/fcst_5.nc
-      6: tmp/fcst_6.nc
-      7: tmp/fcst_7.nc
+          Member datasets:
+      11.1: tmp/one_var_fcst_1.nc
+      11.2: tmp/fcst_2.nc
+      11.3: tmp/fcst_3.nc
+      11.4: tmp/fcst_4.nc
+      11.5: tmp/fcst_5.nc
+      11.6: tmp/fcst_6.nc
+      11.7: tmp/fcst_7.nc
    12> my_fmrc  (default)  Forecast aggregation
  name     title                             I         J         K         L         M         N
  FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
@@ -89938,14 +90833,14 @@ show data/files
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
        (L=1:24)
  
-          Aggregated datasets:
-      1: tmp/fcst_1.nc
-      2: tmp/fcst_2.nc
-      3: tmp/fcst_3.nc
-      4: tmp/fcst_4.nc
-      5: tmp/fcst_5.nc
-      6: tmp/fcst_6.nc
-      7: tmp/fcst_7.nc
+          Member datasets:
+      12.1: tmp/fcst_1.nc
+      12.2: tmp/fcst_2.nc
+      12.3: tmp/fcst_3.nc
+      12.4: tmp/fcst_4.nc
+      12.5: tmp/fcst_5.nc
+      12.6: tmp/fcst_6.nc
+      12.7: tmp/fcst_7.nc
 show data
      currently SET data sets:
     9> my_fmrc_letd_6     Forecast aggregation
@@ -90076,6 +90971,7 @@ set mode/last ignore
 ! 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
  
 ! to avoid re-creating the test files include argument "0" as in
 !  yes?  GO bn_aggregate_tef 0
@@ -90087,7 +90983,7 @@ set mode/last ignore
 ! many time aggregations
 CANCEL MODE VERIFY
  
-show data/files/br
+show data/members/br
      currently SET data sets:
     1> t_f01_e1
           time-dependent data files:
@@ -90434,8 +91330,6 @@ show grid fcst[d=t_f01_e1]
  YAX       LATITUDE            11 r   10N                  20N                 full
  ZAX1      Z (m)                1 r   250                  250                 full
  TRUEMONTH1 TIME               36 i   16-JAN-1950 12:00    16-DEC-1952 12:00   full
- normal    E
- normal    F
 show grid fcst[d=t_f01_e2]
     GRID GFA1
  name       axis              # pts   start                end                 subset
@@ -90443,8 +91337,6 @@ show grid fcst[d=t_f01_e2]
  YAX       LATITUDE            11 r   10N                  20N                 full
  ZAX1      Z (m)                1 r   250                  250                 full
  TRUEMONTH1 TIME               36 i   16-JAN-1950 12:00    16-DEC-1952 12:00   full
- normal    E
- normal    F
  
 ! ======== TEST SET 1:  aggregate E first, then F
  
@@ -90499,12 +91391,12 @@ SHOW DATA/FULL te_f11
  
   time range: 16-JUL-1952 12:00 to 16-JUN-1955 00:00
  
-          Aggregated datasets:
-      1: t_f11_e1
-      2: t_f11_e2
-      3: t_f11_e3
-      4: t_f11_e4
-      5: t_f11_e5
+          Member datasets:
+      67.1: t_f11_e1
+      67.2: t_f11_e2
+      67.3: t_f11_e3
+      67.4: t_f11_e4
+      67.5: t_f11_e5
 SHOW DATA/ATT te_f11   ! notice the promotion of fcst.im_everywhere
      currently SET data sets:
    67> te_f11  (default)  Ensemble aggregation
@@ -90528,7 +91420,7 @@ SHOW DATA/ATT te_f11   ! notice the promotion of fcst.im_everywhere
  
 ! define tef aggregation
 FMRC/HIDE tef = te_f01, te_f02, te_f03, te_f04, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
-SHOW DATA/brief/files
+SHOW DATA/brief/members
      currently SET data sets:
     1> t_f01_e1
           time-dependent data files:
@@ -90567,18 +91459,18 @@ SHOW DATA/brief/files
 16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e3_t3_1v.nc
  
    68> tef  (default)  Forecast aggregation
-          Aggregated datasets:
-      1 : te_f01
-      2 : te_f02
-      3 : te_f03
-      4 : te_f04
-      5 : te_f05
-      6 : te_f06
-      7 : te_f07
-      8 : te_f08
-      9 : te_f09
-      10: te_f10
-      11: te_f11
+          Member datasets:
+      68.1 : te_f01
+      68.2 : te_f02
+      68.3 : te_f03
+      68.4 : te_f04
+      68.5 : te_f05
+      68.6 : te_f06
+      68.7 : te_f07
+      68.8 : te_f08
+      68.9 : te_f09
+      68.10: te_f10
+      68.11: te_f11
 show data/full tef
      currently SET data sets:
    68> tef  (default)  Forecast aggregation
@@ -90598,18 +91490,18 @@ show data/full tef
  
   time range: 15.214 to 1080.2
  
-          Aggregated datasets:
-      1 : te_f01
-      2 : te_f02
-      3 : te_f03
-      4 : te_f04
-      5 : te_f05
-      6 : te_f06
-      7 : te_f07
-      8 : te_f08
-      9 : te_f09
-      10: te_f10
-      11: te_f11
+          Member datasets:
+      68.1 : te_f01
+      68.2 : te_f02
+      68.3 : te_f03
+      68.4 : te_f04
+      68.5 : te_f05
+      68.6 : te_f06
+      68.7 : te_f07
+      68.8 : te_f08
+      68.9 : te_f09
+      68.10: te_f10
+      68.11: te_f11
  
 ! simplest acess -- compact form -- just demonstrate it doesn't fail
 stat/brief fcst[i=11:12, j=5:6, l=31:32, m=1:2, n=5:6]
@@ -90646,7 +91538,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        20   T       FERRET V7  17-Jun-16
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (XAX)                  DOUBLE    units           CHAR        12   T       degrees_east
@@ -91130,7 +92022,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
 use a.nc
 sh att .
      attributes for dataset: ./a.nc
- ..history = FERRET V7  17-Jun-16 
+ ..history = FERRET V7.1  18-Apr-17 
  ..Conventions = CF-1.6 
  ..dt_internal = 15
 sh att elev
@@ -91151,7 +92043,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
 use a.nc
 sh att .
      attributes for dataset: ./a.nc
- ..history = FERRET V7  17-Jun-16 
+ ..history = FERRET V7.1  18-Apr-17 
  ..Conventions = CF-1.6 
 sh att elev
      attributes for dataset: ./a.nc
@@ -91175,11 +92067,9 @@ show grid
     GRID (G009)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX018)   LATITUDE           201 r   10S                  10N                 200 pts
+ (AX018)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
- normal    E
- normal    F
  
 ! LIST/DAT=, LET/DAT=,
 can dat/all
@@ -91198,7 +92088,6 @@ list/DAT=3 a
 list/DAT=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : levitus_climatology.cdf
-             X        : 1
         "From levitus_climatology"
  
 ! PLOT, SHADE, FILL, CONTOUR, VECTOR, STAT
@@ -91208,8 +92097,8 @@ let/DAT=2 temp = sst + 0*z[z=1:5:1]
 sh dat 2
      currently SET data sets:
     2> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
  TEMP[D=coads_climatology] = SST + 0*Z[Z=1:5:1]
  
@@ -91275,9 +92164,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  1.21  seconds
-Second 10K LET commands LET a = 0 takes  2.779  seconds
-5K LOAD with transform takes  3.996  seconds
+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
 *** Running ferret script: bn_show_noupcase.jnl
 ! bn_show_noupcase.jnl
 ! 1/2016 ticket 1796
@@ -91301,12 +92190,10 @@ show var
 show grid MyUpperLowerCaseVar
     GRID (G001)
  name       axis              # pts   start                end                 subset
- ABSTRACT  X             99999999 r   1                    1.E+08              9 pts
+ ABSTRACT  X             99999999 r   1                    1.E+08              10 pts
  normal    Y
  normal    Z
  tday      TIME                31 r   01-JAN-1999 00:00    31-JAN-1999 00:00   full
- normal    E
- normal    F
  
  
 ! Files have variable and axis names in mixed case.
@@ -91316,14 +92203,14 @@ USE a_cartesian_bug1179.nc
 show data
      currently SET data sets:
     1> ./a1478.nc
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  lat1_5_bnds
-                                           1:2       1:5       ...       ...       ...       ...
- olr      outgoing longwave radiation      1:5       1:5       ...       1:3       ...       ...
+                                           1:2       1:5       ...       ...
+ olr      outgoing longwave radiation      1:5       1:5       ...       1:3
  
     2> ./a_cartesian_bug1179.nc  (default)
- name     title                             I         J         K         L         M         N
- temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
+ name     title                             I         J         K         L
+ temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1
  
  
 ! Previously the RETURN= gave the capitalized axis names
@@ -91357,21 +92244,22 @@ LET/D=2 newvar =  0*zvar[d=2] + olr[d=1]
 show data
      currently SET data sets:
     1> ./a1478.nc
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  lat1_5_bnds
-                                           1:2       1:5       ...       ...       ...       ...
- olr      outgoing longwave radiation      1:5       1:5       ...       1:3       ...       ...
+                                           1:2       1:5       ...       ...
+ olr      outgoing longwave radiation      1:5       1:5       ...       1:3
  ------------------------------
  zvar[D=a1478] = 2*TEMP[D=2]
  
     2> ./a_cartesian_bug1179.nc  (default)
- name     title                             I         J         K         L         M         N
- temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
+ name     title                             I         J         K         L
+ temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1
  ------------------------------
  newvar[D=a_cartesian_bug1179] = 0*ZVAR[D=2] + OLR[D=1]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
  
 ! xml output
@@ -91995,12 +92883,12 @@ SHO DATA/VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
 <attribute name="long_name" type="char">
    <value><![CDATA[TEMP[X=79E:79E at AVE]]]></value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GHU1">
 <axes>
 <yaxis>grid_y_T</yaxis>
@@ -92338,6 +93226,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GHU1">
 <axes>
 <xaxis>grid_x_T</xaxis>
@@ -92369,8 +93260,8 @@ let/d=1/title="coads myvar" myvar = 1
 show dat 1
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
  MYVAR[D=coads_climatology] = 1
  
@@ -92433,8 +93324,8 @@ let/d=2/title="Levitus myvar" myvar = 2
 show dat 2
      currently SET data sets:
     2> ./levitus_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:160     1:90      1:1       ...       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:160     1:90      1:1       ...
  ------------------------------
  MYVAR[D=levitus_climatology] = 2
  
@@ -92507,12 +93398,12 @@ cancel var/all
 show dat
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
     2> ./levitus_climatology.cdf
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:160     1:90      1:1       ...       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:160     1:90      1:1       ...
  
  
 show dat/att 2
@@ -92792,6 +93683,27 @@ can dat/all; use a.nc
 list/nohead/norow c.climatology_time_range
  "Multiple time ranges used"
  
+ 
+! The attribute created only for user-defined variables not for an expression
+!
+! Define a monthly axis
+define axis/t=1-feb-1980:1-feb-2003/npoints=276/unit="day"/t0=1-jan-1900 tax
+ 
+let tvar = t[gt=tax]
+let clim1 = tvar[gt=month_irreg at mod]
+save/nobounds/file=a.nc/clobber 3*clim1
+ 
+can dat/all; use a.nc
+ 
+! The variable did not get a climatology_time_range attribute
+let vname = ..varnames
+show att `vname[i=1]`
+ !-> show att E494
+     attributes for dataset: ./a.nc
+ E494.missing_value = -1.E+34
+ E494._FillValue = -1.E+34
+ E494.long_name = 3*CLIM1 
+ 
 *** Running ferret script: bn_plot_along.jnl
 ! BN_PLOT_ALONG
  
@@ -92942,12 +93854,12 @@ sho command sho
  SHOW EXPRSION/ALL
  SHOW LIST/ALL
  SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
-       /HIDDEN
+       /HIDDEN/MEMBERS
  SHOW MODE/ALL
  SHOW MOVIE/ALL
  SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
  SHOW COMMANDS/ALL/BRIEF
- SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+ SHOW MEMORY/ALL/DIAGNOST/TEMPORY/PERMANT/FREE
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
  SHOW VIEWPORT/ALL
  SHOW TRANFORM/ALL
@@ -92970,7 +93882,7 @@ sho command sho l  ! SHOW LIST
  SHOW LIST/ALL
 sho command sho d  ! SHOW DATA
  SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
-       /HIDDEN
+       /HIDDEN/MEMBERS
 sho command sho m  ! SHOW MODE
  SHOW MODE/ALL
 sho command sho mov! SHOW MOVIE
@@ -92980,7 +93892,7 @@ sho command sho v  ! SHOW VARIABLE
 sho command sho c  ! SHOW COMMANDS
  SHOW COMMANDS/ALL/BRIEF
 sho command sho me ! SHOW MEMORY
- SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+ SHOW MEMORY/ALL/DIAGNOST/TEMPORY/PERMANT/FREE
 sho command sho g  ! SHOW GRID
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
 sho command sho vi ! SHOW VIEWPORT
@@ -93063,13 +93975,13 @@ sho command def
  DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+         /EDGES/CALENDAR/BOUNDS/QUIET/MONTHLY/LIKE
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
  DEFINE ALIAS
  DEFINE SYMBOL
  DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE/U
  DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
 sho command def r  ! DEFINE REGION
  DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
@@ -93080,7 +93992,7 @@ sho command def v  ! DEFINE VARIABLE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
 sho command def a  ! DEFINE AXIS
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+         /EDGES/CALENDAR/BOUNDS/QUIET/MONTHLY/LIKE
 sho command def vi ! DEFINE VIEWPORT
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
 sho command def al ! DEFINE ALIAS
@@ -93092,7 +94004,7 @@ sho command def at ! DEFINE ATTRIBUTE
 sho command def P  ! DEFINE PYFUNC
  DEFINE PYFUNC/NAME
 sho command def d  ! DEFINE DATA
- DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE/U
 sho command def an ! DEFINE ANNOTATE
  DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
  
@@ -93255,14 +94167,16 @@ sho command/brief sp
 sho command/brief st
  STAT
 sho command/brief u
- USER
+ Not a recognized command: u
+ 
+ Use SHOW ALIAS to see alternative command names
 sho command/brief v
  VECTOR
  
  
 ! All the commands, no subcommands, no qualifiers
 SHOW COMMAND/BRIEF
- Commands in Program FERRET  version7:
+ Commands in Program FERRET  version7.1:
  SET
  SHOW
  CANCEL
@@ -93282,7 +94196,6 @@ SHOW COMMAND/BRIEF
  STAT
  SHADE
  SPAWN
- USER
  WIRE
  QUERY
  IF
@@ -93416,6 +94329,7 @@ PLOT/SKIP=($deci)/ALONG=t ens_sin_block[i=1,j=2,k=3]
 ! 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.
 ! (later make this the default setting??)
+! acm* 3/17 check the URL with TEST_OPENDAP befor trying to open it.
  
 set mode calendar:auto
 show mode calendar
@@ -93522,12 +94436,16 @@ shade/title="hours "/l=3/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
 LAB2 = "TIME : 01-JAN-2001 12:00"
  
 ! Reynolds SST weekly, even 7-day spacing
-use http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc
+ 
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc") NE 0` THEN EXIT/SCRIPT
+ !-> IF 0 THEN EXIT/SCRIPT
+ 
+use http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc
 list/x=180/y=0/l=20:25 fsst
              VARIABLE : Filtered Weekly SST Means (deg C)
              DATA SET : Reynolds Optimum Interpolation Weekly SST Analysis
              FILENAME : reynolds_sst_wk.nc
-             FILEPATH : http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
+             FILEPATH : http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/
              SUBSET   : 6 points (TIME)
              LONGITUDE: 179.5E
              LATITUDE : 0.5S
@@ -93655,313 +94573,7654 @@ list/nohead ..coordnames
  1   / 1:"XAX"    
  2   / 2:"ZAX"    
  3   / 3:"XAX1_10"
-*** 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
-! frame/file=bnplot.gif....will create three gif files
-! *kob*
+*** Running ferret script: bn710_bug_fixes.jnl
+! bn710_bug_fixes.jnl
+! test various fixes that went into version 7.1
+! 6/16 *acm*
+!
  
+! Bug 2445 missing or repeated coords when axis marked as regular
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_reg_axis_check
+! err700_reg_axis_check.jnl
+! Ticket 2445: regular axis, test for valid line_delta
+! ACM 7/6/2016
  
-can mode logo
+use bug2445.nc
+show data
+     currently SET data sets:
+    1> ./bug2445.nc  (default)
+ name     title                             I         J         K         L
+ XAX                                       1:5       ...       ...       ...
+       (invalid coordinate axis)
+ YAX                                       ...       1:3       ...       ...
+       (invalid coordinate axis)
+ XX       X[GX=xax]                        1:5       ...       ...       ...
+ YY       Y var                            ...       1:3       ...       ...
  
-! define a 6 viewport window (modified definitions 11/92)
-def view/text=.4/xlim=0,.333/ylim=0,.5    ll6
-def view/text=.2/xlim=0,.333/ylim=.5,1    ul6
-def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6
-def view/text=.6/xlim=.333,.666/ylim=.5,1 um6
-def view/text=1.5/xlim=.666,1/ylim=0,.5   lr6
-def view/xlim=.666,1/ylim=.5,1            ur6     ! auto /TEXT
-show view
  
- name             text    xlimits     ylimits    mode
+! Repeated coordinates in first 2 coordinates of x axis.
+list xx
+             VARIABLE : X[GX=xax]
+             FILENAME : bug2445.nc
+             SUBSET   : 5 points (X)
+ 1   / 1:  1.000
+ 2   / 2:  2.000
+ 3   / 3:  3.000
+ 4   / 4:  4.000
+ 5   / 5:  5.000
+list xax
+             VARIABLE : XAX
+                        invalid coordinate axis
+             FILENAME : bug2445.nc
+             SUBSET   : 5 points (X)
+ 1   / 1:  1.000
+ 2   / 2:  1.000
+ 3   / 3:  1.000
+ 4   / 4:  1.000
+ 5   / 5:  1.000
+ 
+! Missing coordinate in first 2 coordinates of y axis.
+! Coordinate data cannot be missing.
+list yy
+             VARIABLE : Y var
+             FILENAME : bug2445.nc
+             SUBSET   : 3 points (Y)
+ 1   / 1:  10.00
+ 2   / 2:  20.00
+ 3   / 3:  30.00
+list yax
+             VARIABLE : YAX
+                        invalid coordinate axis
+             FILENAME : bug2445.nc
+             SUBSET   : 3 points (Y)
+ 1   / 1:  1.000E+00
+ 2   / 2:  9.969E+36
+ 3   / 3:  1.000E+00
  
- UPPER            1.00   0.00,1.00   0.50,1.00   edges
- LOWER            1.00   0.00,1.00   0.00,0.50   edges
- RIGHT            1.00   0.50,1.00   0.00,1.00   edges
- LEFT             1.00   0.00,0.50   0.00,1.00   edges
- LL               0.50   0.00,0.50   0.00,0.50   edges
- LR               0.50   0.50,1.00   0.00,0.50   edges
- UL               0.50   0.00,0.50   0.50,1.00   edges
- UR               0.50   0.50,1.00   0.50,1.00   edges
- FULL             1.00   0.00,1.00   0.00,1.00   edges
- LL6              0.40   0.00,0.33   0.00,0.50   edges
- UL6              0.20   0.00,0.33   0.50,1.00   edges
- LM6              0.10   0.33,0.67   0.00,0.50   edges
- UM6              0.60   0.33,0.67   0.50,1.00   edges
- LR6              1.50   0.67,1.00   0.00,0.50   edges
- UR6              0.41   0.67,1.00   0.50,1.00   edges
-   current viewport is NONE
+! Bug 2446 include script name on warning about unclosed IF block
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_unclosed_if
+! err71_unclosed_if.jnl
+! Ticket 2446
+! Add the script name when reporting an unclosed IF block
+! ACM 7/2016
  
-! some variables for plotting
-let a = 0.8*sin(l/10)
-let b = 0.6*cos(l/10)
-let c = sin(100/(l+k))
-let d = l/50
-let e = k-(l/25)
-let f = -.5+(l/125)
-let g = (l-25)/(k*35)
-let h = 0.1
-let m = 0.2
+go unclosed_if.sub
  
-! illegal plot commands
-set mode ignore
-plot/i=1:10/j=1:20/nolabel i+j			! not a line
-plot/i=1:10/j=1:20/nolabel i,i+j		! not a line
-plot/i=1:10/j=1:20/nolabel i+j,i		! not a line
-plot/i=1:10/j=1:20/nolabel j,i			! differing axes
-plot/i=1:10/j=1:20/vs/line/nolabel j,i		! unequal lengths
-contour/i=1:10/j=1:20/nolabel i			! only 1 D
-contour/i=1:10/j=1:20/nolabel i/j,j/i		! multiple fields
-vector/i=1:10/j=1:20/nolabel i/j		! only 1 field
-vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j	! 3 fields
-set mode/last ignore
+let a = 1
+if `a eq 1` THEN
+ !-> if 1 THEN
+SAY YES
+YES
+let b = 1
  
-! notice the default window size is 10.2,width x 8.8,height
-ppl list plot
-         WIDTH=   10.20  HEIGHT=    8.80  TKTYPE=    0  BAUD=  110
-         WINDOW= ON   BOX= OFF  CROSS= 0  PLTYPE=  3
-         PLOT MODE=   A
-         PLOT FILE= .gif                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     [...]
  
-! enlarge it to accomodate an additional 50% width
-ppl size 15.3,8.8
+! Bug 2446 inheriting attributes
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_inherit_all
+! err700_inherit_all.jnl
+! Ticket 2447: If all attributes are inherited, missing-value flags
+! are wrong.
+ 
+! This non-standardfile has no missing-value attributes.
+use no_miss_att.nc
+sh att a
+     attributes for dataset: ./no_miss_att.nc
+ A.min_value = 1
+ A.max_value = 3
+ A.long_name = {1,2,3} 
+ 
+! Define a variable, using some missing-value flag
+let/bad=9999 b = if a ne 2 then a else 9999
+list b
+             VARIABLE : IF A NE 2 THEN A ELSE 9999
+             FILENAME : no_miss_att.nc
+             SUBSET   : 3 points (X)
+ 1   / 1:  1.000
+ 2   / 2:   ....
+ 3   / 3:  3.000
  
-! turn on metafile (enabled 10/29/91)
-! commented out 9/97 - instead set in bn450_all.jnl
-! set mode metafile
+! Now inherit the attributes from variable a.
+set att/like=a b
+show att b
+     attributes for user-defined variables
+ b.missing_value = 9999
+ b.min_value = 1
+ b.max_value = 3
+ b.long_name = {1,2,3} 
  
-! draw a plot into a viewport - to be deleted (check hard copy)
-set view ll6
-contour/i=1:50/j=1:50/nolabel i/(j+20)
+! The missing-value flag is not written, but the value 9999 is
+save/file=a.nc/clobber b
  
-! 4 frames testing PLOT output
-set view ul6
-plot/l=1:50/k=1/trans/nolabel a,b,c
-plot/l=1:50/k=1/trans/over/line=6/nolabel d
-plot/l=1:50/k=1/trans/over/symbol=88/nolabel e
-plot/l=1:50/k=1/trans/over/symbol=47/line/nolabel f
-def view/text=.1/xlim=.333,1/ylim=0,.5 lm6   ! redefine longer in x (11/92)
-set view lm6
-!ppl axlen 16
-set region/k=1
-plot/l=1:50/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
-def view/text=.6/xlim=.333,1/ylim=.5,1 um6    ! redefine it longer in x (11/92)
-set view um6
-!ppl axlen 17,5
-plot/l=1:50/nolabel sin(100/(l+5))
-plot/l=1:50/over/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
-set view ll6
-!ppl axlen 8,6
-plot/l=1:99000/nolabel sin(200000/(l+10000))
+can var/all
+use a
  
-! reset to normal axis lengths and prepare for a new piccie
-!ppl axlen 8
-frame/file=bnplot_1.gif
-set wind/clear
+! Element 2 should be missing. Previously lists out the 9999.
+list b
+             VARIABLE : {1,2,3}
+             FILENAME : a.nc
+             SUBSET   : 3 points (X)
+ 1   / 1:  1.000
+ 2   / 2:   ....
+ 3   / 3:  3.000
  
-! draw six frames
-set view ll6
-contour/i=1:50/j=1:50/levels=(0,2.5,.25)/nolabel i/(j+20)
-plot/over/nolab/vs/line/i=1:50/j=1:50/nolabel 6*i/j,5*j/i
-set view ul6
-vector/i=1:50/j=1:50/length=50/aspect/nolabel sin(i/20)*10+j-20,-1*cos(j/10)*10+i-20
-def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6  ! redefine it (11/92)
-set view lm6
-shade/i=1:50/j=1:50/nolabel i/(j+20)
-set view lr6
-ppl lev () (0,2.5,.1)
-shade/i=1:50/j=1:50/line/level/nolabel i/(j+20)
-set view ur6
-let icomp = (sin(i/20)*10+j-20)
-let jcomp = (-1*cos(j/10)*10+i-20)
-contour/i=1:50/j=1:50/nolabel icomp^2+jcomp^2
-contour/i=1:50/j=1:50/over/level/nolabel icomp^2+(-1*cos(i/10)*80)^2
-! note: "i-i" and "j-j" are needed to create 2D structures
-vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
-vector/i=1:50/j=1:50/overlay/length/nolabel i-20+(j-j),40-j+(i-i)
-def view/text=.6/xlim=.333,.666/ylim=.5,1 um6    ! redefine it (11/92)
-set view um6
-shade/i=1:50/j=1:50/nolabel i/(j+20)
-contour/i=1:50/j=1:50/over/nolabel (sin(i/20)+j-20)^2+(-1*cos(j/10)+i-20)^2
-vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
-frame/file=bnplot_2.gif
-! additions for version 3.01 "/TITLE=" controls
-cancel viewports
-set view ul6
-plot/title="My Custom Title"/i=1:100/nolabel sin(i/6)
-plot/title="My Custom Key"/i=1:100/over/nolabel sin(i/5)
-set view um6
-plot/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9)
-plot/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-set view ur6
-plot/vs/line/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9)
-plot/vs/line/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-set view ll6
-plot/vs/line/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
-plot/vs/line/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-set view lm6
-contour/i=1:20/j=1:20/title="My Contour Title"/nolabel sin(i/3)*cos(j/4)
-contour/over/i=5:30/j=5:30/title="My Contour Overlay"/nolabel sin(i/2)*cos(j/3)
-set view lr6
-wire/view=0,0,2/i=1:20/j=1:20/title="My Egg Carton"/nolabel sin(i/3)*cos(j/4)
  
-! addition for 3.20 showing changed default behavior of plot/vs
-! return to window and redraw with symbols
-set view ll6
-plot/vs/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
-plot/vs/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-frame/file=bnplot_3.gif
+! Bug 2458  Subspan modulo grids and SAMPLEXY
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_samplexy_subspan_modulo
+! err700_samplexy_subspan_modulo.jnl
+! 7/29/2016 ACM
+! Ticket 2458. The result of SAMPLEXY wrong when it needs
+! to do a modulo operation on a subspan modulo axis
  
-! Prior to v5.8 could not get the window size in pixels when in gif mode
-show symbol ppl$xpixel
-PPL$XPIXEL = "1152"
-show symbol ppl$ypixel
-PPL$YPIXEL = "662"
+! Define a grid with a subspan longitude axis
  
-! V6.13
-! transparency with FRAME/TRANS
-!!
-! These gif images have the background color white or black
-! replaced by transparent color. This can be tested by putting
-! them into an HTML document with a colored background.
-! e.g. a file called test_transparent.html containing only this line:
-! <html> <body bgcolor="orange"> <img src="testfile.gif"/> </body> </html>
+define axis/x=-100:-60:5/units=degrees_east xaxis
+define axis/y=18:30:2/units=degrees_north yaxis
+let var = x[gx=xaxis]+100 + 0.3*y[gy=yaxis]
  
-can view
-use coads_climatology
-shade/nokey/lev=50 sst[L=1]
-frame/trans/file=testbackground.gif
+save/clobber/file=a.nc var
+can var/all; use a
  
-! moved here from bn500_bug_fixes.jnl. The frame/  command it contains
-! has trouble when running the benchmarks from remote desktop
-go bn_reset
-cancel mode verify
-go err491_long_gif_name
-! err491_long_gif_name.jnl
-! *sh* 4/99 - test 175 character gif name
+list/y=22 var
+             VARIABLE : X[GX=XAXIS]+100 + 0.3*Y[GY=YAXIS]
+             FILENAME : a.nc
+             SUBSET   : 9 points (LONGITUDE)
+             LATITUDE : 22N
+                22N   
+                 3
+ 100W    / 1:   6.60
+ 95W     / 2:  11.60
+ 90W     / 3:  16.60
+ 85W     / 4:  21.60
+ 80W     / 5:  26.60
+ 75W     / 6:  31.60
+ 70W     / 7:  36.60
+ 65W     / 8:  41.60
+ 60W     / 9:  46.60
+list samplexy(var, {-80,80}, {22,22})
+             VARIABLE : SAMPLEXY(VAR, {-80,80}, {22,22})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60
+ 2   / 2:   ....
  
-! name length extended with changes to save_frame.F and xeq_frame.F
+list samplexy(var, -80, 22)       ! this is ok, in the native range of the axis
+             VARIABLE : SAMPLEXY(VAR, -80, 22)
+             FILENAME : a.nc
+             X        : 1
+          26.60
+list samplexy(var, `360-80`, 22)  ! this was wrong
+ !-> list samplexy(var, 280, 22)
+             VARIABLE : SAMPLEXY(VAR, 280, 22)
+             FILENAME : a.nc
+             X        : 1
+          26.60
+list samplexy_closest(var, `360-80`, 22)  ! is ok
+ !-> list samplexy_closest(var, 280, 22)
+             VARIABLE : SAMPLEXY_CLOSEST(VAR, 280, 22)
+             FILENAME : a.nc
+             X        : 1
+          26.60
  
-set wind/siz=0.03
-go ptest
-! Description: create a simple test line plot
+! Looking for a point that is not, even in a modulo sense, in the subpsan axis
  
-! spirograph picture ...
-PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
+list samplexy(var, {-80,80}, {22,22})
+             VARIABLE : SAMPLEXY(VAR, {-80,80}, {22,22})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60
+ 2   / 2:   ....
+list samplexy(var, {`360-80`,80}, {22,22})
+ !-> list samplexy(var, {280,80}, {22,22})
+             VARIABLE : SAMPLEXY(VAR, {280,80}, {22,22})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60
+ 2   / 2:   ....
+list samplexy_closest(var, {`360-80`,80}, {22,22})
+ !-> list samplexy_closest(var, {280,80}, {22,22})
+             VARIABLE : SAMPLEXY_CLOSEST(VAR, {280,80}, {22,22})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60
+ 2   / 2:   ....
  
+! interpolation between grid points
  
-sp rm -f abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy*
+cancel mode interpolate
+list/y=21.2/x=277.7 var
+             VARIABLE : X[GX=XAXIS]+100 + 0.3*Y[GY=YAXIS]
+             FILENAME : a.nc
+             LONGITUDE: 80W
+             LATITUDE : 22N
+          26.60
+set mode interpolate; list/y=21.2/x=277.7 var; cancel mode interpolate
+             VARIABLE : X[GX=XAXIS]+100 + 0.3*Y[GY=YAXIS]
+             FILENAME : a.nc
+             LONGITUDE: 82.3W (interpolated)
+             LATITUDE : 21.2N (interpolated)
+          24.06
  
-frame/file="abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.gif"
+! These should match the MODE INTERPOLATE result (the second was wrong).
  
-spawn ls abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy*
-abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.gif
+list samplexy(var, {-82.3,82.3}, {21.2,21.2})
+             VARIABLE : SAMPLEXY(VAR, {-82.3,82.3}, {21.2,21.2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  24.06
+ 2   / 2:   ....
+list samplexy(var, {`360-82.3`,82.3}, {21.2,21.2})
+ !-> list samplexy(var, {277.7,82.3}, {21.2,21.2})
+             VARIABLE : SAMPLEXY(VAR, {277.7,82.3}, {21.2,21.2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  24.06
+ 2   / 2:   ....
  
+! this should match the non-MODE INTERPOLATE result
+list samplexy_closest(var, {`360-82.3`,82.3}, {21.2,21.2})
+ !-> list samplexy_closest(var, {277.7,82.3}, {21.2,21.2})
+             VARIABLE : SAMPLEXY_CLOSEST(VAR, {277.7,82.3}, {21.2,21.2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60
+ 2   / 2:   ....
  
-! The fix for bug 1396
-set v ul; plot/dash x[gx=0:20:.5]
-set v ur; plot/dash x[gx=0:20:.1]
-set v ll; plot/dash x[gx=0:20:.05]
-set v lr; plot/dash x[gx=0:20:.01]
-frame/file=gif_dashbug.gif
+can dat/all
  
-! Restore size
-set win/siz=1/asp=1
+! Test samplexyt functions
  
-! New benchmark gif outputs in v6.97
+define axis/t=1:5:1 tax
+let vart = x[gx=xaxis]+100 + 0.3*y[gy=yaxis] + 0*t[gt=tax]
+save/clobber/file=a.nc vart
+can var/all; use a
+ 
+list vart[x=-80,y=21,t=2]
+             VARIABLE : X[GX=XAXIS]+100 + 0.3*Y[GY=YAXIS] + 0*T[GT=TAX]
+             FILENAME : a.nc
+             LONGITUDE: 80W(-80)
+             LATITUDE : 20N
+             T        : 2
+          26.00
+list samplexyt(vart, {-82.3,82.3}, {21.2,21.2}, {2,2})
+             VARIABLE : SAMPLEXYT(VART, {-82.3,82.3}, {21.2,21.2}, {2,2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  24.06
+ 2   / 2:   ....
+list samplexyt(vart, {`360-82.3`,82.3}, {21.2,21.2}, {2,2})
+ !-> list samplexyt(vart, {277.7,82.3}, {21.2,21.2}, {2,2})
+             VARIABLE : SAMPLEXYT(VART, {277.7,82.3}, {21.2,21.2}, {2,2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  24.06
+ 2   / 2:   ....
+list samplexyt_nrst(vart, {`360-82.3`,82.3}, {21.2,21.2}, {2,2})
+ !-> list samplexyt_nrst(vart, {277.7,82.3}, {21.2,21.2}, {2,2})
+             VARIABLE : SAMPLEXYT_NRST(VART, {277.7,82.3}, {21.2,21.2}, {2,2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60
+ 2   / 2:   ....
+ 
+! Full-span modulo grid is ok
+ 
+use coads_climatology
+list/l=1/x=-80/y=22 sst
+             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+             FILENAME : coads_climatology.cdf
+             LONGITUDE: 81W(-81)
+             LATITUDE : 21N
+             TIME     : 16-JAN 06:00
+          26.59
+list samplexy(sst[l=1], -80, 22)
+             VARIABLE : SAMPLEXY(SST[L=1], -80, 22)
+             FILENAME : coads_climatology.cdf
+             X        : 1
+             TIME     : 16-JAN 06:00
+          26.04
+list samplexy(sst[l=1], `360-80`, 22)
+ !-> list samplexy(sst[l=1], 280, 22)
+             VARIABLE : SAMPLEXY(SST[L=1], 280, 22)
+             FILENAME : coads_climatology.cdf
+             X        : 1
+             TIME     : 16-JAN 06:00
+          26.04
+list samplexy_closest(sst[l=1], `360-80`, 22)
+ !-> list samplexy_closest(sst[l=1], 280, 22)
+             VARIABLE : SAMPLEXY_CLOSEST(SST[L=1], 280, 22)
+             FILENAME : coads_climatology.cdf
+             X        : 1
+             TIME     : 16-JAN 06:00
+          26.59
+ 
+list samplexyt(sst, -80, 22, `t[gt=sst,l=1]`)
+ !-> list samplexyt(sst, -80, 22, 366)
+             VARIABLE : SAMPLEXYT(SST, -80, 22, 366)
+             FILENAME : coads_climatology.cdf
+             X        : 1
+          26.04
+ 
+ 
+! Bug 2463  SHADE/LEVELS and single-color data
 go bn_reset
 cancel mode verify
-GO bn_hovmuller_overlays
-! bn_hovmuller_overlays.jnl
-! Previously a time series plot overlaid oon a Hovmuller plot did not
-! work unless the time axis of the original data had units of hours.
-! See ticket 2344
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_levels_one_level
+! err700_levels_one_level.jnl
+! Ticket 2436. If the data has just one value, then shade it with
+! the correct color taken from the /LEVELS and /PALETTE settings
  
-! 1/6/2016 ACM
+use coads_climatology
+set view ul
+shade/l=1/lev=(0,30,5)  sst
  
-! run this in the gif benchmarks.
+! These single-valued expressions should get the correct color from the color bar
  
+set view ur
+shade/l=1/lev=(0,30,5)  if sst gt 25 and sst le 30 then 28
+set view ll
+shade/l=1/lev=(0,30,5)  if sst gt 15 and sst le 20 then 18
+set view lr
+shade/l=1/lev=(0,30,5)  if sst gt  0 and sst le  5 then  3
+frame /file=levels_one_level.gif
+can view
  
-def view/xlim=0,.333/ylim=.5,1    ul6
-def view/xlim=.333,.666/ylim=.5,1 um6
-def view/xlim=.666,1/ylim=.5,1    ur6
-def view/xlim=0,.333/ylim=0,.5    ll6
-def view/xlim=.333,1/ylim=0,.5    lr6
+! Bug xxxx  Only examine key labels that are actually going to be printed
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_key
+use coads_climatology
+set window/aspect=0.7 1
+shade/levels="(-inf)(0,1.3,0.025)(inf)"/key=continuous/set_up sst[t=@ave]*5e-2
+ppl shakey 1, 1, 0.12, 4, -1, 4
+ppl shade
+frame /file=err700_key.gif
  
-! The example from the FAQ, "Overlaying a time series on a 2D plot"
-set view ul6
+! Bug 2468 Symbol AX_HORIZ corrupted by an overlay
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_ax_horiz
+! err700_ax_horiz.jnl
+! 8/30/2016 *acm* Ticket 2468
+! Symbol axis_horiz was corrupted by overlaying a
+! set of points using a list in other than the same
+! direction as the axis.
  
-! Define a 2D field in YT with a time axis in units of DAYS
-DEFINE AXIS/T="1-JAN-1980":"1-JAN-1990":5/UNITS=DAYS tdays
-DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
+use coads_climatology
+shade/l=1/pal=grayscale/x=100:140/y=-10:30 sst
  
-LET/TITLE=XY my_var = 10*cos(T[gt=tdays]/2000)*EXP((-1)*y[gy=yax]/20)
+let xpts={111,115,120,129}
+let ypts = {-5,10,20,23}
  
-! make a Hovmoller plot
  
-SHADE my_var
+! this is ok; ax_horiz = X, ax_vert = y
+plot/vs/oversym/color=red/thick/siz=0.2 xpts,ypts
+sh sym ax*
+AX_HORIZ = "X"
+AX_VERT = "Y"
  
-! This did not work previously.  Needed to re-define the axis in units of hours
-PLOT/OVER my_var[Y=@loc:-4]
+! Now overlay points whose grid is in the E direction
  
+let expts = esequence(xpts)
+let eypts = esequence(ypts)
+shade/l=1/pal=grayscale/x=100:140/y=-10:30 sst
+plot/vs/oversym/color=red/thick/siz=0.2 expts,eypts
  
-! XT variable
-set view um6
+! this was incorrect, ax_horiz had changed to E
+sh sym ax*
+AX_HORIZ = "X"
+AX_VERT = "Y"
  
-DEFINE AXIS/X=0:40E:1/UNITS=DEGREES xax
-LET/TITLE="XT" my_var = 10*cos(T[gt=tdays]/20)*EXP((-1)*x[gx=xax]/20)
-SHADE/t=1-jan-1987:1-jan-1989 my_var
-PLOT/OVER/TRANS/THICK my_var[x=@loc:-4]
+! Bug 2470 Symbol LEV_DEL incorrect on a LEV=(lo,hi,delta)
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_lev_del_symb
+! err700_lev_del_symb.jnl
+! 9/9/2016
+! Ticket 2470: Symbol LEV_DEL was erroneously marked as Irregular
+! Also, the symbols LEV_MIN and LEV_MAX are changed to say open-ended
+! when (-inf), (inf) or /lev=v is used.
  
+use coads_climatology
  
-! Irregular time axis
-set view ur6
  
-DEFINE AXIS/T0=1-jan-2001/UNITS=DAYS tdays = {1,2,4,5,6,8,9,10,12,30,35,41,42,44,45,46,48,49,50,58}
-DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
-LET my_var = 10*cos(T[gt=tdays])*EXP((-1)*y[gy=yax]/8)
+! LEV_DEL should be regular
+shade/lev=(16.4,24.4,0.4) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(16.4,24.4,0.4)"
+LEV_MIN = "16.4"
+LEV_MAX = "24.4"
+LEV_NUM = "20"
+LEV_DEL = "0.4"
  
-FILL/title="irregular t" my_var
-PLOT/OVER/thick/y=8 my_var+10
+shade/lev=(16)(16.4)(16.8)(17.2)(17.6) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(16)(16.4)(16.8)(17.2)(17.6)"
+LEV_MIN = "16"
+LEV_MAX = "17.6"
+LEV_NUM = "4"
+LEV_DEL = "0.4"
  
+shade/lev=(22) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(22)"
+LEV_MIN = "22"
+LEV_MAX = "22"
+LEV_NUM = "1"
+LEV_DEL = "none"
  
-! Like the dataset example from the FAQ
-set view ll6
+! LEV_DEL should be irregular
  
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
-set region/x=40w/y=10n:60n/t=15-jan-1982:15-dec-1983
-shade sst
-plot/over/thick/TITLE="at 20"  sst[y=@LOC:20]
+shade/lev=(16.4,24.4,0.4)(inf) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(16.4,24.4,0.4)(INF)"
+LEV_MIN = "16.4"
+LEV_MAX = "open-ended"
+LEV_NUM = "21"
+LEV_DEL = "irregular"
  
-can data/all
-can region
+shade/lev=20v sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "20V"
+LEV_MIN = "open-ended"
+LEV_MAX = "open-ended"
+LEV_NUM = "19"
+LEV_DEL = "irregular"
+LEV_OPNLEVS = "(-inf)(16,19.1,1.05)(19.5,26,0.5)(25.7,25.7,1.05)(inf)"
  
-! vector plots with a time series
-set view lr6
+shade/lev=(16.4,24.4,0.4)(24.4,28.1,0.1) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(16.4,24.4,0.4)(24.4,28.1,0.1)"
+LEV_MIN = "16.4"
+LEV_MAX = "28.1"
+LEV_NUM = "57"
+LEV_DEL = "irregular"
  
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf"
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_vwnd.cdf"
+shade/lev=(5)(16.4,24.4,0.4) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(5)(16.4,24.4,0.4)"
+LEV_MIN = "5"
+LEV_MAX = "24.4"
+LEV_NUM = "21"
+LEV_DEL = "irregular"
  
-vec/x=0/y=-10:10/t=1-jan-1980:1-jan-1990 uwnd[d=1], vwnd[d=2]
+! Bug 2466 Graticule lines too dense on time plots
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_timegrat
+!err700_timegrat.jnl
+! 22-sep-2016 *acm*
+! See ticket 2466, too many graticule lines on axis with short time axis.
  
-let wspd = (uwnd[d=1]*uwnd[d=1] + vwnd[d=2]*vwnd[d=2])^0.5
-plot/over/color=red/thick/x=0/t=1-jan-1980:1-jan-1990 wspd[y=-10:10 at ave]
+define axis/t="22-aug-2016:12":"23-aug-2016:18":6/units=hours tax
+define axis/z=0:50:2/depth/units=m zax
+let ztvar = sin(L[Gt=tax]/20) + z[gz=zax]
  
-FRAME/FILE=bn_hovmuller_overlays.gif
+set view upper; shade/grat ztvar
+set view lower; plot/grat=(color=light_blue)/z=20 ztvar
  
+can view
+set view left; shade/trans/grat ztvar
+set view right; plot/trans/grat=(color=light_blue)/z=20 ztvar
  
-Go bn_reset
-cancel mode verify
-GO bn_labels_on_taxis
-! bn_labels_on_taxis.jnl
-! tests of labels and overlays on time axes
+! Axis of few days, likewise
  
+define axis/t=16-SEP-2016:21-SEP-2016:15/units=minutes/t0=16-SEP-2016 tax
  
-set v ul
-DEFINE AXIS/T=1-JAN-1980:31-JAN-1985:30/T0=1-jan-1980/UNIT=days tax
-LET tt = t[gt=tax]
-LET tvar = cos(tt/200)
-plot tvar
+can view
+set view upper; shade/grat ztvar
+set view lower; plot/grat=(color=light_blue)/z=20 ztvar
+ 
+can view
+set view left; shade/trans/grat/t=16-SEP-2016:19-sep-2016 ztvar
+set view right; plot/trans/grat=(color=light_blue)/z=20/t=16-SEP-2016:19-sep-2016 ztvar
+ 
+ 
+ 
+! Bug 2465 parsing errors on commands with expressions involving attrbutes
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_attribute_parsing
+! err700_attribute_parsing.jnl
+! See ticket 2465. Parsing errors for commands with attribute references
+! acm  9/2016
+ 
+! Write a simple file and then try to get at its attributes.
+ 
+let/title="my variable" a = 1
+save/clob/file="a.nc"/title="my file" a
+can var a
+use a.nc
+ 
+! These were ok
+list/nohead ..title
+        "my file"
+list/nohead a.long_name
+        "my variable"
+ 
+! errors
+list/nohead ..title EQ " "
+          0.0000
+list/nohead (..title)
+        "my file"
+list/nohead ..title + "text"
+        "my filetext"
+list/nohead a.long_name EQ " "
+          0.0000
+ 
+list/nohead strlen(a.long_name)
+          11.00
+list/nohead strindex(..title, "file")
+          4.000
+ 
+ 
+! Note the fix for # 2437 needs documentation: 4D output for grids in X,Y,Z,T only
+! Note the fix for # 2451 needs documentation: -gif mode plots with /HLIM or /VLIM reversing an axis.
+ 
+ 
+! 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
+ 
+! Bug 2483. Fixing axis-ends symbols XAXIS_MIN,XAXIS_MAX, YAXIS_MIN,YAXIS_MAX
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_axis_dates
+! err700_axis_dates.jnl
+! See ticket 2483. 11/10/2016 ACM
+!
+! The axis-ends symbols XAXIS_MIN,XAXIS_MAX, YAXIS_MIN,YAXIS_MAX
+! were not accurate for time axes, which get padded out to the nearest
+! time unit, e.g. whole months etc.
+ 
+! This axis gets plotted from 1-oct-2015 to the end of 30-apr-2016
+ 
+def axis/t=23-oct-2015:17-apr-2016:10/units=hours taxis
+ 
+! Define some variables
+let tt = t[gt=taxis]
+let var = cos(L[gt=taxis]/30)
+define axis/x=1:52:4 xaxis
+define axis/y=1:52:4 yaxis
+let xtvar = x[gx=xaxis] + var
+let ytvar = y[gy=yaxis] + var
+ 
+! 1-D time plot
+plot var
+ 
+! Previously these were set to the axis-coordinate
+! ends not the drawn axis ends.
+list tax_datestring(($xaxis_min), tt, "minutes"), tax_datestring(($xaxis_max), tt, "minutes")
+ !-> list tax_datestring(1005528.00, tt, "minutes"), tax_datestring(1010640.00, tt, "minutes")
+ Column  1: TAX_DATESTRING(1005528.00, TT, "minutes")
+ Column  2: TAX_DATESTRING(1010640.00, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "01-OCT-2015 00:00" "01-MAY-2016 00:00"
+ 
+! 2D plots
+ 
+shade ytvar
+list tax_datestring(($xaxis_min), tt, "minutes"), tax_datestring(($xaxis_max), tt, "minutes")
+ !-> list tax_datestring(1005528.00, tt, "minutes"), tax_datestring(1010640.00, tt, "minutes")
+ Column  1: TAX_DATESTRING(1005528.00, TT, "minutes")
+ Column  2: TAX_DATESTRING(1010640.00, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "01-OCT-2015 00:00" "01-MAY-2016 00:00"
+ 
+shade xtvar ! T axis on the vertical axis
+list tax_datestring(($yaxis_min), tt, "minutes"), tax_datestring(($yaxis_max), tt, "minutes")
+ !-> list tax_datestring(1005528.00, tt, "minutes"), tax_datestring(1010640.00, tt, "minutes")
+ Column  1: TAX_DATESTRING(1005528.00, TT, "minutes")
+ Column  2: TAX_DATESTRING(1010640.00, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "01-OCT-2015 00:00" "01-MAY-2016 00:00"
+ 
+ 
+! Short time axis, plot ends extended out to the nearest hour
+def axis/t="23-oct-2015:01:15":"23-oct-2015:12:30":15/units=minutes taxis
+ 
+plot var
+list tax_datestring(($xaxis_min), tt, "minutes"), tax_datestring(($xaxis_max), tt, "minutes")
+ !-> list tax_datestring(60363420.0, tt, "minutes"), tax_datestring(60364140.0, tt, "minutes")
+ Column  1: TAX_DATESTRING(60363420.0, TT, "minutes")
+ Column  2: TAX_DATESTRING(60364140.0, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "23-OCT-2015 01:00" "23-OCT-2015 13:00"
+ 
+shade ytvar
+list tax_datestring(($xaxis_min), tt, "minutes"), tax_datestring(($xaxis_max), tt, "minutes")
+ !-> list tax_datestring(60363420.0, tt, "minutes"), tax_datestring(60364140.0, tt, "minutes")
+ Column  1: TAX_DATESTRING(60363420.0, TT, "minutes")
+ Column  2: TAX_DATESTRING(60364140.0, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "23-OCT-2015 01:00" "23-OCT-2015 13:00"
+ 
+shade xtvar
+list tax_datestring(($yaxis_min), tt, "minutes"), tax_datestring(($yaxis_max), tt, "minutes")
+ !-> list tax_datestring(60363420.0, tt, "minutes"), tax_datestring(60364140.0, tt, "minutes")
+ Column  1: TAX_DATESTRING(60363420.0, TT, "minutes")
+ Column  2: TAX_DATESTRING(60364140.0, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "23-OCT-2015 01:00" "23-OCT-2015 13:00"
+ 
+ 
+ 
+! Bug 2489. Attribute climatology_time_range not defined on an expression
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_clim_attr_expression
+! err700_clim_attr_expression.jnl
+! Ticket 2489
+! 11/22/2016
+!
+! The attribute climatology_time_range is created whena variable comes
+! from a climatological regridding. It can be created only for user-defined
+! variables not for an expression. Previously the SAVE command resulted in a crash.
+! (See bn_climatology_attr.jnl for more examples).
+ 
+! Define a monthly axis
+define axis/t=1-feb-1980:1-feb-2003/npoints=276/unit="day"/t0=1-jan-1900 tax
+ 
+let tvar = t[gt=tax]
+let clim1 = tvar[gt=month_irreg at mod]
+save/nobounds/file=a.nc/clobber 3*clim1
+ 
+can dat/all; use a.nc
+ 
+! The variable did not get a climatology_time_range attribute
+let vname = ..varnames
+show att `vname[i=1]`
+ !-> show att E494
+     attributes for dataset: ./a.nc
+ E494.missing_value = -1.E+34
+ E494._FillValue = -1.E+34
+ E494.long_name = 3*CLIM1 
+ 
+ 
+! Bug 2491: Location of colorbar labels wrong
+! on /HLOG or /VLOG plots
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_ribbon_vlog
+! err700_ribbon_vlog.jnl
+! 1/3/2017 *acm*
+! See ticket 2491: Location of colorbar labels wrong
+! on /HLOG or /VLOG plots
+ 
+ 
+let a = 0.1* {1,2,3,4,5,6,7,8,9}
+set v ul
+plot/vs/rib/sym=25 a, a, a
+ 
+! Draw with /VLOG, previously put the colorbar labels in the wrong place
+set view lr
+plot/vs/rib/sym=25/vlog a, a, a
+ 
+! likewise /HLOG on a horizontal color key
+set view ll
+plot/vs/rib/sym=25/hlog/key=horiz a,a,a
+ 
+frame/file=bn_ribbon_vlog.gif
+ 
+! Bug 2492: single-variable listings with /form=comma or /form=tab
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_list_comma
+! err700_list_comma.jnl
+! 1/4/2017 Fixes for ticket 2492: for single-variable listings, /FORM=comma and /FORM=tab
+ 
+use gt4d011
+ 
+! Previously for comma and tab listings there was an extra line right after the header
+! that showed a longitude, even on [i=@ave,j=@ave]
+ 
+list/L=1:3/K=1/form=comma taux[i=@ave,j=@ave]
+             VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
+             FILENAME : gt4d011.cdf
+             BAD FLAG : -1.E+34       
+             SUBSET   : 3 points (TIME)
+             LONGITUDE: 139.5W to 121.5W (XY ave)
+             LATITUDE : 3.5S to 3.5N (XY ave)
+17-AUG-1982 12,-0.2742
+23-AUG-1982 14,-0.2363
+29-AUG-1982 16,-0.1984
+ 
+list/nohead/L=1:3/K=1/form=comma taux[i=95,j=@ave]
+17-AUG-1982 12,-0.2738
+23-AUG-1982 14,-0.2441
+29-AUG-1982 16,-0.2144
+ 
+list/nohead/L=1:3/K=1/form=comma taux[i=@ave,j=@ave]
+17-AUG-1982 12,-0.2742
+23-AUG-1982 14,-0.2363
+29-AUG-1982 16,-0.1984
+ 
+! Previously /NOROW had no effect for /form=comma or /tab
+! (for single-variable listings)
+ 
+list/norow/L=1:3/K=1/form=comma taux[i=@ave,j=@ave]
+             VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
+             FILENAME : gt4d011.cdf
+             BAD FLAG : -1.E+34       
+             SUBSET   : 3 points (TIME)
+             LONGITUDE: 139.5W to 121.5W (XY ave)
+             LATITUDE : 3.5S to 3.5N (XY ave)
+-0.2742 
+-0.2363 
+-0.1984 
+ 
+list/norow/nohead/L=1:3/K=1/form=comma taux[i=95,j=@ave]
+-0.2738 
+-0.2441 
+-0.2144 
+ 
+list/norow/nohead/L=1:3/K=1/i=95/j=40/form=comma taux
+-0.3336 
+-0.298 
+-0.2623 
+ 
+list/norow/nohead/L=1:3/K=1/i=95/j=40/form=comma taux
+-0.3336 
+-0.298 
+-0.2623 
+ 
+! Now all the same commands with /form=tab
+ 
+! Previously for comma and tab listings there was an extra line right after the header
+! that showed a longitude, even on [i=@ave,j=@ave]
+ 
+list/L=1:3/K=1/form=tab taux[i=@ave,j=@ave]
+             VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
+             FILENAME : gt4d011.cdf
+             BAD FLAG : -1.E+34       
+             SUBSET   : 3 points (TIME)
+             LONGITUDE: 139.5W to 121.5W (XY ave)
+             LATITUDE : 3.5S to 3.5N (XY ave)
+17-AUG-1982 12	-0.2742
+23-AUG-1982 14	-0.2363
+29-AUG-1982 16	-0.1984
+ 
+list/nohead/L=1:3/K=1/form=tab taux[i=95,j=@ave]
+17-AUG-1982 12	-0.2738
+23-AUG-1982 14	-0.2441
+29-AUG-1982 16	-0.2144
+ 
+list/nohead/L=1:3/K=1/form=tab taux[i=@ave,j=@ave]
+17-AUG-1982 12	-0.2742
+23-AUG-1982 14	-0.2363
+29-AUG-1982 16	-0.1984
+ 
+! Previously /NOROW had no effect for /form=comma or /tab
+! (for single-variable listings)
+ 
+list/norow/L=1:3/K=1/form=tab taux[i=@ave,j=@ave]
+             VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
+             FILENAME : gt4d011.cdf
+             BAD FLAG : -1.E+34       
+             SUBSET   : 3 points (TIME)
+             LONGITUDE: 139.5W to 121.5W (XY ave)
+             LATITUDE : 3.5S to 3.5N (XY ave)
+-0.2742 
+-0.2363 
+-0.1984 
+ 
+list/norow/nohead/L=1:3/K=1/form=tab taux[i=95,j=@ave]
+-0.2738 
+-0.2441 
+-0.2144 
+ 
+list/norow/nohead/L=1:3/K=1/i=95/j=40/form=tab taux
+-0.3336 
+-0.298 
+-0.2623 
+ 
+list/norow/nohead/L=1:3/K=1/i=95/j=40/form=tab taux
+-0.3336 
+-0.298 
+-0.2623 
+ 
+ 
+! Bug 2493: T aggregation when there are E or F axes
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_aggT_5d
+! err700_aggT_5d.jnl
+! 1/6/2017 ACM  Ticket 2493
+! When there are E or F axes in the grid, the multi-file reading
+! for time aggregations or mc files corrupted the data.
+ 
+!  The two files have data in different ranges
+ 
+! data range in 260-270
+use aggT_5d1.nc
+list/i=3/j=2 thetao[d=1]
+             VARIABLE : Sea Water Potential Temperature (K)
+             FILENAME : aggT_5d1.nc
+             SUBSET   : 6 by 10 points (TIME-E)
+             CALENDAR : NOLEAP
+             LONGITUDE: 22.5E
+             LATITUDE : 58.5S
+             DEPTH (m): 5
+              1999   2000   2001   2002   2003   2004  
+               1      2      3      4      5      6
+ 1    /  1:  265.2  265.6  266.0  266.2  265.5  265.4
+ 2    /  2:  265.6  265.8  265.6  265.7  265.5  265.5
+ 3    /  3:  265.2  265.5  265.3  265.3  264.9  265.5
+ 4    /  4:  263.9  263.3  263.1  263.4  263.5  263.3
+ 5    /  5:  261.8  261.8  261.9  261.9  262.1  261.8
+ 6    /  6:  263.4  263.4  263.8  263.6  263.6  263.4
+ 7    /  7:  264.0  264.5  264.2  264.0  264.3  264.0
+ 8    /  8:  264.2  264.1  264.0  263.4  263.4  263.9
+ 9    /  9:  263.7  262.7  262.7  262.9  263.3  263.0
+ 10   / 10:  263.8  263.7  264.0  263.8  263.7  264.2
+ 
+! data range in 270-280
+use aggT_5d2.nc
+list/i=3/j=2 thetao[d=2]
+             VARIABLE : Sea Water Potential Temperature (K)
+             FILENAME : aggT_5d2.nc
+             SUBSET   : 4 by 10 points (TIME-E)
+             CALENDAR : NOLEAP
+             LONGITUDE: 22.5E
+             LATITUDE : 58.5S
+             DEPTH (m): 5
+              2006   2007   2008   2009  
+               1      2      3      4
+ 1    /  1:  275.4  275.1  275.0  275.1
+ 2    /  2:  275.6  275.8  275.8  275.3
+ 3    /  3:  275.1  275.3  275.0  275.4
+ 4    /  4:  273.4  273.3  273.4  273.9
+ 5    /  5:  271.8  271.7  271.8  271.9
+ 6    /  6:  273.8  273.6  273.9  273.8
+ 7    /  7:  273.9  273.9  274.2  274.2
+ 8    /  8:  273.9  274.0  274.5  274.2
+ 9    /  9:  272.7  272.9  273.0  274.0
+ 10   / 10:  274.8  274.9  274.4  274.5
+can data/all
+ 
+! Now make an aggregation. Previously the data was wrapped onto
+! the grid incorrectly, with zero in M=7 and higher
+ 
+define data/agg/t myagg = aggT_5d1.nc, aggT_5d2.nc
+list/i=3/j=2 thetao
+             VARIABLE : Sea Water Potential Temperature (K)
+             FILENAME : myagg
+             SUBSET   : 10 by 10 points (TIME-E)
+             CALENDAR : NOLEAP
+             LONGITUDE: 22.5E
+             LATITUDE : 58.5S
+             DEPTH (m): 5
+              1999   2000   2001   2002   2003   2004   2006   2007   2008   2009  
+               1      2      3      4      5      6      7      8      9     10
+ 1    /  1:  265.2  265.6  266.0  266.2  265.5  265.4  275.4  275.1  275.0  275.1
+ 2    /  2:  265.6  265.8  265.6  265.7  265.5  265.5  275.6  275.8  275.8  275.3
+ 3    /  3:  265.2  265.5  265.3  265.3  264.9  265.5  275.1  275.3  275.0  275.4
+ 4    /  4:  263.9  263.3  263.1  263.4  263.5  263.3  273.4  273.3  273.4  273.9
+ 5    /  5:  261.8  261.8  261.9  261.9  262.1  261.8  271.8  271.7  271.8  271.9
+ 6    /  6:  263.4  263.4  263.8  263.6  263.6  263.4  273.8  273.6  273.9  273.8
+ 7    /  7:  264.0  264.5  264.2  264.0  264.3  264.0  273.9  273.9  274.2  274.2
+ 8    /  8:  264.2  264.1  264.0  263.4  263.4  263.9  273.9  274.0  274.5  274.2
+ 9    /  9:  263.7  262.7  262.7  262.9  263.3  263.0  272.7  272.9  273.0  274.0
+ 10   / 10:  263.8  263.7  264.0  263.8  263.7  264.2  274.8  274.9  274.4  274.5
+ 
+! Bug 2495: shift on overlay of time series plot on 2d time plot
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_time_overlay
+! err700_time_overlay.jnl
+! bug 2495
+! Shifting on overlay of time series on 2D plot
+ 
+define axis/t=15-jun-1970:16-jun-1970:60/t0=1-jan-1970/units=seconds  tax
+def axis/y=-2:2:0.2 yaxis
+let tt = t[gt=tax]
+ 
+shade/pal=white/nokey/title="example plot" y[gy=yaxis] + t[gt=tax]
+ 
+! Previously the second plot was shifted in time
+plot/over/color=red  cos(tt/3000)
+plot/over/color=blue cos(tt/3000)+0.5
+ 
+! now vertical time axis
+shade/trans/pal=white/nokey/title="example plot" y[gy=yaxis] + t[gt=tax]
+ 
+plot/trans/over/color=red  cos(tt/3000)
+plot/trans/over/color=blue cos(tt/3000) + 0.5
+ 
+ 
+ 
+! Bug 2494:  drawing a single-cell shade plot
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_shade_singlecell
+! err700_shade_singlecell.jnl
+! Ticket 2494, drawing a single-cell shade plot
+ 
+def axis/x=233.59375:293.90625:0.3125/units=degrees_east xlon
+def axis/y=24.125:50.625:0.25/units=degrees_north ylat
+let iijj = i[gx=xlon] + j[gy=ylat]
+set reg/x=77w:72.5w/y=38.9n:41.5n
+ 
+ 
+shade/pal=grayscale iijj
+shade/pal=blue/ov iijj[i=167:168,j=64:65]
+ 
+! previously this was drawn, but located one cell to the left of where it should be
+shade/pal=black/ov iijj[i=167,j=64]
+ 
+! Specify a cell by X,Y. Previously this gave a dimensions error
+shade/over/pal=green iijj[x=76w,y=40n]
+ 
+! These same sorts of degenerate regions, bug not as an overlay
+ 
+! Previously both of these drew a blank plot
+shade/pal=rnb2 iijj[i=167,j=64]
+shade/pal=rnb2 iijj[i=167,j=64:66]
+ 
+! Specify a cell by X,Y
+! Previously this gave a dimensions error
+shade/pal=green iijj[x=76w,y=40n]
+ 
+! Partial cell, given by xy limits.
+! Previously drew a blank plot
+shade/pal=green iijj[x=74.5w:74.4w,y=39.9:40.0]
+ 
+! Several cells in one direction - partial cells in y at edges
+shade/pal=rnb2 iijj[x=74.5w,y=39.9:40.8]
+ 
+ 
+! Bug 2496: errors using axis with nearly-repeating coordinates
+!           where coordinates are very near grid-cell edges.
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_coords
+! err700_coords.jnl
+! 1/17/2017
+! From bug 2496. Data with almost-repeating values used to define an axis
+ 
+use err700_coords.nc
+list/i=10:20/prec=16 du_coords, du_coords[i=@ddf]
+             DATA SET: ./err700_coords.nc
+             X: 9.5 to 20.5
+ Column  1: DU_COORDS is DU_VU[I=1:20]
+ Column  2: DU_COORDS[X=@DDF] is DU_VU[I=1:20] (forward derivative on X)
+                   DU_COORDS       DU_COORDS
+10   / 10:  23.75000000000000  2.500000000000000
+11   / 11:  26.25000000000000  0.000000000000011
+12   / 12:  26.25000000000001  2.499999999999989
+13   / 13:  28.75000000000000  2.500000000000000
+14   / 14:  31.25000000000000  0.000000000000011
+15   / 15:  31.25000000000001  2.499999999999989
+16   / 16:  33.75000000000000  2.500000000000000
+17   / 17:  36.25000000000000  2.500000000000000
+18   / 18:  38.75000000000000  2.500000000000000
+19   / 19:  41.25000000000000  2.500000000000000
+20   / 20:  43.75000000000000               ....
+ 
+! The data has repeated coords, to 1.e15. Should be reported as micro-adjusted
+ 
+def ax/bounds/x/unit="degrees_east"/modulo=360 c2d_ax_x = du_coords[i=1:160], du_edges[i=1:161]
+ 
+ 
+sh axis c2d_ax_x
+ name       axis              # pts   start                end
+ C2D_AX_X  LONGITUDE           20mi   1.25E                43.75E
+   Axis span (to cell edges) = 45 (modulo length = 360)
+let c = x[gx=c2d_ax_x]
+ 
+! for this region, the setup steps got data in index 11:31, then
+! at the point of writing the index ragne was found to be 12:31
+ 
+set region/x=25:385
+set mode diag
+save/clob/file=a.nc c
+ dealloc  dynamic grid GAY2            XAX1_21   NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ -DELETE C        M:  5 dset:   0 I:     11     30  J: -999 -999  K: -999 -999  L:   -999   -999
+ 
+set mode /last diag
+ 
+ 
+! Bug 2499: Define a single-point axis with bounds
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_define_1pt_axis
+! err700_define_1pt_axis.jnl
+! Ticket 2499: regular axis, test for valid line_delta
+! ACM 7/6/2016
+ 
+ 
+def ax/t/bounds tax = 1, 0, 2
+show 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
+ 
+! check that reading such an axis from a file is ok
+let twelve = 12*t[gt=tax]
+ 
+save/file=a.nc/clobber twelve
+cancel var/all; cancel axis tax
+use a.nc
+sh dat
+     currently SET data sets:
+    1> ./a.nc  (default)
+ name     title                             I         J         K         L
+ TWELVE   12*T[GT=TAX]                     ...       ...       ...       1:1
+ 
+sh axis/t tax
+ name       axis              # pts   start                end
+ TAX       T                    1 r   1                    1
+T0 = %%
+   Axis span (to cell edges) = 2
+ 
+       L     T                   TBOX      TBOXLO
+       1>  1                     2          0
+ 
+ 
+ 
+! Bug 2498: time unit error in F-aggregation of some OPENDAP datasets
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_aggregate_from_fmrc
+! err700_aggregate_from_fmrc.jnl
+! 1/2017 *acm*
+! (See ticket 2498)
+! Previously an incorrect definition of the F axis when datasets from
+! thredds fmrc.xml are used in a Ferret F aggregation
+! This was a bug in the true-month time axes in an un-released Ferret executable.
+ 
+IF `TEST_OPENDAP(\
+"http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Hawaii_Regional_Ocean_Model_RUN_2017-01-01T00:00:00Z") NE 0` \
+ THEN EXIT/SCRIPT
+ !-> IF 0  THEN EXIT/SCRIPT
+ 
+use http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Hawaii_Regional_Ocean_Model_RUN_2017-01-01T00:00:00Z
+use http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Hawaii_Regional_Ocean_Model_RUN_2017-01-02T00:00:00Z
+use http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Hawaii_Regional_Ocean_Model_RUN_2017-01-03T00:00:00Z
+ 
+DEFINE DATA/AGGREGATE/F testdata = 1,2,3
+! F axis should be  31-DEC-2016 to 02-JAN-2017
+SHOW GRID zeta
+    GRID (G013)
+ 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
+ normal    Z
+ TF_LAG_T  MODEL ELAPSED TIME  57 r   1.5                  169.5               full
+ normal    E
+ TF_CAL_F  FORECAST             3 r   31-DEC-2016 22:30    02-JAN-2017 22:30   full
+ 
+ 
+! Bug 2504: modulo axes and coordinates
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_modulo
+! err700_modulo.jnl
+! See ticket 2504. Axis defintions where bounds are not given, and Ferret
+! is defining the cell edges. If axis coordinates lie within the modulo range
+! but the cell bounds defined automatically using coordinate midpoints range
+! larger than 360 degrees, or 1 year, need to adjust bounds. This is done only
+! for irregular axes.
+ 
+use modax
+ 
+! The axis 'irreg_no_bounds' is irregular and is stored in the file without
+! bounds. The coordinate range is < 360 but previously the computed bounds
+! made the axis length 369.45, so it was not treated as modulo.
+! Now it is marked modulo.
+ 
+sh axis irreg_no_bounds
+ name       axis              # pts   start                end
+ IRREG_NO_BOUNDS LONGITUDE      8mi   0E                   0.7W
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+list/order=x/nohead x[gx=irreg_no_bounds]
+            0.0    1.0   20.0   30.0  320.0  330.0  340.0  359.3
+show axis/x irreg_no_bounds
+ name       axis              # pts   start                end
+ IRREG_NO_BOUNDS LONGITUDE      8mi   0E                   0.7W
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+       I     X                   XBOX      XBOXLO
+       1>  0E                    0.85       0.35W(-0.35)
+       2>  1E                    10         0.5E
+       3>  20E                   14.5       10.5E
+       4>  30E                   150        25E
+       5>  40W                   150        175E
+       6>  30W                   10         35W
+       7>  20W                   14.65      25W
+       8>  0.7W                  10         10.35W
+ 
+ 
+! The axis 'regular_no_bounds' is regular.  Its coordinate range is < 360, but
+! to adjust the grid cells would make it irregular, so this axis is still
+! marked as not modulo.
+ 
+sh axis regular_no_bounds
+ name       axis              # pts   start                end
+ REGULAR_NO_BOUNDS LONGITUDE    8 r   10E                  0E(360)
+   Axis span (to cell edges) = 400
+list/order=x/nohead x[gx=regular_no_bounds]
+           10.0   60.0  110.0  160.0  210.0  260.0  310.0  360.0
+show axis/x regular_no_bounds
+ name       axis              # pts   start                end
+ REGULAR_NO_BOUNDS LONGITUDE    8 r   10E                  0E(360)
+   Axis span (to cell edges) = 400
+ 
+       I     X                   XBOX      XBOXLO
+       1>  10E                   50         15W(-15)
+       2>  60E                   50         35E
+       3>  110E                  50         85E
+       4>  160E                  50         135E
+       5>  150W                  50         175W
+       6>  100W                  50         125W
+       7>  50W                   50         75W
+       8>  0E(360)               50         25W
+ 
+! The axis 'irreg_with_bounds' is irregular, stored with bounds in the file.
+! Its coordinate range is < 360, but the range of the bounds is larger than
+! 360. Because the bounds are in the file, nothing is changed; it is marked
+! as not modulo.
+ 
+sh axis irreg_with_bounds
+ name       axis              # pts   start                end
+ IRREG_WITH_BOUNDS LONGITUDE    8 i   0E                   1W
+   Axis span (to cell edges) = 362
+list/order=x/nohead x[gx=irreg_with_bounds]
+            0.0    1.0   20.0   30.0  320.0  330.0  340.0  359.0
+show axis/x irreg_with_bounds
+ name       axis              # pts   start                end
+ IRREG_WITH_BOUNDS LONGITUDE    8 i   0E                   1W
+   Axis span (to cell edges) = 362
+ 
+       I     X                   XBOX      XBOXLO
+       1>  0E                    1.5        1W(-1)
+       2>  1E                    9.5        0.5E
+       3>  20E                   15         10E
+       4>  30E                   150        25E
+       5>  40W                   150        175E
+       6>  30W                   10         35W
+       7>  20W                   14         25W
+       8>  1W                    12         11W
+ 
+cancel data/all
+ 
+! DEFINE AXIS examples
+ 
+! Likewise define an irregular axis whose coordinate range is < 360 but
+! the default midpoint grid cell bounds would make it larger than 360.
+! Previously this axis was not modulo, now bounds are set so it is.
+ 
+define axis/x/units=degrees_east xax = {0, 10, 20, 340, 358}
+show axis xax
+ name       axis              # pts   start                end
+ XAX       LONGITUDE            5mi   0E                   2W
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+! Now define a regular axis whose coordinate range is < 360 but the
+! default midpoint grid cell bounds would make it larger than 360.
+! To keep it regular, mark as not modulo.
+ 
+define axis/x=5:355:50/units=degrees_east xax
+show axis xax
+ name       axis              # pts   start                end
+ XAX       LONGITUDE            8 r   5E                   5W
+   Axis span (to cell edges) = 400
+ 
+! tests for time axes
+! Regular time axis with bounds that make it longer than a year.
+! leave this one so it stays regular and is not modulo.
+ 
+define axis/t=3:363:10/units=days/t0=1-jan-0000 treg
+show axis treg
+ name       axis              # pts   start                end
+ TREG      TIME                37 r   04-JAN-0000 00:00    29-DEC-0000 00:00
+T0 = 1-JAN-0000
+   Axis span (to cell edges) = 370
+ 
+! An irregular axis where moving the bounds can make it a modulo calendar axis.
+define axis/t0=1-jan-0000/units=days/t tax2 = { 3, 55, 103, 153, 203, 253, 303, 353}
+sh axis tax2
+ name       axis              # pts   start                end
+ TAX2      TIME                 8mi   04-JAN 00:00         19-DEC 00:00
+T0 = 1-JAN-0000
+   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ 
+ 
+! Bug 1480: saving modulo axis with too big a region
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_save_mod_att
+! err700_save_mod_att.jnl
+! ticket 1480: do not write a modulo axis when saving a modulo
+! axis with region longer than the modulo length.
+! If it's just one grid-cell too long, write one cell less so
+! the axis can still be a valid modulo axis
+ 
+! write a dataset to use, modulo attribute
+define axis/x=20:377.5:2.5/units=degrees_east/modulo xlon
+sh axis xlon
+ name       axis              # pts   start                end
+ XLON      LONGITUDE          144mr   20E                  17.5E(377.5)
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+let var = x[gx=xlon]
+ 
+save/clobber/file=a1.nc var
+sp ncdump -h a1.nc
+netcdf a1 {
+dimensions:
+	XLON = 144 ;
+variables:
+	double XLON(XLON) ;
+		XLON:units = "degrees_east" ;
+		XLON:point_spacing = "even" ;
+		XLON:axis = "X" ;
+		XLON:modulo = 360. ;
+		XLON:standard_name = "longitude" ;
+	double VAR(XLON) ;
+		VAR:missing_value = -1.e+34 ;
+		VAR:_FillValue = -1.e+34 ;
+		VAR:long_name = "X[GX=XLON]" ;
+
+// global attributes:
+		:history = "FERRET V7.1  18-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+}
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+ 
+! Now set a region and write data. The axis length would be 362.5
+use a1
+sh axis xlon
+ name       axis              # pts   start                end
+ XLON      LONGITUDE          144mr   20E                  17.5E(377.5)
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+set region/x=0:360
+stat x[gx=xlon] ! 145 points
+ 
+             X
+             axis XLON
+             LONGITUDE: 0E to 0E(360)
+             Y:  N/A
+             Z:  N/A
+             T:  N/A
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 145 (145*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 360
+ Mean    value: 180 (unweighted average)
+ Standard deviation: 105
+ 
+! but we see that the region is just one cell too big, and
+! save it with length 360.
+save/clobber/file=a.nc var
+ 
+! previously the x axis had a modulo attribute and length 362.5
+! The modulo=360 didnt match the length of the axis so on using the
+! file there was a note, modulo attribute ignored. Now the axis is
+! the intended length.
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	XLONN7_136 = 144 ;
+variables:
+	double XLONN7_136(XLONN7_136) ;
+		XLONN7_136:units = "degrees_east" ;
+		XLONN7_136:point_spacing = "even" ;
+		XLONN7_136:axis = "X" ;
+		XLONN7_136:modulo = 360. ;
+		XLONN7_136:standard_name = "longitude" ;
+	double VAR(XLONN7_136) ;
+		VAR:missing_value = -1.e+34 ;
+		VAR:_FillValue = -1.e+34 ;
+		VAR:long_name = "X[GX=XLON]" ;
+		VAR:history = "From a1" ;
+
+// global attributes:
+		:history = "FERRET V7.1  18-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+use a
+sh axis `var,return=xaxis`
+ !-> sh axis XLONN7_136
+ name       axis              # pts   start                end
+ XLONN7_136 LONGITUDE         144mr   0E                   2.5W
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+ 
+! Now set a bigger region and write data. The axis length is 372.5
+use a1
+sh axis xlon
+ name       axis              # pts   start                end
+ XLON      LONGITUDE          144mr   20E                  17.5E(377.5)
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+set region/x=0:370
+ 
+! Now issues a note, not writing modulo attribute.
+save/clobber/file=a.nc var
+ 
+! previously the x axis still had the modulo attribute
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	XLONN7_141 = 149 ;
+variables:
+	double XLONN7_141(XLONN7_141) ;
+		XLONN7_141:units = "degrees_east" ;
+		XLONN7_141:point_spacing = "even" ;
+		XLONN7_141:axis = "X" ;
+		XLONN7_141:standard_name = "longitude" ;
+	double VAR(XLONN7_141) ;
+		VAR:missing_value = -1.e+34 ;
+		VAR:_FillValue = -1.e+34 ;
+		VAR:long_name = "X[GX=XLON]" ;
+		VAR:history = "From a1" ;
+
+// global attributes:
+		:history = "FERRET V7.1  18-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+use a
+sh axis `var,return=xaxis`
+ !-> sh axis XLONN7_141
+ name       axis              # pts   start                end
+ XLONN7_141 LONGITUDE         149 r   0E                   10E(370)
+   Axis span (to cell edges) = 372.5
+ 
+! test the machinery for a file with attribute modulo=" "
+ 
+use coads_climatology
+sh att (`sst,return=xaxis`)
+ !-> sh att (COADSX)
+     attributes for dataset: ./coads_climatology.cdf
+ (COADSX).units = degrees_east 
+ (COADSX).modulo =   
+ (COADSX).point_spacing = even 
+ (COADSX).orig_file_axname = COADSX 
+set region/x=1:361
+ 
+save/clobber/file=a.nc/y=0/l=1 sst
+ 
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+use a
+sh att (`sst,return=xaxis`)
+ !-> sh att (COADSXN9_170)
+     attributes for dataset: ./a.nc
+ (COADSXN9_170).units = degrees_east 
+ (COADSXN9_170).modulo =   
+ (COADSXN9_170).point_spacing = even 
+ (COADSXN9_170).axis = X 
+ (COADSXN9_170).standard_name = longitude 
+ (COADSXN9_170).orig_file_axname = COADSXN9_170 
+ 
+! previously the axis, of length 362, was marked modulo.
+show axis `sst,return=xaxis`
+ !-> show axis COADSXN9_170
+ name       axis              # pts   start                end
+ COADSXN9_170 LONGITUDE       180mr   1E                   1W
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+ 
+ 
+! Bug 2502: FMRC regridding sensitive to insignificant floating-point differences in time
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_fmrcdiag
+! err700_fmrcdiag.jnl
+! these particular datasets (quarterly forecasts of two years of monthly data)
+! have times at regular intervals but at values (for 25 and 26) that are difficult
+! to represent in binary
+!
+USE forecast24.nc
+USE forecast25.nc
+USE forecast26.nc
+USE forecast27.nc
+DEFINE DATA/AGGREGATE/F testdata = 1,2,3,4
+!
+! using the values of actual gives perfect forecasts;
+! using the values of quirks has a sinusoidal error that get worse with greater lead time
+!
+SHOW GRID actual
+    GRID (G019)
+ name       axis              # pts   start                end                 subset
+ XAX1      LONGITUDE            7mr   140W                 110W                full
+ YAX       LATITUDE             4 r   45N                  60N                 full
+ ZAX1      Z (meter)            3 i   50                   1000                full
+ TF_LAG_T  MODEL ELAPSED TIME (25 r   15.217               745.62              full
+ normal    E
+ TF_CAL_F  FORECAST             4 r   01-OCT-2010 21:36    02-JUL-2011 19:12   full
+LIST /WIDTH=600 /X=120W/Y=50N/Z=50 actual
+             VARIABLE : actual
+             DATA SET : Forecast series of 4 datasets patterned on forecast24
+             FILENAME : testdata
+             SUBSET   : 25 by 4 points (MODEL ELAPSED TIME (day)-FORECAST)
+             LONGITUDE: 120W
+             LATITUDE : 50N
+             Z (meter): 50
+             Verification time increases across row.  Initialization time increases down page. 
+                    15.2   45.6   76.1   106.5  136.9  167.4  197.8  228.2  258.7  289.1  319.5  350    380.4  410.8  441.3  471.7  502.1  532.6  563    593.4  623.9  654.3  684.7  715.2  745.6 
+                     1      2      3      4      5      6      7      8      9     10     11     12     13     14     15     16     17     18     19     20     21     22     23     24     25
+ 01-OCT-2010 / 1:  3.112  3.063  3.548  4.433  5.476  6.388  6.918  6.920  6.392  5.481  4.436  3.546  3.056  3.102  3.671  4.606  5.651  6.517  6.966  6.873  6.263  5.305  4.262  3.422  3.016
+ 01-JAN-2011 / 2:  4.433  5.476  6.388  6.918  6.920  6.392  5.481  4.436  3.546  3.056  3.102  3.671  4.606  5.651  6.517  6.966  6.873  6.263  5.305  4.262  3.422  3.016  3.157  3.806  4.784
+ 02-APR-2011 / 3:  6.918  6.920  6.392  5.481  4.436  3.546  3.056  3.102  3.671  4.606  5.651  6.517  6.966  6.873  6.263  5.305  4.262  3.422  3.016  3.157  3.806  4.784  5.823  6.635  6.998
+ 02-JUL-2011 / 4:  5.481  4.436  3.546  3.056  3.102  3.671  4.606  5.651  6.517  6.966  6.873  6.263  5.305  4.262  3.422  3.016  3.157  3.806  4.784  5.823  6.635  6.998  6.809  6.122  5.125
+SHADE /X=120W/Y=50N/Z=50 actual
+FRAME /FILE=forecast_actual.gif
+!
+! the diagonal should be a regular 3:1 stairstep on lower and upper
+! using actual should show single color on horizontal
+!
+LET /TITLE="actual (diag view)" diagview = actual[gt(tf_times)=tf_cal_t]
+SHOW GRID diagview
+    GRID (G019)
+ name       axis              # pts   start                end                 subset
+ XAX1      LONGITUDE            7mr   140W                 110W                full
+ YAX       LATITUDE             4 r   45N                  60N                 full
+ ZAX1      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
+ TF_CAL_F  FORECAST             4 r   01-OCT-2010 21:36    02-JUL-2011 19:12   full
+LIST /WIDTH=600 /X=120W/Y=50N/Z=50 diagview
+             VARIABLE : actual (diag view)
+             DATA SET : Forecast series of 4 datasets patterned on forecast24
+             FILENAME : testdata
+             SUBSET   : 34 by 4 points (TIME-FORECAST)
+             LONGITUDE: 120W
+             LATITUDE : 50N
+             Z (meter): 50
+             Verification time increases across row.  Initialization time increases down page. 
+                    2010   2010   2010   2011   2011   2011   2011   2011   2011   2011   2011   2011   2011   2011   2011   2012   2012   2012   2012   2012   2012   2012   2012   2012   2012   2012   2012   2013   2013   2013   2013   2013   2013   2013  
+                     1      2      3      4      5      6      7      8      9     10     11     12     13     14     15     16     17     18     19     20     21     22     23     24     25     26     27     28     29     30     31     32     33     34
+ 01-OCT-2010 / 1:  3.112  3.063  3.548  4.433  5.476  6.388  6.918  6.920  6.392  5.481  4.436  3.546  3.056  3.102  3.671  4.606  5.651  6.517  6.966  6.873  6.263  5.305  4.262  3.422  3.016   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 01-JAN-2011 / 2:   ....   ....   ....  4.433  5.476  6.388  6.918  6.920  6.392  5.481  4.436  3.546  3.056  3.102  3.671  4.606  5.651  6.517  6.966  6.873  6.263  5.305  4.262  3.422  3.016  3.157  3.806  4.784   ....   ....   ....   ....   ....   ....
+ 02-APR-2011 / 3:   ....   ....   ....   ....   ....   ....  6.918  6.920  6.392  5.481  4.436  3.546  3.056  3.102  3.671  4.606  5.651  6.517  6.966  6.873  6.263  5.305  4.262  3.422  3.016  3.157  3.806  4.784  5.823  6.635  6.998   ....   ....   ....
+ 02-JUL-2011 / 4:   ....   ....   ....   ....   ....   ....   ....   ....   ....  5.481  4.436  3.546  3.056  3.102  3.671  4.606  5.651  6.517  6.966  6.873  6.263  5.305  4.262  3.422  3.016  3.157  3.806  4.784  5.823  6.635  6.998  6.809  6.122  5.125
+SHADE /X=120W/Y=50N/Z=50 diagview
+FRAME /FILE=forecast_diagview.gif
+!
+! using actual should show single color on horizontal
+!
+LET /TITLE="actual (lead view)" leadview = actual[gt(tf_times)=tf_cal_t,gf(tf_times)=tf_lag_f]
+SHOW GRID leadview
+    GRID (G008)
+ name       axis              # pts   start                end                 subset
+ XAX1      LONGITUDE            7mr   140W                 110W                full
+ YAX       LATITUDE             4 r   45N                  60N                 full
+ ZAX1      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
+ TF_LAG_F  FORECAST LEAD TIME ( 9 r   45.65                776.05              full
+LIST /WIDTH=600 /X=120W/Y=50N/Z=50 leadview
+             VARIABLE : actual (lead view)
+             DATA SET : Forecast series of 4 datasets patterned on forecast24
+             FILENAME : testdata
+             SUBSET   : 34 by 9 points (TIME-FORECAST LEAD TIME (day))
+             LONGITUDE: 120W
+             LATITUDE : 50N
+             Z (meter): 50
+             Verification time increases across row.  Initialization time increases down page. 
+              2010   2010   2010   2011   2011   2011   2011   2011   2011   2011   2011   2011   2011   2011   2011   2012   2012   2012   2012   2012   2012   2012   2012   2012   2012   2012   2012   2013   2013   2013   2013   2013   2013   2013  
+               1      2      3      4      5      6      7      8      9     10     11     12     13     14     15     16     17     18     19     20     21     22     23     24     25     26     27     28     29     30     31     32     33     34
+ 45.6  / 1:  3.112  3.063  4.433  5.476  6.918  6.920  5.481  4.436   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 136.9 / 2:   ....   ....  3.548  4.433  6.388  6.918  6.392  5.481  3.546  3.056   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 228.2 / 3:   ....   ....   ....   ....  5.476  6.388  6.920  6.392  4.436  3.546  3.102  3.671   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 319.5 / 4:   ....   ....   ....   ....   ....   ....  6.918  6.920  5.481  4.436  3.056  3.102  4.606  5.651   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 410.8 / 5:   ....   ....   ....   ....   ....   ....   ....   ....  6.392  5.481  3.546  3.056  3.671  4.606  6.517  6.966   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 502.1 / 6:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....  4.436  3.546  3.102  3.671  5.651  6.517  6.873  6.263   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 593.4 / 7:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....  3.056  3.102  4.606  5.651  6.966  6.873  5.305  4.262   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 684.7 / 8:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....  3.671  4.606  6.517  6.966  6.263  5.305  3.422  3.016   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 776   / 9:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....  5.651  6.517  6.873  6.263  4.262  3.422  3.157  3.806   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+SHADE /X=120W/Y=50N/Z=50 leadview
+FRAME /FILE=forecast_leadview.gif
+ 
+! Bug 2331: Labeling the labels in line-plot legends.
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Go err700_legend_labels
+! err700_legend_labels.jnl
+! See ticket 2231:
+!   - consistent labeling of units
+!   - PLOT/KEY=title applies to PLOT/VS
+ 
+cancel symbol lab*
+use gt4d011.cdf
+ 
+! Previously vertical label had Deg C, legend labels had units.
+! Now label only the legend labels show the different units.
+set v ul; plot/l=1/k=1/y=0/key=title temp, taux, tauy
+annotate/norm/xpos=1/ypos=.5/halign=0/valign=-4/angle=-90/size=0.14 "Each label with units"
+ 
+sh sym lab*  ! laby is not used
+LABX = "LONGITUDE"
+LAB1 = "DEPTH (m) : 5"
+LABNUM_Z = "1"
+LAB2 = "TIME : 17-AUG-1982 12:00"
+LABNUM_T = "2"
+LAB3 = "DATA SET: gt4d011"
+LABNUM_DSET = "3"
+LAB4 = ""
+LABNUM_DATITL = "4"
+LAB5 = "TEMPERATURE (deg. C)"
+LABKEY = "MERIDIONAL WIND STRESS (dynes/cm**2)"
+LAB6 = "ZONAL WIND STRESS (dynes/cm**2)"
+LAB7 = "MERIDIONAL WIND STRESS (dynes/cm**2)"
+can sym lab*
+ 
+! Previously vertical label and legend labels had units.
+! Now label only the vertical axis with the common units.
+set v ur; plot/l=1/k=1/y=0/key=title taux, tauy
+annotate/norm/xpos=1/ypos=.5/halign=0/valign=-4/angle=-90/size=0.14 "Common Units, labeled on left"
+ 
+! legend labels now do not include units
+sh sym lab*
+LABX = "LONGITUDE"
+LAB1 = "LATITUDE : 0"
+LABNUM_Y = "1"
+LAB2 = "TIME : 17-AUG-1982 12:00"
+LABNUM_T = "2"
+LAB3 = "DATA SET: gt4d011"
+LABNUM_DSET = "3"
+LAB4 = ""
+LABNUM_DATITL = "4"
+LABY = "dynes/cm**2"
+LAB5 = "ZONAL WIND STRESS"
+LABKEY = "MERIDIONAL WIND STRESS"
+LAB6 = "MERIDIONAL WIND STRESS"
+can sym lab*
+ 
+! Define some variables with titles
+let/title="Temperature Avg"/units="`temp,return=units`" tmpave = temp[L=@ave,z=@ave]
+ !-> DEFINE VARIABLE/title="Temperature Avg"/units="deg. C" tmpave = temp[L=@ave,z=@ave]
+let/title="September Taux"/units="`taux,return=units`" taux_s = taux[t=23-SEP-1982, k=1]
+ !-> DEFINE VARIABLE/title="September Taux"/units="dynes/cm**2" taux_s = taux[t=23-SEP-1982, k=1]
+let/title="January Taux"/units="`taux,return=units`" taux_j = taux[t=4-jan-1983, k=1]
+ !-> DEFINE VARIABLE/title="January Taux"/units="dynes/cm**2" taux_j = taux[t=4-jan-1983, k=1]
+ 
+! Set up a common set of axes for all variables
+set v lower
+plot/vs/sym=dot/y=0/nokey tmpave,taux_s,taux_j
+annotate/norm/xpos=1/ypos=.5/halign=0/valign=-4/angle=-90/size=0.14 "PLOT/VS with KEY=title"
+ 
+! Overlay; the legend titles are variable titles.
+plot/over/vs/color=red/thick/siz=0.14/y=0/key=title tmpave,taux_s
+plot/over/vs/color=green/thick/siz=0.14/y=0/key=title tmpave,taux_j
+ 
+frame/file=legend_1d_plots.gif
+ 
+! legend labels are titles
+sh sym lab*
+LABX = "Temperature Avg (deg. C)"
+LAB1 = "DEPTH (m) : 0 to 4149"
+LABNUM_Z = "1"
+LAB2 = "DATA SET: gt4d011"
+LABNUM_DSET = "2"
+LAB3 = ""
+LABNUM_DATITL = "3"
+LABY = "dynes/cm**2"
+LAB4 = "September Taux"
+LABKEY = "January Taux"
+LAB5 = "January Taux"
+ 
+! Overlaying on a 2D field
+ 
+DEFINE AXIS/T="1-JAN-1980":"1-JAN-1990":5/UNITS=DAYS tdays
+DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
+ 
+LET/TITLE=XY my_var = 10*cos(T[gt=tdays]/2000)*EXP((-1)*y[gy=yax]/20)
+LET my_var2 = 10*cos(T[gt=tdays]/2000)*EXP((-1)*y[gy=yax]/20)
+ 
+! make a Hovmoller plot
+SHADE/nolab my_var
+ 
+! PLOT/OVER without key=title shows the def in the line key
+PLOT/OVER my_var[Y=@loc:-4]
+PLOT/OVER my_var2[Y=@loc:-3]
+ 
+! with /KEY=TITLE, the variable with a title uses that,
+! variable without a title uses the variable name,
+! an expression just puts the expression (same as w/o /key=title)
+ 
+PLOT/OVER/KEY=TITLE my_var[Y=@loc:-2]
+PLOT/OVER/KEY=TITLE my_var2[Y=@loc:-1]
+ 
+PLOT/OVER/KEY=TITLE 10+cos(T[gt=tdays]/200)
+ 
+ 
+! Bug 2507: time aggregations with same time axis in different grids per file
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Go err700_aggt_dup_grids
+! err700_aggt_dup_grids
+! 2/15/2017 ACM
+! Bug 2507: new time axis is identical in two tseries aggregation.
+!  It exists in more than one grid. Previously the new time axis
+!  was swapped into only one of the grids for the second aggregation.
+ 
+! Define some datsets, with two variables with different grids each
+! using a common time axis.
+ 
+use  tmp/tagg_irreg_1.nc
+define axis/x=1:1:1 xax1
+let newvar = x[gx=xax1] + myvar
+save/clobber/file=a1.nc myvar, newvar
+can dat/all
+use  tmp/tagg_irreg_2.nc
+save/clobber/file=a2.nc myvar, newvar
+ 
+can dat/all; can var/all
+ 
+! Define two aggregations; the second should share the time axis
+! that was set up in the first.
+sp ln -sf a1.nc b1.nc
+sp ln -sf a2.nc b2.nc
+ 
+tseries a2var = a1.nc, a2.nc
+tseries b2var = b1.nc, b2.nc
+ 
+! previously the time axis of the second variable in b2var was
+! listed as length 10
+sh dat
+     currently SET data sets:
+    1> a2var
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20
+ NEWVAR   X[GX=XAX1] + MYVAR               1:1       ...       ...       1:20
+ 
+    2> b2var  (default)
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20
+ NEWVAR   X[GX=XAX1] + MYVAR               1:1       ...       ...       1:20
+ 
+ 
+*** Running ferret script: bn_delim_datetime.jnl
+! bn_delim_datetime.jnl
+! ACM 7/2016
+!
+! Tickets 2448, 2449, 2450: Improvements to date reading in delimited files.
+! New: date/time fields for US and European style dates.
+! Also report incorrect date/time spec (causes months out of range)
+! and put 2-digit years prior to 50 in the 21st century. (prev. cutoff was year 20)
+!
+ 
+! File contains index,euro-date-time, us-date-time, us-date, eurodate
+! The years in variables 3 and 4 are 2-digit years after year 2020.
+ 
+! Ticket 2472: Allow yyyy/dd/mm in any of the date specs.
+ 
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,datime,date,eurodate" delim_datetime.csv
+sh dat
+     currently SET data sets:
+    1> ./delim_datetime.csv  (default)
+ name     title                             I         J         K         L
+ INDEX    index                            1:8       ...       ...       ...
+ EDTIM    edtim                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ UDTIM    udtim                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ UDATE    udate                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ EDATE    edate                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ 
+list index,edtim,udtim,udate,edate
+             DATA SET: ./delim_datetime.csv
+             X: 0.5 to 5.5
+ Column  1: INDEX is index
+ Column  2: EDTIM is edtim (days)(Julian days since 1-Jan-1900)
+ Column  3: UDTIM is udtim (days)(Julian days since 1-Jan-1900)
+ Column  4: UDATE is udate (days)(Julian days since 1-Jan-1900)
+ Column  5: EDATE is edate (days)(Julian days since 1-Jan-1900)
+         INDEX   EDTIM   UDTIM   UDATE   EDATE
+1   / 1:  1.000  41659.  43850.  34837.  33376.
+2   / 2:  2.000  41659.  44216.  38490.  33407.
+3   / 3:  3.000  41659.  44581.  42142.  33437.
+4   / 4:  4.000  41659.  44946.  45795.  33468.
+5   / 5:  5.000  41659.  45311.  49447.  33529.
+ 
+! axis January 2014
+define axis/t/t0=1-jan-1900/units=days timax = edtim
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 5 i   22-JAN-2014 01:00    22-JAN-2014 05:20
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 0.2361111
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  22-JAN-2014 01:00:00  0.0555556  22-JAN-2014 00:20:00    41659.04
+       2>  22-JAN-2014 02:20:00  0.0555556  22-JAN-2014 01:40:00    41659.1
+       3>  22-JAN-2014 03:40:00  0.0347222  22-JAN-2014 03:00:00    41659.15
+       4>  22-JAN-2014 04:00:00  0.0347222  22-JAN-2014 03:50:00    41659.17
+       5>  22-JAN-2014 05:20:00  0.0555556  22-JAN-2014 04:40:00    41659.22
+ 
+! time axis in 1991
+define axis/t/t0=1-jan-1900/units=days timax = edate
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 5 i   20-MAY-1991 00:00    20-OCT-1991 00:00
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 199
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  20-MAY-1991 00:00:00  31         04-MAY-1991 12:00:00    33376
+       2>  20-JUN-1991 00:00:00  30.5       04-JUN-1991 12:00:00    33407
+       3>  20-JUL-1991 00:00:00  30.5       05-JUL-1991 00:00:00    33437
+       4>  20-AUG-1991 00:00:00  46         04-AUG-1991 12:00:00    33468
+       5>  20-OCT-1991 00:00:00  61         19-SEP-1991 12:00:00    33529
+ 
+! time axis in 2020 - 2024
+define axis/t/t0=1-jan-1900/units=days timax = udtim
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 5 i   22-JAN-2020 06:40    22-JAN-2024 10:40
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 1826.708
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  22-JAN-2020 06:40:00  366.0417   23-JUL-2019 06:10:00    43850.28
+       2>  22-JAN-2021 07:40:00  365.5417   23-JUL-2020 07:10:00    44216.32
+       3>  22-JAN-2022 08:40:00  365.0417   23-JUL-2021 20:10:00    44581.36
+       4>  22-JAN-2023 09:40:00  365.0417   23-JUL-2022 21:10:00    44946.4
+       5>  22-JAN-2024 10:40:00  365.0417   23-JUL-2023 22:10:00    45311.44
+ 
+! time axis in 1995 - 2035
+define axis/t/t0=1-jan-1900/units=days timax = udate
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 5 i   20-MAY-1995 00:00    20-MAY-2035 00:00
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 18262.5
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  20-MAY-1995 00:00:00  3653       19-MAY-1990 12:00:00    34837
+       2>  20-MAY-2005 00:00:00  3652.5     19-MAY-2000 12:00:00    38490
+       3>  20-MAY-2015 00:00:00  3652.5     20-MAY-2010 00:00:00    42142
+       4>  20-MAY-2025 00:00:00  3652.5     19-MAY-2020 12:00:00    45795
+       5>  20-MAY-2035 00:00:00  3652       20-MAY-2030 00:00:00    49447
+ 
+! Dates of yyyy/dd/mm
+! Dates with 00/00/00 return missing-data
+ 
+columns/skip=2/var="index,udate,udtim"/type="num,date,datime" delim_yyyy.csv
+sh dat
+     currently SET data sets:
+    1> ./delim_datetime.csv
+ name     title                             I         J         K         L
+ INDEX    index                            1:5       ...       ...       ...
+ EDTIM    edtim                            1:5       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ UDTIM    udtim                            1:5       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ UDATE    udate                            1:5       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ EDATE    edate                            1:5       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ 
+    2> ./delim_yyyy.csv  (default)
+ name     title                             I         J         K         L
+ INDEX    index                            1:8       ...       ...       ...
+ UDATE    udate                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ UDTIM    udtim                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ 
+list/prec=10 index,udate,udtim
+             DATA SET: ./delim_yyyy.csv
+             X: 0.5 to 6.5
+ Column  1: INDEX is index
+ Column  2: UDATE is udate (days)(Julian days since 1-Jan-1900)
+ Column  3: UDTIM is udtim (days)(Julian days since 1-Jan-1900)
+               INDEX      UDATE        UDTIM
+1   / 1:  1.000000000  40920.00000  37243.27778
+2   / 2:  2.000000000  40921.00000  37243.31944
+3   / 3:  3.000000000  40923.00000  37243.36111
+4   / 4:  4.000000000  40924.00000  37243.40278
+5   / 5:  5.000000000         ....  37243.48611
+6   / 6:  6.000000000  40925.00000  37243.61111
+ 
+! axis January 2014
+define axis/t/t0=1-jan-1900/units=days timax = udate[i=1:4]
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 4 i   14-JAN-2012 00:00    18-JAN-2012 00:00
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 5
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  14-JAN-2012 00:00:00  1          13-JAN-2012 12:00:00    40920
+       2>  15-JAN-2012 00:00:00  1.5        14-JAN-2012 12:00:00    40921
+       3>  17-JAN-2012 00:00:00  1.5        16-JAN-2012 00:00:00    40923
+       4>  18-JAN-2012 00:00:00  1          17-JAN-2012 12:00:00    40924
+! axis December 2001
+define axis/t/t0=1-jan-1900/units=days timax = udtim
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 6 i   20-DEC-2001 06:40    20-DEC-2001 14:40
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 0.4166667
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  20-DEC-2001 06:40:00  0.0416667  20-DEC-2001 06:10:00    37243.28
+       2>  20-DEC-2001 07:40:00  0.0416667  20-DEC-2001 07:10:00    37243.32
+       3>  20-DEC-2001 08:40:00  0.0416667  20-DEC-2001 08:10:00    37243.36
+       4>  20-DEC-2001 09:40:00  0.0625     20-DEC-2001 09:10:00    37243.4
+       5>  20-DEC-2001 11:40:00  0.1041667  20-DEC-2001 10:40:00    37243.49
+       6>  20-DEC-2001 14:40:00  0.125      20-DEC-2001 13:10:00    37243.61
+ 
+ 
+! Intentional errors, specifying the wrong date field type (catches the first error)
+! The error is found upon reading the file.
+ 
+set mode ignore
+can dat/all
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,datime,datime,date,date" delim_datetime.csv
+list index,edtim,udtim,udate,edate
+ 
+can dat/all
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,edatime,date,eurodate" delim_datetime.csv
+list index,edtim,udtim,udate,edate
+ 
+can dat/all
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,datime,eurodate,date" delim_datetime.csv
+list index,edtim,udtim,udate,edate
+ 
+can dat/all
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,datime,date,date" delim_datetime.csv
+list index,edtim,udtim,udate,edate
+ 
+set mode/last ignore
+ 
+ 
+*** Running ferret script: 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
+! create some variables in separate datasets.
+define axis/t=1-jan-2010:10-jan-2010:1/units=days/t0=1-jan-2010 tax
+let/title=sst  sst = x[x=1:5] + 1.3*y[y=1:4] + t[gt=tax]
+let/title=temp temp = 0.8*x[x=1:5] - y[y=1:4] + t[gt=tax]
+let/title=U    u = x[x=1:5] + 0.4*y[y=1:4] - 1.1* t[gt=tax]
+let/title=V    v = x[x=1:5] - 0.2*y[y=1:4] + 1.1* t[gt=tax]
+ 
+save/clobber/file="tmp/uagg_1.nc" sst
+save/clobber/file="tmp/uagg_2.nc" temp
+save/clobber/file="tmp/uagg_3.nc" u
+save/clobber/file="tmp/uagg_4.nc" v
+ 
+save/l=1:3/clobber/file="tmp/uagg_1_t1.nc" sst
+save/l=4:6/clobber/file="tmp/uagg_1_t2.nc" sst
+save/l=7:10/clobber/file="tmp/uagg_1_t3.nc" sst
+ 
+can dat/all
+union tmp/uagg_1.nc,tmp/uagg_2.nc,tmp/uagg_3.nc,tmp/uagg_4.nc
+sh dat
+     currently SET data sets:
+    5> ./bn_aggregate_u.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
+ 
+vec/l=5 u,v
+ 
+cancel dat/all
+ 
+! issue a note if a variable is already in the Union
+! a new file with different defiontions of sst and temp
+!
+let/title="sst in uagg_5"  sst = 1.1*x[x=1:5] + 1.3*y[y=1:4] + t[gt=tax]
+let/title="temp in uagg_5" temp = 0.9*x[x=1:5] - y[y=1:4] + t[gt=tax]
+save/clobber/file="tmp/uagg_5.nc" sst,temp
+ 
+! In the union set, sst comes from uagg_1, temp comes from uagg_5
+union uu = tmp/uagg_1.nc,tmp/uagg_5.nc
+sh dat/att
+     currently SET data sets:
+    3> uu  (default)  Union aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        2    F       uu
+  
+ SST                   FLOAT     long_name       CHAR        3    T       sst
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ TEMP                  FLOAT     long_name       CHAR        14   T       temp in uagg_5
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+can dat/all
+ 
+! Or use /quiet to supress the note
+union/quiet uu = tmp/uagg_1.nc,tmp/uagg_5.nc
+ 
+let tnames = SPAWN("ls -1 tmp/uagg_1_*.nc")
+tseries  temp_time_agg = tnames
+sh dat
+     currently SET data sets:
+    3> uu     Union aggregation
+ name     title                             I         J         K         L
+ SST      sst                              1:5       1:4       ...       1:10
+ TEMP     temp in uagg_5                   1:5       1:4       ...       1:10
+ 
+    4> temp_time_agg  (default)
+ name     title                             I         J         K         L
+ SST      sst                              1:5       1:4       ...       1:10
+ 
+union temp_time_agg, tmp/uagg_2.nc,tmp/uagg_3.nc,tmp/uagg_4.nc
+ 
+shade/l=2 sst - temp
+ 
+ 
+can dat/all; can var/all; can sym/all
+ 
+! exercise 6D aggregations: UNION with T, E, and F simultaneously
+ 
+! do not bother to echo the creation of files and the definitions of the
+! many time aggregations
+CANCEL MODE VERIFY
+! define T aggregations
+ 
+! timeseries of files with variable fcst_1
+repeat/name=fdate/range=1:7:3 (\
+  let tstart = t[gt=truemonth,l=`fdate`];\
+  repeat/name=ens/range=1:2:1 (\
+    let realization = `ens`;\
+    TSERIES  t_f`(fdate-1)/3+1,zw=2`_e`ens` = SPAWN("ls -1 tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_t?.nc")  ))
+!-> REPEAT: FDATE:1
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=1]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f01_e1 = SPAWN("ls -1 tmp/f01_e1_t?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f01_e2 = SPAWN("ls -1 tmp/f01_e2_t?.nc")
+!-> REPEAT: FDATE:4
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=4]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f02_e1 = SPAWN("ls -1 tmp/f02_e1_t?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f02_e2 = SPAWN("ls -1 tmp/f02_e2_t?.nc")
+!-> REPEAT: FDATE:7
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=7]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f03_e1 = SPAWN("ls -1 tmp/f03_e1_t?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f03_e2 = SPAWN("ls -1 tmp/f03_e2_t?.nc")
+ 
+! timeseries of files with variable fcst_3
+repeat/name=fdate/range=1:7:3 (\
+  let tstart = t[gt=truemonth,l=`fdate`];\
+  repeat/name=ens/range=1:2:1 (\
+    let realization = `ens`;\
+    TSERIES  t_f`(fdate-1)/3+1,zw=2`_e`ens`_3 = SPAWN("ls -1 tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_tu?.nc")  ))
+!-> REPEAT: FDATE:1
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=1]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f01_e1_3 = SPAWN("ls -1 tmp/f01_e1_tu?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f01_e2_3 = SPAWN("ls -1 tmp/f01_e2_tu?.nc")
+!-> REPEAT: FDATE:4
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=4]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f02_e1_3 = SPAWN("ls -1 tmp/f02_e1_tu?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f02_e2_3 = SPAWN("ls -1 tmp/f02_e2_tu?.nc")
+!-> REPEAT: FDATE:7
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=7]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f03_e1_3 = SPAWN("ls -1 tmp/f03_e1_tu?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f03_e2_3 = SPAWN("ls -1 tmp/f03_e2_tu?.nc")
+ 
+cancel variable realization
+ 
+SET MODE VERIFY
+! now union these to make datsets with fcnst_1 and fcst_3.
+ 
+show data/files/br;
+     currently SET data sets:
+    1> t_f01_e1
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_t3.nc
+ 
+    2> t_f01_e2
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_t3.nc
+ 
+    3> t_f02_e1
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e1_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e1_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e1_t3.nc
+ 
+    4> t_f02_e2
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e2_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e2_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e2_t3.nc
+ 
+    5> t_f03_e1
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e1_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e1_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e1_t3.nc
+ 
+    6> t_f03_e2
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e2_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e2_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e2_t3.nc
+ 
+    7> t_f01_e1_3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_tu1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_tu2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_tu3.nc
+ 
+    8> t_f01_e2_3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_tu1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_tu2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_tu3.nc
+ 
+    9> t_f02_e1_3
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e1_tu1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e1_tu2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e1_tu3.nc
+ 
+   10> t_f02_e2_3
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e2_tu1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e2_tu2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e2_tu3.nc
+ 
+   11> t_f03_e1_3
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e1_tu1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e1_tu2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e1_tu3.nc
+ 
+   12> t_f03_e2_3  (default)
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e2_tu1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e2_tu2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e2_tu3.nc
+ 
+ 
+DEFINE DATA/AGGREGAT/U  u1 = t_f01_e1_3, t_f01_e1
+DEFINE DATA/AGGREGAT/U  u2 = t_f01_e2, t_f01_e2_3
+show data u1 u2
+     currently SET data sets:
+   13> u1     Union aggregation
+ name     title                             I         J         K         L
+ FCST_3   another variable                 1:21      1:11      1:1       1:36
+       (L=1:12)
+ REALIZATION
+          1                                ...       ...       ...       ...
+ FCST     some variable                    1:21      1:11      1:1       1:36
+       (L=1:12)
+ FCST_2   another variable                 1:21      1:11      1:1       1:36
+       (L=1:12)
+ 
+can data u1 u2
+ 
+! Make a batch of files, timeseries aggregations union-ed.
+! the /QUIET supresses the note about skipping duplicate variables.
+repeat/name=fdate/range=1:7:3 (\
+  let tstart = t[gt=truemonth,l=`fdate`];\
+  repeat/name=ens/range=1:2:1 (\
+    let realization = `ens`;\
+    UNION/quiet  t_f_u`(fdate-1)/3+1,zw=2`_e`ens` = t_f`(fdate-1)/3+1,zw=2`_e`ens`, t_f`(fdate-1)/3+1,zw=2`_e`ens`_3;\
+    show data/br t_f_u`(fdate-1)/3+1,zw=2`_e`ens`))
+!-> REPEAT: FDATE:1
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=1]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u01_e1 = t_f01_e1, t_f01_e1_3
+ !-> show data/br t_f_u01_e1
+     currently SET data sets:
+   13> t_f_u01_e1  (default)  Union aggregation
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u01_e2 = t_f01_e2, t_f01_e2_3
+ !-> show data/br t_f_u01_e2
+     currently SET data sets:
+   14> t_f_u01_e2  (default)  Union aggregation
+!-> REPEAT: FDATE:4
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=4]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u02_e1 = t_f02_e1, t_f02_e1_3
+ !-> show data/br t_f_u02_e1
+     currently SET data sets:
+   15> t_f_u02_e1  (default)  Union aggregation
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u02_e2 = t_f02_e2, t_f02_e2_3
+ !-> show data/br t_f_u02_e2
+     currently SET data sets:
+   16> t_f_u02_e2  (default)  Union aggregation
+!-> REPEAT: FDATE:7
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=7]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u03_e1 = t_f03_e1, t_f03_e1_3
+ !-> show data/br t_f_u03_e1
+     currently SET data sets:
+   17> t_f_u03_e1  (default)  Union aggregation
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u03_e2 = t_f03_e2, t_f03_e2_3
+ !-> show data/br t_f_u03_e2
+     currently SET data sets:
+   18> t_f_u03_e2  (default)  Union aggregation
+ 
+cancel variable realization
+ 
+! should share the same time axis
+show grid fcst[d=t_f01_e1]
+    GRID GEM1
+ name       axis              # pts   start                end                 subset
+ XAX       LONGITUDE           21mr   140E                 160E                full
+ YAX       LATITUDE            11 r   10N                  20N                 full
+ ZAX1      Z (m)                1 r   250                  250                 full
+ TRUEMONTH1 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
+ YAX       LATITUDE            11 r   10N                  20N                 full
+ ZAX1      Z (m)                1 r   250                  250                 full
+ TRUEMONTH1 TIME               36 i   16-JAN-1950 12:00    16-DEC-1952 12:00   full
+ 
+! Now go on and aggregate these time & union aggregations, in E and F
+ 
+! ======== TEST SET 1:  aggregate E first, then F
+ 
+! define tue aggregations -- only the first remains unhidden
+ENSEMBLE      tue_f01 = t_f_u01_e1, t_f_u01_e2
+ENSEMBLE/hide tue_f02 = t_f_u02_e1, t_f_u02_e1
+ENSEMBLE/hide tue_f03 = t_f_u03_e1, t_f_u03_e2
+SHOW DATA/brief
+     currently SET data sets:
+    1> t_f01_e1
+    2> t_f01_e2
+    3> t_f02_e1
+    4> t_f02_e2
+    5> t_f03_e1
+    6> t_f03_e2
+    7> t_f01_e1_3
+    8> t_f01_e2_3
+    9> t_f02_e1_3
+   10> t_f02_e2_3
+   11> t_f03_e1_3
+   12> t_f03_e2_3
+   13> t_f_u01_e1     Union aggregation
+   14> t_f_u01_e2     Union aggregation
+   16> t_f_u02_e2     Union aggregation
+   19> tue_f01     Ensemble aggregation
+   20> tue_f02     Ensemble aggregation
+   21> tue_f03  (default)  Ensemble aggregation
+SHOW DATA/FULL tue_f03
+     currently SET data sets:
+   21> tue_f03  (default)  Ensemble aggregation
+     Ensemble series of 2 datasets patterned on t_f_u03_e1
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:2       ...
+       (L=7:18)
+               on grid GEN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:2       ...
+       (L=7:18)
+               on grid GEN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  
+ REALIZATION
+          1                                ...       ...       ...       ...       1:2       ...
+               on grid GEN3 with -1.E+34 for missing data
+             E=0.5:2.5  
+ FCST_3   another variable                 1:21      1:11      1:1       1:36      1:2       ...
+       (L=7:18)
+               on grid GEN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  
+ 
+  time range: 16-JUL-1950 12:00 to 16-JUN-1953 00:00
+ 
+          Member datasets:
+      21.1: t_f_u03_e1
+      21.2: t_f_u03_e2
+SHOW DATA/ATT tue_f03   ! notice the promotion of fcst.im_everywhere
+     currently SET data sets:
+   21> tue_f03  (default)  Ensemble aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        7    F       tue_f03
+  
+ FCST                  FLOAT     long_name       CHAR        13   T       some variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ FCST_2                FLOAT     long_name       CHAR        16   T       another variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ REALIZATION           FLOAT     long_name       CHAR        1    T       1
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ FCST_3                FLOAT     long_name       CHAR        16   T       another variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ 
+! define tuef aggregation
+FMRC/HIDE tuef = tue_f01, tue_f02, tue_f03
+SHOW DATA/brief/files
+     currently SET data sets:
+    1> t_f01_e1
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_t3.nc
+ 
+    2> t_f01_e2
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_t3.nc
+ 
+    3> t_f02_e1
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e1_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e1_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e1_t3.nc
+ 
+    4> t_f02_e2
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e2_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e2_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e2_t3.nc
+ 
+    5> t_f03_e1
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e1_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e1_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e1_t3.nc
+ 
+    6> t_f03_e2
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e2_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e2_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e2_t3.nc
+ 
+    7> t_f01_e1_3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_tu1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_tu2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_tu3.nc
+ 
+    8> t_f01_e2_3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_tu1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_tu2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_tu3.nc
+ 
+    9> t_f02_e1_3
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e1_tu1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e1_tu2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e1_tu3.nc
+ 
+   10> t_f02_e2_3
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e2_tu1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e2_tu2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e2_tu3.nc
+ 
+   11> t_f03_e1_3
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e1_tu1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e1_tu2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e1_tu3.nc
+ 
+   12> t_f03_e2_3
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e2_tu1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e2_tu2.nc
+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
+ 
+   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
+ 
+   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
+ 
+   22> tuef  (default)  Forecast aggregation
+          Member datasets:
+      22.1: tue_f01
+      22.2: tue_f02
+      22.3: tue_f03
+show data/full tuef
+     currently SET data sets:
+   22> tuef  (default)  Forecast aggregation
+     Forecast series of 3 datasets patterned on tue_f01
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+               on grid GFN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  F=16-NOV-1949 18:00:15-AUG-1950 06:00  
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:36      ...       1:3
+             days since 01-JAN-1900 00:00:00 on grid FTI1 with -1.E+34 for missing data
+             F=16-NOV-1949 18:00:15-AUG-1950 06:00  
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+               on grid GFN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  F=16-NOV-1949 18:00:15-AUG-1950 06:00  
+ FCST_3   another variable                 1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+               on grid GFN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  F=16-NOV-1949 18:00:15-AUG-1950 06:00  
+ 
+  time range: 15.214 to 1080.2
+ 
+          Member datasets:
+      22.1: tue_f01
+      22.2: tue_f02
+      22.3: tue_f03
+ 
+! The time-union-ensemble-forecast aggregation
+ 
+set data tuef
+show data tuef
+     currently SET data sets:
+   22> tuef  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:36      ...       1:3
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+ FCST_3   another variable                 1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+ 
+sh grid fcst
+    GRID (G025)  Forecast Aggregation Grid
+ name       axis              # pts   start                end                 subset
+ XAX       LONGITUDE           21mr   140E                 160E                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
+ 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
+ name       axis              # pts   start                end                 subset
+ XAX       LONGITUDE           21mr   140E                 160E                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
+ TF_CAL_F  FORECAST             3 i   01-JAN-1950 00:00    01-JUL-1950 00:00   full
+ 
+! simplest acess -- compact form -- just demonstrate it doesn't fail
+stat/brief fcst[i=11:12, j=5:6, l=31:32, m=1:2, n=2:3]
+ 
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad  data: 0
+ Minimum value: 224.8
+ Maximum value: 237.7
+ Mean    value: 228.19 (unweighted average)
+stat/brief fcst_3[i=11:12, j=5:6, l=31:32, m=1:2, n=2:3]
+ 
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad  data: 0
+ Minimum value: 227.8
+ Maximum value: 240.74
+ Mean    value: 231.21 (unweighted average)
+ 
+! diagonal forecast view of ensemble mean
+let diag_fcst = fcst[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]
+shade/x=150E/y=15n diag_fcst[m=1:2 at ave]
+ 
+let diag_fcst_3 = fcst_3[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]
+shade/x=150E/y=15n diag_fcst[m=1:2 at ave]
+ 
+! the difference will be just a small variation from the value 3
+let diff_of_union = diag_fcst - diag_fcst_3
+ 
+shade/x=150E/y=15n  diff_of_union[m=1:2 at ave]
+CANCEL DATA/ALL
+ 
+ 
+*** Running ferret script: bn_ez_noupcase.jnl
+! bn_ez_noupcase.jnl
+! 7/2016 *acm* see ticket 2454
+!
+! Handle variable-name upcasing for Ascii data
+! in the same way as for netcdf variables.
+! Previously they were resolutely up-cased and the
+! lowercase version was unavailable.
+ 
+can mode upcase
+ 
+let abc = {2,4,6,8,6}
+list/clobber/nohead/norow/file=abc.dat abc
+can var/all
+file/var=abc abc.dat
+sh dat
+     currently SET data sets:
+    1> ./abc.dat  (default)
+ name     title                             I         J         K         L
+ abc      abc                              1:5       ...       ...       ...
+ 
+sh dat/att
+     currently SET data sets:
+    1> ./abc.dat  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        7    F       abc.dat
+  
+ abc                   FLOAT     long_name       CHAR        3    T       abc
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+save/clobber/file=a.nc abc
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	AX002 = 5 ;
+variables:
+	double AX002(AX002) ;
+		AX002:point_spacing = "even" ;
+		AX002:axis = "X" ;
+	float abc(AX002) ;
+		abc:missing_value = -1.e+34f ;
+		abc:_FillValue = -1.e+34f ;
+		abc:long_name = "abc" ;
+		abc:history = "From abc.dat" ;
+
+// global attributes:
+		:history = "FERRET V7.1  18-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+! Delimited read
+columns/skip=1/var="lab,nothing,var,latitude,longitude"/type="text,text,num,latitude,longitude" bn_delimited_read_1.dat
+sh dat
+     currently SET data sets:
+    1> ./abc.dat
+ name     title                             I         J         K         L
+ abc      abc                              1:5       ...       ...       ...
+ 
+    2> ./bn_delimited_read_1.dat  (default)
+ name     title                             I         J         K         L
+ lab      lab                              1:7       ...       ...       ...
+ nothing  nothing                          1:7       ...       ...       ...
+ var      var                              1:7       ...       ...       ...
+ latitude latitude                         1:7       ...       ...       ...
+       (Latitude)
+ longitude
+          longitude                        1:7       ...       ...       ...
+       (Longitude)
+ 
+sh dat/att
+     currently SET data sets:
+    1> ./abc.dat
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        7    F       abc.dat
+  
+ abc                   FLOAT     long_name       CHAR        3    T       abc
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+    2> ./bn_delimited_read_1.dat  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               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
+  
+ nothing               CHAR      long_name       CHAR        7    T       nothing
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ var                   FLOAT     long_name       CHAR        3    T       var
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ latitude              FLOAT     long_name       CHAR        8    T       latitude
+                                 units           CHAR        13   T       degrees_north
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ longitude             FLOAT     long_name       CHAR        9    T       longitude
+                                 units           CHAR        12   T       degrees_east
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+sav/file=a.nc/clobber var,longitude,latitude
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	AX003 = 6 ;
+variables:
+	double AX003(AX003) ;
+		AX003:point_spacing = "even" ;
+		AX003:axis = "X" ;
+	float var(AX003) ;
+		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(AX003) ;
+		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(AX003) ;
+		latitude:missing_value = -1.e+34f ;
+		latitude:_FillValue = -1.e+34f ;
+		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" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+set mode/last upcase
+*** Running ferret script: 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.
+!  8/2016 *acm*
+ 
+sp ls notafile.nowhere
+sp grep "this text is not in the file" bn_all.jnl
+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
+! bn_ave_of_ave.jnl
+! see ticket 2469
+ 
+let a = x[gx=1:3:1] + t[gt=1:7:1]
+let a_xav = a[x=@ave]
+let a_dev = a - a_xav
+ 
+list a_dev[x=@ave]
+             VARIABLE : A - A_XAV
+             SUBSET   : 7 points (T)
+             X        : 0.5 to 3.5 (averaged)
+ 1   / 1:  0.0000
+ 2   / 2:  0.0000
+ 3   / 3:  0.0000
+ 4   / 4:  0.0000
+ 5   / 5:  0.0000
+ 6   / 6:  0.0000
+ 7   / 7:  0.0000
+ 
+! Previously this was an error
+list a[x=@ave] - a_xav[x=@ave]
+             VARIABLE : A[X=@AVE] - A_XAV[X=@AVE]
+             SUBSET   : 7 points (T)
+             X        : 0.5 to 3.5
+ 1   / 1:  0.0000
+ 2   / 2:  0.0000
+ 3   / 3:  0.0000
+ 4   / 4:  0.0000
+ 5   / 5:  0.0000
+ 6   / 6:  0.0000
+ 7   / 7:  0.0000
+ 
+! Combine with functions, regridding
+let a = x[gx=1:3:1] + t[gt=1:7:1]
+let a_xav = a[x=@ave]
+let a_xav_xav = a_xav[x=@ave]
+let b = samplel(a_xav_xav, l[gl=1:3:1])
+let c = b[gt=1:3:1]
+ 
+! Previously an error
+list c
+             VARIABLE : B[GT=1:3:1]
+             SUBSET   : 3 points (T)
+ 1   / 1:  3.000
+ 2   / 2:  4.000
+ 3   / 3:  5.000
+ 
+! Likewise for @SUM, @MIN, @MAX.
+ 
+let a = TSEQUENCE({1,2,3})
+let a_xtrns = a[t=@SUM]
+list a[t=@SUM] - a_xtrns[t=@SUM]
+             VARIABLE : A[T=@SUM] - A_XTRNS[T=@SUM]
+             T        : 0.5 to 3.5
+          0.0000
+ 
+let a_xtrns = a[t=@MIN]
+list a[t=@MIN] - a_xtrns[t=@MIN]
+             VARIABLE : A[T=@MIN] - A_XTRNS[T=@MIN]
+             T        : 0.5 to 3.5
+          0.0000
+ 
+let a_xtrns = a[t=@MAX]
+list a[t=@MAX] - a_xtrns[t=@MAX]
+             VARIABLE : A[T=@MAX] - A_XTRNS[T=@MAX]
+             T        : 0.5 to 3.5
+          0.0000
+ 
+*** Running ferret script: bn_agg_member_syntax.jnl
+! bn_agg_member_syntax
+ 
+! *sh* 11/16
+ 
+! running of this benchmark assumes that a tmp directory has been created
+! and that it contains the aggregation member files created by bn_aggregate_f
+ 
+ 
+! define an 11-member FMRC aggregation
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+fmrc my_fmrc = files
+show data/members my_fmrc   ! /FILES is deprecated
+     currently SET data sets:
+   12> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:11
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ 
+          Member datasets:
+      12.1 : tmp/fcst_1.nc
+      12.2 : tmp/fcst_2.nc
+      12.3 : tmp/fcst_3.nc
+      12.4 : tmp/fcst_4.nc
+      12.5 : tmp/fcst_5.nc
+      12.6 : tmp/fcst_6.nc
+      12.7 : tmp/fcst_7.nc
+      12.8 : tmp/fcst_8.nc
+      12.9 : tmp/fcst_9.nc
+      12.10: tmp/fcst_10.nc
+      12.11: tmp/fcst_11.nc
+ 
+show data 12.3   ! turns out to be dset=5
+     currently SET data sets:
+    5> tmp/fcst_3.nc
+ name     title                             I         J         K         L
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24
+       (L=7:30)
+ FCST_2   another variable                 1:21      1:21      ...       1:24
+       (L=7:30)
+ 
+ 
+! these are now all allowable references to the parent aggregation
+stat fcst[d=12]
+ 
+             FIELD + FCST_ERROR
+             LONGITUDE: 139.5E to 160.5E
+             LATITUDE: 19.5N to 40.5N
+             Z:  N/A
+             MODEL ELAPSED TIME (day): 0 to 729.39
+             E:  N/A
+             FORECAST: 16-NOV-1949 09:36 to 15-AUG-1952 14:24
+             DATA SET: my_fmrc
+ 
+ Total # of data points: 116424 (21*21*1*24*1*11)
+ # flagged as bad  data: 0
+ Minimum value: -1.0038
+ Maximum value: 1.4046
+ Mean    value: 0.13342 (unweighted average)
+ Standard deviation: 0.55306
+stat/br fcst[d=12.]
+ 
+ Total # of data points: 116424 (21*21*1*24*1*11)
+ # flagged as bad  data: 0
+ Minimum value: -1.0038
+ Maximum value: 1.4046
+ Mean    value: 0.13342 (unweighted average)
+stat/br fcst[d=12.0]
+ 
+ Total # of data points: 116424 (21*21*1*24*1*11)
+ # flagged as bad  data: 0
+ Minimum value: -1.0038
+ Maximum value: 1.4046
+ Mean    value: 0.13342 (unweighted average)
+ 
+! reference a member
+stat fcst[d=12.3]
+ 
+             FIELD + FCST_ERROR
+             L=7:30
+             LONGITUDE: 139.5E to 160.5E
+             LATITUDE: 19.5N to 40.5N
+             Z:  N/A
+             TIME: 01-JUL-1950 00:00 to 01-JUL-1952 00:00
+             E:  N/A
+             F:  N/A
+             DATA SET: tmp/fcst_3.nc
+ 
+ Total # of data points: 10584 (21*21*1*24*1*1)
+ # flagged as bad  data: 0
+ Minimum value: -0.9973
+ Maximum value: 1.4046
+ Mean    value: 0.1338 (unweighted average)
+ Standard deviation: 0.54369
+stat fcst[d=12.3] - fcst[d=5]   ! v-v=0
+ 
+             FCST[D=fcst_3.nc] - FCST[D=fcst_3.nc]
+             LONGITUDE: 139.5E to 160.5E
+             LATITUDE: 19.5N to 40.5N
+             Z:  N/A
+             TIME: 01-JUL-1950 00:00 to 01-JUL-1952 00:00
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 10584 (21*21*1*24*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ Standard deviation: 0
+ 
+! note that FMRC members have distinct time axes. Specify "L=1"
+stat fcst[d=12.3,l=1] - fcst[d=12.1,l=1]
+ 
+             FCST[D=fcst_3.nc,L=1] - FCST[D=fcst_1.nc,L=1]
+             LONGITUDE: 139.5E to 160.5E
+             LATITUDE: 19.5N to 40.5N
+             Z:  N/A
+             TIME: 16-JUL-1950 12:00
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 441 (21*21*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: -0.12028
+ Maximum value: 0.12005
+ Mean    value: -0.007033 (unweighted average)
+ Standard deviation: 0.07443
+ 
+! deliberate errors
+set mode ignore
+ 
+stat/br fcst[d=5.3]       ! d=5 is not an aggregation
+stat/br fcst[d=12.30]     ! not this many members
+stat/br fcst[d=12.300000]
+ 
+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
+ 
+          time-dependent data files:
+31-DEC-2009 23:59 -> 31-DEC-2009 23:59    bn_agg_member_syntax.jnl
+ 
+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
+sh data/members my_ens
+     currently SET data sets:
+    5> my_ens  (default)  Ensemble aggregation
+ name     title                             I         J         K         L         M         N
+ SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
+ 
+          Member datasets:
+      5.1: ./ens1.nc
+      5.2: ./ens2.nc
+      5.3: ./ens3.nc
+      5.4: ./ens4.nc
+ 
+show data 5.3
+     currently SET data sets:
+    3> ./ens3.nc
+ name     title                             I         J         K         L
+ SST      SST_IN                           1:10      1:9       ...       1:12
+ 
+stat sst[d=5]
+ 
+             SST_IN
+             LONGITUDE: 110W to 90W
+             LATITUDE: 12N to 30N
+             Z:  N/A
+             TIME: 01-JAN 00:45 to 31-DEC 06:34
+             E (realization): 0.5 to 4.5 (ens1.nc)
+             F:  N/A
+             DATA SET: my_ens
+ 
+ Total # of data points: 4320 (10*9*1*12*4*1)
+ # flagged as bad  data: 1156
+ Minimum value: 16.844
+ Maximum value: 123.32
+ Mean    value: 67.406 (unweighted average)
+ Standard deviation: 30.975
+stat sst[d=5.2]
+ 
+             SST_IN
+             LONGITUDE: 110W to 90W
+             LATITUDE: 12N to 30N
+             Z:  N/A
+             TIME: 01-JAN 00:45 to 31-DEC 06:34
+             E:  N/A
+             F:  N/A
+             DATA SET: ./ens2.nc
+ 
+ Total # of data points: 1080 (10*9*1*12*1*1)
+ # flagged as bad  data: 289
+ Minimum value: 33.688
+ Maximum value: 61.66
+ Mean    value: 53.925 (unweighted average)
+ Standard deviation: 5.1904
+ 
+can data my_ens
+ 
+! do them in another order
+ENSEMBLE fourfiles = ens1, ens3, ens2, ens4
+ 
+! not this is dataset 2
+show data 5.3
+     currently SET data sets:
+    3> ./ens2.nc
+ name     title                             I         J         K         L
+ SST      SST_IN                           1:10      1:9       ...       1:12
+ 
+ 
+stat sst[d=5] - sst[d=5.3]   ! ensemble minus member #3
+ 
+             SST[D=fourfiles] - SST[D=ens2]
+             LONGITUDE: 110W to 90W
+             LATITUDE: 12N to 30N
+             Z:  N/A
+             TIME: 01-JAN 00:45 to 31-DEC 06:34
+             E (realization): 0.5 to 4.5
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 4320 (10*9*1*12*4*1)
+ # flagged as bad  data: 1156
+ Minimum value: -30.83
+ Maximum value: 61.66
+ Mean    value: 13.481 (unweighted average)
+ Standard deviation: 30.317
+ 
+ 
+! deliberate errors
+set mode ignore
+ 
+stat/br sst[d=4.1]     ! not an ensemble
+stat/br sst[d=5.30]    ! not this many members
+ 
+set mode/last ignore
+ 
+*** Running ferret script: 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
+! When writing a TRUEMONTH axis, write the correct coordinates using the original
+! units if it came from a dataset, or using units of days if it's user-defined.
+ 
+! See known error conditions below
+ 
+ 
+! For comparison, define regularly-spaced monthly axis of the sort we've always defined
+ 
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2000/units=month/edges t_reg_month
+sh axis/t t_reg_month
+ name       axis              # pts   start                end
+ T_REG_MONTH TIME              19 r   16-JAN-2010 05:14    18-JUL-2011 01:58
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (MONTH)
+       1>  16-JAN-2010 05:14:33  1          01-JAN-2010 00:00:00   120.5189
+       2>  15-FEB-2010 15:43:39  1          31-JAN-2010 10:29:06   121.5189
+       3>  18-MAR-2010 02:12:45  1          02-MAR-2010 20:58:12   122.5189
+       4>  17-APR-2010 12:41:51  1          02-APR-2010 07:27:18   123.5189
+       5>  17-MAY-2010 23:10:57  1          02-MAY-2010 17:56:24   124.5189
+       6>  17-JUN-2010 09:40:03  1          02-JUN-2010 04:25:30   125.5189
+       7>  17-JUL-2010 20:09:09  1          02-JUL-2010 14:54:36   126.5189
+       8>  17-AUG-2010 06:38:15  1          02-AUG-2010 01:23:42   127.5189
+       9>  16-SEP-2010 17:07:21  1          01-SEP-2010 11:52:48   128.5189
+      10>  17-OCT-2010 03:36:27  1          01-OCT-2010 22:21:54   129.5189
+      11>  16-NOV-2010 14:05:33  1          01-NOV-2010 08:51:00   130.5189
+      12>  17-DEC-2010 00:34:39  1          01-DEC-2010 19:20:06   131.5189
+      13>  16-JAN-2011 11:03:45  1          01-JAN-2011 05:49:12   132.5189
+      14>  15-FEB-2011 21:32:51  1          31-JAN-2011 16:18:18   133.5189
+      15>  18-MAR-2011 08:01:57  1          03-MAR-2011 02:47:24   134.5189
+      16>  17-APR-2011 18:31:03  1          02-APR-2011 13:16:30   135.5189
+      17>  18-MAY-2011 05:00:09  1          02-MAY-2011 23:45:36   136.5189
+      18>  17-JUN-2011 15:29:15  1          02-JUN-2011 10:14:42   137.5189
+      19>  18-JUL-2011 01:58:21  1          02-JUL-2011 20:43:48   138.5189
+ 
+! true-monthly axes, t0 at start of axis
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2010/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2010             JUL-2011 (True Monthly)
+T0 = 1-JAN-2010
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2010              31         01-JAN-2010           0
+       2>  FEB-2010              28         01-FEB-2010           1
+       3>  MAR-2010              31         01-MAR-2010           2
+       4>  APR-2010              30         01-APR-2010           3
+       5>  MAY-2010              31         01-MAY-2010           4
+       6>  JUN-2010              30         01-JUN-2010           5
+       7>  JUL-2010              31         01-JUL-2010           6
+       8>  AUG-2010              31         01-AUG-2010           7
+       9>  SEP-2010              30         01-SEP-2010           8
+      10>  OCT-2010              31         01-OCT-2010           9
+      11>  NOV-2010              30         01-NOV-2010           10
+      12>  DEC-2010              31         01-DEC-2010           11
+      13>  JAN-2011              31         01-JAN-2011           12
+      14>  FEB-2011              28         01-FEB-2011           13
+      15>  MAR-2011              31         01-MAR-2011           14
+      16>  APR-2011              30         01-APR-2011           15
+      17>  MAY-2011              31         01-MAY-2011           16
+      18>  JUN-2011              30         01-JUN-2011           17
+      19>  JUL-2011              31         01-JUL-2011           18
+ 
+! t0 before start of axis
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2010             JUL-2011 (True Monthly)
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2010              31         01-JAN-2010           120
+       2>  FEB-2010              28         01-FEB-2010           121
+       3>  MAR-2010              31         01-MAR-2010           122
+       4>  APR-2010              30         01-APR-2010           123
+       5>  MAY-2010              31         01-MAY-2010           124
+       6>  JUN-2010              30         01-JUN-2010           125
+       7>  JUL-2010              31         01-JUL-2010           126
+       8>  AUG-2010              31         01-AUG-2010           127
+       9>  SEP-2010              30         01-SEP-2010           128
+      10>  OCT-2010              31         01-OCT-2010           129
+      11>  NOV-2010              30         01-NOV-2010           130
+      12>  DEC-2010              31         01-DEC-2010           131
+      13>  JAN-2011              31         01-JAN-2011           132
+      14>  FEB-2011              28         01-FEB-2011           133
+      15>  MAR-2011              31         01-MAR-2011           134
+      16>  APR-2011              30         01-APR-2011           135
+      17>  MAY-2011              31         01-MAY-2011           136
+      18>  JUN-2011              30         01-JUN-2011           137
+      19>  JUL-2011              31         01-JUL-2011           138
+ 
+! default time origin is start of month of first month
+define axis/t=1-jul-2010:1-jan-2012:1/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JUL-2010             JAN-2012 (True Monthly)
+T0 = 01-JAN-2010
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JUL-2010              31         01-JUL-2010           6
+       2>  AUG-2010              31         01-AUG-2010           7
+       3>  SEP-2010              30         01-SEP-2010           8
+       4>  OCT-2010              31         01-OCT-2010           9
+       5>  NOV-2010              30         01-NOV-2010           10
+       6>  DEC-2010              31         01-DEC-2010           11
+       7>  JAN-2011              31         01-JAN-2011           12
+       8>  FEB-2011              28         01-FEB-2011           13
+       9>  MAR-2011              31         01-MAR-2011           14
+      10>  APR-2011              30         01-APR-2011           15
+      11>  MAY-2011              31         01-MAY-2011           16
+      12>  JUN-2011              30         01-JUN-2011           17
+      13>  JUL-2011              31         01-JUL-2011           18
+      14>  AUG-2011              31         01-AUG-2011           19
+      15>  SEP-2011              30         01-SEP-2011           20
+      16>  OCT-2011              31         01-OCT-2011           21
+      17>  NOV-2011              30         01-NOV-2011           22
+      18>  DEC-2011              31         01-DEC-2011           23
+      19>  JAN-2012              31         01-JAN-2012           24
+ 
+! Cell edges at mid-month
+define axis/t=15-mar-2010:15-dec-2011:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                22 i   MAR-2010             DEC-2011 (True Monthly)
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 22
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2010              31         01-MAR-2010           122
+       2>  APR-2010              30         01-APR-2010           123
+       3>  MAY-2010              31         01-MAY-2010           124
+       4>  JUN-2010              30         01-JUN-2010           125
+       5>  JUL-2010              31         01-JUL-2010           126
+       6>  AUG-2010              31         01-AUG-2010           127
+       7>  SEP-2010              30         01-SEP-2010           128
+       8>  OCT-2010              31         01-OCT-2010           129
+       9>  NOV-2010              30         01-NOV-2010           130
+      10>  DEC-2010              31         01-DEC-2010           131
+      11>  JAN-2011              31         01-JAN-2011           132
+      12>  FEB-2011              28         01-FEB-2011           133
+      13>  MAR-2011              31         01-MAR-2011           134
+      14>  APR-2011              30         01-APR-2011           135
+      15>  MAY-2011              31         01-MAY-2011           136
+      16>  JUN-2011              30         01-JUN-2011           137
+      17>  JUL-2011              31         01-JUL-2011           138
+      18>  AUG-2011              31         01-AUG-2011           139
+      19>  SEP-2011              30         01-SEP-2011           140
+      20>  OCT-2011              31         01-OCT-2011           141
+      21>  NOV-2011              30         01-NOV-2011           142
+      22>  DEC-2011              31         01-DEC-2011           143
+ 
+! other calendars JULIAN
+define axis/cal=julian/t=1-jan-2011:31-jul-2012:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2011             JUL-2012 (True Monthly)
+T0 = 1-JAN-2000
+CALENDAR = JULIAN
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2011              31         01-JAN-2011           132
+       2>  FEB-2011              28         01-FEB-2011           133
+       3>  MAR-2011              31         01-MAR-2011           134
+       4>  APR-2011              30         01-APR-2011           135
+       5>  MAY-2011              31         01-MAY-2011           136
+       6>  JUN-2011              30         01-JUN-2011           137
+       7>  JUL-2011              31         01-JUL-2011           138
+       8>  AUG-2011              31         01-AUG-2011           139
+       9>  SEP-2011              30         01-SEP-2011           140
+      10>  OCT-2011              31         01-OCT-2011           141
+      11>  NOV-2011              30         01-NOV-2011           142
+      12>  DEC-2011              31         01-DEC-2011           143
+      13>  JAN-2012              31         01-JAN-2012           144
+      14>  FEB-2012              29         01-FEB-2012           145
+      15>  MAR-2012              31         01-MAR-2012           146
+      16>  APR-2012              30         01-APR-2012           147
+      17>  MAY-2012              31         01-MAY-2012           148
+      18>  JUN-2012              30         01-JUN-2012           149
+      19>  JUL-2012              31         01-JUL-2012           150
+ 
+! default time origin
+define axis/cal=julian/t=15-mar-2010:15-dec-2011:1/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                22 i   MAR-2010             DEC-2011 (True Monthly)
+T0 = 01-JAN-2010
+CALENDAR = JULIAN
+   Axis span (to cell edges) = 22
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2010              31         01-MAR-2010           2
+       2>  APR-2010              30         01-APR-2010           3
+       3>  MAY-2010              31         01-MAY-2010           4
+       4>  JUN-2010              30         01-JUN-2010           5
+       5>  JUL-2010              31         01-JUL-2010           6
+       6>  AUG-2010              31         01-AUG-2010           7
+       7>  SEP-2010              30         01-SEP-2010           8
+       8>  OCT-2010              31         01-OCT-2010           9
+       9>  NOV-2010              30         01-NOV-2010           10
+      10>  DEC-2010              31         01-DEC-2010           11
+      11>  JAN-2011              31         01-JAN-2011           12
+      12>  FEB-2011              28         01-FEB-2011           13
+      13>  MAR-2011              31         01-MAR-2011           14
+      14>  APR-2011              30         01-APR-2011           15
+      15>  MAY-2011              31         01-MAY-2011           16
+      16>  JUN-2011              30         01-JUN-2011           17
+      17>  JUL-2011              31         01-JUL-2011           18
+      18>  AUG-2011              31         01-AUG-2011           19
+      19>  SEP-2011              30         01-SEP-2011           20
+      20>  OCT-2011              31         01-OCT-2011           21
+      21>  NOV-2011              30         01-NOV-2011           22
+      22>  DEC-2011              31         01-DEC-2011           23
+ 
+! other calendars NOLEAP
+define axis/cal=noleap/t=1-jan-2011:31-jul-2012:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2011             JUL-2012 (True Monthly)
+T0 = 1-JAN-2000
+CALENDAR = NOLEAP
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2011              31         01-JAN-2011           132
+       2>  FEB-2011              28         01-FEB-2011           133
+       3>  MAR-2011              31         01-MAR-2011           134
+       4>  APR-2011              30         01-APR-2011           135
+       5>  MAY-2011              31         01-MAY-2011           136
+       6>  JUN-2011              30         01-JUN-2011           137
+       7>  JUL-2011              31         01-JUL-2011           138
+       8>  AUG-2011              31         01-AUG-2011           139
+       9>  SEP-2011              30         01-SEP-2011           140
+      10>  OCT-2011              31         01-OCT-2011           141
+      11>  NOV-2011              30         01-NOV-2011           142
+      12>  DEC-2011              31         01-DEC-2011           143
+      13>  JAN-2012              31         01-JAN-2012           144
+      14>  FEB-2012              28         01-FEB-2012           145
+      15>  MAR-2012              31         01-MAR-2012           146
+      16>  APR-2012              30         01-APR-2012           147
+      17>  MAY-2012              31         01-MAY-2012           148
+      18>  JUN-2012              30         01-JUN-2012           149
+      19>  JUL-2012              31         01-JUL-2012           150
+ 
+! not at first of month
+define axis/cal=julian/t=15-mar-2010:15-dec-2011:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                22 i   MAR-2010             DEC-2011 (True Monthly)
+T0 = 1-JAN-2000
+CALENDAR = JULIAN
+   Axis span (to cell edges) = 22
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2010              31         01-MAR-2010           122
+       2>  APR-2010              30         01-APR-2010           123
+       3>  MAY-2010              31         01-MAY-2010           124
+       4>  JUN-2010              30         01-JUN-2010           125
+       5>  JUL-2010              31         01-JUL-2010           126
+       6>  AUG-2010              31         01-AUG-2010           127
+       7>  SEP-2010              30         01-SEP-2010           128
+       8>  OCT-2010              31         01-OCT-2010           129
+       9>  NOV-2010              30         01-NOV-2010           130
+      10>  DEC-2010              31         01-DEC-2010           131
+      11>  JAN-2011              31         01-JAN-2011           132
+      12>  FEB-2011              28         01-FEB-2011           133
+      13>  MAR-2011              31         01-MAR-2011           134
+      14>  APR-2011              30         01-APR-2011           135
+      15>  MAY-2011              31         01-MAY-2011           136
+      16>  JUN-2011              30         01-JUN-2011           137
+      17>  JUL-2011              31         01-JUL-2011           138
+      18>  AUG-2011              31         01-AUG-2011           139
+      19>  SEP-2011              30         01-SEP-2011           140
+      20>  OCT-2011              31         01-OCT-2011           141
+      21>  NOV-2011              30         01-NOV-2011           142
+      22>  DEC-2011              31         01-DEC-2011           143
+ 
+! other calendars 360_day
+define axis/cal=360_day/t=1-jan-2010:30-jul-2011:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 r   JAN-2010             JUL-2011 (True Monthly)
+T0 = 1-JAN-2000
+CALENDAR = 360_DAY
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2010              30         01-JAN-2010           120
+       2>  FEB-2010              30         01-FEB-2010           121
+       3>  MAR-2010              30         01-MAR-2010           122
+       4>  APR-2010              30         01-APR-2010           123
+       5>  MAY-2010              30         01-MAY-2010           124
+       6>  JUN-2010              30         01-JUN-2010           125
+       7>  JUL-2010              30         01-JUL-2010           126
+       8>  AUG-2010              30         01-AUG-2010           127
+       9>  SEP-2010              30         01-SEP-2010           128
+      10>  OCT-2010              30         01-OCT-2010           129
+      11>  NOV-2010              30         01-NOV-2010           130
+      12>  DEC-2010              30         01-DEC-2010           131
+      13>  JAN-2011              30         01-JAN-2011           132
+      14>  FEB-2011              30         01-FEB-2011           133
+      15>  MAR-2011              30         01-MAR-2011           134
+      16>  APR-2011              30         01-APR-2011           135
+      17>  MAY-2011              30         01-MAY-2011           136
+      18>  JUN-2011              30         01-JUN-2011           137
+      19>  JUL-2011              30         01-JUL-2011           138
+ 
+! Writing data, including a leap year
+ 
+define axis/t=3-mar-2011:3-jan-2013:1/monthly/t0=1-jan-2010 taxis
+def var tt = t[gt=taxis]
+save/clobber/file=a.nc tt
+ 
+can var/all
+use a
+sh dat/att
+     currently SET data sets:
+    1> ./a.nc  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+                                 Conventions     CHAR        6    F       CF-1.6
+  
+(TAXIS1)               DOUBLE    axis            CHAR        1    T       T
+                                 bounds          CHAR        10   T       TAXIS_bnds
+                                 time_origin     CHAR        10   T       1-JAN-2010
+                                 units           CHAR        30   T       days since 2010-01-01 00:00:00
+                                 standard_name   CHAR        4    F       time
+                                 orig_file_axname
+                                                 CHAR        5    F       TAXIS
+  
+ TAXIS_bnds            DOUBLE
+  
+ TT                    DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
+                                 _FillValue      DOUBLE      1    T       -1.E+34
+                                 long_name       CHAR        11   T       T[GT=TAXIS]
+  
+sh grid tt
+    GRID GSI1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TAXIS1    TIME                23 i   16-MAR-2011 12:00    16-JAN-2013 12:00   full
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                23 i   MAR-2011             JAN-2013 (True Monthly)
+T0 = 1-JAN-2010
+   Axis span (to cell edges) = 23
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2011              31         01-MAR-2011           14
+       2>  APR-2011              30         01-APR-2011           15
+       3>  MAY-2011              31         01-MAY-2011           16
+       4>  JUN-2011              30         01-JUN-2011           17
+       5>  JUL-2011              31         01-JUL-2011           18
+       6>  AUG-2011              31         01-AUG-2011           19
+       7>  SEP-2011              30         01-SEP-2011           20
+       8>  OCT-2011              31         01-OCT-2011           21
+       9>  NOV-2011              30         01-NOV-2011           22
+      10>  DEC-2011              31         01-DEC-2011           23
+      11>  JAN-2012              31         01-JAN-2012           24
+      12>  FEB-2012              29         01-FEB-2012           25
+      13>  MAR-2012              31         01-MAR-2012           26
+      14>  APR-2012              30         01-APR-2012           27
+      15>  MAY-2012              31         01-MAY-2012           28
+      16>  JUN-2012              30         01-JUN-2012           29
+      17>  JUL-2012              31         01-JUL-2012           30
+      18>  AUG-2012              31         01-AUG-2012           31
+      19>  SEP-2012              30         01-SEP-2012           32
+      20>  OCT-2012              31         01-OCT-2012           33
+      21>  NOV-2012              30         01-NOV-2012           34
+      22>  DEC-2012              31         01-DEC-2012           35
+      23>  JAN-2013              31         01-JAN-2013           36
+ 
+can dat/all
+ 
+define axis/t=3-mar-2011:3-jan-2013:1/monthly/t0=1-jan-2010/calendar=julian taxis
+def var tt = t[gt=taxis]
+save/clobber/file=a.nc tt
+ 
+can var/all
+use a
+sh dat/att
+     currently SET data sets:
+    1> ./a.nc  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+                                 Conventions     CHAR        6    F       CF-1.6
+  
+(TAXIS1)               DOUBLE    axis            CHAR        1    T       T
+                                 bounds          CHAR        10   T       TAXIS_bnds
+                                 time_origin     CHAR        10   T       1-JAN-2010
+                                 calendar        CHAR        6    T       JULIAN
+                                 units           CHAR        30   T       days since 2010-01-01 00:00:00
+                                 standard_name   CHAR        4    F       time
+                                 orig_file_axname
+                                                 CHAR        5    F       TAXIS
+  
+ TAXIS_bnds            DOUBLE
+  
+ TT                    DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
+                                 _FillValue      DOUBLE      1    T       -1.E+34
+                                 long_name       CHAR        11   T       T[GT=TAXIS]
+  
+sh grid tt
+    GRID GSI1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TAXIS1    TIME                23 i   16-MAR-2011 12:00    16-JAN-2013 12:00   full
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                23 i   MAR-2011             JAN-2013 (True Monthly)
+T0 = 1-JAN-2010
+CALENDAR = JULIAN
+   Axis span (to cell edges) = 23
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2011              31         01-MAR-2011           14
+       2>  APR-2011              30         01-APR-2011           15
+       3>  MAY-2011              31         01-MAY-2011           16
+       4>  JUN-2011              30         01-JUN-2011           17
+       5>  JUL-2011              31         01-JUL-2011           18
+       6>  AUG-2011              31         01-AUG-2011           19
+       7>  SEP-2011              30         01-SEP-2011           20
+       8>  OCT-2011              31         01-OCT-2011           21
+       9>  NOV-2011              30         01-NOV-2011           22
+      10>  DEC-2011              31         01-DEC-2011           23
+      11>  JAN-2012              31         01-JAN-2012           24
+      12>  FEB-2012              29         01-FEB-2012           25
+      13>  MAR-2012              31         01-MAR-2012           26
+      14>  APR-2012              30         01-APR-2012           27
+      15>  MAY-2012              31         01-MAY-2012           28
+      16>  JUN-2012              30         01-JUN-2012           29
+      17>  JUL-2012              31         01-JUL-2012           30
+      18>  AUG-2012              31         01-AUG-2012           31
+      19>  SEP-2012              30         01-SEP-2012           32
+      20>  OCT-2012              31         01-OCT-2012           33
+      21>  NOV-2012              30         01-NOV-2012           34
+      22>  DEC-2012              31         01-DEC-2012           35
+      23>  JAN-2013              31         01-JAN-2013           36
+ 
+can dat/all
+ 
+define axis/t=3-mar-2011:3-jan-2013:1/monthly/t0=1-jan-2010/calendar=360_day taxis
+def var tt = t[gt=taxis]
+save/clobber/file=a.nc tt
+ 
+can var/all
+use a
+sh dat/att
+     currently SET data sets:
+    1> ./a.nc  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        22   T       FERRET V7.1  18-Apr-17
+                                 Conventions     CHAR        6    F       CF-1.6
+  
+(TAXIS1)               DOUBLE    axis            CHAR        1    T       T
+                                 bounds          CHAR        10   T       TAXIS_bnds
+                                 time_origin     CHAR        10   T       1-JAN-2010
+                                 calendar        CHAR        7    T       360_DAY
+                                 units           CHAR        30   T       days since 2010-01-01 00:00:00
+                                 standard_name   CHAR        4    F       time
+                                 orig_file_axname
+                                                 CHAR        5    F       TAXIS
+  
+ TAXIS_bnds            DOUBLE
+  
+ TT                    DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
+                                 _FillValue      DOUBLE      1    T       -1.E+34
+                                 long_name       CHAR        11   T       T[GT=TAXIS]
+  
+sh grid tt
+    GRID GSI1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TAXIS1    TIME                22 r   16-MAR-2011 00:00    16-DEC-2012 00:00   full
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                22 r   MAR-2011             DEC-2012 (True Monthly)
+T0 = 1-JAN-2010
+CALENDAR = 360_DAY
+   Axis span (to cell edges) = 22
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2011              30         01-MAR-2011           14
+       2>  APR-2011              30         01-APR-2011           15
+       3>  MAY-2011              30         01-MAY-2011           16
+       4>  JUN-2011              30         01-JUN-2011           17
+       5>  JUL-2011              30         01-JUL-2011           18
+       6>  AUG-2011              30         01-AUG-2011           19
+       7>  SEP-2011              30         01-SEP-2011           20
+       8>  OCT-2011              30         01-OCT-2011           21
+       9>  NOV-2011              30         01-NOV-2011           22
+      10>  DEC-2011              30         01-DEC-2011           23
+      11>  JAN-2012              30         01-JAN-2012           24
+      12>  FEB-2012              30         01-FEB-2012           25
+      13>  MAR-2012              30         01-MAR-2012           26
+      14>  APR-2012              30         01-APR-2012           27
+      15>  MAY-2012              30         01-MAY-2012           28
+      16>  JUN-2012              30         01-JUN-2012           29
+      17>  JUL-2012              30         01-JUL-2012           30
+      18>  AUG-2012              30         01-AUG-2012           31
+      19>  SEP-2012              30         01-SEP-2012           32
+      20>  OCT-2012              30         01-OCT-2012           33
+      21>  NOV-2012              30         01-NOV-2012           34
+      22>  DEC-2012              30         01-DEC-2012           35
+ 
+! Without date range spec,
+def axis/monthly/t0=1-jan-0000/t=1:24:1 taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                24 i   JAN-0000             DEC-0001 (True Monthly)
+T0 = 1-JAN-0000
+   Axis span (to cell edges) = 24
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-0000              31         01-JAN-0000           0
+       2>  FEB-0000              29         01-FEB-0000           1
+       3>  MAR-0000              31         01-MAR-0000           2
+       4>  APR-0000              30         01-APR-0000           3
+       5>  MAY-0000              31         01-MAY-0000           4
+       6>  JUN-0000              30         01-JUN-0000           5
+       7>  JUL-0000              31         01-JUL-0000           6
+       8>  AUG-0000              31         01-AUG-0000           7
+       9>  SEP-0000              30         01-SEP-0000           8
+      10>  OCT-0000              31         01-OCT-0000           9
+      11>  NOV-0000              30         01-NOV-0000           10
+      12>  DEC-0000              31         01-DEC-0000           11
+      13>  JAN-0001              31         01-JAN-0001           12
+      14>  FEB-0001              28         01-FEB-0001           13
+      15>  MAR-0001              31         01-MAR-0001           14
+      16>  APR-0001              30         01-APR-0001           15
+      17>  MAY-0001              31         01-MAY-0001           16
+      18>  JUN-0001              30         01-JUN-0001           17
+      19>  JUL-0001              31         01-JUL-0001           18
+      20>  AUG-0001              31         01-AUG-0001           19
+      21>  SEP-0001              30         01-SEP-0001           20
+      22>  OCT-0001              31         01-OCT-0001           21
+      23>  NOV-0001              30         01-NOV-0001           22
+      24>  DEC-0001              31         01-DEC-0001           23
+ 
+! With T0 later than year 0
+def axis/monthly/t0=1-jan-2000/t=1:24:1 taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                24 i   JAN-2000             DEC-2001 (True Monthly)
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 24
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2000              31         01-JAN-2000           0
+       2>  FEB-2000              29         01-FEB-2000           1
+       3>  MAR-2000              31         01-MAR-2000           2
+       4>  APR-2000              30         01-APR-2000           3
+       5>  MAY-2000              31         01-MAY-2000           4
+       6>  JUN-2000              30         01-JUN-2000           5
+       7>  JUL-2000              31         01-JUL-2000           6
+       8>  AUG-2000              31         01-AUG-2000           7
+       9>  SEP-2000              30         01-SEP-2000           8
+      10>  OCT-2000              31         01-OCT-2000           9
+      11>  NOV-2000              30         01-NOV-2000           10
+      12>  DEC-2000              31         01-DEC-2000           11
+      13>  JAN-2001              31         01-JAN-2001           12
+      14>  FEB-2001              28         01-FEB-2001           13
+      15>  MAR-2001              31         01-MAR-2001           14
+      16>  APR-2001              30         01-APR-2001           15
+      17>  MAY-2001              31         01-MAY-2001           16
+      18>  JUN-2001              30         01-JUN-2001           17
+      19>  JUL-2001              31         01-JUL-2001           18
+      20>  AUG-2001              31         01-AUG-2001           19
+      21>  SEP-2001              30         01-SEP-2001           20
+      22>  OCT-2001              31         01-OCT-2001           21
+      23>  NOV-2001              30         01-NOV-2001           22
+      24>  DEC-2001              31         01-DEC-2001           23
+ 
+! Default T0, non-calendar t def
+define axis/monthly/t=1:36:1 taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                36 i   JAN-0000             DEC-0002 (True Monthly)
+T0 = 01-JAN-0000
+   Axis span (to cell edges) = 36
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-0000              31         01-JAN-0000           0
+       2>  FEB-0000              29         01-FEB-0000           1
+       3>  MAR-0000              31         01-MAR-0000           2
+       4>  APR-0000              30         01-APR-0000           3
+       5>  MAY-0000              31         01-MAY-0000           4
+       6>  JUN-0000              30         01-JUN-0000           5
+       7>  JUL-0000              31         01-JUL-0000           6
+       8>  AUG-0000              31         01-AUG-0000           7
+       9>  SEP-0000              30         01-SEP-0000           8
+      10>  OCT-0000              31         01-OCT-0000           9
+      11>  NOV-0000              30         01-NOV-0000           10
+      12>  DEC-0000              31         01-DEC-0000           11
+      13>  JAN-0001              31         01-JAN-0001           12
+      14>  FEB-0001              28         01-FEB-0001           13
+      15>  MAR-0001              31         01-MAR-0001           14
+      16>  APR-0001              30         01-APR-0001           15
+      17>  MAY-0001              31         01-MAY-0001           16
+      18>  JUN-0001              30         01-JUN-0001           17
+      19>  JUL-0001              31         01-JUL-0001           18
+      20>  AUG-0001              31         01-AUG-0001           19
+      21>  SEP-0001              30         01-SEP-0001           20
+      22>  OCT-0001              31         01-OCT-0001           21
+      23>  NOV-0001              30         01-NOV-0001           22
+      24>  DEC-0001              31         01-DEC-0001           23
+      25>  JAN-0002              31         01-JAN-0002           24
+      26>  FEB-0002              28         01-FEB-0002           25
+      27>  MAR-0002              31         01-MAR-0002           26
+      28>  APR-0002              30         01-APR-0002           27
+      29>  MAY-0002              31         01-MAY-0002           28
+      30>  JUN-0002              30         01-JUN-0002           29
+      31>  JUL-0002              31         01-JUL-0002           30
+      32>  AUG-0002              31         01-AUG-0002           31
+      33>  SEP-0002              30         31-AUG-0002           32
+      34>  OCT-0002              31         01-OCT-0002           33
+      35>  NOV-0002              30         01-NOV-0002           34
+      36>  DEC-0002              31         01-DEC-0002           35
+ 
+! modulo
+define axis/t=1-jan-2010:31-dec-2010:1/t0=1-jan-2000/monthly/modulo taxis
+ 
+let var = {1,2,3,4,5,6,7,8,9,10,11,12}
+let tvar = reshape(var,t[gt=taxis])
+list/L=1:23 tvar
+             VARIABLE : RESHAPE(VAR,T[GT=TAXIS])
+             SUBSET   : 12 points (TIME)
+ 16-JAN-2010 12 /  1:   1.00
+ 15-FEB-2010 00 /  2:   2.00
+ 16-MAR-2010 12 /  3:   3.00
+ 16-APR-2010 00 /  4:   4.00
+ 16-MAY-2010 12 /  5:   5.00
+ 16-JUN-2010 00 /  6:   6.00
+ 16-JUL-2010 12 /  7:   7.00
+ 16-AUG-2010 12 /  8:   8.00
+ 16-SEP-2010 00 /  9:   9.00
+ 16-OCT-2010 12 / 10:  10.00
+ 16-NOV-2010 00 / 11:  11.00
+ 16-DEC-2010 12 / 12:  12.00
+! *sh* 3/17:  a possible alternative syntax:
+!  let var = TSEQUENCE({1,2,3,4,5,6,7,8,9,10,11,12})
+!  let tvar = var[gt=taxis at asn]
+! Since this is a fairly common need -- creating a line along some axis
+! should we offer a new function AXSEQUENCE(array, axis)  ?
+ 
+! Striding on a monthly axis
+ 
+def axis/monthly/t0=1-jan-2000/t=1-jan-2000:31-dec-2004:1/unit=monthly taxis
+!sh axis/t/l=1:14 taxis
+let tt = t[gt=taxis]
+list tt[l=1:6:2]
+             VARIABLE : T[GT=TAXIS]
+                        regrid: 2 tmon_gregori on T
+             SUBSET   : 3 points (TIME)
+ 16-JAN-2000 / 1:   15.5
+ 16-MAR-2000 / 2:   75.5
+ 16-MAY-2000 / 3:  136.5
+ 
+list/prec=6 tt[l=1:60:12]
+             VARIABLE : T[GT=TAXIS]
+                        regrid: 12 tmon_gregori on T
+             SUBSET   : 5 points (TIME)
+ 16-JAN-2000 / 1:    15.50
+ 16-JAN-2001 / 2:   381.50
+ 16-JAN-2002 / 3:   746.50
+ 16-JAN-2003 / 4:  1111.50
+ 16-JAN-2004 / 5:  1476.50
+ 
+! From a file
+save/file=a.nc/clobber tt
+can dat/all; can var/all
+use a
+list/prec=6 tt[l=1:60:12]
+             VARIABLE : T[GT=TAXIS]
+                        regrid: on T
+             FILENAME : a.nc
+             SUBSET   : 5 points (TIME)
+ APR-2001 / 1:    15.50
+ OCT-2031 / 2:   381.50
+ MAR-2062 / 3:   746.50
+ AUG-2092 / 4:  1111.50
+ JAN-2123 / 5:  1476.50
+ 
+! DEFINE AXIS/MONTHLY warnings and error conditions:
+ 
+! Not an error - /EDGES is ignored, as it's the default
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2000/monthly/edges taxis
+sh axis taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2010             JUL-2011 (True Monthly)
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 19
+ 
+! Not an error - /UNITS=month is the default
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2000/monthly/units=months taxis
+sh axis taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2010             JUL-2011 (True Monthly)
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 19
+ 
+set mode ignore
+! not all months have day 30, cannot start at day 30
+define axis/t=30-mar-2010:30-dec-2011:1/monthly taxis
+ 
+! Units of other than months is an error
+define axis/t=1-jan-2010:31-jul-2011:30/t0=1-jan-2000/monthly/units=days taxis
+ 
+! /NPOINTS, /BOUNDS, /FROMDATA are not allowed. Errors in start:end:del
+define axis/t=1-jan-2010:31-dec-2012:1/t0=1-jan-2000/monthly/npoints=13 taxis
+ 
+! missing delta-t
+define axis/t=1-jan-2010:31-dec-2012/t0=1-jan-2000/monthly taxis
+ 
+! delta-t must be 1
+define axis/t=1-jan-2010:31-dec-2012:2/t0=1-jan-2000/monthly taxis
+ 
+! irregular or from-data
+define axis/t/t0=1-jan-2000/monthly taxis = {123,124,126}
+ 
+define axis/from/t/t0=1-jan-2001/monthly/edges taxis = {5,6,6,6,7}
+ 
+! bounds
+def axis/t/t0=1-jan-2000/monthly/bounds tax={1.2, 2, 3.2, 5, 7, 8.4, 9}, {0.5,1.5, 1.5,2.5, 2.5,3.5, 3.5,6.5, 6.5,7.5, 7.5,8.5, 8.5,9.5}
+ 
+! Must be T direction (do we need /F=?)
+define axis/x=1:5:1/monthly aaxis
+ 
+cancel mode ignore
+*** Running ferret script: bn720_bug_fixes.jnl
+! bn720_bug_fixes.jnl
+! test various fixes that went into version 7.2
+! 2/17 *acm*
+!
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_uvar_strides
+! err710_uvar_strides
+! see ticket 2511: crash when doing strides on the user-variable
+ 
+ 
+use coads_climatology
+ 
+! this is ok using a file variable
+let y_vec = x[gx=sst,x=0:360:30]
+list y_vec
+             VARIABLE : X[GX=SST,X=0:360:30]
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 13 points (LONGITUDE)
+ 0E     /  1:    0.0
+ 30E    /  2:   30.0
+ 60E    /  3:   60.0
+ 90E    /  4:   90.0
+ 120E   /  5:  120.0
+ 150E   /  6:  150.0
+ 180E   /  7:  180.0
+ 150W   /  8:  210.0
+ 120W   /  9:  240.0
+ 90W    / 10:  270.0
+ 60W    / 11:  300.0
+ 30W    / 12:  330.0
+ 0E     / 13:  360.0
+ 
+! but this gave a crash on loading the variable.
+let s = sst
+let y_vec = x[gx=s,x=0:360:30]
+list y_vec
+             VARIABLE : X[GX=S,X=0:360:30]
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 13 points (X)
+ 0     /  1:    0.0
+ 30    /  2:   30.0
+ 60    /  3:   60.0
+ 90    /  4:   90.0
+ 120   /  5:  120.0
+ 150   /  6:  150.0
+ 180   /  7:  180.0
+ 210   /  8:  210.0
+ 240   /  9:  240.0
+ 270   / 10:  270.0
+ 300   / 11:  300.0
+ 330   / 12:  330.0
+ 360   / 13:  360.0
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_prec_return
+! err71_prec_return.jnl
+! Ticket 2510, `prec=hh` doesn't work when the data is very
+! near an integer.
+ 
+ 
+let a=1+1e-12
+ 
+! This should show the 001 at the end
+list/nohead/norow/prec=13 `a,prec=13`
+ !-> list/nohead/norow/prec=13 1.000000000001
+   1.000000000001
+ 
+! This does not have the 001 at the end
+list/nohead/norow/prec=13 `a,prec=12`
+ !-> list/nohead/norow/prec=13 1
+   1.000000000000
+ 
+! The example from the ticket, with one more.
+list/nohead/norow/prec=12 {`1 + 0.1`, `1 + 1e-7`, `1 + 1e-8`, `1 + 1e-10`} - 1
+ !-> list/nohead/norow/prec=12 {1.1, 1.0000001, 1.00000001, 1.0000000001} - 1
+   0.100000000000
+   0.000000100000
+   0.000000010000
+   0.000000000100
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_save_rigid
+! err71_save_rigid.jnl
+! Ticket 2513: SAVE/RIGID with irregular axis wrote a bad file.
+ 
+! Define a variable on an irregular axis.
+ 
+let var = {123, 234, 345, 456, 567, 678, 789}
+define axis/t/t0=1-jan-2015/units=day tax = \
+{ 312.1, 312.7, 313.4, 314.2, 314.7, 315.4, 316.1}
+ 
+let vart = reshape(var, t[gt=tax])
+ 
+! Save with /RIGID. Previously this wrote a file with
+! both bounds and edges attributes on the time axis.
+! It wrote the edges variable, not the bounds.
+ 
+! Starting with this version, write bounds if needed when
+! writing with /RIGID. Only write edges if they said /EDGES.
+ 
+save/clobber/rigid/file=a.nc vart
+sp ncdump a.nc
+netcdf a {
+dimensions:
+	TAX = 7 ;
+	bnds = 2 ;
+variables:
+	double TAX(TAX) ;
+		TAX:units = "day since 2015-01-01 00:00:00" ;
+		TAX:point_spacing = "uneven" ;
+		TAX:axis = "T" ;
+		TAX:bounds = "TAX_bnds" ;
+		TAX:time_origin = "1-JAN-2015" ;
+		TAX:standard_name = "time" ;
+	double TAX_bnds(TAX, bnds) ;
+	double VART(TAX) ;
+		VART:missing_value = -1.e+34 ;
+		VART:_FillValue = -1.e+34 ;
+		VART:long_name = "RESHAPE(VAR, T[GT=TAX])" ;
+
+// global attributes:
+		:history = "FERRET V7.1  18-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+data:
+
+ TAX = 312.1, 312.7, 313.4, 314.2, 314.7, 315.4, 316.1 ;
+
+ TAX_bnds =
+  311.8, 312.4,
+  312.4, 313.05,
+  313.05, 313.8,
+  313.8, 314.45,
+  314.45, 315.05,
+  315.05, 315.75,
+  315.75, 316.45 ;
+
+ VART = 123, 234, 345, 456, 567, 678, 789 ;
+}
+ 
+cancel var/all
+ 
+! The grid was messed up - this gave an error
+use a
+show grid vart
+    GRID GSI1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ 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
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_set_redirect
+! err71_set_redirect.jnl
+! 3/2017 ACM
+! redirect results to a file with a path.
+! See ticket 2521, the path was previously rejected if it contains dashes
+ 
+spawn "mkdir -p sub-dir"
+!
+! Previously this resulted in an error.
+set redirect /tee /file="./sub-dir/redirect_stdout.txt" /clobber  stderr stdout
+ 
+! write to the file and look at the results
+ 
+show symbol ferret_precision, ferret_memory
+FERRET_PRECISION = "double"
+FERRET_MEMORY = "25.6"
+cancel redirect
+let contents = { spawn:"cat ./sub-dir/redirect_stdout.txt" }
+list contents
+             VARIABLE : { SPAWN:"cat ./sub-dir/redirect_stdout.txt" }
+             SUBSET   : 7 points (X)
+ 1   / 1:" "                                          
+ 2   / 2:"! write to the file and look at the results"
+ 3   / 3:" "                                          
+ 4   / 4:"show symbol ferret_precision, ferret_memory"
+ 5   / 5:"FERRET_PRECISION = "double""                
+ 6   / 6:"FERRET_MEMORY = "25.6""                     
+ 7   / 7:"cancel redirect"                            
+cancel var contents
+ 
+sp rm -rf sub-dir
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_set_redirect
+! err71_set_redirect.jnl
+! 3/2017 ACM
+! redirect results to a file with a path.
+! See ticket 2521, the path was previously rejected if it contains dashes
+ 
+spawn "mkdir -p sub-dir"
+!
+! Previously this resulted in an error.
+set redirect /tee /file="./sub-dir/redirect_stdout.txt" /clobber  stderr stdout
+ 
+! write to the file and look at the results
+ 
+show symbol ferret_precision, ferret_memory
+FERRET_PRECISION = "double"
+FERRET_MEMORY = "25.6"
+cancel redirect
+let contents = { spawn:"cat ./sub-dir/redirect_stdout.txt" }
+list contents
+             VARIABLE : { SPAWN:"cat ./sub-dir/redirect_stdout.txt" }
+             SUBSET   : 7 points (X)
+ 1   / 1:" "                                          
+ 2   / 2:"! write to the file and look at the results"
+ 3   / 3:" "                                          
+ 4   / 4:"show symbol ferret_precision, ferret_memory"
+ 5   / 5:"FERRET_PRECISION = "double""                
+ 6   / 6:"FERRET_MEMORY = "25.6""                     
+ 7   / 7:"cancel redirect"                            
+cancel var contents
+ 
+sp rm -rf sub-dir
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_err_attrib_overrun
+! err71_err_attrib_overrun.jnl
+! See ticket 2523
+ 
+! this ends with a segment fault sensitive to any changes
+! presumably a buffer over-run
+ 
+! the crash is occuring because of a buffer over-run
+! in IS_ATTRIB_VAL we call CREATE_TEMP_MEM_VAR to create an mr of size=1
+! later we call INIT_C_STRING_ARRAY and tell it to initialize this mr array
+! using a length nvdims=3  ==> OVERRUN
+ 
+! This bug never reared its head in the pre-dynamic memory Ferret, because
+! the buffers couldn't really be over-run, since they were part of a huge
+! static memory block
+ 
+! other INIT_* calls in IS_ATTRIB_VAL may have a similar issue
+ 
+ 
+set mode diag
+ 
+use ocean_atlas_temp
+use gt4d011
+use levitus_climatology
+ 
+use coads_climatology
+ 
+let lnames = ..dimnames[d=2]
+ 
+CANCEL DATA/ALL
+ canceling dset ./ocean_atlas_temp.cdf
+ canceling dset ./gt4d011.cdf
+ canceling dset ./levitus_climatology.cdf
+ canceling dset ./coads_climatology.cdf
+ 
+! this line seems to be essential making the crash happen
+PPL TICS .125,.25,.125,.25 !reset tics to default
+ 
+use coads_climatology
+ 
+let a = sst[d=1].dimnames
+show mem/diag   ! looks like no dynamic memory actions have occured
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 500
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 0 words
+    Current cache: 0 words
+ 
+! resulted in a seg fault (on 32-bit stout)
+list a[i=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
+ 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
+             VARIABLE : SST[D=coads_climatology].DIMNAMES
+             FILENAME : coads_climatology.cdf
+             X        : 2
+        "COADSY"
+ 
+ 
+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
+ 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
+ canceling dset ./coads_climatology.cdf
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_user_var_attrib
+! err71_user_var_attrib.jnl
+! See ticket 2132
+ 
+! command was trying to list dataset information for a user variable
+!
+ 
+let a = 1
+define att a.myAttr = "whatever"
+show att a.myAttr
+ a.myAttr = whatever 
+ 
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_save_bounds
+! err71_save_bounds
+! Ticket 2524. The SAVE command previously gave an error
+ 
+define axis/t time = {1,2,4}
+use write_int_att.nc
+ 
+! Tell Ferret to use the axis names from the file, and write data
+cancel mode upcase
+save/file=a.nc/clobber mhchla
+ 
+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}
+*** Running ferret script: 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
+ 
+! force a split/gather operation due to a T=@ave
+ 
+! in previous versions of Ferret the split could not occur on the transformed
+! axis, so the X axis would have been used.  Here the T=@ave axis will be used
+ 
+! Give us something to look at while we run these tests which dont make plots
+plot/noax/nolab/vlim=0:1/i=4:5 i
+annotate/norm/x=0/y=0.5 "@AC... running bn_compressed_gather"
+ 
+! ******* tests of  T=@DIN and T=@ave ******
+define axis/x=1:1001:1 xax
+define axis/y=1:10:1 yax
+define axis/T=1:1000:1 tax
+ 
+let xt = (x[gx=xax]-501) + 0*y[gy=yax] + T[gt=tax]
+ 
+* note: SUM of integers 1 to 1000 = N(N+1)/2 ==> 500500
+*       stat average of (x[gx=xax]-501) is zero
+*       so the full 2D stat mean should be 500500
+ 
+! there are 10*1000*1001 points in the full grid => ~10M
+! given the necessary cautions (see IS_STRIP and MODE FRUGAL),
+! a size of 12 for sure requires a gather operation
+! confirm gathering is occuring by looking at the diagnostic output
+ 
+!set mode desperate: 400000
+SET MEMORY/SIZE=12
+ 
+stat xt[l=@din]
+ 
+             (X[GX=XAX]-501) + 0*Y[GY=YAX] + T[GT=TAX]
+             X: 0.5 to 1001.5
+             Y: 0.5 to 10.5
+             Z:  N/A
+             T: 0.5 to 1000.5 (integrated)
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 1000500
+ Mean    value: 500500 (unweighted average)
+ Standard deviation: 288978
+SHOW MEMORY/DIAGNOSTIC   ! look at peak memory usage
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        XT             T     DIN       209           1
+    Total table slots: 500
+    Free table slots: 494
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+ 
+! many variations on this test
+! note that in the first case peak memory will show as ZERO.
+! The first SET MEMORY command resets the peak memory to zero, and
+! then the expression "xt[l=@din]" gets found without re-computation
+! having been computed just above
+GO bn_compressed_gather.sub xt[l=@din] 40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 1000500
+ Mean    value: 500500 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 20020 words
+    Current cache: 10.03002 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 1000500
+ Mean    value: 500500 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[l=@din]
+ 
+! altered limits syntax
+GO bn_compressed_gather.sub xt[l=1:1000 at din] 40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 1000500
+ Mean    value: 500500 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 20020 words
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 1000500
+ Mean    value: 500500 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[l=1:1000 at din]
+ 
+! test T=@AVE
+GO bn_compressed_gather.sub xt[l=@ave]  40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[l=@ave]
+ 
+! various partial grid points at end
+GO bn_compressed_gather.sub xt[T=@ave]  40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[T=@ave]
+GO bn_compressed_gather.sub xt[T=0.5:1000.5 at ave]  40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[T=0.5:1000.5 at ave]
+GO bn_compressed_gather.sub xt[T=0.6:1000.4 at ave]  40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[T=0.6:1000.4 at ave]
+GO bn_compressed_gather.sub xt[T=1:1000 at ave]  40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[T=1:1000 at ave]
+GO bn_compressed_gather.sub xt[T=1.2:999.8 at ave] 40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[T=1.2:999.8 at ave]
+ 
+! *********************************************************
+! ******* tests of "4D" @DIN and @ave ******
+define axis/x=1:200:1 xax
+define axis/y=1:200:1 yax
+define axis/z=1:200:1 zax
+define axis/T=1:2:1  tax
+let xyz  = 0*X[gx=xax] + 0*Y[gy=yax] + Z[gz=zax]
+let xyzt = 0*X[gx=xax] + 0*Y[gy=yax] + Z[gz=zax] + 0*T[gt=tax]
+ 
+* note: SUM of Z is N*(N+1)/2 = 20100
+* area integral in XY is 200*200=40,000
+* total integral is 804,000,000 (8.04*E8)
+ 
+* 3D XYZ test
+* 2d slice size = 200*200 = 40,000
+* 3d full size is 8,000,000  - so 10,000,000 is bigger
+ 
+! confirm gathering is occuring by looking at the diagnostic output
+cancel memory/all
+!set mode desp: 2000000
+set memory/size = 2  ! 2M v 8M: requires split/gather
+! will split into 4 pieces (1/4 of 8,000,000 fits into 2,000,000)
+! so z=1:50; then =51:100, Z=101:150, Z=151:200
+stat xyz[x=@din,y=@din,z=@din]
+ 
+             0*X[GX=XAX] + 0*Y[GY=YAX] + Z[GZ=ZAX]
+             X: 0.5 to 200.5 (XYZ integ.)
+             Y: 0.5 to 200.5 (XYZ integ.)
+             Z: 0.5 to 200.5 (XYZ integ.)
+             T:  N/A
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.04E+08
+ Maximum value: 8.04E+08
+ Mean    value: 8.04E+08 (unweighted average)
+SHOW MEMORY/DIAGNOSTIC   ! look at peak memory usage
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        XYZ            Z     IN4         8           1
+    Total table slots: 500
+    Free table slots: 493
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 360010 words
+    Current cache: 1.920002 megawords
+ 
+! the clean version of same test
+GO bn_compressed_gather.sub xyz[x=@din,y=@din,z=@din] 20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.04E+08
+ Maximum value: 8.04E+08
+ Mean    value: 8.04E+08 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 2 words
+    Current cache: 1.920002 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.04E+08
+ Maximum value: 8.04E+08
+ Mean    value: 8.04E+08 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 360010 words
+    Current cache: 1.920002 megawords
+COMPRESSED GATHER success on expression xyz[x=@din,y=@din,z=@din]
+ 
+! also do the average, which will provide a comparison result for the test
+! that follows
+! average along Z is 100.5
+GO bn_compressed_gather.sub xyz[x=@ave,y=@ave,z=@ave] 20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 100.5
+ Maximum value: 100.5
+ Mean    value: 100.5 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 3.520089 megawords
+    Current cache: 8.000003 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 100.5
+ Maximum value: 100.5
+ Mean    value: 100.5 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 360010 words
+    Current cache: 1.920002 megawords
+COMPRESSED GATHER success on expression xyz[x=@ave,y=@ave,z=@ave]
+ 
+! Since the T axis has only 2 points, the arithmetic above shows that the
+! chunks to be gathered will still be too large after splitting on T, which
+! in theory would trigger further splitting along Z.  However, there is only
+! one opportunity to process compressed axis splitting -- in IS_STRIP
+! at the time that it is stripping off the compressed transformation.  But
+! a "4D" transform is stripped in a single operation. We choose an axis that
+! is long enough to break into sufficiently small fragments
+set memory/size = 6  ! 16M points in grid, 8M in each T-chunk
+stat xyzt[x=@ave,y=@ave,z=@ave,t=@ave]
+ 
+             0*X[GX=XAX] + 0*Y[GY=YAX] + Z[GZ=ZAX] + 0*T[GT=TAX]
+             X: 0.5 to 200.5 (XYZT ave)
+             Y: 0.5 to 200.5 (XYZT ave)
+             Z: 0.5 to 200.5 (XYZT ave)
+             T: 0.5 to 2.5 (XYZT ave)
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 100.5
+ Maximum value: 100.5
+ Mean    value: 100.5 (unweighted average)
+show mem/diagnostic
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        XYZT           Z     AV4        13           1
+    Total table slots: 500
+    Free table slots: 493
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 6 megawords
+    Peak demand: 1.560004 megawords
+    Current cache: 5.600002 megawords
+ 
+! test splitting along 2 axes in succession by making T=@AVE into a separate
+! averaging operation
+CANCEL MEMORY/ALL
+LET xyzave = xyzt[x=@ave,y=@ave,z=@ave]
+!set mode desp: 2000000
+set memory/size = 6  ! 2M v 8M: requires split/gather
+stat xyzave[t=@ave]
+ 
+             XYZT[X=@AVE,Y=@AVE,Z=@AVE]
+             X: 0.5 to 200.5
+             Y: 0.5 to 200.5
+             Z: 0.5 to 200.5
+             T: 0.5 to 2.5 (averaged)
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 100.5
+ Maximum value: 100.5
+ Mean    value: 100.5 (unweighted average)
+SHOW MEMORY/DIAGNOSTIC   ! look at peak memory usage
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        XYZAVE         T     AVE         1           1
+        XYZT           Z     AV4        26           2
+    Total table slots: 500
+    Free table slots: 492
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 6 megawords
+    Peak demand: 2.080005 megawords
+    Current cache: 4.880005 megawords
+ 
+! *********************************************************
+! ******* tests of T= @var and @std ******
+! the @var and @std transformation had to be switched to
+! a single pass algorithm in order to implement split/gather
+define axis/x=1:10000:1 xax
+define axis/T=1:1001:1 tax
+ 
+let xt = 0*x[gx=xax] + T[gt=tax]
+let constant = 0*X[gx=xax] + 0*T[gt=tax] + 1234
+let xt_zero_mean = 0*X[gx=xax] + (T[gt=tax]-501) + 1234
+ 
+* note: sum of a sequence 1 to N of square integers is [N*(N+1)*(2N+1)]/6
+* T-501 is 2 sequences: -500 to 1 and 1 to 500, therefore sum is
+* 2 * [500*501*1001]/6 = 83583500
+* mean of this sequence is 83583500/1001 = 83500
+* ==> look for this as the correct answer to variance
+ 
+! confirm gathering is occuring by looking at the diagnostic output
+!set mode desperate: 400000
+set memory/size= 12
+stat constant[l=@var]
+ 
+             Variance of 0*X[GX=XAX] + 0*T[GT=TAX] + 1234
+             X: 0.5 to 10000.5
+             Y:  N/A
+             Z:  N/A
+             T: 0.5 to 1001.5 (variance)
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ Standard deviation: 0
+SHOW MEMORY/DIAGNOSTIC   ! look at peak memory usage
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        CONSTANT       T     VAR       209           1
+    Total table slots: 500
+    Free table slots: 494
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 4.210001 megawords
+    Current cache: 10.04 megawords
+ 
+! clean test
+cancel memory/all
+GO bn_compressed_gather.sub constant[l=@var] 40 12
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 13.980001 megawords
+    Current cache: 10.04 megawords
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 4.210001 megawords
+    Current cache: 10.04 megawords
+COMPRESSED GATHER success on expression constant[l=@var]
+ 
+! known result
+GO bn_compressed_gather.sub xt_zero_mean[l=@var] 40 12
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 83500
+ Maximum value: 83500
+ Mean    value: 83500 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 13.980001 megawords
+    Current cache: 10.040001 megawords
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 83500
+ Maximum value: 83500
+ Mean    value: 83500 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 4.210001 megawords
+    Current cache: 10.04 megawords
+COMPRESSED GATHER success on expression xt_zero_mean[l=@var]
+ 
+! adding a constant doesn't effect the variance
+GO bn_compressed_gather.sub xt[l=@var] 40 12
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 83500
+ Maximum value: 83500
+ Mean    value: 83500 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.02 megawords
+    Current cache: 10.040001 megawords
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 83500
+ Maximum value: 83500
+ Mean    value: 83500 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.130209 megawords
+    Current cache: 10.04 megawords
+COMPRESSED GATHER success on expression xt[l=@var]
+ 
+! same test, but  on @std (only one line of code difference so limited test)
+* square root of 83500 is 288.96366553599779.
+* Note: previous Ferret versions gave a consistent value
+*  Minimum value: 288.9636655359978
+*  Maximum value: 288.9636655359978
+*  Mean    value: 288.9636655359978
+* Now (11/16) we are getting slight variations in the 16th decimal (see"6")
+*  Minimum value: 288.9636655359978
+*  Maximum value: 288.9636655359978
+*  Mean    value: 288.9636655359976
+* *sh* @std differs from @var only by taking a SQRT() in the finalization step.
+*      I suspect this is an artifact of the compiler optimization level
+GO bn_compressed_gather.sub xt[l=@std] 4000000 400000
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 288.9636655359978
+ Maximum value: 288.9636655359978
+ Mean    value: 288.9636655360099 (unweighted average)
+    SET MEMORY/SIZE: 4000000 megawords
+    Peak demand: 10.04 megawords
+    Current cache: 10.040001 megawords
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 288.9636655359978
+ Maximum value: 288.9636655359978
+ Mean    value: 288.9636655360099 (unweighted average)
+    SET MEMORY/SIZE: 400000 megawords
+    Peak demand: 10.04 megawords
+    Current cache: 10.04 megawords
+COMPRESSED GATHER success on expression xt[l=@std]
+ 
+ 
+! *********************************************************
+! ******* tests of "4D" @var and @std ******
+! the @var and @srd transformation had to be switched to
+! a single pass algorithm in order to implement split/gather
+define axis/x=1:200:1 xax
+define axis/y=1:200:1 yax
+define axis/z=1:201:1 zax
+define axis/T=1:200:1 tax
+! adding a constant doesn't effect variance
+let constant = 0*X[gx=xax] + 0*Y[gy=yax] + 0*Z[gz=zax] + 1234
+let xyz = 0*X[gx=xax] + 0*Y[gy=yax] + Z[gz=zax] + 1
+let xyz_zero_mean = 0*X[gx=xax] + 0*Y[gy=yax] + (Z[gz=zax]-101)
+ 
+* note: sum of a sequence 1 to N of square integers is [N*(N+1)*(2N+1)]/6
+* Z-101 is 2 sequences: -100 to -1 and 1 to 100, therefore sum is
+* 2 * [100*101*201]/6 = 676700
+* so the average is 676700/201 = 3366.666666 ...
+* At every XY point we have the identical sequence in Z, so the variance is
+* the same as the single Z sequence
+ 
+* 3D XYZ test
+* 2d slice size = 200*200 = 40,000
+* 3d full size is 8,000,000  - so 10,000,000 is bigger
+cancel memory/all
+!set mode desp: 2000000
+set memory/size = 2  ! 2M v 8M: requires split/gather
+! will split into 4 pieces (1/4 of 8,000,000 fits into 2,000,000)
+! so z=1:50; then =51:100, Z=101:150, Z=151:200
+LIST/PREC=12 constant[x=@var,y=@var,z=@var]
+             VARIABLE : 0*X[GX=XAX] + 0*Y[GY=YAX] + 0*Z[GZ=ZAX] + 1234
+             X        : 0.5 to 200.5 (XYZ variance)
+             Y        : 0.5 to 200.5 (XYZ variance)
+             Z        : 0.5 to 201.5 (XYZ variance)
+          0.000000000000
+ 
+! variance of a constant is zero
+GO bn_compressed_gather.sub constant[x=@var,y=@var,z=@var] 20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 3 words
+    Current cache: 1.640003 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 640004 words
+    Current cache: 1.640003 megawords
+COMPRESSED GATHER success on expression constant[x=@var,y=@var,z=@var]
+ 
+! confirm that we get the result computed above
+GO bn_compressed_gather.sub xyz_zero_mean[x=@var,y=@var,z=@var]  20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 3366.7
+ Maximum value: 3366.7
+ Mean    value: 3366.7 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 3.52009 megawords
+    Current cache: 8.040004 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 3366.7
+ Maximum value: 3366.7
+ Mean    value: 3366.7 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 360011 words
+    Current cache: 1.640003 megawords
+COMPRESSED GATHER success on expression xyz_zero_mean[x=@var,y=@var,z=@var]
+LIST/PREC=12 xyz_zero_mean[x=@var,y=@var,z=@var]
+             VARIABLE : 0*X[GX=XAX] + 0*Y[GY=YAX] + (Z[GZ=ZAX]-101)
+             X        : 0.5 to 200.5 (XYZ variance)
+             Y        : 0.5 to 200.5 (XYZ variance)
+             Z        : 0.5 to 201.5 (XYZ variance)
+          3366.66666667
+ 
+! confirm that adding a constant does not change the result
+GO bn_compressed_gather.sub xyz[x=@var,y=@var,z=@var]  20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 3366.7
+ Maximum value: 3366.7
+ Mean    value: 3366.7 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 6.960004 megawords
+    Current cache: 9.680006 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 3366.7
+ Maximum value: 3366.7
+ Mean    value: 3366.7 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 640004 words
+    Current cache: 1.640003 megawords
+COMPRESSED GATHER success on expression xyz[x=@var,y=@var,z=@var]
+LIST/PREC=12 xyz[x=@var,y=@var,z=@var]
+             VARIABLE : 0*X[GX=XAX] + 0*Y[GY=YAX] + Z[GZ=ZAX] + 1
+             X        : 0.5 to 200.5 (XYZ variance)
+             Y        : 0.5 to 200.5 (XYZ variance)
+             Z        : 0.5 to 201.5 (XYZ variance)
+          3366.66666667
+ 
+CANCEL MEMORY/ALL  ! IF PRESENT THIS PREVENTS THE MEMORY CORRUPTION
+! confirm the @std gives the square root of the variance
+! SQRT(676700/201) = 58.022983951764034269074805569046
+GO bn_compressed_gather.sub xyz[x=@std,y=@std,z=@std]  20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 58.023
+ Maximum value: 58.023
+ Mean    value: 58.023 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 6.960004 megawords
+    Current cache: 8.040003 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 58.023
+ Maximum value: 58.023
+ Mean    value: 58.023 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 640004 words
+    Current cache: 1.640003 megawords
+COMPRESSED GATHER success on expression xyz[x=@std,y=@std,z=@std]
+LIST/PREC=12 xyz[x=@std,y=@std,z=@std]
+             VARIABLE : 0*X[GX=XAX] + 0*Y[GY=YAX] + Z[GZ=ZAX] + 1
+             X        : 0.5 to 200.5 (XYZ stddev)
+             Y        : 0.5 to 200.5 (XYZ stddev)
+             Z        : 0.5 to 201.5 (XYZ stddev)
+          58.0229839518
+ 
+ 
+! add more tests here
+! the highest liklihood of problem is in the formulation of "the next chunk"
+! when IS_TRANS requests the next piece to be gathered
+! ... variations on inner and outer limits
+!     (i.e. averaging an expression with limits embedded inside of it
+!      where the averaging limits may or may not match the inner limits)
+! ... file variable, vs user variables
+! ... embedded functions, especially grid-changing functions
+!
+! ... test irregular axes (unequal weighting) and see how significant are
+!     the changes in results from old Ferret (particularly on @var)
+ 
+*** Running ferret script: bn_dynamic_gather.jnl
+! bn_dynamic_gather.jnl
+! *sh* 3/2017
+ 
+! There's not really anything "dynamic" about this benchmark, except that it
+! excercises the split/gather improvements that were implemented together with
+! dynamic memory management
+ 
+ 
+ 
+ 
+! Give us something to look at while we run these tests which dont make plots
+plot/noax/nolab/vlim=0:1/i=4:5 i
+annotate/norm/x=0/y=0.5 "@AC... running bn_dynamic_gather"
+ 
+ 
+! **************************************
+! create the test data
+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 0 THEN
+ELSE
+  define symbol saved_memory_size = ($FERRET_MEMORY)
+ !-> define symbol saved_memory_size = 25.6
+  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=25.6
+ENDIF
+ 
+! ************************************
+ 
+use tmp/test_dyn_mem.nc
+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
+ 
+ 
+! excercise under the least strict memory management
+CANCEL MODE FRUGAL
+GO bn_dynamic_gather.sub
+! bn_dynamic_gather.sub
+ 
+! this subroutine to get called repeatedly for different values of MODE FRUGAL
+ 
+!**************
+! remember to test:
+! - MODE FRUGAL
+! done - case of no single axis long enough
+! done - case of transformed axis not long enough, but another is
+! 2-axis split including compressed
+! 2-axis split not including
+! 3-axis splits
+!    -- with slowest axis GT 5 in length
+!    -- with slowest axis LT 5 and second slowest GT 50
+! - modulo regrid examples
+! 2d and 3d @AVE
+! mixed @AVE and @DIN
+!*************
+ 
+! **************************************************
+! test memory that is too small to accommodate the result
+! this request will fail trying to get the third argument
+set mode ignore
+set memory/siz=1.99
+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]
+    At the moment that the memory limit was reached
+    argument 3 was being evaluated: V[L=1:10 at AVE]
+    memory was committed as follows:
+        - to arguments 1-2: 40000 (2%)
+        - to objects used in computation: : 0 (0%)
+    The size of the requested object was: : 2000000 (101%)
+cancel mode ignore
+ 
+! **************************************************
+! if memory size is large enough to accommodate the result data plus
+! its accumulation buffer(s) when split along the compressed axis (4M)
+! then it can choose to use the compressed axis.
+! The smallest chunk along that axis is 1000x1000x2x1 ==> 2M
+set memory/siz=6
+stat/brief v[l=1:10 at ave]
+ 
+ Total # of data points: 2000000 (1000*1000*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 2007.5
+ Mean    value: 1008 (unweighted average)
+show memory/diagnostic   ! T axis split, chunk size = 1, peak mem=6
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              T     AVE         1           1
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 6 megawords
+    Peak demand: 6 megawords
+    Current cache: 6 megawords
+show memory/all          ! in memory following the last chunk
+    SET MEMORY/SIZE: 6 megawords
+    Peak demand: 6 megawords
+    Current cache: 6 megawords
+all data in memory:
+ V[D=test_dyn_mem]                 XYZ   mr:6 size:4000000
+         1/0.5                 1/0.5                 1/0.5              ... /0.5
+      1000/1000.5           1000/1000.5              2/2.5              ... /10.5
+                                                              AVE
+ V[D=test_dyn_mem]                 XYZ   mr:4 size:2000000
+         1/0.5                 1/0.5                 1/0.5                10/9.5
+      1000/1000.5           1000/1000.5              2/2.5                10/10.5
+ 
+cancel memory/all
+ 
+! **************************************************
+! Since @VAR requires two buffers - the total size of the result is 2M+2*2M=6M
+! if we were to split along T the size of a chunk would be 1000x1000x2x1 = 2M
+! So the total memory needed would be 6M+2M=8M to split along T
+set memory/size=8
+stat/brief v[l=1:10 at var]
+ 
+ Total # of data points: 2000000 (1000*1000*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.25
+ Maximum value: 8.25
+ Mean    value: 8.25 (unweighted average)
+show memory/diagnostic   ! T axis split, chunk size = 1, peak mem=8
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              T     VAR         1           1
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 8 megawords
+    Peak demand: 8 megawords
+    Current cache: 8 megawords
+cancel memory/all
+ 
+! **************************************************
+! if memory size is NOT large enough to accommodate the result data plus
+! its accumulation buffer(s) then it cannot split along T
+set memory/siz=5.9
+stat/brief v[l=1:10 at ave]
+ 
+ Total # of data points: 2000000 (1000*1000*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 2007.5
+ Mean    value: 1008 (unweighted average)
+show memory/diagnostic   ! Y axis split, big chunk size = 1
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Y     AVE       162           1
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 5.9 megawords
+    Peak demand: 5.888 megawords
+    Current cache: 3.32 megawords
+cancel memory/all
+ 
+! **************************************************
+! memory barely large enough to accommodate the result (2M), and the
+! smallest achievable chunk
+! splitting along the Y axis, the smallest chunk size is 1000x1x2x10 ==> 20000
+! and the average of a single chunk (incl buffer) is 1000x1x2x1*2 ==> 4000
+set memory/siz=2.024
+stat/brief v[l=1:10 at ave]
+ 
+ Total # of data points: 2000000 (1000*1000*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 2007.5
+ Mean    value: 1008 (unweighted average)
+show memory/diagnostic ! Y axis split, chunk size=1, peak mem=2.024
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Y     AVE         1           1
+    Total table slots: 500
+    Free table slots: 497
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 2.024 megawords
+    Peak demand: 2.024 megawords
+    Current cache: 2.024 megawords
+show memory/all        ! in memory following the last chunk
+    SET MEMORY/SIZE: 2.024 megawords
+    Peak demand: 2.024 megawords
+    Current cache: 2.024 megawords
+all data in memory:
+ V[D=test_dyn_mem]                 XYZ   mr:4 size:2000000
+         1/0.5                 1/0.5                 1/0.5              ... /0.5
+      1000/1000.5           1000/1000.5              2/2.5              ... /10.5
+                                                              AVE
+ V[D=test_dyn_mem]                 XZ    mr:5 size:4000
+         1/0.5              1000/999.5               1/0.5              ... /0.5
+      1000/1000.5           1000/1000.5              2/2.5              ... /10.5
+                                                              AVE
+ V[D=test_dyn_mem]                 XZT   mr:6 size:20000
+         1/0.5              1000/999.5               1/0.5                 1/0.5
+      1000/1000.5           1000/1000.5              2/2.5                10/10.5
+ 
+cancel memory/all
+ 
+! **************************************************
+! Since @VAR requires two buffers - the total size of the result is 2M+2*2M=6M
+! if we were to split along T the size of a chunk would be 1000x1000x2x1 = 2M
+! So the total memory needed would be 6M+2M=8M.  So the current SET MEMORY=6
+! is not enuf mem to split along the T axis
+set memory/siz=6
+stat/brief v[l=1:10 at var]
+ 
+ Total # of data points: 2000000 (1000*1000*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.25
+ Maximum value: 8.25
+ Mean    value: 8.25 (unweighted average)
+show memory/diagnostic   ! Y axis split
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Y     VAR       153           1
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 6 megawords
+    Peak demand: 5.978 megawords
+    Current cache: 5.05 megawords
+cancel memory/all
+ 
+! **************************************************
+! 3D averaging  v[x=@ave,y=@ave,z=@ave,L=1]
+! result size will be 1x1x1x1*2 = 2
+! chunk size if split along Z will be 1000x1000x1x1 = 1M
+! chunk size if split along Y will be 1000x1x2x1    = 2K
+ 
+! this request can succeed by splitting along Z
+set memory/siz=1.001
+stat/brief v[x=@ave,y=@ave,z=@ave,L=1]
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 1003.5
+ Maximum value: 1003.5
+ Mean    value: 1003.5 (unweighted average)
+show memory/diagnostic     ! Z axis split
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Z     AV4         1           1
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 1.001 megawords
+    Peak demand: 1.000002 megawords
+    Current cache: 1.000002 megawords
+cancel memory/all
+ 
+! **************************************************
+! but if memory is so small that the Z axis of 2 points does not provide
+! enough size reduction, then we choose to split along Y
+set memory/siz=.99
+stat/brief v[x=@ave,y=@ave,z=@ave,L=1]
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 1003.5
+ Maximum value: 1003.5
+ Mean    value: 1003.5 (unweighted average)
+show memory/diagnostic     ! Y axis split
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Y     AV4       494           1
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 990000 words
+    Peak demand: 988002 words
+    Current cache: 24002 words
+cancel memory/all
+ 
+! **************************************************
+! multiple transformations on a single expression
+! Use of these expressions **is a bad idea in Ferret**
+! he "potential size" of the source data is 1000x1000x20x10=20M
+! we just get aggressive about memory saving: choose the longest axis
+! preferring an uncompressed axis if available
+! Here we see a triple level strip: Z-T-Y
+! (SHOW MEM/DIAG repeats on each of the 2 K values)
+set memory/siz=.99
+stat/brief v[x=@ave,y=@ave,L=@SUM]
+ 
+ Total # of data points: 2 (1*1*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 10075
+ Maximum value: 10085
+ Mean    value: 10080 (unweighted average)
+show memory/diagnostic        !  split on Z-(T-Y,T-Y)
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Z     SUM         1           1
+        V              T     SUM         1           1
+        V              Y     AV4       989          10
+        V              T     SUM         1           1
+        V              Y     AV4       989          10
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 990000 words
+    Peak demand: 989006 words
+    Current cache: 11006 words
+cancel memory/all
+ 
+! **************************************************
+! now the same situation, but where Z is compressed as well
+! Z is not stripped off because other axes are longer
+set memory/siz=.99
+stat/brief v[x=@ave,y=@ave,z=@ave,L=@SUM]
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 10080
+ Maximum value: 10080
+ Mean    value: 10080 (unweighted average)
+show memory/diagnostic       ! split on T-Y
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              T     SUM         1           1
+        V              Y     AV4       494          10
+    Total table slots: 500
+    Free table slots: 497
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 990000 words
+    Peak demand: 988004 words
+    Current cache: 24004 words
+cancel memory/all
+ 
+! **************************************************
+! multiple transformation again
+! first strip YZT at AVE. Split the long Y axis, no further split needed
+set memory/siz=.99
+stat/brief v[x=@SUM,y=@ave,z=@ave,L=@ave]
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 1008000
+ Maximum value: 1008000
+ Mean    value: 1008000 (unweighted average)
+show memory/diagnostic      ! split on Y
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Y     AV4        24           1
+    Total table slots: 500
+    Free table slots: 494
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 990000 words
+    Peak demand: 480962 words
+    Current cache: 802562 words
+cancel memory/all
+ 
+! **************************************************
+! MODULO REGRID
+ 
+! v1000 is 10x100x4x1000
+! for gt=@mod the full result size is 10x100x4x12 ==>  48,000
+ 
+define axis/mod/t=1:12:1 t12mod
+ 
+!**************************************************
+set mem/size=10   ! bigger than needed
+stat/brief v1000[gt=t12mod at mod]
+ 
+ Total # of data points: 48000 (10*100*4*12*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 618
+ Mean    value: 559 (unweighted average)
+show mem/diag     ! note peak size demand a bit over 4
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 10 megawords
+    Peak demand: 4.144 megawords
+    Current cache: 4.048 megawords
+canc mem/all
+ 
+!**************************************************
+set mem/size=4
+stat/brief v1000[gt=t12mod at mod]
+ 
+ Total # of data points: 48000 (10*100*4*12*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 618
+ Mean    value: 559 (unweighted average)
+show mem/diag              ! big z chunks (3 on ax of len 4)
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V1000          Z                 3           1
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 4 megawords
+    Peak demand: 3.108 megawords
+    Current cache: 1.096 megawords
+canc mem/all
+ 
+!**************************************************
+set mem/size=1
+stat/brief v1000[gt=t12mod at mod]
+ 
+ Total # of data points: 48000 (10*100*4*12*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 618
+ Mean    value: 559 (unweighted average)
+show mem/diag              !  big y chunks (22 on ax of len 100)
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V1000          Y                22           1
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 1000000 words
+    Peak demand: 959680 words
+    Current cache: 544320 words
+canc mem/all
+ 
+!**************************************************
+! if the chunk size is 1, then each chunk src is 10x1x4x1000 ==> 40000
+! and requires a result plus 2 buffers:          10x1x4x12*3 ==>  1440
+! plus the full result size in IS_GATHER                     ==> 48000
+!                                                      total ==> 89440
+set mem/size=.09
+stat/brief v1000[gt=t12mod at mod]
+ 
+ Total # of data points: 48000 (10*100*4*12*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 618
+ Mean    value: 559 (unweighted average)
+show mem/diag              !  y chunk size = 1
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V1000          Y                 1           1
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 90000 words
+    Peak demand: 89440 words
+    Current cache: 88960 words
+canc mem/all
+ 
+ 
+! ************** USER VARIABLES ********************
+let a = v[k=1]
+let b = v[k=2]
+let c = a + b
+let d = a + c
+ 
+! for comparison: memory management to average a simple file variable
+set memory/siz=3
+stat/brief v[l=1:10 at ave,k=1]
+ 
+ Total # of data points: 1000000 (1000*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 2006.5
+ Mean    value: 1007.5 (unweighted average)
+show memory/diagnostic   ! T axis split, chunk size = 1, peak mem=6
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              T     AVE         1           1
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 3 megawords
+    Peak demand: 3 megawords
+    Current cache: 3 megawords
+cancel memory/all
+ 
+! compare to memory management averaging user variables
+! not split on T because more memory is needed for components of calculation
+set memory/siz=3
+ 
+stat/brief a[l=1:10 at ave]
+ 
+ Total # of data points: 1000000 (1000*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 2006.5
+ Mean    value: 1007.5 (unweighted average)
+show memory/diagnostic   ! X axis split, chunk size = 1, peak mem=1.82
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        A              Y     AVE        47           1
+    Total table slots: 500
+    Free table slots: 491
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 3 megawords
+    Peak demand: 1.94 megawords
+    Current cache: 2.884 megawords
+cancel memory/all
+ 
+stat/brief d[l=1:10 at ave]
+ 
+ Total # of data points: 1000000 (1000*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 26.5
+ Maximum value: 6020.5
+ Mean    value: 3023.5 (unweighted average)
+show memory/diagnostic   ! X axis split, chunk size = 1, peak mem=2.23
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        D              Y     AVE        47           1
+    Total table slots: 500
+    Free table slots: 489
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 3 megawords
+    Peak demand: 2.41 megawords
+    Current cache: 2.84 megawords
+cancel memory/all
+ 
+! progressively more frugal mem mgmt is needed as multiple results accumulate
+stat/brief a[i=1:500,l=1:10 at ave], b[i=1:500,l=1:10 at ave], c[i=1:500,l=1:10 at ave], d[i=1:500,l=1:10 at ave]
+ 
+ Total # of data points: 500000 (500*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 1506.5
+ Mean    value: 757.5 (unweighted average)
+ 
+ Total # of data points: 500000 (500*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 9.5
+ Maximum value: 1507.5
+ Mean    value: 758.5 (unweighted average)
+ 
+ Total # of data points: 500000 (500*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 18
+ Maximum value: 3014
+ Mean    value: 1516 (unweighted average)
+ 
+ Total # of data points: 500000 (500*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 26.5
+ Maximum value: 4520.5
+ Mean    value: 2273.5 (unweighted average)
+show memory/diagnostic   ! X axis split, chunk size = 1, peak mem=2.23
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        A              T     AVE         1           1
+        B              Y     AVE        71           1
+        C              Y     AVE        47           1
+        D              Y     AVE        23           1
+    Total table slots: 500
+    Free table slots: 487
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 3 megawords
+    Peak demand: 2.845 megawords
+    Current cache: 2.979 megawords
+cancel memory/all
+ 
+! if the initial arguments take up too much memory we cannot succeed
+set mode ignore
+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]
+    At the moment that the memory limit was reached
+    argument 3 was being evaluated: C[L=1:10 at AVE]
+    memory was committed as follows:
+        - to arguments 1-2: 2000000 (67%)
+        - to objects used in computation: : 0 (0%)
+    The size of the requested object was: : 1000000 (33%)
+show memory/diagnostic   ! X axis split, chunk size = 1, peak mem=2.23
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        A              Y     AVE        47           1
+        B              Y     AVE        23           1
+    Total table slots: 500
+    Free table slots: 491
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 3 megawords
+    Peak demand: 2.46 megawords
+    Current cache: 2.794 megawords
+cancel mode ignore
+cancel memory/all
+ 
+ 
+! now run the same tests under 3 different FRUGAL levels
+! save the outputs so they can be compared
+ 
+! excercise under the least strict memory management
+CANCEL REDIRECT
+SET REDIRECT/CLOBBER/FILE=bn_dynamic_gather_0.out
+SET REDIRECT/CLOBBER/FILE=bn_dynamic_gather_30.out
+SET REDIRECT/CLOBBER/FILE=bn_dynamic_gather_60.out
+ 
+! now compare the three output logs:
+! differences in *how* the results are computed are fine
+! differences in what the results are would be problems
+SAY **************************************************
+**************************************************
+SAY ************* DIFF FRUGAL 0 TO 30 ****************
+************* DIFF FRUGAL 0 TO 30 ****************
+SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_30.out
+1c1
+< CANCEL MODE FRUGAL
+---
+> SET MODE FRUGAL    ! 30%
+4c4
+<       FRUGAL        CANCELED            30
+---
+>       FRUGAL           SET              30
+56c56
+<         V              T     AVE         1           1
+---
+>         V              Y     AVE        91           1
+58c58
+<     Free table slots: 498
+---
+>     Free table slots: 496
+61,62c61,62
+<     Peak demand: 6 megawords
+<     Current cache: 6 megawords
+---
+>     Peak demand: 4.184 megawords
+>     Current cache: 4.524 megawords
+65,66c65,66
+<     Peak demand: 6 megawords
+<     Current cache: 6 megawords
+---
+>     Peak demand: 4.184 megawords
+>     Current cache: 4.524 megawords
+68c68
+<  V[D=test_dyn_mem]                 XYZ   mr:7 size:4000000
+---
+>  V[D=test_dyn_mem]                 XYZ   mr:4 size:2000000
+72,73c72,77
+<  V[D=test_dyn_mem]                 XYZ   mr:13 size:2000000
+<          1/0.5                 1/0.5                 1/0.5                10/9.5
+---
+>  V[D=test_dyn_mem]                 XYZ   mr:7 size:360000
+>          1/0.5               911/910.5               1/0.5              ... /0.5
+>       1000/1000.5           1000/1000.5              2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:12 size:1800000
+>          1/0.5               911/910.5               1/0.5                 1/0.5
+75a80,83
+>  V[D=test_dyn_mem]                 XYZ   mr:8 size:364000
+>          1/0.5               820/819.5               1/0.5              ... /0.5
+>       1000/1000.5            910/910.5               2/2.5              ... /10.5
+>                                                               AVE
+93c101
+<         V              T     VAR         1           1
+---
+>         V              Y     VAR       138           1
+95c103
+<     Free table slots: 498
+---
+>     Free table slots: 494
+98,99c106,107
+<     Peak demand: 8 megawords
+<     Current cache: 8 megawords
+---
+>     Peak demand: 5.588 megawords
+>     Current cache: 7.3 megawords
+116c124
+<         V              Y     AVE       162           1
+---
+>         V              Y     AVE        88           1
+118c126
+<     Free table slots: 496
+---
+>     Free table slots: 494
+121,122c129,130
+<     Peak demand: 5.888 megawords
+<     Current cache: 3.32 megawords
+---
+>     Peak demand: 4.112 megawords
+>     Current cache: 5.232 megawords
+141a150
+>         V              T     AVE         6         999
+143c152
+<     Free table slots: 497
+---
+>     Free table slots: 496
+146c155
+<     Peak demand: 2.024 megawords
+---
+>     Peak demand: 2.016 megawords
+150c159
+<     Peak demand: 2.024 megawords
+---
+>     Peak demand: 2.016 megawords
+157c166
+<  V[D=test_dyn_mem]                 XZ    mr:11 size:4000
+---
+>  V[D=test_dyn_mem]                 XZ    mr:10 size:4000
+161,162c170,171
+<  V[D=test_dyn_mem]                 XZT   mr:13 size:20000
+<          1/0.5              1000/999.5               1/0.5                 1/0.5
+---
+>  V[D=test_dyn_mem]                 XZT   mr:4 size:8000
+>          1/0.5              1000/999.5               1/0.5                 7/6.5
+164a174,177
+>  V[D=test_dyn_mem]                 XZT   mr:12 size:12000
+>          1/0.5              1000/999.5               1/0.5                 1/0.5
+>       1000/1000.5           1000/1000.5              2/2.5                 6/6.5
+>  
+183c196
+<         V              Y     VAR       153           1
+---
+>         V              Y     VAR        84           1
+188,189c201,202
+<     Peak demand: 5.978 megawords
+<     Current cache: 5.05 megawords
+---
+>     Peak demand: 4.184 megawords
+>     Current cache: 4.48 megawords
+210c223
+<         V              Z     AV4         1           1
+---
+>         V              Y     AV4       350           1
+215,216c228,229
+<     Peak demand: 1.000002 megawords
+<     Current cache: 1.000002 megawords
+---
+>     Peak demand: 700002 words
+>     Current cache: 600002 words
+233c246
+<         V              Y     AV4       494           1
+---
+>         V              Y     AV4       346           1
+238,239c251,252
+<     Peak demand: 988002 words
+<     Current cache: 24002 words
+---
+>     Peak demand: 692002 words
+>     Current cache: 616002 words
+263c276
+<         V              Y     AV4       989          10
+---
+>         V              Y     AV4       692          10
+265c278
+<         V              Y     AV4       989          10
+---
+>         V              Y     AV4       692          10
+270,271c283,284
+<     Peak demand: 989006 words
+<     Current cache: 11006 words
+---
+>     Peak demand: 692006 words
+>     Current cache: 308006 words
+289c302
+<         V              Y     AV4       494          10
+---
+>         V              Y     AV4       346          10
+294,295c307,308
+<     Peak demand: 988004 words
+<     Current cache: 24004 words
+---
+>     Peak demand: 692004 words
+>     Current cache: 616004 words
+312c325
+<         V              Y     AV4        24           1
+---
+>         V              Y     AV4        17           1
+314c327
+<     Free table slots: 494
+---
+>     Free table slots: 492
+317,318c330,331
+<     Peak demand: 480962 words
+<     Current cache: 802562 words
+---
+>     Peak demand: 340682 words
+>     Current cache: 962602 words
+360c373
+<         V1000          Z                 3           1
+---
+>         V1000          Z                 2           1
+365,366c378,379
+<     Peak demand: 3.108 megawords
+<     Current cache: 1.096 megawords
+---
+>     Peak demand: 2.12 megawords
+>     Current cache: 2.096 megawords
+381c394
+<         V1000          Y                22           1
+---
+>         V1000          Y                15           1
+386,387c399,400
+<     Peak demand: 959680 words
+<     Current cache: 544320 words
+---
+>     Peak demand: 669600 words
+>     Current cache: 460000 words
+406a420
+>         V1000          Z                 2          99
+408c422
+<     Free table slots: 496
+---
+>     Free table slots: 493
+411,412c425,426
+<     Peak demand: 89440 words
+<     Current cache: 88960 words
+---
+>     Peak demand: 69200 words
+>     Current cache: 89440 words
+434c448
+<         V              T     AVE         1           1
+---
+>         V              Y     AVE        91           1
+436c450
+<     Free table slots: 498
+---
+>     Free table slots: 496
+439,440c453,454
+<     Peak demand: 3 megawords
+<     Current cache: 3 megawords
+---
+>     Peak demand: 2.092 megawords
+>     Current cache: 2.262 megawords
+457c471
+<         A              Y     AVE        47           1
+---
+>         A              Y     AVE        26           1
+459c473
+<     Free table slots: 491
+---
+>     Free table slots: 487
+462,463c476,477
+<     Peak demand: 1.94 megawords
+<     Current cache: 2.884 megawords
+---
+>     Peak demand: 1.52 megawords
+>     Current cache: 2.98 megawords
+476c490
+<         D              Y     AVE        47           1
+---
+>         D              Y     AVE        26           1
+478c492
+<     Free table slots: 489
+---
+>     Free table slots: 487
+481,482c495,496
+<     Peak demand: 2.41 megawords
+<     Current cache: 2.84 megawords
+---
+>     Peak demand: 1.78 megawords
+>     Current cache: 2.836 megawords
+514,517c528,531
+<         A              T     AVE         1           1
+<         B              Y     AVE        71           1
+<         C              Y     AVE        47           1
+<         D              Y     AVE        23           1
+---
+>         A              Y     AVE        76           1
+>         B              Y     AVE        59           1
+>         C              Y     AVE        42           1
+>         D              Y     AVE        26           1
+519c533
+<     Free table slots: 487
+---
+>     Free table slots: 484
+522,523c536,537
+<     Peak demand: 2.845 megawords
+<     Current cache: 2.979 megawords
+---
+>     Peak demand: 2.39 megawords
+>     Current cache: 2.918 megawords
+538,539c552,553
+<         A              Y     AVE        47           1
+<         B              Y     AVE        23           1
+---
+>         A              Y     AVE        26           1
+>         B              Y     AVE         9           1
+541c555
+<     Free table slots: 491
+---
+>     Free table slots: 481
+544,545c558,559
+<     Peak demand: 2.46 megawords
+<     Current cache: 2.794 megawords
+---
+>     Peak demand: 2.18 megawords
+>     Current cache: 2.922 megawords
+551c565
+< ! excercise under the default memory management
+---
+> ! excercise under pretty strict memory management
+ 
+SAY **************************************************
+**************************************************
+SAY ************* DIFF FRUGAL 0 TO 60 ****************
+************* DIFF FRUGAL 0 TO 60 ****************
+SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
+1c1
+< CANCEL MODE FRUGAL
+---
+> SET MODE FRUGAL:60
+4c4
+<       FRUGAL        CANCELED            30
+---
+>       FRUGAL           SET              60
+56c56
+<         V              T     AVE         1           1
+---
+>         V              Y     AVE        16           1
+58c58
+<     Free table slots: 498
+---
+>     Free table slots: 478
+61,62c61,62
+<     Peak demand: 6 megawords
+<     Current cache: 6 megawords
+---
+>     Peak demand: 2.384 megawords
+>     Current cache: 5.712 megawords
+65,66c65,66
+<     Peak demand: 6 megawords
+<     Current cache: 6 megawords
+---
+>     Peak demand: 2.384 megawords
+>     Current cache: 5.712 megawords
+68c68
+<  V[D=test_dyn_mem]                 XYZ   mr:7 size:4000000
+---
+>  V[D=test_dyn_mem]                 XYZ   mr:13 size:2000000
+72,73c72,77
+<  V[D=test_dyn_mem]                 XYZ   mr:13 size:2000000
+<          1/0.5                 1/0.5                 1/0.5                10/9.5
+---
+>  V[D=test_dyn_mem]                 XYZ   mr:21 size:32000
+>          1/0.5               993/992.5               1/0.5              ... /0.5
+>       1000/1000.5           1000/1000.5              2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:1 size:160000
+>          1/0.5               993/992.5               1/0.5                 1/0.5
+75a80,155
+>  V[D=test_dyn_mem]                 XYZ   mr:20 size:64000
+>          1/0.5               977/976.5               1/0.5              ... /0.5
+>       1000/1000.5            992/992.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:3 size:320000
+>          1/0.5               977/976.5               1/0.5                 1/0.5
+>       1000/1000.5            992/992.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:2 size:64000
+>          1/0.5               961/960.5               1/0.5              ... /0.5
+>       1000/1000.5            976/976.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:5 size:320000
+>          1/0.5               961/960.5               1/0.5                 1/0.5
+>       1000/1000.5            976/976.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:4 size:64000
+>          1/0.5               945/944.5               1/0.5              ... /0.5
+>       1000/1000.5            960/960.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:7 size:320000
+>          1/0.5               945/944.5               1/0.5                 1/0.5
+>       1000/1000.5            960/960.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:6 size:64000
+>          1/0.5               929/928.5               1/0.5              ... /0.5
+>       1000/1000.5            944/944.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:9 size:320000
+>          1/0.5               929/928.5               1/0.5                 1/0.5
+>       1000/1000.5            944/944.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:8 size:64000
+>          1/0.5               913/912.5               1/0.5              ... /0.5
+>       1000/1000.5            928/928.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:11 size:320000
+>          1/0.5               913/912.5               1/0.5                 1/0.5
+>       1000/1000.5            928/928.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:10 size:64000
+>          1/0.5               897/896.5               1/0.5              ... /0.5
+>       1000/1000.5            912/912.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:14 size:320000
+>          1/0.5               897/896.5               1/0.5                 1/0.5
+>       1000/1000.5            912/912.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:12 size:64000
+>          1/0.5               881/880.5               1/0.5              ... /0.5
+>       1000/1000.5            896/896.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:18 size:320000
+>          1/0.5               881/880.5               1/0.5                 1/0.5
+>       1000/1000.5            896/896.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:15 size:64000
+>          1/0.5               865/864.5               1/0.5              ... /0.5
+>       1000/1000.5            880/880.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:25 size:320000
+>          1/0.5               865/864.5               1/0.5                 1/0.5
+>       1000/1000.5            880/880.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:19 size:64000
+>          1/0.5               849/848.5               1/0.5              ... /0.5
+>       1000/1000.5            864/864.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:24 size:320000
+>          1/0.5               849/848.5               1/0.5                 1/0.5
+>       1000/1000.5            864/864.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:23 size:64000
+>          1/0.5               833/832.5               1/0.5              ... /0.5
+>       1000/1000.5            848/848.5               2/2.5              ... /10.5
+>                                                               AVE
+93c173
+<         V              T     VAR         1           1
+---
+>         V              Y     VAR        46           1
+95c175
+<     Free table slots: 498
+---
+>     Free table slots: 488
+98,99c178,179
+<     Peak demand: 8 megawords
+<     Current cache: 8 megawords
+---
+>     Peak demand: 3.196 megawords
+>     Current cache: 7.944 megawords
+116c196
+<         V              Y     AVE       162           1
+---
+>         V              Y     AVE        14           1
+118c198
+<     Free table slots: 496
+---
+>     Free table slots: 474
+121,122c201,202
+<     Peak demand: 5.888 megawords
+<     Current cache: 3.32 megawords
+---
+>     Peak demand: 2.336 megawords
+>     Current cache: 5.896 megawords
+141a222
+>         V              T     AVE         2         999
+143c224
+<     Free table slots: 497
+---
+>     Free table slots: 493
+146c227
+<     Peak demand: 2.024 megawords
+---
+>     Peak demand: 2.008 megawords
+150c231
+<     Peak demand: 2.024 megawords
+---
+>     Peak demand: 2.008 megawords
+153c234
+<  V[D=test_dyn_mem]                 XYZ   mr:8 size:2000000
+---
+>  V[D=test_dyn_mem]                 XYZ   mr:24 size:2000000
+157c238
+<  V[D=test_dyn_mem]                 XZ    mr:11 size:4000
+---
+>  V[D=test_dyn_mem]                 XZ    mr:25 size:4000
+161,162c242,243
+<  V[D=test_dyn_mem]                 XZT   mr:13 size:20000
+<          1/0.5              1000/999.5               1/0.5                 1/0.5
+---
+>  V[D=test_dyn_mem]                 XZT   mr:19 size:4000
+>          1/0.5              1000/999.5               1/0.5                 9/8.5
+164a246,261
+>  V[D=test_dyn_mem]                 XZT   mr:20 size:4000
+>          1/0.5              1000/999.5               1/0.5                 7/6.5
+>       1000/1000.5           1000/1000.5              2/2.5                 8/8.5
+>  
+>  V[D=test_dyn_mem]                 XZT   mr:21 size:4000
+>          1/0.5              1000/999.5               1/0.5                 5/4.5
+>       1000/1000.5           1000/1000.5              2/2.5                 6/6.5
+>  
+>  V[D=test_dyn_mem]                 XZT   mr:22 size:4000
+>          1/0.5              1000/999.5               1/0.5                 3/2.5
+>       1000/1000.5           1000/1000.5              2/2.5                 4/4.5
+>  
+>  V[D=test_dyn_mem]                 XZT   mr:26 size:4000
+>          1/0.5              1000/999.5               1/0.5                 1/0.5
+>       1000/1000.5           1000/1000.5              2/2.5                 2/2.5
+>  
+183c280
+<         V              Y     VAR       153           1
+---
+>         V              Y     VAR        15           1
+185c282
+<     Free table slots: 496
+---
+>     Free table slots: 478
+188,189c285,286
+<     Peak demand: 5.978 megawords
+<     Current cache: 5.05 megawords
+---
+>     Peak demand: 2.39 megawords
+>     Current cache: 5.86 megawords
+210c307
+<         V              Z     AV4         1           1
+---
+>         V              Y     AV4       200           1
+212c309
+<     Free table slots: 498
+---
+>     Free table slots: 497
+215,216c312,313
+<     Peak demand: 1.000002 megawords
+<     Current cache: 1.000002 megawords
+---
+>     Peak demand: 400002 words
+>     Current cache: 800002 words
+233c330
+<         V              Y     AV4       494           1
+---
+>         V              Y     AV4       197           1
+235c332
+<     Free table slots: 498
+---
+>     Free table slots: 496
+238,239c335,336
+<     Peak demand: 988002 words
+<     Current cache: 24002 words
+---
+>     Peak demand: 394002 words
+>     Current cache: 818002 words
+263c360
+<         V              Y     AV4       989          10
+---
+>         V              Y     AV4       395          10
+265c362
+<         V              Y     AV4       989          10
+---
+>         V              Y     AV4       395          10
+267c364
+<     Free table slots: 496
+---
+>     Free table slots: 495
+270,271c367,368
+<     Peak demand: 989006 words
+<     Current cache: 11006 words
+---
+>     Peak demand: 395006 words
+>     Current cache: 605006 words
+289c386
+<         V              Y     AV4       494          10
+---
+>         V              Y     AV4       197          10
+291c388
+<     Free table slots: 497
+---
+>     Free table slots: 495
+294,295c391,392
+<     Peak demand: 988004 words
+<     Current cache: 24004 words
+---
+>     Peak demand: 394004 words
+>     Current cache: 818004 words
+312c409
+<         V              Y     AV4        24           1
+---
+>         V              Y     AV4         9           1
+314c411
+<     Free table slots: 494
+---
+>     Free table slots: 486
+317,318c414,415
+<     Peak demand: 480962 words
+<     Current cache: 802562 words
+---
+>     Peak demand: 180362 words
+>     Current cache: 922202 words
+339c436,438
+<     No split/gather occurred in the last evaluation
+---
+>     Last gather
+>         Variable    Axis   Xform     Chunk    Repeated
+>         V1000          Z                 3           1
+341c440
+<     Free table slots: 498
+---
+>     Free table slots: 495
+344,345c443,444
+<     Peak demand: 4.144 megawords
+<     Current cache: 4.048 megawords
+---
+>     Peak demand: 3.108 megawords
+>     Current cache: 4.096 megawords
+360c459
+<         V1000          Z                 3           1
+---
+>         V1000          Z                 1           1
+362c461
+<     Free table slots: 496
+---
+>     Free table slots: 492
+365,366c464,465
+<     Peak demand: 3.108 megawords
+<     Current cache: 1.096 megawords
+---
+>     Peak demand: 1.084 megawords
+>     Current cache: 3.096 megawords
+381c480
+<         V1000          Y                22           1
+---
+>         V1000          Y                 8           1
+383c482
+<     Free table slots: 496
+---
+>     Free table slots: 492
+386,387c485,486
+<     Peak demand: 959680 words
+<     Current cache: 544320 words
+---
+>     Peak demand: 379520 words
+>     Current cache: 861440 words
+406a506
+>         V1000          Z                 3         100
+408c508
+<     Free table slots: 496
+---
+>     Free table slots: 488
+411,412c511,512
+<     Peak demand: 89440 words
+<     Current cache: 88960 words
+---
+>     Peak demand: 58840 words
+>     Current cache: 89560 words
+434c534
+<         V              T     AVE         1           1
+---
+>         V              Y     AVE        16           1
+436c536
+<     Free table slots: 498
+---
+>     Free table slots: 478
+439,440c539,540
+<     Peak demand: 3 megawords
+<     Current cache: 3 megawords
+---
+>     Peak demand: 1.192 megawords
+>     Current cache: 2.856 megawords
+457c557
+<         A              Y     AVE        47           1
+---
+>         A              Y     AVE         4           1
+459c559
+<     Free table slots: 491
+---
+>     Free table slots: 431
+462,463c562,563
+<     Peak demand: 1.94 megawords
+<     Current cache: 2.884 megawords
+---
+>     Peak demand: 1.08 megawords
+>     Current cache: 2.984 megawords
+476c576
+<         D              Y     AVE        47           1
+---
+>         D              Y     AVE         4           1
+478c578
+<     Free table slots: 489
+---
+>     Free table slots: 442
+481,482c581,582
+<     Peak demand: 2.41 megawords
+<     Current cache: 2.84 megawords
+---
+>     Peak demand: 1.12 megawords
+>     Current cache: 2.992 megawords
+514,517c614,617
+<         A              T     AVE         1           1
+<         B              Y     AVE        71           1
+<         C              Y     AVE        47           1
+<         D              Y     AVE        23           1
+---
+>         A              Y     AVE        33           1
+>         B              Y     AVE        23           1
+>         C              Y     AVE        14           1
+>         D              Y     AVE         4           1
+519c619
+<     Free table slots: 487
+---
+>     Free table slots: 439
+522,523c622,623
+<     Peak demand: 2.845 megawords
+<     Current cache: 2.979 megawords
+---
+>     Peak demand: 2.06 megawords
+>     Current cache: 2.996 megawords
+538,539c638,639
+<         A              Y     AVE        47           1
+<         B              Y     AVE        23           1
+---
+>         A              Y     AVE         4           1
+>         B              Y     AVE         9           1
+541c641
+<     Free table slots: 491
+---
+>     Free table slots: 481
+544,545c644,645
+<     Peak demand: 2.46 megawords
+<     Current cache: 2.794 megawords
+---
+>     Peak demand: 2.18 megawords
+>     Current cache: 2.922 megawords
+551d650
+< ! excercise under the default memory management
+ 
+ 
+! deliberate error
+SET MODE IGNORE
+SET MODE FRUGAL:95
+SET MODE/LAST IGNORE
+ 
+*** Running ferret script: bn_stat_precision.jnl
+! bn_stat_precision.jnl
+! 3/2017 *acm* Ticket 2512
+ 
+! The stat command self-adjusts precision to make the
+! min and max listed distinct
+ 
+let var = {1907.1,1907.05,1907.11}
+stat/br var
+ 
+ Total # of data points: 3 (3*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 1907.05
+ Maximum value: 1907.11
+ Mean    value: 1907.08667 (unweighted average)
+ 
+let var = {1907.001,1907.0005,1907.0011}
+stat/br var
+ 
+ Total # of data points: 3 (3*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 1907.0005
+ Maximum value: 1907.0011
+ Mean    value: 1907.00087 (unweighted average)
+ 
+let var = {221907.001,221907.0005,221907.0011}
+stat/br var
+ 
+ Total # of data points: 3 (3*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 221907.0005
+ Maximum value: 221907.0011
+ Mean    value: 221907.0008666667 (unweighted average)
+ 
+ 
+! STAT/PREC controls the precision, writing more or less digits
+ 
+stat/br/prec=5 var
+ 
+ Total # of data points: 3 (3*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 221907
+ Maximum value: 221907
+ Mean    value: 221907 (unweighted average)
+stat/br/prec=12 var
+ 
+ Total # of data points: 3 (3*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 221907.0005
+ Maximum value: 221907.0011
+ Mean    value: 221907.000867 (unweighted average)
+ 
+! some more examples
+let var = 30*randu(1+i[i=1:10])
+stat/br var
+ 
+ Total # of data points: 10 (10*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 2.7871
+ Maximum value: 27.002
+ Mean    value: 15.77 (unweighted average)
+stat/br/prec=3 var
+ 
+ Total # of data points: 10 (10*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 2.79
+ Maximum value: 27
+ Mean    value: 15.8 (unweighted average)
+stat/br/prec=7 var
+ 
+ Total # of data points: 10 (10*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 2.787087
+ Maximum value: 27.00225
+ Mean    value: 15.76991 (unweighted average)
+stat/br/prec=12 var
+ 
+ Total # of data points: 10 (10*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 2.78708674143
+ Maximum value: 27.002246751
+ Mean    value: 15.76991222 (unweighted average)
+*** Running ferret script: bn_plot_vs_with_time.jnl
+! bn_plot_vs_with_time.jnl
+! See ticket 2246
+! 3/27/2017 *ACM*
+ 
+! PLOT/VS plots automatically draw a formatted time axis
+! when one of the variables has calendar units and time origin
+ 
+! (Currently allow just one axis to be time formatted)
+ 
+can mode logo
+ 
+! Date units syntax days since 1982-01-01 is valid
+ 
+define axis/t=1:500:10/units=days/t0="01-jan-1982" tax
+let/units="days since 1982-01-01" mytime2 = t[gt=tax]
+ 
+let myvar2 = RANDU(mytime2)
+plot/vs/line mytime2, myvar2
+plot/vs/over/sym/color=red mytime2[L=1:50:2], myvar2[L=1:50:2]
+ 
+! time axis on the vertical
+ 
+! Date syntax days since 01-jan-1982 is also valid.
+define axis/t=1:500:10/units=days/t0="01-jan-1982" tax
+let/units="days since 01-jan-1982" mytime2 = t[gt=tax]
+ 
+plot/vs/line myvar2, mytime2
+plot/vs/over/sym/color=red/line  myvar2[L=1:50:2],  mytime2[L=1:50:2]
+ 
+! LAS style plots:
+! Dataset with pressure,temperature on ZT grid. Define a time variable
+! send it to PLOT/VS to draw plots with time-formatted axis, plain
+! 2-variable plots and plot/vs plots.
+! Define variables as if gridded T-Z data in spurs dataset
+ 
+define axis/t="25-JAN-2017:23:00":"02-FEB-2017 10:00":12/units=hours/t0=1-jan-2017 time
+define axis/z=1:50:4/units=m/depth zaxis
+let/title=pressure/units=m pres=z[gz=zaxis] + 0.3*randu(t[gt=time])
+let/title=temperature/units="Deg C" temp = 20 - z[gz=zaxis] + 10*randu(t[gt=time])
+ 
+! Define a time variable
+let/units="`pres,return=tunits` since `pres,return=t0`" ttvar = t[gt=temp] + 0*temp
+ !-> DEFINE VARIABLE/units="HOURS since 1-JAN-2017" ttvar = t[gt=temp] + 0*temp
+ 
+! time on horizontal axis
+set v ul; plot/vs/ribbon/sym=17/thick/vlim=50:0  ttvar, pres, temp
+ 
+! time on vertical axis
+set v ur; plot/vs/ribbon/sym=17/thick/hlim=50:0  pres, ttvar, temp
+ 
+! More time axis styles
+ 
+define axis/t=1-jan-2016:1-jan-2017:45/units=days/t0=1-jan-1970 time
+let/title=pressure/units=m pres=z[gz=zaxis] + 0.3*randu(t[gt=time])
+let/title=temperature/units="Deg C" temp = 20 - z[gz=zaxis] + 10*randu(t[gt=time])
+let/units="`pres,return=tunits` since `pres,return=t0`" ttvar = t[gt=temp] + 0*temp
+ !-> DEFINE VARIABLE/units="DAYS since 1-JAN-1970" ttvar = t[gt=temp] + 0*temp
+ 
+set v ll; plot/vs/ribbon/sym=17/thick/vlim=50:0  ttvar, pres, temp
+ 
+define axis/t=1-jan-2001:1-jan-2012:181/units=days/t0=1-jan-1970 time
+let/title=pressure/units=m pres=z[gz=zaxis] + 0.3*randu(t[gt=time])
+let/title=temperature/units="Deg C" temp = 20 - z[gz=zaxis] + 10*randu(t[gt=time])
+let/units="`pres,return=tunits` since `pres,return=t0`" ttvar = t[gt=temp] + 0*temp
+ !-> DEFINE VARIABLE/units="DAYS since 1-JAN-1970" ttvar = t[gt=temp] + 0*temp
+ 
+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
+ 
+ 
+sh func innerproduct*
+INNERPRODUCT(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
+    VAR1: Variable 1
+    VAR2: Variable 2
+INNERPRODUCT_Y(VAR1,VAR2)
+    Compute the inner product of two variables along Y-axis
+    VAR1: Variable 1
+    VAR2: Variable 2
+INNERPRODUCT_Z(VAR1,VAR2)
+    Compute the inner product of two variables along Z-axis
+    VAR1: Variable 1
+    VAR2: Variable 2
+INNERPRODUCT_T(VAR1,VAR2)
+    Compute the inner product of two variables along T-axis
+    VAR1: Variable 1
+    VAR2: Variable 2
+INNERPRODUCT_E(VAR1,VAR2)
+    Compute the inner product of two variables along E-axis
+    VAR1: Variable 1
+    VAR2: Variable 2
+INNERPRODUCT_F(VAR1,VAR2)
+    Compute the inner product of two variables along F-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
+! 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  innerproduct(var1, var2, 1)
+             VARIABLE : INNERPRODUCT(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)
+          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  innerproduct(var1, var2, 2)
+             VARIABLE : INNERPRODUCT(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  innerproduct(var1, var2, 3)
+             VARIABLE : INNERPRODUCT(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  innerproduct(var1, var2, 4)
+             VARIABLE : INNERPRODUCT(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  innerproduct(var1, var2, 5)
+             VARIABLE : INNERPRODUCT(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  innerproduct(var1, var2, 6)
+             VARIABLE : INNERPRODUCT(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 innerproduct(axy, bxz, 1)
+             VARIABLE : INNERPRODUCT(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 innerproduct(axy, byz, 2)
+             VARIABLE : INNERPRODUCT(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_inner = innerproduct(axyt, byz, 2)
+save/file=a.nc/clobber multi_inner
+ 
+can var multi_inner
+use a.nc
+!  This should be the same as innerproduct(axy, byz, 2)
+list/l=1 multi_inner
+             VARIABLE : INNERPRODUCT(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
+ 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 innerproduct(axz, bzt, 3)
+             VARIABLE : INNERPRODUCT(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 innerproduct(ayt, bzt, 4)
+             VARIABLE : INNERPRODUCT(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_inner = innerproduct(axyt, bzt, 4)
+save/file=a.nc/clobber multi_inner
+ 
+can var multi_inner
+use a.nc
+!  This should be the same as innerproduct(ayt, bzt, 4)
+list/i=1 multi_inner
+             VARIABLE : INNERPRODUCT(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 innerproduct(ayf, bfe, 6)
+             VARIABLE : INNERPRODUCT(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 innerproduct(aze, bfe, 5)
+             VARIABLE : INNERPRODUCT(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_inner = innerproduct(azex, bfe, 5)
+save/file=a.nc/clobber multi_inner
+ 
+can var multi_inner
+use a.nc
+!  This should be the same as innerproduct(azex, bfe, 5)
+list/i=1 multi_inner
+             VARIABLE : INNERPRODUCT(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
+*** Running ferret script: 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)
+ 
+! 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.
+! It is supposed to chose the cached result that has not been used for the
+! longest time, AND that is not being "protected" because it is needed in a
+! pending calculation.  This script is intended to exercise that behavior.
+ 
+! Memory footprint needed:
+! Each dataset contains 7 variables of 1 Mword each
+! VTREE reveals that the "result" variable requires 78 intermediate variables
+! of size 1Mword (plus 7 small ones)
+! Of these only 12 variables needed in the top level "result" sum calculation
+! Each of the top level variables in turn requires ?25? component variables
+! But the top level variables need these components only in sequence.
+! So if no split-gather is performed, Ferret requires ~12+25=37 Mwords
+ 
+DEFINE SYMBOL saved_memory_size = ($FERRET_MEMORY)
+ !-> DEFINE SYMBOL saved_memory_size = 25.6
+ 
+SET MEMORY/SIZE=20
+CANCEL MEMORY/ALL
+ 
+DEFINE SYMBOL nsets = 20
+ 
+define axis/x=1:1000000:1 xmillion
+ 
+! aside: to demonstrate lmitations of ferret memory management prior to
+! dynamic memory, use
+!     yes? set memory/size=37
+!     yes? GO test_auto_cache_delete 0 20
+ 
+! see if the test files already exist
+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 0 THEN
+ELSE
+ say creating test files
+creating test files
+ cancel mode verify
+ENDIF
+ 
+! open the many input datasets
+REPEAT/k=1:($nsets)  USE tmp/test_auto_cache_`k`.nc
+ !-> REPEAT/k=1:20  USE tmp/test_auto_cache_`k`.nc
+!-> REPEAT: K=1
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_1.nc
+!-> REPEAT: K=2
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_2.nc
+!-> REPEAT: K=3
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_3.nc
+!-> REPEAT: K=4
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_4.nc
+!-> REPEAT: K=5
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_5.nc
+!-> REPEAT: K=6
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_6.nc
+!-> REPEAT: K=7
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_7.nc
+!-> REPEAT: K=8
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_8.nc
+!-> REPEAT: K=9
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_9.nc
+!-> REPEAT: K=10
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_10.nc
+!-> REPEAT: K=11
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_11.nc
+!-> REPEAT: K=12
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_12.nc
+!-> REPEAT: K=13
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_13.nc
+!-> REPEAT: K=14
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_14.nc
+!-> REPEAT: K=15
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_15.nc
+!-> REPEAT: K=16
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_16.nc
+!-> REPEAT: K=17
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_17.nc
+!-> REPEAT: K=18
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_18.nc
+!-> REPEAT: K=19
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_19.nc
+!-> REPEAT: K=20
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_20.nc
+ 
+! define a huge tree of variables
+let  r_one      = RESHAPE(one,X[gx=xmillion])
+let  r_ten      = RESHAPE(ten,X[gx=xmillion])
+let  r_hundred  = RESHAPE(hundred,X[gx=xmillion])
+let  r_thousand = RESHAPE(thousand,X[gx=xmillion])
+let  r_tenthou  = RESHAPE(tenthou,X[gx=xmillion])
+let  r_hundthou = RESHAPE(hundthou,X[gx=xmillion])
+let  r_million  = RESHAPE(million,X[gx=xmillion])
+ 
+let a_one     = r_one[X=@ave]
+let a_ten     = r_ten[X=@ave]
+let a_hundred = r_hundred[X=@ave]
+let a_thousand= r_thousand[X=@ave]
+let a_tenthou = r_tenthou[X=@ave]
+let a_hundthou= r_hundthou[X=@ave]
+let a_million = r_million[X=@ave]
+ 
+let one_2      = a_one
+let ten_2      = a_ten
+let hundred_2  = a_hundred
+let thousand_2 = a_thousand
+let tenthou_2  = a_tenthou
+let hundthou_2 = a_hundthou
+let million_2  = a_million
+ 
+let one_3      = a_one
+let ten_3      = a_ten
+let hundred_3  = a_hundred
+let thousand_3 = a_thousand
+let tenthou_3  = a_tenthou
+let hundthou_3 = a_hundthou
+let million_3  = a_million
+ 
+let result_31 = \
+one_3 + ten_3 + hundred_3 + thousand_3 + tenthou_3 + hundthou_3 + million_3
+ 
+let result_21 = \
+one_2 + ten_2 + hundred_2 + thousand_2 + tenthou_2 + hundthou_2 + million_2
+ 
+let result_32 = \
+one_3 + ten_3 + hundred_3 + thousand_3 + tenthou_3 + hundthou_3 + million_3
+ 
+let result_22 = \
+one_2 + ten_2 + hundred_2 + thousand_2 + tenthou_2 + hundthou_2 + million_2
+ 
+let result = result_31 + result_21 + result_32 + result_22 + \
+a_one + a_ten + a_hundred + a_thousand + a_tenthou + a_hundthou + a_million
+ 
+! process all of the datasets in turn
+! ==> WATCH HOW THE NUMBER OF FREE SLOTS IS PROGRESSIVELY EXHAUSTED
+! This proves that we are exercising the limits of table space
+sp rm -f test_auto_cache.out
+REPEAT/k=1:($nsets)  \
+(list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_`k`.nc];\
+SHOW MEMORY/DIAG)
+ !-> REPEAT/k=1:20  (list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_`k`.nc];SHOW MEMORY/DIAG)
+!-> REPEAT: K=1
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_1.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 432
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 14.21004 megawords
+!-> REPEAT: K=2
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_2.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 385
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 7.42008 megawords
+!-> REPEAT: K=3
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_3.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 331
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 7.63012 megawords
+!-> REPEAT: K=4
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_4.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 277
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 7.84016 megawords
+!-> REPEAT: K=5
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_5.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 223
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.0502 megawords
+!-> REPEAT: K=6
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_6.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 169
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.26024 megawords
+!-> REPEAT: K=7
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_7.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 115
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.47028 megawords
+!-> REPEAT: K=8
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_8.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 61
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.68032 megawords
+!-> REPEAT: K=9
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_9.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 7
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.89036 megawords
+!-> REPEAT: K=10
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_10.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=11
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_11.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=12
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_12.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=13
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_13.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=14
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_14.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=15
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_15.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=16
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_16.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=17
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_17.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=18
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_18.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=19
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_19.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=20
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_20.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+ 
+! success
+vtree result
+   in default dataset test_auto_cache_20
+   RESULT = RESULT_31 + RESULT_21 + RESULT_32 + RESULT_22 + A_ONE + A_TEN + A_HUNDRED + A_THOUSAND + A_TENTHOU + A_HUNDTHOU + A_MILLION
+     RESULT_31 = ONE_3 + TEN_3 + HUNDRED_3 + THOUSAND_3 + TENTHOU_3 + HUNDTHOU_3 + MILLION_3
+       ONE_3 = A_ONE
+         A_ONE = R_ONE[X=@AVE]
+           R_ONE = RESHAPE(ONE,X[GX=XMILLION])
+             (C001,V002) = RESHAPE(ONE,X[GX=XMILLION])
+               (C013,V002) = X[GX=XMILLION]
+       TEN_3 = A_TEN
+         A_TEN = R_TEN[X=@AVE]
+           R_TEN = RESHAPE(TEN,X[GX=XMILLION])
+             (C001,V005) = RESHAPE(TEN,X[GX=XMILLION])
+               (C013,V005) = X[GX=XMILLION]
+       HUNDRED_3 = A_HUNDRED
+         A_HUNDRED = R_HUNDRED[X=@AVE]
+           R_HUNDRED = RESHAPE(HUNDRED,X[GX=XMILLION])
+             (C001,V008) = RESHAPE(HUNDRED,X[GX=XMILLION])
+               (C017,V008) = X[GX=XMILLION]
+       THOUSAND_3 = A_THOUSAND
+         A_THOUSAND = R_THOUSAND[X=@AVE]
+           R_THOUSAND = RESHAPE(THOUSAND,X[GX=XMILLION])
+             (C001,V011) = RESHAPE(THOUSAND,X[GX=XMILLION])
+               (C018,V011) = X[GX=XMILLION]
+       TENTHOU_3 = A_TENTHOU
+         A_TENTHOU = R_TENTHOU[X=@AVE]
+           R_TENTHOU = RESHAPE(TENTHOU,X[GX=XMILLION])
+             (C001,V014) = RESHAPE(TENTHOU,X[GX=XMILLION])
+               (C017,V014) = X[GX=XMILLION]
+       HUNDTHOU_3 = A_HUNDTHOU
+         A_HUNDTHOU = R_HUNDTHOU[X=@AVE]
+           R_HUNDTHOU = RESHAPE(HUNDTHOU,X[GX=XMILLION])
+             (C001,V017) = RESHAPE(HUNDTHOU,X[GX=XMILLION])
+               (C018,V017) = X[GX=XMILLION]
+       MILLION_3 = A_MILLION
+         A_MILLION = R_MILLION[X=@AVE]
+           R_MILLION = RESHAPE(MILLION,X[GX=XMILLION])
+             (C001,V020) = RESHAPE(MILLION,X[GX=XMILLION])
+               (C017,V020) = X[GX=XMILLION]
+     RESULT_21 = ONE_2 + TEN_2 + HUNDRED_2 + THOUSAND_2 + TENTHOU_2 + HUNDTHOU_2 + MILLION_2
+       ONE_2 = A_ONE
+         A_ONE =  (defined above)
+       TEN_2 = A_TEN
+         A_TEN =  (defined above)
+       HUNDRED_2 = A_HUNDRED
+         A_HUNDRED =  (defined above)
+       THOUSAND_2 = A_THOUSAND
+         A_THOUSAND =  (defined above)
+       TENTHOU_2 = A_TENTHOU
+         A_TENTHOU =  (defined above)
+       HUNDTHOU_2 = A_HUNDTHOU
+         A_HUNDTHOU =  (defined above)
+       MILLION_2 = A_MILLION
+         A_MILLION =  (defined above)
+     RESULT_32 = ONE_3 + TEN_3 + HUNDRED_3 + THOUSAND_3 + TENTHOU_3 + HUNDTHOU_3 + MILLION_3
+       ONE_3 =  (defined above)
+       TEN_3 =  (defined above)
+       HUNDRED_3 =  (defined above)
+       THOUSAND_3 =  (defined above)
+       TENTHOU_3 =  (defined above)
+       HUNDTHOU_3 =  (defined above)
+       MILLION_3 =  (defined above)
+     RESULT_22 = ONE_2 + TEN_2 + HUNDRED_2 + THOUSAND_2 + TENTHOU_2 + HUNDTHOU_2 + MILLION_2
+       ONE_2 =  (defined above)
+       TEN_2 =  (defined above)
+       HUNDRED_2 =  (defined above)
+       THOUSAND_2 =  (defined above)
+       TENTHOU_2 =  (defined above)
+       HUNDTHOU_2 =  (defined above)
+       MILLION_2 =  (defined above)
+     A_ONE =  (defined above)
+     A_TEN =  (defined above)
+     A_HUNDRED =  (defined above)
+     A_THOUSAND =  (defined above)
+     A_TENTHOU =  (defined above)
+     A_HUNDTHOU =  (defined above)
+     A_MILLION =  (defined above)
+! show that the calculation result never varied
+spawn cat test_auto_cache.out
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+ 
+! clean up
+SET MEMORY/SIZE=($saved_memory_size)
+ !-> SET MEMORY/SIZE=25.6
+*** Running ferret script: bn_transp_choose.jnl
+! 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
+ 
+*** 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
+! frame/file=bnplot.gif....will create three gif files
+! *kob*
+ 
+! NOTE the plots in bnplot_2.gif are different in PyFerret and Ferret,
+! because of different treatment of /TEXT= for viewport definitions.
+ 
+can mode logo
+ 
+! define a 6 viewport window (modified definitions 11/92)
+def view/text=.4/xlim=0,.333/ylim=0,.5    ll6
+def view/text=.2/xlim=0,.333/ylim=.5,1    ul6
+def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6
+def view/text=.6/xlim=.333,.666/ylim=.5,1 um6
+def view/text=1.5/xlim=.666,1/ylim=0,.5   lr6
+def view/xlim=.666,1/ylim=.5,1            ur6     ! auto /TEXT
+show view
+ 
+ name             text    xlimits     ylimits    mode
+ 
+ UPPER            1.00   0.00,1.00   0.50,1.00   edges
+ LOWER            1.00   0.00,1.00   0.00,0.50   edges
+ RIGHT            1.00   0.50,1.00   0.00,1.00   edges
+ LEFT             1.00   0.00,0.50   0.00,1.00   edges
+ LL               0.50   0.00,0.50   0.00,0.50   edges
+ LR               0.50   0.50,1.00   0.00,0.50   edges
+ UL               0.50   0.00,0.50   0.50,1.00   edges
+ UR               0.50   0.50,1.00   0.50,1.00   edges
+ FULL             1.00   0.00,1.00   0.00,1.00   edges
+ LL6              0.40   0.00,0.33   0.00,0.50   edges
+ UL6              0.20   0.00,0.33   0.50,1.00   edges
+ LM6              0.10   0.33,0.67   0.00,0.50   edges
+ UM6              0.60   0.33,0.67   0.50,1.00   edges
+ LR6              1.50   0.67,1.00   0.00,0.50   edges
+ UR6              0.41   0.67,1.00   0.50,1.00   edges
+   current viewport is NONE
+ 
+! some variables for plotting
+let a = 0.8*sin(l/10)
+let b = 0.6*cos(l/10)
+let c = sin(100/(l+k))
+let d = l/50
+let e = k-(l/25)
+let f = -.5+(l/125)
+let g = (l-25)/(k*35)
+let h = 0.1
+let m = 0.2
+ 
+! illegal plot commands
+set mode ignore
+plot/i=1:10/j=1:20/nolabel i+j			! not a line
+plot/i=1:10/j=1:20/nolabel i,i+j		! not a line
+plot/i=1:10/j=1:20/nolabel i+j,i		! not a line
+plot/i=1:10/j=1:20/nolabel j,i			! differing axes
+plot/i=1:10/j=1:20/vs/line/nolabel j,i		! unequal lengths
+contour/i=1:10/j=1:20/nolabel i			! only 1 D
+contour/i=1:10/j=1:20/nolabel i/j,j/i		! multiple fields
+vector/i=1:10/j=1:20/nolabel i/j		! only 1 field
+vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j	! 3 fields
+set mode/last ignore
+ 
+! notice the default window size is 10.2,width x 8.8,height
+ppl list plot
+         WIDTH=   10.20  HEIGHT=    8.80  TKTYPE=    0  BAUD=  110
+         WINDOW= ON   BOX= OFF  CROSS= 0  PLTYPE=  3
+         PLOT MODE=   A
+         PLOT FILE= .gif                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     [...]
+ 
+! enlarge it to accomodate an additional 50% width
+ppl size 15.3,8.8
+ 
+! turn on metafile (enabled 10/29/91)
+! commented out 9/97 - instead set in bn450_all.jnl
+! set mode metafile
+ 
+! draw a plot into a viewport - to be deleted (check hard copy)
+set view ll6
+contour/i=1:50/j=1:50/nolabel i/(j+20)
+ 
+! 4 frames testing PLOT output
+set view ul6
+plot/l=1:50/k=1/trans/nolabel a,b,c
+plot/l=1:50/k=1/trans/over/line=6/nolabel d
+plot/l=1:50/k=1/trans/over/symbol=88/nolabel e
+plot/l=1:50/k=1/trans/over/symbol=47/line/nolabel f
+def view/text=.1/xlim=.333,1/ylim=0,.5 lm6   ! redefine longer in x (11/92)
+set view lm6
+!ppl axlen 16
+set region/k=1
+plot/l=1:50/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
+def view/text=.6/xlim=.333,1/ylim=.5,1 um6    ! redefine it longer in x (11/92)
+set view um6
+!ppl axlen 17,5
+plot/l=1:50/nolabel sin(100/(l+5))
+plot/l=1:50/over/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
+set view ll6
+!ppl axlen 8,6
+plot/l=1:99000/nolabel sin(200000/(l+10000))
+ 
+! reset to normal axis lengths and prepare for a new piccie
+!ppl axlen 8
+frame/file=bnplot_1.gif
+set wind/clear
+ 
+! draw six frames
+set view ll6
+contour/i=1:50/j=1:50/levels=(0,2.5,.25)/nolabel i/(j+20)
+plot/over/nolab/vs/line/i=1:50/j=1:50/nolabel 6*i/j,5*j/i
+set view ul6
+vector/i=1:50/j=1:50/length=50/aspect/nolabel sin(i/20)*10+j-20,-1*cos(j/10)*10+i-20
+def view/text=.1/xlim=.333,.666/ylim=0,.5 lm6  ! redefine it (11/92)
+set view lm6
+shade/i=1:50/j=1:50/nolabel i/(j+20)
+set view lr6
+ppl lev () (0,2.5,.1)
+shade/i=1:50/j=1:50/line/level/nolabel i/(j+20)
+set view ur6
+let icomp = (sin(i/20)*10+j-20)
+let jcomp = (-1*cos(j/10)*10+i-20)
+contour/i=1:50/j=1:50/nolabel icomp^2+jcomp^2
+contour/i=1:50/j=1:50/over/level/nolabel icomp^2+(-1*cos(i/10)*80)^2
+! note: "i-i" and "j-j" are needed to create 2D structures
+vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
+vector/i=1:50/j=1:50/overlay/length/nolabel i-20+(j-j),40-j+(i-i)
+def view/text=.6/xlim=.333,.666/ylim=.5,1 um6    ! redefine it (11/92)
+set view um6
+shade/i=1:50/j=1:50/nolabel i/(j+20)
+contour/i=1:50/j=1:50/over/nolabel (sin(i/20)+j-20)^2+(-1*cos(j/10)+i-20)^2
+vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
+frame/file=bnplot_2.gif
+! additions for version 3.01 "/TITLE=" controls
+cancel viewports
+set view ul6
+plot/title="My Custom Title"/i=1:100/nolabel sin(i/6)
+plot/title="My Custom Key"/i=1:100/over/nolabel sin(i/5)
+set view um6
+plot/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9)
+plot/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
+set view ur6
+plot/vs/line/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9)
+plot/vs/line/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
+set view ll6
+plot/vs/line/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
+plot/vs/line/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
+set view lm6
+contour/i=1:20/j=1:20/title="My Contour Title"/nolabel sin(i/3)*cos(j/4)
+contour/over/i=5:30/j=5:30/title="My Contour Overlay"/nolabel sin(i/2)*cos(j/3)
+set view lr6
+wire/view=0,0,2/i=1:20/j=1:20/title="My Egg Carton"/nolabel sin(i/3)*cos(j/4)
+ 
+! addition for 3.20 showing changed default behavior of plot/vs
+! return to window and redraw with symbols
+set view ll6
+plot/vs/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
+plot/vs/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
+frame/file=bnplot_3.gif
+ 
+! Prior to v5.8 could not get the window size in pixels when in gif mode
+show symbol ppl$xpixel
+PPL$XPIXEL = "1152"
+show symbol ppl$ypixel
+PPL$YPIXEL = "662"
+ 
+! V6.13
+! transparency with FRAME/TRANS
+!!
+! These gif images have the background color white or black
+! replaced by transparent color. This can be tested by putting
+! them into an HTML document with a colored background.
+! e.g. a file called test_transparent.html containing only this line:
+! <html> <body bgcolor="orange"> <img src="testfile.gif"/> </body> </html>
+ 
+can view
+use coads_climatology
+shade/nokey/lev=50 sst[L=1]
+frame/trans/file=testbackground.gif
+ 
+! moved here from bn500_bug_fixes.jnl. The frame/  command it contains
+! has trouble when running the benchmarks from remote desktop
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err491_long_gif_name
+! err491_long_gif_name.jnl
+! *sh* 4/99 - test 175 character gif name
+ 
+! name length extended with changes to save_frame.F and xeq_frame.F
+ 
+set wind/siz=0.03
+go ptest
+! Description: create a simple test line plot
+ 
+! spirograph picture ...
+PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
+ 
+ 
+sp rm -f abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy*
+ 
+frame/file="abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.gif"
+ 
+spawn ls abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy*
+abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.gif
+ 
+ 
+! The fix for bug 1396
+set v ul; plot/dash x[gx=0:20:.5]
+set v ur; plot/dash x[gx=0:20:.1]
+set v ll; plot/dash x[gx=0:20:.05]
+set v lr; plot/dash x[gx=0:20:.01]
+frame/file=gif_dashbug.gif
+ 
+! Restore size
+set win/siz=1/asp=1
+ 
+! New benchmark gif outputs in v6.97
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO bn_hovmuller_overlays
+! bn_hovmuller_overlays.jnl
+! Previously a time series plot overlaid oon a Hovmuller plot did not
+! work unless the time axis of the original data had units of hours.
+! See ticket 2344
+ 
+! 1/6/2016 ACM
+! acm* 3/17 check the URL with TEST_OPENDAP befor trying to open it.
+ 
+! run this in the gif benchmarks.
+ 
+ 
+def view/xlim=0,.333/ylim=.5,1    ul6
+def view/xlim=.333,.666/ylim=.5,1 um6
+def view/xlim=.666,1/ylim=.5,1    ur6
+def view/xlim=0,.333/ylim=0,.5    ll6
+def view/xlim=.333,1/ylim=0,.5    lr6
+ 
+! The example from the FAQ, "Overlaying a time series on a 2D plot"
+set view ul6
+ 
+! Define a 2D field in YT with a time axis in units of DAYS
+DEFINE AXIS/T="1-JAN-1980":"1-JAN-1990":5/UNITS=DAYS tdays
+DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
+ 
+LET/TITLE=XY my_var = 10*cos(T[gt=tdays]/2000)*EXP((-1)*y[gy=yax]/20)
+ 
+! make a Hovmoller plot
+ 
+SHADE my_var
+ 
+! This did not work previously.  Needed to re-define the axis in units of hours
+PLOT/OVER my_var[Y=@loc:-4]
+ 
+ 
+! XT variable
+set view um6
+ 
+DEFINE AXIS/X=0:40E:1/UNITS=DEGREES xax
+LET/TITLE="XT" my_var = 10*cos(T[gt=tdays]/20)*EXP((-1)*x[gx=xax]/20)
+SHADE/t=1-jan-1987:1-jan-1989 my_var
+PLOT/OVER/TRANS/THICK my_var[x=@loc:-4]
+ 
+ 
+! Irregular time axis
+set view ur6
+ 
+DEFINE AXIS/T0=1-jan-2001/UNITS=DAYS tdays = {1,2,4,5,6,8,9,10,12,30,35,41,42,44,45,46,48,49,50,58}
+DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
+LET my_var = 10*cos(T[gt=tdays])*EXP((-1)*y[gy=yax]/8)
+ 
+FILL/title="irregular t" my_var
+PLOT/OVER/thick/y=8 my_var+10
+ 
+ 
+! Like the dataset example from the FAQ
+set view ll6
+ 
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+ !-> IF 1 THEN
+   use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
+   set region/x=40w/y=10n:60n/t=15-jan-1982:15-dec-1983
+   shade sst
+   plot/over/thick/TITLE="at 20"  sst[y=@LOC:20]
+ENDIF
+ 
+can data/all
+can region
+ 
+! vector plots with a time series
+set view lr6
+ 
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf") EQ 0 AND\
+ test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf") EQ 0` THEN
+ !-> IF 1 THEN
+   use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf"
+   use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_vwnd.cdf"
+   vec/x=0/y=-10:10/t=1-jan-1980:1-jan-1990 uwnd[d=1], vwnd[d=2]
+   let wspd = (uwnd[d=1]*uwnd[d=1] + vwnd[d=2]*vwnd[d=2])^0.5
+   plot/over/color=red/thick/x=0/t=1-jan-1980:1-jan-1990 wspd[y=-10:10 at ave]
+   FRAME/FILE=bn_hovmuller_overlays.gif
+ENDIF
+ 
+Go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO bn_labels_on_taxis
+! bn_labels_on_taxis.jnl
+! tests of labels and overlays on time axes
+ 
+ 
+set v ul
+DEFINE AXIS/T=1-JAN-1980:31-JAN-1985:30/T0=1-jan-1980/UNIT=days tax
+LET tt = t[gt=tax]
+LET tvar = cos(tt/200)
+plot tvar
  
 LET xsqr = {-1,1,1,-1}                ! coordinates of a unit square
 LET ysqr = {-1,-1,1,1}
@@ -94097,6 +102356,7 @@ FRAME/FILE=bn_labels_on_taxis.gif
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_contour_conset
 ! err696_contour_conset.jnl
 ! Ticket 2351. The PPL CONSET command had stopped working to set
@@ -94157,6 +102417,7 @@ frame/file=bn_contour_conset.gif
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_subspan_mod_strides
 ! err696_subspan_mod_strides
 ! See ticket 513. Axis is subspan modulo, and strides
@@ -94288,10 +102549,11 @@ exit/command
 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
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_ef_external_functions.jnl
 ! Tests of external functions that are distributed as shared object files.
  
@@ -94426,21 +102688,21 @@ list a - sst[l=@ave]
              TIME     : 01-JAN 00:45 to 01-APR 08:12
                   1S      
                   45
- 151E   / 66:  0.000E+00
- 153E   / 67: -3.553E-15
- 155E   / 68:  0.000E+00
+ 151E   / 66: -3.553E-15
+ 153E   / 67:  0.000E+00
+ 155E   / 68: -3.553E-15
  157E   / 69:  0.000E+00
- 159E   / 70:  3.553E-15
- 161E   / 71:  7.105E-15
- 163E   / 72:  3.553E-15
- 165E   / 73:  0.000E+00
- 167E   / 74:  0.000E+00
- 169E   / 75:  3.553E-15
+ 159E   / 70: -3.553E-15
+ 161E   / 71:  0.000E+00
+ 163E   / 72: -3.553E-15
+ 165E   / 73: -3.553E-15
+ 167E   / 74: -3.553E-15
+ 169E   / 75: -3.553E-15
  171E   / 76:  0.000E+00
- 173E   / 77:  3.553E-15
- 175E   / 78:  0.000E+00
- 177E   / 79:  3.553E-15
- 179E   / 80:  3.553E-15
+ 173E   / 77: -3.553E-15
+ 175E   / 78:  3.553E-15
+ 177E   / 79:  0.000E+00
+ 179E   / 80:  0.000E+00
  
 can region
 let a = x[i=1:9,k=1:5] + t[l=1:5]
@@ -95064,48 +103326,11 @@ set mode/last ignore_errors
 !
 !!!!!!!!!!!!!!!!!!!!!!
  
-! Ansley's benchmarks
-! move bench tests that test internal external functions to their
-! own .jnl file  bn_internal_external_functions
-!
-! 4/2006 all efs distributed with Ferret except writev5d and the
-!        examples tested in bench_examples.jnl are now internally linked.
- 
-GO bn_reset
-cancel mode verify
-go bench_v5d
-! benchmark for Vis5D external function
-! 5/99 ACM
- 
- 
-!  Write data to a Vis5D file.  The first argument to the
-!  GO script is the file, arguments 2 through 9 are variable names to be written.
-! 7/2007 Funtion doesnt want to write a variable that doesnt have a vertical variation.
-!        To get a basic test of the function, make some data on a regularly-spaced xy grid.
- 
-can region
- set mode ignore_error
- 
-use gt4d011.cdf
-def axis/y=1:100:1/units=degrees yax
-let tr = temp[gy=yax at asn]
-go vis5d_write " " tr
-To view the file with Vis5D say:   GO vis5d_start vis5d_out.v5d
- 
-set mode/last ignore_error
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_ef_v5d_strings.jnl
-! bn_ef_v5d_strings.jnl
-! Taken out of bn_strings, because it calls so file writev5d.
-! testing string argument to external function.
-! 5/4/05 acm
-exit/script ! I dont have writev5d on this machine.
+! 12/16 No other external functions are distributed. Remove further references.
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_fcn_calls.jnl
 ! Simple tests of external functions
 ! these are not otherwise tested in the benchmarkd
@@ -95117,24 +103342,28 @@ exit
  
 exit/command
 *** Running ferret script: bn_startupfile.jnl
- Current size of FERRET memory cache: 31 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 31 megawords
+    Peak demand: 0 words
+    Current cache: 0 words
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7"
-FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64 64-bit"
+FERRET_VERSION = "7.1"
+FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64 64-bit"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "31"
-SESSION_DATE = "17-Jun-16"
-SESSION_TIME = "15:04"
-SESSION_PID = "9938"
-DELTA_CPU = "0.011997"
-CLOCK_SECS = "0.011"
-CURRENT_DATE = "17-Jun-16"
-CURRENT_TIME = "15:04:48"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "Ferret"
+PEAK_MEMORY = "0"
+SPAWN_STATUS = "1"
 GO_FILE = "./bn_startupfile.jnl"
 LAST_GO_FILE = "./bn_startupfile.jnl"
 PPL$FORMAT = "(3F10.2)"
@@ -95165,27 +103394,27 @@ VP_XHI = "1"
 VP_YLO = "0"
 VP_YHI = "1"
       MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
-      VERIFY        CANCELLED      DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
+      DIAGNOSTIC    CANCELED            99
+      VERIFY        CANCELED       DEFAULT
+      INTERPOLATE   CANCELED
+      IGNORE_ERROR  CANCELED
+      STUPID        CANCELED
       JOURNAL          SET         startup_tests.jnl
       LONG_LABEL       SET               1
-      LATIT_LABEL   CANCELLED            1
+      LATIT_LABEL   CANCELED             1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
       F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      3100000
+      WAIT          CANCELED
+      DESPERATE     CANCELED       2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      .gif
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
+      METAFILE      CANCELED       .gif
+      PPLLIST       CANCELED       ppllist.out
+      GUI           CANCELED
       LOGO             SET
       LABELS           SET
       GRATICULE        SET
@@ -95193,20 +103422,2085 @@ VP_YHI = "1"
       UPCASE_OUTPU     SET
       NLEVELS          SET             100
       NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      LAYERZ        CANCELLED
+      SHRINK_YLAB   CANCELED
+      CURVILINEAR   CANCELED
+      LAYERZ        CANCELED
       6D_LAB           SET
+      FRUGAL           SET              30
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
- 
-Ended at Fri Jun 17 15:04:48 PDT 2016
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
+ 
+*** Running ferret script: err700_decimate.jnl
+! err700_decimate.jnl
+! test decimation of SOCAT full-data DSG files
+!
+ 
+! Make sure the decimated file does not exist
+sp rm -f 492C19881104_dec.nc
+! Run the socat decimation script on a full-data DSG file
+go ddsg_socat3 492C19881104.nc 492C19881104_dec.nc
+! ddsg_socat3.jnl
+! ACM 5/16/2014
+ 
+! Compute and apply sampling for a single-trajectory dsg file
+! using piecewise linear interpolation
+ 
+! Uses the external function piecewise3.so
+! This script contains a list of the variables in the input
+! files. This allows us to create the decimated dsg file
+! with the exact same names as in the input files.
+!
+! WOCE flags are not used in the decimated datasets, as they may change in the
+! full data. Keep them in the file for a consistent set of variables, but mark
+! them with the unused flag "M".
+ 
+! arguments:
+!  input_file single dsg file
+!  output_file to write
+!
+ 
+DEFINE SYMBOL infile = ($1)
+ !-> DEFINE SYMBOL infile = 492C19881104.nc
+DEFINE SYMBOL outfile = ($2)
+ !-> DEFINE SYMBOL outfile = 492C19881104_dec.nc
+ 
+! Set the tolerances and control parameter
+ 
+DEFINE SYMBOL tol_lon = 1
+DEFINE SYMBOL tol_lat = 1
+DEFINE SYMBOL tol_var = 4
+ 
+LET tol1 = ($tol_lon)
+ !-> DEFINE VARIABLE tol1 = 1
+LET tol2 = ($tol_lat)
+ !-> DEFINE VARIABLE tol2 = 1
+let tol3 = ($tol_var)
+ !-> DEFINE VARIABLE tol3 = 4
+ 
+LET control = 2
+ 
+USE "($infile)"
+ !-> SET DAT/FORM=CDF "492C19881104.nc"
+ 
+! The names in the input and output file must match.
+! To accomplish that we will rename the variables in the input file.
+! varnames_list is a stable list of the original names. Check that it
+! matches what's in the file, and rename the file variables.
+ 
+LET varnames =  ..varnames
+LET nvars =  ..nvars
+ 
+! Will also add nobs_deci.
+ 
+LET varnames_traj = {\
+"num_obs","expocode","dataset_name","vessel_name","organization",\
+"geospatial_lon_min","geospatial_lon_max","geospatial_lat_min",\
+"geospatial_lat_max","time_coverage_start","time_converage_end",\
+"investigators","socat_version","all_region_ids","socat_doi",\
+"qc_flag","nobs_full"}
+ 
+! The text is too long for one Ferret command. Define two variables and concatenate them.
+ 
+LET varnames_list1 = {\
+"sample_number","year","month","day","hour","minute","second",\
+"longitude","latitude","sample_depth","sal","Temperature_equi",\
+"temp","Temperature_atm","Pressure_equi","Pressure_atm",\
+"xCO2_water_equi_temp_dry_ppm","xCO2_water_sst_dry_ppm",\
+"xCO2_water_equi_temp_wet_ppm","xCO2_water_sst_wet_ppm",\
+"pCO2_water_equi_temp","pCO2_water_sst_100humidity_uatm",\
+"fCO2_water_equi_uatm","fCO2_water_sst_100humidity_uatm",\
+"xCO2_atm_dry_actual","xCO2_atm_dry_interp",\
+"pCO2_atm_wet_actual","pCO2_atm_wet_interp",\
+"fCO2_atm_wet_actual","fCO2_atm_wet_interp",\
+"delta_xCO2","delta_pCO2","delta_fCO2",\
+"xH2O_equi","relative_humidity","specific_humidity",\
+"ship_speed","ship_dir","wind_speed_true","wind_speed_rel",\
+"wind_dir_true","wind_dir_rel","WOCE_CO2_water","WOCE_CO2_atm"\
+}
+LET varnames_list2 = {\
+"woa_sss","pressure_ncep_slp",\
+"fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm",\
+"fCO2_insitu_from_xCO2_water_sst_dry_ppm",\
+"fCO2_from_pCO2_water_water_equi_temp",\
+"fCO2_from_pCO2_water_sst_100humidity_uatm",\
+"fCO2_insitu_from_fCO2_water_equi_uatm",\
+"fCO2_insitu_from_fCO2_water_sst_100humidty_uatm",\
+"fCO2_from_pCO2_water_water_equi_temp_ncep",\
+"fCO2_from_pCO2_water_sst_100humidity_uatm_ncep",\
+"fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa",\
+"fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa",\
+"fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep",\
+"fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep",\
+"fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa",\
+"fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa",\
+"fCO2_recommended","fCO2_source","delta_temp","region_id",\
+"calc_speed","etopo2","gvCO2","dist_to_land",\
+"day_of_year","time","lon360","tmonth"\
+}
+ 
+LET varnames_list = XCAT(varnames_list1, varnames_list2)
+ 
+LET ntraj = `varnames_traj,return=isize`
+ !-> DEFINE VARIABLE ntraj = 17
+LET nlist = `varnames_list,return=isize`
+ !-> DEFINE VARIABLE nlist = 72
+ 
+!IF `nvars NE (ntraj+nlist)` THEN
+!   say **ERROR List of variables in the script does not match list in the dataset
+!   say **ERROR "($infile)" has `nvars` variables, script list has `nlist`
+!   exit/script
+!ENDIF
+ 
+! Check that the variable names in the lists are in the file.
+! If so rename the variables in the input file to varname_in
+ 
+ 
+SET VAR/NAME=nobs_deci_in nobs_deci
+ 
+LET vdiff = 0
+REPEAT/range=1:`ntraj`/name=v (DEFINE SYMBOL  vv = `v`;\
+ DEFINE SYMBOL vname = `varnames_traj[i=($vv)]`;\
+ IF `IS_ELEMENT_OF_STR_N(varnames, "($vname)") EQ 0` THEN LET vdiff = `v`;\
+ IF `vdiff GT 0` THEN EXIT/LOOP;\
+ SET VAR/NAME=($vname)_in ($vname))
+ !-> REPEAT/range=1:17/name=v (DEFINE SYMBOL  vv = `v`; DEFINE SYMBOL vname = `varnames_traj[i=($vv)]`; IF `IS_ELEMENT_OF_STR_N(varnames, "($vname)") EQ 0` THEN LET vdiff = `v`; IF `vdiff GT 0` THEN EXIT/LOOP; SET VAR/NAME=($vname)_in ($vname))
+!-> REPEAT: V:1
+ !-> DEFINE SYMBOL  vv = 1
+ !-> DEFINE SYMBOL vname = num_obs
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=num_obs_in num_obs
+!-> REPEAT: V:2
+ !-> DEFINE SYMBOL  vv = 2
+ !-> DEFINE SYMBOL vname = expocode
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=expocode_in expocode
+!-> REPEAT: V:3
+ !-> DEFINE SYMBOL  vv = 3
+ !-> DEFINE SYMBOL vname = dataset_name
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=dataset_name_in dataset_name
+!-> REPEAT: V:4
+ !-> DEFINE SYMBOL  vv = 4
+ !-> DEFINE SYMBOL vname = vessel_name
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=vessel_name_in vessel_name
+!-> REPEAT: V:5
+ !-> DEFINE SYMBOL  vv = 5
+ !-> DEFINE SYMBOL vname = organization
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=organization_in organization
+!-> REPEAT: V:6
+ !-> DEFINE SYMBOL  vv = 6
+ !-> DEFINE SYMBOL vname = geospatial_lon_min
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=geospatial_lon_min_in geospatial_lon_min
+!-> REPEAT: V:7
+ !-> DEFINE SYMBOL  vv = 7
+ !-> DEFINE SYMBOL vname = geospatial_lon_max
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=geospatial_lon_max_in geospatial_lon_max
+!-> REPEAT: V:8
+ !-> DEFINE SYMBOL  vv = 8
+ !-> DEFINE SYMBOL vname = geospatial_lat_min
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=geospatial_lat_min_in geospatial_lat_min
+!-> REPEAT: V:9
+ !-> DEFINE SYMBOL  vv = 9
+ !-> DEFINE SYMBOL vname = geospatial_lat_max
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=geospatial_lat_max_in geospatial_lat_max
+!-> REPEAT: V:10
+ !-> DEFINE SYMBOL  vv = 10
+ !-> DEFINE SYMBOL vname = time_coverage_start
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=time_coverage_start_in time_coverage_start
+!-> REPEAT: V:11
+ !-> DEFINE SYMBOL  vv = 11
+ !-> DEFINE SYMBOL vname = time_converage_end
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=time_converage_end_in time_converage_end
+!-> REPEAT: V:12
+ !-> DEFINE SYMBOL  vv = 12
+ !-> DEFINE SYMBOL vname = investigators
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=investigators_in investigators
+!-> REPEAT: V:13
+ !-> DEFINE SYMBOL  vv = 13
+ !-> DEFINE SYMBOL vname = socat_version
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=socat_version_in socat_version
+!-> REPEAT: V:14
+ !-> DEFINE SYMBOL  vv = 14
+ !-> DEFINE SYMBOL vname = all_region_ids
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=all_region_ids_in all_region_ids
+!-> REPEAT: V:15
+ !-> DEFINE SYMBOL  vv = 15
+ !-> DEFINE SYMBOL vname = socat_doi
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=socat_doi_in socat_doi
+!-> REPEAT: V:16
+ !-> DEFINE SYMBOL  vv = 16
+ !-> DEFINE SYMBOL vname = qc_flag
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=qc_flag_in qc_flag
+!-> REPEAT: V:17
+ !-> DEFINE SYMBOL  vv = 17
+ !-> DEFINE SYMBOL vname = nobs_full
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=nobs_full_in nobs_full
+ 
+LET vdiff = 0
+REPEAT/range=1:`nlist`/name=v (DEFINE SYMBOL  vv = `v`;\
+ DEFINE SYMBOL vname = `varnames_list[i=($vv)]`;\
+ IF `IS_ELEMENT_OF_STR_N(varnames, "($vname)") EQ 0` THEN LET vdiff = `v`;\
+ IF `vdiff GT 0` THEN EXIT/LOOP;\
+ SET VAR/NAME=($vname)_in ($vname))
+ !-> REPEAT/range=1:72/name=v (DEFINE SYMBOL  vv = `v`; DEFINE SYMBOL vname = `varnames_list[i=($vv)]`; IF `IS_ELEMENT_OF_STR_N(varnames, "($vname)") EQ 0` THEN LET vdiff = `v`; IF `vdiff GT 0` THEN EXIT/LOOP; SET VAR/NAME=($vname)_in ($vname))
+!-> REPEAT: V:1
+ !-> DEFINE SYMBOL  vv = 1
+ !-> DEFINE SYMBOL vname = sample_number
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=sample_number_in sample_number
+!-> REPEAT: V:2
+ !-> DEFINE SYMBOL  vv = 2
+ !-> DEFINE SYMBOL vname = year
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=year_in year
+!-> REPEAT: V:3
+ !-> DEFINE SYMBOL  vv = 3
+ !-> DEFINE SYMBOL vname = month
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=month_in month
+!-> REPEAT: V:4
+ !-> DEFINE SYMBOL  vv = 4
+ !-> DEFINE SYMBOL vname = day
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=day_in day
+!-> REPEAT: V:5
+ !-> DEFINE SYMBOL  vv = 5
+ !-> DEFINE SYMBOL vname = hour
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=hour_in hour
+!-> REPEAT: V:6
+ !-> DEFINE SYMBOL  vv = 6
+ !-> DEFINE SYMBOL vname = minute
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=minute_in minute
+!-> REPEAT: V:7
+ !-> DEFINE SYMBOL  vv = 7
+ !-> DEFINE SYMBOL vname = second
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=second_in second
+!-> REPEAT: V:8
+ !-> DEFINE SYMBOL  vv = 8
+ !-> DEFINE SYMBOL vname = longitude
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=longitude_in longitude
+!-> REPEAT: V:9
+ !-> DEFINE SYMBOL  vv = 9
+ !-> DEFINE SYMBOL vname = latitude
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=latitude_in latitude
+!-> REPEAT: V:10
+ !-> DEFINE SYMBOL  vv = 10
+ !-> DEFINE SYMBOL vname = sample_depth
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=sample_depth_in sample_depth
+!-> REPEAT: V:11
+ !-> DEFINE SYMBOL  vv = 11
+ !-> DEFINE SYMBOL vname = sal
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=sal_in sal
+!-> REPEAT: V:12
+ !-> DEFINE SYMBOL  vv = 12
+ !-> DEFINE SYMBOL vname = Temperature_equi
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=Temperature_equi_in Temperature_equi
+!-> REPEAT: V:13
+ !-> DEFINE SYMBOL  vv = 13
+ !-> DEFINE SYMBOL vname = temp
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=temp_in temp
+!-> REPEAT: V:14
+ !-> DEFINE SYMBOL  vv = 14
+ !-> DEFINE SYMBOL vname = Temperature_atm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=Temperature_atm_in Temperature_atm
+!-> REPEAT: V:15
+ !-> DEFINE SYMBOL  vv = 15
+ !-> DEFINE SYMBOL vname = Pressure_equi
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=Pressure_equi_in Pressure_equi
+!-> REPEAT: V:16
+ !-> DEFINE SYMBOL  vv = 16
+ !-> DEFINE SYMBOL vname = Pressure_atm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=Pressure_atm_in Pressure_atm
+!-> REPEAT: V:17
+ !-> DEFINE SYMBOL  vv = 17
+ !-> DEFINE SYMBOL vname = xCO2_water_equi_temp_dry_ppm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=xCO2_water_equi_temp_dry_ppm_in xCO2_water_equi_temp_dry_ppm
+!-> REPEAT: V:18
+ !-> DEFINE SYMBOL  vv = 18
+ !-> DEFINE SYMBOL vname = xCO2_water_sst_dry_ppm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=xCO2_water_sst_dry_ppm_in xCO2_water_sst_dry_ppm
+!-> REPEAT: V:19
+ !-> DEFINE SYMBOL  vv = 19
+ !-> DEFINE SYMBOL vname = xCO2_water_equi_temp_wet_ppm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=xCO2_water_equi_temp_wet_ppm_in xCO2_water_equi_temp_wet_ppm
+!-> REPEAT: V:20
+ !-> DEFINE SYMBOL  vv = 20
+ !-> DEFINE SYMBOL vname = xCO2_water_sst_wet_ppm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=xCO2_water_sst_wet_ppm_in xCO2_water_sst_wet_ppm
+!-> REPEAT: V:21
+ !-> DEFINE SYMBOL  vv = 21
+ !-> DEFINE SYMBOL vname = pCO2_water_equi_temp
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=pCO2_water_equi_temp_in pCO2_water_equi_temp
+!-> REPEAT: V:22
+ !-> DEFINE SYMBOL  vv = 22
+ !-> DEFINE SYMBOL vname = pCO2_water_sst_100humidity_uatm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=pCO2_water_sst_100humidity_uatm_in pCO2_water_sst_100humidity_uatm
+!-> REPEAT: V:23
+ !-> DEFINE SYMBOL  vv = 23
+ !-> DEFINE SYMBOL vname = fCO2_water_equi_uatm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_water_equi_uatm_in fCO2_water_equi_uatm
+!-> REPEAT: V:24
+ !-> DEFINE SYMBOL  vv = 24
+ !-> DEFINE SYMBOL vname = fCO2_water_sst_100humidity_uatm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_water_sst_100humidity_uatm_in fCO2_water_sst_100humidity_uatm
+!-> REPEAT: V:25
+ !-> DEFINE SYMBOL  vv = 25
+ !-> DEFINE SYMBOL vname = xCO2_atm_dry_actual
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=xCO2_atm_dry_actual_in xCO2_atm_dry_actual
+!-> REPEAT: V:26
+ !-> DEFINE SYMBOL  vv = 26
+ !-> DEFINE SYMBOL vname = xCO2_atm_dry_interp
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=xCO2_atm_dry_interp_in xCO2_atm_dry_interp
+!-> REPEAT: V:27
+ !-> DEFINE SYMBOL  vv = 27
+ !-> DEFINE SYMBOL vname = pCO2_atm_wet_actual
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=pCO2_atm_wet_actual_in pCO2_atm_wet_actual
+!-> REPEAT: V:28
+ !-> DEFINE SYMBOL  vv = 28
+ !-> DEFINE SYMBOL vname = pCO2_atm_wet_interp
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=pCO2_atm_wet_interp_in pCO2_atm_wet_interp
+!-> REPEAT: V:29
+ !-> DEFINE SYMBOL  vv = 29
+ !-> DEFINE SYMBOL vname = fCO2_atm_wet_actual
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_atm_wet_actual_in fCO2_atm_wet_actual
+!-> REPEAT: V:30
+ !-> DEFINE SYMBOL  vv = 30
+ !-> DEFINE SYMBOL vname = fCO2_atm_wet_interp
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_atm_wet_interp_in fCO2_atm_wet_interp
+!-> REPEAT: V:31
+ !-> DEFINE SYMBOL  vv = 31
+ !-> DEFINE SYMBOL vname = delta_xCO2
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=delta_xCO2_in delta_xCO2
+!-> REPEAT: V:32
+ !-> DEFINE SYMBOL  vv = 32
+ !-> DEFINE SYMBOL vname = delta_pCO2
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=delta_pCO2_in delta_pCO2
+!-> REPEAT: V:33
+ !-> DEFINE SYMBOL  vv = 33
+ !-> DEFINE SYMBOL vname = delta_fCO2
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=delta_fCO2_in delta_fCO2
+!-> REPEAT: V:34
+ !-> DEFINE SYMBOL  vv = 34
+ !-> DEFINE SYMBOL vname = xH2O_equi
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=xH2O_equi_in xH2O_equi
+!-> REPEAT: V:35
+ !-> DEFINE SYMBOL  vv = 35
+ !-> DEFINE SYMBOL vname = relative_humidity
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=relative_humidity_in relative_humidity
+!-> REPEAT: V:36
+ !-> DEFINE SYMBOL  vv = 36
+ !-> DEFINE SYMBOL vname = specific_humidity
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=specific_humidity_in specific_humidity
+!-> REPEAT: V:37
+ !-> DEFINE SYMBOL  vv = 37
+ !-> DEFINE SYMBOL vname = ship_speed
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=ship_speed_in ship_speed
+!-> REPEAT: V:38
+ !-> DEFINE SYMBOL  vv = 38
+ !-> DEFINE SYMBOL vname = ship_dir
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=ship_dir_in ship_dir
+!-> REPEAT: V:39
+ !-> DEFINE SYMBOL  vv = 39
+ !-> DEFINE SYMBOL vname = wind_speed_true
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=wind_speed_true_in wind_speed_true
+!-> REPEAT: V:40
+ !-> DEFINE SYMBOL  vv = 40
+ !-> DEFINE SYMBOL vname = wind_speed_rel
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=wind_speed_rel_in wind_speed_rel
+!-> REPEAT: V:41
+ !-> DEFINE SYMBOL  vv = 41
+ !-> DEFINE SYMBOL vname = wind_dir_true
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=wind_dir_true_in wind_dir_true
+!-> REPEAT: V:42
+ !-> DEFINE SYMBOL  vv = 42
+ !-> DEFINE SYMBOL vname = wind_dir_rel
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=wind_dir_rel_in wind_dir_rel
+!-> REPEAT: V:43
+ !-> DEFINE SYMBOL  vv = 43
+ !-> DEFINE SYMBOL vname = WOCE_CO2_water
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=WOCE_CO2_water_in WOCE_CO2_water
+!-> REPEAT: V:44
+ !-> DEFINE SYMBOL  vv = 44
+ !-> DEFINE SYMBOL vname = WOCE_CO2_atm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=WOCE_CO2_atm_in WOCE_CO2_atm
+!-> REPEAT: V:45
+ !-> DEFINE SYMBOL  vv = 45
+ !-> DEFINE SYMBOL vname = woa_sss
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=woa_sss_in woa_sss
+!-> REPEAT: V:46
+ !-> DEFINE SYMBOL  vv = 46
+ !-> DEFINE SYMBOL vname = pressure_ncep_slp
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=pressure_ncep_slp_in pressure_ncep_slp
+!-> REPEAT: V:47
+ !-> DEFINE SYMBOL  vv = 47
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_in fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm
+!-> REPEAT: V:48
+ !-> DEFINE SYMBOL  vv = 48
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_insitu_from_xCO2_water_sst_dry_ppm_in fCO2_insitu_from_xCO2_water_sst_dry_ppm
+!-> REPEAT: V:49
+ !-> DEFINE SYMBOL  vv = 49
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_water_equi_temp
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_from_pCO2_water_water_equi_temp_in fCO2_from_pCO2_water_water_equi_temp
+!-> REPEAT: V:50
+ !-> DEFINE SYMBOL  vv = 50
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_sst_100humidity_uatm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_from_pCO2_water_sst_100humidity_uatm_in fCO2_from_pCO2_water_sst_100humidity_uatm
+!-> REPEAT: V:51
+ !-> DEFINE SYMBOL  vv = 51
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_fCO2_water_equi_uatm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_insitu_from_fCO2_water_equi_uatm_in fCO2_insitu_from_fCO2_water_equi_uatm
+!-> REPEAT: V:52
+ !-> DEFINE SYMBOL  vv = 52
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_fCO2_water_sst_100humidty_uatm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_insitu_from_fCO2_water_sst_100humidty_uatm_in fCO2_insitu_from_fCO2_water_sst_100humidty_uatm
+!-> REPEAT: V:53
+ !-> DEFINE SYMBOL  vv = 53
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_water_equi_temp_ncep
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_from_pCO2_water_water_equi_temp_ncep_in fCO2_from_pCO2_water_water_equi_temp_ncep
+!-> REPEAT: V:54
+ !-> DEFINE SYMBOL  vv = 54
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_sst_100humidity_uatm_ncep
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_from_pCO2_water_sst_100humidity_uatm_ncep_in fCO2_from_pCO2_water_sst_100humidity_uatm_ncep
+!-> REPEAT: V:55
+ !-> DEFINE SYMBOL  vv = 55
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa_in fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa
+!-> REPEAT: V:56
+ !-> DEFINE SYMBOL  vv = 56
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa_in fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa
+!-> REPEAT: V:57
+ !-> DEFINE SYMBOL  vv = 57
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_in fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep
+!-> REPEAT: V:58
+ !-> DEFINE SYMBOL  vv = 58
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_in fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep
+!-> REPEAT: V:59
+ !-> DEFINE SYMBOL  vv = 59
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa_in fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa
+!-> REPEAT: V:60
+ !-> DEFINE SYMBOL  vv = 60
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa_in fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa
+!-> REPEAT: V:61
+ !-> DEFINE SYMBOL  vv = 61
+ !-> DEFINE SYMBOL vname = fCO2_recommended
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_recommended_in fCO2_recommended
+!-> REPEAT: V:62
+ !-> DEFINE SYMBOL  vv = 62
+ !-> DEFINE SYMBOL vname = fCO2_source
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_source_in fCO2_source
+!-> REPEAT: V:63
+ !-> DEFINE SYMBOL  vv = 63
+ !-> DEFINE SYMBOL vname = delta_temp
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=delta_temp_in delta_temp
+!-> REPEAT: V:64
+ !-> DEFINE SYMBOL  vv = 64
+ !-> DEFINE SYMBOL vname = region_id
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=region_id_in region_id
+!-> REPEAT: V:65
+ !-> DEFINE SYMBOL  vv = 65
+ !-> DEFINE SYMBOL vname = calc_speed
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=calc_speed_in calc_speed
+!-> REPEAT: V:66
+ !-> DEFINE SYMBOL  vv = 66
+ !-> DEFINE SYMBOL vname = etopo2
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=etopo2_in etopo2
+!-> REPEAT: V:67
+ !-> DEFINE SYMBOL  vv = 67
+ !-> DEFINE SYMBOL vname = gvCO2
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=gvCO2_in gvCO2
+!-> REPEAT: V:68
+ !-> DEFINE SYMBOL  vv = 68
+ !-> DEFINE SYMBOL vname = dist_to_land
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=dist_to_land_in dist_to_land
+!-> REPEAT: V:69
+ !-> DEFINE SYMBOL  vv = 69
+ !-> DEFINE SYMBOL vname = day_of_year
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=day_of_year_in day_of_year
+!-> REPEAT: V:70
+ !-> DEFINE SYMBOL  vv = 70
+ !-> DEFINE SYMBOL vname = time
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=time_in time
+!-> REPEAT: V:71
+ !-> DEFINE SYMBOL  vv = 71
+ !-> DEFINE SYMBOL vname = lon360
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=lon360_in lon360
+!-> REPEAT: V:72
+ !-> DEFINE SYMBOL  vv = 72
+ !-> DEFINE SYMBOL vname = tmonth
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=tmonth_in tmonth
+ 
+IF `vdiff GT 0` THEN
+ !-> IF 0 THEN
+ENDIF
+ 
+ 
+! Which longitude to use for decimating: lon360 or longitude
+ 
+let dlon = minmax(longitude_in[i=@ddf])
+let dlon360 = minmax(lon360_in[i=@ddf])
+ 
+IF `abs(dlon[i=@max]) LT abs(dlon360[i=@max])` THEN
+ !-> IF 0 THEN
+ELSE
+   DEFINE SYMBOL lonvar = lon360_in
+ENDIF
+ 
+LET sample_pts= piecewise3(($lonvar), latitude_in, fCO2_recommended_in, `control`, `tol1`, `tol2`, `tol3`)
+ !-> DEFINE VARIABLE sample_pts= piecewise3(lon360_in, latitude_in, fCO2_recommended_in, 2, 1, 1, 4)
+LOAD sample_pts
+ 
+DEFINE SYMBOL output_filename = ($outfile)
+ !-> DEFINE SYMBOL output_filename = 492C19881104_dec.nc
+ 
+! File will get all the global attributes
+ 
+set att/out=all .
+can mode upcase
+ 
+! Single-point axis for instance direction
+! The set axis/name is to make sure Ferret uses lowercase
+ 
+SET AXIS/NAME=traj_in `num_obs_in,RETURN=eaxis`
+ !-> SET AXIS/NAME=traj_in trajectory
+DEF AXIS/E=1:1:1 traj_def
+SET AXIS/NAME=traj traj_def
+LET ee = _e[ge=traj]
+ 
+! obs axis for sampled observation variables
+ 
+SET AXIS/NAME=obj_in `longitude_in,RETURN=xaxis`
+ !-> SET AXIS/NAME=obj_in obs
+LET nsample = `sample_pts[i=@ngd]`
+ !-> DEFINE VARIABLE nsample = 23
+DEFINE AXIS/x=1:`nsample`:1 obs_def
+ !-> DEFINE AXIS/x=1:23:1 obs_def
+SET AXIS/NAME=obs obs_def
+LET samplevar = sample_pts[gx=obs at asn]
+ 
+! New num_obs variable with number of sampled data
+! Make sure it has the right sample_dimension attribute
+ 
+LET/BAD=-99 num_obs = reshape(nsample,ee)
+SET ATT/LIKE=num_obs_in num_obs
+DEFINE ATT/QUIET/OUTPUT num_obs.sample_dimension = "`num_obs_in.sample_dimension`"
+ !-> DEFINE ATT/QUIET/OUTPUT num_obs.sample_dimension = "obs"
+SET ATT/OUTPUT=all num_obs
+DEFINE SYMBOL num_obs_sampled = `nsample`
+ !-> DEFINE SYMBOL num_obs_sampled = 23
+ 
+! write a global attribute with the decimation parameters.
+DEFINE ATT/QUIET/OUTPUT ..decimation =  \
+"`nobs_full_in` original number of obs. Piecewise decimated to ($num_obs_sampled) obs using tolerances: lon ($tol_lon), lat ($tol_lon), fco2_rec ($tol_var) ($comment)"
+ !-> DEFINE ATT/QUIET/OUTPUT ..decimation =  "218 original number of obs. Piecewise decimated to 23 obs using tolerances: lon 1, lat 1, fco2_rec 4  "
+ 
+SAVE/QUIET/FILE="($outfile)"/OUTTYPE=INT/CLOBBER num_obs
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/OUTTYPE=INT/CLOBBER num_obs
+ 
+ 
+! Write the traj variables
+ 
+REPEAT/RANGE=2:`ntraj`/NAME=q (DEFINE SYMBOL qq = `q`;\
+DEFINE SYMBOL vname = `varnames_traj[i=($qq)]`;\
+DEFINE SYMBOL vtype = `($vname)_in,RETURN=dtype`;\
+DEFINE SYMBOL qual = /OUTTYPE=($vtype);\
+IF ($vtype"0|CHAR>1|*>0") THEN CAN SYM qual;\
+LET ($vname) = ($vname)_in[ge=traj at asn];\
+SET ATT/LIKE=($vname)_in ($vname);\
+SET ATT/OUTPUT=all ($vname);\
+if `strindex("($vtype)", "INT") gt 0` THEN set var/bad=`($vname)_in,return=bad` ($vname);\
+SAVE/QUIET/FILE="($outfile)"/APPEND($qual) ($vname))
+ !-> REPEAT/RANGE=2:17/NAME=q (DEFINE SYMBOL qq = `q`;DEFINE SYMBOL vname = `varnames_traj[i=($qq)]`;DEFINE SYMBOL vtype = `($vname)_in,RETURN=dtype`;DEFINE SYMBOL qual = /OUTTYPE=($vtype);IF ($vtype"0|CHAR>1|*>0") THEN CAN SYM qual;LET ($vname) = ($vname)_in[ge=traj at asn];SET ATT/LIKE=($vname)_in ($vname);SET ATT/OUTPUT=all ($vname);if `strindex("($vtype)", "INT") gt 0` THEN set var/bad=`($vname)_in,return=bad` ($vname);SAVE/QUIET/FILE="($outfile)"/APPEND($qual) ($vname))
+!-> REPEAT: Q:2
+ !-> DEFINE SYMBOL qq = 2
+ !-> DEFINE SYMBOL vname = expocode
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> DEFINE SYMBOL qual = /OUTTYPE=CHAR
+ !-> IF 1 THEN CAN SYM qual
+ !-> DEFINE VARIABLE expocode = expocode_in[ge=traj at asn]
+ !-> SET ATT/LIKE=expocode_in expocode
+ !-> SET ATT/OUTPUT=all expocode
+ !-> if 0 THEN set var/bad=`expocode_in,return=bad` expocode
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND  expocode
+!-> REPEAT: Q:3
+ !-> DEFINE SYMBOL qq = 3
+ !-> DEFINE SYMBOL vname = dataset_name
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> DEFINE SYMBOL qual = /OUTTYPE=CHAR
+ !-> IF 1 THEN CAN SYM qual
+ !-> DEFINE VARIABLE dataset_name = dataset_name_in[ge=traj at asn]
+ !-> SET ATT/LIKE=dataset_name_in dataset_name
+ !-> SET ATT/OUTPUT=all dataset_name
+ !-> if 0 THEN set var/bad=`dataset_name_in,return=bad` dataset_name
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND  dataset_name
+!-> REPEAT: Q:4
+ !-> DEFINE SYMBOL qq = 4
+ !-> DEFINE SYMBOL vname = vessel_name
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> DEFINE SYMBOL qual = /OUTTYPE=CHAR
+ !-> IF 1 THEN CAN SYM qual
+ !-> DEFINE VARIABLE vessel_name = vessel_name_in[ge=traj at asn]
+ !-> SET ATT/LIKE=vessel_name_in vessel_name
+ !-> SET ATT/OUTPUT=all vessel_name
+ !-> if 0 THEN set var/bad=`vessel_name_in,return=bad` vessel_name
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND  vessel_name
+!-> REPEAT: Q:5
+ !-> DEFINE SYMBOL qq = 5
+ !-> DEFINE SYMBOL vname = organization
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> DEFINE SYMBOL qual = /OUTTYPE=CHAR
+ !-> IF 1 THEN CAN SYM qual
+ !-> DEFINE VARIABLE organization = organization_in[ge=traj at asn]
+ !-> SET ATT/LIKE=organization_in organization
+ !-> SET ATT/OUTPUT=all organization
+ !-> if 0 THEN set var/bad=`organization_in,return=bad` organization
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND  organization
+!-> REPEAT: Q:6
+ !-> DEFINE SYMBOL qq = 6
+ !-> DEFINE SYMBOL vname = geospatial_lon_min
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> DEFINE SYMBOL qual = /OUTTYPE=DOUBLE
+ !-> IF 0 THEN CAN SYM qual
+ !-> DEFINE VARIABLE geospatial_lon_min = geospatial_lon_min_in[ge=traj at asn]
+ !-> SET ATT/LIKE=geospatial_lon_min_in geospatial_lon_min
+ !-> SET ATT/OUTPUT=all geospatial_lon_min
+ !-> if 0 THEN set var/bad=`geospatial_lon_min_in,return=bad` geospatial_lon_min
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND/OUTTYPE=DOUBLE geospatial_lon_min
+!-> REPEAT: Q:7
+ !-> DEFINE SYMBOL qq = 7
+ !-> DEFINE SYMBOL vname = geospatial_lon_max
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> DEFINE SYMBOL qual = /OUTTYPE=DOUBLE
+ !-> IF 0 THEN CAN SYM qual
+ !-> DEFINE VARIABLE geospatial_lon_max = geospatial_lon_max_in[ge=traj at asn]
+ !-> SET ATT/LIKE=geospatial_lon_max_in geospatial_lon_max
+ !-> SET ATT/OUTPUT=all geospatial_lon_max
+ !-> if 0 THEN set var/bad=`geospatial_lon_max_in,return=bad` geospatial_lon_max
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND/OUTTYPE=DOUBLE geospatial_lon_max
+!-> REPEAT: Q:8
+ !-> DEFINE SYMBOL qq = 8
+ !-> DEFINE SYMBOL vname = geospatial_lat_min
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> DEFINE SYMBOL qual = /OUTTYPE=DOUBLE
+ !-> IF 0 THEN CAN SYM qual
+ !-> DEFINE VARIABLE geospatial_lat_min = geospatial_lat_min_in[ge=traj at asn]
+ !-> SET ATT/LIKE=geospatial_lat_min_in geospatial_lat_min
+ !-> SET ATT/OUTPUT=all geospatial_lat_min
+ !-> if 0 THEN set var/bad=`geospatial_lat_min_in,return=bad` geospatial_lat_min
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND/OUTTYPE=DOUBLE geospatial_lat_min
+!-> REPEAT: Q:9
+ !-> DEFINE SYMBOL qq = 9
+ !-> DEFINE SYMBOL vname = geospatial_lat_max
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> DEFINE SYMBOL qual = /OUTTYPE=DOUBLE
+ !-> IF 0 THEN CAN SYM qual
+ !-> DEFINE VARIABLE geospatial_lat_max = geospatial_lat_max_in[ge=traj at asn]
+ !-> SET ATT/LIKE=geospatial_lat_max_in geospatial_lat_max
+ !-> SET ATT/OUTPUT=all geospatial_lat_max
+ !-> if 0 THEN set var/bad=`geospatial_lat_max_in,return=bad` geospatial_lat_max
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND/OUTTYPE=DOUBLE geospatial_lat_max
+!-> REPEAT: Q:10
+ !-> DEFINE SYMBOL qq = 10
+ !-> DEFINE SYMBOL vname = time_coverage_start
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> DEFINE SYMBOL qual = /OUTTYPE=DOUBLE
+ !-> IF 0 THEN CAN SYM qual
+ !-> DEFINE VARIABLE time_coverage_start = time_coverage_start_in[ge=traj at asn]
+ !-> SET ATT/LIKE=time_coverage_start_in time_coverage_start
+ !-> SET ATT/OUTPUT=all time_coverage_start
+ !-> if 0 THEN set var/bad=`time_coverage_start_in,return=bad` time_coverage_start
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND/OUTTYPE=DOUBLE time_coverage_start
+!-> REPEAT: Q:11
+ !-> DEFINE SYMBOL qq = 11
+ !-> DEFINE SYMBOL vname = time_converage_end
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> DEFINE SYMBOL qual = /OUTTYPE=DOUBLE
+ !-> IF 0 THEN CAN SYM qual
+ !-> DEFINE VARIABLE time_converage_end = time_converage_end_in[ge=traj at asn]
+ !-> SET ATT/LIKE=time_converage_end_in time_converage_end
+ !-> SET ATT/OUTPUT=all time_converage_end
+ !-> if 0 THEN set var/bad=`time_converage_end_in,return=bad` time_converage_end
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND/OUTTYPE=DOUBLE time_converage_end
+!-> REPEAT: Q:12
+ !-> DEFINE SYMBOL qq = 12
+ !-> DEFINE SYMBOL vname = investigators
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> DEFINE SYMBOL qual = /OUTTYPE=CHAR
+ !-> IF 1 THEN CAN SYM qual
+ !-> DEFINE VARIABLE investigators = investigators_in[ge=traj at asn]
+ !-> SET ATT/LIKE=investigators_in investigators
+ !-> SET ATT/OUTPUT=all investigators
+ !-> if 0 THEN set var/bad=`investigators_in,return=bad` investigators
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND  investigators
+!-> REPEAT: Q:13
+ !-> DEFINE SYMBOL qq = 13
+ !-> DEFINE SYMBOL vname = socat_version
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> DEFINE SYMBOL qual = /OUTTYPE=CHAR
+ !-> IF 1 THEN CAN SYM qual
+ !-> DEFINE VARIABLE socat_version = socat_version_in[ge=traj at asn]
+ !-> SET ATT/LIKE=socat_version_in socat_version
+ !-> SET ATT/OUTPUT=all socat_version
+ !-> if 0 THEN set var/bad=`socat_version_in,return=bad` socat_version
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND  socat_version
+!-> REPEAT: Q:14
+ !-> DEFINE SYMBOL qq = 14
+ !-> DEFINE SYMBOL vname = all_region_ids
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> DEFINE SYMBOL qual = /OUTTYPE=CHAR
+ !-> IF 1 THEN CAN SYM qual
+ !-> DEFINE VARIABLE all_region_ids = all_region_ids_in[ge=traj at asn]
+ !-> SET ATT/LIKE=all_region_ids_in all_region_ids
+ !-> SET ATT/OUTPUT=all all_region_ids
+ !-> if 0 THEN set var/bad=`all_region_ids_in,return=bad` all_region_ids
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND  all_region_ids
+!-> REPEAT: Q:15
+ !-> DEFINE SYMBOL qq = 15
+ !-> DEFINE SYMBOL vname = socat_doi
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> DEFINE SYMBOL qual = /OUTTYPE=CHAR
+ !-> IF 1 THEN CAN SYM qual
+ !-> DEFINE VARIABLE socat_doi = socat_doi_in[ge=traj at asn]
+ !-> SET ATT/LIKE=socat_doi_in socat_doi
+ !-> SET ATT/OUTPUT=all socat_doi
+ !-> if 0 THEN set var/bad=`socat_doi_in,return=bad` socat_doi
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND  socat_doi
+!-> REPEAT: Q:16
+ !-> DEFINE SYMBOL qq = 16
+ !-> DEFINE SYMBOL vname = qc_flag
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> DEFINE SYMBOL qual = /OUTTYPE=CHAR
+ !-> IF 1 THEN CAN SYM qual
+ !-> DEFINE VARIABLE qc_flag = qc_flag_in[ge=traj at asn]
+ !-> SET ATT/LIKE=qc_flag_in qc_flag
+ !-> SET ATT/OUTPUT=all qc_flag
+ !-> if 0 THEN set var/bad=`qc_flag_in,return=bad` qc_flag
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND  qc_flag
+!-> REPEAT: Q:17
+ !-> DEFINE SYMBOL qq = 17
+ !-> DEFINE SYMBOL vname = nobs_full
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> DEFINE SYMBOL qual = /OUTTYPE=INT4
+ !-> IF 0 THEN CAN SYM qual
+ !-> DEFINE VARIABLE nobs_full = nobs_full_in[ge=traj at asn]
+ !-> SET ATT/LIKE=nobs_full_in nobs_full
+ !-> SET ATT/OUTPUT=all nobs_full
+ !-> if 1 THEN set var/bad=`nobs_full_in,return=bad` nobs_full
+ !-> set var/bad=-99 nobs_full
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND/OUTTYPE=INT4 nobs_full
+ 
+! add nobs_deci on the same axis
+LET/TITLE="`nobs_deci_in,RETURN=title`"/BAD=-99 nobs_deci = ($num_obs_sampled) + 0* nobs_full
+ !-> DEFINE VARIABLE/TITLE="Count in decimated trajectory"/BAD=-99 nobs_deci = 23 + 0* nobs_full
+DEFINE ATTRIBUTE/OUTPUT/OUTPUT nobs_deci.note = "Piecewise decimated"
+SAVE/QUIET/FILE="($outfile)"/APPEND/OUTTYPE=int nobs_deci
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND/OUTTYPE=int nobs_deci
+ 
+! Sample the obs variables. Keep attributes, make missing-data flags match.
+ 
+! Numeric variables
+REPEAT/RANGE=1:`nlist`/NAME=q (DEFINE SYMBOL qq = `q`;\
+DEFINE SYMBOL vname = `varnames_list[i=($qq)]`;\
+IF ($vname"0|sample_number>1|*>0") THEN EXIT/CYCLE;\
+DEFINE SYMBOL vtype = `($vname)_in,RETURN=dtype`;\
+IF ($vtype"0|CHAR>1|*>0") THEN EXIT/CYCLE;\
+LET/BAD=`($vname)_in,RETURN=bad,PREC=9` ($vname) = SAMPLE_FAST_I(($vname)_in, samplevar);\
+SET ATT/LIKE=($vname)_in ($vname);\
+SET ATT/OUTPUT=all ($vname);\
+SAVE/QUIET/APPEND/OUTTYPE=($vtype)/FILE="($outfile)" ($vname);\
+)
+ !-> REPEAT/RANGE=1:72/NAME=q (DEFINE SYMBOL qq = `q`;DEFINE SYMBOL vname = `varnames_list[i=($qq)]`;IF ($vname"0|sample_number>1|*>0") THEN EXIT/CYCLE;DEFINE SYMBOL vtype = `($vname)_in,RETURN=dtype`;IF ($vtype"0|CHAR>1|*>0") THEN EXIT/CYCLE;LET/BAD=`($vname)_in,RETURN=bad,PREC=9` ($vname) = SAMPLE_FAST_I(($vname)_in, samplevar);SET ATT/LIKE=($vname)_in ($vname);SET ATT/OUTPUT=all ($vname);SAVE/QUIET/APPEND/OUTTYPE=($vtype)/FILE="($outfile)" ($vname);)
+!-> REPEAT: Q:1
+ !-> DEFINE SYMBOL qq = 1
+ !-> DEFINE SYMBOL vname = sample_number
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:2
+ !-> DEFINE SYMBOL qq = 2
+ !-> DEFINE SYMBOL vname = year
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1 year = SAMPLE_FAST_I(year_in, samplevar)
+ !-> SET ATT/LIKE=year_in year
+ !-> SET ATT/OUTPUT=all year
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=INT4/FILE="492C19881104_dec.nc" year
+!-> REPEAT: Q:3
+ !-> DEFINE SYMBOL qq = 3
+ !-> DEFINE SYMBOL vname = month
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1 month = SAMPLE_FAST_I(month_in, samplevar)
+ !-> SET ATT/LIKE=month_in month
+ !-> SET ATT/OUTPUT=all month
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=INT4/FILE="492C19881104_dec.nc" month
+!-> REPEAT: Q:4
+ !-> DEFINE SYMBOL qq = 4
+ !-> DEFINE SYMBOL vname = day
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1 day = SAMPLE_FAST_I(day_in, samplevar)
+ !-> SET ATT/LIKE=day_in day
+ !-> SET ATT/OUTPUT=all day
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=INT4/FILE="492C19881104_dec.nc" day
+!-> REPEAT: Q:5
+ !-> DEFINE SYMBOL qq = 5
+ !-> DEFINE SYMBOL vname = hour
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1 hour = SAMPLE_FAST_I(hour_in, samplevar)
+ !-> SET ATT/LIKE=hour_in hour
+ !-> SET ATT/OUTPUT=all hour
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=INT4/FILE="492C19881104_dec.nc" hour
+!-> REPEAT: Q:6
+ !-> DEFINE SYMBOL qq = 6
+ !-> DEFINE SYMBOL vname = minute
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1 minute = SAMPLE_FAST_I(minute_in, samplevar)
+ !-> SET ATT/LIKE=minute_in minute
+ !-> SET ATT/OUTPUT=all minute
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=INT4/FILE="492C19881104_dec.nc" minute
+!-> REPEAT: Q:7
+ !-> DEFINE SYMBOL qq = 7
+ !-> DEFINE SYMBOL vname = second
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 second = SAMPLE_FAST_I(second_in, samplevar)
+ !-> SET ATT/LIKE=second_in second
+ !-> SET ATT/OUTPUT=all second
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" second
+!-> REPEAT: Q:8
+ !-> DEFINE SYMBOL qq = 8
+ !-> DEFINE SYMBOL vname = longitude
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 longitude = SAMPLE_FAST_I(longitude_in, samplevar)
+ !-> SET ATT/LIKE=longitude_in longitude
+ !-> SET ATT/OUTPUT=all longitude
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" longitude
+!-> REPEAT: Q:9
+ !-> DEFINE SYMBOL qq = 9
+ !-> DEFINE SYMBOL vname = latitude
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 latitude = SAMPLE_FAST_I(latitude_in, samplevar)
+ !-> SET ATT/LIKE=latitude_in latitude
+ !-> SET ATT/OUTPUT=all latitude
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" latitude
+!-> REPEAT: Q:10
+ !-> DEFINE SYMBOL qq = 10
+ !-> DEFINE SYMBOL vname = sample_depth
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 sample_depth = SAMPLE_FAST_I(sample_depth_in, samplevar)
+ !-> SET ATT/LIKE=sample_depth_in sample_depth
+ !-> SET ATT/OUTPUT=all sample_depth
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" sample_depth
+!-> REPEAT: Q:11
+ !-> DEFINE SYMBOL qq = 11
+ !-> DEFINE SYMBOL vname = sal
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 sal = SAMPLE_FAST_I(sal_in, samplevar)
+ !-> SET ATT/LIKE=sal_in sal
+ !-> SET ATT/OUTPUT=all sal
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" sal
+!-> REPEAT: Q:12
+ !-> DEFINE SYMBOL qq = 12
+ !-> DEFINE SYMBOL vname = Temperature_equi
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 Temperature_equi = SAMPLE_FAST_I(Temperature_equi_in, samplevar)
+ !-> SET ATT/LIKE=Temperature_equi_in Temperature_equi
+ !-> SET ATT/OUTPUT=all Temperature_equi
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" Temperature_equi
+!-> REPEAT: Q:13
+ !-> DEFINE SYMBOL qq = 13
+ !-> DEFINE SYMBOL vname = temp
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 temp = SAMPLE_FAST_I(temp_in, samplevar)
+ !-> SET ATT/LIKE=temp_in temp
+ !-> SET ATT/OUTPUT=all temp
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" temp
+!-> REPEAT: Q:14
+ !-> DEFINE SYMBOL qq = 14
+ !-> DEFINE SYMBOL vname = Temperature_atm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 Temperature_atm = SAMPLE_FAST_I(Temperature_atm_in, samplevar)
+ !-> SET ATT/LIKE=Temperature_atm_in Temperature_atm
+ !-> SET ATT/OUTPUT=all Temperature_atm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" Temperature_atm
+!-> REPEAT: Q:15
+ !-> DEFINE SYMBOL qq = 15
+ !-> DEFINE SYMBOL vname = Pressure_equi
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 Pressure_equi = SAMPLE_FAST_I(Pressure_equi_in, samplevar)
+ !-> SET ATT/LIKE=Pressure_equi_in Pressure_equi
+ !-> SET ATT/OUTPUT=all Pressure_equi
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" Pressure_equi
+!-> REPEAT: Q:16
+ !-> DEFINE SYMBOL qq = 16
+ !-> DEFINE SYMBOL vname = Pressure_atm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 Pressure_atm = SAMPLE_FAST_I(Pressure_atm_in, samplevar)
+ !-> SET ATT/LIKE=Pressure_atm_in Pressure_atm
+ !-> SET ATT/OUTPUT=all Pressure_atm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" Pressure_atm
+!-> REPEAT: Q:17
+ !-> DEFINE SYMBOL qq = 17
+ !-> DEFINE SYMBOL vname = xCO2_water_equi_temp_dry_ppm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 xCO2_water_equi_temp_dry_ppm = SAMPLE_FAST_I(xCO2_water_equi_temp_dry_ppm_in, samplevar)
+ !-> SET ATT/LIKE=xCO2_water_equi_temp_dry_ppm_in xCO2_water_equi_temp_dry_ppm
+ !-> SET ATT/OUTPUT=all xCO2_water_equi_temp_dry_ppm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" xCO2_water_equi_temp_dry_ppm
+!-> REPEAT: Q:18
+ !-> DEFINE SYMBOL qq = 18
+ !-> DEFINE SYMBOL vname = xCO2_water_sst_dry_ppm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 xCO2_water_sst_dry_ppm = SAMPLE_FAST_I(xCO2_water_sst_dry_ppm_in, samplevar)
+ !-> SET ATT/LIKE=xCO2_water_sst_dry_ppm_in xCO2_water_sst_dry_ppm
+ !-> SET ATT/OUTPUT=all xCO2_water_sst_dry_ppm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" xCO2_water_sst_dry_ppm
+!-> REPEAT: Q:19
+ !-> DEFINE SYMBOL qq = 19
+ !-> DEFINE SYMBOL vname = xCO2_water_equi_temp_wet_ppm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 xCO2_water_equi_temp_wet_ppm = SAMPLE_FAST_I(xCO2_water_equi_temp_wet_ppm_in, samplevar)
+ !-> SET ATT/LIKE=xCO2_water_equi_temp_wet_ppm_in xCO2_water_equi_temp_wet_ppm
+ !-> SET ATT/OUTPUT=all xCO2_water_equi_temp_wet_ppm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" xCO2_water_equi_temp_wet_ppm
+!-> REPEAT: Q:20
+ !-> DEFINE SYMBOL qq = 20
+ !-> DEFINE SYMBOL vname = xCO2_water_sst_wet_ppm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 xCO2_water_sst_wet_ppm = SAMPLE_FAST_I(xCO2_water_sst_wet_ppm_in, samplevar)
+ !-> SET ATT/LIKE=xCO2_water_sst_wet_ppm_in xCO2_water_sst_wet_ppm
+ !-> SET ATT/OUTPUT=all xCO2_water_sst_wet_ppm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" xCO2_water_sst_wet_ppm
+!-> REPEAT: Q:21
+ !-> DEFINE SYMBOL qq = 21
+ !-> DEFINE SYMBOL vname = pCO2_water_equi_temp
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 pCO2_water_equi_temp = SAMPLE_FAST_I(pCO2_water_equi_temp_in, samplevar)
+ !-> SET ATT/LIKE=pCO2_water_equi_temp_in pCO2_water_equi_temp
+ !-> SET ATT/OUTPUT=all pCO2_water_equi_temp
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" pCO2_water_equi_temp
+!-> REPEAT: Q:22
+ !-> DEFINE SYMBOL qq = 22
+ !-> DEFINE SYMBOL vname = pCO2_water_sst_100humidity_uatm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 pCO2_water_sst_100humidity_uatm = SAMPLE_FAST_I(pCO2_water_sst_100humidity_uatm_in, samplevar)
+ !-> SET ATT/LIKE=pCO2_water_sst_100humidity_uatm_in pCO2_water_sst_100humidity_uatm
+ !-> SET ATT/OUTPUT=all pCO2_water_sst_100humidity_uatm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" pCO2_water_sst_100humidity_uatm
+!-> REPEAT: Q:23
+ !-> DEFINE SYMBOL qq = 23
+ !-> DEFINE SYMBOL vname = fCO2_water_equi_uatm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_water_equi_uatm = SAMPLE_FAST_I(fCO2_water_equi_uatm_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_water_equi_uatm_in fCO2_water_equi_uatm
+ !-> SET ATT/OUTPUT=all fCO2_water_equi_uatm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_water_equi_uatm
+!-> REPEAT: Q:24
+ !-> DEFINE SYMBOL qq = 24
+ !-> DEFINE SYMBOL vname = fCO2_water_sst_100humidity_uatm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_water_sst_100humidity_uatm = SAMPLE_FAST_I(fCO2_water_sst_100humidity_uatm_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_water_sst_100humidity_uatm_in fCO2_water_sst_100humidity_uatm
+ !-> SET ATT/OUTPUT=all fCO2_water_sst_100humidity_uatm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_water_sst_100humidity_uatm
+!-> REPEAT: Q:25
+ !-> DEFINE SYMBOL qq = 25
+ !-> DEFINE SYMBOL vname = xCO2_atm_dry_actual
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 xCO2_atm_dry_actual = SAMPLE_FAST_I(xCO2_atm_dry_actual_in, samplevar)
+ !-> SET ATT/LIKE=xCO2_atm_dry_actual_in xCO2_atm_dry_actual
+ !-> SET ATT/OUTPUT=all xCO2_atm_dry_actual
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" xCO2_atm_dry_actual
+!-> REPEAT: Q:26
+ !-> DEFINE SYMBOL qq = 26
+ !-> DEFINE SYMBOL vname = xCO2_atm_dry_interp
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 xCO2_atm_dry_interp = SAMPLE_FAST_I(xCO2_atm_dry_interp_in, samplevar)
+ !-> SET ATT/LIKE=xCO2_atm_dry_interp_in xCO2_atm_dry_interp
+ !-> SET ATT/OUTPUT=all xCO2_atm_dry_interp
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" xCO2_atm_dry_interp
+!-> REPEAT: Q:27
+ !-> DEFINE SYMBOL qq = 27
+ !-> DEFINE SYMBOL vname = pCO2_atm_wet_actual
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 pCO2_atm_wet_actual = SAMPLE_FAST_I(pCO2_atm_wet_actual_in, samplevar)
+ !-> SET ATT/LIKE=pCO2_atm_wet_actual_in pCO2_atm_wet_actual
+ !-> SET ATT/OUTPUT=all pCO2_atm_wet_actual
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" pCO2_atm_wet_actual
+!-> REPEAT: Q:28
+ !-> DEFINE SYMBOL qq = 28
+ !-> DEFINE SYMBOL vname = pCO2_atm_wet_interp
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 pCO2_atm_wet_interp = SAMPLE_FAST_I(pCO2_atm_wet_interp_in, samplevar)
+ !-> SET ATT/LIKE=pCO2_atm_wet_interp_in pCO2_atm_wet_interp
+ !-> SET ATT/OUTPUT=all pCO2_atm_wet_interp
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" pCO2_atm_wet_interp
+!-> REPEAT: Q:29
+ !-> DEFINE SYMBOL qq = 29
+ !-> DEFINE SYMBOL vname = fCO2_atm_wet_actual
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_atm_wet_actual = SAMPLE_FAST_I(fCO2_atm_wet_actual_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_atm_wet_actual_in fCO2_atm_wet_actual
+ !-> SET ATT/OUTPUT=all fCO2_atm_wet_actual
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_atm_wet_actual
+!-> REPEAT: Q:30
+ !-> DEFINE SYMBOL qq = 30
+ !-> DEFINE SYMBOL vname = fCO2_atm_wet_interp
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_atm_wet_interp = SAMPLE_FAST_I(fCO2_atm_wet_interp_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_atm_wet_interp_in fCO2_atm_wet_interp
+ !-> SET ATT/OUTPUT=all fCO2_atm_wet_interp
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_atm_wet_interp
+!-> REPEAT: Q:31
+ !-> DEFINE SYMBOL qq = 31
+ !-> DEFINE SYMBOL vname = delta_xCO2
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 delta_xCO2 = SAMPLE_FAST_I(delta_xCO2_in, samplevar)
+ !-> SET ATT/LIKE=delta_xCO2_in delta_xCO2
+ !-> SET ATT/OUTPUT=all delta_xCO2
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" delta_xCO2
+!-> REPEAT: Q:32
+ !-> DEFINE SYMBOL qq = 32
+ !-> DEFINE SYMBOL vname = delta_pCO2
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 delta_pCO2 = SAMPLE_FAST_I(delta_pCO2_in, samplevar)
+ !-> SET ATT/LIKE=delta_pCO2_in delta_pCO2
+ !-> SET ATT/OUTPUT=all delta_pCO2
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" delta_pCO2
+!-> REPEAT: Q:33
+ !-> DEFINE SYMBOL qq = 33
+ !-> DEFINE SYMBOL vname = delta_fCO2
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 delta_fCO2 = SAMPLE_FAST_I(delta_fCO2_in, samplevar)
+ !-> SET ATT/LIKE=delta_fCO2_in delta_fCO2
+ !-> SET ATT/OUTPUT=all delta_fCO2
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" delta_fCO2
+!-> REPEAT: Q:34
+ !-> DEFINE SYMBOL qq = 34
+ !-> DEFINE SYMBOL vname = xH2O_equi
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 xH2O_equi = SAMPLE_FAST_I(xH2O_equi_in, samplevar)
+ !-> SET ATT/LIKE=xH2O_equi_in xH2O_equi
+ !-> SET ATT/OUTPUT=all xH2O_equi
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" xH2O_equi
+!-> REPEAT: Q:35
+ !-> DEFINE SYMBOL qq = 35
+ !-> DEFINE SYMBOL vname = relative_humidity
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 relative_humidity = SAMPLE_FAST_I(relative_humidity_in, samplevar)
+ !-> SET ATT/LIKE=relative_humidity_in relative_humidity
+ !-> SET ATT/OUTPUT=all relative_humidity
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" relative_humidity
+!-> REPEAT: Q:36
+ !-> DEFINE SYMBOL qq = 36
+ !-> DEFINE SYMBOL vname = specific_humidity
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 specific_humidity = SAMPLE_FAST_I(specific_humidity_in, samplevar)
+ !-> SET ATT/LIKE=specific_humidity_in specific_humidity
+ !-> SET ATT/OUTPUT=all specific_humidity
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" specific_humidity
+!-> REPEAT: Q:37
+ !-> DEFINE SYMBOL qq = 37
+ !-> DEFINE SYMBOL vname = ship_speed
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 ship_speed = SAMPLE_FAST_I(ship_speed_in, samplevar)
+ !-> SET ATT/LIKE=ship_speed_in ship_speed
+ !-> SET ATT/OUTPUT=all ship_speed
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" ship_speed
+!-> REPEAT: Q:38
+ !-> DEFINE SYMBOL qq = 38
+ !-> DEFINE SYMBOL vname = ship_dir
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 ship_dir = SAMPLE_FAST_I(ship_dir_in, samplevar)
+ !-> SET ATT/LIKE=ship_dir_in ship_dir
+ !-> SET ATT/OUTPUT=all ship_dir
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" ship_dir
+!-> REPEAT: Q:39
+ !-> DEFINE SYMBOL qq = 39
+ !-> DEFINE SYMBOL vname = wind_speed_true
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 wind_speed_true = SAMPLE_FAST_I(wind_speed_true_in, samplevar)
+ !-> SET ATT/LIKE=wind_speed_true_in wind_speed_true
+ !-> SET ATT/OUTPUT=all wind_speed_true
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" wind_speed_true
+!-> REPEAT: Q:40
+ !-> DEFINE SYMBOL qq = 40
+ !-> DEFINE SYMBOL vname = wind_speed_rel
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 wind_speed_rel = SAMPLE_FAST_I(wind_speed_rel_in, samplevar)
+ !-> SET ATT/LIKE=wind_speed_rel_in wind_speed_rel
+ !-> SET ATT/OUTPUT=all wind_speed_rel
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" wind_speed_rel
+!-> REPEAT: Q:41
+ !-> DEFINE SYMBOL qq = 41
+ !-> DEFINE SYMBOL vname = wind_dir_true
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 wind_dir_true = SAMPLE_FAST_I(wind_dir_true_in, samplevar)
+ !-> SET ATT/LIKE=wind_dir_true_in wind_dir_true
+ !-> SET ATT/OUTPUT=all wind_dir_true
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" wind_dir_true
+!-> REPEAT: Q:42
+ !-> DEFINE SYMBOL qq = 42
+ !-> DEFINE SYMBOL vname = wind_dir_rel
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 wind_dir_rel = SAMPLE_FAST_I(wind_dir_rel_in, samplevar)
+ !-> SET ATT/LIKE=wind_dir_rel_in wind_dir_rel
+ !-> SET ATT/OUTPUT=all wind_dir_rel
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" wind_dir_rel
+!-> REPEAT: Q:43
+ !-> DEFINE SYMBOL qq = 43
+ !-> DEFINE SYMBOL vname = WOCE_CO2_water
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:44
+ !-> DEFINE SYMBOL qq = 44
+ !-> DEFINE SYMBOL vname = WOCE_CO2_atm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:45
+ !-> DEFINE SYMBOL qq = 45
+ !-> DEFINE SYMBOL vname = woa_sss
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 woa_sss = SAMPLE_FAST_I(woa_sss_in, samplevar)
+ !-> SET ATT/LIKE=woa_sss_in woa_sss
+ !-> SET ATT/OUTPUT=all woa_sss
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" woa_sss
+!-> REPEAT: Q:46
+ !-> DEFINE SYMBOL qq = 46
+ !-> DEFINE SYMBOL vname = pressure_ncep_slp
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 pressure_ncep_slp = SAMPLE_FAST_I(pressure_ncep_slp_in, samplevar)
+ !-> SET ATT/LIKE=pressure_ncep_slp_in pressure_ncep_slp
+ !-> SET ATT/OUTPUT=all pressure_ncep_slp
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" pressure_ncep_slp
+!-> REPEAT: Q:47
+ !-> DEFINE SYMBOL qq = 47
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm = SAMPLE_FAST_I(fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_in fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm
+ !-> SET ATT/OUTPUT=all fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm
+!-> REPEAT: Q:48
+ !-> DEFINE SYMBOL qq = 48
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_insitu_from_xCO2_water_sst_dry_ppm = SAMPLE_FAST_I(fCO2_insitu_from_xCO2_water_sst_dry_ppm_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_insitu_from_xCO2_water_sst_dry_ppm_in fCO2_insitu_from_xCO2_water_sst_dry_ppm
+ !-> SET ATT/OUTPUT=all fCO2_insitu_from_xCO2_water_sst_dry_ppm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_insitu_from_xCO2_water_sst_dry_ppm
+!-> REPEAT: Q:49
+ !-> DEFINE SYMBOL qq = 49
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_water_equi_temp
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_from_pCO2_water_water_equi_temp = SAMPLE_FAST_I(fCO2_from_pCO2_water_water_equi_temp_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_from_pCO2_water_water_equi_temp_in fCO2_from_pCO2_water_water_equi_temp
+ !-> SET ATT/OUTPUT=all fCO2_from_pCO2_water_water_equi_temp
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_from_pCO2_water_water_equi_temp
+!-> REPEAT: Q:50
+ !-> DEFINE SYMBOL qq = 50
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_sst_100humidity_uatm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_from_pCO2_water_sst_100humidity_uatm = SAMPLE_FAST_I(fCO2_from_pCO2_water_sst_100humidity_uatm_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_from_pCO2_water_sst_100humidity_uatm_in fCO2_from_pCO2_water_sst_100humidity_uatm
+ !-> SET ATT/OUTPUT=all fCO2_from_pCO2_water_sst_100humidity_uatm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_from_pCO2_water_sst_100humidity_uatm
+!-> REPEAT: Q:51
+ !-> DEFINE SYMBOL qq = 51
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_fCO2_water_equi_uatm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_insitu_from_fCO2_water_equi_uatm = SAMPLE_FAST_I(fCO2_insitu_from_fCO2_water_equi_uatm_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_insitu_from_fCO2_water_equi_uatm_in fCO2_insitu_from_fCO2_water_equi_uatm
+ !-> SET ATT/OUTPUT=all fCO2_insitu_from_fCO2_water_equi_uatm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_insitu_from_fCO2_water_equi_uatm
+!-> REPEAT: Q:52
+ !-> DEFINE SYMBOL qq = 52
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_fCO2_water_sst_100humidty_uatm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_insitu_from_fCO2_water_sst_100humidty_uatm = SAMPLE_FAST_I(fCO2_insitu_from_fCO2_water_sst_100humidty_uatm_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_insitu_from_fCO2_water_sst_100humidty_uatm_in fCO2_insitu_from_fCO2_water_sst_100humidty_uatm
+ !-> SET ATT/OUTPUT=all fCO2_insitu_from_fCO2_water_sst_100humidty_uatm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_insitu_from_fCO2_water_sst_100humidty_uatm
+!-> REPEAT: Q:53
+ !-> DEFINE SYMBOL qq = 53
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_water_equi_temp_ncep
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_from_pCO2_water_water_equi_temp_ncep = SAMPLE_FAST_I(fCO2_from_pCO2_water_water_equi_temp_ncep_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_from_pCO2_water_water_equi_temp_ncep_in fCO2_from_pCO2_water_water_equi_temp_ncep
+ !-> SET ATT/OUTPUT=all fCO2_from_pCO2_water_water_equi_temp_ncep
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_from_pCO2_water_water_equi_temp_ncep
+!-> REPEAT: Q:54
+ !-> DEFINE SYMBOL qq = 54
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_sst_100humidity_uatm_ncep
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_from_pCO2_water_sst_100humidity_uatm_ncep = SAMPLE_FAST_I(fCO2_from_pCO2_water_sst_100humidity_uatm_ncep_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_from_pCO2_water_sst_100humidity_uatm_ncep_in fCO2_from_pCO2_water_sst_100humidity_uatm_ncep
+ !-> SET ATT/OUTPUT=all fCO2_from_pCO2_water_sst_100humidity_uatm_ncep
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_from_pCO2_water_sst_100humidity_uatm_ncep
+!-> REPEAT: Q:55
+ !-> DEFINE SYMBOL qq = 55
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa = SAMPLE_FAST_I(fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa_in fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa
+ !-> SET ATT/OUTPUT=all fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa
+!-> REPEAT: Q:56
+ !-> DEFINE SYMBOL qq = 56
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa = SAMPLE_FAST_I(fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa_in fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa
+ !-> SET ATT/OUTPUT=all fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa
+!-> REPEAT: Q:57
+ !-> DEFINE SYMBOL qq = 57
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep = SAMPLE_FAST_I(fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_in fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep
+ !-> SET ATT/OUTPUT=all fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep
+!-> REPEAT: Q:58
+ !-> DEFINE SYMBOL qq = 58
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep = SAMPLE_FAST_I(fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_in fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep
+ !-> SET ATT/OUTPUT=all fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep
+!-> REPEAT: Q:59
+ !-> DEFINE SYMBOL qq = 59
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa = SAMPLE_FAST_I(fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa_in fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa
+ !-> SET ATT/OUTPUT=all fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa
+!-> REPEAT: Q:60
+ !-> DEFINE SYMBOL qq = 60
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa = SAMPLE_FAST_I(fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa_in fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa
+ !-> SET ATT/OUTPUT=all fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa
+!-> REPEAT: Q:61
+ !-> DEFINE SYMBOL qq = 61
+ !-> DEFINE SYMBOL vname = fCO2_recommended
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_recommended = SAMPLE_FAST_I(fCO2_recommended_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_recommended_in fCO2_recommended
+ !-> SET ATT/OUTPUT=all fCO2_recommended
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_recommended
+!-> REPEAT: Q:62
+ !-> DEFINE SYMBOL qq = 62
+ !-> DEFINE SYMBOL vname = fCO2_source
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1 fCO2_source = SAMPLE_FAST_I(fCO2_source_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_source_in fCO2_source
+ !-> SET ATT/OUTPUT=all fCO2_source
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=INT4/FILE="492C19881104_dec.nc" fCO2_source
+!-> REPEAT: Q:63
+ !-> DEFINE SYMBOL qq = 63
+ !-> DEFINE SYMBOL vname = delta_temp
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 delta_temp = SAMPLE_FAST_I(delta_temp_in, samplevar)
+ !-> SET ATT/LIKE=delta_temp_in delta_temp
+ !-> SET ATT/OUTPUT=all delta_temp
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" delta_temp
+!-> REPEAT: Q:64
+ !-> DEFINE SYMBOL qq = 64
+ !-> DEFINE SYMBOL vname = region_id
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:65
+ !-> DEFINE SYMBOL qq = 65
+ !-> DEFINE SYMBOL vname = calc_speed
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 calc_speed = SAMPLE_FAST_I(calc_speed_in, samplevar)
+ !-> SET ATT/LIKE=calc_speed_in calc_speed
+ !-> SET ATT/OUTPUT=all calc_speed
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" calc_speed
+!-> REPEAT: Q:66
+ !-> DEFINE SYMBOL qq = 66
+ !-> DEFINE SYMBOL vname = etopo2
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 etopo2 = SAMPLE_FAST_I(etopo2_in, samplevar)
+ !-> SET ATT/LIKE=etopo2_in etopo2
+ !-> SET ATT/OUTPUT=all etopo2
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" etopo2
+!-> REPEAT: Q:67
+ !-> DEFINE SYMBOL qq = 67
+ !-> DEFINE SYMBOL vname = gvCO2
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 gvCO2 = SAMPLE_FAST_I(gvCO2_in, samplevar)
+ !-> SET ATT/LIKE=gvCO2_in gvCO2
+ !-> SET ATT/OUTPUT=all gvCO2
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" gvCO2
+!-> REPEAT: Q:68
+ !-> DEFINE SYMBOL qq = 68
+ !-> DEFINE SYMBOL vname = dist_to_land
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 dist_to_land = SAMPLE_FAST_I(dist_to_land_in, samplevar)
+ !-> SET ATT/LIKE=dist_to_land_in dist_to_land
+ !-> SET ATT/OUTPUT=all dist_to_land
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" dist_to_land
+!-> REPEAT: Q:69
+ !-> DEFINE SYMBOL qq = 69
+ !-> DEFINE SYMBOL vname = day_of_year
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 day_of_year = SAMPLE_FAST_I(day_of_year_in, samplevar)
+ !-> SET ATT/LIKE=day_of_year_in day_of_year
+ !-> SET ATT/OUTPUT=all day_of_year
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" day_of_year
+!-> REPEAT: Q:70
+ !-> DEFINE SYMBOL qq = 70
+ !-> DEFINE SYMBOL vname = time
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 time = SAMPLE_FAST_I(time_in, samplevar)
+ !-> SET ATT/LIKE=time_in time
+ !-> SET ATT/OUTPUT=all time
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" time
+!-> REPEAT: Q:71
+ !-> DEFINE SYMBOL qq = 71
+ !-> DEFINE SYMBOL vname = lon360
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 lon360 = SAMPLE_FAST_I(lon360_in, samplevar)
+ !-> SET ATT/LIKE=lon360_in lon360
+ !-> SET ATT/OUTPUT=all lon360
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" lon360
+!-> REPEAT: Q:72
+ !-> DEFINE SYMBOL qq = 72
+ !-> DEFINE SYMBOL vname = tmonth
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> IF 1 THEN EXIT/CYCLE
+ 
+! sample_number will be the sequence number within the decimated data
+! We can use this to pick up the pen when drawing lines where the constraints
+! (on the decimated set) have skipped data
+ 
+LET/BAD=-1/TITLE="sequence number for decimated dataset" sample_number = i[gx=latitude]
+SAVE/QUIET/APPEND/OUTTYPE=INT/FILE="($outfile)" sample_number
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=INT/FILE="492C19881104_dec.nc" sample_number
+ 
+! Character variables
+ 
+REPEAT/RANGE=1:`nlist`/NAME=q (DEFINE SYMBOL qq = `q`;\
+DEFINE SYMBOL vname = `varnames_list[i=($qq)]`;\
+DEFINE SYMBOL vtype = `($vname)_in,RETURN=dtype`;\
+IF `($vtype"0|CHAR>1|*>0") EQ 0` THEN EXIT/CYCLE;\
+LET ($vname)_s = SAMPLEI(($vname)_in, samplevar);\
+LET ($vname) = RESHAPE(($vname)_s, x[gx=obs]);\
+SET ATT/LIKE=($vname)_in ($vname);\
+SET ATT/OUTPUT=all ($vname);\
+SAVE/QUIET/APPEND/FILE="($outfile)" ($vname) )
+ !-> REPEAT/RANGE=1:72/NAME=q (DEFINE SYMBOL qq = `q`;DEFINE SYMBOL vname = `varnames_list[i=($qq)]`;DEFINE SYMBOL vtype = `($vname)_in,RETURN=dtype`;IF `($vtype"0|CHAR>1|*>0") EQ 0` THEN EXIT/CYCLE;LET ($vname)_s = SAMPLEI(($vname)_in, samplevar);LET ($vname) = RESHAPE(($vname)_s, x[gx=obs]);SET ATT/LIKE=($vname)_in ($vname);SET ATT/OUTPUT=all ($vname);SAVE/QUIET/APPEND/FILE="($outfile)" ($vname) )
+!-> REPEAT: Q:1
+ !-> DEFINE SYMBOL qq = 1
+ !-> DEFINE SYMBOL vname = sample_number
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:2
+ !-> DEFINE SYMBOL qq = 2
+ !-> DEFINE SYMBOL vname = year
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:3
+ !-> DEFINE SYMBOL qq = 3
+ !-> DEFINE SYMBOL vname = month
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:4
+ !-> DEFINE SYMBOL qq = 4
+ !-> DEFINE SYMBOL vname = day
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:5
+ !-> DEFINE SYMBOL qq = 5
+ !-> DEFINE SYMBOL vname = hour
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:6
+ !-> DEFINE SYMBOL qq = 6
+ !-> DEFINE SYMBOL vname = minute
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:7
+ !-> DEFINE SYMBOL qq = 7
+ !-> DEFINE SYMBOL vname = second
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:8
+ !-> DEFINE SYMBOL qq = 8
+ !-> DEFINE SYMBOL vname = longitude
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:9
+ !-> DEFINE SYMBOL qq = 9
+ !-> DEFINE SYMBOL vname = latitude
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:10
+ !-> DEFINE SYMBOL qq = 10
+ !-> DEFINE SYMBOL vname = sample_depth
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:11
+ !-> DEFINE SYMBOL qq = 11
+ !-> DEFINE SYMBOL vname = sal
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:12
+ !-> DEFINE SYMBOL qq = 12
+ !-> DEFINE SYMBOL vname = Temperature_equi
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:13
+ !-> DEFINE SYMBOL qq = 13
+ !-> DEFINE SYMBOL vname = temp
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:14
+ !-> DEFINE SYMBOL qq = 14
+ !-> DEFINE SYMBOL vname = Temperature_atm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:15
+ !-> DEFINE SYMBOL qq = 15
+ !-> DEFINE SYMBOL vname = Pressure_equi
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:16
+ !-> DEFINE SYMBOL qq = 16
+ !-> DEFINE SYMBOL vname = Pressure_atm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:17
+ !-> DEFINE SYMBOL qq = 17
+ !-> DEFINE SYMBOL vname = xCO2_water_equi_temp_dry_ppm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:18
+ !-> DEFINE SYMBOL qq = 18
+ !-> DEFINE SYMBOL vname = xCO2_water_sst_dry_ppm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:19
+ !-> DEFINE SYMBOL qq = 19
+ !-> DEFINE SYMBOL vname = xCO2_water_equi_temp_wet_ppm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:20
+ !-> DEFINE SYMBOL qq = 20
+ !-> DEFINE SYMBOL vname = xCO2_water_sst_wet_ppm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:21
+ !-> DEFINE SYMBOL qq = 21
+ !-> DEFINE SYMBOL vname = pCO2_water_equi_temp
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:22
+ !-> DEFINE SYMBOL qq = 22
+ !-> DEFINE SYMBOL vname = pCO2_water_sst_100humidity_uatm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:23
+ !-> DEFINE SYMBOL qq = 23
+ !-> DEFINE SYMBOL vname = fCO2_water_equi_uatm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:24
+ !-> DEFINE SYMBOL qq = 24
+ !-> DEFINE SYMBOL vname = fCO2_water_sst_100humidity_uatm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:25
+ !-> DEFINE SYMBOL qq = 25
+ !-> DEFINE SYMBOL vname = xCO2_atm_dry_actual
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:26
+ !-> DEFINE SYMBOL qq = 26
+ !-> DEFINE SYMBOL vname = xCO2_atm_dry_interp
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:27
+ !-> DEFINE SYMBOL qq = 27
+ !-> DEFINE SYMBOL vname = pCO2_atm_wet_actual
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:28
+ !-> DEFINE SYMBOL qq = 28
+ !-> DEFINE SYMBOL vname = pCO2_atm_wet_interp
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:29
+ !-> DEFINE SYMBOL qq = 29
+ !-> DEFINE SYMBOL vname = fCO2_atm_wet_actual
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:30
+ !-> DEFINE SYMBOL qq = 30
+ !-> DEFINE SYMBOL vname = fCO2_atm_wet_interp
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:31
+ !-> DEFINE SYMBOL qq = 31
+ !-> DEFINE SYMBOL vname = delta_xCO2
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:32
+ !-> DEFINE SYMBOL qq = 32
+ !-> DEFINE SYMBOL vname = delta_pCO2
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:33
+ !-> DEFINE SYMBOL qq = 33
+ !-> DEFINE SYMBOL vname = delta_fCO2
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:34
+ !-> DEFINE SYMBOL qq = 34
+ !-> DEFINE SYMBOL vname = xH2O_equi
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:35
+ !-> DEFINE SYMBOL qq = 35
+ !-> DEFINE SYMBOL vname = relative_humidity
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:36
+ !-> DEFINE SYMBOL qq = 36
+ !-> DEFINE SYMBOL vname = specific_humidity
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:37
+ !-> DEFINE SYMBOL qq = 37
+ !-> DEFINE SYMBOL vname = ship_speed
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:38
+ !-> DEFINE SYMBOL qq = 38
+ !-> DEFINE SYMBOL vname = ship_dir
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:39
+ !-> DEFINE SYMBOL qq = 39
+ !-> DEFINE SYMBOL vname = wind_speed_true
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:40
+ !-> DEFINE SYMBOL qq = 40
+ !-> DEFINE SYMBOL vname = wind_speed_rel
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:41
+ !-> DEFINE SYMBOL qq = 41
+ !-> DEFINE SYMBOL vname = wind_dir_true
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:42
+ !-> DEFINE SYMBOL qq = 42
+ !-> DEFINE SYMBOL vname = wind_dir_rel
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:43
+ !-> DEFINE SYMBOL qq = 43
+ !-> DEFINE SYMBOL vname = WOCE_CO2_water
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE WOCE_CO2_water_s = SAMPLEI(WOCE_CO2_water_in, samplevar)
+ !-> DEFINE VARIABLE WOCE_CO2_water = RESHAPE(WOCE_CO2_water_s, x[gx=obs])
+ !-> SET ATT/LIKE=WOCE_CO2_water_in WOCE_CO2_water
+ !-> SET ATT/OUTPUT=all WOCE_CO2_water
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/FILE="492C19881104_dec.nc" WOCE_CO2_water
+!-> REPEAT: Q:44
+ !-> DEFINE SYMBOL qq = 44
+ !-> DEFINE SYMBOL vname = WOCE_CO2_atm
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE WOCE_CO2_atm_s = SAMPLEI(WOCE_CO2_atm_in, samplevar)
+ !-> DEFINE VARIABLE WOCE_CO2_atm = RESHAPE(WOCE_CO2_atm_s, x[gx=obs])
+ !-> SET ATT/LIKE=WOCE_CO2_atm_in WOCE_CO2_atm
+ !-> SET ATT/OUTPUT=all WOCE_CO2_atm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/FILE="492C19881104_dec.nc" WOCE_CO2_atm
+!-> REPEAT: Q:45
+ !-> DEFINE SYMBOL qq = 45
+ !-> DEFINE SYMBOL vname = woa_sss
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:46
+ !-> DEFINE SYMBOL qq = 46
+ !-> DEFINE SYMBOL vname = pressure_ncep_slp
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:47
+ !-> DEFINE SYMBOL qq = 47
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:48
+ !-> DEFINE SYMBOL qq = 48
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:49
+ !-> DEFINE SYMBOL qq = 49
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_water_equi_temp
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:50
+ !-> DEFINE SYMBOL qq = 50
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_sst_100humidity_uatm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:51
+ !-> DEFINE SYMBOL qq = 51
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_fCO2_water_equi_uatm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:52
+ !-> DEFINE SYMBOL qq = 52
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_fCO2_water_sst_100humidty_uatm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:53
+ !-> DEFINE SYMBOL qq = 53
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_water_equi_temp_ncep
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:54
+ !-> DEFINE SYMBOL qq = 54
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_sst_100humidity_uatm_ncep
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:55
+ !-> DEFINE SYMBOL qq = 55
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:56
+ !-> DEFINE SYMBOL qq = 56
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:57
+ !-> DEFINE SYMBOL qq = 57
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:58
+ !-> DEFINE SYMBOL qq = 58
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:59
+ !-> DEFINE SYMBOL qq = 59
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:60
+ !-> DEFINE SYMBOL qq = 60
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:61
+ !-> DEFINE SYMBOL qq = 61
+ !-> DEFINE SYMBOL vname = fCO2_recommended
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:62
+ !-> DEFINE SYMBOL qq = 62
+ !-> DEFINE SYMBOL vname = fCO2_source
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:63
+ !-> DEFINE SYMBOL qq = 63
+ !-> DEFINE SYMBOL vname = delta_temp
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:64
+ !-> DEFINE SYMBOL qq = 64
+ !-> DEFINE SYMBOL vname = region_id
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE region_id_s = SAMPLEI(region_id_in, samplevar)
+ !-> DEFINE VARIABLE region_id = RESHAPE(region_id_s, x[gx=obs])
+ !-> SET ATT/LIKE=region_id_in region_id
+ !-> SET ATT/OUTPUT=all region_id
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/FILE="492C19881104_dec.nc" region_id
+!-> REPEAT: Q:65
+ !-> DEFINE SYMBOL qq = 65
+ !-> DEFINE SYMBOL vname = calc_speed
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:66
+ !-> DEFINE SYMBOL qq = 66
+ !-> DEFINE SYMBOL vname = etopo2
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:67
+ !-> DEFINE SYMBOL qq = 67
+ !-> DEFINE SYMBOL vname = gvCO2
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:68
+ !-> DEFINE SYMBOL qq = 68
+ !-> DEFINE SYMBOL vname = dist_to_land
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:69
+ !-> DEFINE SYMBOL qq = 69
+ !-> DEFINE SYMBOL vname = day_of_year
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:70
+ !-> DEFINE SYMBOL qq = 70
+ !-> DEFINE SYMBOL vname = time
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:71
+ !-> DEFINE SYMBOL qq = 71
+ !-> DEFINE SYMBOL vname = lon360
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:72
+ !-> DEFINE SYMBOL qq = 72
+ !-> DEFINE SYMBOL vname = tmonth
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE tmonth_s = SAMPLEI(tmonth_in, samplevar)
+ !-> DEFINE VARIABLE tmonth = RESHAPE(tmonth_s, x[gx=obs])
+ !-> SET ATT/LIKE=tmonth_in tmonth
+ !-> SET ATT/OUTPUT=all tmonth
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/FILE="492C19881104_dec.nc" tmonth
+ 
+can data/all
+can var/all
+can sym/all
+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 dca78c1..0297282 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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -76,7 +76,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -113,7 +113,7 @@ variables:
 		B:long_name = "\"one line of text\"" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -152,7 +152,7 @@ variables:
 		D:history = "From test_string" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -257,7 +257,7 @@ variables:
 		V:long_name = "T[GT=MONTH_IRREG]" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -314,7 +314,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -371,7 +371,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -426,7 +426,7 @@ variables:
 		T2:long_name = "Z[GZ=ZIRR]" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -474,7 +474,7 @@ variables:
 		V:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -568,7 +568,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -638,7 +638,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -780,7 +780,7 @@ variables:
 		A:long_name = "T[GT=TIME]" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -807,7 +807,7 @@ variables:
 		X_:long_name_mod = "axis ABSTRACT" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-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:
@@ -858,14 +858,14 @@ variables:
 		A:history = "From t0_cdc" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 *** 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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -974,7 +974,7 @@ variables:
 		VAR_B:long_name = "my strings" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1018,7 +1018,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1060,7 +1060,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1168,7 +1168,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1258,7 +1258,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1278,7 +1278,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1299,7 +1299,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1342,7 +1342,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 14 attributes of data from ez data.
@@ -1434,22 +1434,22 @@ variables:
 	float A1(AX002) ;
 		A1:missing_value = -1.e+34f ;
 		A1:_FillValue = -1.e+34f ;
-		A1:long_name = "A1" ;
+		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 ;
-		A2:long_name = "A2" ;
+		A2:long_name = "a2" ;
 		A2:history = "From EZ.DAT" ;
 	float A3(AX002) ;
 		A3:missing_value = -1.e+34f ;
 		A3:_FillValue = -1.e+34f ;
-		A3:long_name = "A3" ;
+		A3:long_name = "a3" ;
 		A3:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1482,7 +1482,7 @@ variables:
 		V4:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1508,7 +1508,7 @@ variables:
 		A:four = "theory" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1554,7 +1554,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 		:dt_internal = 15. ;
 }
@@ -1703,7 +1703,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1786,7 +1786,7 @@ variables:
 		RIGUE:history = "From test0" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1823,7 +1823,7 @@ variables:
 		B:long_name = "hello" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1863,7 +1863,7 @@ variables:
 		VWND:units = "M/S" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1914,7 +1914,7 @@ variables:
 		T2:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1973,7 +1973,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2018,7 +2018,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2061,7 +2061,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2096,7 +2096,7 @@ variables:
 		TEMP:units = "DEG C" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2130,7 +2130,7 @@ variables:
 		TWO:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2295,7 +2295,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2366,7 +2366,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2396,7 +2396,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2449,7 +2449,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2491,7 +2491,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2509,7 +2509,7 @@ variables:
 		V:long_name = "Y[GY=YAXIS]" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_no_valid_on_plot.jnl
@@ -2531,7 +2531,7 @@ variables:
 		MY_ASC:history = "From dat.dat" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2549,7 +2549,7 @@ variables:
 		MY_UNF:history = "From unf.dat" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2651,14 +2651,14 @@ variables:
 		time1478:point_spacing = "even" ;
 		time1478:standard_name = "time" ;
 	double newvar(time1478, zt, lat1_5, lon1_5) ;
-		newvar:missing_value = -999. ;
-		newvar:_FillValue = -999. ;
+		newvar:missing_value = -1.e+34 ;
+		newvar:_FillValue = -1.e+34 ;
 		newvar:long_name = "outgoing longwave radiation" ;
 		newvar:units = "watts/m2" ;
 		newvar:history = "From a" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		: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  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -3051,7 +3051,7 @@ variables:
 		MYVAR:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -3065,7 +3065,7 @@ variables:
 		MYVAR:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "FERRET V7  17-Jun-16" ;
+		:history = "FERRET V7.1  18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_list_clim_axes.jnl
@@ -3075,7 +3075,682 @@ variables:
 *** Running ferret script: bn_plot_decimate.jnl
 *** Running ferret script: bn_auto_tprec.jnl
 *** Running ferret script: bn_coordvars_atts.jnl
+*** Running ferret script: bn710_bug_fixes.jnl
+*** Running ferret script: bn_delim_datetime.jnl
+*** Running ferret script: bn_aggregate_u.jnl
+*** Running ferret script: bn_ez_noupcase.jnl
+*** Running ferret script: bn_spawn_fail.jnl
+*** Running ferret script: bn_ave_of_ave.jnl
+*** Running ferret script: bn_agg_member_syntax.jnl
+*** Running ferret script: bn_true_monthly.jnl
+*** Running ferret script: bn720_bug_fixes.jnl
+*** Running ferret script: bn_compressed_gather.jnl
+*** 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_cache_management.jnl
+*** Running ferret script: bn_transp_choose.jnl
 *** Running ferret script: bn_gif.jnl
 *** Running ferret script: bn_ps.jnl
 *** Running ferret script: bn_all_ef.jnl
 *** Running ferret script: bn_startupfile.jnl
+*** Running ferret script: err700_decimate.jnl
+netcdf \492C19881104_dec {
+dimensions:
+	traj = 1 ;
+	STRING1_12 = 12 ;
+	STRING1_1 = 1 ;
+	STRING1_10 = 10 ;
+	STRING1_9 = 9 ;
+	STRING1_4 = 4 ;
+	STRING1_3 = 3 ;
+	obs = 23 ;
+variables:
+	double traj(traj) ;
+		traj:point_spacing = "even" ;
+		traj:axis = "E" ;
+	int num_obs(traj) ;
+		num_obs:missing_value = -99 ;
+		num_obs:_FillValue = -99 ;
+		num_obs:sample_dimension = "obs" ;
+		num_obs:long_name = "Number of Observations" ;
+	char expocode(traj, STRING1_12) ;
+		expocode:long_name = "expocode" ;
+		expocode:cf_role = "trajectory_id" ;
+		expocode:ioos_category = "Identifier" ;
+		expocode:history = "From 492C19881104" ;
+	char dataset_name(traj, STRING1_1) ;
+		dataset_name:long_name = "dataset name" ;
+		dataset_name:ioos_category = "Identifier" ;
+		dataset_name:history = "From 492C19881104" ;
+	char vessel_name(traj, STRING1_10) ;
+		vessel_name:long_name = "vessel name" ;
+		vessel_name:standard_name = "platform_name" ;
+		vessel_name:ioos_category = "Identifier" ;
+		vessel_name:history = "From 492C19881104" ;
+	char organization(traj, STRING1_1) ;
+		organization:long_name = "organization" ;
+		organization:ioos_category = "Identifier" ;
+		organization:history = "From 492C19881104" ;
+	double geospatial_lon_min(traj) ;
+		geospatial_lon_min:missing_value = -1.e+34 ;
+		geospatial_lon_min:_FillValue = -1.e+34 ;
+		geospatial_lon_min:units = "degrees_east" ;
+		geospatial_lon_min:long_name = "westernmost longitude" ;
+		geospatial_lon_min:standard_name = "geospatial_lon_min" ;
+		geospatial_lon_min:ioos_category = "Location" ;
+		geospatial_lon_min:history = "From 492C19881104" ;
+	double geospatial_lon_max(traj) ;
+		geospatial_lon_max:missing_value = -1.e+34 ;
+		geospatial_lon_max:_FillValue = -1.e+34 ;
+		geospatial_lon_max:units = "degrees_east" ;
+		geospatial_lon_max:long_name = "easternmost longitude" ;
+		geospatial_lon_max:standard_name = "geospatial_lon_max" ;
+		geospatial_lon_max:ioos_category = "Location" ;
+		geospatial_lon_max:history = "From 492C19881104" ;
+	double geospatial_lat_min(traj) ;
+		geospatial_lat_min:missing_value = -1.e+34 ;
+		geospatial_lat_min:_FillValue = -1.e+34 ;
+		geospatial_lat_min:units = "degrees_north" ;
+		geospatial_lat_min:long_name = "southernmost latitude" ;
+		geospatial_lat_min:standard_name = "geospatial_lat_min" ;
+		geospatial_lat_min:ioos_category = "Location" ;
+		geospatial_lat_min:history = "From 492C19881104" ;
+	double geospatial_lat_max(traj) ;
+		geospatial_lat_max:missing_value = -1.e+34 ;
+		geospatial_lat_max:_FillValue = -1.e+34 ;
+		geospatial_lat_max:units = "degrees_north" ;
+		geospatial_lat_max:long_name = "northernmost latitude" ;
+		geospatial_lat_max:standard_name = "geospatial_lat_max" ;
+		geospatial_lat_max:ioos_category = "Location" ;
+		geospatial_lat_max:history = "From 492C19881104" ;
+	double time_coverage_start(traj) ;
+		time_coverage_start:missing_value = -1.e+34 ;
+		time_coverage_start:_FillValue = -1.e+34 ;
+		time_coverage_start:units = "seconds since 1970-01-01T00:00:00Z" ;
+		time_coverage_start:long_name = "beginning time" ;
+		time_coverage_start:standard_name = "time_coverage_start" ;
+		time_coverage_start:ioos_category = "Time" ;
+		time_coverage_start:history = "From 492C19881104" ;
+	double time_converage_end(traj) ;
+		time_converage_end:missing_value = -1.e+34 ;
+		time_converage_end:_FillValue = -1.e+34 ;
+		time_converage_end:units = "seconds since 1970-01-01T00:00:00Z" ;
+		time_converage_end:long_name = "ending time" ;
+		time_converage_end:standard_name = "time_converage_end" ;
+		time_converage_end:ioos_category = "Time" ;
+		time_converage_end:history = "From 492C19881104" ;
+	char investigators(traj, STRING1_9) ;
+		investigators:long_name = "investigators" ;
+		investigators:ioos_category = "Identifier" ;
+		investigators:history = "From 492C19881104" ;
+	char socat_version(traj, STRING1_4) ;
+		socat_version:long_name = "SOCAT version" ;
+		socat_version:ioos_category = "Identifier" ;
+		socat_version:history = "From 492C19881104" ;
+	char all_region_ids(traj, STRING1_3) ;
+		all_region_ids:long_name = "alphabetical list of all unique region IDs" ;
+		all_region_ids:ioos_category = "Identifier" ;
+		all_region_ids:history = "From 492C19881104" ;
+	char socat_doi(traj, STRING1_1) ;
+		socat_doi:long_name = "SOCAT DOI of this dataset" ;
+		socat_doi:ioos_category = "Identifier" ;
+		socat_doi:history = "From 492C19881104" ;
+	char qc_flag(traj, STRING1_1) ;
+		qc_flag:long_name = "QC flag" ;
+		qc_flag:ioos_category = "Quality" ;
+		qc_flag:history = "From 492C19881104" ;
+	int nobs_full(traj) ;
+		nobs_full:missing_value = -99 ;
+		nobs_full:_FillValue = -99 ;
+		nobs_full:long_name = "Count in original trajectory" ;
+		nobs_full:history = "From /home/data/socat/socatV3/492C/492C19881104.nc" ;
+	int nobs_deci(traj) ;
+		nobs_deci:missing_value = -99 ;
+		nobs_deci:_FillValue = -99 ;
+		nobs_deci:long_name = "Count in decimated trajectory" ;
+		nobs_deci:note = "Piecewise decimated" ;
+		nobs_deci:history = "From 492C19881104" ;
+	double obs(obs) ;
+		obs:point_spacing = "even" ;
+		obs:axis = "X" ;
+	int year(obs) ;
+		year:missing_value = -1 ;
+		year:_FillValue = -1 ;
+		year:long_name = "year" ;
+		year:ioos_category = "Time" ;
+		year:history = "From 492C19881104" ;
+	int month(obs) ;
+		month:missing_value = -1 ;
+		month:_FillValue = -1 ;
+		month:long_name = "month of year" ;
+		month:ioos_category = "Time" ;
+		month:history = "From 492C19881104" ;
+	int day(obs) ;
+		day:missing_value = -1 ;
+		day:_FillValue = -1 ;
+		day:long_name = "day of month" ;
+		day:ioos_category = "Time" ;
+		day:history = "From 492C19881104" ;
+	int hour(obs) ;
+		hour:missing_value = -1 ;
+		hour:_FillValue = -1 ;
+		hour:long_name = "hour of day" ;
+		hour:ioos_category = "Time" ;
+		hour:history = "From 492C19881104" ;
+	int minute(obs) ;
+		minute:missing_value = -1 ;
+		minute:_FillValue = -1 ;
+		minute:long_name = "minute of hour" ;
+		minute:ioos_category = "Time" ;
+		minute:history = "From 492C19881104" ;
+	double second(obs) ;
+		second:missing_value = -1.e+34 ;
+		second:_FillValue = -1.e+34 ;
+		second:long_name = "second of minute" ;
+		second:ioos_category = "Time" ;
+		second:history = "From 492C19881104" ;
+	double longitude(obs) ;
+		longitude:missing_value = -1.e+34 ;
+		longitude:_FillValue = -1.e+34 ;
+		longitude:units = "degrees_east" ;
+		longitude:long_name = "longitude" ;
+		longitude:standard_name = "longitude" ;
+		longitude:ioos_category = "Location" ;
+		longitude:history = "From 492C19881104" ;
+	double latitude(obs) ;
+		latitude:missing_value = -1.e+34 ;
+		latitude:_FillValue = -1.e+34 ;
+		latitude:units = "degrees_north" ;
+		latitude:long_name = "latitude" ;
+		latitude:standard_name = "latitude" ;
+		latitude:ioos_category = "Location" ;
+		latitude:history = "From 492C19881104" ;
+	double sample_depth(obs) ;
+		sample_depth:missing_value = -1.e+34 ;
+		sample_depth:_FillValue = -1.e+34 ;
+		sample_depth:units = "meters" ;
+		sample_depth:long_name = "sample depth" ;
+		sample_depth:positive = "down" ;
+		sample_depth:standard_name = "depth" ;
+		sample_depth:ioos_category = "Bathymetry" ;
+		sample_depth:history = "From 492C19881104" ;
+	double sal(obs) ;
+		sal:missing_value = -1.e+34 ;
+		sal:_FillValue = -1.e+34 ;
+		sal:units = "PSU" ;
+		sal:long_name = "salinity" ;
+		sal:standard_name = "sea_surface_salinity" ;
+		sal:ioos_category = "Salinity" ;
+		sal:history = "From 492C19881104" ;
+	double Temperature_equi(obs) ;
+		Temperature_equi:missing_value = -1.e+34 ;
+		Temperature_equi:_FillValue = -1.e+34 ;
+		Temperature_equi:units = "degrees C" ;
+		Temperature_equi:long_name = "equilibrator chamber temperature" ;
+		Temperature_equi:ioos_category = "Temperature" ;
+		Temperature_equi:history = "From 492C19881104" ;
+	double temp(obs) ;
+		temp:missing_value = -1.e+34 ;
+		temp:_FillValue = -1.e+34 ;
+		temp:units = "degrees C" ;
+		temp:long_name = "sea surface temperature" ;
+		temp:standard_name = "sea_surface_temperature" ;
+		temp:ioos_category = "Temperature" ;
+		temp:history = "From 492C19881104" ;
+	double Temperature_atm(obs) ;
+		Temperature_atm:missing_value = -1.e+34 ;
+		Temperature_atm:_FillValue = -1.e+34 ;
+		Temperature_atm:units = "degrees C" ;
+		Temperature_atm:long_name = "sea-level air temperature" ;
+		Temperature_atm:standard_name = "air_temperature_at_sea_level" ;
+		Temperature_atm:ioos_category = "Temperature" ;
+		Temperature_atm:history = "From 492C19881104" ;
+	double Pressure_equi(obs) ;
+		Pressure_equi:missing_value = -1.e+34 ;
+		Pressure_equi:_FillValue = -1.e+34 ;
+		Pressure_equi:units = "hPa" ;
+		Pressure_equi:long_name = "equilibrator chamber pressure" ;
+		Pressure_equi:ioos_category = "Pressure" ;
+		Pressure_equi:history = "From 492C19881104" ;
+	double Pressure_atm(obs) ;
+		Pressure_atm:missing_value = -1.e+34 ;
+		Pressure_atm:_FillValue = -1.e+34 ;
+		Pressure_atm:units = "hPa" ;
+		Pressure_atm:long_name = "sea-level air pressure" ;
+		Pressure_atm:standard_name = "air_pressure_at_sea_level" ;
+		Pressure_atm:ioos_category = "Pressure" ;
+		Pressure_atm:history = "From 492C19881104" ;
+	double xCO2_water_equi_temp_dry_ppm(obs) ;
+		xCO2_water_equi_temp_dry_ppm:missing_value = -1.e+34 ;
+		xCO2_water_equi_temp_dry_ppm:_FillValue = -1.e+34 ;
+		xCO2_water_equi_temp_dry_ppm:units = "umol/mol" ;
+		xCO2_water_equi_temp_dry_ppm:long_name = "water xCO2 dry using equi temp" ;
+		xCO2_water_equi_temp_dry_ppm:standard_name = "mole_fraction_of_carbon_dioxide_in_sea_water" ;
+		xCO2_water_equi_temp_dry_ppm:ioos_category = "CO2" ;
+		xCO2_water_equi_temp_dry_ppm:history = "From 492C19881104" ;
+	double xCO2_water_sst_dry_ppm(obs) ;
+		xCO2_water_sst_dry_ppm:missing_value = -1.e+34 ;
+		xCO2_water_sst_dry_ppm:_FillValue = -1.e+34 ;
+		xCO2_water_sst_dry_ppm:units = "umol/mol" ;
+		xCO2_water_sst_dry_ppm:long_name = "water xCO2 dry using sst" ;
+		xCO2_water_sst_dry_ppm:standard_name = "mole_fraction_of_carbon_dioxide_in_sea_water" ;
+		xCO2_water_sst_dry_ppm:ioos_category = "CO2" ;
+		xCO2_water_sst_dry_ppm:history = "From 492C19881104" ;
+	double xCO2_water_equi_temp_wet_ppm(obs) ;
+		xCO2_water_equi_temp_wet_ppm:missing_value = -1.e+34 ;
+		xCO2_water_equi_temp_wet_ppm:_FillValue = -1.e+34 ;
+		xCO2_water_equi_temp_wet_ppm:units = "umol/mol" ;
+		xCO2_water_equi_temp_wet_ppm:long_name = "water xCO2 wet using equi temp" ;
+		xCO2_water_equi_temp_wet_ppm:standard_name = "mole_fraction_of_carbon_dioxide_in_sea_water" ;
+		xCO2_water_equi_temp_wet_ppm:ioos_category = "CO2" ;
+		xCO2_water_equi_temp_wet_ppm:history = "From 492C19881104" ;
+	double xCO2_water_sst_wet_ppm(obs) ;
+		xCO2_water_sst_wet_ppm:missing_value = -1.e+34 ;
+		xCO2_water_sst_wet_ppm:_FillValue = -1.e+34 ;
+		xCO2_water_sst_wet_ppm:units = "umol/mol" ;
+		xCO2_water_sst_wet_ppm:long_name = "water xCO2 wet using sst" ;
+		xCO2_water_sst_wet_ppm:standard_name = "mole_fraction_of_carbon_dioxide_in_sea_water" ;
+		xCO2_water_sst_wet_ppm:ioos_category = "CO2" ;
+		xCO2_water_sst_wet_ppm:history = "From 492C19881104" ;
+	double pCO2_water_equi_temp(obs) ;
+		pCO2_water_equi_temp:missing_value = -1.e+34 ;
+		pCO2_water_equi_temp:_FillValue = -1.e+34 ;
+		pCO2_water_equi_temp:units = "uatm" ;
+		pCO2_water_equi_temp:long_name = "water pCO2 wet using equi temp" ;
+		pCO2_water_equi_temp:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		pCO2_water_equi_temp:ioos_category = "CO2" ;
+		pCO2_water_equi_temp:history = "From 492C19881104" ;
+	double pCO2_water_sst_100humidity_uatm(obs) ;
+		pCO2_water_sst_100humidity_uatm:missing_value = -1.e+34 ;
+		pCO2_water_sst_100humidity_uatm:_FillValue = -1.e+34 ;
+		pCO2_water_sst_100humidity_uatm:units = "uatm" ;
+		pCO2_water_sst_100humidity_uatm:long_name = "water pCO2 wet using sst" ;
+		pCO2_water_sst_100humidity_uatm:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		pCO2_water_sst_100humidity_uatm:ioos_category = "CO2" ;
+		pCO2_water_sst_100humidity_uatm:history = "From 492C19881104" ;
+	double fCO2_water_equi_uatm(obs) ;
+		fCO2_water_equi_uatm:missing_value = -1.e+34 ;
+		fCO2_water_equi_uatm:_FillValue = -1.e+34 ;
+		fCO2_water_equi_uatm:units = "uatm" ;
+		fCO2_water_equi_uatm:long_name = "water fCO2 wet using equi temp" ;
+		fCO2_water_equi_uatm:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_water_equi_uatm:ioos_category = "CO2" ;
+		fCO2_water_equi_uatm:history = "From 492C19881104" ;
+	double fCO2_water_sst_100humidity_uatm(obs) ;
+		fCO2_water_sst_100humidity_uatm:missing_value = -1.e+34 ;
+		fCO2_water_sst_100humidity_uatm:_FillValue = -1.e+34 ;
+		fCO2_water_sst_100humidity_uatm:units = "uatm" ;
+		fCO2_water_sst_100humidity_uatm:long_name = "water fCO2 wet using sst" ;
+		fCO2_water_sst_100humidity_uatm:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_water_sst_100humidity_uatm:ioos_category = "CO2" ;
+		fCO2_water_sst_100humidity_uatm:history = "From 492C19881104" ;
+	double xCO2_atm_dry_actual(obs) ;
+		xCO2_atm_dry_actual:missing_value = -1.e+34 ;
+		xCO2_atm_dry_actual:_FillValue = -1.e+34 ;
+		xCO2_atm_dry_actual:units = "umol/mol" ;
+		xCO2_atm_dry_actual:long_name = "actual air xCO2 dry" ;
+		xCO2_atm_dry_actual:standard_name = "mole_fraction_of_carbon_dioxide_in_air" ;
+		xCO2_atm_dry_actual:ioos_category = "CO2" ;
+		xCO2_atm_dry_actual:history = "From 492C19881104" ;
+	double xCO2_atm_dry_interp(obs) ;
+		xCO2_atm_dry_interp:missing_value = -1.e+34 ;
+		xCO2_atm_dry_interp:_FillValue = -1.e+34 ;
+		xCO2_atm_dry_interp:units = "umol/mol" ;
+		xCO2_atm_dry_interp:long_name = "interpolated air xCO2 dry" ;
+		xCO2_atm_dry_interp:standard_name = "mole_fraction_of_carbon_dioxide_in_air" ;
+		xCO2_atm_dry_interp:ioos_category = "CO2" ;
+		xCO2_atm_dry_interp:history = "From 492C19881104" ;
+	double pCO2_atm_wet_actual(obs) ;
+		pCO2_atm_wet_actual:missing_value = -1.e+34 ;
+		pCO2_atm_wet_actual:_FillValue = -1.e+34 ;
+		pCO2_atm_wet_actual:units = "uatm" ;
+		pCO2_atm_wet_actual:long_name = "actual air pCO2 wet" ;
+		pCO2_atm_wet_actual:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_air" ;
+		pCO2_atm_wet_actual:ioos_category = "CO2" ;
+		pCO2_atm_wet_actual:history = "From 492C19881104" ;
+	double pCO2_atm_wet_interp(obs) ;
+		pCO2_atm_wet_interp:missing_value = -1.e+34 ;
+		pCO2_atm_wet_interp:_FillValue = -1.e+34 ;
+		pCO2_atm_wet_interp:units = "uatm" ;
+		pCO2_atm_wet_interp:long_name = "interpolated air pCO2 wet" ;
+		pCO2_atm_wet_interp:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_air" ;
+		pCO2_atm_wet_interp:ioos_category = "CO2" ;
+		pCO2_atm_wet_interp:history = "From 492C19881104" ;
+	double fCO2_atm_wet_actual(obs) ;
+		fCO2_atm_wet_actual:missing_value = -1.e+34 ;
+		fCO2_atm_wet_actual:_FillValue = -1.e+34 ;
+		fCO2_atm_wet_actual:units = "uatm" ;
+		fCO2_atm_wet_actual:long_name = "actual air fCO2 wet" ;
+		fCO2_atm_wet_actual:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_air" ;
+		fCO2_atm_wet_actual:ioos_category = "CO2" ;
+		fCO2_atm_wet_actual:history = "From 492C19881104" ;
+	double fCO2_atm_wet_interp(obs) ;
+		fCO2_atm_wet_interp:missing_value = -1.e+34 ;
+		fCO2_atm_wet_interp:_FillValue = -1.e+34 ;
+		fCO2_atm_wet_interp:units = "uatm" ;
+		fCO2_atm_wet_interp:long_name = "interpolated air fCO2 wet" ;
+		fCO2_atm_wet_interp:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_air" ;
+		fCO2_atm_wet_interp:ioos_category = "CO2" ;
+		fCO2_atm_wet_interp:history = "From 492C19881104" ;
+	double delta_xCO2(obs) ;
+		delta_xCO2:missing_value = -1.e+34 ;
+		delta_xCO2:_FillValue = -1.e+34 ;
+		delta_xCO2:units = "umol/mol" ;
+		delta_xCO2:long_name = "water xCO2 minus atmospheric xCO2" ;
+		delta_xCO2:ioos_category = "CO2" ;
+		delta_xCO2:history = "From 492C19881104" ;
+	double delta_pCO2(obs) ;
+		delta_pCO2:missing_value = -1.e+34 ;
+		delta_pCO2:_FillValue = -1.e+34 ;
+		delta_pCO2:units = "uatm" ;
+		delta_pCO2:long_name = "water pCO2 minus atmospheric pCO2" ;
+		delta_pCO2:ioos_category = "CO2" ;
+		delta_pCO2:history = "From 492C19881104" ;
+	double delta_fCO2(obs) ;
+		delta_fCO2:missing_value = -1.e+34 ;
+		delta_fCO2:_FillValue = -1.e+34 ;
+		delta_fCO2:units = "uatm" ;
+		delta_fCO2:long_name = "water fCO2 minus atmospheric fCO2" ;
+		delta_fCO2:ioos_category = "CO2" ;
+		delta_fCO2:history = "From 492C19881104" ;
+	double xH2O_equi(obs) ;
+		xH2O_equi:missing_value = -1.e+34 ;
+		xH2O_equi:_FillValue = -1.e+34 ;
+		xH2O_equi:units = "mmol/mol" ;
+		xH2O_equi:long_name = "xH2O in equil air sample" ;
+		xH2O_equi:standard_name = "mole_fraction_of_water_in_air" ;
+		xH2O_equi:ioos_category = "Humidity" ;
+		xH2O_equi:history = "From 492C19881104" ;
+	double relative_humidity(obs) ;
+		relative_humidity:missing_value = -1.e+34 ;
+		relative_humidity:_FillValue = -1.e+34 ;
+		relative_humidity:long_name = "relative humidity" ;
+		relative_humidity:standard_name = "relative_humidity" ;
+		relative_humidity:ioos_category = "Humidity" ;
+		relative_humidity:history = "From 492C19881104" ;
+	double specific_humidity(obs) ;
+		specific_humidity:missing_value = -1.e+34 ;
+		specific_humidity:_FillValue = -1.e+34 ;
+		specific_humidity:long_name = "specific humidity" ;
+		specific_humidity:standard_name = "specific_humidity" ;
+		specific_humidity:ioos_category = "Humidity" ;
+		specific_humidity:history = "From 492C19881104" ;
+	double ship_speed(obs) ;
+		ship_speed:missing_value = -1.e+34 ;
+		ship_speed:_FillValue = -1.e+34 ;
+		ship_speed:units = "knots" ;
+		ship_speed:long_name = "measured ship speed" ;
+		ship_speed:standard_name = "platform_speed_wrt_ground" ;
+		ship_speed:history = "From 492C19881104" ;
+	double ship_dir(obs) ;
+		ship_dir:missing_value = -1.e+34 ;
+		ship_dir:_FillValue = -1.e+34 ;
+		ship_dir:units = "degrees" ;
+		ship_dir:long_name = "ship direction" ;
+		ship_dir:standard_name = "platform_course" ;
+		ship_dir:history = "From 492C19881104" ;
+	double wind_speed_true(obs) ;
+		wind_speed_true:missing_value = -1.e+34 ;
+		wind_speed_true:_FillValue = -1.e+34 ;
+		wind_speed_true:units = "m/s" ;
+		wind_speed_true:long_name = "true wind speed" ;
+		wind_speed_true:standard_name = "wind_speed" ;
+		wind_speed_true:ioos_category = "Wind" ;
+		wind_speed_true:history = "From 492C19881104" ;
+	double wind_speed_rel(obs) ;
+		wind_speed_rel:missing_value = -1.e+34 ;
+		wind_speed_rel:_FillValue = -1.e+34 ;
+		wind_speed_rel:units = "m/s" ;
+		wind_speed_rel:long_name = "relative wind speed" ;
+		wind_speed_rel:standard_name = "wind_speed" ;
+		wind_speed_rel:ioos_category = "Wind" ;
+		wind_speed_rel:history = "From 492C19881104" ;
+	double wind_dir_true(obs) ;
+		wind_dir_true:missing_value = -1.e+34 ;
+		wind_dir_true:_FillValue = -1.e+34 ;
+		wind_dir_true:units = "degrees" ;
+		wind_dir_true:long_name = "true wind direction" ;
+		wind_dir_true:standard_name = "wind_from_direction" ;
+		wind_dir_true:ioos_category = "Wind" ;
+		wind_dir_true:history = "From 492C19881104" ;
+	double wind_dir_rel(obs) ;
+		wind_dir_rel:missing_value = -1.e+34 ;
+		wind_dir_rel:_FillValue = -1.e+34 ;
+		wind_dir_rel:units = "degrees" ;
+		wind_dir_rel:long_name = "relative wind direction" ;
+		wind_dir_rel:standard_name = "wind_from_direction" ;
+		wind_dir_rel:ioos_category = "Wind" ;
+		wind_dir_rel:history = "From 492C19881104" ;
+	double woa_sss(obs) ;
+		woa_sss:missing_value = -1.e+34 ;
+		woa_sss:_FillValue = -1.e+34 ;
+		woa_sss:units = "PSU" ;
+		woa_sss:long_name = "salinity from World Ocean Atlas 2005" ;
+		woa_sss:standard_name = "sea_surface_salinity" ;
+		woa_sss:ioos_category = "Salinity" ;
+		woa_sss:history = "From 492C19881104" ;
+	double pressure_ncep_slp(obs) ;
+		pressure_ncep_slp:missing_value = -1.e+34 ;
+		pressure_ncep_slp:_FillValue = -1.e+34 ;
+		pressure_ncep_slp:units = "hPa" ;
+		pressure_ncep_slp:long_name = "sea level air pressure from NCEP/NCAR reanalysis" ;
+		pressure_ncep_slp:standard_name = "air_pressure_at_sea_level" ;
+		pressure_ncep_slp:ioos_category = "Pressure" ;
+		pressure_ncep_slp:history = "From 492C19881104" ;
+	double fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm(obs) ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm:missing_value = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm:_FillValue = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm:units = "uatm" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm:long_name = "fCO2 from xCO2_water_equi_temp_dry_ppm, Pressure_equi, sal" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm:ioos_category = "CO2" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm:history = "From 492C19881104" ;
+	double fCO2_insitu_from_xCO2_water_sst_dry_ppm(obs) ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm:missing_value = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm:_FillValue = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm:units = "uatm" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm:long_name = "fCO2 from xCO2_water_sst_dry_ppm, Pressure_equi, sal" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm:ioos_category = "CO2" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm:history = "From 492C19881104" ;
+	double fCO2_from_pCO2_water_water_equi_temp(obs) ;
+		fCO2_from_pCO2_water_water_equi_temp:missing_value = -1.e+34 ;
+		fCO2_from_pCO2_water_water_equi_temp:_FillValue = -1.e+34 ;
+		fCO2_from_pCO2_water_water_equi_temp:units = "uatm" ;
+		fCO2_from_pCO2_water_water_equi_temp:long_name = "fCO2 from pCO2_water_equi_temp, Pressure_equi, sal" ;
+		fCO2_from_pCO2_water_water_equi_temp:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_from_pCO2_water_water_equi_temp:ioos_category = "CO2" ;
+		fCO2_from_pCO2_water_water_equi_temp:history = "From 492C19881104" ;
+	double fCO2_from_pCO2_water_sst_100humidity_uatm(obs) ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm:missing_value = -1.e+34 ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm:_FillValue = -1.e+34 ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm:units = "uatm" ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm:long_name = "fCO2 from pCO2_water_sst_100humidity_uatm, Pressure_equi, sal" ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm:ioos_category = "CO2" ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm:history = "From 492C19881104" ;
+	double fCO2_insitu_from_fCO2_water_equi_uatm(obs) ;
+		fCO2_insitu_from_fCO2_water_equi_uatm:missing_value = -1.e+34 ;
+		fCO2_insitu_from_fCO2_water_equi_uatm:_FillValue = -1.e+34 ;
+		fCO2_insitu_from_fCO2_water_equi_uatm:units = "uatm" ;
+		fCO2_insitu_from_fCO2_water_equi_uatm:long_name = "fCO2 from fCO2_water_equi_temp, Pressure_equi, sal" ;
+		fCO2_insitu_from_fCO2_water_equi_uatm:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_insitu_from_fCO2_water_equi_uatm:ioos_category = "CO2" ;
+		fCO2_insitu_from_fCO2_water_equi_uatm:history = "From 492C19881104" ;
+	double fCO2_insitu_from_fCO2_water_sst_100humidty_uatm(obs) ;
+		fCO2_insitu_from_fCO2_water_sst_100humidty_uatm:missing_value = -1.e+34 ;
+		fCO2_insitu_from_fCO2_water_sst_100humidty_uatm:_FillValue = -1.e+34 ;
+		fCO2_insitu_from_fCO2_water_sst_100humidty_uatm:units = "uatm" ;
+		fCO2_insitu_from_fCO2_water_sst_100humidty_uatm:long_name = "fCO2 from fCO2_water_sst_100humidity_uatm, Pressure_equi, sal" ;
+		fCO2_insitu_from_fCO2_water_sst_100humidty_uatm:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_insitu_from_fCO2_water_sst_100humidty_uatm:ioos_category = "CO2" ;
+		fCO2_insitu_from_fCO2_water_sst_100humidty_uatm:history = "From 492C19881104" ;
+	double fCO2_from_pCO2_water_water_equi_temp_ncep(obs) ;
+		fCO2_from_pCO2_water_water_equi_temp_ncep:missing_value = -1.e+34 ;
+		fCO2_from_pCO2_water_water_equi_temp_ncep:_FillValue = -1.e+34 ;
+		fCO2_from_pCO2_water_water_equi_temp_ncep:units = "uatm" ;
+		fCO2_from_pCO2_water_water_equi_temp_ncep:long_name = "fCO2 from pCO2_water_equi_temp, NCEP SLP, sal" ;
+		fCO2_from_pCO2_water_water_equi_temp_ncep:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_from_pCO2_water_water_equi_temp_ncep:ioos_category = "CO2" ;
+		fCO2_from_pCO2_water_water_equi_temp_ncep:history = "From 492C19881104" ;
+	double fCO2_from_pCO2_water_sst_100humidity_uatm_ncep(obs) ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm_ncep:missing_value = -1.e+34 ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm_ncep:_FillValue = -1.e+34 ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm_ncep:units = "uatm" ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm_ncep:long_name = "fCO2 from pCO2_water_sst_100humidity_uatm, NCEP SLP, sal" ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm_ncep:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm_ncep:ioos_category = "CO2" ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm_ncep:history = "From 492C19881104" ;
+	double fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa(obs) ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa:missing_value = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa:_FillValue = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa:units = "uatm" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa:long_name = "fCO2 from xCO2_water_equi_temp_dry_ppm, Pressure_equi, WOA SSS" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa:ioos_category = "CO2" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa:history = "From 492C19881104" ;
+	double fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa(obs) ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa:missing_value = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa:_FillValue = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa:units = "uatm" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa:long_name = "fCO2 from xCO2_water_sst_dry_ppm, Pressure_equi, WOA SSS" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa:ioos_category = "CO2" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa:history = "From 492C19881104" ;
+	double fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep(obs) ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep:missing_value = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep:_FillValue = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep:units = "uatm" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep:long_name = "fCO2 from xCO2_water_equi_temp_dry_ppm, NCEP SLP, sal" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep:ioos_category = "CO2" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep:history = "From 492C19881104" ;
+	double fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep(obs) ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep:missing_value = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep:_FillValue = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep:units = "uatm" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep:long_name = "fCO2 from xCO2_water_sst_dry_ppm, NCEP SLP, sal" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep:ioos_category = "CO2" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep:history = "From 492C19881104" ;
+	double fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa(obs) ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa:missing_value = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa:_FillValue = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa:units = "uatm" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa:long_name = "fCO2 from xCO2_water_equi_temp_dry_ppm, NCEP SLP, WOA SSS" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa:ioos_category = "CO2" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa:history = "From 492C19881104" ;
+	double fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa(obs) ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa:missing_value = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa:_FillValue = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa:units = "uatm" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa:long_name = "fCO2 from xCO2_water_sst_dry_ppm, NCEP SLP, WOA SSS" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa:ioos_category = "CO2" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa:history = "From 492C19881104" ;
+	double fCO2_recommended(obs) ;
+		fCO2_recommended:missing_value = -1.e+34 ;
+		fCO2_recommended:_FillValue = -1.e+34 ;
+		fCO2_recommended:units = "uatm" ;
+		fCO2_recommended:long_name = "fCO2 recommended" ;
+		fCO2_recommended:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_recommended:ioos_category = "CO2" ;
+		fCO2_recommended:history = "From 492C19881104" ;
+	int fCO2_source(obs) ;
+		fCO2_source:missing_value = -1 ;
+		fCO2_source:_FillValue = -1 ;
+		fCO2_source:long_name = "Algorithm number for recommended fCO2" ;
+		fCO2_source:ioos_category = "Identifier" ;
+		fCO2_source:history = "From 492C19881104" ;
+	double delta_temp(obs) ;
+		delta_temp:missing_value = -1.e+34 ;
+		delta_temp:_FillValue = -1.e+34 ;
+		delta_temp:units = "degrees C" ;
+		delta_temp:long_name = "Equilibrator Temp - SST" ;
+		delta_temp:ioos_category = "Temperature" ;
+		delta_temp:history = "From 492C19881104" ;
+	double calc_speed(obs) ;
+		calc_speed:missing_value = -1.e+34 ;
+		calc_speed:_FillValue = -1.e+34 ;
+		calc_speed:units = "knots" ;
+		calc_speed:long_name = "calculated ship speed" ;
+		calc_speed:standard_name = "platform_speed_wrt_ground" ;
+		calc_speed:history = "From 492C19881104" ;
+	double etopo2(obs) ;
+		etopo2:missing_value = -1.e+34 ;
+		etopo2:_FillValue = -1.e+34 ;
+		etopo2:units = "meters" ;
+		etopo2:long_name = "bathymetry from ETOPO2" ;
+		etopo2:positive = "down" ;
+		etopo2:standard_name = "sea_floor_depth" ;
+		etopo2:ioos_category = "Bathymetry" ;
+		etopo2:history = "From 492C19881104" ;
+	double gvCO2(obs) ;
+		gvCO2:missing_value = -1.e+34 ;
+		gvCO2:_FillValue = -1.e+34 ;
+		gvCO2:units = "umol/mol" ;
+		gvCO2:long_name = "GlobalView xCO2" ;
+		gvCO2:standard_name = "mole_fraction_of_carbon_dioxide_in_air" ;
+		gvCO2:ioos_category = "CO2" ;
+		gvCO2:history = "From 492C19881104" ;
+	double dist_to_land(obs) ;
+		dist_to_land:missing_value = -1.e+34 ;
+		dist_to_land:_FillValue = -1.e+34 ;
+		dist_to_land:units = "km" ;
+		dist_to_land:long_name = "distance to land" ;
+		dist_to_land:ioos_category = "Location" ;
+		dist_to_land:history = "From 492C19881104" ;
+	double day_of_year(obs) ;
+		day_of_year:missing_value = -1.e+34 ;
+		day_of_year:_FillValue = -1.e+34 ;
+		day_of_year:units = "days" ;
+		day_of_year:long_name = "day of the year" ;
+		day_of_year:ioos_category = "Time" ;
+		day_of_year:history = "From 492C19881104" ;
+	double time(obs) ;
+		time:missing_value = -1.e+34 ;
+		time:_FillValue = -1.e+34 ;
+		time:units = "seconds since 1970-01-01T00:00:00Z" ;
+		time:long_name = "time" ;
+		time:standard_name = "time" ;
+		time:ioos_category = "Time" ;
+		time:time_origin = "01-JAN-1970 00:00:00" ;
+		time:history = "From 492C19881104" ;
+	double lon360(obs) ;
+		lon360:missing_value = -1.e+34 ;
+		lon360:_FillValue = -1.e+34 ;
+		lon360:long_name = "longitude" ;
+		lon360:units = "degrees_east" ;
+		lon360:ioos_category = "Location" ;
+		lon360:standard_name = "Longitude" ;
+		lon360:history = "added to /home/data/socat/socatV3/492C/492C19881104.nc" ;
+	int sample_number(obs) ;
+		sample_number:missing_value = -1 ;
+		sample_number:_FillValue = -1 ;
+		sample_number:long_name = "sequence number for decimated dataset" ;
+		sample_number:history = "From 492C19881104" ;
+	char WOCE_CO2_water(obs, STRING1_1) ;
+		WOCE_CO2_water:long_name = "WOCE flag for water CO2" ;
+		WOCE_CO2_water:ioos_category = "Quality" ;
+		WOCE_CO2_water:history = "From 492C19881104" ;
+	char WOCE_CO2_atm(obs, STRING1_1) ;
+		WOCE_CO2_atm:long_name = "WOCE flag for air CO2" ;
+		WOCE_CO2_atm:ioos_category = "Quality" ;
+		WOCE_CO2_atm:history = "From 492C19881104" ;
+	char region_id(obs, STRING1_1) ;
+		region_id:long_name = "SOCAT region ID" ;
+		region_id:ioos_category = "Identifier" ;
+		region_id:history = "From 492C19881104" ;
+	char tmonth(obs, STRING1_3) ;
+		tmonth:long_name = "month of year" ;
+		tmonth:history = "added to /home/data/socat/socatV3/492C/492C19881104.nc" ;
+
+// global attributes:
+		:history = "FERRET V7.1  18-Apr-17" ;
+		: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/forecast_actual.gif b/bench/test_results/forecast_actual.gif
new file mode 100644
index 0000000..a7de84e
Binary files /dev/null and b/bench/test_results/forecast_actual.gif differ
diff --git a/bench/test_results/forecast_actual.png b/bench/test_results/forecast_actual.png
new file mode 100644
index 0000000..3690685
Binary files /dev/null and b/bench/test_results/forecast_actual.png differ
diff --git a/bench/test_results/forecast_diagview.gif b/bench/test_results/forecast_diagview.gif
new file mode 100644
index 0000000..72624f3
Binary files /dev/null and b/bench/test_results/forecast_diagview.gif differ
diff --git a/bench/test_results/forecast_diagview.png b/bench/test_results/forecast_diagview.png
new file mode 100644
index 0000000..1122067
Binary files /dev/null and b/bench/test_results/forecast_diagview.png differ
diff --git a/bench/test_results/forecast_leadview.gif b/bench/test_results/forecast_leadview.gif
new file mode 100644
index 0000000..6a77c95
Binary files /dev/null and b/bench/test_results/forecast_leadview.gif differ
diff --git a/bench/test_results/forecast_leadview.png b/bench/test_results/forecast_leadview.png
new file mode 100644
index 0000000..5a2ea39
Binary files /dev/null and b/bench/test_results/forecast_leadview.png differ
diff --git a/bench/test_results/gif_dashbug.gif b/bench/test_results/gif_dashbug.gif
index 1c08529..e580d9e 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/gif_dashbug.png b/bench/test_results/gif_dashbug.png
index 8082e84..43b6288 100644
Binary files a/bench/test_results/gif_dashbug.png and b/bench/test_results/gif_dashbug.png differ
diff --git a/bench/test_results/graticules.pdf b/bench/test_results/graticules.pdf
index c3a962f..17853a3 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
new file mode 100644
index 0000000..4fb79d9
Binary files /dev/null and b/bench/test_results/legend_1d_plots.gif differ
diff --git a/bench/test_results/legend_1d_plots.png b/bench/test_results/legend_1d_plots.png
new file mode 100644
index 0000000..d867ff3
Binary files /dev/null and b/bench/test_results/legend_1d_plots.png differ
diff --git a/bench/test_results/levels_one_level.gif b/bench/test_results/levels_one_level.gif
new file mode 100644
index 0000000..c42f3b9
Binary files /dev/null and b/bench/test_results/levels_one_level.gif differ
diff --git a/bench/test_results/levels_one_level.png b/bench/test_results/levels_one_level.png
new file mode 100644
index 0000000..42d1d64
Binary files /dev/null and b/bench/test_results/levels_one_level.png differ
diff --git a/bench/test_results/linecolors.pdf b/bench/test_results/linecolors.pdf
index 9e375bb..b35f327 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
new file mode 100644
index 0000000..339520c
Binary files /dev/null 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
new file mode 100644
index 0000000..17ce5a7
Binary files /dev/null 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 3fd6f00..9b2a541 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 4f0ce45..1c83d45 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 388ba5c..e813e3d 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 37f81be..fae4d24 100644
--- a/bench/test_results/pyferret_run_tests_err
+++ b/bench/test_results/pyferret_run_tests_err
@@ -1,5 +1,5 @@
 Using FERRET /home/flat/ksmith/PyFerret/bin/pyferret
--rwxr-xr-x. 1 ksmith oerdnewp 1387 Jun 17 15:17 /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
@@ -10,7 +10,6 @@ FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /hom
 FER_DESCR=.
 FER_DIR=.
 FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/flat/ksmith/PyFerret/ext_func/libs
 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=.
@@ -279,12 +278,30 @@ Benchmark scripts that will be run:
    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
@@ -294,9 +311,9 @@ Benchmark scripts that will be run:
    testfergrid.py
    testferpyvar.py
    testfermethods.py
-Beginning at Fri Jun 17 15:17:18 PDT 2016
+Beginning at Tue Apr 18 17:14:32 PDT 2017
 *** Running ferret script: bn_syntax.jnl
- Cached data cleared from memory
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
@@ -327,7 +344,6 @@ that
  **ERROR: command syntax: \!
 \! ignore (err cuz bang gets escaped)
 *** Running ferret script: bn_dollar.jnl
- Cached data cleared from memory
  **ERROR: invalid command: Value needed for argument 3 in command
           GO "bn_dollar.jnl" "hello"
 message/cont $3
@@ -377,7 +393,6 @@ say ($100)
           GO "bn_dollar.jnl" "hello"
 say ($10)0
 *** Running ferret script: bn_grave.jnl
- Cached data cleared from memory
  **ERROR: command syntax: unpaired grave accents: message/continue "2+2=`2+2"
 message/continue "2+2=`2+2"
  **ERROR: variable unknown or not in data set: GARBAGE
@@ -419,7 +434,6 @@ MESSAGE/CONTINUE `sst,return=Xsize`
           sst,return=trash
 MESSAGE/CONTINUE `sst,return=trash`
 *** Running ferret script: bn_letd.jnl
- Cached data cleared from memory
  **ERROR: unknown data set: NOEXIST
 DEFINE VARIABLE/d=noexist a = b
  **ERROR: variable unknown or not in data set: AIRT[D=GT4D011]
@@ -429,7 +443,6 @@ can var
  LISTing to file v12file.nc
  LISTing to file v1file.nc
 *** Running ferret script: bn_if.jnl
- Cached data cleared from memory
  **ERROR: invalid command: ENDIF can only be used in an IF clause
 ENDIF
  **ERROR: command syntax: ELIF cannot be used in single line IF
@@ -438,16 +451,15 @@ IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
  **ERROR: command syntax: Trash after ENDIF
           IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
 IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
-           *** NOTE: Unclosed IF statement ... assuming ENDIF
+           *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./bn_if.sub
  **ERROR: invalid command: ELSE can only be used between IF and ENDIF
 else
  **ERROR: invalid command: ENDIF can only be used in an IF clause
 endif
  **ERROR: invalid command: ELIF can only be used between IF and ENDIF
 elif
-           *** NOTE: Unclosed IF statement ... assuming ENDIF
+           *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./bn_if.jnl
 *** Running ferret script: bn_expressions.jnl
- Cached data cleared from memory
  **ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
 LIST/ORDER=X  IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
@@ -458,7 +470,6 @@ DEFINE VARIABLE A = IF I LT 5 THEN I ELSE -9
  **ERROR: variable unknown or not in data set: A1
 load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
 *** Running ferret script: bn_geometry.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -469,7 +480,6 @@ load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
           expression has 5 points (I=1:5)
 LIST X[I=1:5] - X[I=6:9]
 *** Running ferret script: bn_output.jnl
- Cached data cleared from memory
  LISTing to file WV.J34K56L7
  LISTing to file test.dat
  LISTing to file test.dat
@@ -477,15 +487,11 @@ LIST X[I=1:5] - X[I=6:9]
  **ERROR: invalid subcommand: File type no longer supported TMA
 LIST/FILE=test.gt/FORMAT=TMAP/L=1:3 v,v^0.5
 *** Running ferret script: bn_in_plane.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_compress.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 *** Running ferret script: bn_interpolate.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_regrid.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis XFINE
@@ -494,10 +500,8 @@ Replacing definition of axis YFINE
 Replacing definition of axis YCOARSE
 Replacing definition of grid G24
 *** Running ferret script: bn_ez.jnl
- Cached data cleared from memory
  LISTing to file test.unf
 *** Running ferret script: bn_plot.jnl
- Cached data cleared from memory
  **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
@@ -561,7 +565,6 @@ cont/over/i=1:10/thick=4 i
           Value must be positive
 cont/over/i=1:10/sigdig=-1 i
 *** Running ferret script: bn_curv.jnl
- Cached data cleared from memory
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
 Replacing definition of axis LON_FIELD_I_AXIS
@@ -590,7 +593,6 @@ shade/nolabel sst, x_page[j=1:12], y_page
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
 *** Running ferret script: bn_symbols.jnl
- Cached data cleared from memory
  **ERROR: command syntax: illegal name: TEST*
 define symbol test* = hello
  **ERROR: invalid command: Value needed for argument 5 in command
@@ -609,9 +611,7 @@ message/continue ($t2"|solong>really hello|bye|")
            *** NOTE: symbol t2 received was: hello
            *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
 *** Running ferret script: bn_comma_delimited.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_dynamic_grids.jnl
- Cached data cleared from memory
  **ERROR: unknown defining grid: GX=NOEXIST
 list temp[gx=noexist]
  **ERROR: command syntax: P=NOEXIST
@@ -654,12 +654,8 @@ list tu
 list tu
  **ERROR: regridding: Axis orientation not matching request:GX=PSYU
 list tu
- Cached data cleared from memory
- **ERROR: request exceeds memory setting: 50 Mwords were requested.
+ **ERROR: request exceeds memory setting
 list temp[gz=z999999,z=5:15]
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
- Cached data cleared from memory
            *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
            *** NOTE: Ambiguous coordinates on X axis: X[X=0.1:10:1.5] +  X[X=1.1:11:1.5]
            *** NOTE: Ambiguous coordinates on X axis: TEMP[I=101:120:4]+X[I=101:120:4]
@@ -681,7 +677,6 @@ list a
           Axis extremes are I=1:8
 list a
 *** Running ferret script: bn_cdf.jnl
- Cached data cleared from memory
  LISTing to file test0a.cdf
  LISTing to file test0b.cdf
  LISTing to file test0c.cdf
@@ -794,13 +789,11 @@ list/format=cdf/l=13/append/file=test_abs.cdf l1
  LISTing to file test_fil.cdf
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
 *** Running ferret script: bn_regrid_transforms.jnl
- Cached data cleared from memory
  **ERROR: regridding: G=W - more than 1 target grid
 load temp[g=u,g=w]
  **ERROR: unknown defining grid: G=X --> g=user-or-pseudo-var not allowed
 load temp[g=x]
 *** Running ferret script: bn_axis_limits.jnl
- Cached data cleared from memory
            *** NOTE: /XLIMITS and /YLIMITS are deprecated.
            *** NOTE: Use /HLIMITS and /VLIMITS instead.
  **ERROR: command syntax: xlimits
@@ -820,9 +813,7 @@ plot/xlimits=1:2: i
  **ERROR: invalid command: Must give a range: xlimits=5:5
 plot/xlimits=5:5 i
 *** Running ferret script: bn_movie.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_ez_order.jnl
- Cached data cleared from memory
  LISTing to file test_perm10.dat
  LISTing to file test_perm24.dat
  LISTing to file test_perm48.dat
@@ -832,11 +823,8 @@ plot/xlimits=5:5 i
  LISTing to file test_stream.unf
  LISTing to file test_stream.unf
 *** Running ferret script: bn_user.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_stream.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_mc.jnl
- Cached data cleared from memory
  **TMAP ERR: Attempt to access unsupported feature
              Descriptor requests delta of 0, please use 1
              Data set: ./coads_clim_bad_delta.des
@@ -848,71 +836,72 @@ set data coads_clim_step_order.des
              coads_clim.001b
 list sst
 *** Running ferret script: bn_negative_t.jnl
- Cached data cleared from memory
  **ERROR: regridding: only @ASN regridding between calendar and
           non-calendar axes: A
 LIST a[gt=tcal]
 *** Running ferret script: bn_xact_regrid.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_gc_functions.jnl
- Cached data cleared from memory
            *** NOTE: /XLIMITS and /YLIMITS are deprecated.
            *** NOTE: Use /HLIMITS and /VLIMITS instead.
 *** Running ferret script: bn491_bug_fixes.jnl
- Cached data cleared from memory
  LISTing to file test.cdf
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_odd_variable_name.jnl
- Cached data cleared from memory
- Cached data cleared from memory
  **ERROR: command syntax: v2-and-minus
           - before and is illegal
 list v2-and-minus
- **ERROR: dimensions improperly specified: 99999999 words were requested.
+ **ERROR: illegal limits: Limits must be provided for pseudo-variable.
 list x
-           *** NOTE: Check for unspecified limits on an ABSTRACT axis
-           *** NOTE: Use the SHOW GRID command to see the axes
- **ERROR: dimensions improperly specified: 99999999 words were requested.
+ **ERROR: illegal limits: Limits must be provided for pseudo-variable.
 list i
-           *** NOTE: Check for unspecified limits on an ABSTRACT axis
-           *** NOTE: Use the SHOW GRID command to see the axes
  **ERROR: command syntax: v2-and-minus[i=5:15 at ddc]
           - before and is illegal
 list v2-and-minus[i=5:15 at ddc]
- Cached data cleared from memory
 *** Running ferret script: bn_test_stream.jnl
- Cached data cleared from memory
  LISTing to file permutedBinaryTest.dat
  LISTing to file junk.dat
- **ERROR: request exceeds memory setting: 48000 Mwords were requested.
+ **ERROR: request exceeds memory setting
 load num
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 25.6 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 0 (0%)
+    The size of the requested object was: : 24000000000 (93750%)
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
 Replacing definition of axis TAX
- **ERROR: request exceeds memory setting: 2000 Mwords were requested.
+ **ERROR: request exceeds memory setting
 load num
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 25.6 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 0 (0%)
+    The size of the requested object was: : 1000000000 (3906%)
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 Replacing definition of axis ZAX
@@ -928,7 +917,6 @@ SET DATA/EZ/var=num/order=vxyzt/grid=mygrid junk.dat
  **ERROR: invalid command: invalid argument for /TYPE
 SET DATA/EZ/var=num/type=i3/grid=mygrid/form=stream junk.dat
 *** Running ferret script: bn_define_axes.jnl
- Cached data cleared from memory
 Replacing definition of axis XAX
 Replacing definition of axis XAX
 Replacing definition of axis XAX
@@ -969,13 +957,8 @@ Replacing definition of axis XAX
 Replacing definition of axis XAX
            *** NOTE: Axis has repeated values -- micro-adjusting ...
 Replacing definition of axis XAX
-           *** NOTE: Axis has repeated values -- micro-adjusting ...
- **ERROR: improper grid or axis definition: unrepairable repeated axis coords
-define axis/from/x/name=xax {6,6}
-           *** NOTE: Axis has repeated values -- micro-adjusting ...
- **ERROR: improper grid or axis definition: unrepairable repeated axis coords
-define axis/from/x/name=xax/edges {6,6}
-           *** NOTE: Axis has repeated values -- micro-adjusting ...
+Replacing definition of axis XAX
+Replacing definition of axis XAX
  **ERROR: improper grid or axis definition: unrepairable repeated axis coords
 define axis/from/x/name=xax/edges {6,6,6}
            *** NOTE: Axis has repeated values -- micro-adjusting ...
@@ -986,45 +969,54 @@ Replacing definition of axis XAX2
            *** NOTE: (fyi) units are not subject to auto-conversion: BLAHS
 Replacing definition of axis XAX2
 *** Running ferret script: bn_polygon.jnl
- Cached data cleared from memory
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
 *** Running ferret script: bn500_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file out.cdf
  LISTing to file out.cdf
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: command syntax: noname(i)
           unknown function "noname"
 stat i, noname(i)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_sample.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1062,7 +1054,6 @@ stat i, noname(i)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 *** Running ferret script: bn_strides_revs_perms.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1082,23 +1073,19 @@ LIST/i=2:4:2 VAR
            *** NOTE: Not using NetCDF strides for multi-cycle modulo
            *** NOTE: Stride value not a factor of axis length
 *** Running ferret script: bn_non_COARDS_netCDF.jnl
- Cached data cleared from memory
            *** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
            *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Coordinates out of order or missing on axis GAPPY_AXIS at subscript 3
            *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
 *** Running ferret script: bn_cache_hits.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_regrid_to_user.jnl
- Cached data cleared from memory
 Replacing definition of grid GG2
  **ERROR: unknown defining grid: G=NO_EXIST
 load/x=160e/y=5s temp[d=2,k=1,g=no_exist]
  **ERROR: unknown defining grid: GX=A[D=1]
 load/x=160e/y=5s v2
 *** Running ferret script: bn_calendar.jnl
- Cached data cleared from memory
 Replacing definition of axis TDAYS
 Replacing definition of axis TDAYS
 Replacing definition of axis TDAYS
@@ -1113,7 +1100,6 @@ Replacing definition of axis TDAYS
 Replacing definition of grid TGRID
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
 *** Running ferret script: bn_dash_dot.jnl
- Cached data cleared from memory
  **ERROR: command syntax: dash=(1., 2.)
           DASH[=(dn1,up1,dn2,up2)] takes 4 arguments or no argument
 plot/dash=(1., 2.)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
@@ -1121,27 +1107,27 @@ plot/dash=(1., 2.)/color=red/thick/i=1:1000 sin(62.8*(i+10) )
           DASH arguments must be positive
 plot/dash=(-1., 2., 3., 4.)/i=1:1000 sin(62.8*(i+20) )
 *** Running ferret script: bn_flowlines.jnl
- Cached data cleared from memory
  Using every   2th vector in the Y direction
  Using every   2th vector in the Y direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
  Using every   2th vector in the X direction
  Using every   2th vector in the Y direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_logaxes.jnl
- Cached data cleared from memory
 Replacing definition of axis DLOG
 Replacing definition of axis DLOG
  **ERROR: value out of legal range: Limits for log axis negative or too small: -9.00 : 0.00
 plot/hlog fcn
 *** Running ferret script: bn_internal_external_functions.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis DAYT
 
 Bailing out of external function "ffta":
@@ -1151,39 +1137,54 @@ LIST vw_fft
 Replacing definition of grid TGRID
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  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
  PERMANENT data cleared from memory
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis XAXS
+Replacing definition of axis YAXS
+Replacing definition of axis ZAXS
+Replacing definition of axis TAXS
+Replacing definition of grid MYGRD
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: illegal limits: VWND does not contain L=102:150
           Data are available in L =    1:60
 list tsorted_indices, tsorted_wnd
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 
 Bailing out of external function "eof_space":
 	 Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
@@ -1201,10 +1202,13 @@ Bailing out of external function "eof_tfunc":
 list/i=1:2 eoftime
  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
  **ERROR: command syntax: strindex("Ferret is fun for the whole family - real family fun")
           The strindex function has an incorrect number of arguments
 list strindex("Ferret is fun for the whole family - real family fun")
@@ -1222,16 +1226,20 @@ list substring("Have you fed your ferret today")
 list strcat ("All work and no play")
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_modulo_strides.jnl
- Cached data cleared from memory
  LISTing to file test_modulo.cdf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
@@ -1240,7 +1248,6 @@ list strcat ("All work and no play")
            *** NOTE: Not using NetCDF strides for multi-cycle modulo
            *** NOTE: Stride value not a factor of axis length
 *** Running ferret script: bn_axis_viewports.jnl
- Cached data cleared from memory
 Re-defining viewport MID
 Re-defining viewport MID2
 Re-defining viewport LLAX
@@ -1248,7 +1255,6 @@ Re-defining viewport LRAX
 Re-defining viewport ULAX
 Re-defining viewport URAX
 *** Running ferret script: bn_strings.jnl
- Cached data cleared from memory
  **ERROR: command syntax: "string2"}
 list e
  **ERROR: command syntax: 5, "string2"}
@@ -1291,78 +1297,88 @@ list/nohead SIN({"a","b","c"})
  **ERROR: invalid command: cannot use strings in numerical expression
 list/nohead MAX("a",{"a","b","c"})
 *** Running ferret script: bn_axcontrol.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_vec_curv.jnl
- Cached data cleared from memory
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
 *** Running ferret script: bn_delimited_read.jnl
- Cached data cleared from memory
 Replacing definition of axis TAX
 Replacing definition of grid G1
  **TMAP ERR: syntax error in string
-             Unrecognized field type: D
+             Unrecognized field type: DA2
              Data set: ./bn_delimited_read_date_time.dat
-           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME,DATIME,EDATIME
 SET DATA/FORM=delimited/type="d, da2,date2"  bn_delimited_read_date_time.dat
  **TMAP ERR: syntax error in string
              Unrecognized field type: DATE2
              Data set: ./bn_delimited_read_date_time.dat
-           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME
+           *** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME,DATIME,EDATIME
 SET DATA/FORM=delimited/type="da,da, date2"  bn_delimited_read_date_time.dat
  **ERROR: command syntax: ,,:
 SET DATA/EZ/form=delim/delim="/,,,:" bn_delimited_read_date_time.dat
 *** Running ferret script: bn541_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file test_good_order.cdf
  LISTing to file test_bad_order.cdf
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis T2
  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
  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
  LISTing to file profiles.nc
  LISTing to file profiles.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file test_100x100.nc
- Cached data cleared from memory
- Cached 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
 Replacing definition of axis XAX
 Replacing definition of axis YAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_cancel_axes.jnl
- Cached data cleared from memory
  LISTing to file longax.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis has repeated values -- micro-adjusting ...
            *** NOTE: Axis has repeated values -- micro-adjusting ...
            *** NOTE: Axis has repeated values -- micro-adjusting ...
@@ -1375,24 +1391,29 @@ Replacing definition of axis YAX
            *** NOTE: Axis has repeated values -- micro-adjusting ...
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: regarding ./test_axes.nc ...
            *** NOTE: Climatological axes test_irreg, test_seas defined
 *** Running ferret script: bn542_bug_fixes.jnl
- Cached 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
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.25 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file string4d.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: regarding ./test_axes.nc ...
            *** NOTE: Climatological axes test_irreg, test_seas defined
            *** NOTE: Not deleted: TEST_IRREG
@@ -1401,8 +1422,8 @@ Replacing definition of axis YAX
            *** NOTE: Axis is in use by grid (G001)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_subspan_modulo.jnl
- Cached data cleared from memory
  LISTing to file test_mod.cdf
  LISTing to file test_mod.cdf
  LISTing to file test_mod.cdf
@@ -1427,55 +1448,57 @@ define axis/x=130e:500:10/modulo=360 xsub
            *** NOTE: Not using NetCDF strides for multi-cycle modulo
            *** NOTE: Stride value not a factor of axis length
 *** Running ferret script: bn_dots.jnl
- Cached data cleared from memory
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
            *** NOTE: /THICKNESS ignored  on /SYMBOL=DOT
            *** NOTE: /SIZE= ignored  on /SYMBOL=DOT
 *** Running ferret script: bn_lev_symbols.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_mode_logo_lab.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_modulo_attribute.jnl
- Cached data cleared from memory
            *** NOTE: Undecipherable value of netCDF attribute modulo on variable lon_moderr
            *** NOTE: modulo = "j"
            *** NOTE: Undecipherable value of netCDF attribute modulo on variable time_moderr
            *** NOTE: modulo = "j"
 *** Running ferret script: bn550_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn551_bug_fixes.jnl
- Cached 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
 Re-defining viewport MID1
  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
  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
 *** Running ferret script: bn_multi_line_labels.jnl
- Cached data cleared from memory
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
 *** Running ferret script: bn552_bug_fixes.jnl
- Cached 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
  **ERROR: value out of legal range: # of contour levels > 500  (3283)
 CONTOUR/L=1/LEV=0.01d sst
  **ERROR: value out of legal range: # of contour levels > 500  (3283)
@@ -1486,17 +1509,21 @@ SHADE/L=1/LEV=0.01d sst
 POLYGON/KEY/LEV=0.01d/coord_ax=Z  PLMxpoly+PLMxpolymark, PLMypoly+PLMypolymark, PLMpolydata
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Valid calendars are GREGORIAN NOLEAP    JULIAN    360_DAY   ALL_LEAP
            *** NOTE: calendar attribute on axis "TIME" is not recognized: BADNAME
            *** NOTE: A dummy axis of subscripts will be used
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 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
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command:  use RETURN= shape,size,grid,title,bad,t0,f0,units,dset,
             dsetnum,dsetpath,dsettitle,*size,*start,*end,
             *units,*axis,nc_scale,nc_offset,user_scale,user_offset,
@@ -1505,53 +1532,61 @@ ls: cannot access input.txt: No such file or directory
 MESSAGE/CONTINUE `axy, return=xx`
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
  LISTing to file a.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis YAX
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file clim.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+ooooooooooooooooooooooooooooooooooooooooooo
+           *** NOTE: Coordinates missing on axis LONGITUDE at subscript -1423
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: Coordinates missing on axis LATITUDE at subscript -1423
+           *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Axis has repeated values -- micro-adjusting TIME
  **ERROR: illegal limits: "DUMMY" does not exist at T=01-JAN-1990 00:00
           Axis extremes are T=31-DEC-1997 12:00:30-JAN-1998 12:00
 list/t=1-jan-1990 dummy
 *** Running ferret script: bn_set_var_scale_off.jnl
- Cached data cleared from memory
  **ERROR: invalid command: Can SET VARIABLE/OFFSET= only with NetCDF datasets
 SET VAR/OFFSET=1 x1
  **ERROR: invalid command: Can SET VARIABLE/SCALEFAC= only with NetCDF datasets
 SET VAR/SCALE=10 x2
 *** Running ferret script: bn_longvarnames.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file longvname.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file longvname.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_shakey.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_eof_4d.jnl
- Cached data cleared from memory
  LISTing to file eofsp.cdf
  LISTing to file eofti.cdf
  LISTing to file eofst.cdf
 *** Running ferret script: bn_abstract_axis_names.jnl
- Cached data cleared from memory
  LISTing to file confuse_xz.nc
  LISTing to file confuse_yz.nc
  LISTing to file confuse_yt.nc
@@ -1561,16 +1596,14 @@ SET VAR/SCALE=10 x2
  LISTing to file confuse_yt.nc
  LISTing to file confuse_yzt.nc
 *** Running ferret script: bn_many_polygons.jnl
- Cached data cleared from memory
 Replacing definition of axis YQ
 *** Running ferret script: bn_fill_irregular.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_xml_output.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 SHO VAR/XML
 SHO VAR/XML
 SHO VAR/XML
@@ -1581,17 +1614,17 @@ SHOW VAR/XML
 SHOW VAR/XML
  LISTing to file a.nc
 *** Running ferret script: bn_test_nan.jnl
- Cached data cleared from memory
 *** Running ferret script: bn553_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_graticules.jnl
- Cached data cleared from memory
  Using every   5th vector in the X direction
  Using every   3th vector in the Y direction
  Using every   2th vector in the X direction
@@ -1603,7 +1636,6 @@ Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
 *** Running ferret script: bn_repeat_range.jnl
- Cached data cleared from memory
  TEMPORARY data cleared from memory
  **ERROR: invalid command: REPEAT/NAME requires /RANGE
 rep/name=a say `a`
@@ -1634,24 +1666,30 @@ repeat/range=3:1:-1/name=a list a
  **ERROR: command syntax: nested REPEAT loops with the same counter name a
 repeat/range=3:1:-1/name=a list a
 *** Running ferret script: bn554_bug_fixes.jnl
- Cached 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
  **ERROR: illegal limits: "TEMP" does not exist at T=01-AUG-1980 00:00:01-JAN-1982 00:00
           Axis extremes are T=14-AUG-1982 11:00:13-JAN-1983 13:00
 list/t=1-aug-1980:1-jan-1982/i=92/j=35 temp
  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
  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 TAX1
 Replacing definition of axis TAX2
 Replacing definition of axis TAX1
@@ -1660,6 +1698,7 @@ Replacing definition of axis TAX1
 Replacing definition of axis TAX2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
@@ -1675,28 +1714,35 @@ Replacing definition of grid AGRID
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis X_AX
  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
  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
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 *** Running ferret script: bn_bounds.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -1723,7 +1769,6 @@ def axis/t/bounds tax={1.2,2,3.2,5,7,8.4,9}, {0.5,1.5,1.5,2.5,2.5,3.5,3.5,6.5,6.
 def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,24, 24,48, 24,48, 48,72, 48,72, 72,96, 72,96, 96,120}
  LISTing to file a.nc
  LISTing to file a.nc
-           *** NOTE: Cannot have both /BOUNDS and /RIGID Ignoring /RIGID
  LISTing to file a.nc
            *** NOTE: Cannot have both /BOUNDS and /EDGES Ignoring /EDGES
  LISTing to file a.nc
@@ -1745,85 +1790,102 @@ def axis/t/bounds tax= {12, 12.2, 36, 36.2, 60, 60.2, 84, 84.2, 108} , {0,24, 0,
            *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
            *** NOTE: Substituting coordinate midpoints
 *** Running ferret script: bn_all_leap.jnl
- Cached data cleared from memory
  **ERROR: command syntax: Invalid calendar name. Names are, GREGORIAN, NOLEAP, JULIAN, 360_DAY, ALL_LEAP
 def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
 *** Running ferret script: bn570_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file xlong.nc
  LISTing to file xlongshift.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_modstats.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_mc_vary_scale.jnl
- Cached data cleared from memory
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
 *** Running ferret script: bn_plot_nokey.jnl
- Cached data cleared from memory
 *** Running ferret script: bn580_bug_fixes.jnl
- Cached 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
 Re-defining viewport VP_1
  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
 Replacing definition of axis XAX
 Replacing definition of axis YAX
  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
 Replacing definition of axis XAX
 Replacing definition of axis YAX
 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
  LISTing to file fine.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: illegal limits: One-point independent axis: Requires a /HLIMIT or /VLIMIT specification
 plot/sym/siz=0.3 0*t[gt=vwnd]
  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
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 365.00 days
  LISTing to file aa.nc
  LISTing to file cc.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: First argument is a letter of the alphabet
 query/ignore $1%q|a|b|c|d|<First argument is a letter of the alphabet%
  **ERROR: invalid command: Valid value needed for argument $2
@@ -1856,29 +1918,32 @@ message/continue ($t2"|solong>really hello|bye|")
            *** NOTE: Valid symbol t2 choices are: solong>really hello|bye|
  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: delta non-positive on X axis of EX#1
 list/l=1/j=40/i=0:300:0 sst
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file 10a.nc
  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
 *** Running ferret script: bn_inf_levels.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_regulart.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_labwid.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_redefine_taxis_mc.jnl
- Cached data cleared from memory
 Replacing definition of axis TIME1
            *** NOTE: grid GHB1 used by data set coads_clim
            *** NOTE: Redefinition may alter apparent contents of data set
@@ -1886,7 +1951,6 @@ Replacing definition of axis TIME1
            *** NOTE: grid GHB1 used by data set coads_clim
            *** NOTE: Redefinition may alter apparent contents of data set
 *** Running ferret script: bn_illegal_axisname.jnl
- Cached data cleared from memory
 Replacing definition of axis COADSX.ILLEGAL
            *** NOTE: grid GEX1 used by data set illeg_axname
            *** NOTE: Redefinition may alter apparent contents of data set
@@ -1898,37 +1962,41 @@ Replacing definition of axis COADSY.ILLEGAL
            *** NOTE: grid GEX3 used by data set illeg_axname
            *** NOTE: Redefinition may alter apparent contents of data set
 *** Running ferret script: bn_exit_script.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_exit_cycle.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_curv_mod.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_shade_keycont.jnl
- Cached data cleared from memory
 *** Running ferret script: bn581_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  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
  LISTing to file longtitle.nc
  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
  LISTing to file longtitle.nc
  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
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  **ERROR: improper grid or axis definition: error in start,end,delta
 DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
@@ -1937,39 +2005,43 @@ DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/t myt
 DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file t0_cdc.nc
  LISTing to file my_cdc_timeaxis.nc
  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
 *** Running ferret script: bn_tab_comma_multivar.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_element_functions.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_long_revision_num.jnl
- Cached data cleared from memory
  LISTing to file revision.nc
 *** Running ferret script: bn_window_title.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_last_error.jnl
- Cached data cleared from memory
  **ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
 LIST/ORDER=X  IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
@@ -1992,18 +2064,14 @@ Bailing out of external function "ffta":
  **ERROR: error in external function
 LOAD vw_fft
 *** Running ferret script: bn_deg_min.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_dp_readscale.jnl
- Cached data cleared from memory
  TEMPORARY data cleared from memory
 *** Running ferret script: bn_bounds_defineax.jnl
- Cached data cleared from memory
 Replacing definition of axis TAX
  LISTing to file irrxzt.nc
 Replacing definition of axis ZAX
 Replacing definition of axis ZAX2
 *** Running ferret script: bn_attributes.jnl
- Cached data cleared from memory
  **ERROR: invalid command: SHOW ATTRIBUTE given with no argument
 sho att/all
  **ERROR: unknown data set: d=2
@@ -2015,28 +2083,37 @@ sho att salt.nonsense
 sho att/all .
  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
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute temp.pp
            *** NOTE: Changing the length  of attribute temp.pp
            *** NOTE: Changing the value of attribute temp.some_text
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute temp.long_name
            *** NOTE: Changing the value of attribute temp.units
            *** NOTE: Changing the value of attribute temp.missing_value
@@ -2055,8 +2132,10 @@ list coadsx.units
 set att (COADSX81_81).axis = "Z"
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute temp.pp
            *** NOTE: Changing the length  of attribute temp.pp
            *** NOTE: Changing the value of attribute temp.some_text
@@ -2070,33 +2149,40 @@ set att (COADSX81_81).axis = "Z"
            *** NOTE: Changing the value of attribute temp.pp
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  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
  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
            *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_INT
  LISTing to file a.nc
@@ -2109,6 +2195,7 @@ set att (COADSX81_81).axis = "Z"
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
            *** NOTE: Changing the value of attribute (COADSX).point_spacing
            *** NOTE: Changing the value of attribute (COADSY).point_spacing
@@ -2126,6 +2213,7 @@ set var/outtype=char broiled
 set var/outtype=garbage broiled
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute (PSXT).units
  LISTing to file a.nc
  LISTing to file a.nc
@@ -2134,17 +2222,21 @@ set var/outtype=garbage broiled
  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
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis X2AX
            *** NOTE: Changing the value of attribute (z4ax).positive
  LISTing to file string4d.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute (TIME).units
            *** NOTE: Changing the value of attribute (TIME).units
            *** NOTE: Changing the value of attribute (TIME).time_origin
@@ -2158,11 +2250,8 @@ Replacing definition of axis TIME
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_transforms.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_variance.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_linecolors.jnl
- Cached data cleared from memory
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
@@ -2171,7 +2260,6 @@ Replacing definition of axis TIME
  Using every   4th vector in the Y direction
            *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
 *** Running ferret script: bn_cdf_errmsg.jnl
- Cached data cleared from memory
  **TMAP ERR: non-existent or not on line
              this_is_not_a_file.nc
 SET DAT/FORM=CDF this_is_not_a_file.nc
@@ -2179,8 +2267,8 @@ 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/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf
-SET DAT/FORM=CDF "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
+             Data set: http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf
+SET DAT/FORM=CDF "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
 CURL Error: Couldn't resolve host name
 curl error details: 
  **Internet Data error
@@ -2193,122 +2281,154 @@ SET DAT/FORM=CDF  "http://noserver/a/nofile.cdf"
              Data set: ./asc.nc
 SET DAT/FORM=CDF asc.nc
 *** Running ferret script: bn600_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file err581_subspanx_fill_bug.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file xyir.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: illegal use of transformation:  not all dimensions present on grid
 shade sst[x=@var,k=@var]
  **ERROR: illegal use of transformation:  not all dimensions present on grid
 shade sst[t=@AVE,Z=@ave]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS  ... using 1/12 of 360.00 days
  LISTing to file t3file.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file 0000_a.nc
  LISTing to file subdir/a.nc
  LISTing to file subdir/0000_a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
  LISTing to file a.nc
            *** NOTE: cannot parse "units since date", date= "event"; leaving units string
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** 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]"
 plot/i=100/k=1 temp[x=122.5W]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 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
- Cached data cleared from memory
- Cached data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn601_bug_fixes.jnl
- Cached data cleared from memory
  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 b.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file b.nc
  LISTing to file b.nc
  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
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 Replacing definition of axis TIME4
            *** NOTE: grid GSQ1 used by data set coads_climatology
            *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TIME
  LISTing to file a.nc
  LISTing to file t2.nc
  LISTing to file t12.nc
  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
  LISTing to file out.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_set_strides.jnl
- Cached data cleared from memory
  **ERROR: invalid command: it is a child axis already
 set axis/stride=2/offset=1 (AX005)
  **ERROR: invalid command: not a strided axis: COADSX
@@ -2323,32 +2443,35 @@ cancel axis/stride COADSX
  **ERROR: invalid command: unknown axis: NORMAL
 set axis/stride=2 NORMAL
 *** Running ferret script: bn_lsl_lowpass.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_return_xmod_tmod.jnl
- Cached data cleared from memory
 *** Running ferret script: bn602_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file noleap.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
            *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file tripolar_missing_lon.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_modnbd.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_fifty_files.jnl
- Cached data cleared from memory
-           *** NOTE: Ignored modulo length exceeding axis length: LONGITUDE
+           *** NOTE: Coordinates missing on axis LONGITUDE at subscript -169
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: Coordinates missing on axis LATITUDE at subscript -169
+           *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Axis has repeated values -- micro-adjusting TIME
            *** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
            *** NOTE: Substituting coordinate midpoints
@@ -2374,128 +2497,142 @@ set axis/stride=2 NORMAL
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis BACKWARDS_AXIS
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
 *** Running ferret script: bn603_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_set_var_name.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_memory_symbol.jnl
- Cached data cleared from memory
- Cached data cleared from memory
- Cached data cleared from memory
- Cached data cleared from memory
- Cached data cleared from memory
 *** Running ferret script: bn605_bug_fixes.jnl
- Cached 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
 *** Running ferret script: bn608_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file b.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: invalid command: "300": Number of contour levels must be between 1 and 250
 SHADE/LEV=300/I=1:100/J=1:100 i+j
 *** Running ferret script: bn_shade_trim.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_mode_nlevels.jnl
- Cached data cleared from memory
 *** Running ferret script: bn61_bug_fixes.jnl
- Cached data cleared from memory
  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
 *** Running ferret script: bn_test_opendap.jnl
- Cached data cleared from memory
 CURL Error: Couldn't resolve host name
 curl error details: 
 *** Running ferret script: bn611_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file b.nc
  LISTing to file b.nc
  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
  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
  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
  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
  LISTing to file z1.nc
  LISTing to file z2.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TIME
  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
  LISTing to file b.nc
  LISTing to file b.nc
 *** Running ferret script: bn_no_valid_on_plot.jnl
- Cached data cleared from memory
  Using every   5th vector in the X direction
 *** Running ferret script: bn_median.jnl
- Cached data cleared from memory
  **ERROR: value out of legal range: Median smoother length must be odd
 plot/trans var, var[z=@med:4]
 *** Running ferret script: bn614_bug_fixes.jnl
- Cached 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
 Replacing definition of axis TIME
  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
  LISTing to file b.nc
  LISTing to file b.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Units on axis "ENS" are not recognized: count
            *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file 1a.dat
  LISTing to file 3a.dat
  LISTing to file 5a.dat
@@ -2504,49 +2641,59 @@ Replacing definition of axis TIME
  LISTing to file 11a.dat
  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
  **ERROR: variable unknown or not in data set: A_REGRID[D=1,GT=B[D=2]@MOD]
 LIST a_regrid[D=1,GT=b[D=2]@MOD]
  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
  LISTing to file dat.dat
  LISTing to file a.nc
  LISTing to file unf.dat
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file lonlat.dat
  LISTing to file lonlat.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file b.nc
 *** Running ferret script: bn_mode_nodata_lab.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_proleptic_gregorian_calendar.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_string_ngd_nbd.jnl
- Cached data cleared from memory
            *** NOTE: @NGD of string variable, counting null strings as missing
            *** NOTE: @NBD of string variable, counting null strings as missing
            *** NOTE: @NGD of string variable, counting null strings as missing
@@ -2569,21 +2716,15 @@ Replacing definition of axis TAX
            *** NOTE: @NBD of string variable, counting null strings as missing
            *** NOTE: @NGD of string variable, counting null strings as missing
 *** Running ferret script: bn_cat_string.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_sort_strings.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_samplexyt.jnl
- Cached data cleared from memory
            *** NOTE: /XLIMITS and /YLIMITS are deprecated.
            *** NOTE: Use /HLIMITS and /VLIMITS instead.
 *** Running ferret script: bn_last_go_file.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_cancel_upcase_uservar.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_cdf_keepax.jnl
- Cached data cleared from memory
  LISTing to file test0a.cdf
  LISTing to file test0b.cdf
  LISTing to file test0c.cdf
@@ -2779,40 +2920,37 @@ list/format=cdf/keep_axnames/append/file=test_fil.cdf ijklave
 show grid ijkl
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis Y1010_REV
 *** Running ferret script: bn_keep_axisnames.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_key_label_minmax.jnl
- Cached data cleared from memory
 *** Running ferret script: bn62_bug_fixes.jnl
- Cached 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
 *** Running ferret script: bn_convolve.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_tax_tstep.jnl
- Cached data cleared from memory
  LISTing to file a.nc
 Replacing definition of axis TSEC
 *** Running ferret script: bn_grads_z.jnl
- Cached data cleared from memory
 Replacing definition of axis CAXIS
            *** NOTE: grid GMY1 used by data set grads_bug_file
            *** NOTE: Redefinition may alter apparent contents of data set
 *** Running ferret script: bn_clock_syms.jnl
- Cached data cleared from memory
 *** Running ferret script: bn63_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  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
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
@@ -2822,32 +2960,42 @@ Replacing definition of axis CAXIS
            *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis ZAXLEVITR
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file xz.nc
  TEMPORARY data cleared from memory
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file t_bug.nc
 Replacing definition of axis T_AXIS
  LISTing to file t_bug.nc
@@ -2856,46 +3004,49 @@ NetCDF: Variable not found (OPeNDAP/netCDF Error code -49)
 LIST/FORMAT=CDF/FILE=t_bug.nc/APPEND var
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: offset must be greater than or equal to zero
 SET AXIS/STRIDE=12/OFFSET=-1 truemonth
  **ERROR: invalid command: stride must be greater than zero
 SET AXIS/STRIDE=-1/OFFSET=1 truemonth
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_axis_reversed_syms.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_isdepth.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_var_hist_levels.jnl
- Cached data cleared from memory
 *** Running ferret script: bn64_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_long_grid_names.jnl
- Cached 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
 Replacing definition of grid GG123456789012345678902
  **ERROR: unknown defining grid: G=NO_EXIST12345678901234567890
 load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_xml_repl.jnl
- Cached data cleared from memory
  LISTing to file a.nc
 *** Running ferret script: bn65_bug_fixes.jnl
- Cached 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
            *** NOTE: Units on axis "ENS" are not recognized: count
            *** NOTE: They will not be convertible:
  LISTing to file mypack.nc
@@ -2907,24 +3058,27 @@ load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
            *** NOTE: They will not be convertible:
  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
  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
 Replacing definition of axis TAX
 *** Running ferret script: bn_txtype_dmy.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_n_open_dsets_sym.jnl
- Cached data cleared from memory
  LISTing to file list_of_numbers.dat
 *** Running ferret script: bn_multi_decade.jnl
- Cached data cleared from memory
 Re-defining viewport V1
 Re-defining viewport V2
 Re-defining viewport V3
@@ -2934,15 +3088,13 @@ Re-defining viewport V6
 Re-defining viewport V7
 Re-defining viewport V8
 *** Running ferret script: bn_show_xml_file.jnl
- Cached data cleared from memory
  LISTing to file b.nc
  LISTing to file dummy.dat
 *** Running ferret script: bn66_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_netcdf4.jnl
- Cached data cleared from memory
  Restoring default chunk cache settings
  Restoring default chunk cache settings
  PERMANENT data cleared from memory
@@ -2976,30 +3128,28 @@ LIST/FORMAT=CDF/file=nc4_deflate4_t1.nc/clobber/ncformat=4/deflate/shuffle/tchun
              TChunkSize 0 is larger than dimension length 3
 LIST/FORMAT=CDF/file=nc4_deflate4chunktoobig.nc/clobber/ncformat=4/deflate=1/xchunk=6/ychunk=18/tchunk=15 sst
 *** Running ferret script: bn_scat2grid_bin.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 *** Running ferret script: bn_axis_dir_symbols.jnl
- Cached data cleared from memory
 *** Running ferret script: bn663_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_set_axis_regular.jnl
- Cached data cleared from memory
            *** NOTE: Axis reset to be regular (evenly-spaced): MYX
            *** NOTE: Axis is already regular: MYX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis reset to be regular (evenly-spaced): MYX1
 *** Running ferret script: bn_set_cancel_redirect.jnl
- Cached data cleared from memory
  Use the GO command to name a file of FERRET commands to be executed.
      e.g.   yes? GO filename
  
@@ -3054,52 +3204,58 @@ show grid garbage
  
  Use "GO/HELP filename" to read documentation in  the file to be executed.
 *** Running ferret script: bn_min_max_smoothers.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_vector_symbols.jnl
- Cached data cleared from memory
  Using every   8th vector in the X direction
  Using every   7th vector in the Y direction
 *** Running ferret script: bn_variance_large.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_labnum_calendar.jnl
- Cached data cleared from memory
 *** Running ferret script: bn665_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_floatstr.jnl
- Cached data cleared from memory
 *** Running ferret script: bn67_bug_fixes.jnl
- Cached 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
 Replacing definition of axis YAX
 Replacing definition of axis YAX
  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
  LISTing to file aa.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
-set mode desperate 1.E+10
+set mode desperate 9999999999.
  **ERROR: value out of legal range: illegal mode argument. Negative or > 1.e+9,
 set mode desperate 1234567890123456789
+           *** NOTE: MODE DESPERATE is deprecated. Use MODE FRUGAL
+           *** NOTE: MODE DESPERATE is deprecated. Use MODE FRUGAL
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file g.nc
 Replacing definition of axis YAX_DUP_AXNAMES
  LISTing to file h.nc
@@ -3108,25 +3264,37 @@ Replacing definition of axis YAX_DUP_AXNAMES
  LISTing to file justg.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_NaN_note.jnl
- Cached data cleared from memory
-           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: unrepairable repeated axis coords on axis j at subscript -126
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: unrepairable repeated axis coords on axis l at subscript -126
+           *** NOTE: A dummy axis of subscripts will be used
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
-           *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
+           *** NOTE: unrepairable repeated axis coords on axis j at subscript -126
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: j
+           *** NOTE: unrepairable repeated axis coords on axis l at subscript -126
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: l
 *** Running ferret script: bn671_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 
 Bailing out of external function "tax_year":
 	 Function not valid for modulo time axis
@@ -3134,10 +3302,12 @@ Bailing out of external function "tax_year":
 list/L=15:20 tax_year(t[gt=tvar],tvar)
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file cc.nc
  LISTing to file c1.nc
  TEMPORARY data cleared from memory
@@ -3145,39 +3315,50 @@ list/L=15:20 tax_year(t[gt=tvar],tvar)
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis lev
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn68_bug_fixes.jnl
- Cached 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
 Replacing definition of axis TAXIS
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
            *** NOTE: ./err672_vert_axislabel.jnl
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
  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
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
            *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: command syntax: illegal name, matches an operator: AND
 DEFINE VARIABLE AND = 5
  **ERROR: command syntax: illegal name, matches an operator: OR
@@ -3200,10 +3381,10 @@ DEFINE VARIABLE IF  = 5
 DEFINE VARIABLE ELSE = 5
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a1.nc
  LISTing to file a2.nc
 *** Running ferret script: bn_ifv.jnl
- Cached data cleared from memory
  **ERROR: command syntax: IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
 LIST/ORDER=X  IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333
@@ -3212,7 +3393,6 @@ LIST/ORDER=X  IFV I GT 3 THEN ( IFV I LT 5 THEN I ELSE -9 ) ELSE .333
           negative constants need to be enclosed in parentheses
 DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
 *** Running ferret script: bn_randu2_randn2.jnl
- Cached data cleared from memory
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
@@ -3220,7 +3400,6 @@ DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
  TEMPORARY data cleared from memory
  TEMPORARY data cleared from memory
 *** Running ferret script: bn_axis_cf.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
@@ -3230,15 +3409,12 @@ DEFINE VARIABLE A = ifv I LT 5 THEN I ELSE -9
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_repeated_coords.jnl
- Cached data cleared from memory
            *** NOTE: Axis has repeated values -- micro-adjusting TMIN
            *** NOTE: Coordinates out of order or missing on axis TMIN at subscript 4
            *** NOTE: A dummy axis of subscripts will be used
            *** NOTE: Axis has repeated values -- micro-adjusting ...
 *** Running ferret script: bn_xml_header.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_eof_simple.jnl
- Cached data cleared from memory
 Replacing definition of axis XAXIS
 
 Bailing out of external function "eofsvd_stat":
@@ -3256,11 +3432,8 @@ Bailing out of external function "eofsvd_tfunc":
  **ERROR: error in external function
 list eofsvd_tfunc(spacegap)
 *** Running ferret script: bn_eof_simple2.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_interpolate_6d.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_regrid_6d.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
 Replacing definition of axis XFINE
@@ -3269,9 +3442,7 @@ Replacing definition of axis YFINE
 Replacing definition of axis YCOARSE
 Replacing definition of grid G24
 *** Running ferret script: bn_syntax_6d.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_expressions_6d.jnl
- Cached data cleared from memory
  **ERROR: command syntax: IF _m GT 3 THEN ( IF _m LT 5 THEN _m ELSE -9 ) ELSE .333
           Cannot use multiple IFs in an expression
 LIST/order=e  IF _m GT 3 THEN ( IF _m LT 5 THEN _m ELSE -9 ) ELSE .333
@@ -3282,14 +3453,12 @@ DEFINE VARIABLE A = IF _m LT 5 THEN _m ELSE -9
  **ERROR: variable unknown or not in data set: A1
 load a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21
 *** Running ferret script: bn_direction_fcns_6d.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_regrid_transforms_6d.jnl
- Cached data cleared from memory
 Replacing definition of axis FAX4DAY
 *** Running ferret script: bn_aggregate_e.jnl
- Cached data cleared from memory
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
  **ERROR: unknown data set: dset 3
 DEFINE DATA/AGGREGAT/E windy = 1,2,3
            *** NOTE: Variable "UWND" excluded from aggregate: T axis differs among members
@@ -3306,39 +3475,49 @@ DEFINE DATA/AGGREGAT/E windy = 1,2
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: Dataset used in aggregation.  Canceling aggregation, fourfiles
            *** NOTE: Dataset used in aggregation.  Canceling aggregation, some
            *** NOTE: Dataset used in aggregation.  Canceling aggregation, more
 *** Running ferret script: bn_6d_lab_mode.jnl
- Cached data cleared from memory
+           *** NOTE: MODE 6D_lab is deprecated. Leave the mode set; output automatically adjusts to 4D or 6D grids
+           *** NOTE: MODE 6D_lab is deprecated. Leave the mode set; output automatically adjusts to 4D or 6D grids
+           *** NOTE: MODE 6D_lab is deprecated. Leave the mode set; output automatically adjusts to 4D or 6D grids
+           *** NOTE: MODE 6D_lab is deprecated. Leave the mode set; output automatically adjusts to 4D or 6D grids
 *** Running ferret script: bn682_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn683_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  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
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_outtype.jnl
- Cached data cleared from memory
  LISTing to file mytype.nc
  LISTing to file mytype.nc
            *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
@@ -3354,14 +3533,15 @@ DEFINE DATA/AGGREGAT/E windy = 1,2
  LISTing to file mytype.nc
  LISTing to file mytype.nc
 *** Running ferret script: bn_ribbon_plot.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_descr_4digit.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_axis_outtype.jnl
- Cached data cleared from memory
  LISTing to file mytype.nc
+           *** NOTE: unrepairable repeated axis coords on axis TIME at subscript -126
+           *** NOTE: A dummy axis of subscripts will be used
  LISTing to file mytype.nc
            *** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
+           *** NOTE: unrepairable repeated axis coords on axis TIME at subscript -126
+           *** NOTE: A dummy axis of subscripts will be used
  LISTing to file mytype.nc
  LISTing to file mytype.nc
  LISTing to file mytype.nc
@@ -3376,38 +3556,45 @@ NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
 LIST/FORMAT=CDF/clobber/file=mytype.nc my_data
  LISTing to file mytype.nc
 *** Running ferret script: bn_axis_nonmonotonic.jnl
- Cached data cleared from memory
  **ERROR: improper grid or axis definition: data for DEFINE AXIS/FROM_VARIABLE is not monotonically increasing at index 12
 define axis/t/units=days tax = tvar
 *** Running ferret script: bn_vec_mod.jnl
- Cached data cleared from memory
  Using every   9th vector in the X direction
  Using every   9th vector in the X direction
  Using every   9th vector in the X direction
 *** Running ferret script: bn685_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file aa.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file aa.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  LISTing to file aa.nc
  LISTing to file aa.nc
@@ -3420,24 +3607,29 @@ NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
  data in attribute _FillValue not representable in output type NC_INT
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
  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
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
            *** NOTE: the use of "SET MODE METAFILE" is deprecated;
            *** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: command syntax: .HELLO
 list .hello
  **ERROR: variable unknown or not in data set: A.UNITS
@@ -3452,6 +3644,7 @@ list ..history
 list ..history
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis AXI
 Replacing definition of axis AXI_COARSE
 Replacing definition of axis AXI
@@ -3464,22 +3657,21 @@ Replacing definition of axis AXI
 Replacing definition of axis AXI_COARSE
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
-           *** NOTE: unrepairable repeated axis coords on axis trdim at subscript 2
-           *** NOTE: A dummy axis of subscripts will be used
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file sst_new.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_dsg_e_x.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_nco_append.jnl
- Cached data cleared from memory
  LISTing to file append_to_this.nc
 *** Running ferret script: bn_nobounds.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
            *** NOTE: Axis definition error on axis: TGAP
@@ -3488,12 +3680,9 @@ Replacing definition of axis AXI_COARSE
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_write_integer_att.jnl
- Cached data cleared from memory
  LISTing to file a.nc
 *** Running ferret script: bn_descriptor_mc.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_plot_color_only.jnl
- Cached data cleared from memory
            *** NOTE: New # of line colors will take effect on next new window: SET WIN/NEW then define pen colors
            *** NOTE: New number of line colors will take effect on next new window: SET WIN/NEW or SET WIN/CLEAR
  **ERROR: command syntax: COLOR
@@ -3503,7 +3692,6 @@ plot/i=1:100/over/COLOR 0.6*sin(i/7)
           /COLOR not valid for PLOT/LEVELS ribbon plot
 plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
 *** Running ferret script: bn_vtree.jnl
- Cached data cleared from memory
            *** NOTE: Variable "FVX" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
@@ -3520,21 +3708,26 @@ list e
 list f
 Replacing definition of axis ZAX
 *** Running ferret script: bn686_bug_fixes.jnl
- Cached 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
  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
            *** NOTE: Changing the type of attribute a.ival
            *** NOTE: Changing the value of attribute a.ival
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **TMAP ERR: non-existent or not on line
              nosuchfile.nc
 SET DAT/FORM=CDF nosuchfile.nc
@@ -3550,29 +3743,31 @@ SET DAT/FORM=CDF snoopy
 SET DAT/FORM=CDF snoopy.dat
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: regarding ./climatological_axes.cdf ...
            *** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
  TEMPORARY data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_long_symnames.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_strdim.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_single_colorlev.jnl
- Cached data cleared from memory
 *** Running ferret script: bn69_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file a.nc
 Replacing definition of axis XAXIS_TEST
  LISTing to file b.nc
@@ -3587,20 +3782,21 @@ Replacing definition of axis XAXIS_TEST
 LIST/FORMAT=CDF/clobber/keep/file=nc b,a[d=1]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **ERROR: dimensions improperly specified: must be a 2D region
-          shade b
-shade b
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Changing the value of attribute v1.long_name
            *** NOTE: Changing the value of attribute v1.units
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: attribute undefined or invalid attribute name: temp.noexist[d=levitus_climatology]
           attribute noexist not found for variable TEMP
 show att temp.noexist[d=levitus_climatology]
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: illegal new name.  Variable b already defined
 set var/name=b a
  **ERROR: invalid command: illegal new name.  Variable b already defined
@@ -3612,16 +3808,12 @@ set var/name=psi myvar
  **ERROR: invalid command: illegal new name.  Variable diff already defined
 set var/name=diff w
 *** Running ferret script: bn_bad_axis_bounds.jnl
- Cached data cleared from memory
            *** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
            *** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
            *** NOTE: Substituting coordinate midpoints
 *** Running ferret script: bn_enter_exit_GO.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_stddev.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_set_axis_name.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file b.nc
@@ -3635,72 +3827,19 @@ 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
- Cached data cleared from memory
-           *** 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 = t0112mn1[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]
-syntax error, unexpected WORD_STRING, expecting WORD_WORD
-context: Error { code = 500; message = "Error processing XML header file /usr/local/src/nvods/tomcat/content/las/conf/server/temp/6790FDCBF64A0E6EFAA6A20D854071E0/header.xml (No such file or directory)"^;};
- **netCDF error
-             Unable to open URL with REMOTE variable definitions:
-             Data set: http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/woa05_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.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_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.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_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.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_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
-list/x=300/y=15 avar
+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/ [...]
 *** Running ferret script: bn691_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: string/numeric data type mix-up. Argument 3 : TAX_DATESTRING
 list tax_datestring (tt[L=3], tt, 5)
  **ERROR: invalid command: string/numeric data type mix-up. Argument 2 : TAX_DATESTRING
 list tax_datestring (tt[L=3], "my_tax", "minutes")
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
            *** NOTE: Substituting coordinate midpoints
            *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
@@ -3709,6 +3848,7 @@ list tax_datestring (tt[L=3], "my_tax", "minutes")
            *** NOTE: Substituting coordinate midpoints
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: command syntax: must be a constant COS(1)
 list {cos(1), sin(0)}
  **ERROR: command syntax: must be a constant 0-180
@@ -3719,42 +3859,51 @@ list {0.1, 0.2, 1./5.}
 list {5*3+1, 2+3}
  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
  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
  LISTing to file tval.nc
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file out.xml
  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
- **ERROR: request exceeds memory setting: 4739 Mwords were requested.
+ **ERROR: request exceeds memory setting
 load bigvar
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
 Replacing definition of axis LONGTIME
- **ERROR: request exceeds memory setting: 9472 Mwords were requested.
+ **ERROR: request exceeds memory setting
 load bigvar
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
            *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
  LISTing to file aa.nc
@@ -3764,6 +3913,7 @@ load bigvar
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: variable unknown or not in data set: A
 list a
  **ERROR: variable unknown or not in data set: A
@@ -3774,6 +3924,7 @@ list b
 shade a
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: variable unknown or not in data set: A
 list a
  **ERROR: variable unknown or not in data set: A
@@ -3784,38 +3935,39 @@ list b
 shade a
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: value out of legal range: Negative argument to function. Argument 3 : SUBSTRING
 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
- Cached data cleared from memory
 rm: cannot remove `test_save_dsg.nc': No such file or directory
 *** Running ferret script: bn_global_atts.jnl
- Cached data cleared from memory
  LISTing to file anew_global.nc
 *** Running ferret script: bn_conventions_history.jnl
- Cached data cleared from memory
  LISTing to file conventions_history.nc
 *** Running ferret script: bn_center_key_labels.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_wgt_transform.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_show_outfile.jnl
- Cached data cleared from memory
            *** NOTE: Variable "FVX" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "FVZ" excluded from aggregate: Not found in all member datasets
@@ -3831,147 +3983,180 @@ list e
           Are you giving explicit limits when SET REGION would suffice ?
 list f
 *** Running ferret script: bn_date1900_array.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_spawn_size.jnl
- Cached data cleared from memory
+ LISTing to file bn_spawn_size1.cdf
+ LISTing to file bn_spawn_size2.cdf
+ LISTing to file bn_spawn_size3.cdf
+ LISTing to file bn_spawn_size4.cdf
+ LISTing to file bn_spawn_size5.cdf
+ LISTing to file bn_spawn_size02.dat
+ LISTing to file bn_spawn_size04.dat
+ LISTing to file bn_spawn_size06.dat
+ LISTing to file bn_spawn_size08.dat
+ LISTing to file bn_spawn_size10.dat
+ LISTing to file bn_spawn_size12.dat
+ LISTing to file bn_spawn_size14.dat
 *** Running ferret script: bn_polygon_log.jnl
- Cached data cleared from memory
  **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.850
 poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
  **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.689E-02
 poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
 *** Running ferret script: bn694_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  LISTing to file aa.nc
  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
  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
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: unknown data set: BAD_D
 stat/l=1/x=180/y=0 a
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: REPEAT what ?
 repeat/range=1:2/name=row
  **ERROR: invalid command: REPEAT what ?
 repeat/range=1:2/name=row
  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
 Replacing definition of axis TREDEF
            *** NOTE: grid GSI1 used by data set a
            *** NOTE: Redefinition may alter apparent contents of data set
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: invalid command: cairoCFerBind_saveWindow: unrecognized format 'HDF'
 frame/format=hdf/file=a.hdf
  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
  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
  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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  TEMPORARY data cleared from memory
  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
 *** Running ferret script: bn_permute_ascii.jnl
- Cached data cleared from memory
 Replacing definition of grid GRID3D
 *** Running ferret script: bn_lon_lat_time_string.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_save_justdim.jnl
- Cached data cleared from memory
  LISTing to file a.nc
            *** NOTE: Saving E or F axis with time axis uses /RIGID in time
  LISTing to file a.nc
 *** Running ferret script: bn_time2d.jnl
- Cached data cleared from memory
            *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
 *** Running ferret script: bn_legend_labels.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_DQ.jnl
- Cached data cleared from memory
            *** NOTE: Changing the value of attribute foobar.some_text
            *** NOTE: Changing the value of attribute foobar.some_text
 *** Running ferret script: bn695_bug_fixes.jnl
- Cached 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
 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
 *** Running ferret script: bn_f_tax_fcns.jnl
- Cached data cleared from memory
  LISTing to file a.nc
 Replacing definition of axis FSEC
            *** NOTE: grid GSI1 used by data set a
            *** NOTE: Redefinition may alter apparent contents of data set
 *** Running ferret script: bn_fmrc.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_return_defined.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_can_var_noerr.jnl
- Cached data cleared from memory
  **ERROR: variable unknown or not in data set: B
 cancel var b,a
 *** Running ferret script: bn_annotate.jnl
- Cached data cleared from memory
  **ERROR: command syntax: xpos=a2
 annotate/nouser/xpos=a2/ypos=0/halign=1/valign=0/angle=-45/siz=0.15 "My Lab"
  **ERROR: command syntax: ypos=b
@@ -4005,7 +4190,6 @@ 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
- Cached data cleared from memory
 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
@@ -4015,7 +4199,6 @@ SET VAR/layerz=depth noexist
 LIST/PREC=7 tempz6d_unmatch
 Replacing definition of axis ZAX
 *** Running ferret script: bn_plot_ribbon_gaploc.jnl
- Cached data cleared from memory
  **ERROR: command syntax: PLOT/VS/RIBBON/GAPLOC plot needs 4 arguments
 plot/vs/thick/line/sym=21/siz=.3/ribbon/gap xpts, 10*ypts, color
  **ERROR: command syntax: PLOT/GAPLOC applies only to PLOT/VS/RIBBON
@@ -4023,17 +4206,16 @@ plot/vs/thick/line/sym=21/siz=0.3/gap xpts, 10*ypts, 10.1*ypts, 9.93*ypts, gvar
  **ERROR: command syntax: PLOT/GAPLOC applies only to PLOT/VS/RIBBON
 plot/ov/nolab/vs/thick/line/sym=21/siz=.3/gapl xpts, color, gvar
 *** Running ferret script: bn_time_short_axes.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_floatstr_extended.jnl
- Cached data cleared from memory
 *** Running ferret script: bn696_bug_fixes.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
            *** NOTE: Units on axis "pfull1_1" are not recognized: hpa
            *** NOTE: They will not be convertible:
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: unknown data set: noexist
 SHOW DATA noexist
  **ERROR: unknown data set: 2
@@ -4042,8 +4224,8 @@ SHOW DATA 2
 SHOW DATA/ATT noexist
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_bin_regrid.jnl
- Cached data cleared from memory
 Replacing definition of axis DCOARSE
 Replacing definition of axis IRR
 Replacing definition of axis DCOARSE
@@ -4055,70 +4237,87 @@ Replacing definition of axis IRR
 Replacing definition of axis DCOARSE
 Replacing definition of axis IRR
 *** Running ferret script: bn697_bug_fixes.jnl
- Cached 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
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **TMAP ERR: error in axis attributes
              Calendar definitions on T and F axes must match
              Data file: ./ft_cal_one.nc
 SET DAT/FORM=CDF ft_cal_mixed.nc
  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
  LISTing to file myfile.nc
  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
            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- Cached data cleared from memory
- **ERROR: request exceeds memory setting: 13 Mwords were requested.
+ooooooooooooooooooooooooooooooooooooooooooo
+ **ERROR: request exceeds memory setting
 load/l=1:5 bigvar
-           *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
-           *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
- Cached data cleared from memory
- Cached data cleared from memory
  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
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX2
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  Using every   4th vector in the Y direction
  Using every   4th vector in the Y direction
  Using every   4th vector in the Y direction
  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
  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
 Replacing definition of axis F_AX
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis T_AXIS
 Replacing definition of axis F_AXIS
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAX
 Replacing definition of axis XAX
 Replacing definition of axis XAX
@@ -4127,35 +4326,43 @@ Replacing definition of axis XAX
 Replacing definition of axis XAX
  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
 Replacing definition of axis XAX
  LISTing to file a.nc
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis XAXIS
  LISTing to file a.nc
  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
  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
  LISTing to file a.nc
            *** NOTE: Changing the type of attribute sst.newch
            *** NOTE: Changing the value of attribute sst.newch
  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
 *** Running ferret script: bn_aggregate_t.jnl
- Cached data cleared from memory
  LISTing to file tmp/tagg_reg_1.nc
  LISTing to file tmp/tagg_reg_2.nc
  LISTing to file tmp/tagg_reg_3.nc
@@ -4229,6 +4436,8 @@ Replacing definition of axis TDAY_TVAR
  LISTing to file tmp/tagg_single_6.nc
            *** NOTE: Not deleted: tday
            *** NOTE: Axis is in use by grid (G001)
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
  **ERROR: invalid command: given aggregation dataset name already in use: myagg2
 define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc, tmp/tagg_reg_2.nc
  **TMAP ERR: non-existent or not on line
@@ -4241,9 +4450,16 @@ define data/agg/t myaggbad = tmp/tagg_reg_1.nc, tmp/tagg_no_exist.nc
 DEFINE DATA/AGGREGAT/T myTindepagg = tmp/tagg_reg_no_T.nc
  **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_reg_3.nc
 define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2_overlarge.nc,tmp/tagg_reg_3.nc
+ **TMAP ERR: non-existent or not on line
+             Searched $FER_DESCR and $FER_DATA for 1(.nc ,.cdf,.des). For a Timeseries aggregation, specify the NetCDF file/path names or OPeNDAP dataset names.
+define data/agg/t myagg2num = 1,2
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
  **TMAP ERR: Unknown variable code
              in file tmp/tagg_disjoint_T0varying_4_wrong.nc time axis variable is missing: TDAY_TVAR
 define data/agg/t myagg5_bad = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T0varying_2.nc,tmp/tagg_disjoint_T0varying_3.nc, tmp/tagg_disjoint_T0varying_4_wrong.nc,tmp/tagg_disjoint_T0varying_5.nc
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
  **ERROR: unknown command: garbage
 garbage command syntax
  **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_single_1.nc
@@ -4251,7 +4467,6 @@ define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_1.nc
  **ERROR: improper grid or axis definition: time axis is not monotonic at L=1 of file tmp/tagg_single_5.nc
 define data/agg/t MYsing_irreg_agg4 = tmp/tagg_single_1.nc, tmp/tagg_single_2.nc,tmp/tagg_single_4.nc, tmp/tagg_single_5.nc, tmp/tagg_single_5.nc
 *** Running ferret script: bn_unquoted_args.jnl
- Cached data cleared from memory
  LISTing to file tmp/test1.nc
  LISTing to file tmp/test2.nc
  LISTing to file tmp/test3.nc
@@ -4271,7 +4486,6 @@ go/garbage /home/flat/ksmith/pyferret_dev/bench/tmp/testMe.jnl
  **ERROR: unknown command qualifier: garbage
 go/garbage "/home/flat/ksmith/pyferret_dev/bench/tmp/testMe.jnl"
 *** Running ferret script: bn_long_lists.jnl
- Cached data cleared from memory
  **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 [...]
  **ERROR: variable unknown or not in data set: A
@@ -4281,9 +4495,7 @@ load a
  **ERROR: command syntax: "/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0020.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0021.t_surf...
 "/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0020.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0021.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0022.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr/atmos.0023.t_surf.nc","/archive/ccsp/ipcc_ar4/CM2.1U-D4_1860-2000-AllForc_H1/pp/atmos/ts/monthly/100yr [...]
 *** Running ferret script: bn_show_uvar_grid.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_aggregate_f.jnl
- Cached data cleared from memory
  LISTing to file tmp/fcst_1.nc
  LISTing to file tmp/fcst_2.nc
  LISTing to file tmp/fcst_3.nc
@@ -4302,13 +4514,19 @@ load a
  LISTing to file tmp/consecutive_month_fcst.nc
 Replacing definition of axis TRUEMONTH
  LISTing to file tmp/irregular_start_time_fcst.nc
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
            *** NOTE: Dataset used in aggregation.  Canceling aggregation, bn_aggregate_f.jnl
            *** NOTE: Dataset used in aggregation.  Canceling aggregation, my_fmrc
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
            *** NOTE: Variable "FCST_2" excluded from aggregate: Not found in all member datasets
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
            *** NOTE: Ambiguous coordinates on T axis: FCST_2[D=MY_FMRC_LETD_6] - FCST_2[D=MY_FMRC_LETD_1]
  **ERROR: error defining aggregate dataset: some files have duplicate forecast start times
 DEFINE DATA/AGGREGAT/F my_fmrc = tmp/fcst_1.nc, tmp/fcst_2.nc,tmp/fcst_2.nc,tmp/fcst_3.nc
@@ -4320,7 +4538,7 @@ DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/consecutive_month_fcst.nc")
  **ERROR: error defining aggregate dataset: forecast start times are irregular or too gappy
 DEFINE DATA/AGGREGAT/F my_fmrc = XCAT(files,"tmp/irregular_start_time_fcst.nc")
 *** Running ferret script: bn_aggregate_tef.jnl
- Cached data cleared from memory
+ls: cannot access tmp/f04_e3_t3_1v.nc: No such file or directory
  LISTing to file tmp/f01_e1_t1.nc
  LISTing to file tmp/f01_e1_t2.nc
  LISTing to file tmp/f01_e1_t3.nc
@@ -4513,26 +4731,21 @@ DEFINE DATA/AGGREGAT/E bad_ens = te_f01, te_f03, te_f04
  **ERROR: error defining aggregate dataset: some files have duplicate forecast start times
 DEFINE DATA/AGGREGAT/F bad_fmrc = tf_e1, tf_e3, tf_e4
 *** Running ferret script: bn_dataset_qualifier.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_speedtest.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_show_noupcase.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 SHO VAR/XML
 SHO VAR/XML
 *** Running ferret script: bn_letd_attributes.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
 *** Running ferret script: bn_list_clim_axes.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_climatology_attr.jnl
- Cached data cleared from memory
  LISTing to file a.nc
  LISTing to file a.nc
 Replacing definition of axis TAX
@@ -4540,29 +4753,616 @@ Replacing definition of axis TAX
  LISTing to file a.nc
 Replacing definition of axis TAX
  LISTing to file a.nc
+ LISTing to file a.nc
 *** Running ferret script: bn_plot_along.jnl
- Cached data cleared from memory
            *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
            *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
            *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
            *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
 *** Running ferret script: bn_show_commands.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_plot_decimate.jnl
- Cached data cleared from memory
            *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
            *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
            *** NOTE: Decimating PLOT/ALONG lines to /KEY limit of 40
            *** NOTE: Decimating PLOT/ALONG lines to /NOKEY limit of 200
 *** Running ferret script: bn_auto_tprec.jnl
- Cached data cleared from memory
 Replacing definition of axis TAX
 Replacing definition of axis TAX
 Replacing definition of axis TAX
 *** Running ferret script: bn_coordvars_atts.jnl
- Cached data cleared from memory
+*** Running ferret script: bn710_bug_fixes.jnl
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+           *** NOTE: unrepairable repeated axis coords on axis xax at subscript 1
+           *** NOTE: A dummy axis of subscripts will be used
+           *** NOTE: unrepairable repeated axis coords on axis yax at subscript 1
+           *** NOTE: A dummy axis of subscripts will be used
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+           *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./unclosed_if.sub
+ 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
+ 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
+ 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
+Replacing definition of axis TAX
+ 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
+Replacing definition of axis XAXIS
+Replacing definition of axis YAXIS
+Replacing definition of axis TAXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis TAX
+ 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
+ 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
+Replacing definition of axis YAXIS
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+           *** NOTE: Axis has repeated values -- micro-adjusting ...
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis TAX
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ **TMAP ERR: attribute already defined
+             coordinates for variable ZETA
+             Data set: testdata
+ **TMAP ERR: attribute already defined
+             coordinates for variable U
+             Data set: testdata
+ **TMAP ERR: attribute already defined
+             coordinates for variable V
+             Data set: testdata
+ **TMAP ERR: attribute already defined
+             coordinates for variable TEMP
+             Data set: testdata
+ **TMAP ERR: attribute already defined
+             coordinates for variable SALT
+             Data set: testdata
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis XAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis XLON
+ LISTing to file a1.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
+ LISTing to file a.nc
+           *** NOTE: Requested region on modulo axis XLONN7_141 is larger than modulo length. Modulo attribute not written.
+ 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
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ LISTing to file a1.nc
+ LISTing to file a2.nc
+*** Running ferret script: bn_delim_datetime.jnl
+Replacing definition of axis TIMAX
+Replacing definition of axis TIMAX
+Replacing definition of axis TIMAX
+Replacing definition of axis TIMAX
+Replacing definition of axis TIMAX
+ **ERROR: Error reading file: Check Date or Time fields.
+list index,edtim,udtim,udate,edate
+ **ERROR: Error reading file: Check Date or Time fields.
+list index,edtim,udtim,udate,edate
+ **ERROR: Error reading file: Check Date or Time fields.
+list index,edtim,udtim,udate,edate
+ **ERROR: Error reading file: Check Date or Time fields.
+list index,edtim,udtim,udate,edate
+*** Running ferret script: bn_aggregate_u.jnl
+ LISTing to file tmp/uagg_1.nc
+ LISTing to file tmp/uagg_2.nc
+ LISTing to file tmp/uagg_3.nc
+ LISTing to file tmp/uagg_4.nc
+ LISTing to file tmp/uagg_1_t1.nc
+ LISTing to file tmp/uagg_1_t2.nc
+ LISTing to file tmp/uagg_1_t3.nc
+ LISTing to file tmp/uagg_5.nc
+           *** NOTE: Skipping variable SST from set 2, already in the Union dataset.
+ LISTing to file tmp/f01_e1_tu1.nc
+ LISTing to file tmp/f01_e1_tu2.nc
+ LISTing to file tmp/f01_e1_tu3.nc
+ LISTing to file tmp/f01_e2_tu1.nc
+ LISTing to file tmp/f01_e2_tu2.nc
+ LISTing to file tmp/f01_e2_tu3.nc
+ LISTing to file tmp/f02_e1_tu1.nc
+ LISTing to file tmp/f02_e1_tu2.nc
+ LISTing to file tmp/f02_e1_tu3.nc
+ LISTing to file tmp/f02_e2_tu1.nc
+ LISTing to file tmp/f02_e2_tu2.nc
+ LISTing to file tmp/f02_e2_tu3.nc
+ LISTing to file tmp/f03_e1_tu1.nc
+ LISTing to file tmp/f03_e1_tu2.nc
+ LISTing to file tmp/f03_e1_tu3.nc
+ LISTing to file tmp/f03_e2_tu1.nc
+ LISTing to file tmp/f03_e2_tu2.nc
+ LISTing to file tmp/f03_e2_tu3.nc
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+           *** NOTE: Skipping variable REALIZATION from set 1, already in the Union dataset.
+           *** NOTE: Skipping variable REALIZATION from set 8, already in the Union dataset.
+           *** NOTE: /FILES is deprecated.  Use /MEMBERS
+*** Running ferret script: bn_ez_noupcase.jnl
+ LISTing to file abc.dat
+ LISTing to file a.nc
+ 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
+*** Running ferret script: bn_ave_of_ave.jnl
+*** Running ferret script: bn_agg_member_syntax.jnl
+ **ERROR: unknown data set: D=5.3
+stat/br fcst[d=5.3]
+ **ERROR: unknown data set: D=12.30
+stat/br fcst[d=12.30]
+ **ERROR: unknown data set: D=12.300000
+stat/br fcst[d=12.300000]
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+           *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+ **ERROR: unknown data set: D=4.1
+stat/br sst[d=4.1]
+ **ERROR: unknown data set: D=5.30
+stat/br sst[d=5.30]
+*** Running ferret script: bn_true_monthly.jnl
+           *** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis, T0 not specified. Using start of first year of axis
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis, T0 not specified. Using start of first year of axis
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+ LISTing to file a.nc
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+ LISTing to file a.nc
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+ LISTing to file a.nc
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis, T0 not specified. Using 01-jan-0000
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+Replacing definition of axis TAXIS
+ LISTing to file a.nc
+           *** NOTE: True monthly axis
+Replacing definition of axis TAXIS
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+           *** NOTE: True monthly axis, T0 not specified. Using start of first year of axis
+Replacing definition of axis TAXIS
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY specify /UNITS=month or omit /UNITS (MONTH is default)
+define axis/t=1-jan-2010:31-jul-2011:30/t0=1-jan-2000/monthly/units=days taxis
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis: /NPOINTS not allowed. Use /T=lo:hi:del
+define axis/t=1-jan-2010:31-dec-2012:1/t0=1-jan-2000/monthly/npoints=13 taxis
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis delta-t must be 1
+define axis/t=1-jan-2010:31-dec-2012/t0=1-jan-2000/monthly taxis
+           *** NOTE: True monthly axis has an implicit /EDGES qualifier
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis delta-t must be 1
+define axis/t=1-jan-2010:31-dec-2012:2/t0=1-jan-2000/monthly taxis
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis: Definition /FROMDATA not allowed. Use /T=LO:HI:DEL
+define axis/t/t0=1-jan-2000/monthly taxis = {123,124,126}
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis: Definition /FROMDATA not allowed. Use /T=LO:HI:DEL
+define axis/from/t/t0=1-jan-2001/monthly/edges taxis = {5,6,6,6,7}
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis: /BOUNDS not allowed. Use /T=lo:hi:del
+def axis/t/t0=1-jan-2000/monthly/bounds tax={1.2, 2, 3.2, 5, 7, 8.4, 9}, {0.5,1.5, 1.5,2.5, 2.5,3.5, 3.5,6.5, 6.5,7.5, 7.5,8.5, 8.5,9.5}
+ **ERROR: improper grid or axis definition: DEFINE AXIS/MONTHLY True-month axis: needs /T=lo:hi:del
+define axis/x=1:5:1/monthly aaxis
+*** Running ferret script: bn720_bug_fixes.jnl
+ 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
+ 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
+ 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
+ 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
+*** Running ferret script: bn_compressed_gather.jnl
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+Replacing definition of axis YAX
+Replacing definition of axis TAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+Replacing definition of axis TAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAX
+Replacing definition of axis ZAX
+Replacing definition of axis TAX
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+*** Running ferret script: bn_dynamic_gather.jnl
+ls: cannot access tmp/test_dyn_mem.nc: No such file or directory
+ LISTing to file tmp/test_dyn_mem.nc
+ 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
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ 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 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
+           *** NOTE: No active redirects to cancel
+ **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
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ 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 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
+ **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
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ 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 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
+ **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
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ 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 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
+ **ERROR: value out of legal range: illegal mode argument. Must be 0 to 90 percent
+SET MODE FRUGAL:95
+*** Running ferret script: bn_stat_precision.jnl
+*** 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
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+*** Running ferret script: bn_cache_management.jnl
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ls: cannot access tmp/test_auto_cache_20.nc: No such file or directory
+ 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
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+ LISTing to file test_auto_cache.out
+*** Running ferret script: bn_transp_choose.jnl
+ TEMPORARY data cleared from memory
 *** Running ferret script: bn_gif.jnl
- Cached data cleared from memory
  **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
@@ -4605,8 +5405,10 @@ Re-defining viewport UM6
  Using every   2th vector in the Y direction
  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 UL6
 Re-defining viewport UM6
 Re-defining viewport UR6
@@ -4616,14 +5418,16 @@ Replacing definition of axis TDAYS
  Using every   4th vector in the X direction
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 Replacing definition of axis TAX
  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 XAX
 *** Running ferret script: bn_ps.jnl
- Cached data cleared from memory
  **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
@@ -4655,65 +5459,47 @@ vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j
 Re-defining viewport LM6
 Re-defining viewport UM6
 *** Running ferret script: bn_all_ef.jnl
- Cached data cleared from memory
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
  **ERROR: command syntax: unknown region name: @w
 set region/@w
  PERMANENT data cleared from memory
  TEMPORARY data cleared from memory
- **ERROR: command syntax: writev5d(tr, 0, 0, 0, 0, 0, 0, 0, "vis5d_out.v5d")
-          unknown function "writev5d"
-DEFINE VARIABLE/QUIET vflag = writev5d(tr, 0, 0, 0, 0, 0, 0, 0, "vis5d_out.v5d")
- **ERROR: variable unknown or not in data set: VFLAG
-LOAD/TEMPORARY vflag
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
- PERMANENT data cleared from memory
- TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
 *** Running ferret script: bn_startupfile.jnl
- Cached data cleared from memory
            *** 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_outline_poly.jnl
- Cached data cleared from memory
 *** Running ferret script: bn_contourcolor.jnl
- Cached data cleared from memory
+*** Running ferret script: bn_inf2missing.jnl
 *** Running python script: testgetstrdata.py
- Cached data cleared from memory
->>> ... ... >>> 
+>>> ... ... >>> >>> >>> 
 *** Running python script: testferregion.py
- Cached data cleared from memory
->>> ... ... >>> >>> 
+>>> ... ... >>> >>> >>> >>> >>> 
 *** Running python script: testferdset.py
- Cached data cleared from memory
->>> ... ... >>> 
+>>> ... ... >>> >>> >>> 
 *** Running python script: testfervar.py
- Cached data cleared from memory
->>> ... ... >>> Traceback (most recent call last):
+>>> ... ... >>> >>> >>> 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 240, in __delattr__
+  File "/home/flat/ksmith/PyFerret/lib/python2.6/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 175, in __delitem__
+  File "/home/flat/ksmith/PyFerret/lib/python2.6/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
     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
 
 *** Running python script: testferaggdset.py
- Cached data cleared from memory
->>> ... ... >>>            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
+>>> ... ... >>> >>> >>>            *** NOTE: Variable "AIRT" excluded from aggregate: Not found in all member datasets
 
 *** Running python script: testferaxis.py
- Cached data cleared from memory
->>> ... ... >>> >>> 
+>>> ... ... >>> >>> >>> >>> >>> 
 *** Running python script: testfergrid.py
- Cached data cleared from memory
->>> ... ... >>> >>> 
+>>> ... ... >>> >>> >>> >>> >>> 
 *** Running python script: testferpyvar.py
- Cached data cleared from memory
->>> ... ... >>> 
+>>> ... ... >>> >>> >>> 
 *** Running python script: testfermethods.py
- Cached data cleared from memory
->>> ... ... >>> 
-Ended at Fri Jun 17 15:19:14 PDT 2016
+>>> ... ... >>> >>> >>> 
+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 a879531..953c137 100644
--- a/bench/test_results/pyferret_run_tests_log
+++ b/bench/test_results/pyferret_run_tests_log
@@ -1,5 +1,5 @@
 Using FERRET /home/flat/ksmith/PyFerret/bin/pyferret
--rwxr-xr-x. 1 ksmith oerdnewp 1387 Jun 17 15:17 /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
@@ -10,7 +10,6 @@ FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /hom
 FER_DESCR=.
 FER_DIR=.
 FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/flat/ksmith/PyFerret/ext_func/libs
 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=.
@@ -279,12 +278,30 @@ Benchmark scripts that will be run:
    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
@@ -294,7 +311,7 @@ Benchmark scripts that will be run:
    testfergrid.py
    testferpyvar.py
    testfermethods.py
-Beginning at Fri Jun 17 15:17:18 PDT 2016
+Beginning at Tue Apr 18 17:14:32 PDT 2017
 *** Running ferret script: bn_syntax.jnl
 [?1034h! bn401_syntax.JNL
 ! - test syntax interpretation of Program FERRET
@@ -319,43 +336,43 @@ SHOW DATA/BRIEF
 SHOW DATA
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
  
 SHOW DATA/VARIABLES
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.8S:51.4N  
  
@@ -364,43 +381,43 @@ SHOW DATA/VARIABLES
 SHOW DATA/FILES
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
  
 SHOW DATA/FULL
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.8S:51.4N  
  
@@ -438,8 +455,8 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./snoopy.dat  (default)
  
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:2       ...       ...       ...
                on grid (G008) with -1.E+34 for missing data
              X=-0.5:1.5  
  
@@ -450,8 +467,8 @@ FILE/TITLE="quick and dirty" snoopy.dat
 SHOW DATA
      currently SET data sets:
     1> ./snoopy.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:2       ...       ...       ...
  
 SET MODE IGNORE_ERROR
 SET DATA/EZ/VAR="P,Q" 1
@@ -592,11 +609,11 @@ region W
 ! SET - SHOW - CANCEL  MODE
 SHOW MODES
       MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
+      DIAGNOSTIC    CANCELED            99
       VERIFY           SET         DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
+      INTERPOLATE   CANCELED
+      IGNORE_ERROR  CANCELED
+      STUPID        CANCELED
       JOURNAL          SET         ferret.jnl
       LONG_LABEL       SET               1
       LATIT_LABEL      SET               1
@@ -606,32 +623,33 @@ SHOW MODES
       F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
+      WAIT          CANCELED
+      DESPERATE     CANCELED       2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      ferret.png
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
-      LOGO          CANCELLED
+      METAFILE      CANCELED       ferret.png
+      PPLLIST       CANCELED       ppllist.out
+      GUI           CANCELED
+      LOGO          CANCELED
       LABELS           SET
-      GRATICULE     CANCELLED
+      GRATICULE     CANCELED
       LINECOLORS       SET               6
       UPCASE_OUTPU     SET
       NLEVELS          SET              30
       NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      LAYERZ        CANCELLED
+      SHRINK_YLAB   CANCELED
+      CURVILINEAR   CANCELED
+      LAYERZ        CANCELED
       6D_LAB           SET
+      FRUGAL           SET              30
 SET MODE IGNORE_ERROR
 SHOW MODES
       MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
+      DIAGNOSTIC    CANCELED            99
       VERIFY           SET         DEFAULT
-      INTERPOLATE   CANCELLED
+      INTERPOLATE   CANCELED
       IGNORE_ERROR     SET
-      STUPID        CANCELLED
+      STUPID        CANCELED
       JOURNAL          SET         ferret.jnl
       LONG_LABEL       SET               1
       LATIT_LABEL      SET               1
@@ -641,32 +659,33 @@ SHOW MODES
       F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
+      WAIT          CANCELED
+      DESPERATE     CANCELED       2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      ferret.png
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
-      LOGO          CANCELLED
+      METAFILE      CANCELED       ferret.png
+      PPLLIST       CANCELED       ppllist.out
+      GUI           CANCELED
+      LOGO          CANCELED
       LABELS           SET
-      GRATICULE     CANCELLED
+      GRATICULE     CANCELED
       LINECOLORS       SET               6
       UPCASE_OUTPU     SET
       NLEVELS          SET              30
       NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      LAYERZ        CANCELLED
+      SHRINK_YLAB   CANCELED
+      CURVILINEAR   CANCELED
+      LAYERZ        CANCELED
       6D_LAB           SET
+      FRUGAL           SET              30
 CANCEL MODE IGNORE_ERROR
 SHOW MODES
       MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
+      DIAGNOSTIC    CANCELED            99
       VERIFY           SET         DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
+      INTERPOLATE   CANCELED
+      IGNORE_ERROR  CANCELED
+      STUPID        CANCELED
       JOURNAL          SET         ferret.jnl
       LONG_LABEL       SET               1
       LATIT_LABEL      SET               1
@@ -676,27 +695,28 @@ SHOW MODES
       F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
+      WAIT          CANCELED
+      DESPERATE     CANCELED       2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      ferret.png
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
-      LOGO          CANCELLED
+      METAFILE      CANCELED       ferret.png
+      PPLLIST       CANCELED       ppllist.out
+      GUI           CANCELED
+      LOGO          CANCELED
       LABELS           SET
-      GRATICULE     CANCELLED
+      GRATICULE     CANCELED
       LINECOLORS       SET               6
       UPCASE_OUTPU     SET
       NLEVELS          SET              30
       NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      LAYERZ        CANCELLED
+      SHRINK_YLAB   CANCELED
+      CURVILINEAR   CANCELED
+      LAYERZ        CANCELED
       6D_LAB           SET
+      FRUGAL           SET              30
 SHOW MODE STUPID
       MODE            STATE        ARGUMENT
-      STUPID        CANCELLED
+      STUPID        CANCELED
 SET MODE STUPID
 SHOW MODE STUPID
       MODE            STATE        ARGUMENT
@@ -704,7 +724,7 @@ SHOW MODE STUPID
 SET MODE/LAST STUPID
 SHOW MODE STUPID
       MODE            STATE        ARGUMENT
-      STUPID        CANCELLED
+      STUPID        CANCELED
  
 ! new modes 5/93
 set mode journal newjournal.jnl
@@ -732,12 +752,12 @@ ppl list plot
 cancel mode journal
 show mode journal
       MODE            STATE        ARGUMENT
-      JOURNAL       CANCELLED      ferret.jnl
+      JOURNAL       CANCELED       ferret.jnl
  
 ! new 1/94  (syntax check also applies to modes journal and ppllist)
 show mode metafile
       MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      ferret.png
+      METAFILE      CANCELED       ferret.png
 set mode metafile newmetafile1.plt
 show mode metafile
       MODE            STATE        ARGUMENT
@@ -822,8 +842,6 @@ SHOW GRID
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 LIST/I=101:105/J=50/K=1/L=5 SALT
              VARIABLE : (SALINITY(ppt) - 35) /1000 (frac. by wt. less .035)
              FILENAME : gt4d011.cdf
@@ -847,8 +865,6 @@ SHOW GRID
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
- normal    E
- normal    F
 SET GRID/SAVE
 SET GRID ABSTRACT
 SHOW GRID
@@ -860,8 +876,6 @@ SHOW GRID
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
- normal    E
- normal    F
 SHOW GRID/X=180:165W SALT
     GRID PS3DT2
  name       axis              # pts   start                end                 subset
@@ -869,8 +883,6 @@ SHOW GRID/X=180:165W SALT
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
       50>  179.5E                1          179E
@@ -906,56 +918,62 @@ SHOW VARIABLES
  
 ! SHOW MEMORY , LOAD
 SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 5 words
 SHOW MEMORY/TEMPORARY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 5 words
 data loaded without /PERMANENT:
- SALT[D=gt4d011]                   X     mr:3  blk1:1  nblk:1
-  101  /130W          50  /1.3N           1  /0              5  /07-SEP-1982  ...  / ...         ...  / ...
-  105  /125W          50  /1.7N           1  /10             5  /13-SEP-1982  ...  / ...         ...  / ...
+ SALT[D=gt4d011]                   X     mr:3 size:5
+       101/130W               50/1.3N                1/0                   5/07-SEP-1982
+       105/125W               50/1.7N                1/10                  5/13-SEP-1982
  
 SHOW MEMORY/PERMANENT
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 5 words
 data loaded with /PERMANENT:
 SHOW MEMORY/ALL
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 5 words
 all data in memory:
- SALT[D=gt4d011]                   X     mr:3  blk1:1  nblk:1
-  101  /130W          50  /1.3N           1  /0              5  /07-SEP-1982  ...  / ...         ...  / ...
-  105  /125W          50  /1.7N           1  /10             5  /13-SEP-1982  ...  / ...         ...  / ...
+ SALT[D=gt4d011]                   X     mr:3 size:5
+       101/130W               50/1.3N                1/0                   5/07-SEP-1982
+       105/125W               50/1.7N                1/10                  5/13-SEP-1982
  
  
 LET A=i
 LOAD/PERM/I=1:5 A
 SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 15 words
+    Permanent: 5 words
 SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 12800
- 
-            number of free memory blocks: 1997
-            largest free region: 1997
-            number of free regions: 1
-            free memory table slots: 497
-            number of UN-CACHED variables: 0
-            number of /PERMANENT variables: 1
-            number of blocks used /PERM: 1
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 15 words
+    Permanent: 5 words
+    Total table slots: 500
+    Free table slots: 497
+    Un-cached variables: 0
+    number of /PERMANENT variables: 1
+    memory used for /PERM: 5
 LOAD/TEMPORARY/I=1:5 A
 SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 10 words
 SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 12800
- 
-            number of free memory blocks: 1998
-            largest free region: 1997
-            number of free regions: 2
-            free memory table slots: 498
-            number of UN-CACHED variables: 0
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 18 words
+    Current cache: 10 words
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
  
 ! REPEAT
 REPEAT/L=1:3 LIST/I=1:6/ORDER=X 1/(I+L)
@@ -1552,17 +1570,17 @@ use coads_climatology
 set mode diagnostic
 let sst2 = sst[l=5:8]
 say `sst, return=size`    ! should only do a GETGRID
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  !-> MESSAGE/CONTINUE 48600
 48600
 say `sst2,return=lend`    ! should inherit L=5:8
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 SST2     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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
+ getgrid SST2     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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
  !-> MESSAGE/CONTINUE 8
 8
 set mode/last diagnostic
@@ -1678,42 +1696,42 @@ say `sst[L=1:3 at ave]+sst,return=lsize`
 let a = XSEQUENCE(J[j=1:5])
 set mode diagnostic
 say `a,return=isize`          ! full evaluation occurs
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C01,V08 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C11,V08 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ 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
+ getgrid A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C01,V08 C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C11,V08 C: 11 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 (C11,V08 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- -DELETE X        M:  4 dset:   0 I:  160  160  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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: -999 -999  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V08 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C11,V08 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M:  4 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pass #2 (C11,V08 C: 11 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ -DELETE X        M:  4 dset:   0 I:    160    160  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V08 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C11,V08 C: 10 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  J        M:  4 dset:   0 I:   -999   -999  J:    1    5  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 5
 5
 say `a[i=2:3],return=isize`   ! full evaluation is bypassed
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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
- -DELETE J        M:  4 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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: -999 -999  M: -999 -999  N: -999 -999
- found   A        M: 10 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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
+ -DELETE J        M:  4 dset:   0 I:   -999   -999  J:    1    5  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ found   A        M: 10 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 2
 2
 say `a[i=100:200],return=isize`    ! correct starting with Ferret v694 (tkt 2213)
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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: -999 -999  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I:  100  200  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V08 C:  8 dset:   0 I:  100  200  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- found   (C11,V08 M:  8 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -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
+ 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:   -999   -999
+ eval    A        C:  6 dset:   0 I:    100    200  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V08 C:  8 dset:   0 I:    100    200  J: -999 -999  K: -999 -999  L:   -999   -999
+ found   (C11,V08 M:  8 dset:   0 I:   -999   -999  J:    1    5  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 5
 5
 set mode/last diagnostic
@@ -1773,8 +1791,8 @@ show var/d=clim_airt_lev
 show data clim_airt_lev
      currently SET data sets:
     1> ./clim_airt_lev.cdf  (default)
- name     title                             I         J         K         L         M         N
- AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12
  ------------------------------
  A[D=clim_airt_lev] = CLIM_AIRT_LEV-SPECIFIC
  
@@ -1854,22 +1872,22 @@ set var/titl=test3 t3[d=snoopy.dat]
 show data
      currently SET data sets:
     1> ./clim_airt_lev.cdf
- name     title                             I         J         K         L         M         N
- AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12
  ------------------------------
  T3[D=clim_airt_lev] = 3
  
     2> ./snoopy.dat  (default)
- name     title                             I         J         K         L         M         N
- T4       test4                            1:2       ...       ...       ...       ...       ...
- T3       test3                            1:2       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ T4       test4                            1:2       ...       ...       ...
+ T3       test3                            1:2       ...       ...       ...
  
 show data/full 1
      currently SET data sets:
     1> ./clim_airt_lev.cdf
  
- name     title                             I         J         K         L         M         N
- AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ AIRT     CLIMATOLOGICAL AIR TEMPERATURE   1:160     1:100     ...       1:12
              deg. C on grid GGT1 with -1.E+34 for missing data
              X=130E:70W  Y=30S:50N  
  
@@ -3205,8 +3223,8 @@ USE gt4d011
 CANCEL MEMORY/ALL
 SET MODE DIAGNOSTIC
 DEFINE REGION/I=101 IPT
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1
 DEFINE REGION/J=46 JPT
 DEFINE REGION/K=1 KPT
 DEFINE REGION/L=1 LPT
@@ -3214,10 +3232,10 @@ DEFINE REGION/I=101:105/J=46:50/K=1:5/L=1:5 R4D
 SET REG R4D
 SET EXPRESSION temp
 LOAD		! load full 4-D region
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  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 PS3DT2          PSXT      PSYT      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
+ reading TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
 GO bn_geometry.sub
 ! BN200_GEOMETRY.SUB
 ! list the variable vtest on variuos geometries
@@ -3227,8 +3245,8 @@ GO bn_geometry.sub
 ! lines of data
 LIST/@JPT/@KPT/@LPT/ORDER=X
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (LONGITUDE)
@@ -3238,11 +3256,11 @@ LIST/@JPT/@KPT/@LPT/ORDER=X
           129.5W 128.5W 127.5W 126.5W 125.5W 
           101    102    103    104    105
           25.78  25.80  25.82  25.80  25.74
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      1
 LIST/@IPT/@KPT/@LPT/ORDER=Y
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (LATITUDE)
@@ -3252,11 +3270,11 @@ LIST/@IPT/@KPT/@LPT/ORDER=Y
            0.17N  0.5N   0.83N  1.17N  1.5N  
            46     47     48     49     50
           25.78  25.90  26.04  26.22  26.42
- -DELETE TEMP     M: 29 dset:   1 I:   46   50  J:  101  101  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:     46     50  J:  101  101  K:    1    1  L:      1      1
 LIST/@IPT/@JPT/@LPT/ORDER=Z
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (DEPTH (m))
@@ -3266,11 +3284,11 @@ LIST/@IPT/@JPT/@LPT/ORDER=Z
            5      15     25     35     45    
             1      2      3      4      5
           25.78  25.67  25.51  25.35  25.16
- -DELETE TEMP     M: 29 dset:   1 I:    1    5  J:  101  101  K:   46   46  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:      1      5  J:  101  101  K:   46   46  L:      1      1
 LIST/@IPT/@JPT/@KPT/ORDER=T
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    1  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (TIME)
@@ -3280,13 +3298,13 @@ LIST/@IPT/@JPT/@KPT/ORDER=T
            1982   1982   1982   1982   1982  
             1      2      3      4      5
           25.78  25.98  26.18  26.39  26.62
- -DELETE TEMP     M: 29 dset:   1 I:    1    5  J:  101  101  K:   46   46  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:      1      5  J:  101  101  K:   46   46  L:      1      1
  
 ! planes of data
 LIST/@KPT/@LPT	!XY
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
@@ -3299,11 +3317,11 @@ LIST/@KPT/@LPT	!XY
  0.83N / 48:  26.04  26.10  26.13  26.11  26.06
  0.5N  / 47:  25.90  25.94  25.96  25.94  25.89
  0.17N / 46:  25.78  25.80  25.82  25.80  25.74
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      1
 LIST/@JPT/@LPT	!XZ
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-DEPTH (m))
@@ -3316,11 +3334,11 @@ LIST/@JPT/@LPT	!XZ
  25    / 3:  25.51  25.53  25.54  25.53  25.48
  35    / 4:  25.35  25.36  25.36  25.34  25.29
  45    / 5:  25.16  25.15  25.12  25.07  25.02
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:    1    5  K:   46   46  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:    1    5  K:   46   46  L:      1      1
 LIST/@JPT/@KPT	!XT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-TIME)
@@ -3333,11 +3351,11 @@ LIST/@JPT/@KPT	!XT
  29-AUG-1982 16 / 3:  26.18  26.13  26.07  26.01  25.97
  04-SEP-1982 18 / 4:  26.39  26.31  26.24  26.18  26.15
  10-SEP-1982 20 / 5:  26.62  26.55  26.47  26.40  26.36
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:    1    5  K:   46   46  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:    1    5  K:   46   46  L:      1      1
 LIST/@IPT/@LPT	!YZ
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LATITUDE-DEPTH (m))
@@ -3350,11 +3368,11 @@ LIST/@IPT/@LPT	!YZ
  25    / 3:  25.51  25.68  25.90  26.12  26.35
  35    / 4:  25.35  25.58  25.86  26.11  26.35
  45    / 5:  25.16  25.41  25.77  26.10  26.35
- -DELETE TEMP     M: 29 dset:   1 I:   46   50  J:    1    5  K:  101  101  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:     46     50  J:    1    5  K:  101  101  L:      1      1
 LIST/@IPT/@KPT	!YT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LATITUDE-TIME)
@@ -3367,11 +3385,11 @@ LIST/@IPT/@KPT	!YT
  29-AUG-1982 16 / 3:  26.18  26.30  26.46  26.65  26.86
  04-SEP-1982 18 / 4:  26.39  26.51  26.67  26.85  27.05
  10-SEP-1982 20 / 5:  26.62  26.72  26.87  27.03  27.17
- -DELETE TEMP     M: 29 dset:   1 I:   46   50  J:    1    5  K:  101  101  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:     46     50  J:    1    5  K:  101  101  L:      1      1
 LIST/@IPT/@JPT	!ZT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (DEPTH (m)-TIME)
@@ -3384,13 +3402,13 @@ LIST/@IPT/@JPT	!ZT
  29-AUG-1982 16 / 3:  26.18  26.08  25.93  25.79  25.60
  04-SEP-1982 18 / 4:  26.39  26.31  26.16  26.04  25.83
  10-SEP-1982 20 / 5:  26.62  26.53  26.36  26.25  26.04
- -DELETE TEMP     M: 29 dset:   1 I:    1    5  J:    1    5  K:  101  101  L:   46   46  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:      1      5  J:    1    5  K:  101  101  L:     46     46
  
 ! cubes of data
 LIST/@LPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      1
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-DEPTH (m))
@@ -3427,11 +3445,11 @@ LIST/@LPT
  0.83N / 48:  25.77  25.81  25.82  25.81  25.76
  0.5N  / 47:  25.41  25.43  25.41  25.38  25.32
  0.17N / 46:  25.16  25.15  25.12  25.07  25.02
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      1
 LIST/@KPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-TIME)
@@ -3468,11 +3486,11 @@ LIST/@KPT
  0.83N / 48:  26.87  26.75  26.62  26.54  26.52
  0.5N  / 47:  26.72  26.63  26.52  26.45  26.43
  0.17N / 46:  26.62  26.55  26.47  26.40  26.36
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      1
 LIST/@JPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-DEPTH (m)-TIME)
@@ -3509,11 +3527,11 @@ LIST/@JPT
  25    / 3:  26.36  26.31  26.19  26.08  26.03
  35    / 4:  26.25  26.21  26.09  25.98  25.92
  45    / 5:  26.04  26.01  25.93  25.84  25.77
- -DELETE TEMP     M: 29 dset:   1 I:  101  105  J:    1    5  K:    1    5  L:   46   46  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:    101    105  J:    1    5  K:    1    5  L:     46     46
 LIST/@IPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LATITUDE-DEPTH (m)-TIME)
@@ -3550,12 +3568,12 @@ LIST/@IPT
  25    / 3:  26.36  26.59  26.78  26.95  27.09
  35    / 4:  26.25  26.53  26.78  26.95  27.09
  45    / 5:  26.04  26.32  26.68  26.95  27.09
- -DELETE TEMP     M: 29 dset:   1 I:   46   50  J:    1    5  K:    1    5  L:  101  101  M: -999 -999  N: -999 -999
+ -DELETE TEMP     M: 29 dset:   1 I:     46     50  J:    1    5  K:    1    5  L:    101    101
  
 ! 4D region
 LOAD
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- found   TEMP     M: 31 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
+ found   TEMP     M: 31 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
 SET MODE/LAST DIAGNOSTIC
  
 ! ******** disk-resident file variable ************
@@ -3563,7 +3581,7 @@ USE gt4d011
 CANCEL MEMORY/ALL
 SET MODE DIAGNOSTIC
 DEFINE REGION/I=101 IPT
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1
 DEFINE REGION/J=46 JPT
 DEFINE REGION/K=1 KPT
 DEFINE REGION/L=1 LPT
@@ -3578,11 +3596,11 @@ GO bn_geometry.sub
  
 ! lines of data
 LIST/@JPT/@KPT/@LPT/ORDER=X
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     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 PS3DT2          PSXT      PSYT      PSZT      TIME1
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 31 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      1
+ reading TEMP     M: 31 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (LONGITUDE)
@@ -3594,8 +3612,8 @@ LIST/@JPT/@KPT/@LPT/ORDER=X
           25.78  25.80  25.82  25.80  25.74
 LIST/@IPT/@KPT/@LPT/ORDER=Y
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 29 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      1
+ reading TEMP     M: 29 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (LATITUDE)
@@ -3607,8 +3625,8 @@ LIST/@IPT/@KPT/@LPT/ORDER=Y
           25.78  25.90  26.04  26.22  26.42
 LIST/@IPT/@JPT/@LPT/ORDER=Z
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 28 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      1
+ reading TEMP     M: 28 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (DEPTH (m))
@@ -3620,8 +3638,8 @@ LIST/@IPT/@JPT/@LPT/ORDER=Z
           25.78  25.67  25.51  25.35  25.16
 LIST/@IPT/@JPT/@KPT/ORDER=T
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 27 dset:   1 I:  101  101  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    1  L:      1      5
+ reading TEMP     M: 27 dset:   1 I:    101    101  J:   46   46  K:    1    1  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 points (TIME)
@@ -3635,8 +3653,8 @@ LIST/@IPT/@JPT/@KPT/ORDER=T
 ! planes of data
 LIST/@KPT/@LPT	!XY
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 26 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      1
+ reading TEMP     M: 26 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-LATITUDE)
@@ -3651,8 +3669,8 @@ LIST/@KPT/@LPT	!XY
  0.17N / 46:  25.78  25.80  25.82  25.80  25.74
 LIST/@JPT/@LPT	!XZ
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 25 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      1
+ reading TEMP     M: 25 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-DEPTH (m))
@@ -3667,8 +3685,8 @@ LIST/@JPT/@LPT	!XZ
  45    / 5:  25.16  25.15  25.12  25.07  25.02
 LIST/@JPT/@KPT	!XT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 24 dset:   1 I:  101  105  J:   46   46  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      5
+ reading TEMP     M: 24 dset:   1 I:    101    105  J:   46   46  K:    1    1  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LONGITUDE-TIME)
@@ -3683,8 +3701,8 @@ LIST/@JPT/@KPT	!XT
  10-SEP-1982 20 / 5:  26.62  26.55  26.47  26.40  26.36
 LIST/@IPT/@LPT	!YZ
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 23 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      1
+ reading TEMP     M: 23 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LATITUDE-DEPTH (m))
@@ -3699,8 +3717,8 @@ LIST/@IPT/@LPT	!YZ
  45    / 5:  25.16  25.41  25.77  26.10  26.35
 LIST/@IPT/@KPT	!YT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 22 dset:   1 I:  101  101  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      5
+ reading TEMP     M: 22 dset:   1 I:    101    101  J:   46   50  K:    1    1  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (LATITUDE-TIME)
@@ -3715,8 +3733,8 @@ LIST/@IPT/@KPT	!YT
  10-SEP-1982 20 / 5:  26.62  26.72  26.87  27.03  27.17
 LIST/@IPT/@JPT	!ZT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 21 dset:   1 I:  101  101  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      5
+ reading TEMP     M: 21 dset:   1 I:    101    101  J:   46   46  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 points (DEPTH (m)-TIME)
@@ -3733,8 +3751,8 @@ LIST/@IPT/@JPT	!ZT
 ! cubes of data
 LIST/@LPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
- reading TEMP     M: 20 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      1
+ reading TEMP     M: 20 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      1
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-DEPTH (m))
@@ -3773,8 +3791,8 @@ LIST/@LPT
  0.17N / 46:  25.16  25.15  25.12  25.07  25.02
 LIST/@KPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 19 dset:   1 I:  101  105  J:   46   50  K:    1    1  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      5
+ reading TEMP     M: 19 dset:   1 I:    101    105  J:   46   50  K:    1    1  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-LATITUDE-TIME)
@@ -3813,8 +3831,8 @@ LIST/@KPT
  0.17N / 46:  26.62  26.55  26.47  26.40  26.36
 LIST/@JPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 18 dset:   1 I:  101  105  J:   46   46  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      5
+ reading TEMP     M: 18 dset:   1 I:    101    105  J:   46   46  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LONGITUDE-DEPTH (m)-TIME)
@@ -3853,8 +3871,8 @@ LIST/@JPT
  45    / 5:  26.04  26.01  25.93  25.84  25.77
 LIST/@IPT
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 17 dset:   1 I:  101  101  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      5
+ reading TEMP     M: 17 dset:   1 I:    101    101  J:   46   50  K:    1    5  L:      1      5
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
              SUBSET   : 5 by 5 by 5 points (LATITUDE-DEPTH (m)-TIME)
@@ -3894,8 +3912,8 @@ LIST/@IPT
  
 ! 4D region
 LOAD
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
- reading TEMP     M: 16 dset:   1 I:  101  105  J:   46   50  K:    1    5  L:    1    5  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
+ reading TEMP     M: 16 dset:   1 I:    101    105  J:   46   50  K:    1    5  L:      1      5
 SET MODE/LAST DIAGNOSTIC
  
 ! ******** diagnostic variable ************
@@ -3920,6 +3938,7 @@ SET MODE/LAST IGNORE_ERRORS
 [?1034h! 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)
  
 LET v = 1000*i + 100*j + 10*k + l
 SET REGION/I=1:2/J=3:4/K=5:6/L=7:8
@@ -6892,15 +6911,16 @@ LIST
 2   / 2:  2467.  2.000  4.000  6.000  7.000
 CANCEL LIST/ALL
 SET LIST/FILE=AUTO-X
-LIST/FILE
-LIST/FILE=test.dat
+LIST/CLOBBER/FILE
+LIST/CLOBBER/FILE=test.dat
 LIST/FILE=test.dat/APPEND
-LIST/FILE=test.unf/FORMAT=UNFORMATTED
+LIST/CLOBBER/FILE=test.unf/FORMAT=UNFORMATTED
 ! V6.8 we no longer write this file type
 SET MODE IGNORE
 LIST/FILE=test.gt/FORMAT=TMAP/L=1:3 v,v^0.5
 SET MODE/LAST IGNORE
 CANCEL LIST
+ 
 *** Running ferret script: bn_in_plane.jnl
 [?1034h! bn200_in_plane.JNL
 ! benchmark various geometries with in-plane transformation applied (@SBX)
@@ -9639,8 +9659,6 @@ show grid/l=1:4 g24 g48
  normal    Y
  normal    Z
  TAX24     TIME               732 r   01-JAN-1980 00:00    01-JAN-1982 00:00
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (HOURS)
        1>  01-JAN-1980 00:00:00  24         31-DEC-1979 12:00:00   87648
@@ -9653,8 +9671,6 @@ show grid/l=1:4 g24 g48
  normal    Y
  normal    Z
  TAX48     TIME               367 r   01-JAN-1980 00:00    02-JAN-1982 00:00
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (HOURS)
        1>  01-JAN-1980 00:00:00  48         31-DEC-1979 00:00:00   525960
@@ -9709,8 +9725,8 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- V1       V1                               1:5       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:5       ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:5.5  
  
@@ -9729,8 +9745,8 @@ LIST V1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:5       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:5       ...       ...       ...
  
  
 ! first 2 values from each line
@@ -9739,11 +9755,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:5       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:5       ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:5.5  
- X2       X2                               1:5       ...       ...       ...       ...       ...
+ X2       X2                               1:5       ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:5.5  
  
@@ -9764,9 +9780,9 @@ LIST X1,X2
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:5       ...       ...       ...       ...       ...
- X2       X2                               1:5       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:5       ...       ...       ...
+ X2       X2                               1:5       ...       ...       ...
  
  
 ! all 6 values on each line
@@ -9775,11 +9791,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:15.5  
  
@@ -9808,9 +9824,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
  
  
 ! all 6 but skip first 2 lines
@@ -9819,11 +9835,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:15.5  
  
@@ -9846,9 +9862,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:9       ...       ...       ...       ...       ...
- X2       X2                               1:9       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:9       ...       ...       ...
+ X2       X2                               1:9       ...       ...       ...
  
  
 ! take 1st and 4th values on each line as X1
@@ -9857,11 +9873,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:15.5  
  
@@ -9881,9 +9897,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:6       ...       ...       ...       ...       ...
- X2       X2                               1:6       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:6       ...       ...       ...
+ X2       X2                               1:6       ...       ...       ...
  
  
 ! specify the format explicitly
@@ -9892,11 +9908,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:15.5  
  
@@ -9919,9 +9935,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:9       ...       ...       ...       ...       ...
- X2       X2                               1:9       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:9       ...       ...       ...
+ X2       X2                               1:9       ...       ...       ...
  
  
 ! specify the format to skip every second line
@@ -9930,11 +9946,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:15      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:15      ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:15.5  
- X2       X2                               1:15      ...       ...       ...       ...       ...
+ X2       X2                               1:15      ...       ...       ...
                on grid (G001) with -1.E+34 for missing data
              X=0.5:15.5  
  
@@ -9954,9 +9970,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:6       ...       ...       ...       ...       ...
- X2       X2                               1:6       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:6       ...       ...       ...
+ X2       X2                               1:6       ...       ...       ...
  
  
 ! modify variable title
@@ -9964,9 +9980,9 @@ SET VARIABLE/TITLE="first variable" X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       first variable                   1:6       ...       ...       ...       ...       ...
- X2       X2                               1:6       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       first variable                   1:6       ...       ...       ...
+ X2       X2                               1:6       ...       ...       ...
  
  
 ! read onto a 2D grid
@@ -9977,11 +9993,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:3       1:20480   ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:3       1:20480   ...       ...
                on grid GEZ1 with -1.E+34 for missing data
              X=0.5:3.5  Y=0.5:20480.5  
- X2       X2                               1:3       1:20480   ...       ...       ...       ...
+ X2       X2                               1:3       1:20480   ...       ...
                on grid GEZ1 with -1.E+34 for missing data
              X=0.5:3.5  Y=0.5:20480.5  
  
@@ -10002,9 +10018,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:3       1:5       ...       ...       ...       ...
- X2       X2                               1:3       1:5       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:3       1:5       ...       ...
+ X2       X2                               1:3       1:5       ...       ...
  
  
 ! read onto a 4D grid
@@ -10017,11 +10033,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:1       1:3       1:2       1:20480   ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:1       1:3       1:2       1:20480
                on grid GEZ2 with -1.E+34 for missing data
              X=0.5:1.5  Y=0.5:3.5  Z=0.5:2.5  
- X2       X2                               1:1       1:3       1:2       1:20480   ...       ...
+ X2       X2                               1:1       1:3       1:2       1:20480
                on grid GEZ2 with -1.E+34 for missing data
              X=0.5:1.5  Y=0.5:3.5  Z=0.5:2.5  
  
@@ -10044,12 +10060,16 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:1       1:3       1:2       1:2       ...       ...
- X2       X2                               1:1       1:3       1:2       1:2       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:1       1:3       1:2       1:2
+ X2       X2                               1:1       1:3       1:2       1:2
  
  
 ! truncate reading by grid size limit
+! V702: *sh* note that with 3 columns of pairs and a request to read only
+! 8 values total, the final record is incomplete.  These final values
+! **do not get initialized**.  This has been reported in trac #2509
+! The presence of uninitialized values can throw off the formatting of the output
 DEFINE AXIS/X=1:8:1 xez3
 DEFINE GRID/X=XEZ3 GEZ3
 FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ3 EZ.DAT
@@ -10057,11 +10077,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:8       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:8       ...       ...       ...
                on grid GEZ3 with -1.E+34 for missing data
              X=0.5:8.5  
- X2       X2                               1:8       ...       ...       ...       ...       ...
+ X2       X2                               1:8       ...       ...       ...
                on grid GEZ3 with -1.E+34 for missing data
              X=0.5:8.5  
  
@@ -10078,14 +10098,14 @@ LIST X1
  4   / 4:  0.3550
  5   / 5:  0.3790
  6   / 6:  0.3930
- 7   / 7:  0.4100
- 8   / 8:  0.4170
+ 7   / 7:    ....
+ 8   / 8:  0.0000
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:8       ...       ...       ...       ...       ...
- X2       X2                               1:8       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:8       ...       ...       ...
+ X2       X2                               1:8       ...       ...       ...
  
  
 ! 8/10/95 -- added tests of unformatted writing and reading
@@ -10093,7 +10113,7 @@ SP rm -f test.unf
 LIST/FILE=test.unf/format=unf/i=1:10 i
 file/form=unf/var=my_var test.unf
 list my_var
-             VARIABLE : MY_VAR
+             VARIABLE : my_var
              FILENAME : test.unf
              SUBSET   : 10 points (X)
  1    /  1:   1.00
@@ -10503,20 +10523,22 @@ show symbols/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7"
-FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64"
+FERRET_VERSION = "7.1"
+FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "17-Jun-16"
-SESSION_TIME = "15:17"
-SESSION_PID = "2564"
-DELTA_CPU = "0.199969"
-CLOCK_SECS = "0.097"
-CURRENT_DATE = "17-Jun-16"
-CURRENT_TIME = "15:17:26"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "PyFerret"
+PEAK_MEMORY = "0"
+SPAWN_STATUS = "1"
  
 ! define some symbols ... syntax variations
 define symbol s1 = hello
@@ -10532,20 +10554,22 @@ show symbol/all
 PPL$XPIXEL = "0"
 PPL$YPIXEL = "0"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7"
-FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64"
+FERRET_VERSION = "7.1"
+FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "17-Jun-16"
-SESSION_TIME = "15:17"
-SESSION_PID = "2564"
-DELTA_CPU = "9.99E-04"
-CLOCK_SECS = "0.098"
-CURRENT_DATE = "17-Jun-16"
-CURRENT_TIME = "15:17:26"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "PyFerret"
+PEAK_MEMORY = "0"
+SPAWN_STATUS = "1"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10553,9 +10577,10 @@ NUM = "3"
 T$DOLLAR = "hi"
 T_HELLO = "hi"
 show symbol s*
-SESSION_DATE = "17-Jun-16"
-SESSION_TIME = "15:17"
-SESSION_PID = "2564"
+SESSION_DATE = "18-Apr-17"
+SESSION_TIME = "17:14"
+SESSION_PID = "13862"
+SPAWN_STATUS = "1"
 S1 = "hello"
 S2 = ""hello""
 S3 = "hello and goodbye"
@@ -10565,15 +10590,17 @@ S2 = ""hello""
 ! exercise CANCEL SYMBOL
 cancel symbol s2
 show symbol s*
-SESSION_DATE = "17-Jun-16"
-SESSION_TIME = "15:17"
-SESSION_PID = "2564"
+SESSION_DATE = "18-Apr-17"
+SESSION_TIME = "17:14"
+SESSION_PID = "13862"
+SPAWN_STATUS = "1"
 S1 = "hello"
 S3 = "hello and goodbye"
 show symbol S*
-SESSION_DATE = "17-Jun-16"
-SESSION_TIME = "15:17"
-SESSION_PID = "2564"
+SESSION_DATE = "18-Apr-17"
+SESSION_TIME = "17:14"
+SESSION_PID = "13862"
+SPAWN_STATUS = "1"
 S1 = "hello"
 S3 = "hello and goodbye"
 cancel symbol s2	! already deleted
@@ -10698,23 +10725,25 @@ say ($delayed_eval)         ! translate symbol and then evaluate
 ! cleanup
 cancel symbols/all
 show symbols/all
-PPL$XPIXEL = "979"
-PPL$YPIXEL = "844"
+PPL$XPIXEL = "819"
+PPL$YPIXEL = "707"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7"
-FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64"
+FERRET_VERSION = "7.1"
+FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "25.6"
-SESSION_DATE = "17-Jun-16"
-SESSION_TIME = "15:17"
-SESSION_PID = "2564"
-DELTA_CPU = "0.013999"
-CLOCK_SECS = "0.111"
-CURRENT_DATE = "17-Jun-16"
-CURRENT_TIME = "15:17:26"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "PyFerret"
+PEAK_MEMORY = "201"
+SPAWN_STATUS = "1"
  
 *** Running ferret script: bn_comma_delimited.jnl
 [?1034h! bn420_comma_delimited
@@ -12189,7 +12218,7 @@ LIST/FORMAT=comma/precision=5/order=x temp
              DEPTH (m): 15
              TIME     : 10-SEP-1982 20:00
    135.5W,134.5W
-row 1,27.335,27.222
+27.335 ,27.222
 LIST/FORMAT=comma/precision=5/order=y temp
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
@@ -12212,7 +12241,7 @@ LIST/FORMAT=comma/precision=5/order=y temp
              DEPTH (m): 15
              TIME     : 10-SEP-1982 20:00
    1.5S,1.2S
-row 1,27.335,27.238
+27.335 ,27.238
 LIST/FORMAT=comma/precision=5/order=x temp
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
@@ -12235,7 +12264,7 @@ LIST/FORMAT=comma/precision=5/order=z temp
              LATITUDE : 1.5S
              TIME     : 10-SEP-1982 20:00
    15      ,25      
-row 1,27.335,27.248
+27.335 ,27.248
 LIST/FORMAT=comma/precision=5/order=x temp
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
@@ -12260,7 +12289,7 @@ LIST/FORMAT=comma/precision=5/order=t temp
              LATITUDE : 1.5S
              DEPTH (m): 15
    10-SEP-1982 20:00,16-SEP-1982 22:00
-row 1,27.335,27.775
+27.335 ,27.775
 LIST/FORMAT=comma/precision=5/order=x temp
              VARIABLE : TEMPERATURE (deg. C)
              FILENAME : gt4d011.cdf
@@ -12320,8 +12349,8 @@ LIST/FORMAT=comma/precision=9 randu(i)*temp*1e7
              DEPTH (m): 15
              TIME     : 10-SEP-1982 20:00
    135.5W,134.5W
-1.5S,  166750845.,  202088412.
-1.2S,  166162833.,  201366579.
+1.5S,166750845.,202088412.
+1.2S,166162833.,201366579.
  
 ! small number formatting test
 set region/i=95:96/j=41:42/k=2/l=5
@@ -12409,10 +12438,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
  
 set mode ignore_errors
@@ -12460,10 +12485,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 list temp[gx=psyu]		! err during get_context_grid - axis mismatch
 show grid/dynamic
@@ -12504,10 +12525,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 let  tu = temp[gx=noexist]
 list tu				! err during get_context_mods
@@ -12551,10 +12568,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 let  tu = temp[gx=psyu]
 list tu				! err during get_context_grid - axis mismatch
@@ -12574,6 +12587,11 @@ let save_mem = ($ferret_memory)
 set mem/siz = 10
  
 list temp[gz=z999999,z=5:15]	! err during regrid
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 10 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 50 (5.E-04%)
+    The size of the requested object was: : 24999975 (250%)
 show grid/dynamic
 Dynamic grids:
     GRID (G005)                          use count:   1
@@ -12582,10 +12600,6 @@ Dynamic grids:
  PSYT      LATITUDE           100 i   28.836S              48.568N
  Z999999   DEPTH (m)       999999 r-  5                    15
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
 set mem/siz=`save_mem`
  !-> set mem/siz=25.6
  
@@ -12598,10 +12612,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 set mode/last ignore
  
@@ -12630,10 +12640,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 list temp[gy=psyu]
              VARIABLE : TEMPERATURE (deg. C)
@@ -12672,10 +12678,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 list temp[gx=w]
              VARIABLE : TEMPERATURE (deg. C)
@@ -12713,10 +12715,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 list  5 + temp[gx=psxu]
              VARIABLE : 5 + TEMP[GX=PSXU]
@@ -12739,10 +12737,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 let tu = temp[gx=psxu]
 list tu
@@ -12766,10 +12760,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
 show grid tu
     GRID (G005)
  name       axis              # pts   start                end                 subset
@@ -12777,8 +12767,6 @@ show grid tu
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00   full
- normal    E
- normal    F
  
 let tu = temp[gx=psxu] + 5
 list tu
@@ -12802,10 +12790,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
  
 ! implicit grid conformability
@@ -12881,10 +12865,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-Dynamic axes:
-    no implicit axes
  
 ! regridding between grids with mutually exclusive axes
 cancel region
@@ -13093,20 +13073,6 @@ Dynamic grids:
  (AX009)   Y                    3 r   95                   109
  normal    Z
  normal    T
- normal    E
- normal    F
-    GRID (G005)                          use count:   1
- name       axis              # pts   start                end
- (AX011)   X                    7 r   0.1                  9.1
- (AX010)   Y                   10 r   101                  110
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX009)                         use count:   1
-    AXIS (AX011)                         use count:   2
-    AXIS (AX010)                         use count:   1
  
 ! ambiguous coordinate tests
 list/order=x  x[x=0.1:10:1.5] +  x[x=1.1:11:1.5]
@@ -13130,10 +13096,6 @@ Dynamic grids:
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX009)                         use count:   1
  
 ! box size on dynamic axes
 cancel region
@@ -13160,12 +13122,10 @@ show grid/x
  Last successful data access was on grid (G005)
     GRID (G005)
  name       axis              # pts   start                end                 subset
- (AX011)   X                    5 i   1                    6561                4 pts
+ (AX011)   X                    5 i   1                    6561                5 pts
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     280        -59
@@ -13240,10 +13200,6 @@ Dynamic grids:
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX011)                         use count:   1
  
 ! this expression does NOT inherit the X axis -- the result is
 !	i) ambiguous X axis coordinates
@@ -13269,19 +13225,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-    GRID (G005)                          use count:   1
- name       axis              # pts   start                end
- (AX011)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX009)                         use count:   1
-    AXIS (AX011)                         use count:   1
  
 list/j=46:50/l=1/k=1 temp[i=101:120:4]+x[g=temp,i=101:120:4]
              VARIABLE : TEMP[I=101:120:4]+X[G=TEMP,I=101:120:4]
@@ -13353,19 +13296,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-    GRID (G005)                          use count:   1
- name       axis              # pts   start                end
- (AX011)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX009)                         use count:   1
-    AXIS (AX011)                         use count:   1
  
 ! regular dynamic axis
 ! ... by subscript
@@ -13436,19 +13366,6 @@ Dynamic grids:
  (AX009)   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
- normal    E
- normal    F
-    GRID (G005)                          use count:   1
- name       axis              # pts   start                end
- (AX011)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX009)                         use count:   1
-    AXIS (AX011)                         use count:   1
  
 ! ========
 ! 2/96: repeat the very same commands using GX=lo:hi:delta notation
@@ -13614,20 +13531,6 @@ Dynamic grids:
  (AX010)   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
- normal    E
- normal    F
-    GRID (G005)                          use count:   1
- name       axis              # pts   start                end
- (AX011)   X                    5 i   1                    6561
- normal    Y
- normal    Z
- normal    T
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX010)                         use count:   1
-    AXIS (AX012)                         use count:   1
-    AXIS (AX011)                         use count:   1
  
 ! the same tests but now on a nested definition
 ! regular dynamic axis
@@ -13799,19 +13702,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-    GRID (G005)                          use count:   1
- name       axis              # pts   start                end
- (AX012)   LONGITUDE            4 r   130W                 121W
- 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
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX010)                         use count:   1
-    AXIS (AX012)                         use count:   1
  
 ! irregular dynamic axis
 ! ... by subscript
@@ -13953,19 +13843,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-    GRID (G005)                          use count:   1
- name       axis              # pts   start                end
- PSXT      LONGITUDE          160mr   130.5E               70.5W
- (AX011)   LATITUDE             6 r   3.5S                 4N
- PSZT      DEPTH (m)           27 i-  5                    3824
- TIME2     TIME                 5mr   15-JAN-1982 14:00    27-JAN-1982 18:00
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX012)                         use count:   1
-    AXIS (AX011)                         use count:   1
  
 ! nested modulo (the dynamic axis is **NOT** modulo)
 ! ... by subscript
@@ -14151,19 +14028,6 @@ Dynamic grids:
  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
- normal    E
- normal    F
-    GRID (G005)                          use count:   1
- name       axis              # pts   start                end
- (AX010)   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
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX011)                         use count:   1
-    AXIS (AX010)                         use count:   1
  
 ! calendar axes
 list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]   ! 6-day ave
@@ -14259,8 +14123,8 @@ set data/format=cdf test0a, test0b, test0c, test0d, test0e, test0f, test0g, test
 show data 1
      currently SET data sets:
     1> ./test0a.cdf
- name     title                             I         J         K         L         M         N
- L_       L                                ...       ...       ...       1:500     ...       ...
+ name     title                             I         J         K         L
+ L_       L                                ...       ...       ...       1:500
        (axis ABSTRACT)
  
 show data/br
@@ -14411,78 +14275,78 @@ show data/full
      currently SET data sets:
     1> ./test_abs.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       I                                1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       I                                1:10      ...       ...       ...
                on grid GEU1 with -1.E+34 for missing data
              X=0.5:10.5  
- J1       J                                ...       1:20      ...       ...       ...       ...
+ J1       J                                ...       1:20      ...       ...
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- K1       K                                ...       ...       1:100     ...       ...       ...
+ K1       K                                ...       ...       1:100     ...
                on grid GEU3 with -1.E+34 for missing data
              Z=0.5:100.5  
- L1       L[G=GCENTURY]                    ...       ...       ...       1:12      ...       ...
+ L1       L[G=GCENTURY]                    ...       ...       ...       1:12
                on grid GEU4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:10      ...       ...
+ L2       L                                ...       ...       ...       1:10
                on grid GEU5 with -1.E+34 for missing data
              
- IJ       I+J                              1:10      1:20      ...       ...       ...       ...
+ IJ       I+J                              1:10      1:20      ...       ...
                on grid GEU6 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IK       I+K                              1:10      ...       1:100     ...       ...       ...
+ IK       I+K                              1:10      ...       1:100     ...
                on grid GEU7 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IL       I+L1                             1:10      ...       ...       1:12      ...       ...
+ IL       I+L1                             1:10      ...       ...       1:12
                on grid GEU8 with -1.E+34 for missing data
              X=0.5:10.5  
- JK       J+K                              ...       1:20      1:100     ...       ...       ...
+ JK       J+K                              ...       1:20      1:100     ...
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJK      I+J+K                            1:10      1:20      1:100     ...       ...       ...
+ IJK      I+J+K                            1:10      1:20      1:100     ...
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IKL      I+K+L1                           1:10      ...       1:100     1:12      ...       ...
+ IKL      I+K+L1                           1:10      ...       1:100     1:12
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJL      I+J+L1                           1:10      1:20      ...       1:12      ...       ...
+ IJL      I+J+L1                           1:10      1:20      ...       1:12
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- JKL      J+K+L1                           ...       1:20      1:100     1:12      ...       ...
+ JKL      J+K+L1                           ...       1:20      1:100     1:12
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJKL     I+J+K+L1                         1:10      1:20      1:100     1:12      ...       ...
+ IJKL     I+J+K+L1                         1:10      1:20      1:100     1:12
                on grid GEU14 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IJK2     I+J+K                            ...       1:20      1:100     ...       ...       ...
+ IJK2     I+J+K                            ...       1:20      1:100     ...
        (X=0.5:10.5 at AVE)
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IKL2     I+K+L1                           ...       ...       1:100     1:12      ...       ...
+ IKL2     I+K+L1                           ...       ...       1:100     1:12
        (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
                on grid GEU15 with -1.E+34 for missing data
              Z=0.5:100.5  
- IJL2     I+J+L1                           ...       ...       ...       1:12      ...       ...
+ IJL2     I+J+L1                           ...       ...       ...       1:12
        (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
                on grid GEU4 with -1.E+34 for missing data
              
- JKL2     J+K+L1                           ...       1:20      ...       ...       ...       ...
+ JKL2     J+K+L1                           ...       1:20      ...       ...
        (Z=0.5:100.5 at AV4, T=03-JAN-1902 12:00:08-JAN-1902 12:00 at AV4)
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:12      ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:12
        (X=0.5:10.5)
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:12      ...       ...
+ IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:12
        (Y=0.5:20.5)
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:12      ...       ...
+ IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:12
        (Z=0.5:100.5)
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...
        (T=03-JAN-1902 12:00:08-JAN-1902 12:00)
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
@@ -14497,8 +14361,6 @@ show grid ijkl
  YAX1_20   Y                   20 r   1                    20                  full
  ZAX1_100  Z                  100 r   1                    100                 full
  TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00   full
- normal    E
- normal    F
 cancel data test_abs
  
 ! make the time axis irregular by leaving out l=13
@@ -14508,78 +14370,78 @@ show data/full
      currently SET data sets:
     1> ./test_abs.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       I                                1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       I                                1:10      ...       ...       ...
                on grid GEU1 with -1.E+34 for missing data
              X=0.5:10.5  
- J1       J                                ...       1:20      ...       ...       ...       ...
+ J1       J                                ...       1:20      ...       ...
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- K1       K                                ...       ...       1:100     ...       ...       ...
+ K1       K                                ...       ...       1:100     ...
                on grid GEU3 with -1.E+34 for missing data
              Z=0.5:100.5  
- L1       L[G=GCENTURY]                    ...       ...       ...       1:15      ...       ...
+ L1       L[G=GCENTURY]                    ...       ...       ...       1:15
                on grid GEU4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:10      ...       ...
+ L2       L                                ...       ...       ...       1:10
                on grid GEU5 with -1.E+34 for missing data
              
- IJ       I+J                              1:10      1:20      ...       ...       ...       ...
+ IJ       I+J                              1:10      1:20      ...       ...
                on grid GEU6 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IK       I+K                              1:10      ...       1:100     ...       ...       ...
+ IK       I+K                              1:10      ...       1:100     ...
                on grid GEU7 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IL       I+L1                             1:10      ...       ...       1:15      ...       ...
+ IL       I+L1                             1:10      ...       ...       1:15
                on grid GEU8 with -1.E+34 for missing data
              X=0.5:10.5  
- JK       J+K                              ...       1:20      1:100     ...       ...       ...
+ JK       J+K                              ...       1:20      1:100     ...
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJK      I+J+K                            1:10      1:20      1:100     ...       ...       ...
+ IJK      I+J+K                            1:10      1:20      1:100     ...
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IKL      I+K+L1                           1:10      ...       1:100     1:15      ...       ...
+ IKL      I+K+L1                           1:10      ...       1:100     1:15
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJL      I+J+L1                           1:10      1:20      ...       1:15      ...       ...
+ IJL      I+J+L1                           1:10      1:20      ...       1:15
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- JKL      J+K+L1                           ...       1:20      1:100     1:15      ...       ...
+ JKL      J+K+L1                           ...       1:20      1:100     1:15
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJKL     I+J+K+L1                         1:10      1:20      1:100     1:15      ...       ...
+ IJKL     I+J+K+L1                         1:10      1:20      1:100     1:15
                on grid GEU14 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IJK2     I+J+K                            ...       1:20      1:100     ...       ...       ...
+ IJK2     I+J+K                            ...       1:20      1:100     ...
        (X=0.5:10.5 at AVE)
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IKL2     I+K+L1                           ...       ...       1:100     1:15      ...       ...
+ IKL2     I+K+L1                           ...       ...       1:100     1:15
        (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
                on grid GEU15 with -1.E+34 for missing data
              Z=0.5:100.5  
- IJL2     I+J+L1                           ...       ...       ...       1:15      ...       ...
+ IJL2     I+J+L1                           ...       ...       ...       1:15
        (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
                on grid GEU4 with -1.E+34 for missing data
              
- JKL2     J+K+L1                           ...       1:20      ...       ...       ...       ...
+ JKL2     J+K+L1                           ...       1:20      ...       ...
        (Z=0.5:100.5 at AV4, T=03-JAN-1902 12:00:08-JAN-1902 12:00 at AV4)
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:15      ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:15
        (X=0.5:10.5)
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:15      ...       ...
+ IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:15
        (Y=0.5:20.5)
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:15      ...       ...
+ IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:15
        (Z=0.5:100.5)
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...
        (T=03-JAN-1902 12:00:08-JAN-1902 12:00)
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
@@ -14593,8 +14455,6 @@ show grid ijkl
  YAX1_20   Y                   20 r   1                    20                  full
  ZAX1_100  Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
  
  
 ! list long time series using a rigid (non-record axis) time axis --> FAST
@@ -14628,40 +14488,30 @@ show grid j1 jkl jkl2 iavejkl ijkl
  YAX1_20   Y                   20 r   1                    20                  full
  normal    Z
  normal    T
- normal    E
- normal    F
     GRID GEU13
  name       axis              # pts   start                end                 subset
  normal    X
  YAX1_20   Y                   20 r   1                    20                  full
  ZAX1_100  Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
     GRID GEU2
  name       axis              # pts   start                end                 subset
  normal    X
  YAX1_20   Y                   20 r   1                    20                  full
  normal    Z
  normal    T
- normal    E
- normal    F
     GRID GEU13
  name       axis              # pts   start                end                 subset
  normal    X
  YAX1_20   Y                   20 r   1                    20                  full
  ZAX1_100  Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
     GRID GEU14
  name       axis              # pts   start                end                 subset
  XAX1_10   X                   10 r   1                    10                  full
  YAX1_20   Y                   20 r   1                    20                  full
  ZAX1_100  Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
 cancel data test_abs
  
 ! test TMAP data io
@@ -14745,29 +14595,29 @@ show data/full
      currently SET data sets:
     1> ./gtbc011.cdf
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.8S:51.4N  
  
@@ -14775,67 +14625,67 @@ show data/full
  
     2> ./test_fil0.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...
                on grid PS3DT1_NYZT with -1.E+34 for missing data
              X=130E:140E  
- J1       Y[G=TEMP,J=5:10]                 ...       5:10      ...       ...       ...       ...
+ J1       Y[G=TEMP,J=5:10]                 ...       5:10      ...       ...
                on grid PS3DT1_NXZT with -1.E+34 for missing data
              Y=21.1S:12.5S  
- K1       Z[G=U,K=5:15]                    ...       ...       5:15      ...       ...       ...
+ K1       Z[G=U,K=5:15]                    ...       ...       5:15      ...
                on grid PS3DU1_NXYT with -1.E+34 for missing data
              Z=40:190  
- L1       L[G=U,L=1:3]                     ...       ...       ...       1:3       ...       ...
+ L1       L[G=U,L=1:3]                     ...       ...       ...       1:3
                on grid GRH1 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:2       ...       ...
+ L2       L                                ...       ...       ...       1:2
                on grid GRH2 with -1.E+34 for missing data
              
- IJ       TAUX[L=@AVE]                    69:71      1:100     ...       ...       ...       ...
+ IJ       TAUX[L=@AVE]                    69:71      1:100     ...       ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid PS2DU1_NT with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- IK       I1+K1                            1:10      ...       5:15      ...       ...       ...
+ IK       I1+K1                            1:10      ...       5:15      ...
                on grid G016_NYT with -1.E+34 for missing data
              X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
+ IL       I1+L1                            1:10      ...       ...       1:3
                on grid G016_NYZ with -1.E+34 for missing data
              X=130E:140E  
- JK       J1+K1                            ...       5:10      5:15      ...       ...       ...
+ JK       J1+K1                            ...       5:10      5:15      ...
                on grid G002_NXT with -1.E+34 for missing data
              Y=21.1S:12.5S  Z=40:190  
- IJK      TEMP[L=@AVE]                    70:72      1:100     1:27      ...       ...       ...
+ IJK      TEMP[L=@AVE]                    70:72      1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid PS3DT1_NT with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- IKL      TEMP[J=@AVE]                    70:72      ...       1:27      1:3       ...       ...
+ IKL      TEMP[J=@AVE]                    70:72      ...       1:27      1:3
        (Y=30S:50N)
                on grid PS3DT1_NY with -1.E+34 for missing data
              X=161W:158W  Z=0:4149  
- IJL      TEMP[K=@AVE]                    70:72      1:100     ...       1:3       ...       ...
+ IJL      TEMP[K=@AVE]                    70:72      1:100     ...       1:3
        (Z=0:4149)
                on grid PS3DT1_NZ with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  
- JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130E:70W)
                on grid GRH3 with -1.E+34 for missing data
              Y=30S:50N  Z=0:4149  
- IJKL     U                               69:72      1:100     1:27      1:3       ...       ...
+ IJKL     U                               69:72      1:100     1:27      1:3
                on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130.5E:69.5W)
                on grid GRH4 with -1.E+34 for missing data
              Y=28.8S:51.4N  Z=0:4149  
- IJAVEKL  IJKL[J=@AVE]                    69:72      ...       1:27      1:3       ...       ...
+ IJAVEKL  IJKL[J=@AVE]                    69:72      ...       1:27      1:3
        (Y=28.8S:51.4N)
                on grid PS3DU1_NY with -1.E+34 for missing data
              X=161.5W:157.5W  Z=0:4149  
- IJKAVEL  IJKL[K=@AVE]                    69:72      1:100     ...       1:3       ...       ...
+ IJKAVEL  IJKL[K=@AVE]                    69:72      1:100     ...       1:3
        (Z=0:4149)
                on grid PS3DU1_NZ with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  
- IJKLAVE  IJKL[L=@AVE]                    69:72      1:100     1:27      ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                    69:72      1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid PS3DU1_NT with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
@@ -14850,8 +14700,6 @@ show grid ijkl
  PSYU      LATITUDE           100 i   27.672S              50N                 full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
- normal    E
- normal    F
 cancel data test_fil0
 ! 5/99 moved old bn230_cdf.sub3 to bn_cdf.sub4 to stay inline w/ old benchmarks *kob*
 GO bn_cdf.sub4
@@ -14935,29 +14783,29 @@ show data/full
      currently SET data sets:
     1> ./gtbc011.cdf
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.8S:51.4N  
  
@@ -14965,67 +14813,67 @@ show data/full
  
     2> ./test_fil.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...
                on grid GLZ1 with -1.E+34 for missing data
              X=130E:140E  
- J1       Y[G=TEMP,J=5:10]                 ...       1:6       ...       ...       ...       ...
+ J1       Y[G=TEMP,J=5:10]                 ...       1:6       ...       ...
                on grid GLZ2 with -1.E+34 for missing data
              Y=21.1S:12.5S  
- K1       Z[G=U,K=5:15]                    ...       ...       1:11      ...       ...       ...
+ K1       Z[G=U,K=5:15]                    ...       ...       1:11      ...
                on grid GLZ3 with -1.E+34 for missing data
              Z=40:190  
- L1       L[G=U,L=1:3]                     ...       ...       ...       1:3       ...       ...
+ L1       L[G=U,L=1:3]                     ...       ...       ...       1:3
                on grid GLZ4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:2       ...       ...
+ L2       L                                ...       ...       ...       1:2
                on grid GLZ5 with -1.E+34 for missing data
              
- IJ       TAUX[L=@AVE]                     1:3       1:100     ...       ...       ...       ...
+ IJ       TAUX[L=@AVE]                     1:3       1:100     ...       ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid GLZ6 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- IK       I1+K1                            1:10      ...       1:11      ...       ...       ...
+ IK       I1+K1                            1:10      ...       1:11      ...
                on grid GLZ7 with -1.E+34 for missing data
              X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
+ IL       I1+L1                            1:10      ...       ...       1:3
                on grid GLZ8 with -1.E+34 for missing data
              X=130E:140E  
- JK       J1+K1                            ...       1:6       1:11      ...       ...       ...
+ JK       J1+K1                            ...       1:6       1:11      ...
                on grid GLZ9 with -1.E+34 for missing data
              Y=21.1S:12.5S  Z=40:190  
- IJK      TEMP[L=@AVE]                     1:3       1:100     1:27      ...       ...       ...
+ IJK      TEMP[L=@AVE]                     1:3       1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid GLZ10 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- IKL      TEMP[J=@AVE]                     1:3       ...       1:27      1:3       ...       ...
+ IKL      TEMP[J=@AVE]                     1:3       ...       1:27      1:3
        (Y=30S:50N)
                on grid GLZ11 with -1.E+34 for missing data
              X=161W:158W  Z=0:4149  
- IJL      TEMP[K=@AVE]                     1:3       1:100     ...       1:3       ...       ...
+ IJL      TEMP[K=@AVE]                     1:3       1:100     ...       1:3
        (Z=0:4149)
                on grid GLZ12 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  
- JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130E:70W)
                on grid GLZ13 with -1.E+34 for missing data
              Y=30S:50N  Z=0:4149  
- IJKL     U                                1:4       1:100     1:27      1:3       ...       ...
+ IJKL     U                                1:4       1:100     1:27      1:3
                on grid GLZ14 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130.5E:69.5W)
                on grid GLZ15 with -1.E+34 for missing data
              Y=28.8S:51.4N  Z=0:4149  
- IJAVEKL  IJKL[J=@AVE]                     1:4       ...       1:27      1:3       ...       ...
+ IJAVEKL  IJKL[J=@AVE]                     1:4       ...       1:27      1:3
        (Y=28.8S:51.4N)
                on grid GLZ16 with -1.E+34 for missing data
              X=161.5W:157.5W  Z=0:4149  
- IJKAVEL  IJKL[K=@AVE]                     1:4       1:100     ...       1:3       ...       ...
+ IJKAVEL  IJKL[K=@AVE]                     1:4       1:100     ...       1:3
        (Z=0:4149)
                on grid GLZ17 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  
- IJKLAVE  IJKL[L=@AVE]                     1:4       1:100     1:27      ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                     1:4       1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid GLZ18 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
@@ -15040,8 +14888,6 @@ show grid ijkl
  PSYU      LATITUDE           100 i   27.672S              50N                 full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
- normal    E
- normal    F
 cancel data test_fil
 GO bn_cdf_reversed.sub
 ! bn320_cdf_reversed.sub
@@ -15058,15 +14904,15 @@ show data/var
      currently SET data sets:
     1> ./reverse_axes.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...
                on grid GAF1 with -1.E+34 for missing data
              X=129.5E:179.5W  Y=10.5S:10.5N  
- FCN_REV  COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...       ...       ...
+ FCN_REV  COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...
                on grid GAF2 with -1.E+34 for missing data
              X=129.5E:179.5W  Y=10.5S:10.5N  
  FCN_REV_SUB
-          COS(X/10)*SIN(Y/2)               1:51     10:19      ...       ...       ...       ...
+          COS(X/10)*SIN(Y/2)               1:51     10:19      ...       ...
                on grid GREV with -1.E+34 for missing data
              X=129.5E:179.5W  Y=1.5S:8.5N  
  
@@ -15146,15 +14992,15 @@ set mode diag
 define axis/t=15-jan-1982:15-mar-1984:120/unit=hour tax5day
 define axis/x=120e:60w:10/unit=degrees xax10
 define grid/like=u/t=tax5day g5day
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
 define grid/like=u/x=xax10/z=w/t=tax5day g5_10
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  6 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     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 PS3DW11         PSXT      PSYT      PSZW      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ getgrid EX#1     C:  6 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ getgrid EX#1     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 PS3DW11         PSXT      PSYT      PSZW      TIME1
  
 set reg/x=130w:125w/y=0:1.5/z=0:15/t=21-JAN-1982:24-jan-1982
 !set reg/i=101:105/j=41:42/k=1:2/l=3:4
@@ -15164,97 +15010,97 @@ use gtsa056_1    	!kob 4/99
 ! deliberate errors
 set mode ignore
 load temp[g=@lin]    ! no target grid specified
- dealloc  dynamic grid PS3DW11         PSXT      PSYT      PSZW      TIME1     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 PS3DT2          PSXT      PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- reading TEMP     M:  1 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DW11         PSXT      PSYT      PSZW      TIME1
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
+ reading TEMP     M:  1 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
 load temp[gx=@ave]   ! no target grid specified
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2     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 PS3DT2          PSXT      PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- found   TEMP     M:  1 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      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 PS3DT2          PSXT      PSYT      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
+ found   TEMP     M:  1 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
 load temp[g=u,g=w]   ! more than 1 target grid
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2     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
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      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
 load temp[g=x]       ! g=user-or-pseudo-var not allowed
- getgrid 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 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
 set mode/last ignore
  
 ! valid syntax tests
 load temp
- getgrid EX#1     C:  5 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- found   TEMP     M:  1 dset:   1 I:  101  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  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 PS3DT2          PSXT      PSYT      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
+ found   TEMP     M:  1 dset:   1 I:    101    105  J:   45   50  K:    1    2  L:      3      4
 load temp[g=u]
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @LIN
- reading TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ reading TEMP     M:  2 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
  regrid XY
- regrid  TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:  3 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
 load temp[g=u at lin]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- found   TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ found   TEMP     M:  3 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
 load temp[g=u at ave,gy=@asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @AVE
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  4 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  5 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  4 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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    106  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M:  5 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M:  4 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
 load temp[g=u at lin,gy=@asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @LIN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  4 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  6 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  4 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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    106  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M:  6 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M:  4 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
 load temp[g=u,gx=@ave,gy=@asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- found   TEMP     M:  5 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ found   TEMP     M:  5 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
 load temp[gx=u]  		! changed V4.20 --> implicit regrid
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
+ 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
+ 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
- found   TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  4 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          PSXU      PSYT      PSZT      TIME2     NORMAL    NORMAL
+ 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
 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     NORMAL    NORMAL
- -DELETE TEMP     M:  4 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- found   TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- found   TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid (G009)          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
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ found   TEMP     M:  3 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:  3 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  
              TEMP[G=U] - TEMP[G=U at AVE,GX=U at LIN,GY=U at LIN,GZ=U at LIN,GT=U at LIN]
              LONGITUDE: 130W to 125W
@@ -15272,18 +15118,18 @@ 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
  Mean    value: 0 (unweighted average)
  Standard deviation: 0
 stat temp[g=u,gx=@ave] - temp[gx=@ave,g=u]    ! == 0
- -DELETE EX#1     M:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
- found   TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  4 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  7 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  4 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- found   TEMP     M:  7 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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    106  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M:  7 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M:  4 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
+ found   TEMP     M:  7 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  
              TEMP[G=U,GX=@AVE] - TEMP[GX=@AVE,G=U]
              LONGITUDE: 130W to 125W
@@ -15303,15 +15149,15 @@ stat temp[g=u,gx=@ave] - temp[gx=@ave,g=u]    ! == 0
  
 ! basic regrid tests
 LIST temp[g=u at ave]
- -DELETE EX#1     M:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @AAV
- found   TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ found   TEMP     M:  2 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
  regrid XY
- regrid  TEMP     M:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at AAV, on Y at AAV
              FILENAME : gtsa056_1.cdf
@@ -15345,15 +15191,15 @@ LIST temp[g=u at ave]
  0.33N / 46:  23.55  23.54  23.61  23.81  24.12  24.30
  0     / 45:  23.54  23.47  23.45  23.53  23.74  23.92
 LIST temp[g=u,gx=u at ave]	! V4.20 mod
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- found   TEMP     M:  7 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:  7 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at AVE, on Y at LIN
              FILENAME : gtsa056_1.cdf
@@ -15387,20 +15233,20 @@ LIST temp[g=u,gx=u at ave]	! V4.20 mod
  0.33N / 46:  23.55  23.54  23.61  23.81  24.12  24.30
  0     / 45:  23.54  23.47  23.45  23.53  23.74  23.92
 LIST temp[g=u,gy=u at ave]	! V4.20 mod
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
- found   TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  8 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  9 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  8 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M:  2 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
+ regrid  TEMP     M:  8 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M:  9 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M:  8 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at LIN, on Y at AVE
              FILENAME : gtsa056_1.cdf
@@ -15434,15 +15280,15 @@ LIST temp[g=u,gy=u at ave]	! V4.20 mod
  0.33N / 46:  23.55  23.54  23.61  23.81  24.12  24.30
  0     / 45:  23.54  23.47  23.45  23.53  23.74  23.92
 LIST temp[g=u,gz=u at ave]	! V4.20 mod
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- found   TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:  3 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15476,15 +15322,15 @@ LIST temp[g=u,gz=u at ave]	! V4.20 mod
  0.33N / 46:  23.55  23.54  23.61  23.81  24.12  24.30
  0     / 45:  23.54  23.47  23.45  23.53  23.74  23.92
 LIST temp[g=u,gt=u at ave]	! V4.20 mod, etc --> many more similar syntax chgs
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- found   TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:  3 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15519,11 +15365,11 @@ LIST temp[g=u,gt=u at ave]	! V4.20 mod, etc --> many more similar syntax chgs
  0     / 45:  23.54  23.47  23.45  23.53  23.74  23.92
  
 LIST temp[g=u]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- found   TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ found   TEMP     M:  3 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15557,16 +15403,16 @@ LIST temp[g=u]
  0.33N / 46:  23.55  23.54  23.61  23.81  24.12  24.30
  0     / 45:  23.54  23.47  23.45  23.53  23.74  23.92
 LIST temp[g=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
  strip regrid on X: TEMP --> PS3DU2           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  8 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 10 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  8 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
+ found   TEMP     M:  2 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
+ regrid  TEMP     M:  8 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M: 10 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M:  8 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at ASN, on Y at ASN
              FILENAME : gtsa056_1.cdf
@@ -15600,20 +15446,20 @@ LIST temp[g=u at asn]
  0.33N / 46:  23.54  23.48  23.46  23.52  23.76  24.05
  0     / 45:  23.62  23.51  23.42  23.38  23.48  23.69
 LIST temp[g=u,gx=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @LIN
- found   TEMP     M:  2 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  8 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 11 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  8 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M:  2 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      3      4
+ regrid  TEMP     M:  8 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ regrid  TEMP     M: 11 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ -DELETE TEMP     M:  8 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at ASN, on Y at LIN
              FILENAME : gtsa056_1.cdf
@@ -15647,15 +15493,15 @@ LIST temp[g=u,gx=u at asn]
  0.33N / 46:  23.57  23.54  23.55  23.66  23.97  24.27
  0     / 45:  23.58  23.50  23.44  23.45  23.62  23.87
 LIST temp[g=u,gy=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- found   TEMP     M:  6 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:  6 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U on X at LIN, on Y at ASN
              FILENAME : gtsa056_1.cdf
@@ -15689,15 +15535,15 @@ LIST temp[g=u,gy=u at asn]
  0.33N / 46:  23.51  23.47  23.49  23.64  23.90  24.09
  0     / 45:  23.57  23.47  23.40  23.43  23.58  23.74
 LIST temp[g=u,gz=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- found   TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:  3 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15731,15 +15577,15 @@ LIST temp[g=u,gz=u at asn]
  0.33N / 46:  23.55  23.54  23.61  23.81  24.12  24.30
  0     / 45:  23.54  23.47  23.45  23.53  23.74  23.92
 LIST temp[g=u,gt=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- found   TEMP     M:  3 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    3    4  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M:  3 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      3      4
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: U
              FILENAME : gtsa056_1.cdf
@@ -15775,16 +15621,16 @@ LIST temp[g=u,gt=u at asn]
  
 ! Z and T axes different
 LIST temp[g=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ 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
+ eval    EX#1     C:  4 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- reading TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 12 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M:  8 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 12 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
  regrid XY
- regrid  TEMP     M: 13 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 12 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 13 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 12 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at AAV, on Y at AAV, on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -15818,19 +15664,19 @@ LIST temp[g=g5day at ave]
  0.33N / 46:  23.56  23.57  23.66  23.87  24.13  24.26
  0     / 45:  23.54  23.48  23.48  23.57  23.76  23.89
 LIST temp[g=g5day,gx=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 13 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  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
- eval    EX#1     C:  4 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ -DELETE TEMP     M: 13 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> YNTERMED         @LIN
- found   TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 13 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 12 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 13 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 13 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 12 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 13 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 12 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 13 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 13 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 12 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at AVE, on Y at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -15864,18 +15710,18 @@ LIST temp[g=g5day,gx=g5day at ave]
  0.33N / 46:  23.56  23.55  23.63  23.85  24.14  24.29
  0     / 45:  23.54  23.47  23.46  23.56  23.76  23.92
 LIST temp[g=g5day,gy=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> YNTERMED         @LIN
- found   TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 12 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 14 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 12 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 12 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 14 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 12 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 14 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 12 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 12 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 14 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at LIN, on Y at AVE, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -15909,16 +15755,16 @@ LIST temp[g=g5day,gy=g5day at ave]
  0.33N / 46:  23.56  23.55  23.63  23.85  24.14  24.29
  0     / 45:  23.54  23.47  23.46  23.56  23.76  23.92
 LIST temp[g=g5day,gz=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
- found   TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 14 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 14 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
  regrid XY
- regrid  TEMP     M: 15 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 14 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 15 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 14 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY
              FILENAME : gtsa056_1.cdf
@@ -15952,16 +15798,16 @@ LIST temp[g=g5day,gz=g5day at ave]
  0.33N / 46:  23.56  23.55  23.63  23.85  24.14  24.29
  0     / 45:  23.54  23.47  23.46  23.56  23.76  23.92
 LIST temp[g=g5day,gt=g5day at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 14 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 14 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
  regrid XY
- regrid  TEMP     M: 16 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 14 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 16 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 14 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at LIN, on Y at LIN, on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -15996,10 +15842,10 @@ LIST temp[g=g5day,gt=g5day at ave]
  0     / 45:  23.54  23.48  23.48  23.57  23.76  23.89
  
 LIST temp[g=g5day]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- found   TEMP     M: 15 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
+ found   TEMP     M: 15 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY
              FILENAME : gtsa056_1.cdf
@@ -16033,18 +15879,18 @@ LIST temp[g=g5day]
  0.33N / 46:  23.56  23.55  23.63  23.85  24.14  24.29
  0     / 45:  23.54  23.47  23.46  23.56  23.76  23.92
 LIST temp[g=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on T: TEMP --> YNTERMED         @ASN
- found   TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 14 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 17 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 14 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 14 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 17 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 14 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ regrid  TEMP     M: 17 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 14 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 14 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 17 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at ASN, on Y at ASN, on T at ASN
              FILENAME : gtsa056_1.cdf
@@ -16078,18 +15924,18 @@ LIST temp[g=g5day at asn]
  0.33N / 46:  23.52  23.47  23.42  23.37  23.46  23.73
  0     / 45:  23.61  23.53  23.43  23.34  23.30  23.45
 LIST temp[g=g5day,gx=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> YNTERMED         @LIN
- found   TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 17 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 18 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 17 dset:   1 I:  100  105  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 17 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 18 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 17 dset:   1 I:    100    105  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 18 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 17 dset:   1 I:    100    105  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 17 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 18 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at ASN, on Y at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16123,18 +15969,18 @@ LIST temp[g=g5day,gx=g5day at asn]
  0.33N / 46:  23.57  23.54  23.57  23.70  24.00  24.28
  0     / 45:  23.58  23.50  23.45  23.47  23.64  23.88
 LIST temp[g=g5day,gy=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on T: TEMP --> YNTERMED         @LIN
- found   TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 18 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 19 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 18 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 18 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 19 dset:   1 I:  100  106  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 18 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3
+ regrid  TEMP     M: 19 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 18 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 18 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 19 dset:   1 I:    100    106  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at LIN, on Y at ASN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16168,10 +16014,10 @@ LIST temp[g=g5day,gy=g5day at asn]
  0.33N / 46:  23.51  23.48  23.51  23.67  23.93  24.09
  0     / 45:  23.56  23.47  23.41  23.45  23.60  23.75
 LIST temp[g=g5day,gz=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- found   TEMP     M: 15 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
+ found   TEMP     M: 15 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY
              FILENAME : gtsa056_1.cdf
@@ -16205,16 +16051,16 @@ LIST temp[g=g5day,gz=g5day at asn]
  0.33N / 46:  23.56  23.55  23.63  23.85  24.14  24.29
  0     / 45:  23.54  23.47  23.46  23.56  23.76  23.92
 LIST temp[g=g5day,gt=g5day at asn]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:    100    105  J:   45   49  K:    1    2  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @ASN
- found   TEMP     M:  8 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 19 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  8 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 19 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3
  regrid XY
- regrid  TEMP     M: 20 dset:   1 I:  100  105  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 19 dset:   1 I:  100  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 20 dset:   1 I:    100    105  J:   45   49  K:    1    2  L:      2      3
+ -DELETE TEMP     M: 19 dset:   1 I:    100    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on X at LIN, on Y at LIN, on T at ASN
              FILENAME : gtsa056_1.cdf
@@ -16250,19 +16096,19 @@ LIST temp[g=g5day,gt=g5day at asn]
  
 ! all 4 axes different
 LIST temp[g=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M: 19 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 22 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 21 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 19 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 21 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 22 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 21 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 21 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 22 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 21 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 22 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at AAV, on Y at AAV, on Z at AVE, on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -16274,22 +16120,22 @@ LIST temp[g=g5_10 at ave]
  20-JAN-1982 00 / 2:  23.88  23.97  24.15  24.37  24.63
  25-JAN-1982 00 / 3:  23.89  23.98  24.17  24.40  24.65
 LIST temp[g=g5_10,gx=g5_10 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 21 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  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
- eval    EX#1     C:  4 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ -DELETE TEMP     M: 21 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M: 19 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 22 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 21 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 22 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 22 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 21 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 19 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 21 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 22 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 21 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 21 dset:   1 I:     95    106  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 22 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 22 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 21 dset:   1 I:     95    106  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at AVE, on Y at LIN, on Z at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16301,21 +16147,21 @@ LIST temp[g=g5_10,gx=g5_10 at ave]
  20-JAN-1982 00 / 2:  23.88  23.98  24.15  24.38  24.63
  25-JAN-1982 00 / 3:  23.88  23.97  24.15  24.39  24.64
 LIST temp[g=g5_10,gy=g5_10 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M: 19 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 23 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 21 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 23 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 23 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 21 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 19 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 21 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 23 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 21 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 21 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 23 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 23 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 21 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at AVE, on Z at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16327,19 +16173,19 @@ LIST temp[g=g5_10,gy=g5_10 at ave]
  20-JAN-1982 00 / 2:  23.75  23.75  23.85  24.01  24.21
  25-JAN-1982 00 / 3:  23.75  23.76  23.85  24.02  24.21
 LIST temp[g=g5_10,gz=g5_10 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M: 19 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 24 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 21 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 19 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 21 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 24 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 21 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 21 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 24 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 21 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 24 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at LIN, on Z at AVE, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16351,19 +16197,19 @@ LIST temp[g=g5_10,gz=g5_10 at ave]
  20-JAN-1982 00 / 2:  23.75  23.75  23.85  24.01  24.21
  25-JAN-1982 00 / 3:  23.75  23.76  23.85  24.02  24.21
 LIST temp[g=g5_10,gt=g5_10 at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- found   TEMP     M: 19 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 24 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 25 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 24 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 19 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 24 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 25 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 24 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 24 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 25 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 24 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 25 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at LIN, on Z at LIN, on T at AVE
              FILENAME : gtsa056_1.cdf
@@ -16376,21 +16222,21 @@ LIST temp[g=g5_10,gt=g5_10 at ave]
  25-JAN-1982 00 / 3:  23.75  23.76  23.87  24.03  24.23
  
 LIST temp[g=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M: 25 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 26 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 27 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 26 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 26 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 27 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 27 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 26 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 25 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ regrid  TEMP     M: 26 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ regrid  TEMP     M: 27 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 26 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 26 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 27 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 27 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 26 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at ASN, on Y at ASN, on Z at ASN, on T at ASN
              FILENAME : gtsa056_1.cdf
@@ -16402,21 +16248,21 @@ LIST temp[g=g5_10 at asn]
  20-JAN-1982 00 / 2:  29.59  29.58  29.58  29.57  29.56
  25-JAN-1982 00 / 3:  29.58  29.57  29.57  29.55  29.54
 LIST temp[g=g5_10,gx=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 26 dset:   1 I:   12   12  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 28 dset:   1 I:   12   12  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 29 dset:   1 I:   12   12  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 28 dset:   1 I:   12   12  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 28 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 29 dset:   1 I:   12   12  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 29 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 28 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 26 dset:   1 I:     12     12  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 28 dset:   1 I:     12     12  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 29 dset:   1 I:     12     12  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 28 dset:   1 I:     12     12  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 28 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 29 dset:   1 I:     12     12  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 29 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 28 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at ASN, on Y at LIN, on Z at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16428,21 +16274,21 @@ LIST temp[g=g5_10,gx=g5_10 at asn]
  20-JAN-1982 00 / 2:  29.57  29.57  29.55  29.53  29.53
  25-JAN-1982 00 / 3:  29.56  29.55  29.54  29.51  29.51
 LIST temp[g=g5_10,gy=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M: 19 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 28 dset:   1 I:  100  101  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 30 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 28 dset:   1 I:  100  101  J:   45   49  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 28 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 30 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 30 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 28 dset:   1 I:  100  101  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 19 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 28 dset:   1 I:    100    101  J:   45   49  K:    1    2  L:      2      3
+ regrid  TEMP     M: 30 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 28 dset:   1 I:    100    101  J:   45   49  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 28 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 30 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 30 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 28 dset:   1 I:    100    101  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at ASN, on Z at LIN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16454,19 +16300,19 @@ LIST temp[g=g5_10,gy=g5_10 at asn]
  20-JAN-1982 00 / 2:  23.78  23.72  23.78  23.91  24.10
  25-JAN-1982 00 / 3:  23.77  23.72  23.79  23.92  24.11
 LIST temp[g=g5_10,gz=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M: 19 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 28 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 31 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 28 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 19 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 28 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ regrid  TEMP     M: 31 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 28 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 28 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 31 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 28 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 31 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at LIN, on Z at ASN, on T at LIN
              FILENAME : gtsa056_1.cdf
@@ -16478,19 +16324,19 @@ LIST temp[g=g5_10,gz=g5_10 at asn]
  20-JAN-1982 00 / 2:  23.96  23.95  24.02  24.15  24.32
  25-JAN-1982 00 / 3:  23.96  23.96  24.03  24.16  24.34
 LIST temp[g=g5_10,gt=g5_10 at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- found   TEMP     M: 19 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 31 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 32 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 31 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 19 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M: 31 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M: 32 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 31 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 31 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 32 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 31 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 32 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10 on X at LIN, on Y at LIN, on Z at LIN, on T at ASN
              FILENAME : gtsa056_1.cdf
@@ -16507,210 +16353,210 @@ SET MODE IGNORE	! V.5 change
 canc reg
 set reg/l=1:3  ! x,y,z unspecified
 load temp
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DT2          PSXT      PSYT      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
- reading TEMP     M: 32 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
+ reading TEMP     M: 32 dset:   1 I:      1    160  J:    5   89  K:    1    2  L:      1      3
 load temp[g=u]
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
  strip regrid on X: TEMP --> PS3DU2           @LIN
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
- found   TEMP     M: 32 dset:   1 I:    1  160  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
+ found   TEMP     M: 32 dset:   1 I:      1    160  J:    5   89  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
  regrid XY
- regrid  TEMP     M: 34 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 34 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
 load temp[g=u at lin]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
  strip regrid on X: TEMP --> PS3DU2           @LIN
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
- found   TEMP     M: 33 dset:   1 I:    1  161  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
+ found   TEMP     M: 33 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
  regrid XY
- regrid  TEMP     M: 36 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 36 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
  
 load temp[g=u at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
  strip regrid on X: TEMP --> PS3DU2           @AAV
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
- found   TEMP     M: 35 dset:   1 I:    1  161  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
+ found   TEMP     M: 35 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
  regrid XY
- regrid  TEMP     M: 38 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 38 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
 load temp[g=u,gx=u at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @AVE
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
  strip regrid on Y: TEMP --> XNTERMED         @LIN
- found   TEMP     M: 37 dset:   1 I:    1  161  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 39 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
- regrid  TEMP     M: 41 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 40 dset:   1 I:    1  161  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M: 37 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M: 39 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
+ regrid  TEMP     M: 41 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ -DELETE TEMP     M: 40 dset:   1 I:      1    161  J:    1  100  K:    1    2  L:      1      3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
 load temp[g=u,gy=u at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @LIN
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
  strip regrid on Y: TEMP --> XNTERMED         @AVE
- found   TEMP     M: 37 dset:   1 I:    1  161  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 40 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
- regrid  TEMP     M: 43 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 42 dset:   1 I:    1  161  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M: 37 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M: 40 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
+ regrid  TEMP     M: 43 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ -DELETE TEMP     M: 42 dset:   1 I:      1    161  J:    1  100  K:    1    2  L:      1      3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  
 load temp[g=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
  strip regrid on X: TEMP --> PS3DU2           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 37 dset:   1 I:    1  161  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 42 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 44 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 42 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 37 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M: 42 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ regrid  TEMP     M: 44 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ -DELETE TEMP     M: 42 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3  M: -999 -999  N: -999 -999
 load temp[g=u,gx=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @LIN
- found   TEMP     M: 37 dset:   1 I:    1  161  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 42 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 45 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 42 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M: 37 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M: 42 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ regrid  TEMP     M: 45 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ -DELETE TEMP     M: 42 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
 load temp[g=u,gy=u at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  160  J:    1  100  K:    1   27  L:    1    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ 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 PS3DU2          PSXU      PSYU      PSZT      TIME2
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ eval    EX#1     C:  4 dset:   1 I:      1    160  J:    1  100  K:    1   27  L:      1      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip regrid on X: TEMP --> PS3DU2           @LIN
- strip modulo-void-filling TEMP on X axis:     1   161 dset:   1
+ strip modulo-void-filling TEMP on X axis:        1      161 dset:   1
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 37 dset:   1 I:    1  161  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 42 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing modulo-void-filling TEMP on X axis:     1   160 dset:   1
- regrid  TEMP     M: 47 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 46 dset:   1 I:    1  161  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ found   TEMP     M: 37 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M: 42 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing modulo-void-filling TEMP on X axis:        1      160 dset:   1
+ regrid  TEMP     M: 47 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ -DELETE TEMP     M: 46 dset:   1 I:      1    161  J:    1  100  K:    1    2  L:      1      3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  
 canc reg
 use gtsa056_2		!kob 4/99
 set reg/i=101:105/j=41:42  ! z,t unspecified
 load temp[g=u]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
  strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M: 46 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ reading TEMP     M: 46 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M: 48 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 48 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
  
 load temp[g=u at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
  strip regrid on X: TEMP --> PS3DU1           @AAV
- found   TEMP     M: 46 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M: 46 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M: 49 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 49 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
 load temp[g=u,gz=u at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip regrid on X: TEMP --> PS3DU1           @LIN
- found   TEMP     M: 46 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M: 46 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M: 50 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ regrid  TEMP     M: 50 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
 load temp[g=u,gt=u at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip regrid on X: TEMP --> PS3DU1           @LIN
- found   TEMP     M: 46 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M: 46 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M: 51 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ regrid  TEMP     M: 51 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  
 load temp[g=u at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 46 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 52 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 53 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 52 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M: 46 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
+ regrid  TEMP     M: 52 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ regrid  TEMP     M: 53 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ -DELETE TEMP     M: 52 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168  M: -999 -999  N: -999 -999
 load temp[g=u,gz=u at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip regrid on X: TEMP --> PS3DU1           @LIN
- found   TEMP     M: 46 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M: 46 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M: 52 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ regrid  TEMP     M: 52 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
 load temp[g=u,gt=u at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:  101  105  J:   41   42  K:    1   27  L:    1  168  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:    101    105  J:   41   42  K:    1   27  L:      1    168
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip regrid on X: TEMP --> PS3DU1           @LIN
- found   TEMP     M: 46 dset:   2 I:  101  106  J:   41   43  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M: 46 dset:   2 I:    101    106  J:   41   43  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M: 54 dset:   2 I:  101  105  J:   41   42  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ regrid  TEMP     M: 54 dset:   2 I:    101    105  J:   41   42  K:    1    2  L:      1    168
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
 SET MODE/LAST IGNORE	! V.5 change
  
 ! plot verifications
@@ -16722,250 +16568,250 @@ set window/size=.5/aspect=.4 1
 use gtsa056_1 		!kob 4/99
 set region/x=130E:90W/y=0/z=5/t=21-JAN-1982
 plot temp
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     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 PS3DT2          PSXT      PSYT      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    1  140  J:   45   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- found   TEMP     M: 37 dset:   1 I:    1  161  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:      1    140  J:   45   46  K:    1    1  L:      2      3
+ found   TEMP     M: 37 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 1    complete
 plot/over temp[g=u]
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      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 PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
- found   TEMP     M: 36 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
+ found   TEMP     M: 36 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 2    complete
 plot/over temp[g=g5day]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
- reading TEMP     M: 60 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 61 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M: 60 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      5
+ regrid  TEMP     M: 61 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3
  regrid XY
- regrid  TEMP     M: 62 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 61 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ regrid  TEMP     M: 62 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 61 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 3    complete
 plot/over temp[g=g5_10]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  7 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
- strip moduloing TEMP on X axis:     0   141 dset:   1
+ strip moduloing TEMP on X axis:        0      141 dset:   1
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M: 65 dset:   1 I:    1  141  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 66 dset:   1 I:    1  141  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 67 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 66 dset:   1 I:    1  141  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   141 dset:   1
+ reading TEMP     M: 65 dset:   1 I:      1    141  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 66 dset:   1 I:      1    141  J:   44   46  K:    1    2  L:      2      3
+ regrid  TEMP     M: 67 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 66 dset:   1 I:      1    141  J:   44   46  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      141 dset:   1
  regrid XY
- regrid  TEMP     M: 68 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 66 dset:   1 I:    0  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 68 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 66 dset:   1 I:      0    141  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 4    complete
 plot/over temp[g=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
- found   TEMP     M: 38 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
+ found   TEMP     M: 38 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 5    complete
 plot/over temp[g=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
  strip regrid on X: TEMP --> G5DAY            @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M: 65 dset:   1 I:    1  141  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 74 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 65 dset:   1 I:      1    141  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 74 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3
  regrid XY
- regrid  TEMP     M: 75 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 74 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ regrid  TEMP     M: 75 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 74 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 6    complete
 plot/over temp[g=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  7 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AAV
- strip moduloing TEMP on X axis:     0   146 dset:   1
+ strip moduloing TEMP on X axis:        0      146 dset:   1
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M: 78 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 79 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 80 dset:   1 I:    1  146  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 79 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   146 dset:   1
+ reading TEMP     M: 78 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 79 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      3
+ regrid  TEMP     M: 80 dset:   1 I:      1    146  J:   44   46  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 79 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      146 dset:   1
  regrid XY
- regrid  TEMP     M: 81 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 79 dset:   1 I:    0  146  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 81 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 79 dset:   1 I:      0    146  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 7    complete
 plot/over temp[g=u at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
- found   TEMP     M: 44 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
+ found   TEMP     M: 44 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 8    complete
 plot/over temp[g=g5day at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
  strip regrid on X: TEMP --> G5DAY            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on T: TEMP --> YNTERMED         @ASN
- found   TEMP     M: 78 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 87 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 88 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 87 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 87 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 88 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ found   TEMP     M: 78 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 87 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ regrid  TEMP     M: 88 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 87 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 87 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 88 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 9    complete
 plot/over temp[g=u,gx=u at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  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
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- strip moduloing TEMP on X axis:     0   140 dset:   1
- found   TEMP     M: 41 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ strip moduloing TEMP on X axis:        0      140 dset:   1
+ found   TEMP     M: 41 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ doing moduloing TEMP on X axis:        1      140 dset:   1
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 10   complete
 plot/over temp[g=g5day,gx=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    0  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- strip moduloing TEMP on X axis:     0   140 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0    140  J:   44   45  K:    1    1  L:      2      3
+ strip moduloing TEMP on X axis:        0      140 dset:   1
  strip regrid on X: TEMP --> G5DAY            @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> YNTERMED         @LIN
- found   TEMP     M: 78 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 94 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 95 dset:   1 I:    1  141  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 94 dset:   1 I:    1  141  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 94 dset:   1 I:    1  140  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 95 dset:   1 I:    1  141  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   140 dset:   1
+ found   TEMP     M: 78 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 94 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3
+ regrid  TEMP     M: 95 dset:   1 I:      1    141  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 94 dset:   1 I:      1    141  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 94 dset:   1 I:      1    140  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 95 dset:   1 I:      1    141  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      140 dset:   1
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 11   complete
 plot/over temp[g=g5_10,gx=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  7 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AVE
- strip moduloing TEMP on X axis:     0   146 dset:   1
+ strip moduloing TEMP on X axis:        0      146 dset:   1
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M: 78 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 98 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 99 dset:   1 I:    1  146  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 98 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 98 dset:   1 I:    1  146  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 99 dset:   1 I:    1  146  J:   44   46  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- doing moduloing TEMP on X axis:     1   146 dset:   1
- regrid  TEMP     M:100 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 99 dset:   1 I:    0  146  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 78 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M: 98 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      3
+ regrid  TEMP     M: 99 dset:   1 I:      1    146  J:   44   46  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 98 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 98 dset:   1 I:      1    146  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 99 dset:   1 I:      1    146  J:   44   46  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on X axis:        1      146 dset:   1
+ regrid  TEMP     M:100 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M: 99 dset:   1 I:      0    146  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 12   complete
 plot/over temp[g=g5_10 at asn]   ! invalid interpretation of data
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  7 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- found   TEMP     M: 78 dset:   1 I:    1  146  J:   44   46  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:103 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:104 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:103 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:103 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:104 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:104 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:103 dset:   1 I:    2   16  J:   44   45  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 78 dset:   1 I:      1    146  J:   44   46  K:    1    2  L:      2      5
+ regrid  TEMP     M:103 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ regrid  TEMP     M:104 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M:103 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:103 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M:104 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:104 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3
+ -DELETE TEMP     M:103 dset:   1 I:      2     16  J:   44   45  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
@@ -16975,205 +16821,205 @@ PPL plot 13   complete
 ! Y axis
 set region/x=180/y=20s:20n/z=5/t=21-JAN-1982
 plot temp
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DT2          PSXT      PSYT      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- found   TEMP     M: 37 dset:   1 I:    1  161  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:     50     51  J:    5   88  K:    1    1  L:      2      3
+ found   TEMP     M: 37 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 14   complete
 plot/over temp[g=u]
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME2     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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      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 PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- found   TEMP     M: 36 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ found   TEMP     M: 36 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 15   complete
 plot/over temp[g=g5day]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
- reading TEMP     M:110 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:111 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M:110 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      5
+ regrid  TEMP     M:111 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3
  regrid XY
- regrid  TEMP     M:112 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:111 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:112 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:111 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 16   complete
 plot/over temp[g=g5_10]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- reading TEMP     M:113 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:114 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:115 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:114 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M:113 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M:114 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      3
+ regrid  TEMP     M:115 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3
+ -DELETE TEMP     M:114 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:114 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:115 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:114 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:115 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 17   complete
 plot/over temp[g=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- found   TEMP     M: 38 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ found   TEMP     M: 38 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 18   complete
 plot/over temp[g=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M:113 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:118 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:113 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M:118 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3
  regrid XY
- regrid  TEMP     M:119 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:118 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:119 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:118 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 19   complete
 plot/over temp[g=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M:120 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:121 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:122 dset:   1 I:   45   56  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:121 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M:120 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M:121 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      3
+ regrid  TEMP     M:122 dset:   1 I:     45     56  J:    5   89  K:    1    1  L:      2      3
+ -DELETE TEMP     M:121 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:121 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:122 dset:   1 I:   45   56  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:121 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:122 dset:   1 I:     45     56  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 20   complete
 plot/over temp[g=u at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- found   TEMP     M: 44 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ found   TEMP     M: 44 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 21   complete
 plot/over temp[g=g5day at asn]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on T: TEMP --> YNTERMED         @ASN
- found   TEMP     M:120 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:125 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:126 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:125 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:125 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:126 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:120 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M:125 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ regrid  TEMP     M:126 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:125 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:125 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:126 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 22   complete
 plot/over temp[g=u,gy=u at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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 PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  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
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
- found   TEMP     M: 43 dset:   1 I:    1  160  J:    1  100  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     NORMAL    NORMAL
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ allocate dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
+ found   TEMP     M: 43 dset:   1 I:      1    160  J:    1  100  K:    1    2  L:      1      3
+ dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 23   complete
 plot/over temp[g=g5day,gy=g5day at ave]
- dealloc  dynamic grid PS3DU2          PSXU      PSYU      PSZT      TIME2     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
+ 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
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
- eval    EX#1     C:  5 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> YNTERMED         @LIN
- found   TEMP     M:120 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:128 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:129 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:128 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:128 dset:   1 I:   50   50  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:129 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:120 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M:128 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3
+ regrid  TEMP     M:129 dset:   1 I:     50     51  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:128 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:128 dset:   1 I:     50     50  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:129 dset:   1 I:     50     51  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 24   complete
 plot/over temp[g=g5_10,gy=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   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
+ dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Y: TEMP --> XNTERMED         @AVE
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M:120 dset:   1 I:   45   56  J:    5   89  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:130 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:131 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:130 dset:   1 I:   50   51  J:    5   89  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:130 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:131 dset:   1 I:   50   51  J:    5   89  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:131 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:130 dset:   1 I:   50   51  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:120 dset:   1 I:     45     56  J:    5   89  K:    1    2  L:      2      5
+ regrid  TEMP     M:130 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      3
+ regrid  TEMP     M:131 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3
+ -DELETE TEMP     M:130 dset:   1 I:     50     51  J:    5   89  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:130 dset:   1 I:     50     51  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:131 dset:   1 I:     50     51  J:    5   89  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:131 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:130 dset:   1 I:     50     51  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
 PPL plot 25   complete
 plot/over temp[g=g5_10 at asn]  ! invalid interpretation of data
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   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
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=21-JAN-198200:00 at ITP,D=1]
  strip --> EX#1[Z=5 at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- found   TEMP     M: 37 dset:   1 I:    1  161  J:    5   89  K:    1    2  L:    1    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:133 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:134 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:133 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:133 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:134 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:134 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:133 dset:   1 I:    7    7  J:    5   88  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M: 37 dset:   1 I:      1    161  J:    5   89  K:    1    2  L:      1      3
+ regrid  TEMP     M:133 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ regrid  TEMP     M:134 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:133 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:133 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:134 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:134 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3
+ -DELETE TEMP     M:133 dset:   1 I:      7      7  J:    5   88  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
  doing --> TEMP[Z=5 at ITP,D=1]
  doing --> TEMP[T=21-JAN-198200:00 at ITP,D=1]
 setting up plot
@@ -17183,248 +17029,248 @@ PPL plot 26   complete
 use gtsa056_2	!kob  4/99
 set region/x=180W/y=0/z=5/t=21-JAN-1982:13-JUN-1983
 load temp[i=50:51,j=45:56,k=1:2,l=1:172]  ! preload to save time
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DT1          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     1   172 dset:   2
- reading TEMP     M:136 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DT1          PSXT      PSYT      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing TEMP on T axis:        1      172 dset:   2
+ reading TEMP     M:136 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
 plot temp
- dealloc  dynamic grid PS3DT1          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DT1          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT1          PSXT      PSYT      PSZT      TIME1
+ 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 PS3DT1          PSXT      PSYT      PSZT      TIME1
  strip --> EX#1[Y=0 at ITP,D=2]
  strip --> EX#1[X=180E at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- found   TEMP     M:137 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      3    170
+ found   TEMP     M:137 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
  doing --> TEMP[X=180E at ITP,D=2]
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 27   complete
 plot/over temp[g=u]
- dealloc  dynamic grid PS3DT1          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT1          PSXT      PSYT      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:140 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
+ reading TEMP     M:140 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      3    168
  regrid XY
- regrid  TEMP     M:141 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ regrid  TEMP     M:141 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    168
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @LIN
- reading TEMP     M:143 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
+ reading TEMP     M:143 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      1      2
  regrid XY
- regrid  TEMP     M:144 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ regrid  TEMP     M:144 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      1      2
+ doing moduloing TEMP on T axis:        1        2 dset:   2
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 28   complete
 plot/over temp[g=g5day]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:146 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:148 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ strip moduloing TEMP on T axis:        2      171 dset:   2
+ reading TEMP     M:146 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
+ regrid  TEMP     M:148 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M:149 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:148 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:149 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:148 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 29   complete
 plot/over temp[g=g5_10]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- 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
+ 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
  strip --> EX#1[Z=5 at ITP,D=2]
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:150 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:152 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:153 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:152 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ strip moduloing TEMP on T axis:        2      171 dset:   2
+ reading TEMP     M:150 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
+ regrid  TEMP     M:152 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    104
+ regrid  TEMP     M:153 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M:152 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:152 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:153 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:152 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:153 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
  doing --> TEMP[Z=5 at ITP,D=2]
 setting up plot
 PPL plot 30   complete
 plot/over temp[g=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @AAV
- found   TEMP     M:151 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
+ found   TEMP     M:151 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    171
  regrid XY
- regrid  TEMP     M:155 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ regrid  TEMP     M:155 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    168
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @AAV
- found   TEMP     M:150 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
+ found   TEMP     M:150 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      1    168
  regrid XY
- regrid  TEMP     M:157 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ regrid  TEMP     M:157 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      1      2
+ doing moduloing TEMP on T axis:        1        2 dset:   2
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 31   complete
 plot/over temp[g=g5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAY            @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M:151 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M:159 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:151 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:159 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M:160 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:159 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:160 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:159 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 32   complete
 plot/over temp[g=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- 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
+ 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
  strip --> EX#1[Z=5 at ITP,D=2]
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10            @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M:161 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M:163 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:164 dset:   2 I:   45   56  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:163 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ strip moduloing TEMP on T axis:        2      171 dset:   2
+ reading TEMP     M:161 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
+ regrid  TEMP     M:163 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    104
+ regrid  TEMP     M:164 dset:   2 I:     45     56  J:   44   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M:163 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:163 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:164 dset:   2 I:   45   56  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:163 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:164 dset:   2 I:     45     56  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
  doing --> TEMP[Z=5 at ITP,D=2]
 setting up plot
 PPL plot 33   complete
 plot/over temp[g=u at asn]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M:162 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M:166 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M:167 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:166 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ found   TEMP     M:162 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:166 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    168
+ regrid  TEMP     M:167 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    168
+ -DELETE TEMP     M:166 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    168  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M:161 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M:168 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid  TEMP     M:169 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:168 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ found   TEMP     M:161 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      1    168
+ regrid  TEMP     M:168 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      1      2
+ regrid  TEMP     M:169 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      1      2
+ -DELETE TEMP     M:168 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      1      2  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on T axis:        1        2 dset:   2
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 34   complete
 plot/over temp[g=g5_10 at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
  strip --> EX#1[Z=5 at ITP,D=2]
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10            @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M:170 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:171 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:172 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:171 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:171 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:172 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:172 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:171 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ reading TEMP     M:170 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ regrid  TEMP     M:171 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ regrid  TEMP     M:172 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:171 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:171 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:172 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:172 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:171 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
  doing --> TEMP[Z=5 at ITP,D=2]
 setting up plot
 PPL plot 35   complete
 plot/over temp[g=u,gt=u at ave]
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- found   TEMP     M:142 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    170
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ found   TEMP     M:142 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      3    170
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 36   complete
 plot/over temp[g=g5day,gt=g5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M:162 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M:175 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:162 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:175 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M:176 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:175 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:176 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:175 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 37   complete
 plot/over temp[g=g5_10,gt=g5_10 at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- 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
+ 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
  strip --> EX#1[Z=5 at ITP,D=2]
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  6 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  6 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10            @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- found   TEMP     M:162 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M:177 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:178 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:177 dset:   2 I:   50   51  J:   44   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:162 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:177 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    104
+ regrid  TEMP     M:178 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M:177 dset:   2 I:     50     51  J:   44   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:177 dset:   2 I:    7    7  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:178 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:177 dset:   2 I:      7      7  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:178 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
  doing --> TEMP[Z=5 at ITP,D=2]
 setting up plot
 PPL plot 38   complete
 plot/over temp[g=g5day,gt=g5day at asn]  ! invalid interpretation of data
- dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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
+ dealloc  dynamic grid G5_10           XAX10     PSYU      PSZW      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
  strip --> EX#1[Y=0 at ITP,D=2]
- eval    EX#1     C:  5 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAY            @LIN
  strip regrid on T: TEMP --> XNTERMED         @ASN
- found   TEMP     M:162 dset:   2 I:   45   56  J:   44   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M:180 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:162 dset:   2 I:     45     56  J:   44   46  K:    1    2  L:      2    171
+ regrid  TEMP     M:180 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M:181 dset:   2 I:   50   50  J:   44   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:180 dset:   2 I:   50   51  J:   44   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:181 dset:   2 I:     50     50  J:   44   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:180 dset:   2 I:     50     51  J:   44   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
  doing --> TEMP[Y=0 at ITP,D=2]
 setting up plot
 PPL plot 39   complete
@@ -17442,24 +17288,24 @@ let a1 = x[gx=x1pt]	! single point
 let a2 = x[gx=x2pt]
  
 list a1[gx=xoffset at ave]
- dealloc  dynamic grid G5DAY           PSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- 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    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
- eval    A1       C:  7 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:182 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:184 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ 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
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at AVE
              SUBSET   : 7 points (X)
@@ -17471,19 +17317,19 @@ list a1[gx=xoffset at ave]
  6.1 / 6:   ....
  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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:184 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -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
+ -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
+ 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
- found   A1       M:183 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:184 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -17495,18 +17341,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    NORMAL    NORMAL
- -DELETE A1       M:184 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          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
+ 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
- found   A1       M:183 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:184 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : Variance of X[GX=X1PT]
                         regrid: 1 delta on X at VAR
              SUBSET   : 7 points (X)
@@ -17519,25 +17365,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    NORMAL    NORMAL
- -DELETE A1       M:184 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          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
+ 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
- eval    A2       C:  7 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:184 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:185 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ 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
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at AVE
              SUBSET   : 7 points (X)
@@ -17549,19 +17395,19 @@ list a2[gx=xoffset at ave]
  6.1 / 6:  6.000
  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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:185 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -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
+ -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
+ 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
- found   A2       M:182 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:185 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -17573,18 +17419,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    NORMAL    NORMAL
- -DELETE A2       M:185 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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
+ 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
- found   A2       M:182 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:185 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : Variance of X[GX=X2PT]
                         regrid: 1 delta on X at VAR
              SUBSET   : 7 points (X)
@@ -17602,42 +17448,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    NORMAL    NORMAL
- -DELETE A2       M:185 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:182 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:183 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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
+ -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
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
  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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:183 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G012)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:182 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:182 dset:   0 I: -999 -999  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G012)          NORMAL    Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:183 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:183 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:182 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
+ 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
+ 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
+ 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
+ -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
+ 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
              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)
@@ -17651,21 +17497,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    NORMAL    NORMAL
- -DELETE A1       M:182 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          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
+ 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
  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  M: -999 -999  N: -999 -999
- regrid  A1       M:182 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:183 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
+ 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
              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)
@@ -17679,21 +17525,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    NORMAL    NORMAL
- -DELETE A1       M:183 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          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
+ 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
  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  M: -999 -999  N: -999 -999
- regrid  A1       M:183 dset:   0 I:    1    1  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A1       M:182 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
+ 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
              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)
@@ -17708,35 +17554,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    NORMAL    NORMAL
- -DELETE A1       M:182 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X2PT      Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          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
+ 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
  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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G012)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:182 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G013)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  Y        M:183 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Y        M:183 dset:   0 I: -999 -999  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G013)          NORMAL    Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:182 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G012)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:182 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:183 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
+ 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
+ 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
+ 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
+ -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
+ 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
              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)
@@ -17750,21 +17596,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    NORMAL    NORMAL
- -DELETE A2       M:183 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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
+ 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
  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  M: -999 -999  N: -999 -999
- regrid  A2       M:183 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:182 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
+ 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
              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)
@@ -17779,21 +17625,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    NORMAL    NORMAL
- -DELETE A2       M:182 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   YOFFSET   NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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
+ 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
  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  M: -999 -999  N: -999 -999
- regrid  A2       M:182 dset:   0 I:    1    2  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A2       M:183 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
+ 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
              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)
@@ -17814,33 +17660,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    NORMAL    NORMAL
- -DELETE A2       M:183 dset:   0 I:    1    7  J:    1    7  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A2       M:184 dset:   0 I:    1    2  J:    1    2  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      Y2PT      NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:185 dset:   0 I:    1    1  J:    1    1  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      Y1PT      NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G011)          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
+ -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
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
- eval    A1       C:  7 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:185 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A1       M:183 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ 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
              VARIABLE : X[GX=X1PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -17852,26 +17698,26 @@ list a1[gx=xoffset at max]
  6.1 / 6:   ....
  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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:183 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -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
+ -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
+ 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
- eval    A2       C:  7 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:183 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A2       M:182 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ 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
              VARIABLE : X[GX=X2PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -17883,26 +17729,26 @@ list a2[gx=xoffset at max]
  6.1 / 6:  6.000
  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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:182 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -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
+ -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
+ 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
- eval    A4       C:  7 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:182 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A4       M:186 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ 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
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at MAX
              SUBSET   : 7 points (X)
@@ -17914,19 +17760,19 @@ list a4[gx=xoffset at max]
  6.1 / 6:  6.500
  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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A4       M:186 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -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
+ -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
+ 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
- found   A4       M:183 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A4       M:186 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at MIN
              SUBSET   : 7 points (X)
@@ -17938,18 +17784,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    NORMAL    NORMAL
- -DELETE A4       M:186 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G012)          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
+ 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
- found   A4       M:183 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A4       M:186 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G012)          XOFFSET   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : X[GX=X4PT]
                         regrid: 1 delta on X at SUM
              SUBSET   : 7 points (X)
@@ -17966,25 +17812,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    NORMAL    NORMAL
- -DELETE A4       M:186 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G012)          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
+ 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
- eval    A5       C:  7 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:186 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A5       M:187 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G013)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ 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
              VARIABLE : X[GX=X5_EDGES]
                         regrid: 1 delta on X at MAX
              SUBSET   : 5 points (X)
@@ -17994,35 +17840,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    NORMAL    NORMAL
- -DELETE A5       M:187 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A5       M:182 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G012)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE X        M:186 dset:   0 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A4       M:183 dset:   0 I:    1    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          X4PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A2       M:185 dset:   0 I:    1    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X2PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A1       M:184 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X1PT      NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G013)          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
+ -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
+ -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
+ -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
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
- eval    A5       C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- pseudo  X        M:184 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G009)          X5_EDGES  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- regrid  A5       M:183 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ 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
              VARIABLE : X[GX=X5_EDGES, I=3]
                         regrid: 1 delta on X at MAX
              SUBSET   : 5 points (X)
@@ -18032,35 +17878,35 @@ list a5[gx=x5 at max]
  4   / 4:   ....
  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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A5       M:183 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ -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
+ -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
+ 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
- found   A5       M:185 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- regrid  A5       M:183 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
              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    NORMAL    NORMAL
- -DELETE A5       M:183 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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    NORMAL    NORMAL
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          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
+ 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
- found   A5       M:185 dset:   0 I:    3    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          X5        NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : X[GX=X5_EDGES, I=3]
                         regrid: 1 delta on X at MAX
              X        : 4
@@ -18071,19 +17917,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    NORMAL    NORMAL
- -DELETE A5       M:183 dset:   0 I:    4    4  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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      NORMAL    NORMAL
- dealloc  dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- allocate dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- allocate dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- eval    ATIME    C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- allocate dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- pseudo  T        M:183 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
+ dealloc  dynamic grid (G010)          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
+ 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
+ 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
              VARIABLE : T[GT=TDAY]
              SUBSET   : 5 points (TIME)
  01-JAN-1990 00 / 1:  32493.
@@ -18100,21 +17946,19 @@ show grid
  normal    Y
  normal    Z
  TDAY      TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
- normal    E
- normal    F
 list atime[gt=thour at max]
- -DELETE T        M:183 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G010)          NORMAL    NORMAL    NORMAL    TDAY      NORMAL    NORMAL
- 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     NORMAL    NORMAL
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- allocate dynamic grid (G011)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
+ -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
+ 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
+ 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
- found   ATIME    M:184 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- regrid  ATIME    M:183 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G011)          NORMAL    NORMAL    NORMAL    THOUR     NORMAL    NORMAL
+ 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
              VARIABLE : T[GT=TDAY]
                         regrid: 24 hour on T at MAX
              SUBSET   : 5 points (TIME)
@@ -18132,8 +17976,6 @@ show grid
  normal    Y
  normal    Z
  THOUR     TIME                 5 r   01-JAN-1990 00:00    05-JAN-1990 00:00   full
- normal    E
- normal    F
  
 set mode/last diag
  
@@ -18700,7 +18542,7 @@ list v1
 ! *** 2D
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6 test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 points (X-Y)
              1      2    
@@ -18710,7 +18552,7 @@ list v10
  3   / 3:  5.000  6.000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6/order=yx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 points (X-Y)
              1      2    
@@ -18720,7 +18562,7 @@ list v10
  3   / 3:  3.000  6.000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6yt test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 points (Y-T)
              1      2    
@@ -18730,7 +18572,7 @@ list v10
  3   / 3:  5.000  6.000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6yt/order=ty test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 points (Y-T)
              1      2    
@@ -18740,7 +18582,7 @@ list v10
  3   / 3:  3.000  6.000
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g6yt/order=xtyz test_perm48_10.dat
 list v10 ! should be just the same as the last
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 points (Y-T)
              1      2    
@@ -18752,7 +18594,7 @@ list v10 ! should be just the same as the last
 ! *** 3D
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12 test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
              1      2    
@@ -18767,7 +18609,7 @@ list v10
  3   / 3:  11.00  12.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=xzy test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
              1      2    
@@ -18782,7 +18624,7 @@ list v10
  3   / 3:  11.00  12.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=yxz test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
              1      2    
@@ -18797,7 +18639,7 @@ list v10
  3   / 3:   9.00  12.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=yzx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
              1      2    
@@ -18812,7 +18654,7 @@ list v10
  3   / 3:   6.00  12.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=zxy test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
              1      2    
@@ -18827,7 +18669,7 @@ list v10
  3   / 3:  10.00  12.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g12/order=zyx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
              1      2    
@@ -18843,7 +18685,7 @@ list v10
 ! *** 4D  (incomplete - 24 in all)
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24 test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
              1      2    
@@ -18868,7 +18710,7 @@ list v10
  3   / 3:  23.00  24.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xytz test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
              1      2    
@@ -18893,7 +18735,7 @@ list v10
  3   / 3:  23.00  24.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xzyt test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
              1      2    
@@ -18918,7 +18760,7 @@ list v10
  3   / 3:  23.00  24.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xtyz test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
              1      2    
@@ -18943,7 +18785,7 @@ list v10
  3   / 3:  23.00  24.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=xtzy test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
              1      2    
@@ -18968,7 +18810,7 @@ list v10
  3   / 3:  23.00  24.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=ytzx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
              1      2    
@@ -18993,7 +18835,7 @@ list v10
  3   / 3:  12.00  24.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=zytx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
              1      2    
@@ -19018,7 +18860,7 @@ list v10
  3   / 3:  12.00  24.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=tyzx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
              1      2    
@@ -19043,7 +18885,7 @@ list v10
  3   / 3:  12.00  24.00
 file/var="v1,v2,v3,v4,v5,v6,v7,v8,v9,v10"/grid=g24/order=tzyx test_perm48_10.dat
 list v10
-             VARIABLE : V10
+             VARIABLE : v10
              FILENAME : test_perm48_10.dat
              SUBSET   : 2 by 3 by 2 by 2 points (X-Y-Z-T)
              1      2    
@@ -19084,8 +18926,8 @@ list v1
 show data
      currently SET data sets:
     1> ./test_perm10.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       1:3       1:1       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:2       1:3       1:1       ...
  
  
 file/grid=g24/order=xytz test_perm10.dat
@@ -19107,8 +18949,8 @@ list v1
 show data
      currently SET data sets:
     1> ./test_perm10.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       1:3       1:2       1:1       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:2       1:3       1:2       1:1
  
  
 file/grid=g24/order=xzyt test_perm10.dat
@@ -19130,8 +18972,8 @@ list v1
 show data
      currently SET data sets:
     1> ./test_perm10.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:2       1:3       1:2       1:1       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:2       1:3       1:2       1:1
  
  
  
@@ -19362,7 +19204,7 @@ define axis/y=1:5:1 y5
 define grid/x=x10/y=y5 g10x5
 file/var=myvar/grid=g10x5/format=stream stream_data_link.unf
 list myvar
-             VARIABLE : MYVAR
+             VARIABLE : myvar
              FILENAME : stream_data_link.unf
              SUBSET   : 10 by 5 points (X-Y)
              1      2      3      4      5      6      7      8      9     10    
@@ -19383,8 +19225,8 @@ list myv1,myv2
              DATA SET: ./stream_data_link.unf
              X: 0.5 to 10.5
              Y: 0.5 to 2.5
- Column  1: MYV1
- Column  2: MYV2
+ Column  1: MYV1 is myv1
+ Column  2: MYV2 is myv2
             MYV1   MYV2
  ---- J:1 Y:   1
 1    /  1:  11.00  31.00
@@ -19422,8 +19264,8 @@ CAN MODE VERIFY
      currently SET data sets:
     1> ./coads_clim.des  (default)
      COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6
              Deg C on grid GHB1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -19435,8 +19277,6 @@ CAN MODE VERIFY
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME1     TIME                 6 r   16-JAN-1900 06:00    17-JUN-1900 10:25   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (hour)
        1>  16-JAN-1900 06:00:00  730.485    01-JAN-1900 00:45:27    366
@@ -19491,8 +19331,8 @@ CAN MODE VERIFY
      currently SET data sets:
     1> ./coads_clim.des
      COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:6
              Deg C on grid GHB1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -19500,8 +19340,8 @@ CAN MODE VERIFY
  
     2> ./coads_clim_irreg.des  (default)
      COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
              Deg C on grid GJR1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -19513,8 +19353,6 @@ CAN MODE VERIFY
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME2     TIME                 3 i   16-JAN-1900 06:00    17-MAY-1900 23:56   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (hour)
        1>  16-JAN-1900 06:00:00  730.485    01-JAN-1900 00:45:27    366
@@ -19560,8 +19398,8 @@ CAN MODE VERIFY
      currently SET data sets:
     1> ./coads_clim_missing_step1.des  (default)
      COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
              Deg C on grid GQO1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -19570,8 +19408,8 @@ CAN MODE VERIFY
      currently SET data sets:
     1> ./coads_clim_missing_stepN.des  (default)
      COAD
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
              Deg C on grid GCQ1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -22843,7 +22681,9 @@ shade/x=0/l=1/ylim=0:200:-20/lev ZAXREPLACE(flow[z=0:200],depth[z=0:200],z[z=0:2
  
 set mode/last verify
 ********File successfully written******
+ooooooooooooooooooooooooooooooooooooooooooo
 ****Variable defined successfully******
+ooooooooooooooooooooooooooooooooooooooooooo
  
              T
              axis ABSTRACT
@@ -23039,6 +22879,7 @@ list tgap[t=-5:-8 at fav]  ! value at T=-6 should be -6
 ! l=@ave compression failure
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err490_l_ave.jnl
 ! err490_lave.jnl 12/1/97 - *sh* (reported by Weimin Wang)
 ! L=@AVE is failing to compress to a point
@@ -23122,6 +22963,7 @@ quit
 ! neg time axis grid failure
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err490_neg_time_show_grid.jnl
 ! err490_neg_time_show_grid
  
@@ -23136,8 +22978,6 @@ show grid/t=15-JAN-1982:15-JAN-1983 temp
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME      TIME               168mr   15-JAN-1982 14:00    07-JUN-1983 13:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (hour)
        1>  15-JAN-1982 14:00:00  73         14-JAN-1982 01:30:00    52632
@@ -23266,6 +23106,7 @@ show grid/t=15-JAN-1982:15-JAN-1983 temp
 !explicit limit problem
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_explicit_limits.jnl
 ! err491_explicit_limits
 ! 2/98 *sh*
@@ -23316,6 +23157,7 @@ list timestamp[i=1:1]
 !regridding by association problem  *kob* 4/98
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_asn.jnl
 ! err491_asn.jnl 4/98 *sh* (extracted from bug reported by Jennifer Adams)
 ! Ferret crashes on regridding by association where destination
@@ -23395,6 +23237,7 @@ exit/script
 !double precision attribute problem *kob* 4/98
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_attrib_dp.jnl
 ! err491_attrib_dp.jnl
 ! kob  4/23/98
@@ -23557,13 +23400,13 @@ use weird_name1.cdf
 sh data
      currently SET data sets:
     1> ./weird_name1.cdf  (default)
- name     title                             I         J         K         L         M         N
- v1       lower case v1                    1:20      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ v1       lower case v1                    1:20      ...       ...       ...
  v2-and-minus
-          SIN(2+I/10)                      1:20      ...       ...       ...       ...       ...
- V1       Upper case V1                    1:20      ...       ...       ...       ...       ...
- I        SIN(4+I/10)                      1:20      ...       ...       ...       ...       ...
- X        SIN(5+I/10)                      1:20      ...       ...       ...       ...       ...
+          SIN(2+I/10)                      1:20      ...       ...       ...
+ V1       Upper case V1                    1:20      ...       ...       ...
+ I        SIN(4+I/10)                      1:20      ...       ...       ...
+ X        SIN(5+I/10)                      1:20      ...       ...       ...
  
 set mode ignore
 list v1
@@ -23924,7 +23767,7 @@ canc mode ignore
 !!OK, load file in 'normal order'
 file/format=str/var=num,num1/grid=mygrid/order=xyztv permutedBinaryTest.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -23947,7 +23790,7 @@ list num
  2   / 2:  21.00  22.00
  3   / 3:  23.00  24.00
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -23973,7 +23816,7 @@ list num1
 !! Load file w/o order qualifier (should be same as above)
 file/format=str/var=num,num1/grid=mygrid/order=xyztv permutedBinaryTest.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -23996,7 +23839,7 @@ list num
  2   / 2:  21.00  22.00
  3   / 3:  23.00  24.00
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24023,7 +23866,7 @@ list num1
 !! Permute tzyxv
 file/format=str/var=num,num1/grid=mygrid/order=tzyxv permutedBinaryTest.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24046,7 +23889,7 @@ list num
  2   / 2:   8.00  20.00
  3   / 3:  12.00  24.00
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24072,7 +23915,7 @@ list num1
 !!Try permuted v
 file/format=str/var=num,num1/grid=mygrid/order=vxyzt permutedBinaryTest.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24095,7 +23938,7 @@ list num
  2   / 2:  41.00  43.00
  3   / 3:  45.00  47.00
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : permutedBinaryTest.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24122,7 +23965,7 @@ list num1
 !! for big endian architecture)
 file/format=str/var=num,num1/grid=mygrid/type=i1 byte.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : byte.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24147,7 +23990,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=i2/swap short.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : short.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24172,7 +24015,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=i4/swap int.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : int.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24197,7 +24040,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=r4/swap float.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : float.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24222,7 +24065,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=r8/swap double.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : double.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24249,7 +24092,7 @@ list num1
 !! Test swapped
 file/format=str/var=num,num1/grid=mygrid/type=i1 byteSwapped.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : byteSwapped.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24274,7 +24117,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=i2 shortSwapped.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : shortSwapped.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24299,7 +24142,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=i4 intSwapped.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : intSwapped.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24324,7 +24167,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=r4 floatSwapped.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : floatSwapped.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24349,7 +24192,7 @@ list num1
  
 file/format=str/var=num,num1/grid=mygrid/type=r8 doubleSwapped.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : doubleSwapped.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24378,7 +24221,7 @@ list num1
 ! get correct result with /skip=2 (??)
 file/format=str/var=num,num1/grid=mygrid/type=r8/skip=2/swap skip.dat
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : skip.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24405,7 +24248,7 @@ list num1
 ! Try list of types
 file/format=str/var=num,num1/grid=mygrid/type=r8,i1/swap twoType.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : twoType.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24428,7 +24271,7 @@ list num
  2   / 2:  20.00  21.00
  3   / 3:  22.00  23.00
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : twoType.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24454,7 +24297,7 @@ list num1
 ! Grand finale of xyvzt permutation with r4,i2 types
 file/format=str/var=num,num1/grid=mygrid/type=r4,i2/order=xyvzt/swap finale.dat
 list num
-             VARIABLE : NUM
+             VARIABLE : num
              FILENAME : finale.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24477,7 +24320,7 @@ list num
  2   / 2:  20.00  21.00
  3   / 3:  22.00  23.00
 list num1
-             VARIABLE : NUM1
+             VARIABLE : num1
              FILENAME : finale.dat
              SUBSET   : 2 by 3 by 4 points (Y-Z-T)
              X        : 1
@@ -24502,7 +24345,9 @@ list num1
 *** Running ferret script: bn_define_axes.jnl
 [?1034h! bn_define_axes.jnl
 ! *sh* 5/99
-! *sh* 12/99 - with streamlined syntax
+! *sh* 12/99 -  with streamlined syntax
+! *acm* 12/16 - change to a comment only
+! 1/2017 *acm* changes in output due to backing off auto-detection of truemonth axes, tkt 2497
  
 ! exercise the DEFINE AXIS command
  
@@ -24725,6 +24570,10 @@ T0 = 1-JAN-1990
        2>  04-JAN-1990 12:00:00  3          03-JAN-1990 00:00:00    3.5
  
 ! real monthly calendar
+! (Note: when running pre-true-month Ferret versions, the timestep output from
+! show axis/l below was eliminated by the "clean_draconian" script)
+! 1/17/2017 changes due to backing off auto-detection of truemonth axes, tkt 2497
+ 
 let month = MOD(l-1,12)+1
 let add_year = INT((l-1)/12)
 let tstep = DAYS1900(1980+add_year,month,1)
@@ -24995,6 +24844,7 @@ can mode meta
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_RESHAPE_ctx.jnl
 ! err491_RESHAPE_ctx
  
@@ -25055,61 +24905,36 @@ let out_grid = x[g=gsrc] + y[g=gsrc] + z[gz=zmonth] + t[gt=tyear]
 let out = reshape(src,out_grid)
 list out
              VARIABLE : RESHAPE(SRC,OUT_GRID)
-             SUBSET   : 5 by 12 by 2 points (X-Z-T)
+             SUBSET   : 12 by 2 points (Z-T)
              Y        : 0.5 to 1.5
-                1        2        3        4        5     
-                1        2        3        4        5
- ---- L:1 T:   1951
- 1    /  1:  438289.  438290.  438291.  438292.  438293.
- 2    /  2:  439019.  439020.  439021.  439022.  439023.
- 3    /  3:  439750.  439751.  439752.  439753.  439754.
- 4    /  4:  440480.  440481.  440482.  440483.  440484.
- 5    /  5:  441211.  441212.  441213.  441214.  441215.
- 6    /  6:  441941.  441942.  441943.  441944.  441945.
- 7    /  7:  442672.  442673.  442674.  442675.  442676.
- 8    /  8:  443402.  443403.  443404.  443405.  443406.
- 9    /  9:  444132.  444133.  444134.  444135.  444136.
- 10   / 10:  444863.  444864.  444865.  444866.  444867.
- 11   / 11:  445593.  445594.  445595.  445596.  445597.
- 12   / 12:  446324.  446325.  446326.  446327.  446328.
- ---- L:2 T:   1952
- 1    /  1:  447054.  447055.  447056.  447057.  447058.
- 2    /  2:  447785.  447786.  447787.  447788.  447789.
- 3    /  3:  448515.  448516.  448517.  448518.  448519.
- 4    /  4:  449246.  449247.  449248.  449249.  449250.
- 5    /  5:  449976.  449977.  449978.  449979.  449980.
- 6    /  6:  450706.  450707.  450708.  450709.  450710.
- 7    /  7:  451437.  451438.  451439.  451440.  451441.
- 8    /  8:  452167.  452168.  452169.  452170.  452171.
- 9    /  9:  452898.  452899.  452900.  452901.  452902.
- 10   / 10:  453628.  453629.  453630.  453631.  453632.
- 11   / 11:  454359.  454360.  454361.  454362.  454363.
- 12   / 12:  455089.  455090.  455091.  455092.  455093.
+                 1        2        3        4        5        6        7        8        9       10       11       12     
+                 1        2        3        4        5        6        7        8        9       10       11       12
+ 1951   / 1:  438289.  438290.  438291.  438292.  438293.  439019.  439020.  439021.  439022.  439023.  439750.  439751.
+ 1952   / 2:  439752.  439753.  439754.  440480.  440481.  440482.  440483.  440484.  441211.  441212.  441213.  441214.
  
 ! NOW THE ERROR: L LIMITS PASSED INCORRECTLY(ERRONEOUSLY) TO SRC
 list/l=1 out
              VARIABLE : RESHAPE(SRC,OUT_GRID)
-             SUBSET   : 5 by 12 points (X-Z)
+             SUBSET   : 12 points (Z)
              Y        : 0.5 to 1.5
              T        : 1951
-                1        2        3        4        5     
-                1        2        3        4        5
- 1    /  1:  438289.  438290.  438291.  438292.  438293.
- 2    /  2:  439019.  439020.  439021.  439022.  439023.
- 3    /  3:  439750.  439751.  439752.  439753.  439754.
- 4    /  4:  440480.  440481.  440482.  440483.  440484.
- 5    /  5:  441211.  441212.  441213.  441214.  441215.
- 6    /  6:  441941.  441942.  441943.  441944.  441945.
- 7    /  7:  442672.  442673.  442674.  442675.  442676.
- 8    /  8:  443402.  443403.  443404.  443405.  443406.
- 9    /  9:  444132.  444133.  444134.  444135.  444136.
- 10   / 10:  444863.  444864.  444865.  444866.  444867.
- 11   / 11:  445593.  445594.  445595.  445596.  445597.
- 12   / 12:  446324.  446325.  446326.  446327.  446328.
+ 1    /  1:  438289.
+ 2    /  2:  438290.
+ 3    /  3:  438291.
+ 4    /  4:  438292.
+ 5    /  5:  438293.
+ 6    /  6:  439019.
+ 7    /  7:  439020.
+ 8    /  8:  439021.
+ 9    /  9:  439022.
+ 10   / 10:  439023.
+ 11   / 11:  439750.
+ 12   / 12:  439751.
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_delete_child_var.jnl
 ! err491_delete_child_var.jnl
 ! *sh* 4/99
@@ -25147,6 +24972,7 @@ list  ypolymark	! incorrect values: 10, 20, 30
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_dp_time_write.jnl
 ! err491_dp_time_write.jnl
 ! *sh* 10/98
@@ -25169,6 +24995,7 @@ sp ncdump out.cdf >> all_ncdump.out
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_gmax.jnl
 ! err491_gmax.jnl
 ! 9 Dec. 1998 *sh*
@@ -25185,6 +25012,7 @@ load ts[gt=t24 at max]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_grid_from_name.jnl
 ! err491_grid_from_name.jnl
 ! *sh* 3/99
@@ -25205,12 +25033,11 @@ show grid
  normal    Y
  Z10       Z                   10 r   1                    10                  full
  normal    T
- normal    E
- normal    F
 can mode ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_let_d.jnl
 ! err491_let_d.jnl
 ! *sh* 10/98
@@ -25241,6 +25068,7 @@ stat/i=1:3/j=1:3 a
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_sh_var_templates.jnl
 ! SHOW VARIABLE templates are not robust
  
@@ -25255,6 +25083,7 @@ sho var mld*dec		! works
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_single_char_replace.jnl
 ! err491_single_char_replace.jnl
  
@@ -25273,6 +25102,7 @@ hh
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_spawn_quotes.jnl
 ! err491_spawn_quotes.jnl
  
@@ -25280,10 +25110,11 @@ GO err491_spawn_quotes.jnl
  
 ! this should be a valid command
 SPAWN "date"
-Fri Jun 17 15:17:33 PDT 2016
+Tue Apr 18 17:14:50 PDT 2017
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_time_regridding.jnl
 ! err491_time_regridding.jnl
 ! from Jon 10/16/98
@@ -25319,6 +25150,7 @@ plot/over bad[t=@sbx:3]
 ! 3/01 *kob* uncomment the below - seems to run on all systems
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err491_unknown_function.jnl
 ! err491_unknown_function
 ! 3/99 *sh*
@@ -25336,6 +25168,7 @@ can mode ignore
 ! *kob* added 6/11/1999
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err500_IF_THEN_ELSE_quote.jnl
 ! err500_IF_THEN_ELSE_quote.jnl
  
@@ -25402,45 +25235,41 @@ list SAMPLEI(sst[l=1:3,y=-2:2],{30,40,50})
  1N   / 46:  29.14  28.92  28.33
  1S   / 45:  28.90  28.82  28.54
 SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 12800
- 
-            number of free memory blocks: 1987
-            largest free region: 1984
-            number of free regions: 4
-            free memory table slots: 487
-            number of UN-CACHED variables: 0
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 39 words
+    Current cache: 63 words
+    Total table slots: 500
+    Free table slots: 487
+    Un-cached variables: 0
  
 ! these should break sampling up into separate reads
 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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      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      NORMAL    NORMAL
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G002)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  7 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 16 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    (C09,V02 C: 11 dset:   1 I:   30   30  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading SST      M: 13 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 11 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  8 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 11 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  5 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C09,V02 M: 14 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M: 15 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  9 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 16 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ const_v {30,...} M: 16 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing sampling tpry on I axis:        1        3 dset:   1
+ eval    (C09,V02 C: 11 dset:   1 I:     30     30  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading SST      M: 13 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ eval    (C09,V02 C: 11 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:  8 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ eval    (C09,V02 C: 11 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:  5 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE (C09,V02 M: 14 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 15 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  9 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M: 16 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST[L=1,Y=-2:2],{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 2 points (LATITUDE)
@@ -25450,32 +25279,32 @@ list/i=2 SAMPLEI(sst[l=1,y=-2:2],{30,40,50})	! only I=2 from result
                2
  1N   / 46:  28.20
  1S   / 45:  28.56
- -DELETE (C01,V02 M: 16 dset:   1 I:    2    2  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE (C01,V02 M: 16 dset:   1 I:      2      2  J:   45   46  K: -999 -999  L:      1      1
 cancel memory/all
- -DELETE (C09,V02 M:  4 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  5 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C09,V02 M:  7 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  8 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C09,V02 M: 12 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 13 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C01,V02 M: 15 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE (C09,V02 M:  4 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:  5 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE (C09,V02 M:  7 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:  8 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE (C09,V02 M: 12 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M: 13 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ -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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      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)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G002)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 15 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- reading SST      M:  8 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  5 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  4 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE          M: 12 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M: 13 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  7 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 15 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ reading SST      M:  8 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:  5 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:  4 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE          M: 12 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 13 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  7 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M: 15 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25485,30 +25314,30 @@ list/l=1/y=-2:2  SAMPLEI(sst,{30,40,50})
  1N   / 46:  28.22  28.20  28.45
  1S   / 45:  28.15  28.56  28.83
 cancel memory/all
- -DELETE SST      M:  4 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  5 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  8 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 13 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M:  4 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:  5 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ -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      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 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      NORMAL    NORMAL
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 13 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    A        C:  9 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  4 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  9 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 12 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  9 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  9 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  5 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M:  8 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  7 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 13 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ eval    A        C:  9 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:  4 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ eval    A        C:  9 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M: 12 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ eval    A        C:  9 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M:  9 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:  5 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE SST      M:  8 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  7 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M: 13 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(A  ,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25520,32 +25349,32 @@ list/l=1/y=-2:2  SAMPLEI(a  ,{30,40,50})
  
 ! these should NOT break up the access into chunks
 cancel memory/all
- -DELETE SST      M:  4 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M:  8 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  9 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 12 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 14 dset:   1 I:   50   50  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 15 dset:   1 I:   30   30  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 16 dset:   1 I:   40   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M:  4 dset:   1 I:     30     30  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE EX#1     M:  8 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:  9 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M: 12 dset:   1 I:     40     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE A        M: 14 dset:   1 I:     50     50  J:   45   46  K: -999 -999  L:      1      1
+ -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      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      NORMAL    NORMAL
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  7 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 16 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    (C09,V02 C: 11 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 12 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 14 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE A        M: 15 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  8 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 16 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ const_v {30,...} M: 16 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing sampling tpry on I axis:        1        3 dset:   1
+ eval    (C09,V02 C: 11 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M: 12 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE A        M: 14 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE A        M: 15 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  8 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M: 16 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST[I=30:40],{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25555,29 +25384,29 @@ list/l=1/y=-2:2  SAMPLEI(sst[i=30:40],{30,40,50})
  1N   / 46:  28.22  28.20   ....
  1S   / 45:  28.15  28.56   ....
 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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE (C01,V02 M: 15 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
+ -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 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  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 12 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
 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      NORMAL    NORMAL
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      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 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 12 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    A        C:  9 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 16 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE          M:  9 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE          M: 15 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 14 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 12 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ eval    A        C:  9 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M: 16 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE          M:  9 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE          M: 15 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 14 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M: 12 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(A,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25587,23 +25416,23 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  1N   / 46:  28.22  28.20   ....
  1S   / 45:  28.15  28.56   ....
 cancel memory/all
- -DELETE A        M:  8 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 15 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 16 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:  8 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -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      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)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30}     M: 16 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     1 dset:   1
- eval    A        C:  9 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 12 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:  8 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 15 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  9 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30}     M: 16 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        1 dset:   1
+ eval    A        C:  9 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M: 12 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE A        M:  8 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      1  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M: 15 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  9 dset:   1 I:      1      1  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30}     M: 16 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(A,{30})
              FILENAME : coads_climatology.cdf
              SUBSET   : 2 points (LATITUDE)
@@ -25614,28 +25443,28 @@ list/l=1/y=-2:2  SAMPLEI(a,{30})		! sample at just 1 point
  1N   / 46:  28.22
  1S   / 45:  28.15
 cancel memory/all
- -DELETE SST      M: 12 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 14 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 15 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 12 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -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      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 (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      NORMAL    NORMAL
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  7 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C11,V02 C:  9 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- constan cnst     M: 15 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 15 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     1 dset:   1
- eval    A        C: 11 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 16 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 12 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 15 dset:   0 I:    1    1  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  8 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ eval    (C11,V02 C:  9 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ constan cnst     M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M: 15 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ doing sampling tpry on I axis:        1        1 dset:   1
+ eval    A        C: 11 dset:   1 I:   -999   -999  J:   45   46  K: -999 -999  L:      1      1
+ reading SST      M: 16 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M: 12 dset:   1 I:      1      1  J: -999 -999  K: -999 -999  L:      1      1  M: -999 -999  N: -999 -999
+ -DELETE cnst     M: 15 dset:   0 I:      1      1  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  8 dset:   1 I:      1      1  J:   45   46  K: -999 -999  L:      1      1
              VARIABLE : SAMPLEI(A,30)
              FILENAME : coads_climatology.cdf
              SUBSET   : 2 points (LATITUDE)
@@ -25646,40 +25475,40 @@ list/l=1/y=-2:2  SAMPLEI(a,30)			! sample at just 1 point
  1N   / 46:  28.22
  1S   / 45:  28.15
 cancel memory/all
- -DELETE A        M:  9 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C11,V02 M: 14 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V02 M: 15 dset:   1 I:    1    1  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 16 dset:   1 I:   30   40  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:  9 dset:   1 I:     30     40  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE (C11,V02 M: 14 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE (C01,V02 M: 15 dset:   1 I:      1      1  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
 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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ dealloc  dynamic grid (G002)          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
- getgrid A        C:  8 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- 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      NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      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 A        C:  8 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 16 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- eval    A        C:  9 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ eval    A        C:  9 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
  strip --> FSST[X=20E:20E(380)@IIN,D=1]
- eval    FSST     C: 12 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    FSST     C: 12 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
  strip --> SST[I=1:180 at FLN:1,D=1]
- strip moduloing SST on X axis:     0   181 dset:   1
- reading SST      M:  9 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing SST on X axis:     1   180 dset:   1
+ strip moduloing SST on X axis:        0      181 dset:   1
+ reading SST      M:  9 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ doing moduloing SST on X axis:        1      180 dset:   1
  doing --> SST[I=1:180 at FLN:1,D=1]
  doing --> FSST[X=20E:20E(380)@IIN,D=1]
- -DELETE          M: 14 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE          M: 15 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  5 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 16 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE          M: 14 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE          M: 15 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  5 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE {30,...} M: 16 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(A,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 by 2 points (X-LATITUDE)
@@ -25689,36 +25518,36 @@ list/l=1/y=-2:2  SAMPLEI(a,{30,40,50})
  1N   / 46:  1.829E+08  2.458E+08  3.068E+08
  1S   / 45:  1.837E+08  2.469E+08  3.095E+08
 cancel memory/all
- -DELETE FSST     M:  4 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:  7 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  8 dset:   1 I:    0  181  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  9 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 12 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE FSST     M: 13 dset:   1 I:    1  180  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 15 dset:   1 I:    1    3  J:   45   46  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE FSST     M:  4 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE A        M:  7 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:  8 dset:   1 I:      0    181  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M:  9 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE SST      M: 12 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE FSST     M: 13 dset:   1 I:      1    180  J:   45   46  K: -999 -999  L:      1      1
+ -DELETE EX#1     M: 15 dset:   1 I:      1      3  J:   45   46  K: -999 -999  L:      1      1
  
 ! 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      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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 15 dset:   1 I:   30   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M: 15 dset:   1 I:     30     50  J:   45   45  K: -999 -999  L:      1      1
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 13 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- found   SST      M: 15 dset:   1 I:   30   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  9 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M: 12 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  8 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 13 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ found   SST      M: 15 dset:   1 I:     30     50  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE SST      M:  9 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 12 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  8 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE {30,...} M: 13 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -25730,30 +25559,30 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  2   / 2:  28.56
  3   / 3:  28.83
 cancel memory/all
- -DELETE EX#1     M: 12 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 15 dset:   1 I:   30   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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      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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 15 dset:   1 I:   30   39  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M: 15 dset:   1 I:     30     39  J:   45   45  K: -999 -999  L:      1      1
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 12 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- found   SST      M: 15 dset:   1 I:   30   39  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  7 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  4 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  8 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 13 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  9 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 12 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ found   SST      M: 15 dset:   1 I:     30     39  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:  7 dset:   1 I:     40     40  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:  4 dset:   1 I:     50     50  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE tpry     M:  8 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M: 13 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  9 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE {30,...} M: 12 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -25765,31 +25594,31 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  2   / 2:  28.56
  3   / 3:  28.83
 cancel memory/all
- -DELETE SST      M:  4 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  7 dset:   1 I:   40   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 13 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 15 dset:   1 I:   30   39  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE SST      M:  4 dset:   1 I:     50     50  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE SST      M:  7 dset:   1 I:     40     40  J:   45   45  K: -999 -999  L:      1      1
+ -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      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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 15 dset:   1 I:   30   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M: 15 dset:   1 I:     30     40  J:   45   45  K: -999 -999  L:      1      1
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M: 13 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- found   SST      M: 15 dset:   1 I:   30   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  9 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE SST      M:  7 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 12 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M: 13 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ found   SST      M: 15 dset:   1 I:     30     40  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:  9 dset:   1 I:     50     50  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE SST      M:  4 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE SST      M:  7 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 12 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE {30,...} M: 13 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -25801,30 +25630,30 @@ list/l=1/y=0  SAMPLEI(sst,{30,40,50})
  2   / 2:  28.56
  3   / 3:  28.83
 cancel memory/all
- -DELETE EX#1     M:  7 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M:  9 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST      M: 15 dset:   1 I:   30   40  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M:  7 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
+ -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      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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 15 dset:   1 I:   30   41  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:   -999   -999  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M: 15 dset:   1 I:     30     41  J:   45   45  K: -999 -999  L:      1      1
 list/l=1/y=0  SAMPLEI(sst,{30,40,50})
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I: -999 -999  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- const_v {30-,50} M:  9 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   1
- found   SST      M: 15 dset:   1 I:   30   41  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  4 dset:   1 I:   50   50  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE EX#1     M: 13 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE EX#1     M:  7 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 12 dset:   1 I:    1    3  J:   45   45  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {30-,50} M:  9 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        3 dset:   1
+ found   SST      M: 15 dset:   1 I:     30     41  J:   45   45  K: -999 -999  L:      1      1
+ reading SST      M:  4 dset:   1 I:     50     50  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE EX#1     M: 13 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE EX#1     M:  7 dset:   1 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 12 dset:   1 I:      1      3  J:   45   45  K: -999 -999  L:      1      1
+ -DELETE {30,...} M:  9 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST,{30,40,50})
              FILENAME : coads_climatology.cdf
              SUBSET   : 3 points (X)
@@ -25892,18 +25721,6 @@ Dynamic grids:
  (AX004)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-    GRID (G002)                          use count:   1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX004)   LATITUDE             5 r   1S                   1N
- normal    Z
- TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX004)                         use count:   2
 cancel memory/all
 let/quiet a = sst[l=1,y=1s:1n:.5]
 list SAMPLEI(a,{30,40,50})
@@ -25926,18 +25743,6 @@ Dynamic grids:
  (AX005)   LATITUDE             5 r   1S                   1N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-    GRID (G003)                          use count:   1
- name       axis              # pts   start                end
- COADSX    LONGITUDE          180mr   21E                  19E(379)
- (AX005)   LATITUDE             5 r   1S                   1N
- normal    Z
- TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX005)                         use count:   2
  
 ! sampling a pseudo-variable
 list SAMPLEI(X[x=1:12],{3,4,7,15})
@@ -26094,29 +25899,29 @@ 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    NORMAL    NORMAL
- dealloc  dynamic grid (G002)          ABSTRACT  (AX004)   NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G002)          ABSTRACT  (AX004)   NORMAL    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 (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      NORMAL    NORMAL
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {31-,48} M: 15 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     7 dset:   1
- eval    (C09,V02 C: 10 dset:   1 I:   31   35  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading SST      M: 11 dset:   1 I:   31   35  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 10 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  4 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    (C09,V02 C: 10 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M: 13 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C01,V02 M: 12 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
- -DELETE SST      M: 14 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  7 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {31-,48} M: 15 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G003)          NORMAL    (AX004)   NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          ABSTRACT  (AX004)   NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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    TIME
+ allocate dynamic grid (G002)          ABSTRACT  COADSY    NORMAL    TIME
+ allocate dynamic grid (G002)          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
+ doing sampling tpry on I axis:        1        7 dset:   1
+ eval    (C09,V02 C: 10 dset:   1 I:     31     35  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading SST      M: 11 dset:   1 I:     31     35  J:   48   48  K: -999 -999  L:      1      1
+ eval    (C09,V02 C: 10 dset:   1 I:     37     37  J:   48   48  K: -999 -999  L:      1      1
+ reading SST      M:  4 dset:   1 I:     37     37  J:   48   48  K: -999 -999  L:      1      1
+ eval    (C09,V02 C: 10 dset:   1 I:     44     48  J:   48   48  K: -999 -999  L:      1      1
+ reading SST      M: 13 dset:   1 I:     44     48  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE (C01,V02 M: 12 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:      7      7  M: -999 -999  N: -999 -999
+ -DELETE SST      M: 14 dset:   1 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  7 dset:   1 I:      1      7  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE {31,...} M: 15 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
              FILENAME : coads_climatology.cdf
              SUBSET   : 7 points (X)
@@ -26134,17 +25939,17 @@ list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
  
 ! test cache hits
 list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48}) !   <-- CACHE HIT FAILS!!!
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V02 C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {31-,48} M: 15 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     7 dset:   1
- found   (C09,V02 M:  8 dset:   1 I:   31   35  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   (C09,V02 M:  3 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   (C09,V02 M: 16 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE (C01,V02 M: 12 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  7 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 10 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {31-,48} M: 15 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ doing sampling tpry on I axis:        1        7 dset:   1
+ found   (C09,V02 M:  8 dset:   1 I:     31     35  J:   48   48  K: -999 -999  L:      1      1
+ found   (C09,V02 M:  3 dset:   1 I:     37     37  J:   48   48  K: -999 -999  L:      1      1
+ found   (C09,V02 M: 16 dset:   1 I:     44     48  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE (C01,V02 M: 12 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:      7      7  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  7 dset:   1 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 10 dset:   1 I:      1      7  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE {31,...} M: 15 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
              FILENAME : coads_climatology.cdf
              SUBSET   : 7 points (X)
@@ -26164,18 +25969,18 @@ let a = SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
 load a
 set mode diagnostic
 list a 			!   <-- CACHE HIT FAILS!!!
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V01 C:  8 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {31-,48} M:  3 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     7 dset:   1
- found   (C09,V01 M:  8 dset:   1 I:   31   35  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   (C09,V01 M: 15 dset:   1 I:   37   37  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   (C09,V01 M: 10 dset:   1 I:   44   48  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE          M: 12 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L:    7    7  M: -999 -999  N: -999 -999
- -DELETE          M: 16 dset:   1 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  2 dset:   1 I:    1    7  J:   48   48  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE {31-,48} M:  3 dset:   0 I:    1    7  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V01 C:  8 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ const_v {31,...} M:  3 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing sampling tpry on I axis:        1        7 dset:   1
+ found   (C09,V01 M:  8 dset:   1 I:     31     35  J:   48   48  K: -999 -999  L:      1      1
+ found   (C09,V01 M: 15 dset:   1 I:     37     37  J:   48   48  K: -999 -999  L:      1      1
+ found   (C09,V01 M: 10 dset:   1 I:     44     48  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE          M: 12 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:      7      7  M: -999 -999  N: -999 -999
+ -DELETE          M: 16 dset:   1 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  2 dset:   1 I:      1      7  J:   48   48  K: -999 -999  L:      1      1
+ -DELETE {31,...} M:  3 dset:   0 I:      1      7  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : SAMPLEI(SST[L=1,Y=5N],{31,33,35,37,44,46,48})
              FILENAME : coads_climatology.cdf
              SUBSET   : 7 points (X)
@@ -26193,16 +25998,12 @@ list a 			!   <-- CACHE HIT FAILS!!!
 set mode/last diagnostic
  
 SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 12800
- 
-            number of free memory blocks: 1990
-            largest free region: 1990
-            number of free regions: 1
-            free memory table slots: 490
-            number of UN-CACHED variables: 0
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 38 words
+    Current cache: 50 words
+    Total table slots: 500
+    Free table slots: 490
+    Un-cached variables: 0
  
 ! test SAMPLEJ
 let/quiet a = sst + Z[z=0:500:5]
@@ -26524,8 +26325,6 @@ show grid xytvar
  YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
  TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
- normal    E
- normal    F
 list xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -26550,8 +26349,6 @@ show grid xytvar
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
- normal    E
- normal    F
 list xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -26576,8 +26373,6 @@ show grid xytvar
  YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
  XLON      T (degrees_east)    40mr   141                  180                 full
- normal    E
- normal    F
 list xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -26602,8 +26397,6 @@ show grid xytvar
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  YLAT      T (degrees_north)   30 r   1                    30                  full
- normal    E
- normal    F
 list xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -26629,8 +26422,6 @@ show grid xytvar
  XLON      Y (degrees_east)    40mr   141                  180                 full
  YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
- normal    E
- normal    F
 list/k=1:2 xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -26656,8 +26447,6 @@ show grid xytvar
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  YLAT      T (degrees_north)   30 r   1                    30                  full
- normal    E
- normal    F
 list xytvar
              VARIABLE : L*1000 + J*10 + I
              FILENAME : bn_strides.cdf
@@ -26683,8 +26472,6 @@ show grid xytvar
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  YLAT      T (degrees_north)   30 r   1                    30                  full
- normal    E
- normal    F
 show grid var
     GRID GPC1
  name       axis              # pts   start                end                 subset
@@ -26692,8 +26479,6 @@ show grid var
  XAX1_4    Y                    4 r   1                    4                   full
  YAX1_3    Z                    3 r   1                    3                   full
  ZAX1_2    T                    2 r   1                    2                   full
- normal    E
- normal    F
 canc data/all
  
 ! * * * * * STRIDES * * * * *
@@ -26704,28 +26489,28 @@ cancel memory/all
 SHOW DATA
      currently SET data sets:
     1> ./bn_strides.cdf  (default)
- name     title                             I         J         K         L         M         N
- VAR      L*1000 + K*100 + J*10 + I        1:4       1:3       1:2       1:1       ...       ...
- MIDVAR   VAR                              1:9       1:8       1:7       1:6       ...       ...
- BIGVAR   VAR                              1:40      1:30      1:20      1:10      ...       ...
+ name     title                             I         J         K         L
+ VAR      L*1000 + K*100 + J*10 + I        1:4       1:3       1:2       1:1
+ MIDVAR   VAR                              1:9       1:8       1:7       1:6
+ BIGVAR   VAR                              1:40      1:30      1:20      1:10
  UNEVENVAR
-          L*1000 + K*100 + J[GY=YUNEVEN]*  1:10      1:8       1:6       1:4       ...       ...
- XYTVAR   L*1000 + J*10 + I                1:40      1:30      ...       1:20      ...       ...
+          L*1000 + K*100 + J[GY=YUNEVEN]*  1:10      1:8       1:6       1:4
+ XYTVAR   L*1000 + J*10 + I                1:40      1:30      ...       1:20
  
  
 ! 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    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 (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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:  2 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  1 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -26744,10 +26529,10 @@ 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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- found   VAR      M:  2 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -26767,22 +26552,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    NORMAL    NORMAL
- -DELETE VAR      M:  2 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  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 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX021)   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
+ 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
- rdstride VAR      C:  9 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:  1 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  2 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : VAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
@@ -26798,8 +26583,8 @@ list a
  2   / 2:  1222.  1224.
  3   / 3:  1232.  1234.
 list a		! from cache ...
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- found   A        M:  2 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
+ found   A        M:  2 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
              VARIABLE : VAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 by 3 by 2 points (X-Y-Z)
@@ -26817,27 +26602,27 @@ list a		! from cache ...
  
 ! cache hit from full region cache -- bypass use of strides
 cancel memory/all
- -DELETE VAR      M:  1 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:  2 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -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    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 GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- reading VAR      M:  2 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX020)   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
+ reading VAR      M:  2 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
 LIST VAR[i=2:4:2]
- dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    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 (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:  3 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  1 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -26854,18 +26639,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    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 (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX020)   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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  1 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -26880,26 +26665,26 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.  1214.
  3   / 2:  1232.  1234.
 CANC MEM/ALL
- -DELETE VAR      M:  2 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  3 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:  2 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
+ -DELETE VAR      M:  3 dset:   1 I:      1      2  J:    1    3  K:    1    2  L:      1      1
+ -DELETE VAR      M:  4 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
  
 ! 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    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 (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX020)   (AX022)   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
+ 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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX021)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -26914,24 +26699,24 @@ LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
  7    / 3:  1113.
  10   / 4:  1112.
 cancel axis/modulo XAX1_4
- -DELETE VAR      M:  2 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  3 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  4 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M:  2 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
+ -DELETE VAR      M:  3 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
+ -DELETE VAR      M:  4 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  
 ! 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    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 (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX021)   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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:  3 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  4 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -26946,19 +26731,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    NORMAL    NORMAL
- -DELETE VAR      M:  3 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  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 (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX020)   (AX022)   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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  3 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX020)   (AX021)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -26975,24 +26760,24 @@ 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    NORMAL    NORMAL
- -DELETE VAR      M:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  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 GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX020)   (AX021)   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
  
 ! averaging causes bypass of strides
 LIST VAR[i=2:4:2 at ave]
- dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    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 (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
+ 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
- reading VAR      M:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- regrid  VAR      M:  3 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X at AVE
              FILENAME : bn_strides.cdf
@@ -27011,25 +26796,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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- -DELETE VAR      M:  3 dset:   1 I:    1    2  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX020)   YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid (G006)          (AX020)   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   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10   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 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    3    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- rdstride BIGVAR   C: 10 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  2 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  3 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -27041,26 +26826,26 @@ list/j=1/k=1/l=1 a[i=3:5]
  11   / 3:  1121.
  16   / 4:  1126.
  21   / 5:  1131.
- -DELETE A        M:  1 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -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   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 (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX021)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- eval    A        C:  8 dset:   1 I:    3    5  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- rdstride BIGVAR   C: 11 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  5 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  1 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- regrid  A        M:  6 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX021)   (AX022)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27077,13 +26862,13 @@ 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   NORMAL    NORMAL
- -DELETE A        M:  6 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  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 GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX021)   (AX022)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading UNE-NVAR M:  6 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
+ reading UNE-NVAR M:  6 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
              FILENAME : bn_strides.cdf
              SUBSET   : 4 points (X)
@@ -27094,28 +26879,28 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR
             1      2      3      4
           1111.  1112.  1113.  1114.
 cancel mem/all
- -DELETE A        M:  1 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  2 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M:  3 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  5 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  6 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:  1 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
+ -DELETE BIGVAR   M:  2 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
+ -DELETE A        M:  3 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
+ -DELETE VAR      M:  4 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:      1      1
+ -DELETE BIGVAR   M:  5 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
+ -DELETE UNE-NVAR M:  6 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  
 ! basic strides
 LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    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 (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M:  5 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  6 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27130,10 +26915,10 @@ LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
 ! cache hit after changes to COMPLETE_MISSING_LIMS and FLESH_OUT_AXIS
 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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- found   UNE-NVAR M:  5 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27147,25 +26932,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M:  5 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX021)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX020)   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
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    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 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C: 10 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M:  6 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  5 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : UNEVENVAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 points (X)
@@ -27177,8 +26962,8 @@ list/order=x/j=1/k=1/l=1 a
           1112.  1114.
 list/order=x/j=1/k=1/l=1 a		! from cache ...
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- found   A        M:  5 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
+ found   A        M:  5 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
              VARIABLE : UNEVENVAR[I=2:4:2]
              FILENAME : bn_strides.cdf
              SUBSET   : 2 points (X)
@@ -27191,29 +26976,29 @@ list/order=x/j=1/k=1/l=1 a		! from cache ...
  
 ! cache hit from full region cache -- bypass use of strides
 cancel memory/all
- -DELETE A        M:  5 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  6 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -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    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 GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX020)   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
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- reading UNE-NVAR M:  6 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
+ reading UNE-NVAR M:  6 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
 LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
- dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    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 (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M:  4 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  5 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27226,19 +27011,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    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 (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX020)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M:  3 dset:   1 I:    1    2  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  5 dset:   1 I:    2    4  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
  doing limits reconciliation on Y axis: UNEVENVAR
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
@@ -27251,28 +27036,28 @@ LIST/j=1/k=1/l=1 UNEVENVAR[i=2:4:2,j=1:5:2]
               1
  0.3  / 1:  1112.
  0.6  / 2:  1114.
- -DELETE UNE-NVAR M:  5 dset:   1 I:    1    1  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M:  5 dset:   1 I:      1      1  J:    1    2  K:    1    1  L:      1      1
 CANC MEM/ALL
- -DELETE UNE-NVAR M:  3 dset:   1 I:    1    2  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  4 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  6 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M:  3 dset:   1 I:      1      2  J:    1    3  K:    1    1  L:      1      1
+ -DELETE UNE-NVAR M:  4 dset:   1 I:      1      2  J:    1    1  K:    1    1  L:      1      1
+ -DELETE UNE-NVAR M:  6 dset:   1 I:      1      4  J:    1    3  K:    1    1  L:      1      1
  
 ! 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    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 (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX020)   (AX022)   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
+ 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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27284,25 +27069,25 @@ LIST/order=x UNEVENVAR[I=1:30:7,j=1,k=1,l=1]    ! 1, 8, 15(5), 22(2)
             1      2      3      4      5
           1111.  1118.  1115.  1112.  1119.
 cancel axis/modulo XUNEVEN
- -DELETE UNE-NVAR M:  3 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  4 dset:   1 I:    1   29  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  6 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE UNE-NVAR M:  3 dset:   1 I:      1      5  J:    1    1  K:    1    1  L:      1      1
+ -DELETE UNE-NVAR M:  4 dset:   1 I:      1     29  J:    1    1  K:    1    1  L:      1      1
+ -DELETE UNE-NVAR M:  6 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
  
 ! 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    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 (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX021)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M:  4 dset:   1 I:    1    2  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  6 dset:   1 I:    2    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX020)   (AX022)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
              FILENAME : bn_strides.cdf
@@ -27314,20 +27099,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M:  4 dset:   1 I:    1    2  J:    1    2  K:    1    1  L:    1    1  M: -999 -999  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 (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX020)   (AX022)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    6  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M:  6 dset:   1 I:    1    3  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  4 dset:   1 I:    2    6  J:    1    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX021)   (AX023)   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X, on Y
              FILENAME : bn_strides.cdf
@@ -27342,19 +27127,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M:  6 dset:   1 I:    1    3  J:    1    3  K:    1    1  L:    1    1  M: -999 -999  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 (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX021)   (AX023)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- reading UNE-NVAR M:  6 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- regrid  UNE-NVAR M:  4 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X at AVE
              FILENAME : bn_strides.cdf
@@ -27369,20 +27154,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M:  4 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  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 (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX021)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M:  3 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  4 dset:   1 I:    2    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX023)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -27399,19 +27184,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M:  3 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  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 (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX023)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- reading UNE-NVAR M:  3 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- regrid  UNE-NVAR M:  4 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX021)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X at AVE
              FILENAME : bn_strides.cdf
@@ -27434,19 +27219,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M:  4 dset:   1 I:    1    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  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 (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX021)   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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  5 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  4 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX023)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27463,19 +27248,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   NORMAL    NORMAL
- -DELETE BIGVAR   M:  5 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  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 (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX023)   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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  4 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  5 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          XAX1_40   (AX021)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27492,19 +27277,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   NORMAL    NORMAL
- -DELETE BIGVAR   M:  4 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  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 (G007)          (AX023)   (AX022)   (AX024)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          XAX1_40   (AX021)   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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  4 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX023)   (AX022)   (AX024)   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -27521,26 +27306,26 @@ 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   NORMAL    NORMAL
- -DELETE BIGVAR   M:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX020)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX023)   (AX022)   (AX024)   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
  canceling dset ./bn_strides.cdf
- -DELETE UNE-NVAR M:  3 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M:  6 dset:   1 I:    1    9  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -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
  
 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   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10   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 (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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  3 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  6 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   YAX1_30   XAX1_40   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27557,19 +27342,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   NORMAL    NORMAL
- -DELETE BIGVAR   M:  3 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  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 (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  6 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  3 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          ZAX1_20   (AX020)   XAX1_40   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27586,19 +27371,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   NORMAL    NORMAL
- -DELETE BIGVAR   M:  6 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  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 (G006)          (AX024)   (AX022)   (AX023)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ZAX1_20   (AX020)   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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  6 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -27615,23 +27400,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   NORMAL    NORMAL
- -DELETE BIGVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   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   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10   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 (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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  6 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  3 dset:   1 I:    3    9  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   XAX1_40   YAX1_30   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -27648,19 +27433,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   NORMAL    NORMAL
- -DELETE BIGVAR   M:  6 dset:   1 I:    1    4  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  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 (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX022)   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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  3 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  6 dset:   1 I:    3    6  J:    2    6  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          ZAX1_20   (AX023)   YAX1_30   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -27677,19 +27462,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   NORMAL    NORMAL
- -DELETE BIGVAR   M:  3 dset:   1 I:    3    6  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  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 (G006)          (AX022)   (AX024)   (AX020)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          ZAX1_20   (AX023)   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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M:  3 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -27706,8 +27491,8 @@ 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   NORMAL    NORMAL
- -DELETE BIGVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   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
  
 ! now with xytvar
@@ -27715,29 +27500,27 @@ cancel region
 set region/i=1:4/j=1:3/l=1:2
 use bn_strides
 show grid xytvar
- 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 GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ 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 GPC5            XLON      YLAT      NORMAL    TTIME
     GRID GPC5
  name       axis              # pts   start                end                 subset
  XLON      LONGITUDE           40mr   141E                 180E                full
  YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
  TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
- normal    E
- normal    F
 list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     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 (G006)          (AX024)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ 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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
              FILENAME : bn_strides.cdf
@@ -27753,19 +27536,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     NORMAL    NORMAL
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G006)          XLON      (AX020)   NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XLON      (AX020)   NORMAL    TTIME     NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -27781,19 +27564,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     NORMAL    NORMAL
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          XLON      (AX020)   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)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -27809,35 +27592,33 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
+ -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
 use/order=yx bn_strides
 show grid xytvar
- 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 GPC5            YLAT      XLON      NORMAL    TTIME     NORMAL    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 GPC5            YLAT      XLON      NORMAL    TTIME
     GRID GPC5
  name       axis              # pts   start                end                 subset
  YLAT      X (degrees_north)   30 r   1                    30                  full
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
- normal    E
- normal    F
 list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            YLAT      XLON      NORMAL    TTIME     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 (G006)          (AX022)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ 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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    TTIME     NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X
              FILENAME : bn_strides.cdf
@@ -27853,19 +27634,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     NORMAL    NORMAL
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G006)          YLAT      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- dealloc  dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- allocate dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX022)   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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          YLAT      (AX023)   NORMAL    TTIME     NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -27881,19 +27662,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     NORMAL    NORMAL
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          YLAT      (AX023)   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)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -27909,35 +27690,33 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
+ -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
 use/order=tyx bn_strides
 show grid xytvar
- 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 GPC5            TTIME     YLAT      NORMAL    XLON      NORMAL    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 GPC5            TTIME     YLAT      NORMAL    XLON
     GRID GPC5
  name       axis              # pts   start                end                 subset
  TTIME     X (DAYS)            20 r   34319                34338               full
  YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
  XLON      T (degrees_east)    40mr   141                  180                 full
- normal    E
- normal    F
 list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            TTIME     YLAT      NORMAL    XLON      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 (G006)          (AX024)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ 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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   YLAT      NORMAL    XLON      NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -27953,19 +27732,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      NORMAL    NORMAL
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G006)          TTIME     (AX020)   NORMAL    XLON      NORMAL    NORMAL
- dealloc  dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON      NORMAL    NORMAL
- allocate dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON      NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          TTIME     (AX020)   NORMAL    XLON      NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -27981,19 +27760,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      NORMAL    NORMAL
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          TTIME     (AX020)   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)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
              FILENAME : bn_strides.cdf
@@ -28009,35 +27788,33 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX022)   NORMAL    (AX023)
+ -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
 use/order=txy bn_strides
 show grid xytvar
- 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 GPC5            TTIME     XLON      NORMAL    YLAT      NORMAL    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 GPC5            TTIME     XLON      NORMAL    YLAT
     GRID GPC5
  name       axis              # pts   start                end                 subset
  TTIME     X (DAYS)            20 r   34319                34338               full
  XLON      Y (degrees_east)    40mr   141                  180                 full
  normal    Z
  YLAT      T (degrees_north)   30 r   1                    30                  full
- normal    E
- normal    F
 list xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            TTIME     XLON      NORMAL    YLAT      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 (G006)          (AX022)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ 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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    7  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   XLON      NORMAL    YLAT      NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28053,19 +27830,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      NORMAL    NORMAL
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G006)          TTIME     (AX023)   NORMAL    YLAT      NORMAL    NORMAL
- dealloc  dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT      NORMAL    NORMAL
- allocate dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT      NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX022)   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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    2    6  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          TTIME     (AX023)   NORMAL    YLAT      NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28081,19 +27858,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      NORMAL    NORMAL
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  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 (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          TTIME     (AX023)   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)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on T
              FILENAME : bn_strides.cdf
@@ -28109,37 +27886,35 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   NORMAL    (AX020)
+ -DELETE XYTVAR   M:  6 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
 ! map into Z instead of T
 use/order=zxy bn_strides
 show grid xytvar
- 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 GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    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 GPC5            TTIME     XLON      YLAT      NORMAL
     GRID GPC5
  name       axis              # pts   start                end                 subset
  TTIME     X (DAYS)            20 r   34319                34338               full
  XLON      Y (degrees_east)    40mr   141                  180                 full
  YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
- normal    E
- normal    F
 list/k=1:2 xytvar[i=1:7:2]
- dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      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 (G006)          (AX024)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ 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
- rdstride XYTVAR   C:  8 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   XLON      YLAT      NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X
              FILENAME : bn_strides.cdf
@@ -28155,20 +27930,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    NORMAL    NORMAL
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  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 (G006)          TTIME     (AX020)   YLAT      NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX024)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL    NORMAL    NORMAL
+ 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
- rdstride XYTVAR   C:  8 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    2    6  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          TTIME     (AX020)   YLAT      NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on Y
              FILENAME : bn_strides.cdf
@@ -28184,19 +27959,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    NORMAL    NORMAL
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  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 (G006)          (AX024)   (AX022)   (AX023)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          TTIME     (AX020)   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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M:  6 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -28212,8 +27987,8 @@ 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    NORMAL    NORMAL
- -DELETE XYTVAR   M:  3 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   NORMAL
+ -DELETE XYTVAR   M:  3 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  canceling dset ./bn_strides.cdf
  
  
@@ -28236,17 +28011,17 @@ cancel region; set region/l=1
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    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 (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
+ allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28261,26 +28036,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    NORMAL    NORMAL
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6    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 (G006)          (AX024)   (AX022)   (AX023)   TAX1_6
+ dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6
+ allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   TAX1_6    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28295,26 +28070,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    NORMAL    NORMAL
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    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 (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6
+ allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   TAX1_6    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28329,24 +28104,24 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   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
  
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    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 (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
+ dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
+ allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:  3 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28361,27 +28136,27 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M:  3 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   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
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    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 (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
+ allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:  3 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28396,24 +28171,24 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M:  3 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   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
  
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    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 (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
+ dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7
+ allocate dynamic grid (G006)          (AX024)   (AX022)   (AX023)   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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28428,26 +28203,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    NORMAL    NORMAL
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX022)   (AX023)   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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    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 (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7
+ allocate dynamic grid (G006)          (AX022)   (AX024)   (AX020)   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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M:  3 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -28462,8 +28237,8 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M:  6 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX022)   (AX024)   (AX020)   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
@@ -28477,31 +28252,31 @@ use non_COARDS
 show data
      currently SET data sets:
     1> ./non_COARDS.cdf  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  UNORDERED_AXIS
-          disordered axis                  1:5       ...       ...       ...       ...       ...
+          disordered axis                  1:5       ...       ...       ...
        (invalid coordinate axis)
  GAPPY_AXIS
-          gappy axis                       1:5       ...       ...       ...       ...       ...
+          gappy axis                       1:5       ...       ...       ...
        (invalid coordinate axis)
  SCALAR_VAR
-          a good way to encode model parm  1:1       ...       ...       ...       ...       ...
+          a good way to encode model parm  1:1       ...       ...       ...
  TRUE_SCALAR
-          with no dims at all              ...       ...       ...       ...       ...       ...
+          with no dims at all              ...       ...       ...       ...
  MASKED_SST
-          SST * MP_MASK                    1:180     1:90      ...       1:1       ...       ...
- COADSX   Longitude page positions         1:180     1:90      ...       ...       ...       ...
- COADSY   Latitude page positions          1:180     1:90      ...       ...       ...       ...
+          SST * MP_MASK                    1:180     1:90      ...       1:1
+ COADSX   Longitude page positions         1:180     1:90      ...       ...
+ COADSY   Latitude page positions          1:180     1:90      ...       ...
  HAS_NO_AXIS
-          variable with no axis            1:5       ...       ...       ...       ...       ...
+          variable with no axis            1:5       ...       ...       ...
  HAS_UNORDERED_AXIS
-          variable with disordered axis    1:5       ...       ...       ...       ...       ...
+          variable with disordered axis    1:5       ...       ...       ...
  HAS_GAPPY_AXIS
-          variable with gappy axis         1:5       ...       ...       ...       ...       ...
+          variable with gappy axis         1:5       ...       ...       ...
  HAS_BACKWARDS_AXIS
-          variable with backwards axis     1:5       ...       ...       ...       ...       ...
+          variable with backwards axis     1:5       ...       ...       ...
  USES_BIG_IRREG
-          variable defined on too-long ir  ...       ...       ...       1:200000  ...       ...
+          variable defined on too-long ir  ...       ...       ...       1:200000
  
 show grid/x HAS_NO_AXIS
     GRID GAB7
@@ -28510,8 +28285,6 @@ show grid/x HAS_NO_AXIS
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -28526,8 +28299,6 @@ show grid/x HAS_UNORDERED_AXIS
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -28542,8 +28313,6 @@ show grid/x HAS_GAPPY_AXIS
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -28558,8 +28327,6 @@ show grid/x HAS_BACKWARDS_AXIS
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -28574,8 +28341,6 @@ show grid/x SCALAR_VAR
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -28587,8 +28352,6 @@ show grid/i=1:5 USES_BIG_IRREG
  normal    Y
  normal    Z
  BIG_IRREG T (hours)       200000 i   1                    200000              full
- normal    E
- normal    F
  
 show grid MASKED_SST
     GRID GAB5
@@ -28597,8 +28360,6 @@ show grid MASKED_SST
  COADSY    LATITUDE            90 r   1N                   90N                 full
  normal    Z
  TIME      TIME                 1mr   16-JAN 06:00         16-JAN 06:00        full
- normal    E
- normal    F
 show grid COADSX
     GRID GAB6
  name       axis              # pts   start                end                 subset
@@ -28606,8 +28367,6 @@ show grid COADSX
  COADSY    LATITUDE            90 r   1N                   90N                 full
  normal    Z
  normal    T
- normal    E
- normal    F
 show grid COADSY
     GRID GAB6
  name       axis              # pts   start                end                 subset
@@ -28615,37 +28374,35 @@ show grid COADSY
  COADSY    LATITUDE            90 r   1N                   90N                 full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 show data
      currently SET data sets:
     1> ./non_COARDS.cdf  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  UNORDERED_AXIS
-          disordered axis                  1:5       ...       ...       ...       ...       ...
+          disordered axis                  1:5       ...       ...       ...
        (invalid coordinate axis)
  GAPPY_AXIS
-          gappy axis                       1:5       ...       ...       ...       ...       ...
+          gappy axis                       1:5       ...       ...       ...
        (invalid coordinate axis)
  SCALAR_VAR
-          a good way to encode model parm  1:1       ...       ...       ...       ...       ...
+          a good way to encode model parm  1:1       ...       ...       ...
  TRUE_SCALAR
-          with no dims at all              ...       ...       ...       ...       ...       ...
+          with no dims at all              ...       ...       ...       ...
  MASKED_SST
-          SST * MP_MASK                    1:180     1:90      ...       1:1       ...       ...
- COADSX   Longitude page positions         1:180     1:90      ...       ...       ...       ...
- COADSY   Latitude page positions          1:180     1:90      ...       ...       ...       ...
+          SST * MP_MASK                    1:180     1:90      ...       1:1
+ COADSX   Longitude page positions         1:180     1:90      ...       ...
+ COADSY   Latitude page positions          1:180     1:90      ...       ...
  HAS_NO_AXIS
-          variable with no axis            1:5       ...       ...       ...       ...       ...
+          variable with no axis            1:5       ...       ...       ...
  HAS_UNORDERED_AXIS
-          variable with disordered axis    1:5       ...       ...       ...       ...       ...
+          variable with disordered axis    1:5       ...       ...       ...
  HAS_GAPPY_AXIS
-          variable with gappy axis         1:5       ...       ...       ...       ...       ...
+          variable with gappy axis         1:5       ...       ...       ...
  HAS_BACKWARDS_AXIS
-          variable with backwards axis     1:5       ...       ...       ...       ...       ...
+          variable with backwards axis     1:5       ...       ...       ...
  USES_BIG_IRREG
-          variable defined on too-long ir  ...       ...       ...       1:200000  ...       ...
+          variable defined on too-long ir  ...       ...       ...       1:200000
  
 list UNORDERED_AXIS
              VARIABLE : disordered axis
@@ -28712,10 +28469,10 @@ GO bn_cache_hits.sub sst
  
 stat $1
  !-> stat sst
- getgrid EX#1     C:  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      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- reading SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ reading SST      M:  1 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              LONGITUDE: 20E to 20E(380)
@@ -28733,21 +28490,21 @@ stat $1
  Mean    value: 16.52 (unweighted average)
  Standard deviation: 10.139
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  2 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  2 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1
  !-> stat sst
- -DELETE I        M:  2 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:  1 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              LONGITUDE: 20E to 20E(380)
@@ -28768,17 +28525,17 @@ stat $1
 define axis/x=130e:80w:1 xtrop
 stat $1[gx=xtrop]
  !-> stat sst[gx=xtrop]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
+ 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
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M:  2 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28797,28 +28554,28 @@ stat $1[gx=xtrop]
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST      M:  2 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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
+ dealloc  dynamic grid (G002)          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
- 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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  2 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  2 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[gx=xtrop]
  !-> stat sst[gx=xtrop]
- -DELETE I        M:  2 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ -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
+ 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
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M:  2 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28841,21 +28598,21 @@ let $1x = $1[gx=xtrop]
  !-> DEFINE VARIABLE sstx = sst[gx=xtrop]
 stat $1x
  !-> stat sstx
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST      M:  2 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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 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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTX     C:  6 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
+ 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
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST      M:  2 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
  
              SST[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -28873,21 +28630,21 @@ stat $1x
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      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
+ dealloc  dynamic grid (G002)          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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  4 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  4 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1x
  !-> stat sstx
- -DELETE I        M:  4 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SSTX     M:  3 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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
+ 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
  
              SST[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -28908,15 +28665,15 @@ stat $1x
 define grid/x=xtrop gx
 stat $1[g=gx]
  !-> stat sst[g=gx]
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- found   SST      M:  2 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
+ 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
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28935,25 +28692,25 @@ stat $1[g=gx]
  Mean    value: 17.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      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
+ dealloc  dynamic grid (G002)          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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  4 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  4 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[g=gx]
  !-> stat sst[g=gx]
- -DELETE I        M:  4 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- found   SST      M:  2 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ -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
+ 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
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X
@@ -28975,18 +28732,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      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      NORMAL    NORMAL
- dealloc  dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
+ 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
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X, 1 deg on Y
@@ -29005,29 +28762,29 @@ 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      NORMAL    NORMAL
- -DELETE SST      M:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  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
+ dealloc  dynamic grid (G003)          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
- 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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  4 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  4 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[gx=xtrop,gy=ytrop]
  !-> stat sst[gx=xtrop,gy=ytrop]
- -DELETE I        M:  4 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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      NORMAL    NORMAL
- dealloc  dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
+ -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
+ 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
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G003)          XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
+ 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
  
              SEA SURFACE TEMPERATURE
              regrid: 1 deg on X, 1 deg on Y
@@ -29048,19 +28805,19 @@ 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      NORMAL    NORMAL
- -DELETE SST      M:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- 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      NORMAL    NORMAL
+ dealloc  dynamic grid (G003)          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
 stat $1[g=gxyt]
  !-> stat sst[g=gxyt]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  strip regrid on X: SST --> GXYT             @LIN
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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  M: -999 -999  N: -999 -999
+ regrid  SST      M:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              regrid: GXYT
@@ -29079,24 +28836,24 @@ stat $1[g=gxyt]
  Mean    value: 26.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST      M:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  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
+ 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
+ getgrid 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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  4 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  4 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[g=gxyt]
  !-> stat sst[g=gxyt]
- -DELETE I        M:  4 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  strip regrid on X: SST --> GXYT             @LIN
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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  M: -999 -999  N: -999 -999
+ regrid  SST      M:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              regrid: GXYT
@@ -29119,16 +28876,16 @@ let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sstxyt = sst[g=gxyt]
 stat $1xyt
  !-> stat sstxyt
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST      M:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  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 SSTXYT   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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXYT   C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ getgrid 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 SSTXYT   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:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ eval    SSTXYT   C:  6 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  strip regrid on X: SST --> GXYT             @LIN
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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  M: -999 -999  N: -999 -999
+ regrid  SST      M:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29146,20 +28903,20 @@ stat $1xyt
  Mean    value: 26.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  6 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  6 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xyt
  !-> stat sstxyt
- -DELETE I        M:  6 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SSTXYT   M:  5 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M:  6 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SSTXYT   M:  5 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29179,23 +28936,23 @@ stat $1xyt
  
 let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sstxyt = sst[g=gxyt]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- -DELETE SSTXYT   M:  5 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST      M:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SSTX     M:  3 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST      M:  2 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME
+ -DELETE SSTXYT   M:  5 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ 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
+ -DELETE SST      M:  2 dset:   1 I:      1    151  J:    1   90  K: -999 -999  L:      1      1
 stat $1xyt
  !-> stat sstxyt
- getgrid 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 SSTXYT   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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXYT   C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  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 SSTXYT   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:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ eval    SSTXYT   C:  6 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  strip regrid on X: SST --> GXYT             @LIN
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ found   SST      M:  1 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid XY
- regrid  SST      M:  2 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST      M:  2 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29213,20 +28970,20 @@ stat $1xyt
  Mean    value: 26.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  4 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  4 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xyt
  !-> stat sstxyt
- -DELETE I        M:  4 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SSTXYT   M:  3 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SSTXYT   M:  3 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29246,13 +29003,14 @@ stat $1xyt
  
 stat $1[x=@ave]
  !-> stat sst[x=@ave]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  strip --> SST[X=20E:20E(380)@AVE,D=1]
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ found   SST      M:  1 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  doing --> SST[X=20E:20E(380)@AVE,D=1]
+ final --> SST[X=20E:20E(380)@AVE,D=1]
  
              SEA SURFACE TEMPERATURE
              LONGITUDE: 20E to 20E(380) (averaged)
@@ -29270,21 +29028,21 @@ stat $1[x=@ave]
  Mean    value: 14.429 (unweighted average)
  Standard deviation: 10.445
 CONFUSE	
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  5 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  5 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[x=@ave]
  !-> stat sst[x=@ave]
- -DELETE I        M:  5 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST      M:  4 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M:  5 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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:  4 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              LONGITUDE: 20E to 20E(380) (averaged)
@@ -29306,14 +29064,14 @@ let $1xave = $1[x=@ave]
  !-> DEFINE VARIABLE sstxave = sst[x=@ave]
 stat $1xave
  !-> stat sstxave
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 SSTXAVE  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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTXAVE  C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST      M:  4 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ getgrid SSTXAVE  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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ eval    SSTXAVE  C:  6 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:  4 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SST[X=@AVE]
              LONGITUDE: 20E to 20E(380)
@@ -29331,21 +29089,21 @@ stat $1xave
  Mean    value: 14.429 (unweighted average)
  Standard deviation: 10.445
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  6 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  6 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xave
  !-> stat sstxave
- -DELETE I        M:  6 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SSTXAVE  M:  5 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M:  6 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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SSTXAVE  M:  5 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SST[X=@AVE]
              LONGITUDE: 20E to 20E(380)
@@ -29365,14 +29123,14 @@ stat $1xave
  
 stat $1[x=@sbx]
  !-> stat sst[x=@sbx]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  strip --> SST[X=20E:20E(380)@SBX:3,D=1]
- strip moduloing SST on X axis:     0   181 dset:   1
- found   SST      M:  1 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing SST on X axis:     1   180 dset:   1
+ strip moduloing SST on X axis:        0      181 dset:   1
+ found   SST      M:  1 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ doing moduloing SST on X axis:        1      180 dset:   1
  doing --> SST[X=20E:20E(380)@SBX:3,D=1]
  
              SEA SURFACE TEMPERATURE
@@ -29392,21 +29150,21 @@ stat $1[x=@sbx]
  Mean    value: 16.633 (unweighted average)
  Standard deviation: 10.112
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  8 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  8 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[x=@sbx]
  !-> stat sst[x=@sbx]
- -DELETE I        M:  8 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST      M:  7 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M:  8 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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:  7 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SEA SURFACE TEMPERATURE
              box smoothed by 3 pts on X
@@ -29429,14 +29187,14 @@ let $1sbx = $1[x=@sbx]
  !-> DEFINE VARIABLE sstsbx = sst[x=@sbx]
 stat $1sbx
  !-> stat sstsbx
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 SSTSBX   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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SSTSBX   C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST      M:  7 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ getgrid SSTSBX   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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ eval    SSTSBX   C:  6 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:  7 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST[X=@SBX]
              LONGITUDE: 20E to 20E(380)
@@ -29454,21 +29212,21 @@ stat $1sbx
  Mean    value: 16.633 (unweighted average)
  Standard deviation: 10.112
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  9 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  9 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1sbx
  !-> stat sstsbx
- -DELETE I        M:  9 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SSTSBX   M:  8 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SSTSBX   M:  8 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST[X=@SBX]
              LONGITUDE: 20E to 20E(380)
@@ -29496,16 +29254,16 @@ GO bn_cache_hits.sub sst5
  
 stat $1
  !-> stat sst5
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 SST5     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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5     C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST      M:  6 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M:  9 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  9 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ getgrid SST5     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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ eval    SST5     C:  6 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:  6 dset:   1 I:      0    181  J:    1   90  K: -999 -999  L:      1      1
+ constan cnst     M:  9 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:  9 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  
              SST+5
              LONGITUDE: 20E to 20E(380)
@@ -29523,21 +29281,21 @@ stat $1
  Mean    value: 21.52 (unweighted average)
  Standard deviation: 10.139
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  9 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  9 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1
  !-> stat sst5
- -DELETE I        M:  9 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5     M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5     M: 10 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST+5
              LONGITUDE: 20E to 20E(380)
@@ -29558,17 +29316,17 @@ stat $1
 define axis/x=130e:80w:1 xtrop
 stat $1[gx=xtrop]
  !-> stat sst5[gx=xtrop]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
+ 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
- found   SST5     M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST5     M:  9 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
  
              SST+5
              regrid: 1 deg on X
@@ -29587,28 +29345,28 @@ stat $1[gx=xtrop]
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST5     M:  9 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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
+ dealloc  dynamic grid (G002)          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
- 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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  9 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  9 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[gx=xtrop]
  !-> stat sst5[gx=xtrop]
- -DELETE I        M:  9 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ -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
+ 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
- found   SST5     M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST5     M:  9 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
  
              SST+5
              regrid: 1 deg on X
@@ -29631,21 +29389,21 @@ let $1x = $1[gx=xtrop]
  !-> DEFINE VARIABLE sst5x = sst5[gx=xtrop]
 stat $1x
  !-> stat sst5x
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST5     M:  9 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  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 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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5X    C:  6 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
+ 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
- found   SST5     M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  SST5     M:  9 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ 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
  
              SST5[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -29663,21 +29421,21 @@ stat $1x
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      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
+ dealloc  dynamic grid (G002)          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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 12 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M: 12 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1x
  !-> stat sst5x
- -DELETE I        M: 12 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5X    M: 11 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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
+ 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
  
              SST5[GX=XTROP]
              LONGITUDE: 129.5E to 79.5W
@@ -29698,15 +29456,15 @@ stat $1x
 define grid/x=xtrop gx
 stat $1[g=gx]
  !-> stat sst5[g=gx]
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- found   SST5     M:  9 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          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
+ 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
+ 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
  
              SST+5
              regrid: 1 deg on X
@@ -29725,25 +29483,25 @@ stat $1[g=gx]
  Mean    value: 22.605 (unweighted average)
  Standard deviation: 9.8848
 CONFUSE
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      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
+ dealloc  dynamic grid (G002)          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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 12 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M: 12 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[g=gx]
  !-> stat sst5[g=gx]
- -DELETE I        M: 12 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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      NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- found   SST5     M:  9 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
+ -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
+ 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
+ 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
  
              SST+5
              regrid: 1 deg on X
@@ -29765,13 +29523,13 @@ 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      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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G002)          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
- found   SST5     M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ found   SST5     M: 10 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  regrid XY
- regrid  SST5     M: 12 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST5     M: 12 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST+5
              regrid: GXYT
@@ -29790,20 +29548,20 @@ stat $1[gx=xtrop,gy=ytrop]
  Mean    value: 31.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 13 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M: 13 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[gx=xtrop,gy=ytrop]
  !-> stat sst5[gx=xtrop,gy=ytrop]
- -DELETE I        M: 13 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5     M: 12 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M: 13 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5     M: 12 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST+5
              regrid: GXYT
@@ -29824,15 +29582,15 @@ stat $1[gx=xtrop,gy=ytrop]
  
 define grid/like=$1/x=xtrop/y=ytrop gxyt
  !-> define grid/like=sst5/x=xtrop/y=ytrop gxyt
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- 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      NORMAL    NORMAL
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME
+ 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
 stat $1[g=gxyt]
  !-> stat sst5[g=gxyt]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5     M: 12 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5     M: 12 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST+5
              regrid: GXYT
@@ -29851,20 +29609,20 @@ stat $1[g=gxyt]
  Mean    value: 31.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 13 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M: 13 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[g=gxyt]
  !-> stat sst5[g=gxyt]
- -DELETE I        M: 13 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5     M: 12 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M: 13 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5     M: 12 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST+5
              regrid: GXYT
@@ -29887,12 +29645,12 @@ let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sst5xyt = sst5[g=gxyt]
 stat $1xyt
  !-> stat sst5xyt
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      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 SST5XYT  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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XYT  C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5     M: 12 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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 SST5XYT  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:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ eval    SST5XYT  C:  6 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5     M: 12 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST5[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29910,20 +29668,20 @@ stat $1xyt
  Mean    value: 31.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 14 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M: 14 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xyt
  !-> stat sst5xyt
- -DELETE I        M: 14 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5XYT  M: 13 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M: 14 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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5XYT  M: 13 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST5[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29943,36 +29701,36 @@ stat $1xyt
  
 let $1xyt = $1[g=gxyt]
  !-> DEFINE VARIABLE sst5xyt = sst5[g=gxyt]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST5XYT  M: 13 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST5X    M: 11 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XTROP     COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST5     M:  9 dset:   1 I:    1  151  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 12 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SSTSBX   M:  8 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SSTXAVE  M:  5 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SSTXYT   M:  3 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME
+ -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
+ -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
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ -DELETE SSTSBX   M:  8 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ -DELETE SSTXAVE  M:  5 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ -DELETE SSTXYT   M:  3 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME
 stat $1xyt
  !-> stat sst5xyt
- getgrid 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 SST5XYT  C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid SST5     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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XYT  C:  6 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  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 SST5XYT  C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid SST5     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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ eval    SST5XYT  C:  6 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  strip regrid on X: SST5 --> GXYT             @LIN
- eval    SST5     C:  9 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST      M:  6 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    SST5     C:  9 dset:   1 I:     55    131  J:   35   56  K: -999 -999  L:      1      1
+ found   SST      M:  6 dset:   1 I:      0    181  J:    1   90  K: -999 -999  L:      1      1
+ constan cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  regrid XY
- regrid  SST5     M:  3 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ regrid  SST5     M:  3 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST5[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -29990,20 +29748,20 @@ stat $1xyt
  Mean    value: 31.908 (unweighted average)
  Standard deviation: 1.778
 CONFUSE
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      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
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 12 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M: 12 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xyt
  !-> stat sst5xyt
- -DELETE I        M: 12 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5XYT  M:  8 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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
+ eval    EX#1     C:  4 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ found   SST5XYT  M:  8 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
  
              SST5[G=GXYT]
              LONGITUDE: 129.5E to 79.5W
@@ -30023,16 +29781,17 @@ stat $1xyt
  
 stat $1[x=@ave]
  !-> stat sst5[x=@ave]
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid GXYT            XTROP     YTROP     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
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  strip --> SST5[X=20E:20E(380)@AVE,D=1]
- eval    SST5     C:  7 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST      M:  6 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- constan cnst     M: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    SST5     C:  7 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST      M:  6 dset:   1 I:      0    181  J:    1   90  K: -999 -999  L:      1      1
+ constan cnst     M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
  doing --> SST5[X=20E:20E(380)@AVE,D=1]
+ final --> SST5[X=20E:20E(380)@AVE,D=1]
  
              SST+5
              LONGITUDE: 20E to 20E(380) (averaged)
@@ -30050,21 +29809,21 @@ stat $1[x=@ave]
  Mean    value: 19.429 (unweighted average)
  Standard deviation: 10.445
 CONFUSE	
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M:  9 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M:  9 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[x=@ave]
  !-> stat sst5[x=@ave]
- -DELETE I        M:  9 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5     M: 12 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5     M: 12 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SST+5
              LONGITUDE: 20E to 20E(380) (averaged)
@@ -30086,14 +29845,14 @@ let $1xave = $1[x=@ave]
  !-> DEFINE VARIABLE sst5xave = sst5[x=@ave]
 stat $1xave
  !-> stat sst5xave
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 SST5XAVE 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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5XAVE C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5     M: 12 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ getgrid SST5XAVE 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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ eval    SST5XAVE C:  6 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5     M: 12 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SST5[X=@AVE]
              LONGITUDE: 20E to 20E(380)
@@ -30111,21 +29870,21 @@ stat $1xave
  Mean    value: 19.429 (unweighted average)
  Standard deviation: 10.445
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 11 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M: 11 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1xave
  !-> stat sst5xave
- -DELETE I        M: 11 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5XAVE M:  9 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M: 11 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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5XAVE M:  9 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
  
              SST5[X=@AVE]
              LONGITUDE: 20E to 20E(380)
@@ -30145,14 +29904,14 @@ stat $1xave
  
 stat $1[x=@sbx]
  !-> stat sst5[x=@sbx]
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  strip --> SST5[X=20E:20E(380)@SBX:3,D=1]
- strip moduloing SST5 on X axis:     0   181 dset:   1
- found   SST5     M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- doing moduloing SST5 on X axis:     1   180 dset:   1
+ strip moduloing SST5 on X axis:        0      181 dset:   1
+ found   SST5     M: 10 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ doing moduloing SST5 on X axis:        1      180 dset:   1
  doing --> SST5[X=20E:20E(380)@SBX:3,D=1]
  
              SST+5
@@ -30172,21 +29931,21 @@ stat $1[x=@sbx]
  Mean    value: 21.633 (unweighted average)
  Standard deviation: 10.112
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 14 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M: 14 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1[x=@sbx]
  !-> stat sst5[x=@sbx]
- -DELETE I        M: 14 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5     M: 13 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M: 14 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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5     M: 13 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST+5
              box smoothed by 3 pts on X
@@ -30209,14 +29968,14 @@ let $1sbx = $1[x=@sbx]
  !-> DEFINE VARIABLE sst5sbx = sst5[x=@sbx]
 stat $1sbx
  !-> stat sst5sbx
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 SST5SBX  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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- eval    SST5SBX  C:  6 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5     M: 13 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ 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
+ getgrid SST5SBX  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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ allocate dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ eval    SST5SBX  C:  6 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5     M: 13 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST5[X=@SBX]
              LONGITUDE: 20E to 20E(380)
@@ -30234,21 +29993,21 @@ stat $1sbx
  Mean    value: 21.633 (unweighted average)
  Standard deviation: 10.112
 CONFUSE
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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
+ 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
  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
+ 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1    5  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- pseudo  I        M: 15 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1      5  J: -999 -999  K: -999 -999  L:      1      1
+ pseudo  I        M: 15 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
 stat $1sbx
  !-> stat sst5sbx
- -DELETE I        M: 15 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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 GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- found   SST5SBX  M: 14 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE I        M: 15 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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ found   SST5SBX  M: 14 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
  
              SST5[X=@SBX]
              LONGITUDE: 20E to 20E(380)
@@ -30279,24 +30038,24 @@ set mode diag
  
 let a = i[i=1:10]
 say `a,return=isize`     ! no evaluation of a required -- just context
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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 A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
+ 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
+ getgrid A        C:  7 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 A        C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 15 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pass #2 A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  I        M: 15 dset:   0 I:      1     10  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 10
 10
 list/nohead a            ! evaluate it now
- -DELETE I        M: 15 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- found   A        M: 16 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M: 15 dset:   0 I:      1     10  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
+ found   A        M: 16 dset:   0 I:      1     10  J: -999 -999  K: -999 -999  L:   -999   -999
  1    /  1:   1.00
  2    /  2:   2.00
  3    /  3:   3.00
@@ -30309,46 +30068,46 @@ list/nohead a            ! evaluate it now
  10   / 10:  10.00
  
 let a = XSEQUENCE(j[j=1:5])
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 16 dset:   0 I:    1   10  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE SST5SBX  M: 14 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST5XAVE M:  9 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST5XYT  M:  8 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME      NORMAL    NORMAL
- -DELETE SST5     M:  3 dset:   1 I:    1  151  J:    1   41  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M:  5 dset:   1 I:   55  131  J:   35   56  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 10 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 11 dset:   1 I:    0  181  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 12 dset:   1 I: -999 -999  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE SST5     M: 13 dset:   1 I:    1  180  J:    1   90  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      NORMAL    NORMAL
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE A        M: 16 dset:   0 I:      1     10  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE SST5SBX  M: 14 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ -DELETE SST5XAVE M:  9 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
+ -DELETE SST5XYT  M:  8 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GXYT            XTROP     YTROP     NORMAL    TIME
+ -DELETE SST5     M:  3 dset:   1 I:      1    151  J:    1   41  K: -999 -999  L:      1      1
+ -DELETE SST5     M:  5 dset:   1 I:     55    131  J:   35   56  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: 11 dset:   1 I:      0    181  J:    1   90  K: -999 -999  L:      1      1
+ -DELETE SST5     M: 12 dset:   1 I:   -999   -999  J:    1   90  K: -999 -999  L:      1      1
+ -DELETE SST5     M: 13 dset:   1 I:      1    180  J:    1   90  K: -999 -999  L:      1      1
+ dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME
 say `a,return=isize`     ! evaluate it now
- getgrid 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
- getgrid (C01,V11 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C11,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  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 A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C01,V11 C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C11,V11 C: 11 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 (C11,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C11,V11 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M: 13 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ pass #2 (C11,V11 C: 11 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V11 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C11,V11 C: 10 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  J        M: 13 dset:   0 I:   -999   -999  J:    1    5  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 5
 5
 list/nohead a            ! cache hit
- -DELETE J        M: 13 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- found   (C11,V11 M: 12 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE J        M: 13 dset:   0 I:   -999   -999  J:    1    5  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V11 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ found   (C11,V11 M: 12 dset:   0 I:   -999   -999  J:    1    5  K: -999 -999  L:   -999   -999
  1   / 1:  1.000
  2   / 2:  2.000
  3   / 3:  3.000
@@ -30356,51 +30115,51 @@ list/nohead a            ! cache hit
  5   / 5:  5.000
  
 let a = SAMPLEI(I[i=1:100], {8,5,3})
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C11,V11 M: 12 dset:   0 I: -999 -999  J:    1    5  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid YABSTRACT       NORMAL    ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C01,V11 M: 11 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 13 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M:  5 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M: 10 dset:   0 I:    1    5  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE (C11,V11 M: 12 dset:   0 I:   -999   -999  J:    1    5  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid YABSTRACT       NORMAL    ABSTRACT  NORMAL    NORMAL
+ -DELETE (C01,V11 M: 11 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE (C01,V11 M: 13 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE A        M:  5 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE A        M: 10 dset:   0 I:      1      5  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
 say `a,return=isize`     ! evaluate it now
- getgrid 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
- getgrid (C01,V11 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- 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
+ getgrid 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
+ getgrid (C01,V11 C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {8,5,3}  M: 10 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   0
- eval    (C09,V11 C: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 11 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 13 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE A        M:  5 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  3 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE {8,5,3}  M: 10 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ 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
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V11 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ const_v {8,5,3}  M: 10 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing sampling tpry on I axis:        1        3 dset:   0
+ eval    (C09,V11 C: 12 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  I        M: 11 dset:   0 I:      1    100  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE (C01,V11 M: 13 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE A        M:  5 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  3 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE {8,5,3}  M: 10 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 3
 3
 list/nohead a            ! cache hit
- -DELETE I        M: 11 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- const_v {8,5,3}  M: 11 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing sampling tpry on I axis:     1     3 dset:   0
- found   (C09,V11 M: 12 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M: 13 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L:    3    3  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  3 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  8 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE {8,5,3}  M: 11 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M: 11 dset:   0 I:      1    100  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V11 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ const_v {8,5,3}  M: 11 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing sampling tpry on I axis:        1        3 dset:   0
+ found   (C09,V11 M: 12 dset:   0 I:      1    100  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE (C01,V11 M: 13 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:      3      3  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  3 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M:  8 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE {8,5,3}  M: 11 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  1   / 1:  8.000
  2   / 2:  5.000
  3   / 3:  3.000
@@ -30408,76 +30167,74 @@ list/nohead a            ! cache hit
 spawn rm -f foo.bar*
 spawn touch foo.bar1 foo.bar2 foo.bar3
 let a = SPAWN("ls foo.bar*")
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C09,V11 M: 12 dset:   0 I:    1  100  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE (C01,V11 M:  3 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE (C01,V11 M:  5 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 10 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M: 11 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE (C09,V11 M: 12 dset:   0 I:      1    100  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE (C01,V11 M:  3 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE (C01,V11 M:  5 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE A        M: 10 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE A        M: 11 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
 say `a,return=isize`     ! evaluate it now
- getgrid 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
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- string str      M: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  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 A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ string str      M: 11 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  !-> MESSAGE/CONTINUE 3
 3
 list/nohead a            ! cache hit
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- found   A        M: 10 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE tpry     M: 10 dset:   0 I:      1      3  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
+ found   A        M:  5 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
  1   / 1:"foo.bar1"
  2   / 2:"foo.bar2"
  3   / 3:"foo.bar3"
  
 ! RESHAPE, alone, is set to require matched limits in order to make a cache hit
 let a = RESHAPE(I[I=1:3]+10*j[j=1:3], I[i=1:9])
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- -DELETE A        M: 10 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
+ -DELETE A        M:  5 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    NORMAL
 say `a,return=isize`
- getgrid 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
- getgrid (C01,V11 C:  9 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- getgrid (C31,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  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 A        C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C01,V11 C:  9 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ getgrid (C31,V11 C: 11 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 (C31,V11 C: 11 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- 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
+ pass #2 (C31,V11 C: 11 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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    NORMAL    NORMAL
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C09,V11 C: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 10 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- constan cnst     M:  5 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  J        M:  3 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE J        M:  3 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  5 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M: 12 dset:   0 I: -999 -999  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE I        M: 10 dset:   0 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C31,V11 C: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  I        M: 10 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ 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
+ eval    A        C:  6 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C01,V11 C:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C09,V11 C: 10 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  I        M:  5 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ constan cnst     M: 10 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  J        M:  3 dset:   0 I:   -999   -999  J:    1    3  K: -999 -999  L:   -999   -999
+ -DELETE J        M:  3 dset:   0 I:   -999   -999  J:    1    3  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M: 10 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE tpry     M: 12 dset:   0 I:   -999   -999  J:    1    3  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE I        M:  5 dset:   0 I:      1      3  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    (C31,V11 C: 11 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ pseudo  I        M:  5 dset:   0 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
  !-> MESSAGE/CONTINUE 9
 9
 list/nohead a            ! no cache hit
- -DELETE I        M: 10 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid XABSTRACT       ABSTRACT  NORMAL    NORMAL    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  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    (C01,V11 C:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- found   (C09,V11 M:  5 dset:   0 I:    1    3  J:    1    3  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- found   (C31,V11 M: 12 dset:   0 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE I        M:  5 dset:   0 I:      1      9  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1
+ found   A        M:  8 dset:   0 I:      1      9  J: -999 -999  K: -999 -999  L:   -999   -999
  1   / 1:  11.00
  2   / 2:  12.00
  3   / 3:  13.00
@@ -30539,8 +30296,6 @@ show grid
  COADSY    LATITUDE            90 r   89S                  89N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! per axis regrid
 ! 5/01 note: changed from y=0 yo y=5s to accomodate Y-truncated
@@ -30570,8 +30325,6 @@ show grid
  YAX       LATITUDE            81 r   20S                  20N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! combined full grid and per-axis
 list/x=160e/y=5s temp[d=2,k=1,g=gg,gx=a[d=1]]
@@ -30599,8 +30352,6 @@ show grid
  YAX       LATITUDE            81 r   20S                  20N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! pseudo-variable access
 list/i=1:4 i[g=a]		! a is previously loaded
@@ -30640,8 +30391,6 @@ show grid gg1
  COADSY    LATITUDE            90 r   89S                  89N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
 let f = sst[y=20s:20n:.1,d=coads_climatology]
 DEFINE GRID/LIKE=f/x=temp[d=levitus_climatology] gg2
 cancel variable f
@@ -30652,8 +30401,6 @@ show grid gg2
  (AX008)   LATITUDE           401 r   20S                  20N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     no implicit grids
@@ -30675,8 +30422,6 @@ show grid gg2
  YAXLEVITR1_90 LATITUDE        90 r   89.5S                0.5S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     no implicit grids
@@ -30695,8 +30440,6 @@ show grid
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! The SET GRID (default) definition should be protected -- not altered
 load/d=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
@@ -30706,11 +30449,9 @@ show grid
     GRID (G004)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX010)   LATITUDE           201 r   10S                  10N                 200 pts
+ (AX010)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     GRID (G004)                          use count:   1
@@ -30719,20 +30460,6 @@ Dynamic grids:
  (AX010)   LATITUDE           201 r   10S                  10N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-    GRID (G003)                          use count:   1
- name       axis              # pts   start                end
- (AX009)   LONGITUDE          301 r   0E                   30E
- COADSY    LATITUDE            90 r   89S                  89N
- normal    Z
- TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX010)                         use count:   1
-    AXIS (AX009)                         use count:   1
-    AXIS (AX008)                         use count:   1
  
 ! deliberate errors
 set mode ignore
@@ -30850,63 +30577,49 @@ SHOW GRID temp[d=2,gx=sst[d=1],y=10s:2s:.2]             ! implicit Y axis
     GRID (G006)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX007)   LATITUDE            41 r   10S                  2S                  40 pts
+ (AX007)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
 SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5"
     GRID (G006)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX010)   LATITUDE            41 r   10S                  2S                  40 pts
+ (AX010)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
 SHOW GRID FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) ! imposed T axis
     GRID (G007)
  name       axis              # pts   start                end                 subset
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
- (AX007)   LATITUDE            41 r   10S                  2S                  40 pts
+ (AX007)   LATITUDE            41 r   10S                  2S                  41 pts
  normal    Z
  (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
- normal    E
- normal    F
 SHOW GRID SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2])      ! abstract X axis
     GRID (G006)
  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                  40 pts
+ (AX007)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
 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)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX011)   LATITUDE            41 r   10S                  2S                  40 pts
+ (AX011)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
     GRID (G007)
  name       axis              # pts   start                end                 subset
  XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E              full
- (AX007)   LATITUDE            41 r   10S                  2S                  40 pts
+ (AX007)   LATITUDE            41 r   10S                  2S                  41 pts
  normal    Z
  (AX010)   T (CYC/hour)         2 r   0.00034224           0.00068448          (axis from grid-changing func)
- normal    E
- normal    F
     GRID (G006)
  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                  40 pts
+ (AX007)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
  
 load/x=160e/y=5s temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5
 SHOW GRID
@@ -30915,11 +30628,9 @@ SHOW GRID
     GRID (G006)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- (AX010)   LATITUDE            41 r   10S                  2S                  40 pts
+ (AX010)   LATITUDE            41 r   10S                  2S                  41 pts
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   full
  normal    T
- normal    E
- normal    F
 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)
@@ -30930,8 +30641,6 @@ SHOW GRID
  (AX007)   LATITUDE            41 r   10S                  2S                  full
  normal    Z
  (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448          full
- normal    E
- normal    F
 list/j=1:5 j
              VARIABLE : J
                         axis (AX007)
@@ -30949,8 +30658,6 @@ SHOW GRID MYGRID
  (AX007)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
- normal    E
- normal    F
 SHOW GRID/DYNAMIC
 Dynamic grids:
     GRID (G004)                          use count:   1
@@ -30959,20 +30666,6 @@ Dynamic grids:
  (AX007)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
- normal    E
- normal    F
-    GRID (G007)                          use count:   1
- name       axis              # pts   start                end
- XAXLEVITR1_160 LONGITUDE     160mr   20.5E                179.5E
- (AX007)   LATITUDE            41 r   10S                  2S
- normal    Z
- (AX011)   T (CYC/hour)         2 r   0.00034224           0.00068448
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX011)                         use count:   1
-    AXIS (AX007)                         use count:   3
-    AXIS (AX008)                         use count:   1
  
 *** Running ferret script: bn_calendar.jnl
 [?1034h! bn_calendar.jnl
@@ -31115,8 +30808,8 @@ use calsst
 sh data
      currently SET data sets:
     1> ./calsst.cdf  (default)
- name     title                             I         J         K         L         M         N
- NDATA    TEMP[GT=TGRID]                   1:10      1:13      1:1       1:21      ...       ...
+ name     title                             I         J         K         L
+ NDATA    TEMP[GT=TGRID]                   1:10      1:13      1:1       1:21
  
 sh grid ndata
     GRID GSH1
@@ -31125,8 +30818,6 @@ sh grid ndata
  PSYT39_51 LATITUDE            13 i   2.167S               1.833N              full
  PSZT1_1   DEPTH (m)            1 r-  5                    5                   full
  TWEEKS1   TIME                21 r   20-AUG-1982 00:00    07-JAN-1983 00:00   full
- normal    E
- normal    F
 sh axis tweeks
  name       axis              # pts   start                end
  TWEEKS    TIME                21 r   20-AUG-1982 00:00    07-JAN-1983 00:00
@@ -31297,6 +30988,7 @@ vector/flow/over/len=10  u,v
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 set mode meta flowlines.plt
 can mode logo
  
@@ -31309,6 +31001,7 @@ can mode meta
 ! curvilinear flowline plots
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 use coads_climatology
 go mp_sinusoidal
@@ -31379,6 +31072,7 @@ plot/hlog fcn
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_fft
 ! Benchmark Ferret script for FFT.  Uses analytic function of time.
  
@@ -31412,8 +31106,6 @@ SH GRID tgrid
  normal    Y
  normal    Z
  DAYT      TIME               365 r   01-JAN-1990 00:00    31-DEC-1990 00:00
- normal    E
- normal    F
 SET GRID tgrid
  
 LET fcn1 = sin(kt*tpts - phase) /2.
@@ -31519,6 +31211,7 @@ CANCEL MODE IGNORE_ERRORS
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_gridding
 ! bench_gridding.jnl
 ! *acm* 8/99
@@ -31716,6 +31409,7 @@ can axis x10
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_scat2grid_test
 ! bn_scat2grid_test.jnl
 ! From JonCallahan's insitu_gaussian_*.jnl
@@ -31786,8 +31480,6 @@ show grid xy_laplace_gridded
  Y_20      LATITUDE            20 r   10N                  20N                 full
  normal    Z
  normal    T
- normal    E
- normal    F
 ! when the result grid axes were extended, the axis coordinates in the following were messed up
 list xy_laplace_gridded
              VARIABLE : SCAT2GRIDLAPLACE_XY(XAX,YAX,O2_UMOL_KG,X[GX=X_20],Y[GY=Y_20],2,2)
@@ -31865,6 +31557,7 @@ can axis x_20
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_scat2grid_gl
 ! bn_scat2grid_gl.jnl
 ! test the scat2gridgauss and scat2gridlaplace functions,
@@ -32392,6 +32085,7 @@ can axis x_15
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_scat2gridlaplace_tarasoff
 ! bn_scat2gridlaplace_tarasoff
 ! check for error reported by Lev Tarasoff 5/10/2006
@@ -32417,8 +32111,6 @@ show grid wgtl
  YLATEF    LATITUDE            73 r   47.25N               83.25N              full
  normal    Z
  normal    T
- normal    E
- normal    F
 load wgtl
 ! shade wgtl ! Result is shifted in X:
 ! data shows up at 70e that should be at 35e
@@ -32495,6 +32187,7 @@ cancel axis ylatef
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_scat2grid_nobs
 ! bn_scat2grid_nobs.jnl
 ! test of scat2grid_nobs functions,
@@ -32798,6 +32491,7 @@ can axis x_15
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_scat2grid_t
 ! bn_scat2grid_t.jnl
 ! test the ave_scat2grid_t and scat2grid_t functions,
@@ -32877,6 +32571,7 @@ can axis t_32
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_transpose
 ! bn_tranpose.jnl
 ! test the transpose functions,
@@ -33237,6 +32932,979 @@ list transpose_zt(myvar)
  2   / 3:  110.0  111.0  112.0  113.0  114.0
  3   / 4:  115.0  116.0  117.0  118.0  119.0
  
+def axis /X=0.0:4.0:1.0/units=degrees_east xaxs
+def axis /Y=0.0:3.0:1.0/units=degrees_north yaxs
+def axis /Z=0.0:1.4:0.2/units=m/depth zaxs
+def axis /T=0.0:6.0:1.0/units=days/t0=1-jan-2001 taxs
+def axis /E=0.0:10.0:5 eaxs
+def axis /F=0.0:100.0:20 faxs
+def grid /X=xaxs /Y=yaxs /Z=zaxs /T=taxs /E=eaxs /F=faxs mygrd
+ 
+set grid mygrd
+let myvar = X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+ 
+ 
+! * * * * Simple XYZTEF examples * * *
+ 
+list/x=1/y=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 3 by 6 points (E-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+               0      5     10    
+               1      2      3
+ 0     / 1:  86.00  91.00  96.00
+ 20    / 2:  66.00  71.00  76.00
+ 40    / 3:  46.00  51.00  56.00
+ 60    / 4:  26.00  31.00  36.00
+ 80    / 5:   6.00  11.00  16.00
+ 100   / 6: -14.00  -9.00  -4.00
+list/x=1/y=1/z=1/t=1 transpose_ef(myvar)
+             VARIABLE : TRANSPOSE_EF(MYVAR)
+             SUBSET   : 6 by 3 points (E-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             1      2      3      4      5      6    
+             1      2      3      4      5      6
+ 1   / 1:  86.00  66.00  46.00  26.00   6.00 -14.00
+ 2   / 2:  91.00  71.00  51.00  31.00  11.00  -9.00
+ 3   / 3:  96.00  76.00  56.00  36.00  16.00  -4.00
+ 
+list/e=5/y=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 6 points (LONGITUDE-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+              0E     1E     2E     3E     4E    
+               1      2      3      4      5
+ 0     / 1:  90.00  91.00  92.00  93.00  94.00
+ 20    / 2:  70.00  71.00  72.00  73.00  74.00
+ 40    / 3:  50.00  51.00  52.00  53.00  54.00
+ 60    / 4:  30.00  31.00  32.00  33.00  34.00
+ 80    / 5:  10.00  11.00  12.00  13.00  14.00
+ 100   / 6: -10.00  -9.00  -8.00  -7.00  -6.00
+list/e=5/y=1/z=1/t=1 transpose_xf(myvar)
+             VARIABLE : TRANSPOSE_XF(MYVAR)
+             SUBSET   : 6 by 5 points (X-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+             1      2      3      4      5      6    
+             1      2      3      4      5      6
+ 1   / 1:  90.00  70.00  50.00  30.00  10.00 -10.00
+ 2   / 2:  91.00  71.00  51.00  31.00  11.00  -9.00
+ 3   / 3:  92.00  72.00  52.00  32.00  12.00  -8.00
+ 4   / 4:  93.00  73.00  53.00  33.00  13.00  -7.00
+ 5   / 5:  94.00  74.00  54.00  34.00  14.00  -6.00
+list/F=25/y=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 3 points (LONGITUDE-E)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+             0E     1E     2E     3E     4E    
+              1      2      3      4      5
+ 0    / 1:  65.00  66.00  67.00  68.00  69.00
+ 5    / 2:  70.00  71.00  72.00  73.00  74.00
+ 10   / 3:  75.00  76.00  77.00  78.00  79.00
+list/F=25/y=1/z=1/t=1 transpose_xe(myvar)
+             VARIABLE : TRANSPOSE_XE(MYVAR)
+             SUBSET   : 3 by 5 points (X-E)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+             1      2      3    
+             1      2      3
+ 1   / 1:  65.00  70.00  75.00
+ 2   / 2:  66.00  71.00  76.00
+ 3   / 3:  67.00  72.00  77.00
+ 4   / 4:  68.00  73.00  78.00
+ 5   / 5:  69.00  74.00  79.00
+ 
+list/e=5/x=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 4 by 6 points (LATITUDE-F)
+             LONGITUDE: 1E
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+               0     1N     2N     3N    
+               1      2      3      4
+ 0     / 1:   86.0   91.0   96.0  101.0
+ 20    / 2:   66.0   71.0   76.0   81.0
+ 40    / 3:   46.0   51.0   56.0   61.0
+ 60    / 4:   26.0   31.0   36.0   41.0
+ 80    / 5:    6.0   11.0   16.0   21.0
+ 100   / 6:  -14.0   -9.0   -4.0    1.0
+list/e=5/x=1/z=1/t=1 transpose_yf(myvar)
+             VARIABLE : TRANSPOSE_YF(MYVAR)
+             SUBSET   : 6 by 4 points (Y-F)
+             LONGITUDE: 1E
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+             1      2      3      4      5      6    
+             1      2      3      4      5      6
+ 1   / 1:   86.0   66.0   46.0   26.0    6.0  -14.0
+ 2   / 2:   91.0   71.0   51.0   31.0   11.0   -9.0
+ 3   / 3:   96.0   76.0   56.0   36.0   16.0   -4.0
+ 4   / 4:  101.0   81.0   61.0   41.0   21.0    1.0
+list/F=25/x=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 4 by 3 points (LATITUDE-E)
+             LONGITUDE: 1E
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+              0     1N     2N     3N    
+              1      2      3      4
+ 0    / 1:  61.00  66.00  71.00  76.00
+ 5    / 2:  66.00  71.00  76.00  81.00
+ 10   / 3:  71.00  76.00  81.00  86.00
+list/F=25/x=1/z=1/t=1 transpose_ye(myvar)
+             VARIABLE : TRANSPOSE_YE(MYVAR)
+             SUBSET   : 3 by 4 points (Y-E)
+             LONGITUDE: 1E
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+             1      2      3    
+             1      2      3
+ 1   / 1:  61.00  66.00  71.00
+ 2   / 2:  66.00  71.00  76.00
+ 3   / 3:  71.00  76.00  81.00
+ 4   / 4:  76.00  81.00  86.00
+ 
+list/e=5/x=1/y=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 8 by 6 points (DEPTH (m)-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+              0      0.2    0.4    0.6    0.8    1      1.2    1.4   
+               1      2      3      4      5      6      7      8
+ 0     / 1:  71.00  75.00  79.00  83.00  87.00  91.00  95.00  99.00
+ 20    / 2:  51.00  55.00  59.00  63.00  67.00  71.00  75.00  79.00
+ 40    / 3:  31.00  35.00  39.00  43.00  47.00  51.00  55.00  59.00
+ 60    / 4:  11.00  15.00  19.00  23.00  27.00  31.00  35.00  39.00
+ 80    / 5:  -9.00  -5.00  -1.00   3.00   7.00  11.00  15.00  19.00
+ 100   / 6: -29.00 -25.00 -21.00 -17.00 -13.00  -9.00  -5.00  -1.00
+list/e=5/x=1/y=1/t=1 transpose_zf(myvar)
+             VARIABLE : TRANSPOSE_ZF(MYVAR)
+             SUBSET   : 6 by 8 points (Z-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+             1      2      3      4      5      6    
+             1      2      3      4      5      6
+ 1   / 1:  71.00  51.00  31.00  11.00  -9.00 -29.00
+ 2   / 2:  75.00  55.00  35.00  15.00  -5.00 -25.00
+ 3   / 3:  79.00  59.00  39.00  19.00  -1.00 -21.00
+ 4   / 4:  83.00  63.00  43.00  23.00   3.00 -17.00
+ 5   / 5:  87.00  67.00  47.00  27.00   7.00 -13.00
+ 6   / 6:  91.00  71.00  51.00  31.00  11.00  -9.00
+ 7   / 7:  95.00  75.00  55.00  35.00  15.00  -5.00
+ 8   / 8:  99.00  79.00  59.00  39.00  19.00  -1.00
+list/F=25/x=1/y=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 8 by 3 points (DEPTH (m)-E)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+             0      0.2    0.4    0.6    0.8    1      1.2    1.4   
+              1      2      3      4      5      6      7      8
+ 0    / 1:  46.00  50.00  54.00  58.00  62.00  66.00  70.00  74.00
+ 5    / 2:  51.00  55.00  59.00  63.00  67.00  71.00  75.00  79.00
+ 10   / 3:  56.00  60.00  64.00  68.00  72.00  76.00  80.00  84.00
+list/F=25/x=1/y=1/t=1 transpose_ze(myvar)
+             VARIABLE : TRANSPOSE_ZE(MYVAR)
+             SUBSET   : 3 by 8 points (Z-E)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+             1      2      3    
+             1      2      3
+ 1   / 1:  46.00  51.00  56.00
+ 2   / 2:  50.00  55.00  60.00
+ 3   / 3:  54.00  59.00  64.00
+ 4   / 4:  58.00  63.00  68.00
+ 5   / 5:  62.00  67.00  72.00
+ 6   / 6:  66.00  71.00  76.00
+ 7   / 7:  70.00  75.00  80.00
+ 8   / 8:  74.00  79.00  84.00
+ 
+list/e=5/x=1/y=1/z=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 7 by 6 points (TIME-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             E        : 5
+              2001   2001   2001   2001   2001   2001   2001  
+               1      2      3      4      5      6      7
+ 0     / 1:   31.0   91.0  151.0  211.0  271.0  331.0  391.0
+ 20    / 2:   11.0   71.0  131.0  191.0  251.0  311.0  371.0
+ 40    / 3:   -9.0   51.0  111.0  171.0  231.0  291.0  351.0
+ 60    / 4:  -29.0   31.0   91.0  151.0  211.0  271.0  331.0
+ 80    / 5:  -49.0   11.0   71.0  131.0  191.0  251.0  311.0
+ 100   / 6:  -69.0   -9.0   51.0  111.0  171.0  231.0  291.0
+list/e=5/x=1/y=1/z=1 transpose_tf(myvar)
+             VARIABLE : TRANSPOSE_TF(MYVAR)
+             SUBSET   : 6 by 7 points (T-F)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             E        : 5
+             1      2      3      4      5      6    
+             1      2      3      4      5      6
+ 1   / 1:   31.0   11.0   -9.0  -29.0  -49.0  -69.0
+ 2   / 2:   91.0   71.0   51.0   31.0   11.0   -9.0
+ 3   / 3:  151.0  131.0  111.0   91.0   71.0   51.0
+ 4   / 4:  211.0  191.0  171.0  151.0  131.0  111.0
+ 5   / 5:  271.0  251.0  231.0  211.0  191.0  171.0
+ 6   / 6:  331.0  311.0  291.0  271.0  251.0  231.0
+ 7   / 7:  391.0  371.0  351.0  331.0  311.0  291.0
+list/F=25/x=1/y=1/z=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 7 by 3 points (TIME-E)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             F        : 20
+             2001   2001   2001   2001   2001   2001   2001  
+              1      2      3      4      5      6      7
+ 0    / 1:    6.0   66.0  126.0  186.0  246.0  306.0  366.0
+ 5    / 2:   11.0   71.0  131.0  191.0  251.0  311.0  371.0
+ 10   / 3:   16.0   76.0  136.0  196.0  256.0  316.0  376.0
+list/F=25/x=1/y=1/z=1 transpose_te(myvar)
+             VARIABLE : TRANSPOSE_TE(MYVAR)
+             SUBSET   : 3 by 7 points (T-E)
+             LONGITUDE: 1E
+             LATITUDE : 1N
+             DEPTH (m): 1
+             F        : 20
+             1      2      3    
+             1      2      3
+ 1   / 1:    6.0   11.0   16.0
+ 2   / 2:   66.0   71.0   76.0
+ 3   / 3:  126.0  131.0  136.0
+ 4   / 4:  186.0  191.0  196.0
+ 5   / 5:  246.0  251.0  256.0
+ 6   / 6:  306.0  311.0  316.0
+ 7   / 7:  366.0  371.0  376.0
+ 
+ 
+! * * * *  XYZTEF examples with another dimension * * *
+ 
+list/y=1/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 3 by 6 points (LONGITUDE-E-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             0E     1E     2E     3E     4E    
+              1      2      3      4      5
+ ---- N:1 F:   0
+ 0    / 1:  85.00  86.00  87.00  88.00  89.00
+ 5    / 2:  90.00  91.00  92.00  93.00  94.00
+ 10   / 3:  95.00  96.00  97.00  98.00  99.00
+ ---- N:2 F:   20
+ 0    / 1:  65.00  66.00  67.00  68.00  69.00
+ 5    / 2:  70.00  71.00  72.00  73.00  74.00
+ 10   / 3:  75.00  76.00  77.00  78.00  79.00
+ ---- N:3 F:   40
+ 0    / 1:  45.00  46.00  47.00  48.00  49.00
+ 5    / 2:  50.00  51.00  52.00  53.00  54.00
+ 10   / 3:  55.00  56.00  57.00  58.00  59.00
+ ---- N:4 F:   60
+ 0    / 1:  25.00  26.00  27.00  28.00  29.00
+ 5    / 2:  30.00  31.00  32.00  33.00  34.00
+ 10   / 3:  35.00  36.00  37.00  38.00  39.00
+ ---- N:5 F:   80
+ 0    / 1:   5.00   6.00   7.00   8.00   9.00
+ 5    / 2:  10.00  11.00  12.00  13.00  14.00
+ 10   / 3:  15.00  16.00  17.00  18.00  19.00
+ ---- N:6 F:   100
+ 0    / 1: -15.00 -14.00 -13.00 -12.00 -11.00
+ 5    / 2: -10.00  -9.00  -8.00  -7.00  -6.00
+ 10   / 3:  -5.00  -4.00  -3.00  -2.00  -1.00
+list/y=1/z=1/t=1 transpose_ef(myvar)
+             VARIABLE : TRANSPOSE_EF(MYVAR)
+             SUBSET   : 5 by 6 by 3 points (LONGITUDE-E-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+            0E     1E     2E     3E     4E    
+             1      2      3      4      5
+ ---- N:1 F:   1
+ 1   / 1:  85.00  86.00  87.00  88.00  89.00
+ 2   / 2:  65.00  66.00  67.00  68.00  69.00
+ 3   / 3:  45.00  46.00  47.00  48.00  49.00
+ 4   / 4:  25.00  26.00  27.00  28.00  29.00
+ 5   / 5:   5.00   6.00   7.00   8.00   9.00
+ 6   / 6: -15.00 -14.00 -13.00 -12.00 -11.00
+ ---- N:2 F:   2
+ 1   / 1:  90.00  91.00  92.00  93.00  94.00
+ 2   / 2:  70.00  71.00  72.00  73.00  74.00
+ 3   / 3:  50.00  51.00  52.00  53.00  54.00
+ 4   / 4:  30.00  31.00  32.00  33.00  34.00
+ 5   / 5:  10.00  11.00  12.00  13.00  14.00
+ 6   / 6: -10.00  -9.00  -8.00  -7.00  -6.00
+ ---- N:3 F:   3
+ 1   / 1:  95.00  96.00  97.00  98.00  99.00
+ 2   / 2:  75.00  76.00  77.00  78.00  79.00
+ 3   / 3:  55.00  56.00  57.00  58.00  59.00
+ 4   / 4:  35.00  36.00  37.00  38.00  39.00
+ 5   / 5:  15.00  16.00  17.00  18.00  19.00
+ 6   / 6:  -5.00  -4.00  -3.00  -2.00  -1.00
+ 
+list/e=5/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 4 by 6 points (LONGITUDE-LATITUDE-F)
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+             0E     1E     2E     3E     4E    
+              1      2      3      4      5
+ ---- N:1 F:   0
+ 3N   / 4:  100.0  101.0  102.0  103.0  104.0
+ 2N   / 3:   95.0   96.0   97.0   98.0   99.0
+ 1N   / 2:   90.0   91.0   92.0   93.0   94.0
+ 0    / 1:   85.0   86.0   87.0   88.0   89.0
+ ---- N:2 F:   20
+ 3N   / 4:   80.0   81.0   82.0   83.0   84.0
+ 2N   / 3:   75.0   76.0   77.0   78.0   79.0
+ 1N   / 2:   70.0   71.0   72.0   73.0   74.0
+ 0    / 1:   65.0   66.0   67.0   68.0   69.0
+ ---- N:3 F:   40
+ 3N   / 4:   60.0   61.0   62.0   63.0   64.0
+ 2N   / 3:   55.0   56.0   57.0   58.0   59.0
+ 1N   / 2:   50.0   51.0   52.0   53.0   54.0
+ 0    / 1:   45.0   46.0   47.0   48.0   49.0
+ ---- N:4 F:   60
+ 3N   / 4:   40.0   41.0   42.0   43.0   44.0
+ 2N   / 3:   35.0   36.0   37.0   38.0   39.0
+ 1N   / 2:   30.0   31.0   32.0   33.0   34.0
+ 0    / 1:   25.0   26.0   27.0   28.0   29.0
+ ---- N:5 F:   80
+ 3N   / 4:   20.0   21.0   22.0   23.0   24.0
+ 2N   / 3:   15.0   16.0   17.0   18.0   19.0
+ 1N   / 2:   10.0   11.0   12.0   13.0   14.0
+ 0    / 1:    5.0    6.0    7.0    8.0    9.0
+ ---- N:6 F:   100
+ 3N   / 4:    0.0    1.0    2.0    3.0    4.0
+ 2N   / 3:   -5.0   -4.0   -3.0   -2.0   -1.0
+ 1N   / 2:  -10.0   -9.0   -8.0   -7.0   -6.0
+ 0    / 1:  -15.0  -14.0  -13.0  -12.0  -11.0
+list/e=5/z=1/t=1 transpose_xf(myvar)
+             VARIABLE : TRANSPOSE_XF(MYVAR)
+             SUBSET   : 6 by 4 by 5 points (X-LATITUDE-F)
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+              1      2      3      4      5      6    
+              1      2      3      4      5      6
+ ---- N:1 F:   1
+ 3N   / 4:  100.0   80.0   60.0   40.0   20.0    0.0
+ 2N   / 3:   95.0   75.0   55.0   35.0   15.0   -5.0
+ 1N   / 2:   90.0   70.0   50.0   30.0   10.0  -10.0
+ 0    / 1:   85.0   65.0   45.0   25.0    5.0  -15.0
+ ---- N:2 F:   2
+ 3N   / 4:  101.0   81.0   61.0   41.0   21.0    1.0
+ 2N   / 3:   96.0   76.0   56.0   36.0   16.0   -4.0
+ 1N   / 2:   91.0   71.0   51.0   31.0   11.0   -9.0
+ 0    / 1:   86.0   66.0   46.0   26.0    6.0  -14.0
+ ---- N:3 F:   3
+ 3N   / 4:  102.0   82.0   62.0   42.0   22.0    2.0
+ 2N   / 3:   97.0   77.0   57.0   37.0   17.0   -3.0
+ 1N   / 2:   92.0   72.0   52.0   32.0   12.0   -8.0
+ 0    / 1:   87.0   67.0   47.0   27.0    7.0  -13.0
+ ---- N:4 F:   4
+ 3N   / 4:  103.0   83.0   63.0   43.0   23.0    3.0
+ 2N   / 3:   98.0   78.0   58.0   38.0   18.0   -2.0
+ 1N   / 2:   93.0   73.0   53.0   33.0   13.0   -7.0
+ 0    / 1:   88.0   68.0   48.0   28.0    8.0  -12.0
+ ---- N:5 F:   5
+ 3N   / 4:  104.0   84.0   64.0   44.0   24.0    4.0
+ 2N   / 3:   99.0   79.0   59.0   39.0   19.0   -1.0
+ 1N   / 2:   94.0   74.0   54.0   34.0   14.0   -6.0
+ 0    / 1:   89.0   69.0   49.0   29.0    9.0  -11.0
+list/F=25/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 4 by 3 points (LONGITUDE-LATITUDE-E)
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+             0E     1E     2E     3E     4E    
+              1      2      3      4      5
+ ---- M:1 E:   0
+ 3N   / 4:  75.00  76.00  77.00  78.00  79.00
+ 2N   / 3:  70.00  71.00  72.00  73.00  74.00
+ 1N   / 2:  65.00  66.00  67.00  68.00  69.00
+ 0    / 1:  60.00  61.00  62.00  63.00  64.00
+ ---- M:2 E:   5
+ 3N   / 4:  80.00  81.00  82.00  83.00  84.00
+ 2N   / 3:  75.00  76.00  77.00  78.00  79.00
+ 1N   / 2:  70.00  71.00  72.00  73.00  74.00
+ 0    / 1:  65.00  66.00  67.00  68.00  69.00
+ ---- M:3 E:   10
+ 3N   / 4:  85.00  86.00  87.00  88.00  89.00
+ 2N   / 3:  80.00  81.00  82.00  83.00  84.00
+ 1N   / 2:  75.00  76.00  77.00  78.00  79.00
+ 0    / 1:  70.00  71.00  72.00  73.00  74.00
+list/F=25/z=1/t=1 transpose_xe(myvar)
+             VARIABLE : TRANSPOSE_XE(MYVAR)
+             SUBSET   : 3 by 4 by 5 points (X-LATITUDE-E)
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+              1      2      3    
+              1      2      3
+ ---- M:1 E:   1
+ 3N   / 4:  75.00  80.00  85.00
+ 2N   / 3:  70.00  75.00  80.00
+ 1N   / 2:  65.00  70.00  75.00
+ 0    / 1:  60.00  65.00  70.00
+ ---- M:2 E:   2
+ 3N   / 4:  76.00  81.00  86.00
+ 2N   / 3:  71.00  76.00  81.00
+ 1N   / 2:  66.00  71.00  76.00
+ 0    / 1:  61.00  66.00  71.00
+ ---- M:3 E:   3
+ 3N   / 4:  77.00  82.00  87.00
+ 2N   / 3:  72.00  77.00  82.00
+ 1N   / 2:  67.00  72.00  77.00
+ 0    / 1:  62.00  67.00  72.00
+ ---- M:4 E:   4
+ 3N   / 4:  78.00  83.00  88.00
+ 2N   / 3:  73.00  78.00  83.00
+ 1N   / 2:  68.00  73.00  78.00
+ 0    / 1:  63.00  68.00  73.00
+ ---- M:5 E:   5
+ 3N   / 4:  79.00  84.00  89.00
+ 2N   / 3:  74.00  79.00  84.00
+ 1N   / 2:  69.00  74.00  79.00
+ 0    / 1:  64.00  69.00  74.00
+ 
+list/e=5/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 4 by 6 points (LONGITUDE-LATITUDE-F)
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+             0E     1E     2E     3E     4E    
+              1      2      3      4      5
+ ---- N:1 F:   0
+ 3N   / 4:  100.0  101.0  102.0  103.0  104.0
+ 2N   / 3:   95.0   96.0   97.0   98.0   99.0
+ 1N   / 2:   90.0   91.0   92.0   93.0   94.0
+ 0    / 1:   85.0   86.0   87.0   88.0   89.0
+ ---- N:2 F:   20
+ 3N   / 4:   80.0   81.0   82.0   83.0   84.0
+ 2N   / 3:   75.0   76.0   77.0   78.0   79.0
+ 1N   / 2:   70.0   71.0   72.0   73.0   74.0
+ 0    / 1:   65.0   66.0   67.0   68.0   69.0
+ ---- N:3 F:   40
+ 3N   / 4:   60.0   61.0   62.0   63.0   64.0
+ 2N   / 3:   55.0   56.0   57.0   58.0   59.0
+ 1N   / 2:   50.0   51.0   52.0   53.0   54.0
+ 0    / 1:   45.0   46.0   47.0   48.0   49.0
+ ---- N:4 F:   60
+ 3N   / 4:   40.0   41.0   42.0   43.0   44.0
+ 2N   / 3:   35.0   36.0   37.0   38.0   39.0
+ 1N   / 2:   30.0   31.0   32.0   33.0   34.0
+ 0    / 1:   25.0   26.0   27.0   28.0   29.0
+ ---- N:5 F:   80
+ 3N   / 4:   20.0   21.0   22.0   23.0   24.0
+ 2N   / 3:   15.0   16.0   17.0   18.0   19.0
+ 1N   / 2:   10.0   11.0   12.0   13.0   14.0
+ 0    / 1:    5.0    6.0    7.0    8.0    9.0
+ ---- N:6 F:   100
+ 3N   / 4:    0.0    1.0    2.0    3.0    4.0
+ 2N   / 3:   -5.0   -4.0   -3.0   -2.0   -1.0
+ 1N   / 2:  -10.0   -9.0   -8.0   -7.0   -6.0
+ 0    / 1:  -15.0  -14.0  -13.0  -12.0  -11.0
+list/e=5/z=1/t=1 transpose_yf(myvar)
+             VARIABLE : TRANSPOSE_YF(MYVAR)
+             SUBSET   : 5 by 6 by 4 points (LONGITUDE-Y-F)
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+            0E     1E     2E     3E     4E    
+             1      2      3      4      5
+ ---- N:1 F:   1
+ 1   / 1:   85.0   86.0   87.0   88.0   89.0
+ 2   / 2:   65.0   66.0   67.0   68.0   69.0
+ 3   / 3:   45.0   46.0   47.0   48.0   49.0
+ 4   / 4:   25.0   26.0   27.0   28.0   29.0
+ 5   / 5:    5.0    6.0    7.0    8.0    9.0
+ 6   / 6:  -15.0  -14.0  -13.0  -12.0  -11.0
+ ---- N:2 F:   2
+ 1   / 1:   90.0   91.0   92.0   93.0   94.0
+ 2   / 2:   70.0   71.0   72.0   73.0   74.0
+ 3   / 3:   50.0   51.0   52.0   53.0   54.0
+ 4   / 4:   30.0   31.0   32.0   33.0   34.0
+ 5   / 5:   10.0   11.0   12.0   13.0   14.0
+ 6   / 6:  -10.0   -9.0   -8.0   -7.0   -6.0
+ ---- N:3 F:   3
+ 1   / 1:   95.0   96.0   97.0   98.0   99.0
+ 2   / 2:   75.0   76.0   77.0   78.0   79.0
+ 3   / 3:   55.0   56.0   57.0   58.0   59.0
+ 4   / 4:   35.0   36.0   37.0   38.0   39.0
+ 5   / 5:   15.0   16.0   17.0   18.0   19.0
+ 6   / 6:   -5.0   -4.0   -3.0   -2.0   -1.0
+ ---- N:4 F:   4
+ 1   / 1:  100.0  101.0  102.0  103.0  104.0
+ 2   / 2:   80.0   81.0   82.0   83.0   84.0
+ 3   / 3:   60.0   61.0   62.0   63.0   64.0
+ 4   / 4:   40.0   41.0   42.0   43.0   44.0
+ 5   / 5:   20.0   21.0   22.0   23.0   24.0
+ 6   / 6:    0.0    1.0    2.0    3.0    4.0
+list/F=25/z=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 4 by 3 points (LONGITUDE-LATITUDE-E)
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+             0E     1E     2E     3E     4E    
+              1      2      3      4      5
+ ---- M:1 E:   0
+ 3N   / 4:  75.00  76.00  77.00  78.00  79.00
+ 2N   / 3:  70.00  71.00  72.00  73.00  74.00
+ 1N   / 2:  65.00  66.00  67.00  68.00  69.00
+ 0    / 1:  60.00  61.00  62.00  63.00  64.00
+ ---- M:2 E:   5
+ 3N   / 4:  80.00  81.00  82.00  83.00  84.00
+ 2N   / 3:  75.00  76.00  77.00  78.00  79.00
+ 1N   / 2:  70.00  71.00  72.00  73.00  74.00
+ 0    / 1:  65.00  66.00  67.00  68.00  69.00
+ ---- M:3 E:   10
+ 3N   / 4:  85.00  86.00  87.00  88.00  89.00
+ 2N   / 3:  80.00  81.00  82.00  83.00  84.00
+ 1N   / 2:  75.00  76.00  77.00  78.00  79.00
+ 0    / 1:  70.00  71.00  72.00  73.00  74.00
+list/F=25/z=1/t=1 transpose_ye(myvar)
+             VARIABLE : TRANSPOSE_YE(MYVAR)
+             SUBSET   : 5 by 3 by 4 points (LONGITUDE-Y-E)
+             DEPTH (m): 1
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+            0E     1E     2E     3E     4E    
+             1      2      3      4      5
+ ---- M:1 E:   1
+ 1   / 1:  60.00  61.00  62.00  63.00  64.00
+ 2   / 2:  65.00  66.00  67.00  68.00  69.00
+ 3   / 3:  70.00  71.00  72.00  73.00  74.00
+ ---- M:2 E:   2
+ 1   / 1:  65.00  66.00  67.00  68.00  69.00
+ 2   / 2:  70.00  71.00  72.00  73.00  74.00
+ 3   / 3:  75.00  76.00  77.00  78.00  79.00
+ ---- M:3 E:   3
+ 1   / 1:  70.00  71.00  72.00  73.00  74.00
+ 2   / 2:  75.00  76.00  77.00  78.00  79.00
+ 3   / 3:  80.00  81.00  82.00  83.00  84.00
+ ---- M:4 E:   4
+ 1   / 1:  75.00  76.00  77.00  78.00  79.00
+ 2   / 2:  80.00  81.00  82.00  83.00  84.00
+ 3   / 3:  85.00  86.00  87.00  88.00  89.00
+ 
+list/e=5/y=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 8 by 6 points (LONGITUDE-DEPTH (m)-F)
+             LATITUDE : 1N
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+              0E     1E     2E     3E     4E    
+               1      2      3      4      5
+ ---- N:1 F:   0
+ 0     / 1:   70.0   71.0   72.0   73.0   74.0
+ 0.2   / 2:   74.0   75.0   76.0   77.0   78.0
+ 0.4   / 3:   78.0   79.0   80.0   81.0   82.0
+ 0.6   / 4:   82.0   83.0   84.0   85.0   86.0
+ 0.8   / 5:   86.0   87.0   88.0   89.0   90.0
+ 1     / 6:   90.0   91.0   92.0   93.0   94.0
+ 1.2   / 7:   94.0   95.0   96.0   97.0   98.0
+ 1.4   / 8:   98.0   99.0  100.0  101.0  102.0
+ ---- N:2 F:   20
+ 0     / 1:   50.0   51.0   52.0   53.0   54.0
+ 0.2   / 2:   54.0   55.0   56.0   57.0   58.0
+ 0.4   / 3:   58.0   59.0   60.0   61.0   62.0
+ 0.6   / 4:   62.0   63.0   64.0   65.0   66.0
+ 0.8   / 5:   66.0   67.0   68.0   69.0   70.0
+ 1     / 6:   70.0   71.0   72.0   73.0   74.0
+ 1.2   / 7:   74.0   75.0   76.0   77.0   78.0
+ 1.4   / 8:   78.0   79.0   80.0   81.0   82.0
+ ---- N:3 F:   40
+ 0     / 1:   30.0   31.0   32.0   33.0   34.0
+ 0.2   / 2:   34.0   35.0   36.0   37.0   38.0
+ 0.4   / 3:   38.0   39.0   40.0   41.0   42.0
+ 0.6   / 4:   42.0   43.0   44.0   45.0   46.0
+ 0.8   / 5:   46.0   47.0   48.0   49.0   50.0
+ 1     / 6:   50.0   51.0   52.0   53.0   54.0
+ 1.2   / 7:   54.0   55.0   56.0   57.0   58.0
+ 1.4   / 8:   58.0   59.0   60.0   61.0   62.0
+ ---- N:4 F:   60
+ 0     / 1:   10.0   11.0   12.0   13.0   14.0
+ 0.2   / 2:   14.0   15.0   16.0   17.0   18.0
+ 0.4   / 3:   18.0   19.0   20.0   21.0   22.0
+ 0.6   / 4:   22.0   23.0   24.0   25.0   26.0
+ 0.8   / 5:   26.0   27.0   28.0   29.0   30.0
+ 1     / 6:   30.0   31.0   32.0   33.0   34.0
+ 1.2   / 7:   34.0   35.0   36.0   37.0   38.0
+ 1.4   / 8:   38.0   39.0   40.0   41.0   42.0
+ ---- N:5 F:   80
+ 0     / 1:  -10.0   -9.0   -8.0   -7.0   -6.0
+ 0.2   / 2:   -6.0   -5.0   -4.0   -3.0   -2.0
+ 0.4   / 3:   -2.0   -1.0    0.0    1.0    2.0
+ 0.6   / 4:    2.0    3.0    4.0    5.0    6.0
+ 0.8   / 5:    6.0    7.0    8.0    9.0   10.0
+ 1     / 6:   10.0   11.0   12.0   13.0   14.0
+ 1.2   / 7:   14.0   15.0   16.0   17.0   18.0
+ 1.4   / 8:   18.0   19.0   20.0   21.0   22.0
+ ---- N:6 F:   100
+ 0     / 1:  -30.0  -29.0  -28.0  -27.0  -26.0
+ 0.2   / 2:  -26.0  -25.0  -24.0  -23.0  -22.0
+ 0.4   / 3:  -22.0  -21.0  -20.0  -19.0  -18.0
+ 0.6   / 4:  -18.0  -17.0  -16.0  -15.0  -14.0
+ 0.8   / 5:  -14.0  -13.0  -12.0  -11.0  -10.0
+ 1     / 6:  -10.0   -9.0   -8.0   -7.0   -6.0
+ 1.2   / 7:   -6.0   -5.0   -4.0   -3.0   -2.0
+ 1.4   / 8:   -2.0   -1.0    0.0    1.0    2.0
+list/e=5/y=1/t=1 transpose_zf(myvar)
+             VARIABLE : TRANSPOSE_ZF(MYVAR)
+             SUBSET   : 5 by 6 by 8 points (LONGITUDE-Z-F)
+             LATITUDE : 1N
+             TIME     : 02-JAN-2001 00:00
+             E        : 5
+            0E     1E     2E     3E     4E    
+             1      2      3      4      5
+ ---- N:1 F:   1
+ 1   / 1:   70.0   71.0   72.0   73.0   74.0
+ 2   / 2:   50.0   51.0   52.0   53.0   54.0
+ 3   / 3:   30.0   31.0   32.0   33.0   34.0
+ 4   / 4:   10.0   11.0   12.0   13.0   14.0
+ 5   / 5:  -10.0   -9.0   -8.0   -7.0   -6.0
+ 6   / 6:  -30.0  -29.0  -28.0  -27.0  -26.0
+ ---- N:2 F:   2
+ 1   / 1:   74.0   75.0   76.0   77.0   78.0
+ 2   / 2:   54.0   55.0   56.0   57.0   58.0
+ 3   / 3:   34.0   35.0   36.0   37.0   38.0
+ 4   / 4:   14.0   15.0   16.0   17.0   18.0
+ 5   / 5:   -6.0   -5.0   -4.0   -3.0   -2.0
+ 6   / 6:  -26.0  -25.0  -24.0  -23.0  -22.0
+ ---- N:3 F:   3
+ 1   / 1:   78.0   79.0   80.0   81.0   82.0
+ 2   / 2:   58.0   59.0   60.0   61.0   62.0
+ 3   / 3:   38.0   39.0   40.0   41.0   42.0
+ 4   / 4:   18.0   19.0   20.0   21.0   22.0
+ 5   / 5:   -2.0   -1.0    0.0    1.0    2.0
+ 6   / 6:  -22.0  -21.0  -20.0  -19.0  -18.0
+ ---- N:4 F:   4
+ 1   / 1:   82.0   83.0   84.0   85.0   86.0
+ 2   / 2:   62.0   63.0   64.0   65.0   66.0
+ 3   / 3:   42.0   43.0   44.0   45.0   46.0
+ 4   / 4:   22.0   23.0   24.0   25.0   26.0
+ 5   / 5:    2.0    3.0    4.0    5.0    6.0
+ 6   / 6:  -18.0  -17.0  -16.0  -15.0  -14.0
+ ---- N:5 F:   5
+ 1   / 1:   86.0   87.0   88.0   89.0   90.0
+ 2   / 2:   66.0   67.0   68.0   69.0   70.0
+ 3   / 3:   46.0   47.0   48.0   49.0   50.0
+ 4   / 4:   26.0   27.0   28.0   29.0   30.0
+ 5   / 5:    6.0    7.0    8.0    9.0   10.0
+ 6   / 6:  -14.0  -13.0  -12.0  -11.0  -10.0
+ ---- N:6 F:   6
+ 1   / 1:   90.0   91.0   92.0   93.0   94.0
+ 2   / 2:   70.0   71.0   72.0   73.0   74.0
+ 3   / 3:   50.0   51.0   52.0   53.0   54.0
+ 4   / 4:   30.0   31.0   32.0   33.0   34.0
+ 5   / 5:   10.0   11.0   12.0   13.0   14.0
+ 6   / 6:  -10.0   -9.0   -8.0   -7.0   -6.0
+ ---- N:7 F:   7
+ 1   / 1:   94.0   95.0   96.0   97.0   98.0
+ 2   / 2:   74.0   75.0   76.0   77.0   78.0
+ 3   / 3:   54.0   55.0   56.0   57.0   58.0
+ 4   / 4:   34.0   35.0   36.0   37.0   38.0
+ 5   / 5:   14.0   15.0   16.0   17.0   18.0
+ 6   / 6:   -6.0   -5.0   -4.0   -3.0   -2.0
+ ---- N:8 F:   8
+ 1   / 1:   98.0   99.0  100.0  101.0  102.0
+ 2   / 2:   78.0   79.0   80.0   81.0   82.0
+ 3   / 3:   58.0   59.0   60.0   61.0   62.0
+ 4   / 4:   38.0   39.0   40.0   41.0   42.0
+ 5   / 5:   18.0   19.0   20.0   21.0   22.0
+ 6   / 6:   -2.0   -1.0    0.0    1.0    2.0
+list/F=25/y=1/t=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 8 by 3 points (LONGITUDE-DEPTH (m)-E)
+             LATITUDE : 1N
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+              0E     1E     2E     3E     4E    
+               1      2      3      4      5
+ ---- M:1 E:   0
+ 0     / 1:  45.00  46.00  47.00  48.00  49.00
+ 0.2   / 2:  49.00  50.00  51.00  52.00  53.00
+ 0.4   / 3:  53.00  54.00  55.00  56.00  57.00
+ 0.6   / 4:  57.00  58.00  59.00  60.00  61.00
+ 0.8   / 5:  61.00  62.00  63.00  64.00  65.00
+ 1     / 6:  65.00  66.00  67.00  68.00  69.00
+ 1.2   / 7:  69.00  70.00  71.00  72.00  73.00
+ 1.4   / 8:  73.00  74.00  75.00  76.00  77.00
+ ---- M:2 E:   5
+ 0     / 1:  50.00  51.00  52.00  53.00  54.00
+ 0.2   / 2:  54.00  55.00  56.00  57.00  58.00
+ 0.4   / 3:  58.00  59.00  60.00  61.00  62.00
+ 0.6   / 4:  62.00  63.00  64.00  65.00  66.00
+ 0.8   / 5:  66.00  67.00  68.00  69.00  70.00
+ 1     / 6:  70.00  71.00  72.00  73.00  74.00
+ 1.2   / 7:  74.00  75.00  76.00  77.00  78.00
+ 1.4   / 8:  78.00  79.00  80.00  81.00  82.00
+ ---- M:3 E:   10
+ 0     / 1:  55.00  56.00  57.00  58.00  59.00
+ 0.2   / 2:  59.00  60.00  61.00  62.00  63.00
+ 0.4   / 3:  63.00  64.00  65.00  66.00  67.00
+ 0.6   / 4:  67.00  68.00  69.00  70.00  71.00
+ 0.8   / 5:  71.00  72.00  73.00  74.00  75.00
+ 1     / 6:  75.00  76.00  77.00  78.00  79.00
+ 1.2   / 7:  79.00  80.00  81.00  82.00  83.00
+ 1.4   / 8:  83.00  84.00  85.00  86.00  87.00
+list/F=25/y=1/t=1 transpose_ze(myvar)
+             VARIABLE : TRANSPOSE_ZE(MYVAR)
+             SUBSET   : 5 by 3 by 8 points (LONGITUDE-Z-E)
+             LATITUDE : 1N
+             TIME     : 02-JAN-2001 00:00
+             F        : 20
+            0E     1E     2E     3E     4E    
+             1      2      3      4      5
+ ---- M:1 E:   1
+ 1   / 1:  45.00  46.00  47.00  48.00  49.00
+ 2   / 2:  50.00  51.00  52.00  53.00  54.00
+ 3   / 3:  55.00  56.00  57.00  58.00  59.00
+ ---- M:2 E:   2
+ 1   / 1:  49.00  50.00  51.00  52.00  53.00
+ 2   / 2:  54.00  55.00  56.00  57.00  58.00
+ 3   / 3:  59.00  60.00  61.00  62.00  63.00
+ ---- M:3 E:   3
+ 1   / 1:  53.00  54.00  55.00  56.00  57.00
+ 2   / 2:  58.00  59.00  60.00  61.00  62.00
+ 3   / 3:  63.00  64.00  65.00  66.00  67.00
+ ---- M:4 E:   4
+ 1   / 1:  57.00  58.00  59.00  60.00  61.00
+ 2   / 2:  62.00  63.00  64.00  65.00  66.00
+ 3   / 3:  67.00  68.00  69.00  70.00  71.00
+ ---- M:5 E:   5
+ 1   / 1:  61.00  62.00  63.00  64.00  65.00
+ 2   / 2:  66.00  67.00  68.00  69.00  70.00
+ 3   / 3:  71.00  72.00  73.00  74.00  75.00
+ ---- M:6 E:   6
+ 1   / 1:  65.00  66.00  67.00  68.00  69.00
+ 2   / 2:  70.00  71.00  72.00  73.00  74.00
+ 3   / 3:  75.00  76.00  77.00  78.00  79.00
+ ---- M:7 E:   7
+ 1   / 1:  69.00  70.00  71.00  72.00  73.00
+ 2   / 2:  74.00  75.00  76.00  77.00  78.00
+ 3   / 3:  79.00  80.00  81.00  82.00  83.00
+ ---- M:8 E:   8
+ 1   / 1:  73.00  74.00  75.00  76.00  77.00
+ 2   / 2:  78.00  79.00  80.00  81.00  82.00
+ 3   / 3:  83.00  84.00  85.00  86.00  87.00
+ 
+list/e=5/y=1/z=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 7 by 6 points (LONGITUDE-TIME-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             E        : 5
+                       0E     1E     2E     3E     4E    
+                        1      2      3      4      5
+ ---- N:1 F:   0
+ 01-JAN-2001 00 / 1:   30.0   31.0   32.0   33.0   34.0
+ 02-JAN-2001 00 / 2:   90.0   91.0   92.0   93.0   94.0
+ 03-JAN-2001 00 / 3:  150.0  151.0  152.0  153.0  154.0
+ 04-JAN-2001 00 / 4:  210.0  211.0  212.0  213.0  214.0
+ 05-JAN-2001 00 / 5:  270.0  271.0  272.0  273.0  274.0
+ 06-JAN-2001 00 / 6:  330.0  331.0  332.0  333.0  334.0
+ 07-JAN-2001 00 / 7:  390.0  391.0  392.0  393.0  394.0
+ ---- N:2 F:   20
+ 01-JAN-2001 00 / 1:   10.0   11.0   12.0   13.0   14.0
+ 02-JAN-2001 00 / 2:   70.0   71.0   72.0   73.0   74.0
+ 03-JAN-2001 00 / 3:  130.0  131.0  132.0  133.0  134.0
+ 04-JAN-2001 00 / 4:  190.0  191.0  192.0  193.0  194.0
+ 05-JAN-2001 00 / 5:  250.0  251.0  252.0  253.0  254.0
+ 06-JAN-2001 00 / 6:  310.0  311.0  312.0  313.0  314.0
+ 07-JAN-2001 00 / 7:  370.0  371.0  372.0  373.0  374.0
+ ---- N:3 F:   40
+ 01-JAN-2001 00 / 1:  -10.0   -9.0   -8.0   -7.0   -6.0
+ 02-JAN-2001 00 / 2:   50.0   51.0   52.0   53.0   54.0
+ 03-JAN-2001 00 / 3:  110.0  111.0  112.0  113.0  114.0
+ 04-JAN-2001 00 / 4:  170.0  171.0  172.0  173.0  174.0
+ 05-JAN-2001 00 / 5:  230.0  231.0  232.0  233.0  234.0
+ 06-JAN-2001 00 / 6:  290.0  291.0  292.0  293.0  294.0
+ 07-JAN-2001 00 / 7:  350.0  351.0  352.0  353.0  354.0
+ ---- N:4 F:   60
+ 01-JAN-2001 00 / 1:  -30.0  -29.0  -28.0  -27.0  -26.0
+ 02-JAN-2001 00 / 2:   30.0   31.0   32.0   33.0   34.0
+ 03-JAN-2001 00 / 3:   90.0   91.0   92.0   93.0   94.0
+ 04-JAN-2001 00 / 4:  150.0  151.0  152.0  153.0  154.0
+ 05-JAN-2001 00 / 5:  210.0  211.0  212.0  213.0  214.0
+ 06-JAN-2001 00 / 6:  270.0  271.0  272.0  273.0  274.0
+ 07-JAN-2001 00 / 7:  330.0  331.0  332.0  333.0  334.0
+ ---- N:5 F:   80
+ 01-JAN-2001 00 / 1:  -50.0  -49.0  -48.0  -47.0  -46.0
+ 02-JAN-2001 00 / 2:   10.0   11.0   12.0   13.0   14.0
+ 03-JAN-2001 00 / 3:   70.0   71.0   72.0   73.0   74.0
+ 04-JAN-2001 00 / 4:  130.0  131.0  132.0  133.0  134.0
+ 05-JAN-2001 00 / 5:  190.0  191.0  192.0  193.0  194.0
+ 06-JAN-2001 00 / 6:  250.0  251.0  252.0  253.0  254.0
+ 07-JAN-2001 00 / 7:  310.0  311.0  312.0  313.0  314.0
+ ---- N:6 F:   100
+ 01-JAN-2001 00 / 1:  -70.0  -69.0  -68.0  -67.0  -66.0
+ 02-JAN-2001 00 / 2:  -10.0   -9.0   -8.0   -7.0   -6.0
+ 03-JAN-2001 00 / 3:   50.0   51.0   52.0   53.0   54.0
+ 04-JAN-2001 00 / 4:  110.0  111.0  112.0  113.0  114.0
+ 05-JAN-2001 00 / 5:  170.0  171.0  172.0  173.0  174.0
+ 06-JAN-2001 00 / 6:  230.0  231.0  232.0  233.0  234.0
+ 07-JAN-2001 00 / 7:  290.0  291.0  292.0  293.0  294.0
+list/e=5/y=1/z=1 transpose_tf(myvar)
+             VARIABLE : TRANSPOSE_TF(MYVAR)
+             SUBSET   : 5 by 6 by 7 points (LONGITUDE-T-F)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             E        : 5
+            0E     1E     2E     3E     4E    
+             1      2      3      4      5
+ ---- N:1 F:   1
+ 1   / 1:   30.0   31.0   32.0   33.0   34.0
+ 2   / 2:   10.0   11.0   12.0   13.0   14.0
+ 3   / 3:  -10.0   -9.0   -8.0   -7.0   -6.0
+ 4   / 4:  -30.0  -29.0  -28.0  -27.0  -26.0
+ 5   / 5:  -50.0  -49.0  -48.0  -47.0  -46.0
+ 6   / 6:  -70.0  -69.0  -68.0  -67.0  -66.0
+ ---- N:2 F:   2
+ 1   / 1:   90.0   91.0   92.0   93.0   94.0
+ 2   / 2:   70.0   71.0   72.0   73.0   74.0
+ 3   / 3:   50.0   51.0   52.0   53.0   54.0
+ 4   / 4:   30.0   31.0   32.0   33.0   34.0
+ 5   / 5:   10.0   11.0   12.0   13.0   14.0
+ 6   / 6:  -10.0   -9.0   -8.0   -7.0   -6.0
+ ---- N:3 F:   3
+ 1   / 1:  150.0  151.0  152.0  153.0  154.0
+ 2   / 2:  130.0  131.0  132.0  133.0  134.0
+ 3   / 3:  110.0  111.0  112.0  113.0  114.0
+ 4   / 4:   90.0   91.0   92.0   93.0   94.0
+ 5   / 5:   70.0   71.0   72.0   73.0   74.0
+ 6   / 6:   50.0   51.0   52.0   53.0   54.0
+ ---- N:4 F:   4
+ 1   / 1:  210.0  211.0  212.0  213.0  214.0
+ 2   / 2:  190.0  191.0  192.0  193.0  194.0
+ 3   / 3:  170.0  171.0  172.0  173.0  174.0
+ 4   / 4:  150.0  151.0  152.0  153.0  154.0
+ 5   / 5:  130.0  131.0  132.0  133.0  134.0
+ 6   / 6:  110.0  111.0  112.0  113.0  114.0
+ ---- N:5 F:   5
+ 1   / 1:  270.0  271.0  272.0  273.0  274.0
+ 2   / 2:  250.0  251.0  252.0  253.0  254.0
+ 3   / 3:  230.0  231.0  232.0  233.0  234.0
+ 4   / 4:  210.0  211.0  212.0  213.0  214.0
+ 5   / 5:  190.0  191.0  192.0  193.0  194.0
+ 6   / 6:  170.0  171.0  172.0  173.0  174.0
+ ---- N:6 F:   6
+ 1   / 1:  330.0  331.0  332.0  333.0  334.0
+ 2   / 2:  310.0  311.0  312.0  313.0  314.0
+ 3   / 3:  290.0  291.0  292.0  293.0  294.0
+ 4   / 4:  270.0  271.0  272.0  273.0  274.0
+ 5   / 5:  250.0  251.0  252.0  253.0  254.0
+ 6   / 6:  230.0  231.0  232.0  233.0  234.0
+ ---- N:7 F:   7
+ 1   / 1:  390.0  391.0  392.0  393.0  394.0
+ 2   / 2:  370.0  371.0  372.0  373.0  374.0
+ 3   / 3:  350.0  351.0  352.0  353.0  354.0
+ 4   / 4:  330.0  331.0  332.0  333.0  334.0
+ 5   / 5:  310.0  311.0  312.0  313.0  314.0
+ 6   / 6:  290.0  291.0  292.0  293.0  294.0
+list/F=25/y=1/z=1 myvar
+             VARIABLE : X + 5.0 * (Y + 4.0 * (Z + 3.0 * T)) + _E - _F
+             SUBSET   : 5 by 7 by 3 points (LONGITUDE-TIME-E)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             F        : 20
+                       0E     1E     2E     3E     4E    
+                        1      2      3      4      5
+ ---- M:1 E:   0
+ 01-JAN-2001 00 / 1:    5.0    6.0    7.0    8.0    9.0
+ 02-JAN-2001 00 / 2:   65.0   66.0   67.0   68.0   69.0
+ 03-JAN-2001 00 / 3:  125.0  126.0  127.0  128.0  129.0
+ 04-JAN-2001 00 / 4:  185.0  186.0  187.0  188.0  189.0
+ 05-JAN-2001 00 / 5:  245.0  246.0  247.0  248.0  249.0
+ 06-JAN-2001 00 / 6:  305.0  306.0  307.0  308.0  309.0
+ 07-JAN-2001 00 / 7:  365.0  366.0  367.0  368.0  369.0
+ ---- M:2 E:   5
+ 01-JAN-2001 00 / 1:   10.0   11.0   12.0   13.0   14.0
+ 02-JAN-2001 00 / 2:   70.0   71.0   72.0   73.0   74.0
+ 03-JAN-2001 00 / 3:  130.0  131.0  132.0  133.0  134.0
+ 04-JAN-2001 00 / 4:  190.0  191.0  192.0  193.0  194.0
+ 05-JAN-2001 00 / 5:  250.0  251.0  252.0  253.0  254.0
+ 06-JAN-2001 00 / 6:  310.0  311.0  312.0  313.0  314.0
+ 07-JAN-2001 00 / 7:  370.0  371.0  372.0  373.0  374.0
+ ---- M:3 E:   10
+ 01-JAN-2001 00 / 1:   15.0   16.0   17.0   18.0   19.0
+ 02-JAN-2001 00 / 2:   75.0   76.0   77.0   78.0   79.0
+ 03-JAN-2001 00 / 3:  135.0  136.0  137.0  138.0  139.0
+ 04-JAN-2001 00 / 4:  195.0  196.0  197.0  198.0  199.0
+ 05-JAN-2001 00 / 5:  255.0  256.0  257.0  258.0  259.0
+ 06-JAN-2001 00 / 6:  315.0  316.0  317.0  318.0  319.0
+ 07-JAN-2001 00 / 7:  375.0  376.0  377.0  378.0  379.0
+list/F=25/y=1/z=1 transpose_te(myvar)
+             VARIABLE : TRANSPOSE_TE(MYVAR)
+             SUBSET   : 5 by 3 by 7 points (LONGITUDE-T-E)
+             LATITUDE : 1N
+             DEPTH (m): 1
+             F        : 20
+            0E     1E     2E     3E     4E    
+             1      2      3      4      5
+ ---- M:1 E:   1
+ 1   / 1:    5.0    6.0    7.0    8.0    9.0
+ 2   / 2:   10.0   11.0   12.0   13.0   14.0
+ 3   / 3:   15.0   16.0   17.0   18.0   19.0
+ ---- M:2 E:   2
+ 1   / 1:   65.0   66.0   67.0   68.0   69.0
+ 2   / 2:   70.0   71.0   72.0   73.0   74.0
+ 3   / 3:   75.0   76.0   77.0   78.0   79.0
+ ---- M:3 E:   3
+ 1   / 1:  125.0  126.0  127.0  128.0  129.0
+ 2   / 2:  130.0  131.0  132.0  133.0  134.0
+ 3   / 3:  135.0  136.0  137.0  138.0  139.0
+ ---- M:4 E:   4
+ 1   / 1:  185.0  186.0  187.0  188.0  189.0
+ 2   / 2:  190.0  191.0  192.0  193.0  194.0
+ 3   / 3:  195.0  196.0  197.0  198.0  199.0
+ ---- M:5 E:   5
+ 1   / 1:  245.0  246.0  247.0  248.0  249.0
+ 2   / 2:  250.0  251.0  252.0  253.0  254.0
+ 3   / 3:  255.0  256.0  257.0  258.0  259.0
+ ---- M:6 E:   6
+ 1   / 1:  305.0  306.0  307.0  308.0  309.0
+ 2   / 2:  310.0  311.0  312.0  313.0  314.0
+ 3   / 3:  315.0  316.0  317.0  318.0  319.0
+ ---- M:7 E:   7
+ 1   / 1:  365.0  366.0  367.0  368.0  369.0
+ 2   / 2:  370.0  371.0  372.0  373.0  374.0
+ 3   / 3:  375.0  376.0  377.0  378.0  379.0
+ 
 can var /all
 set grid abstract
 can grid mygrd
@@ -33244,10 +33912,12 @@ can axis taxs
 can axis zaxs
 can axis yaxs
 can axis xaxs
- 
+can axis eaxs
+can axis faxs
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_unique_str2int
 ! bn_unique_str2int.jnl
  
@@ -33327,6 +33997,7 @@ list unique_str2int(blist), blist
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_sort
  
  
@@ -34060,6 +34731,7 @@ list my_vwnd
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_eof
 ! Benchmark for EOF functions
 ! Statically linked as of ferret V5.34
@@ -34130,6 +34802,7 @@ exit/script
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_compress_by
 let mask = {1,,1,,1} + 0*L[l=101:102] + 0*K[k=10:11]
 list compressi_by({10,20,30,40,50},mask)
@@ -34167,6 +34840,7 @@ list compressi_by({10,20,30,40,50},mask2)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bench_compress
  ! NOAA/PMEL TMAP
  ! Program FERRET
@@ -34315,6 +34989,7 @@ list compressk(a[i=91,j=35,l=1])
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bench_internal_string_functions
 ! test internal string functions:
 !       strlen
@@ -34410,6 +35085,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_ef_bench_extrema.jnl
 ! bench_extrema.jnl
 !  benchmark tests for findhi and findlo
@@ -34466,6 +35142,7 @@ list a[i=@ngd]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_ef_err541_date_delim.jnl
 ! err541_date_delim.jnl
 ! Fix errors occurring with delimted reads - four digit years were
@@ -34538,6 +35215,7 @@ if `date_check` then say **** DELIMTED READ DATE CHECK FAILED
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_ef_zaxr_fcns.jnl
 ! bn_ef_zaxr_functions.jnl
 ! 04-apr-05 *acm* move to tests of shared-obj efs.
@@ -34589,6 +35267,7 @@ list ddat_a, ddat_b, ddat_c
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_ef_curv_to_rect.jnl
 ! bn_ef_curv_to_rect.jnl
 ! Test of curvilinear to rectilinear regridding
@@ -34738,6 +35417,7 @@ shade fill_xy(sst[l=1], mask[l=1], 4)
 ! Compare SAMPLEXY and SAMPLEIJ
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_samplexy_sampleij
 ! bn_samplexy_sampleij
  
@@ -34792,43 +35472,43 @@ cancel memory/all
 set mode diag
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    B        C:  6 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    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 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
+ 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
- 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  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:    18    20 dset:   1
- -DELETE A        M:  1 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- rdstride A        C: 11 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:     2     2 dset:   1
- -DELETE A        M:  1 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  A        M:  1 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:  2 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ -DELETE A        M:  1 dset:   1 I:     18     20  J: -999 -999  K: -999 -999  L:   -999   -999
+ rdstride A        C: 11 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing A on X axis:        2        2 dset:   1
+ -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
  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    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    NORMAL    NORMAL
- dealloc  dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          (AX002)   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
+ 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
- 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  M: -999 -999  N: -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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
  1    / 1:   1.00
  4    / 2:   4.00
  7    / 3:   7.00
@@ -34839,12 +35519,12 @@ 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    NORMAL    NORMAL
- -DELETE A        M:  4 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  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 (G002)          (AX002)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- found   B        M:  2 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G003)          (AX003)   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
+ 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
  20   / 2:  20.00
  22   / 3:   2.00
@@ -35045,42 +35725,42 @@ 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    NORMAL    NORMAL
- -DELETE A        M:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  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 (G002)          (AX002)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G003)          (AX001)   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
+ 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
- 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  M: -999 -999  N: -999 -999
- doing moduloing STR on X axis:    18    20 dset:   1
- -DELETE STR      M:  4 dset:   1 I:   18   20  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- rdstride STR      C:  9 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing STR on X axis:     2     2 dset:   1
- -DELETE STR      M:  4 dset:   1 I:    2    2  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  STR      M:  4 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE STR      M:  6 dset:   1 I:   18   22  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          (AX002)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
+ -DELETE STR      M:  4 dset:   1 I:     18     20  J: -999 -999  K: -999 -999  L:   -999   -999
+ rdstride STR      C:  9 dset:   1 I:      2      2  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing STR on X axis:        2        2 dset:   1
+ -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
  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    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    NORMAL    NORMAL
- dealloc  dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    9  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          (AX002)   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
+ 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
- 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  M: -999 -999  N: -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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G003)          (AX003)   NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
+ 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
  1    / 1:"a"
  4    / 2:"d"
  7    / 3:"g"
@@ -35505,7 +36185,7 @@ ppl list yaxis
  
 sh mode stupid
       MODE            STATE        ARGUMENT
-      STUPID        CANCELLED
+      STUPID        CANCELED
 cancel mode stupid  ! for testing in double precision
  
  
@@ -35629,8 +36309,8 @@ use test_string
 sh dat test_string
      currently SET data sets:
     1> ./test_string.cdf  (default)
- name     title                             I         J         K         L         M         N
- A        {"hello"}                        1:1       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        {"hello"}                        1:1       ...       ...       ...
  
 list a
              VARIABLE : {"hello"}
@@ -35646,8 +36326,8 @@ use test_string
 sh dat test_string
      currently SET data sets:
     1> ./test_string.cdf  (default)
- name     title                             I         J         K         L         M         N
- B        "one line of text"               ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ B        "one line of text"               ...       ...       ...       ...
  
 list b
              VARIABLE : "one line of text"
@@ -35669,11 +36349,11 @@ use test_string.cdf
 show data test_string
      currently SET data sets:
     1> ./test_string.cdf  (default)
- name     title                             I         J         K         L         M         N
- A        {"hello","goodbye", "wave to me  1:3       ...       ...       ...       ...       ...
- B        "one line of text"               ...       ...       ...       ...       ...       ...
- D        {"INITIALIZE", SPAWN:"ls *.str_  1:19      ...       ...       ...       ...       ...
- B2       "two line of text"               ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        {"hello","goodbye", "wave to me  1:3       ...       ...       ...
+ B        "one line of text"               ...       ...       ...       ...
+ D        {"INITIALIZE", SPAWN:"ls *.str_  1:19      ...       ...       ...
+ B2       "two line of text"               ...       ...       ...       ...
  
 list/nohead a
  1   / 1:"hello"     
@@ -35692,8 +36372,8 @@ use test_string
 show data test_string
      currently SET data sets:
     1> ./test_string.cdf  (default)
- name     title                             I         J         K         L         M         N
- D        partial filename list            2:5       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ D        partial filename list            2:5       ...       ...       ...
  
 list d
              VARIABLE : partial filename list
@@ -35792,8 +36472,6 @@ sh grid
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 list/nohead  ysequence({"a","b","c","d","e"})
  1   / 1:"a"
  2   / 2:"b"
@@ -35809,8 +36487,6 @@ sh grid
  ABSTRACT  Y             99999999 r   1                    1.E+08              full
  normal    Z
  normal    T
- normal    E
- normal    F
 list/nohead  zsequence({"a","b","c","d","e"})
  1   / 1:"a"
  2   / 2:"b"
@@ -35826,8 +36502,6 @@ sh grid
  normal    Y
  ABSTRACT  Z             99999999 r   1                    1.E+08              full
  normal    T
- normal    E
- normal    F
 list/nohead  tsequence({"a","b","c","d","e"})
  1   / 1:"a"
  2   / 2:"b"
@@ -35843,8 +36517,6 @@ sh grid
  normal    Y
  normal    Z
  ABSTRACT  T             99999999 r   1                    1.E+08              full
- normal    E
- normal    F
 let a = TSEQUENCE({"a","b","c","d","e"})
 list/l=2:3 a
              VARIABLE : TSEQUENCE({"a","b","c","d","e"})
@@ -36196,53 +36868,53 @@ show data/var
      currently SET data sets:
     1> ./bn_delimited_read_1.dat  (default)
  
- name     title                             I         J         K         L         M         N
- V1       V1                               1:7       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G001) with -1.E+34 for missing data
              X=0.5:7.5  
- V2       V2                               1:7       ...       ...       ...       ...       ...
+ V2       V2                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G001) with -1.E+34 for missing data
              X=0.5:7.5  
- V3       V3                               1:7       ...       ...       ...       ...       ...
+ V3       V3                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G001) with -1.E+34 for missing data
              X=0.5:7.5  
- V4       V4                               1:7       ...       ...       ...       ...       ...
+ V4       V4                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G001) with -1.E+34 for missing data
              X=0.5:7.5  
- V5       V5                               1:7       ...       ...       ...       ...       ...
+ V5       V5                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G001) with -1.E+34 for missing data
              X=0.5:7.5  
- V6       V6                               1:7       ...       ...       ...       ...       ...
+ V6       V6                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G001) with -1.E+34 for missing data
              X=0.5:7.5  
- V7       V7                               1:7       ...       ...       ...       ...       ...
+ V7       V7                               1:7       ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G001) with -1.E+34 for missing data
              X=0.5:7.5  
- V8       V8                               1:7       ...       ...       ...       ...       ...
+ V8       V8                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G001) with -1.E+34 for missing data
              X=0.5:7.5  
- V9       V9                               1:7       ...       ...       ...       ...       ...
+ V9       V9                               1:7       ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G001) with -1.E+34 for missing data
              X=0.5:7.5  
- V10      V10                              1:7       ...       ...       ...       ...       ...
+ V10      V10                              1:7       ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G001) with -1.E+34 for missing data
@@ -36276,13 +36948,13 @@ file/format=delim/var=a1,a2,a3,a4,a5,a6,a7 bn_delimited_read_1.dat
 list a1,a2,a3,a4,a5,a6,a7
              DATA SET: ./bn_delimited_read_1.dat
              X: 0.5 to 7.5
- Column  1: A1
- Column  2: A2
- Column  3: A3
- Column  4: A4
- Column  5: A5
- Column  6: A6
- Column  7: A7
+ Column  1: A1 is a1
+ Column  2: A2 is a2
+ Column  3: A3 is a3
+ Column  4: A4 is a4
+ Column  5: A5 is a5
+ Column  6: A6 is a6
+ Column  7: A7 is a7
                   A1    A2     A3     A4     A5    A6    A7
 1   / 1: "col1"       "col2" "col3" "col4" "col5" " "    ....
 2   / 2: "one"        " "    "1.1"  "24S"  "130E" " "    10.0
@@ -36344,21 +37016,21 @@ file/format=delim/skip=1/type=text/var=a1,a2,a3,a4,a5 bn_delimited_read_1.dat
 show data
      currently SET data sets:
     1> ./bn_delimited_read_1.dat  (default)
- name     title                             I         J         K         L         M         N
- A1       A1                               1:7       ...       ...       ...       ...       ...
- A2       A2                               1:7       ...       ...       ...       ...       ...
- A3       A3                               1:7       ...       ...       ...       ...       ...
- A4       A4                               1:7       ...       ...       ...       ...       ...
- A5       A5                               1:7       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A1       a1                               1:7       ...       ...       ...
+ A2       a2                               1:7       ...       ...       ...
+ A3       a3                               1:7       ...       ...       ...
+ A4       a4                               1:7       ...       ...       ...
+ A5       a5                               1:7       ...       ...       ...
  
 list a1,a2,a3,a4,a5
              DATA SET: ./bn_delimited_read_1.dat
              X: 0.5 to 6.5
- Column  1: A1
- Column  2: A2
- Column  3: A3
- Column  4: A4
- Column  5: A5
+ Column  1: A1 is a1
+ Column  2: A2 is a2
+ Column  3: A3 is a3
+ Column  4: A4 is a4
+ Column  5: A5 is a5
                   A1   A2   A3    A4    A5
 1   / 1: "one"        " " "1.1" "24S" "130E"
 2   / 2: "two"        " " "2.2" "24N" "130W"
@@ -36439,11 +37111,11 @@ columns/grid=g1/var=c1,c2,c3,c4,c5 bn_delimited_read_1.dat
 list c1,c2,c3,c4,c5
              DATA SET: ./bn_delimited_read_1.dat
              X: 1
- Column  1: C1
- Column  2: C2
- Column  3: C3
- Column  4: C4
- Column  5: C5
+ Column  1: C1 is c1
+ Column  2: C2 is c2
+ Column  3: C3 is c3
+ Column  4: C4 is c4
+ Column  5: C5 is c5
              C1    C2     C3     C4     C5
 I / *:    "col1" "col2" "col3" "col4" "col5"
  
@@ -36452,23 +37124,25 @@ cancel data/all
 ! file using blank as a delimiter
 ! Note record 1 has blanks at end of record
 ! Note record of many blanks sandwiched in as record 2
+! (note prev. to 7/13/2016 the file had incorrect date formats with the year first.
+!  File replaced so it can be read after the fix for ticket 2449.)
 file/form=delimited bn_delimited_read_2.dat
 show data
      currently SET data sets:
     1> ./bn_delimited_read_2.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:3       ...       ...       ...
  
 file/form=delimited/delimiter=" " bn_delimited_read_2.dat
 show data
      currently SET data sets:
     1> ./bn_delimited_read_2.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:3       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V2       V2                               1:3       ...       ...       ...       ...       ...
+ V2       V2                               1:3       ...       ...       ...
        (Time of day)
- V3       V3                               1:3       ...       ...       ...       ...       ...
+ V3       V3                               1:3       ...       ...       ...
        (all values missing)
  
 list v1,v2
@@ -36477,9 +37151,9 @@ list v1,v2
  Column  1: V1 is V1 (days)(Julian days since 1-Jan-1900)
  Column  2: V2 is V2 (hours)(Time of day)
              V1    V2
-1   / 1:  37965.  12.58
+1   / 1:  29921.  12.58
 2   / 2:    ....   ....
-3   / 3:  39051.  13.75
+3   / 3:  -1790.  13.75
  
 ! ==========
 ! look at the date/time file
@@ -36511,18 +37185,18 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
- V2       V2                               1:4       ...       ...       ...       ...       ...
- V3       V3                               1:4       ...       ...       ...       ...       ...
- V4       V4                               1:4       ...       ...       ...       ...       ...
- V5       V5                               1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:4       ...       ...       ...
+ V2       V2                               1:4       ...       ...       ...
+ V3       V3                               1:4       ...       ...       ...
+ V4       V4                               1:4       ...       ...       ...
+ V5       V5                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V6       V6                               1:4       ...       ...       ...       ...       ...
+ V6       V6                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V7       V7                               1:4       ...       ...       ...       ...       ...
+ V7       V7                               1:4       ...       ...       ...
        (Time of day)
- V8       V8                               1:4       ...       ...       ...       ...       ...
+ V8       V8                               1:4       ...       ...       ...
        (Time of day)
  
  
@@ -36560,22 +37234,22 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V2       V2                               1:4       ...       ...       ...       ...       ...
+ V2       V2                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V3       V3                               1:4       ...       ...       ...       ...       ...
+ V3       V3                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V4       V4                               1:4       ...       ...       ...       ...       ...
+ V4       V4                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V5       V5                               1:4       ...       ...       ...       ...       ...
+ V5       V5                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V6       V6                               1:4       ...       ...       ...       ...       ...
+ V6       V6                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V7       V7                               1:4       ...       ...       ...       ...       ...
+ V7       V7                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V8       V8                               1:4       ...       ...       ...       ...       ...
+ V8       V8                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
  
  
@@ -36599,22 +37273,22 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:4       ...       ...       ...
        (Time of day)
- V2       V2                               1:4       ...       ...       ...       ...       ...
+ V2       V2                               1:4       ...       ...       ...
        (Time of day)
- V3       V3                               1:4       ...       ...       ...       ...       ...
+ V3       V3                               1:4       ...       ...       ...
        (Time of day)
- V4       V4                               1:4       ...       ...       ...       ...       ...
+ V4       V4                               1:4       ...       ...       ...
        (Time of day)
- V5       V5                               1:4       ...       ...       ...       ...       ...
+ V5       V5                               1:4       ...       ...       ...
        (Time of day)
- V6       V6                               1:4       ...       ...       ...       ...       ...
+ V6       V6                               1:4       ...       ...       ...
        (Time of day)
- V7       V7                               1:4       ...       ...       ...       ...       ...
+ V7       V7                               1:4       ...       ...       ...
        (Time of day)
- V8       V8                               1:4       ...       ...       ...       ...       ...
+ V8       V8                               1:4       ...       ...       ...
        (Time of day)
  
  
@@ -36638,22 +37312,22 @@ list v1,v2,v3,v4,v5,v6,v7,v8
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V2       V2                               1:4       ...       ...       ...       ...       ...
+ V2       V2                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V3       V3                               1:4       ...       ...       ...       ...       ...
+ V3       V3                               1:4       ...       ...       ...
        (Time of day)
- V4       V4                               1:4       ...       ...       ...       ...       ...
+ V4       V4                               1:4       ...       ...       ...
        (Time of day)
- V5       V5                               1:4       ...       ...       ...       ...       ...
+ V5       V5                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V6       V6                               1:4       ...       ...       ...       ...       ...
+ V6       V6                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V7       V7                               1:4       ...       ...       ...       ...       ...
+ V7       V7                               1:4       ...       ...       ...
        (Time of day)
- V8       V8                               1:4       ...       ...       ...       ...       ...
+ V8       V8                               1:4       ...       ...       ...
        (Time of day)
  
  
@@ -36673,14 +37347,14 @@ list v1,v3,v5,v7
 show data 2
      currently SET data sets:
     2> ./bn_delimited_read_date_time.dat  (default)
- name     title                             I         J         K         L         M         N
- V1       V1                               1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V3       V3                               1:4       ...       ...       ...       ...       ...
+ V3       V3                               1:4       ...       ...       ...
        (Time of day)
- V5       V5                               1:4       ...       ...       ...       ...       ...
+ V5       V5                               1:4       ...       ...       ...
        (Julian days since 1-Jan-1900)
- V7       V7                               1:4       ...       ...       ...       ...       ...
+ V7       V7                               1:4       ...       ...       ...
        (Time of day)
  
  
@@ -36768,364 +37442,364 @@ show data/full
      currently SET data sets:
     1> ./bn_delimited_read_CO2.dat  (default)
  
- name     title                             I         J         K         L         M         N
- V1       V1                               1:20      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ V1       V1                               1:20      ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V2       V2                               1:20      ...       ...       ...       ...       ...
+ V2       V2                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V3       V3                               1:20      ...       ...       ...       ...       ...
+ V3       V3                               1:20      ...       ...       ...
             Data type = TEXT
             Conversion /TYPE=TEXT
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V4       V4                               1:20      ...       ...       ...       ...       ...
+ 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
              X=0.5:20.5  
- V5       V5                               1:20      ...       ...       ...       ...       ...
+ V5       V5                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V6       V6                               1:20      ...       ...       ...       ...       ...
+ V6       V6                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V7       V7                               1:20      ...       ...       ...       ...       ...
+ V7       V7                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V8       V8                               1:20      ...       ...       ...       ...       ...
+ V8       V8                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V9       V9                               1:20      ...       ...       ...       ...       ...
+ V9       V9                               1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V10      V10                              1:20      ...       ...       ...       ...       ...
+ V10      V10                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V11      V11                              1:20      ...       ...       ...       ...       ...
+ V11      V11                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V12      V12                              1:20      ...       ...       ...       ...       ...
+ V12      V12                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V13      V13                              1:20      ...       ...       ...       ...       ...
+ V13      V13                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V14      V14                              1:20      ...       ...       ...       ...       ...
+ V14      V14                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V15      V15                              1:20      ...       ...       ...       ...       ...
+ V15      V15                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V16      V16                              1:20      ...       ...       ...       ...       ...
+ V16      V16                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V17      V17                              1:20      ...       ...       ...       ...       ...
+ V17      V17                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V18      V18                              1:20      ...       ...       ...       ...       ...
+ V18      V18                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V19      V19                              1:20      ...       ...       ...       ...       ...
+ V19      V19                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V20      V20                              1:20      ...       ...       ...       ...       ...
+ V20      V20                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V21      V21                              1:20      ...       ...       ...       ...       ...
+ V21      V21                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V22      V22                              1:20      ...       ...       ...       ...       ...
+ V22      V22                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V23      V23                              1:20      ...       ...       ...       ...       ...
+ V23      V23                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V24      V24                              1:20      ...       ...       ...       ...       ...
+ V24      V24                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V25      V25                              1:20      ...       ...       ...       ...       ...
+ V25      V25                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V26      V26                              1:20      ...       ...       ...       ...       ...
+ V26      V26                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V27      V27                              1:20      ...       ...       ...       ...       ...
+ V27      V27                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V28      V28                              1:20      ...       ...       ...       ...       ...
+ V28      V28                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V29      V29                              1:20      ...       ...       ...       ...       ...
+ V29      V29                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V30      V30                              1:20      ...       ...       ...       ...       ...
+ V30      V30                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V31      V31                              1:20      ...       ...       ...       ...       ...
+ V31      V31                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V32      V32                              1:20      ...       ...       ...       ...       ...
+ V32      V32                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V33      V33                              1:20      ...       ...       ...       ...       ...
+ V33      V33                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V34      V34                              1:20      ...       ...       ...       ...       ...
+ V34      V34                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V35      V35                              1:20      ...       ...       ...       ...       ...
+ V35      V35                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V36      V36                              1:20      ...       ...       ...       ...       ...
+ V36      V36                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V37      V37                              1:20      ...       ...       ...       ...       ...
+ V37      V37                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V38      V38                              1:20      ...       ...       ...       ...       ...
+ V38      V38                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V39      V39                              1:20      ...       ...       ...       ...       ...
+ V39      V39                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V40      V40                              1:20      ...       ...       ...       ...       ...
+ V40      V40                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V41      V41                              1:20      ...       ...       ...       ...       ...
+ V41      V41                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V42      V42                              1:20      ...       ...       ...       ...       ...
+ V42      V42                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V43      V43                              1:20      ...       ...       ...       ...       ...
+ V43      V43                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V44      V44                              1:20      ...       ...       ...       ...       ...
+ V44      V44                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V45      V45                              1:20      ...       ...       ...       ...       ...
+ V45      V45                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V46      V46                              1:20      ...       ...       ...       ...       ...
+ V46      V46                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V47      V47                              1:20      ...       ...       ...       ...       ...
+ V47      V47                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V48      V48                              1:20      ...       ...       ...       ...       ...
+ V48      V48                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V49      V49                              1:20      ...       ...       ...       ...       ...
+ V49      V49                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V50      V50                              1:20      ...       ...       ...       ...       ...
+ V50      V50                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V51      V51                              1:20      ...       ...       ...       ...       ...
+ V51      V51                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V52      V52                              1:20      ...       ...       ...       ...       ...
+ V52      V52                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V53      V53                              1:20      ...       ...       ...       ...       ...
+ V53      V53                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V54      V54                              1:20      ...       ...       ...       ...       ...
+ V54      V54                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V55      V55                              1:20      ...       ...       ...       ...       ...
+ V55      V55                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V56      V56                              1:20      ...       ...       ...       ...       ...
+ V56      V56                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V57      V57                              1:20      ...       ...       ...       ...       ...
+ V57      V57                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V58      V58                              1:20      ...       ...       ...       ...       ...
+ V58      V58                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V59      V59                              1:20      ...       ...       ...       ...       ...
+ V59      V59                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V60      V60                              1:20      ...       ...       ...       ...       ...
+ V60      V60                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V61      V61                              1:20      ...       ...       ...       ...       ...
+ V61      V61                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V62      V62                              1:20      ...       ...       ...       ...       ...
+ V62      V62                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V63      V63                              1:20      ...       ...       ...       ...       ...
+ V63      V63                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V64      V64                              1:20      ...       ...       ...       ...       ...
+ V64      V64                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V65      V65                              1:20      ...       ...       ...       ...       ...
+ V65      V65                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V66      V66                              1:20      ...       ...       ...       ...       ...
+ V66      V66                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V67      V67                              1:20      ...       ...       ...       ...       ...
+ V67      V67                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V68      V68                              1:20      ...       ...       ...       ...       ...
+ V68      V68                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V69      V69                              1:20      ...       ...       ...       ...       ...
+ V69      V69                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V70      V70                              1:20      ...       ...       ...       ...       ...
+ V70      V70                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V71      V71                              1:20      ...       ...       ...       ...       ...
+ V71      V71                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
              X=0.5:20.5  
- V72      V72                              1:20      ...       ...       ...       ...       ...
+ V72      V72                              1:20      ...       ...       ...
             Data type = NUMERIC
             Conversion /TYPE=NUMERIC
                on grid (G002) with -1.E+34 for missing data
@@ -37240,6 +37914,7 @@ cancel mode ignore
 !
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! tics on horiz log axes were wrong; (plot only)
 ! GO bn_reset
@@ -37249,6 +37924,7 @@ cancel mode verify
 !missing vertices in polygon call
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_polymissing
 ! err540_polymissing.jnl
 ! 3/02 *acm*
@@ -37280,6 +37956,7 @@ polygon  xvertex1,yvertex,values
 ! formatting axis label numbers
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_ill_format.jnl
 ! err540_ill_format.jnl
 ! 3/02 *acm*
@@ -37298,6 +37975,7 @@ plot/trans/i=1:100  0.001 - 0.002/ i
 ! variable permutation in netCDF writes
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_write_order
 ! err540_write_order.jnl
 ! *sh* 3/02
@@ -37376,6 +38054,7 @@ sp rm -f test_bad_order.cdf
 !@AVE error when plotting unlike grids together
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_ax_ave
 !err540_ax_ave.jnl
 ! 3/02 *acm
@@ -37392,6 +38071,7 @@ plot/x=140w/y=0/sym/line sst,sst[gt=t2 at ave]
 !Make PPL AXSET settings persist, but not settings made w/ qualifiers /AXES= or /NOAXES
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_axset
 !err540_axset.jnl
 ! 3/02 *acm
@@ -37426,6 +38106,7 @@ PPL axset 1,1,1,1
 !Previously couldn't do PLOT/VS/DASH, but no reason not to allow it.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_vs_dash
 ! PLOT/VS/DASH  previously was not allowed.
  
@@ -37469,6 +38150,7 @@ plot/over/thick/dash/color=blue 50*sin(ypts/3)+700, 30*cos(ypts/3)+800, 20*cos(y
 !overlay on polygon plots
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_poly_overlay
 !overlay on polygon plots
  
@@ -37480,6 +38162,7 @@ shade/over/i=1:2/j=0:2/opac=25 i+j
 !polytube failed on plot/over; go polytube, because YAXIS_MIN, _MAX not defined.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_axis_symbols
 ! err540_axis_symbols.jnl
 ! 3/02 *acm*
@@ -37512,6 +38195,7 @@ XAXIS_MAX = "10.00000"
 !nested repeat loops and parsing parentheses
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_parse_repeat
 ! err540_parse_repeat.jnl
 ! 3/03 *acm
@@ -37557,6 +38241,7 @@ why not
 ! appending a scalar to NetCDF file
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_cd_use_recdim
 ! err540_cd_use_recdim
 ! 3/02 *sh*
@@ -37578,9 +38263,9 @@ use profiles.nc
 sh data
      currently SET data sets:
     1> ./profiles.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     X[GX=XPROFILE] + Y[GY=YLON] + Z  1:50      1:10      1:10      1:10      ...       ...
- MAXPROF  5                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ TEMP     X[GX=XPROFILE] + Y[GY=YLON] + Z  1:50      1:10      1:10      1:10
+ MAXPROF  5                                ...       ...       ...       ...
  
 sp rm -f profiles.nc
  
@@ -37599,6 +38284,7 @@ sp rm -f profiles.nc
 !missing data in xpts,ypts sample points wasnt checked
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_samplexy_missing
 ! err540_samplexy_missing.jnl
 ! 3/03 *acm
@@ -37631,8 +38317,10 @@ list asst
 ! test the fixed delta stride bug
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_strides_rev.jnl
 ! err540_strides_rev.jnl
+! V702: *sh* 2/2017 - modified this bench script
  
 ! reported Feb '02
 ! fixed April 17, '02
@@ -37667,35 +38355,34 @@ cancel var/all
  
 set mode stupid
 set mode diag
-set mem/size=0.05
+! *sh* 2/17 - such a small memory size makes it impossible to succeed
+! with the command under the new dynamic memory management
+!set mem/size=0.05
+set mem/size=1   ! use this larger size, instead
 show mem/free
- Current size of FERRET memory cache: 0.2 MegaWords  (1 word = 8 bytes)
-            total memory table slots: 500
-            total memory blocks: 2000
-            memory block size: 100
- 
-            number of free memory blocks: 2000
-            largest free region: 2000
-            number of free regions: 1
-            free memory table slots: 500
-            number of UN-CACHED variables: 0
+    SET MEMORY/SIZE: 1000000 words
+    Peak demand: 0 words
+    Current cache: 0 words
+    Total table slots: 500
+    Free table slots: 500
+    Un-cached variables: 0
  
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1  100  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    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)   YAX1_100  NORMAL    NORMAL
+ dealloc  dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL
+ allocate dynamic grid (G003)          (AX003)   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
- 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  M: -999 -999  N: -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  M: -999 -999  N: -999 -999
- nulrgd  A        M:  1 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:  2 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : IF I EQ J THEN 1 ELSE A0
                         regrid: 10 delta on X
              FILENAME : test_100x100.nc
@@ -37807,27 +38494,25 @@ show grid
  Last successful data access was on grid (G003)
     GRID (G003)
  name       axis              # pts   start                end                 subset
- (AX003)   X                   10 r   1                    91                  9 pts
+ (AX003)   X                   10 r   1                    91                  10 pts
  YAX1_100  Y                  100 r   1                    100                 full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! 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  M: -999 -999  N: -999 -999
- allocate dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL    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
- 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  M: -999 -999  N: -999 -999
- doing reversing A on Y axis:     1   100 dset:   1
- -DELETE A        M:  2 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  A        M:  2 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE A        M:  3 dset:   1 I:    1   91  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G003)          (AX003)   YAX1_100  NORMAL    NORMAL    NORMAL    NORMAL
+ 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
 setting up 2D plot
- -DELETE A        M:  3 dset:   1 I:    1   10  J:    1  100  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE A        M: 21 dset:   1 I:      1     10  J:    1  100  K: -999 -999  L:   -999   -999
 PPL plot 26   complete
 ppl list stats
 
@@ -38061,6 +38746,7 @@ set mem/size=25.6
 ! unknown data type for clauses with constants only
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_data_type.jnl
 ! err540_data_type
 ! 2/19/02 *sh*
@@ -38094,6 +38780,7 @@ plot IF {1,3,5} GE 3 THEN 1  ! data type unknown
 ! gridding scattered points to modulo axis had bug
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_modscat.jnl
 ! test gridding scattered points to modulo axis.
 ! Show Southern hemisphere.
@@ -38117,6 +38804,7 @@ plot/vs/over xpts[i=1:1000]+360, ypts[i=1:1000]
 ! make sure the USE bug reported 5/01 by A Wittenberg is fixed
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err540_use.jnl
 ! err540_use.jnl
 !
@@ -38147,17 +38835,17 @@ use g.nc
 sh data
      currently SET data sets:
     1> ./f.nc
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        1                                ...       ...       ...       ...
  
     2> ./f2.nc
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
- B        2                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        1                                ...       ...       ...       ...
+ B        2                                ...       ...       ...       ...
  
     3> ./g.nc  (default)
- name     title                             I         J         K         L         M         N
- B        2                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ B        2                                ...       ...       ...       ...
  
 can data/all
  
@@ -38166,19 +38854,19 @@ use f.nc
 sh data
      currently SET data sets:
     1> ./f.nc  (default)
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        1                                ...       ...       ...       ...
  
 use g.nc
 sh data
      currently SET data sets:
     1> ./f.nc
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        1                                ...       ...       ...       ...
  
     2> ./g.nc  (default)
- name     title                             I         J         K         L         M         N
- B        2                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ B        2                                ...       ...       ...       ...
  
 can dat 1
  
@@ -38189,13 +38877,13 @@ use f2.nc
 show dat
      currently SET data sets:
     1> ./f2.nc  (default)
- name     title                             I         J         K         L         M         N
- A        1                                ...       ...       ...       ...       ...       ...
- B        2                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        1                                ...       ...       ...       ...
+ B        2                                ...       ...       ...       ...
  
     2> ./g.nc
- name     title                             I         J         K         L         M         N
- B        2                                ...       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ B        2                                ...       ...       ...       ...
  
  
 ! This should work
@@ -38217,6 +38905,7 @@ set data/skip=4/ez/col=2/var="cnt,tim" longax.dat
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! longax cancel axis axname
 repeat/k=1:10 go bn_cancel_axes_1.sub
 !-> REPEAT: K=1
@@ -38342,6 +39031,7 @@ can data longax.dat
  
  go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! longax cancel axis/all
  
 ! Note: cancel axes/all tested in err541_cancel_axes.jnl
@@ -38352,6 +39042,7 @@ cancel mode verify
 ! test remaining axes are intact when we cancel one.
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 define axis/x ax1={2,4,5,6,9}
 define axis/x ax2={30,60,90,100}
 sh axis/x ax2
@@ -38461,6 +39152,7 @@ T0 = 01-JAN-0000 00:00:00
 ! Interior tics disappear on FILL plots
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err541_fill_tics
 ! pplus tics bug - pre 5.42, fill plots overlaid interior tics.
  
@@ -38479,6 +39171,7 @@ ppl tics,,.25,,.25,-1,-1
 ! are used rather than date specifications
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err541_non_gregorian
 !From Andrew Wittenberg, non-Gregorian time axis bug 01 Oct 2002
 ! pre-542, second axis has just one point.
@@ -38508,6 +39201,7 @@ CALENDAR = JULIAN
 ! Could not write or read a NetCDF file with a 4-D string variable.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err541_string4d
  ! Write a 4-D NetCDF file with a string variable.
  
@@ -38565,8 +39259,8 @@ use string4d.nc
 sh data
      currently SET data sets:
     1> ./string4d.nc  (default)
- name     title                             I         J         K         L         M         N
- AXY      RESHAPE (A,RVAR)                 1:2       1:3       1:4       1:2       ...       ...
+ name     title                             I         J         K         L
+ AXY      RESHAPE (A,RVAR)                 1:2       1:3       1:4       1:2
  
 list axy
              VARIABLE : RESHAPE (A,RVAR)
@@ -38613,6 +39307,7 @@ list axy
 ! Cancel axis/all did not check whether axes were in use
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err541_cancel_axes
 ! Check that an axis in use cannot be cancelled.
 ! 4/2013 changes for Ferret with climatological axes
@@ -38658,6 +39353,7 @@ show axis test_i*
 ! 5/4/05 *acm* Move to bn_ef_err541_date_delim; pulling all jnls that call shared-obj efs out
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! GO err541_date_delim
  
 *** Running ferret script: bn_subspan_modulo.jnl
@@ -38955,11 +39651,11 @@ set mode diag
 set mode stupid  ! always re-read and recompute
 lsx $1  ! default avoids void points
  !-> list/order=x vreg
- dealloc  dynamic grid GFJ3            XAX_SUBSPANORMAL    NORMAL    TAX_SUBSPANORMAL    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 GFJ1            XAX_SUBSPANORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VREG     M:  2 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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 GFJ1            XAX_SUBSPANORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VREG     M:  2 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : X[GX=XAX_SUBSPAN] -40 + 10
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 6 points (X)
@@ -38969,36 +39665,36 @@ lsx $1  ! default avoids void points
 lsxn/x=100 $1  ! void point above, alone (via "modulo-void-filling")
  !-> list/order=x/nohead/x=100 vreg
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     7     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VREG     M:  1 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing modulo-void-filling VREG on X axis:     6     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        7        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VREG     M:  1 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing modulo-void-filling VREG on X axis:        6        6 dset:   1
         ....
 lsxn/x=0 $1 ! void point below, alone (via modulo)
  !-> list/order=x/nohead/x=0 vreg
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    0    0  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VREG on X axis:     0     0 dset:   1
- reading VREG     M:  5 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing VREG on X axis:     6     6 dset:   1
+ eval    EX#1     C:  5 dset:   1 I:      0      0  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing VREG on X axis:        0        0 dset:   1
+ reading VREG     M:  5 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing VREG on X axis:        6        6 dset:   1
         ....
 lsxn/x=45:100 $1  ! void above (via subspan-fill)
  !-> list/order=x/nohead/x=45:100 vreg
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     5     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VREG     M:  3 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing modulo-void-filling VREG on X axis:     5     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        5        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      5      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VREG     M:  3 dset:   1 I:      5      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing modulo-void-filling VREG on X axis:        5        6 dset:   1
           15.00  16.00   ....
 lsxn/x=0:100 $1  ! voids above & below (via modulo)
  !-> list/order=x/nohead/x=0:100 vreg
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     0     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    0    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VREG on X axis:     0     6 dset:   1
- reading VREG     M:  8 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing VREG on X axis:     1     6 dset:   1
- doing modulo-void-filling VREG on X axis:     0     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        0        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing VREG on X axis:        0        6 dset:   1
+ reading VREG     M:  8 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing VREG on X axis:        1        6 dset:   1
+ doing modulo-void-filling VREG on X axis:        0        6 dset:   1
            ....  11.00  12.00  13.00  14.00  15.00  16.00   ....
 set mode/last diag
 lsxn/x=50:160 $1  ! modulo above
@@ -39251,39 +39947,39 @@ l200n/order=x $2[l=1,i=0:14]
            ....  11.00  12.00  13.00  14.00  15.00  16.00   ....  11.00  12.00  13.00  14.00  15.00  16.00   ....
 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_SUBSPANORMAL    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 (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- dealloc  dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- allocate dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ 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
+ 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
- found   V2D_REG  M: 71 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  V2D_REG  M: 72 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G004)          (AX002)   NORMAL    NORMAL    TAX_SUBSPANORMAL    NORMAL
+ 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
            ....  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_SUBSPANORMAL    NORMAL
- -DELETE V2D_REG  M: 73 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  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 (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)   NORMAL    NORMAL
- dealloc  dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)   NORMAL    NORMAL
- allocate dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- allocate dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)   NORMAL    NORMAL
+ dealloc  dynamic grid (G004)          (AX001)   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)
+ 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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  V2D_REG  M: 73 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- -DELETE V2D_REG  M: 74 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G004)          XAX_SUBSPANORMAL    NORMAL    (AX002)   NORMAL    NORMAL
+ 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)
  16-JAN-0000 / 1:   11.0
  16-MAR-0000 / 2:   71.0
  15-MAY-0000 / 3:  131.0
@@ -39486,11 +40182,11 @@ set mode diag
 set mode stupid  ! always re-read and recompute
 lsx $1  ! default avoids void points
  !-> list/order=x virr
- dealloc  dynamic grid GFJ4            XIRREG_SUBNORMAL    NORMAL    TIRREG_SUBNORMAL    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 GFJ2            XIRREG_SUBNORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VIRR     M: 80 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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 GFJ2            XIRREG_SUBNORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VIRR     M: 80 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
              VARIABLE : X[GX=XIRREG_SUBSPAN] -40 + 10
              FILENAME : test_subspan_modulo.nc
              SUBSET   : 6 points (X)
@@ -39500,36 +40196,36 @@ lsx $1  ! default avoids void points
 lsxn/x=100 $1  ! void point above, alone (via "modulo-void-filling")
  !-> list/order=x/nohead/x=100 virr
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     7     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VIRR     M: 81 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing modulo-void-filling VIRR on X axis:     6     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        7        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VIRR     M: 81 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing modulo-void-filling VIRR on X axis:        6        6 dset:   1
         ....
 lsxn/x=0 $1 ! void point below, alone (via modulo)
  !-> list/order=x/nohead/x=0 virr
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    0    0  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VIRR on X axis:     0     0 dset:   1
- reading VIRR     M: 83 dset:   1 I:    6    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing VIRR on X axis:     6     6 dset:   1
+ eval    EX#1     C:  5 dset:   1 I:      0      0  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing VIRR on X axis:        0        0 dset:   1
+ reading VIRR     M: 83 dset:   1 I:      6      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing VIRR on X axis:        6        6 dset:   1
         ....
 lsxn/x=45:100 $1  ! void above (via subspan-fill)
  !-> list/order=x/nohead/x=45:100 virr
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     5     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- reading VIRR     M: 85 dset:   1 I:    5    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing modulo-void-filling VIRR on X axis:     5     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        5        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      5      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ reading VIRR     M: 85 dset:   1 I:      5      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing modulo-void-filling VIRR on X axis:        5        6 dset:   1
           15.00  16.00   ....
 lsxn/x=0:100 $1  ! voids above & below (via modulo)
  !-> list/order=x/nohead/x=0:100 virr
  strip limits reconciliation : EX#1
- strip modulo-void-filling EX#1 on X axis:     0     7 dset:   1
- eval    EX#1     C:  6 dset:   1 I:    0    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing VIRR on X axis:     0     6 dset:   1
- reading VIRR     M: 87 dset:   1 I:    1    6  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing VIRR on X axis:     1     6 dset:   1
- doing modulo-void-filling VIRR on X axis:     0     6 dset:   1
+ strip modulo-void-filling EX#1 on X axis:        0        7 dset:   1
+ eval    EX#1     C:  6 dset:   1 I:      0      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing VIRR on X axis:        0        6 dset:   1
+ reading VIRR     M: 87 dset:   1 I:      1      6  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing VIRR on X axis:        1        6 dset:   1
+ doing modulo-void-filling VIRR on X axis:        0        6 dset:   1
            ....  11.00  12.00  12.10  14.00  15.00  16.00   ....
 set mode/last diag
 lsxn/x=50:160 $1  ! modulo above
@@ -39782,39 +40478,39 @@ l200n/order=x $2[l=1,i=0:14]
            ....  11.00  12.00  12.10  14.00  15.00  16.00   ....  11.00  12.00  12.10  14.00  15.00  16.00   ....
 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_SUBNORMAL    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)          (AX001)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- allocate dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ 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
+ 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
- found   V2D_IRR  M:150 dset:   1 I:    0   14  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- regrid  V2D_IRR  M:151 dset:   1 I:    1    8  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX001)   NORMAL    NORMAL    TIRREG_SUBNORMAL    NORMAL
+ 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
            ....  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_SUBNORMAL    NORMAL
- -DELETE V2D_IRR  M:152 dset:   1 I:    1    3  J: -999 -999  K: -999 -999  L:    1    1  M: -999 -999  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 (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)   NORMAL    NORMAL
- allocate dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX005)   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)
+ 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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  V2D_IRR  M:152 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
- -DELETE V2D_IRR  M:153 dset:   1 I:    1    1  J: -999 -999  K: -999 -999  L:    1   15  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          XIRREG_SUBNORMAL    NORMAL    (AX001)   NORMAL    NORMAL
+ 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)
  16-JAN-0000 / 1:   11.0
  15-MAR-0000 / 2:   70.2
  15-MAY-0000 / 3:  131.2
@@ -40023,11 +40719,11 @@ can mode labels
 can mode logo
 show modes
       MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
+      DIAGNOSTIC    CANCELED            99
       VERIFY           SET         DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
+      INTERPOLATE   CANCELED
+      IGNORE_ERROR  CANCELED
+      STUPID        CANCELED
       JOURNAL          SET         ferret.jnl
       LONG_LABEL       SET               1
       LATIT_LABEL      SET               1
@@ -40037,24 +40733,25 @@ show modes
       F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      2560000
+      WAIT          CANCELED
+      DESPERATE     CANCELED       2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      ferret.png
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
-      LOGO          CANCELLED
-      LABELS        CANCELLED
-      GRATICULE     CANCELLED
+      METAFILE      CANCELED       ferret.png
+      PPLLIST       CANCELED       ppllist.out
+      GUI           CANCELED
+      LOGO          CANCELED
+      LABELS        CANCELED
+      GRATICULE     CANCELED
       LINECOLORS       SET               6
       UPCASE_OUTPU     SET
       NLEVELS          SET              30
       NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      LAYERZ        CANCELLED
+      SHRINK_YLAB   CANCELED
+      CURVILINEAR   CANCELED
+      LAYERZ        CANCELED
       6D_LAB           SET
+      FRUGAL           SET              30
 contour/i=1:10/j=1:10 i/j
  
 ! restore the labels, logo still gone
@@ -40145,6 +40842,7 @@ T0 = %%
 ! Polygon/overlay calendar axis bug
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err542_poly_over_calendar
 ! POLY/OVER when data has a non-standard calendar caused
 ! calendar mismatch error, even on a plot with no time axis.
@@ -40164,6 +40862,7 @@ poly/over/color=red/line=2/title="polygon" {220,240,280,250},{-20,70,40,-30}
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_view_axes_fill.jnl
 ! err550_view_axes_fill.jnl
 ! acm 2/5/03
@@ -40245,6 +40944,7 @@ set win/aspect=0.75
 ! defined as a VIEW/AXES viewport.
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_view_axes_position.jnl
 ! err550_view_axes_position.jnl
 ! acm 2/5/03
@@ -40263,6 +40963,7 @@ shade/x=1:10/y=1:10 x-y
 ! SHADE bug: hlimits, vlimits without effect
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_shade_limits.jnl
 ! err550_shade_limits.jnl
 ! acm 2/5/03
@@ -40277,6 +40978,7 @@ set view lower; shade/hlimits=212:324/vlimits=-34:23 sst[l=1]
 ! Redefining an axis with a new calendar definition
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_redefine_calendar_axis.jnl
 ! err550_redefine_calendar_axis.jnl
 ! different calendar axis not recognized as a different specifier,
@@ -40300,6 +41002,7 @@ CALENDAR = JULIAN
 ! Bug in defining axis from an expression.
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_define_axis_expression.jnl
 ! err550_define_axis_expression.jnl
 ! reported by A. Wittenberg.
@@ -40351,6 +41054,7 @@ list x[gx=xax]
 ! Bug in reading seconds from time origin in nc file.
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_nc_seconds.jnl
 ! err550_nc_seconds.jnl
 ! 2/12/03 ACM
@@ -40377,6 +41081,7 @@ list t[gt=height]    ! Seconds should be 36, 37, 38...
 ! Bug in plotting polymarker dots with pen numbers gt 6
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err550_dots_thickpens.jnl
 ! err550_dots_thickpens.jnl
 ! For pen code higher than 6, get *  rather than dot.
@@ -40521,6 +41226,7 @@ ppl rlabs,4,0
 ! Default behavior (all axes on) was not reset after a plot/set/AXES=
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_axes_set.jnl
 ! Default behavior (all axes on) was not reset after a PLOT/SET/AXES=
  
@@ -40540,6 +41246,7 @@ plot/i=1:100/title="PLOT (no quals); all axes plotted" i*cos(i/12)
 ! test on SHADE and POLYGON plots, and these crashed Ferret.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_num_levels.jnl
 ! Test whether too many levels specified. Previous to v552, no
 ! test was made on SHADE and POLYGON plots, and these crashed Ferret.
@@ -40566,6 +41273,7 @@ SET WIN/CLEAR
 ! Check for invalid value of calendar attribute on reading NetCDF files.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_invalid_calendar.jnl
 ! check on input for invalid calendar name
 ! If file gives calendar attribute with unrecognized name,
@@ -40575,14 +41283,15 @@ set data err_calendar.nc
 sh data
      currently SET data sets:
     1> ./err_calendar.nc  (default)
- name     title                             I         J         K         L         M         N
- TIME     observation time                 ...       ...       ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ TIME     observation time                 ...       ...       ...       1:12
        (invalid coordinate axis)
  
  
 ! String bug fixes *kob*
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_strings.jnl
  
  
@@ -40652,6 +41361,7 @@ list strcmp("b", mystring)
 ! 2-D @AVE bug fix
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_2dave.jnl
 ! Bug in 2-D averaging, if source data thats loaded has a
 ! larger range than the dest data, code didnt check whether
@@ -40681,6 +41391,7 @@ list/l=1/y=20 sst[gx=xax at ave,gy=yax at ave]
 ! RETURN error message, and new var,RETURN=dsettitle  argument
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_return_message.jnl
  ! err551_return_message.jnl
  ! 4/15/03 ACM
@@ -40704,6 +41415,7 @@ SET MODE/LAST IGNORE_ERROR
 !  file/form=stream didnt see file in another directory
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_streamread_directory.jnl
 ! Bug: file/form=stream doesnt see file in another directory
  
@@ -40714,7 +41426,7 @@ def grid/x=xax g
 list/clobber/form=stream/file="a.dat" 1
 file/form=stream/grid=g/var=a "a.dat"
 list a
-             VARIABLE : A
+             VARIABLE : a
              FILENAME : a.dat
              X        : 1
           1.000
@@ -40724,7 +41436,7 @@ sp mkdir -p subdir
 sp mv a.dat subdir
 file/form=stream/grid=g/var=a "subdir/a.dat"
 list a
-             VARIABLE : A
+             VARIABLE : a
              FILENAME : a.dat
              FILEPATH : subdir/
              X        : 1
@@ -40733,6 +41445,7 @@ list a
 ! GXY=var  regridding syntax, when the variable hasnt been loaded
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_regrid_undef_grid.jnl
 ! err551_regrid_undef_grid.jnl
 ! 5/03 *acm* based on bn_regrid_to_user; more testing of multi-axis GXY=var
@@ -40782,8 +41495,6 @@ show grid
  COADSY    LATITUDE            90 r   89S                  89N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 can data/all
 can var/all
@@ -40870,6 +41581,7 @@ list dzdt_anom
 ! Symbol substituted on each repetition of REPEAT
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_repeat_sym.jnl
  
 ! This had worked, but stopped working in v541
@@ -40897,6 +41609,7 @@ def sym a 0; rep/i=1:3:1 (def sym a `i`; say ($a))
 ! another time axis, some times have missing data
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_modulo_nc_regrid.jnl
 ! data from nc file with time axis having modulo=value, when regridded
 ! to another time axis, some times have missing data
@@ -40958,6 +41671,7 @@ list/l=23:27 vwnd_clim[gt=vwnd[d=1]]
 ! FFT frequency axis not computed accurately enough.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_fft_freqaxis.jnl
  
 DEFINE AXIS/t=1:4998:1 dayt
@@ -40985,6 +41699,7 @@ list `tpts,return=lend`
 ! No error message on request for time on bad time axis
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_no_taxis_errmsg.jnl
 ! The time axis is bad, having repeated values, so an abstract axis is
 ! used by Ferret and the list/t=time should result in an error.
@@ -41017,8 +41732,8 @@ LIST/NOHEAD/PREC=6 elev[x=@ave,y=@ave]
 ! Output the values of the scales and offsets
  
 SAY `elev,RETURN=nc_scale`
- !-> MESSAGE/CONTINUE 0.000274675
-0.000274675
+ !-> MESSAGE/CONTINUE 0.0002746749679546
+0.0002746749679546
 SAY `elev,RETURN=nc_off`
  !-> MESSAGE/CONTINUE 0
 0
@@ -41082,14 +41797,13 @@ SHOW GRID
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
  
  
 ! save to a file a variable that is 128 long
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 LET a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567 = {12,14,20,28,22,10}
 SAVE/CLOBBER/FILE=longvname.nc a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
@@ -41097,6 +41811,7 @@ SAVE/CLOBBER/FILE=longvname.nc a234567890b234567890c234567890d234567890e23456789
 ! read from the file
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 USE longvname
 LIST a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
              VARIABLE : {12,14,20,28,22,10}
@@ -41112,11 +41827,13 @@ LIST a234567890b234567890c234567890d234567890e234567890f234567890g234567890h2345
 ! save a 4-D variable
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 LET a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567 = I[I=1:5] * J[J=1:4] * K[K=1:3] + L[L=1:3]
 SAVE/CLOBBER/FILE=longvname.nc a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 USE longvname.nc
 lIST/I=1/J=2 a234567890b234567890c234567890d234567890e234567890f234567890g234567890h234567890i234567890d234567890j234567890k234567890L234567
              VARIABLE : I[I=1:5] * J[J=1:4] * K[K=1:3] + L[L=1:3]
@@ -41537,8 +42254,6 @@ sh grid r
  normal    Y
  XXX       Z                    6 r   -4                   1                   full
  normal    T
- normal    E
- normal    F
 can data 1
  
 use confuse_yz.nc
@@ -41549,8 +42264,6 @@ sh grid s
  THE       Y                    8 r   10                   80                  full
  XXX       Z                    6 r   -4                   1                   full
  normal    T
- normal    E
- normal    F
 can data 1
  
 use confuse_yt.nc
@@ -41561,8 +42274,6 @@ sh grid u
  THE       Y                    8 r   10                   80                  full
  normal    Z
  LONG      T                    7 r   1                    13                  full
- normal    E
- normal    F
 can data 1
  
 use confuse_yzt.nc
@@ -41573,8 +42284,6 @@ sh grid v
  THE       Y                    8 r   10                   80                  full
  XXX       Z                    6 r   -4                   1                   full
  LONG      T                    7 r   1                    13                  full
- normal    E
- normal    F
 can data 1
  
  
@@ -41633,8 +42342,6 @@ sh grid r
  normal    Y
  CCC       Z                    6 r   -4                   1                   full
  normal    T
- normal    E
- normal    F
 can data 1
  
 use confuse_yz.nc
@@ -41645,8 +42352,6 @@ sh grid s
  BBB       Y                    8 r   10                   80                  full
  CCC       Z                    6 r   -4                   1                   full
  normal    T
- normal    E
- normal    F
 can data 1
  
 use confuse_yt.nc
@@ -41657,8 +42362,6 @@ sh grid u
  BBB       Y                    8 r   10                   80                  full
  normal    Z
  DDD       T                    7 r   1                    13                  full
- normal    E
- normal    F
 can data 1
  
 use confuse_yzt.nc
@@ -41669,8 +42372,6 @@ sh grid v
  BBB       Y                    8 r   10                   80                  full
  CCC       Z                    6 r   -4                   1                   full
  DDD       T                    7 r   1                    13                  full
- normal    E
- normal    F
 can data 1
 *** Running ferret script: bn_many_polygons.jnl
 [?1034h! testing large number of polygons in a plot.  Map plot has
@@ -41726,10 +42427,14 @@ fill/x=180 sst
 ! 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.
- 
+!
 ! 22-Feb-2005 USE SHO AXIS/XML `temp,return=taxis` instead
 ! of naming the axes; other axes of the same name (e.g. TIME)
 ! may have been defined in other benchmark scrips.
+!
+! 24-Oct-2016 Changes in Ferret, handling of grid and datatype
+! info. Order of listing in xml output, ferret_data_type is listed
+* for all variables
  
 USE levitus_climatology.cdf
  
@@ -41801,6 +42506,7 @@ save/clobber/file=b.nc ddat
 can var/all
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 USE a.nc
 USE b.nc
@@ -41859,12 +42565,12 @@ SHO DATA/VAR/XML 1
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
 <attribute name="long_name" type="char">
    <value><![CDATA[DDAT[D=2,X=@AVE]]]></value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <zaxis>ZAX1_5</zaxis>
@@ -41940,6 +42646,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <zaxis>ZAX1_5</zaxis>
@@ -41953,6 +42662,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="ABSTRACT">
 <axes>
 </axes>
@@ -41965,6 +42677,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <zaxis>ZAX1_5</zaxis>
@@ -41986,6 +42701,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <zaxis>ZAX1_5</zaxis>
@@ -41999,6 +42717,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="ABSTRACT">
 <axes>
 </axes>
@@ -42018,6 +42739,9 @@ SHOW VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="ABSTRACT">
 <axes>
 </axes>
@@ -42044,6 +42768,9 @@ SHOW VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GSI1">
 <axes>
 </axes>
@@ -42056,6 +42783,9 @@ SHOW VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GSI1">
 <axes>
 <taxis>MONTH_REG</taxis>
@@ -42064,6 +42794,121 @@ SHOW VAR/XML
 </var>
 </global>
  
+! Test getting the data type of a user-defined variable
+ 
+let/d=a dates = tax_datestring(t[gt=tvar], tvar, "days")
+SHOW VAR/XML dates
+<global>
+<var name="DATES[D=./a.nc]">
+<attribute name="definition" type="char">
+   <value><![CDATA[TAX_DATESTRING(T[GT=TVAR], TVAR, "days")]]></value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[STRING]]></value>
+</attribute>
+<grid name="GSI1">
+<axes>
+<taxis>MONTH_REG</taxis>
+</axes>
+</grid>
+</var>
+</global>
+SHO DATA/VAR/XML 1
+<datasets>
+<dataset name="./a.nc" default="true">
+<title> </title>
+<var name="TVAR">
+<attribute name="long_name" type="char">
+   <value><![CDATA[T[GT=MONTH_REG]]]></value>
+</attribute>
+<attribute name="_FillValue" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
+</attribute>
+<grid name="GSI1">
+<axes>
+<taxis>MONTH_REG</taxis>
+</axes>
+</grid>
+</var>
+<var name="dates">
+<attribute name="definition" type="char">
+   <value><![CDATA[TAX_DATESTRING(T[GT=TVAR], TVAR, "days")]]></value>
+</attribute>
+<attribute name="_FillValue" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="missing_value" type="float">
+   <value>-1.E+34</value>
+</attribute>
+<attribute name="long_name" type="char">
+   <value><![CDATA[TAX_DATESTRING(T[GT=TVAR], TVAR, "days")]]></value>
+</attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[STRING]]></value>
+</attribute>
+<grid name="GSI1">
+<axes>
+<taxis>MONTH_REG</taxis>
+</axes>
+</grid>
+</var>
+</dataset>
+</datasets>
+<axes>
+<axis name="MONTH_REG">
+<attribute name="direction" type="char">
+   <value><![CDATA[L]]></value>
+</attribute>
+<attribute name="units" type="char">
+   <value><![CDATA[hour since 0000-01-01 00:00:00]]></value>
+</attribute>
+<attribute name="length" type="short">
+   <value>12</value>
+</attribute>
+<attribute name="start" type="double">
+   <value>0000-01-16 06:00:00</value>
+</attribute>
+<attribute name="end" type="double">
+   <value>0000-12-16 01:20:00</value>
+</attribute>
+<attribute name="point_spacing" type="char">
+   <value><![CDATA[even]]></value>
+</attribute>
+<attribute name="modulo" type="char">
+   <value><![CDATA[yes]]></value>
+</attribute>
+<attribute name="time_origin" type="char">
+   <value><![CDATA[0000-01-01 00:00:00]]></value>
+</attribute>
+<attribute name="calendar" type="char">
+   <value><![CDATA[GREGORIAN]]></value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+   <value><![CDATA[DOUBLE]]></value>
+</attribute>
+<attribute name="axis" type="char">
+   <value><![CDATA[T]]></value>
+</attribute>
+<attribute name="standard_name" type="char">
+   <value><![CDATA[time]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+   <value><![CDATA[MONTH_REG]]></value>
+</attribute>
+</axis>
+</axes>
 *** Running ferret script: bn_test_nan.jnl
 [?1034h!bn_test_nan.jnl
 ! test to make sure that NaN is able to be set by user
@@ -42149,6 +42994,7 @@ can var/all
 ! Make sure numeric filenames works
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_numeric_filename.jnl
 ! err553_numeric_filename.jnl
 ! 9/03 kob
@@ -42184,6 +43030,7 @@ list vwnd_clim
 ! Make sure long string variables work
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_long_string_var_name.jnl
 ! err553_long_string_var_name.jnl
 ! 9/03 kob
@@ -42207,6 +43054,7 @@ list a
 ! Fixes for colorbar key labelling
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err551_colorkey.jnl
  
 ! colorkey label bugs
@@ -42311,7 +43159,7 @@ plot/trans/thick/vg="(line,color=blue)"/hg="large(line,color=blue),small(line,co
 ! Tests for MODE GRATICULE  added in Ferret v5.7
 show mode graticule
       MODE            STATE        ARGUMENT
-      GRATICULE     CANCELLED
+      GRATICULE     CANCELED
 set mode graticule
 show mode graticule
       MODE            STATE        ARGUMENT
@@ -42688,19 +43536,20 @@ set mode diag
 set reg/y=0:50/L=1
 repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
 !-> REPEAT: M:300
- getgrid 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  M: -999 -999  N: -999 -999
- constan cnst     M: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M: 10 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1  M: -999 -999  N: -999 -999
+ constan cnst     M: 11 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M: 10 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:300 at ave,y=@ave]
- -DELETE cnst     M: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M: 11 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- getgrid EX#1     C:  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      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J:   46   70  K: -999 -999  L:      1      1
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M: 11 dset:   1 I:  131  140  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M: 11 dset:   1 I:    131    140  J:   46   70  K: -999 -999  L:      1      1
  doing --> SST[Y=0:50N at AV4,D=1]
+ final --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
              LONGITUDE: 80W to 60W (XY ave)
@@ -42708,20 +43557,21 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
              TIME     : 16-JAN 06:00
           20.79
 !-> REPEAT: M:330
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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  M: -999 -999  N: -999 -999
- constan cnst     M:  9 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1  M: -999 -999  N: -999 -999
+ constan cnst     M:  9 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:330 at ave,y=@ave]
- -DELETE cnst     M:  9 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  9 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- getgrid EX#1     C:  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      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J:   46   70  K: -999 -999  L:      1      1
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M:  9 dset:   1 I:  131  155  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:  9 dset:   1 I:    131    155  J:   46   70  K: -999 -999  L:      1      1
  doing --> SST[Y=0:50N at AV4,D=1]
+ final --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
              LONGITUDE: 80W to 30W (XY ave)
@@ -42729,20 +43579,21 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
              TIME     : 16-JAN 06:00
           21.25
 !-> REPEAT: M:360
- dealloc  dynamic grid GSQ1            COADSX    COADSY    NORMAL    TIME      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  M: -999 -999  N: -999 -999
- constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  2 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ 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
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J: -999 -999  K: -999 -999  L:      1      1  M: -999 -999  N: -999 -999
+ constan cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  2 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  !-> list sst[x=280:360 at ave,y=@ave]
- -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
+ -DELETE cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999  M: -999 -999  N: -999 -999
  dealloc  dynamic grid ABSTRACT        ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT  ABSTRACT
- getgrid EX#1     C:  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      NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I: -999 -999  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  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 GSQ1            COADSX    COADSY    NORMAL    TIME
+ eval    EX#1     C:  4 dset:   1 I:   -999   -999  J:   46   70  K: -999 -999  L:      1      1
  strip --> SST[Y=0:50N at AV4,D=1]
- reading SST      M:  3 dset:   1 I:  131  170  J:   46   70  K: -999 -999  L:    1    1  M: -999 -999  N: -999 -999
+ reading SST      M:  3 dset:   1 I:    131    170  J:   46   70  K: -999 -999  L:      1      1
  doing --> SST[Y=0:50N at AV4,D=1]
+ final --> SST[Y=0:50N at AV4,D=1]
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
              FILENAME : coads_climatology.cdf
              LONGITUDE: 80W to 0E(360) (XY ave)
@@ -42839,6 +43690,7 @@ cancel mode ignore
 ! Test use of longer strings in region names
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_regionname_lengths.jnl
 ! In v5.50, we upped the region name storage to
 ! allow 24-characters.  Wasnt fully implemented.
@@ -42895,6 +43747,7 @@ SET MODE/LAST IGNORE_ERRORS
 ! Reqests for data at times outside range of data
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_timeregion.jnl
 ! try to apply a region whose limits are both below,
 ! or both above, the data bounds. In v5.53 the error
@@ -42913,6 +43766,7 @@ SET MODE/LAST IGNORE_ERRORS
 ! Contour plot on fine grid has precision problems
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_contour_fine_grid.jnl
 ! err553_contour_find_grid.jnl
 ! 11/21/03 ACM
@@ -42948,6 +43802,7 @@ PPLUS/RESET   ! reset aspect ratio
 ! PLOT/SYM/SIZE= did not change the size
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_symsize.jnl
 ! PLOT/SYM/SIZE= does not change the size from the default.
 ! acm 11/03
@@ -42958,6 +43813,7 @@ plot/over/i=1:10/sym=20/siz=0.2 i
 ! test labels on shade keys; consistent number of digits set by 5th shakey arg
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_shakey_labels.jnl
 ! The 5th argument to shakey is supposed to define
 ! number of digits in the label.
@@ -42974,6 +43830,7 @@ ppl shade
 ! couldnt set the number of small tics with arg to %xaxis, %yaxis commands
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_xaxis_nsmtc.jnl
 ! Bug: 5th argument failed to set the number of small
 ! tics for the axis.
@@ -42990,6 +43847,7 @@ ppl %yaxis/nouser 1,100,10,2,6
 ! vs DEFINE AXIS/UNIT=yr
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_year_yr.jnl
 ! err553_year_yr.jnl
 ! 2/2004 ACM
@@ -43181,60 +44039,61 @@ can mode ignore
 ! strides, Ferret did a regridding instead.  Test the fix for this
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_stride_def_grid.jnl
  
 use gtsa056_2.cdf
 set mode diag
 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)   NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- allocate dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   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 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)
+ 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
- rdstride TAUX     C:  9 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- nulrgd  TAUX     M: 23 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M: 24 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
+ 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)
 can mem/all
- -DELETE TAUX     M: 23 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE A        M: 24 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -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)   NORMAL    NORMAL
- 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      NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)
+ 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      NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)   NORMAL    NORMAL
+ dealloc  dynamic grid PS2DU1          PSXU      PSYU      NORMAL    TIME
+ dealloc  dynamic grid (G005)          (AX009)   (AX010)   NORMAL    (AX011)
 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)   NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
- allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- eval    A        C:  6 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- allocate dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   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 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)
+ 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
- rdstride TAUX     C:  9 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- nulrgd  TAUX     M: 23 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE TAUX     M: 24 dset:   1 I:   50   54  J:   44   50  K: -999 -999  L:    1  161  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
+ 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)
  
 can mem/all
- -DELETE TAUX     M: 23 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
- -DELETE A        M: 24 dset:   1 I:    1    3  J:    1    3  K: -999 -999  L:    1   21  M: -999 -999  N: -999 -999
+ -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)   NORMAL    NORMAL
- dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)   NORMAL    NORMAL
+ dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)
+ dealloc  dynamic grid (G005)          (AX010)   (AX009)   NORMAL    (AX008)
  canceling dset ./gtsa056_2.cdf
  
 ! Some tests taken from  bn_strides_revs_perms.jnl but with
@@ -43244,26 +44103,26 @@ can data/all
 set region/i=3:6/j=2:4/k=1:2/l=1
 use bn_strides
 define grid/like=var agrid
- getgrid EX#1     C:  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    NORMAL    NORMAL
- dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1    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 GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
+ dealloc  dynamic grid GPC1            XAX1_4    YAX1_3    ZAX1_2    TAX1_1
 define grid/like=midvar bgrid
- 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 GPC2            XAX1_9    YAX1_8    ZAX1_7    TAX1_6    NORMAL    NORMAL
+ 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 GPC2            XAX1_9    YAX1_8    ZAX1_7    TAX1_6
 define grid/like=bigvar cgrid
- dealloc  dynamic grid GPC2            XAX1_9    YAX1_8    ZAX1_7    TAX1_6    NORMAL    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 GPC3            XAX1_40   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid GPC2            XAX1_9    YAX1_8    ZAX1_7    TAX1_6
+ 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 GPC3            XAX1_40   YAX1_30   ZAX1_20   TAX1_10
 define grid/like=unevenvar dgrid
- dealloc  dynamic grid GPC3            XAX1_40   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- getgrid EX#1     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 GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid GPC3            XAX1_40   YAX1_30   ZAX1_20   TAX1_10
+ getgrid EX#1     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 GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
 define grid/like=xytvar egrid
- dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- getgrid EX#1     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 GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid GPC4            XUNEVEN   YUNEVEN   ZAX1_6    TAX1_4
+ getgrid EX#1     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 GPC5            XLON      YLAT      NORMAL    TTIME
 canc data/all
- dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME     NORMAL    NORMAL
+ dealloc  dynamic grid GPC5            XLON      YLAT      NORMAL    TTIME
  canceling dset ./bn_strides.cdf
  
  
@@ -43271,22 +44130,22 @@ canc data/all
 cancel memory/all
 use bn_strides
 load var
- getgrid 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:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- reading VAR      M: 24 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  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
+ eval    EX#1     C:  4 dset:   1 I:      3      4  J:    2    3  K:    1    2  L:      1      1
+ reading VAR      M: 24 dset:   1 I:      3      4  J:    2    3  K:    1    2  L:      1      1
 LIST VAR[i=2:4:2]
- dealloc  dynamic grid AGRID           XAX1_4    YAX1_3    ZAX1_2    TAX1_1    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 (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 22 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 23 dset:   1 I:    2    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX001)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X
              FILENAME : bn_strides.cdf
@@ -43301,19 +44160,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    NORMAL    NORMAL
- -DELETE VAR      M: 22 dset:   1 I:    1    2  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  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 (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX001)   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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 22 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX007)   (AX002)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -43328,25 +44187,25 @@ LIST VAR[i=2:4:2,j=1:3:2]
  1   / 1:  1212.  1214.
  3   / 2:  1232.  1234.
 CANC MEM/ALL
- -DELETE VAR      M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 24 dset:   1 I:    3    4  J:    2    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 23 dset:   1 I:      1      2  J:    1    2  K:    1    2  L:      1      1
+ -DELETE VAR      M: 24 dset:   1 I:      3      4  J:    2    3  K:    1    2  L:      1      1
  
 ! 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    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 (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX007)   (AX002)   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
+ 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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX007)   YAX1_3    ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 3 delta on X
              FILENAME : bn_strides.cdf
@@ -43361,24 +44220,24 @@ LIST VAR[I=1:10:3,j=1,k=1,l=1]    ! 1, 4, 7(3), 10(2)
  7    / 3:  1113.
  10   / 4:  1112.
 cancel axis/modulo XAX1_4
- -DELETE VAR      M: 22 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 23 dset:   1 I:    1   10  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 24 dset:   1 I:    1    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE VAR      M: 22 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
+ -DELETE VAR      M: 23 dset:   1 I:      1     10  J:    1    1  K:    1    1  L:      1      1
+ -DELETE VAR      M: 24 dset:   1 I:      1      4  J:    1    1  K:    1    1  L:      1      1
  
 ! 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    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 (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX007)   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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 24 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX002)   (AX001)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -43393,19 +44252,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    NORMAL    NORMAL
- -DELETE VAR      M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  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 (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX002)   (AX001)   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
+ 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
- rdstride VAR      C:  7 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  VAR      M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE VAR      M: 23 dset:   1 I:    2    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX002)   (AX007)   ZAX1_2    TAX1_1    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J*10 + I
                         regrid: 2 delta on X, 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -43422,24 +44281,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    NORMAL    NORMAL
- -DELETE VAR      M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX002)   (AX007)   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   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   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 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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    3    6  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- eval    A        C:  7 dset:   1 I:    3    5  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- rdstride BIGVAR   C: 10 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 23 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 24 dset:   1 I:    1   36  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
              FILENAME : bn_strides.cdf
              SUBSET   : 3 points (X)
@@ -43451,26 +44310,26 @@ list/j=1/k=1/l=1 a[i=3:5]
  11   / 3:  1121.
  16   / 4:  1126.
  21   / 5:  1131.
- -DELETE A        M: 22 dset:   1 I:    1    1  J:    3    5  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -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   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 (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G006)          (AX002)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    3    6  J:    2    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- eval    A        C:  8 dset:   1 I:    3    5  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
- rdstride BIGVAR   C: 11 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 20 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 22 dset:   1 I:    1   36  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
- regrid  A        M:  8 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX002)   (AX001)   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ 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
+ 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
              VARIABLE : BIGVAR[I=1:40:5]
                         regrid: 2 delta on Y
              FILENAME : bn_strides.cdf
@@ -43487,27 +44346,27 @@ list/k=1/l=1 a[i=3:5,j=1:8:2]
 ! ****** unequally spaced points on parent axis
  
 cancel mem/all
- -DELETE A        M:  8 dset:   1 I:    3    5  J:    1    4  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 20 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 22 dset:   1 I:    1    8  J:    1    7  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 23 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE A        M: 24 dset:   1 I:    1    8  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
+ -DELETE A        M:  8 dset:   1 I:      3      5  J:    1    4  K:    1    1  L:      1      1
+ -DELETE BIGVAR   M: 20 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
+ -DELETE A        M: 22 dset:   1 I:      1      8  J:    1    7  K:    1    1  L:      1      1
+ -DELETE BIGVAR   M: 23 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
+ -DELETE A        M: 24 dset:   1 I:      1      8  J:    1    1  K:    1    1  L:      1      1
  
 ! 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   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 (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX002)   (AX001)   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
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    3    6  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
- rdstride UNE-NVAR C:  8 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  UNE-NVAR M: 23 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE UNE-NVAR M: 24 dset:   1 I:    2    4  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX007)   YUNEVEN   ZAX1_6    TAX1_4    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
                         regrid: on X
              FILENAME : bn_strides.cdf
@@ -43525,19 +44384,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    NORMAL    NORMAL
- -DELETE UNE-NVAR M: 23 dset:   1 I:    1    2  J:    1    1  K:    1    1  L:    1    1  M: -999 -999  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 (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
- dealloc  dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX007)   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
+ 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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 23 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G007)          (AX001)   (AX023)   (AX024)   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -43554,24 +44413,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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX002)   YAX1_30   ZAX1_20   TAX1_10   NORMAL    NORMAL
+ dealloc  dynamic grid (G007)          (AX001)   (AX023)   (AX024)   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
  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   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    3    6  J:    2    4  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10   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 (G006)          (AX024)   (AX023)   (AX001)   TAX1_10
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   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
- rdstride BIGVAR   C:  7 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  BIGVAR   M: 23 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE BIGVAR   M: 24 dset:   1 I:    3    9  J:    2    6  K:    1    3  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_10   NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 2 delta on X, 2 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -43588,8 +44447,8 @@ 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   NORMAL    NORMAL
- -DELETE BIGVAR   M: 23 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   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
  
 ! now with xytvar
@@ -43598,17 +44457,17 @@ set region/i=1:4/j=1:3/l=1:2
 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)   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)   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 (G006)          (AX023)   (AX024)   NORMAL    (AX002)
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)
+ allocate dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 23 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -43626,31 +44485,29 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- 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
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   NORMAL    (AX002)
+ -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
  name       axis              # pts   start                end                 subset
  XLON      LONGITUDE           40mr   141E                 180E                full
  YLAT      LATITUDE            30 r   1N                   30N                 full
  normal    Z
  TTIME     TIME                20 r   01-JAN-1995 00:00    20-JAN-1995 00:00   full
- normal    E
- normal    F
  
 list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
- dealloc  dynamic grid EGRID           XLON      YLAT      NORMAL    TTIME     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 (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
+ 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)
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 23 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 24 dset:   1 I:    1    7  J:    2    6  K: -999 -999  L:    3    5  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)   NORMAL    NORMAL
+ 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)
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 deg on X, 2 deg on Y, 2 day on T
              FILENAME : bn_strides.cdf
@@ -43666,37 +44523,35 @@ 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)   NORMAL    NORMAL
- -DELETE XYTVAR   M: 23 dset:   1 I:    1    4  J:    1    3  K: -999 -999  L:    1    2  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   NORMAL    (AX001)
+ -DELETE XYTVAR   M: 23 dset:   1 I:      1      4  J:    1    3  K: -999 -999  L:      1      2
  canceling dset ./bn_strides.cdf
  
 ! map into Z instead of T
 use/order=zxy bn_strides
 show grid xytvar
- 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 GPC5            TTIME     XLON      YLAT      NORMAL    NORMAL    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 GPC5            TTIME     XLON      YLAT      NORMAL
     GRID GPC5
  name       axis              # pts   start                end                 subset
  TTIME     X (DAYS)            20 r   34319                34338               full
  XLON      Y (degrees_east)    40mr   141                  180                 full
  YLAT      Z (degrees_north)   30 r   1                    30                  full
  normal    T
- normal    E
- normal    F
  
 list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
- dealloc  dynamic grid GPC5            TTIME     XLON      YLAT      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 (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    4  J:    1    3  K:    1    2  L:    1    2  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
+ 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
+ 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
- rdstride XYTVAR   C:  7 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- nulrgd  XYTVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE XYTVAR   M: 23 dset:   1 I:    1    7  J:    2    6  K:    3    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL    NORMAL    NORMAL
+ 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
              VARIABLE : L*1000 + J*10 + I
                         regrid: 2 day on X, 2 deg on Y, 2 deg on Z
              FILENAME : bn_strides.cdf
@@ -43712,8 +44567,8 @@ 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    NORMAL    NORMAL
- -DELETE XYTVAR   M: 24 dset:   1 I:    1    4  J:    1    3  K:    1    2  L: -999 -999  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   NORMAL
+ -DELETE XYTVAR   M: 24 dset:   1 I:      1      4  J:    1    3  K:    1    2  L:   -999   -999
  canceling dset ./bn_strides.cdf
  
  
@@ -43722,17 +44577,17 @@ cancel region; set region/l=1
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6    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 (G006)          (AX024)   (AX023)   (AX001)   TAX1_6
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 24 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   TAX1_6    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -43747,26 +44602,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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6    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 (G006)          (AX023)   (AX024)   (AX002)   TAX1_6
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 24 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   TAX1_6    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -43781,24 +44636,24 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   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
  
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    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 (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 23 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -43813,27 +44668,27 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   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
  
 ! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    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 (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 23 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -43848,24 +44703,24 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 24 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   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
  
 ! reference output
 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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    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 (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7
+ allocate dynamic grid (G006)          (AX024)   (AX023)   (AX001)   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
- rdstride MIDVAR   C:  7 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 24 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -43880,26 +44735,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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX024)   (AX023)   (AX001)   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    NORMAL    NORMAL
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    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 (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7
+ allocate dynamic grid (G006)          (AX023)   (AX024)   (AX002)   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
- 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  M: -999 -999  N: -999 -999
- 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  M: -999 -999  N: -999 -999
- nulrgd  MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
- -DELETE MIDVAR   M: 24 dset:   1 I:    1    5  J:    2    5  K:    3    5  L:    1    1  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   ZAX1_7    NORMAL    NORMAL
+ 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
              VARIABLE : VAR
                         regrid: 4 delta on X, 3 delta on Y, 2 delta on Z
              FILENAME : bn_strides.cdf
@@ -43914,13 +44769,14 @@ 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    NORMAL    NORMAL
- -DELETE MIDVAR   M: 23 dset:   1 I:    1    2  J:    1    2  K:    1    2  L:    1    1  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid (G006)          (AX023)   (AX024)   (AX002)   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
  
 ! DEFINE AXIS can get the axis too long (bug 673)
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_axis_too_long.jnl
 ! From Ned Cokelet
 ! First definition of axis had last grid cell completely
@@ -43951,6 +44807,7 @@ LIST X[GX=x_ax], XBOXLO[GX=x_ax], XBOXHI[GX=x_ax]
 ! non-centered shade key
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_lev_c.jnl
  ! under linux only, this has a non-centered shade key
  
@@ -43980,6 +44837,7 @@ ppl list shakey
 ! At lon = 0, we used to have an E; remove this.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_lon_ax_0_label.jnl
 ! Label longitude axes with the degree sign only
 ! at x=0 (previously had an E).
@@ -43993,6 +44851,7 @@ shade/x=-20:20/y=-40:40/L=1 sst
 ! Errors listing string and numeric data together
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_list_string_numeric.jnl
 ! err553_list_string_numeric.jnl
 ! 2/2004 ACM
@@ -44088,6 +44947,7 @@ list/i=3:4/l=1:2 b, c, v
 ! Bug in setting axis to depth when reading from nc file
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_set_axis_depth.jnl
  ! NOAA/PMEL TMAP
  ! FERRET v5.53
@@ -44107,6 +44967,7 @@ q
 ! Set symbols showing levels settings when poly command is called
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_symbol_lev.jnl
 ! err553_symbol_lev.jnl
 ! 2/2004 ACM
@@ -44127,7 +44988,7 @@ LEV_TEXT = "C"
 LEV_MIN = "1"
 LEV_MAX = "10.2"
 LEV_NUM = "46"
-LEV_DEL = "irregular"
+LEV_DEL = "0.2"
  
 can sym lev*
 ! Now with /LEV=(min,max,del)
@@ -44164,6 +45025,7 @@ can sym lev*
 ! Fixes for modulo striding bugs
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_stride_modulo.jnl
 ! err553_stride_modulo_neg.jnl
 ! *acm* 3/31/2004
@@ -44266,6 +45128,7 @@ can mem; list/y=0 var[i=68]
 ! Fixes bug creating format for listing a very long line
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err553_list_width.jnl
 ! err553_list_width.jnl
 ! *acm* 4/1/2004
@@ -44712,6 +45575,7 @@ can mode ignore
 ! Test use of automatic levels in SHADE
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_shade_levels.jnl
 ! err560_shade_levels.jnl  *acm* 4/28/04
 ! Missing levels on SHADE auto-level
@@ -44726,6 +45590,7 @@ set view lower; shade/i=1:10/j=1:10 -1*i*j*0.0034
 ! Test use of reading irregular-time mc datasets
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_mc_irreg_t.jnl
 ! err560_mc_irreg_t.jnl
 ! 4/2004  ACM
@@ -44762,6 +45627,7 @@ list/x=180/y=0/t=2000 sst
 ! Crashed on SHADE of variable with NOLEAP axis, and subregion.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_shade_noleap.jnl
 ! err560_shade_noleap.jnl
 ! 4/30/04 ACM
@@ -44779,6 +45645,7 @@ shade/t=4-jan-2000:10-nov-2000 a
 ! -111, was treated as missing rather than a valid index.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_regridding_gaps.jnl
 ! err560_regrid
 !
@@ -44904,6 +45771,7 @@ sp rm xlongshift.nc
 ! bug in drawing the time axis.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_leap_years.jnl
 ! err560_leap_years.jnl
 ! Fixes for bug 882, inconsistency in computing whether
@@ -44922,6 +45790,7 @@ plot v[gt=tax at asn]
 ! Century portion of years were not properly tested in numdm1.F
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err560_century
 ! err560_century.jnl.jnl  *acm* 4/28/04
 ! Century portion of years were not properly tested in numdm1.F
@@ -45193,6 +46062,7 @@ PLOT/OVER/NOKEY/X=180/Y=1/K=1 temp
 ! POLYGON (or SHADE) plots with a single level had no fill color
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_singlecolor.jnl
 ! err570_singlecolor.jnl
 ! 7/6/2004
@@ -45236,6 +46106,7 @@ poly/lev=2 {0,1,2},{1,2,1},a ! OR lev=1
 ! colorbar labels too close to the bar, when user sets bar location
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_shakeylab.jnl
  
 ! err570_shakeylab.jnl
@@ -45252,7 +46123,7 @@ use coads_climatology
 ppl dfltfnt cr
  
 define viewport/axes/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
- !-> define viewport/axes/xlim=0.1:0.85/ylim=0.3333333:0.6666667 vp_1
+ !-> define viewport/axes/xlim=0.1:0.85/ylim=0.3333333333333333:0.6666666666666666 vp_1
 set viewport vp_1
  
 fill/set/L=2 sst
@@ -45273,7 +46144,7 @@ ppl fill
 !
  
 define viewport/axes/xlim=0.1:0.85/ylim=`1/3`:`2/3` vp_1
- !-> define viewport/axes/xlim=0.1:0.85/ylim=0.3333333:0.6666667 vp_1
+ !-> define viewport/axes/xlim=0.1:0.85/ylim=0.3333333333333333:0.6666666666666666 vp_1
 set viewport vp_1
  
 shade/set/L=2 sst
@@ -45297,6 +46168,7 @@ ppl dfltfnt sr
 ! Null input gives wierd error message
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_null_symbol.jnl
 ! err570_null_symbol.jnl
 ! null input -- > wierd error message see bug 919
@@ -45314,6 +46186,7 @@ can mode ignore
 ! Replace text expression with its value: string variable was too short
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_parse_labelcommand.jnl
 ! err570_parse_labelcommand.jnl
 ! fix for bug 956.
@@ -45344,6 +46217,7 @@ label/nouser 3.6,`($ppl$ylen)+0.2`,0,0,0.08, `tsulab`
 ! result of COMPRESSK_BY function does not vary in X
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_compressk_by.jnl
 ! err570_compress_by.jnl
 ! fix for bug 925
@@ -45437,6 +46311,7 @@ list tlev[k=1]
 ! Command parsing on PPL side had string lengths too short
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_long_label.jnl
 ! err570_long_label.jnl
 ! Fix for bug 956
@@ -45487,6 +46362,7 @@ set mode/last verify
 ! Allow PPL POLYGON after a POLY/SET (previously was PPL FILLPOL)
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_ppl_poly.jnl
 ! err570_ppl_poly.jnl
  
@@ -45509,6 +46385,7 @@ ppl polygon
 ! Fix formatting of coordinates on LIST/FORMAT=tab or /FORMAT=comma
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_list_tab_coords.jnl
 ! err570_list_tab_coords.jnl
 ! acm 9/7/04
@@ -45552,6 +46429,7 @@ list/form=comma aa
 ! Fix bug in HASH_CX for large numbers of varibles
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_many_variables.jnl
 ! err570_many_variables.jnl
 ! 27-sep-2004  ACM
@@ -45815,6 +46693,7 @@ list str4a
 ! Fix bug in @CNNN within multi-line labels
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_cnnn_multiline.jnl
 ! Changing pen with @Cnnn did not work in
 ! multi-line labels
@@ -45829,6 +46708,7 @@ label 0.1, 0.3, 0, 0, 0.2, "greek<NL>@SGt at SR_y<NL>works"
 ! For a very fine grid, coordinates not listed with enough precision.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_fine_grid_list.jnl
 ! err570_fine_grid_list.jnl
 ! ACM 10/2004
@@ -45933,6 +46813,7 @@ cancel list/precision
 ! Plot using /HLIM
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_hlimit_onepoint
 !err570_hlimit_onepoint.jnl
 ! 15-Oct-2004  ACM
@@ -45955,6 +46836,7 @@ set mode/last ignore_error
 ! caused a segfault.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_index111.jnl
 ! err570_index111.jnl
 ! 3-nov-04 ACM
@@ -46001,6 +46883,7 @@ LIST/T=1-jan-1997:1-jan-1998 s2[GT=s1 at NRST]
 ! crashed on trying to format value for the output buffer.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_sh_dat_nan.jnl
 ! err570_sh_dat_nan.jnl
 ! 4-Nov-2004 acm
@@ -46014,8 +46897,8 @@ show data/full
      currently SET data sets:
     1> ./nan_missing.nc  (default)
      NCEP Ocean Analysis
- name     title                             I         J         K         L         M         N
- TEMP     temperature                      1:1       1:1       1:19      1:1       ...       ...
+ name     title                             I         J         K         L
+ TEMP     temperature                      1:1       1:1       1:19      1:1
              degree_Celsius on grid GGH1 with -1.E+34 & NaN for missing data
              X=139.8E:140.8E  Y=0.5S:0.5N  Z=0:375  
  
@@ -46026,6 +46909,7 @@ show data/full
 ! Time reqest out of range on NOLEAP axes.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_time_range.jnl
 ! err570_time_range.jnl  bug1080
 ! time request out of range with calendar axis and RETURN=
@@ -46050,6 +46934,7 @@ set var/units="`a[gx=var1_grid_,gy=var1_grid_,d=2,t="16-Jan-1861 12:00:00"],retu
 ! a non-standard calendar axis
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_poly_over_julian.jnl
 ! err570_poly_over_julian.jnl
 ! ACM 11/12/04
@@ -46072,6 +46957,7 @@ poly/ov/pal=green {400,900,900,400}, {25.5,25.5,26.5,25.5}
 ! string substitution returns the user-given error message
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_coaching hello
 ! err570_coaching.jnl
 ! ACM 11/12/04  Bug 1077
@@ -46116,6 +47002,7 @@ set mode/last ignore_errors
 ! name of the script
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_dollar_zero.jnl
 ! err570_dollar_zero.jnl
 ! (bug 485) Got a command syntax error;
@@ -46131,6 +47018,7 @@ SET MODE/LAST ignore_error
 ! Fix for bug 596; list/i=0:300:0 var crashed Ferret
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_illegal_stride.jnl
 ! err570_illegal_stride.jnl
 ! (bug 596) list/i=0:300:0 var crashed Ferret
@@ -46144,6 +47032,7 @@ SET MODE/LAST ignore_error
 ! Fix for bug 1085; /THICK without color specifier caused all lines to revert to black
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_thick_colors.jnl
 ! err570_thick_colors.jnl  bug1085
 ! /THICK without color specifier causes all lines to revert to black
@@ -46169,6 +47058,7 @@ PLOT/OVER/VS/LINE/THICK=1/I=1:314 i*cos(i/14), i*sin(i/14)
 ! starts with a digit.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_digit_filename.jnl
 ! err570_digit_filename.jnl
 ! Bug 1102: under linux, var[d=filename] fails if filename
@@ -46234,13 +47124,14 @@ list a[i=1:4,d=10a.nc]
 ! Fix for bug 1098: DODS URL label was cut off
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_dods_url_label.jnl
 ! err570_dods_url_label.jnl
 !
 ! Bug 1098. Look for the label with the URL: it should include
 ! everything up to the last slash.
 ! acm 11/04
- 
+! acm* 3/17 check the URL with TEST_OPENDAP befor trying to open it.
  
 !! Change to another dataset, our server down...
 !!use  "http://www.ferret.noaa.gov/cgi-bin/nph-nc/data/bn_strides.cdf"
@@ -46270,23 +47161,26 @@ GO err570_dods_url_label.jnl
 !!plot/x=180/y=0/k=1 temp
 !!ppl list labels
  
+! If we cant open this, just bail on the test
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/coads_climatology.nc") NE 0` THEN EXIT/SCRIPT
+ !-> IF 0 THEN EXIT/SCRIPT
  
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/coads_climatology.nc"
+use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/coads_climatology.nc"
 sh data
      currently SET data sets:
-    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/coads_climatology.nc  (default)
- name     title                             I         J         K         L         M         N
- 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      ...       ...
+    1> http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/coads_climatology.nc  (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
  
 plot/x=180/y=0 sst
 ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C)                                             
+ @ACSEA SURFACE TEMPERATURE                                                     
                                                                                 
  @ASDeg C                                                                       
 
@@ -46297,13 +47191,14 @@ ppl list labels
  LINE PT:    0.000E+00 0.000E+00  NO LINE     LEFT   JUSTIFY LABEL
  LAB 3  8.000E+00  6.550E+00 0.090    0  SYSTEM  @ASDATA SET: coads_climatology
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
- LAB 4  8.000E+00  6.790E+00 0.064    0  SYSTEM  @ASOPeNDAP <NL>URL: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
+ LAB 4  8.000E+00  6.790E+00 0.058    0  SYSTEM  @ASOPeNDAP <NL>URL: http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/
  LINE PT:    0.000E+00 0.000E+00  NO LINE     RIGHT  JUSTIFY LABEL
  
  
 ! Fix for bug 906: auto-formatting of labels on color keys loses precision
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_keylabels.jnl
 ! err570_keylabels.jnl
 ! 11/2004
@@ -46319,6 +47214,7 @@ shade/lev=(370,382,0.5) a
 ! where polygon arguments have latitude or longitude units
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err570_poly_lonlat_axis.jnl
 ! err570_poly_lonlat_axis.jnl
 ! 12/14/04
@@ -46365,8 +47261,8 @@ set view left
 fill/x=20e:150e/lev=(-inf),(4,28,0.5)(inf) sst[l=1]
 sh sym lev*
 LEV_TEXT = "(-INF),(4,28,0.5)(INF)"
-LEV_MIN = "-2.8"
-LEV_MAX = "32"
+LEV_MIN = "open-ended"
+LEV_MAX = "open-ended"
 LEV_NUM = "50"
 LEV_DEL = "irregular"
  
@@ -46374,8 +47270,8 @@ set view right
 shade/lev=(-inf),(4,28,0.5)(inf)/key=cont sst[l=1]
 sh sym lev*
 LEV_TEXT = "(-INF),(4,28,0.5)(INF)"
-LEV_MIN = "-2.8"
-LEV_MAX = "32"
+LEV_MIN = "open-ended"
+LEV_MAX = "open-ended"
 LEV_NUM = "50"
 LEV_DEL = "irregular"
  
@@ -46501,7 +47397,7 @@ PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
 label/nouser 0,3,-1,0,.15,"@P2 at IILine1<NL>@IIA LONGER LINE"
 let wid = labwid("@P2 at IILine1<NL>@IIA LONGER LINE",.15)
 label/nouser `wid`, 3, -1, 0, .15,  "@P4 at IIMulti-line<NL>Length is longest of ALL lines<NL>Line three"
- !-> PPL %LABEL/nouser 2.019231, 3, -1, 0, .15,  "@P4 at IIMulti-line<NL>Length is longest of ALL lines<NL>Line three"
+ !-> PPL %LABEL/nouser 2.019230842590332, 3, -1, 0, .15,  "@P4 at IIMulti-line<NL>Length is longest of ALL lines<NL>Line three"
  
 LIST LABWID("aaaaabbbbb", .10)
              VARIABLE : LABWID("aaaaabbbbb", .10)
@@ -46607,12 +47503,12 @@ use illeg_axname.nc
 sh data
      currently SET data sets:
     1> ./illeg_axname.nc  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:21      1:16      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:21      1:16      ...       ...
  NEW.LONGITUDES
-          X[GX=SST]                        1:21      ...       ...       ...       ...       ...
+          X[GX=SST]                        1:21      ...       ...       ...
  NEW.LATITUDES
-          Y[GY=SST]                        ...       1:16      ...       ...       ...       ...
+          Y[GY=SST]                        ...       1:16      ...       ...
  
 list/i=1:5 x[gx=sst]
              VARIABLE : X
@@ -46647,8 +47543,6 @@ sh grid sst
  'COADSY.ILLEGAL' LATITUDE     16 r   35N                  65N                 full
  normal    Z
  normal    T
- normal    E
- normal    F
 *** Running ferret script: bn_exit_script.jnl
 [?1034h! bn_exit_script.jnl
 ! 5/2005 ACM
@@ -46883,6 +47777,7 @@ ppl fill
 ! Bug 1160 short axis with irreg bounds seen as regular.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_irreg_bounds.jnl
 ! err580_irreg_bounds.jnl
 ! Define a short irregular time axis with some time_bounds,
@@ -46899,8 +47794,6 @@ show grid/t a
  normal    Y
  normal    Z
  TIME      T                    2 i   0.5                  2                   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO
        1>  0.5                   1          0
@@ -46923,8 +47816,6 @@ show grid/t a
  normal    Y
  normal    Z
  TIME1     T                    2 i   0.5                  2                   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO
        1>  0.5                   1          0
@@ -46933,6 +47824,7 @@ show grid/t a
 ! Bug 1179 Cartesian_axis and positive="down" resulted in depth axis not being recognized
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_cartesian_depth.jnl
  ! err580_cartesian_depth.jnl
 ! cartesian_axis attribute
@@ -46948,12 +47840,11 @@ sh grid temp
  GRID_Y_T  LATITUDE             1 r   0.25S                0.25S               full
  ZT        DEPTH (m)           10 i-  22.5                 158                 full
  TIME1     TIME                 1mr   15-FEB-1900 03:00    15-FEB-1900 03:00   full
- normal    E
- normal    F
  
 ! Bug 1181 Titles were truncated at 80 characters
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_long_title.jnl
  
  ! err580_long_title.jnl
@@ -46967,6 +47858,7 @@ sp ncdump longtitle.nc >> all_ncdump.out
 ! Bug 1180 Allow "use filename.des"
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_use_des.jnl
 ! err580_use_des.jnl
 ! Allow "use filename.des"   (previously gave an "is this a CDF file?" error)
@@ -46975,14 +47867,15 @@ use vary_scale.des
 sh data
      currently SET data sets:
     1> ./vary_scale.des  (default)
- name     title                             I         J         K         L         M         N
- TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20
  
  
  
 ! Bug 1180 Allow "use filename.des"
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_use_des.jnl
 ! err580_use_des.jnl
 ! Allow "use filename.des"   (previously gave an "is this a CDF file?" error)
@@ -46991,13 +47884,14 @@ use vary_scale.des
 sh data
      currently SET data sets:
     1> ./vary_scale.des  (default)
- name     title                             I         J         K         L         M         N
- TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ TT       1 + 0*T[GT=DAYT]                 ...       ...       ...       1:20
  
  
 ! fix for bug 1181: dataset title was limited to 80 characters.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_long_dsettitle.jnl
 ! err580_long_dsettitle
 ! fix for bug 1181
@@ -47020,6 +47914,7 @@ sp ncdump longtitle.nc >> all_ncdump.out
 ! fix for bug 1200:crash due to the long veckey format spec.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_long_veckey.jnl
 ! err580_long_veckey.jnl
 ! Bug 1200 The following caused a crash due to the long veckey format spec.
@@ -47035,6 +47930,7 @@ ppl veckey,0,0,,"(1PG10.3)"
 ! fix for bug 1201: mistranslation of time region.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_cal360_region.jnl
 ! err580_cal360_region.jnl
 ! Wrong output region: the set region mistakenly tranlated
@@ -47056,6 +47952,7 @@ default region:
 ! fix for bug 1203: crash if time range left off.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_def_tax_norange.jnl
 ! err580_def_t_norange.jnl
 ! bug 1203. without the T range, these statements cause a STOP.
@@ -47068,6 +47965,7 @@ DEFINE AXIS/T0="1-JAN-1861"/UNITS=months/T/CALENDAR=noleap myt
 ! fix for bug 1207: closest distance and closest index transformations.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_cdb.jnl
 ! err580_cdb.jnl
 ! bug 1207
@@ -47111,6 +48009,7 @@ list var[i=5 at cia:10]
 ! fix for bug 1214: crash on repeating a SET VIEW when viewport defined with /AXES
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_def_view_axes.jnl
 ! err580_def_view_axes.jnl
 ! BUG 1214
@@ -47151,6 +48050,7 @@ sp rm -f viewaxes.plt*
 ! fix for bug 1205: symbol LEV_DEL wrong when single level specified
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_lev_del.jnl
 ! err580_lev_del.jnl
 ! demonstrates bug 1205; precision of LEV_DEL when single level specified.
@@ -47179,6 +48079,7 @@ LEV_DEL = "1.2"
 ! Fix for bug 1174: strfloat_c("nonsense") gave result of 0 rather than missing.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_strfloat_errors.jnl
 ! err580_strfloat_errors.jnl
 ! Previously a nonsense input gave a result of 0.
@@ -47200,6 +48101,7 @@ list/prec=6 strfloat(b)
 ! Fixes for bugs 1249, 1250: uppercase not recognized for qualifier argument
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_arg_case.jnl
 ! err580_arg_case.jnl
 ! 5/2005
@@ -47219,6 +48121,7 @@ plot/step=CONN/i=1:10 sin(i)
 ! Fixes for bugs 1019: kludge for CDC time axes made time origin incorrect on outputs
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_cdc_timeaxis.jnl
 ! err580_cdc_timeaxis.jnl
 ! 6/3/05
@@ -47268,6 +48171,7 @@ sp rm -f my_cdc_timeaxis.nc
 ! Fix for bug 1272: show axis/t= with NOLEAP calendar
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err580_show_axis_t.jnl
 ! err580_show_axis_t
 ! bug 1272: wrong range shown when nonstd calendar
@@ -47314,6 +48218,7 @@ T0 = 15-JAN-1901
 ! Fix for bug 1279 which was only in the first iteration of v5.81 release
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_nlev.jnl
 ! err580_nlev.jnl
 ! bug 1279
@@ -47328,6 +48233,7 @@ fill/lev=30 sst[l=2]
 ! acm 8/29/2005
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_vs_poly_axis.jnl
 ! err581_vs_poly_axis.jnl
 ! Test fix of bug 1349: formatted axis labels on PLOT/VS and POLYGON plot
@@ -47528,7 +48434,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"
+FERRET_VERSION = "7.1"
  
 ! history attribute
 let a = 12
@@ -47546,11 +48452,11 @@ 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/dbg) version7:
+ Commands in Program PyFerret (beta/debug) version7.1:
  SET
  SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE/QUALITY/ANTIALIA/NOANTIAL
       /ENGINE/COLOR/OPACITY/THICKEN/XPIXELS/YPIXELS/XINCHES/YINCHES/TEXTPROM
-      /OUTLINE
+      /OUTLINE/SCALE
  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
  SET VIEWPORT
  SET EXPRSION
@@ -47577,12 +48483,12 @@ sho command
  SHOW EXPRSION/ALL
  SHOW LIST/ALL
  SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
-       /HIDDEN
+       /HIDDEN/MEMBERS
  SHOW MODE/ALL
  SHOW MOVIE/ALL
  SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
  SHOW COMMANDS/ALL/BRIEF
- SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+ SHOW MEMORY/ALL/DIAGNOST/TEMPORY/PERMANT/FREE
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
  SHOW VIEWPORT/ALL
  SHOW TRANFORM/ALL
@@ -47638,13 +48544,13 @@ sho command
  DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+         /EDGES/CALENDAR/BOUNDS/QUIET/MONTHLY/LIKE
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
  DEFINE ALIAS
  DEFINE SYMBOL
  DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE/U
  DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
  EXIT/COMMAND/LOOP/SCRIPT/PROMPT/PROGRAM/CYCLE/TOPYTHON
  MESSAGE/CONTINUE/QUIET/JOURNAL/ERROR/OUTFILE/APPEND/CLOBBER
@@ -47655,13 +48561,12 @@ sho command
  PPLUS/RESET
  FRAME/FORMAT/FILE/TRANSPAR/XINCHES/YINCHES/XPIXELS/YPIXELS/ANNOTATE
  REPEAT/I/J/K/L/M/N/X/Y/Z/T/E/F/ANIMATE/LOOP/RANGE/NAME
- STAT/BRIEF/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET
+ STAT/BRIEF/PRECISIO/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET
  SHADE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE/TRIM
         /LINE/NOLABEL/LEVELS/KEY/NOKEY/PALETTE/XLIMITS/YLIMITS/TITLE/AXES
         /NOAXES/PATTERN/HGRATICU/VGRATICU/GRATICUL/MODULO/HLIMITS/VLIMITS
         /OPACITY/DEGMINSE/HALFSPAC
  SPAWN
- USER/OPT1/OPT2/COMMAND/I/J/K/L/X/Y/Z/T/DATASET/FILE/FORMAT
  WIRE/I/J/K/L/M/N/X/Y/Z/T/E/F/OVERLAY/SET_UP/FRAME/DATASET/VIEWPOIN/ZLIMITS
        /TRANPOSE/NOLABEL/ZSCALE/TITLE
  QUERY/ALL/FILE/IGNORE
@@ -47688,7 +48593,7 @@ go ptest
 PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
  
 sh sym win_title
-WIN_TITLE = "17-Jun-16_15:17"
+WIN_TITLE = "18-Apr-17_17:15"
  
 set win/title="set the title"
 sho sym win_title
@@ -47706,7 +48611,7 @@ sho sym win_title
 WIN_TITLE = "_"
  
 set win/title="($session_date):($session_time)"
- !-> set win/title="17-Jun-16:15:17"
+ !-> set win/title="18-Apr-17:17:15"
  
 ! If the date or time starts with a blank then we get an extra
 ! underscore in the window title. Evaluating the symbols into
@@ -47715,16 +48620,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-Jun-16
+ !-> DEFINE SYMBOL the_date = 18-Apr-17
 DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 15:17
+ !-> DEFINE SYMBOL the_time = 17:15
 SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="17-Jun-16:15:17"
+ !-> SET WIN/TITLE="18-Apr-17:17:15"
  
 can win/all
 set win/new
 sh sym win_title
-WIN_TITLE = "17-Jun-16:15:17"
+WIN_TITLE = "18-Apr-17:17:15"
 *** Running ferret script: bn_last_error.jnl
 [?1034h! bn_last_error.jnl
 ! acm Nov 2005
@@ -48115,6 +49020,7 @@ list zboxlo[gz=zax2], z[gz=zax2], zboxhi[gz=zax2]
 ! 31Aug2006 ACM Remove OPeNDAP references; not essential to the
 ! benchmark tests.
  
+! small addition below 1/17 *sh*
  
 !-----
  
@@ -48470,6 +49376,7 @@ can mode ignore
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! attributes of string variables
@@ -48485,6 +49392,7 @@ sp ncdump a.nc >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Demonstrate `var,return=` output for attributes
@@ -48529,6 +49437,7 @@ say `broiled.acf,return=size`
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! define variables to contain attribute value(s)
@@ -48563,6 +49472,7 @@ list s
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Variables containing number of variables, attributes, dimensions,
@@ -48771,6 +49681,7 @@ let anames = `names[i=2]`.attnames
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
  
 !-----
@@ -48812,6 +49723,7 @@ say `(yax_lev94).nattrs[d=1]`
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! more on access to attribute names and values as variables
@@ -48831,12 +49743,10 @@ list/d=3 a
 list temp.units[d=3]
              VARIABLE : TEMP.UNITS[D=ocean_atlas_temp]
              FILENAME : ocean_atlas_temp.cdf
-             X        : 1
         "Deg C"
 list/d=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : ocean_atlas_temp.cdf
-             X        : 1
         "From ocean_atlas_monthly"
  
 can data/all
@@ -48953,6 +49863,7 @@ list a[i=1]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! keyword . to refer to global properties and attributes
@@ -48980,24 +49891,23 @@ list/d=2 ..nvars
 sh data
      currently SET data sets:
     1> ./gt4d011.cdf
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
+ SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
+ U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
+ V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
+ W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
+ TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
+ TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
+ PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  
     2> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
 list/d=2 ..varnames
              VARIABLE : ..VARNAMES
              FILENAME : coads_climatology.cdf
-             X        : 1
         "SST"
  
 list/d=2 ..dimnames
@@ -49041,7 +49951,6 @@ list/d=1 ..nattrs
 list/d=1 ..attnames
              VARIABLE : ..ATTNAMES
              FILENAME : gt4d011.cdf
-             X        : 1
         "history"
  
 list/d=1 ..ndims
@@ -49090,6 +49999,7 @@ list/d=2 pp
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Editing attributes: add new attributes to a variable.
@@ -49142,6 +50052,7 @@ sh att/all temp[d=1]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Edit existing attributes on variables
@@ -49175,12 +50086,10 @@ use coads_climatology
 list (coadsx).units
              VARIABLE : (COADSX).UNITS
              FILENAME : coads_climatology.cdf
-             X        : 1
         "degrees_east"
 list (coadsx).modulo
              VARIABLE : (COADSX).MODULO
              FILENAME : coads_climatology.cdf
-             X        : 1
         " "
 sho att/all (coadsx)
      attributes for dataset: ./coads_climatology.cdf
@@ -49310,6 +50219,7 @@ can view
 can mode ignore
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Edit attributes: inherit all attrs from another variable
@@ -49329,11 +50239,11 @@ sh att/all salt
 set att/like=temp salt
 sh att/all salt
      attributes for dataset: ./gt4d011.cdf
+ SALT.missing_value = 0.01
+ SALT._FillValue = 0.01
  SALT.parent_grid = PS3DT2 
  SALT.slab_min_index = 91, 35, 1, 0
  SALT.slab_max_index = 108, 56, 10, 0
- SALT.missing_value = -1.E+34
- SALT._FillValue = -1.E+34
  SALT.long_name = TEMPERATURE 
  SALT.history = From gt4d011 
  SALT.units = deg. C 
@@ -49364,11 +50274,10 @@ let temp3 = temp*3
 set att/like=temp temp3
 sh att/all temp3
      attributes for user-defined variables
+ temp3.missing_value = -1.E+34
  temp3.parent_grid = PS3DT2 
  temp3.slab_min_index = 91, 35, 1, 0
  temp3.slab_max_index = 108, 56, 10, 0
- temp3.missing_value = -1.E+34
- temp3._FillValue = -1.E+34
  temp3.long_name = TEMPERATURE 
  temp3.history = From gt4d011 
  temp3.units = deg. C 
@@ -49376,7 +50285,7 @@ sh att/all temp3
  
 can var temp2
 let/units="degrees C"/title="my new TEMP"/bad=`temp,return=bad` temp2 = temp*2
- !-> DEFINE VARIABLE/units="degrees C"/title="my new TEMP"/bad=-1.E+34 temp2 = temp*2
+ !-> DEFINE VARIABLE/units="degrees C"/title="my new TEMP"/bad=-9.999999790214768E+33 temp2 = temp*2
 sh att/all temp2
      attributes for user-defined variables
  temp2.long_name = my new TEMP 
@@ -49385,6 +50294,7 @@ sh att/all temp2
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Edit attributes, changing type
@@ -49474,6 +50384,7 @@ list pq
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! When we CANCEL MODE upcase_output, writing a netcdf file preserves
 ! case of variable and axis names. This file has lower case and some
@@ -49495,6 +50406,7 @@ set mode/last upcase_output
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
  
@@ -49542,6 +50454,7 @@ sp ncdump -c a.nc >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
  
 !-----
@@ -49605,6 +50518,7 @@ sp ncdump -h a.nc >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Read EZ ascii, delimited, and stream data files,
@@ -49616,9 +50530,9 @@ file/var="a1,a2,a3" EZ.DAT
 def att a1.three={1,2,3}
 sh att/all a1
      attributes for dataset: ./EZ.DAT
- A1.long_name = A1 
- A1.missing_value = -1.E+34
- A1.three = 1, 2, 3
+ a1.long_name = a1 
+ a1.missing_value = -1.E+34
+ a1.three = 1, 2, 3
 sh dat/att
      currently SET data sets:
     1> ./EZ.DAT  (default)
@@ -49627,14 +50541,14 @@ sh dat/att
   
  .                               history         CHAR        6    F       EZ.DAT
   
- A1                    FLOAT     long_name       CHAR        2    T       A1
+ a1                    FLOAT     long_name       CHAR        2    T       a1
                                  missing_value   FLOAT       1    T       -1.E+34
                                  three           FLOAT       3    T       1 2 3
   
- A2                    FLOAT     long_name       CHAR        2    T       A2
+ a2                    FLOAT     long_name       CHAR        2    T       a2
                                  missing_value   FLOAT       1    T       -1.E+34
   
- A3                    FLOAT     long_name       CHAR        2    T       A3
+ a3                    FLOAT     long_name       CHAR        2    T       a3
                                  missing_value   FLOAT       1    T       -1.E+34
   
 save/file=a.nc/clobber a1,a2,a3
@@ -49669,11 +50583,12 @@ file/format=str/var=num,num1/grid=mygrid/order=xyztv permutedBinaryTest.dat
 define att/type=string num.new = "a string attribute"
 sh att/all num
      attributes for dataset: ./permutedBinaryTest.dat
- NUM.long_name = NUM 
- NUM.missing_value = -1.E+34
- NUM.new = a string attribute 
+ num.long_name = num 
+ num.missing_value = -1.E+34
+ num.new = a string attribute 
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! manipulate attributes of user-defined variables
@@ -49726,6 +50641,7 @@ sp ncdump -h a.nc >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
  
@@ -49791,6 +50707,7 @@ sp ncdump a.nc  >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! Set type of data on output, uses netcdf call to output
@@ -49858,6 +50775,7 @@ can data test0
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! More tests of user-defined variables. Bug 1427, now fixed, problem with varid of user vars
@@ -49933,6 +50851,7 @@ set var/outtype=garbage broiled
 can mode ignore
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
  
 !---!!!---
@@ -49980,6 +50899,7 @@ save/file=a.nc/clobber/L=1 t2
 sp ncdump -h a.nc >> all_ncdump.out
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! User-defined axes and variables
  
@@ -50010,6 +50930,7 @@ sh att/all (x2ax)
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 use levitus_climatology
 define att/out (`temp,return=xaxis`).new_att = "something"
@@ -50053,6 +50974,7 @@ save/file=a.nc/clobber/y=0:5 two
 sp ncdump -h a.nc >> all_ncdump.out
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! defining more axes with attributes
  
@@ -50086,6 +51008,7 @@ sp ncdump -h string4d.nc >> all_ncdump.out
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! For SET ATT timeaxis.units or SET ATT timeaxis.time_origin
 ! include the correct time origin as part of the units attribute.
  
@@ -50183,12 +51106,11 @@ set att/like=sst sst2
 list sst2.attnames
              VARIABLE : SST2.ATTNAMES
              FILENAME : coads_climatology.cdf
-             SUBSET   : 5 points (X)
+             SUBSET   : 4 points (X)
  1   / 1:"missing_value"
- 2   / 2:"_FillValue"   
- 3   / 3:"long_name"    
- 4   / 4:"history"      
- 5   / 5:"units"        
+ 2   / 2:"long_name"    
+ 3   / 3:"history"      
+ 4   / 4:"units"        
  
  
 ! Add a global attribute
@@ -50376,6 +51298,17 @@ sho att (`temp[d=1],return=taxis`[d=1])
 sho att .
      attributes for dataset: ./levitus_climatology.cdf
  ..history = FERRET V5.22    5-Apr-01 
+ 
+! 1/17 *sh*
+! added a test of shifting attributes in is_attrib_val.F
+define att temp.test_counter = {1, 2, 3, 4, 5}
+list temp.test_counter[i=3:5]
+             VARIABLE : TEMP.TEST_COUNTER[I=3:5]
+             FILENAME : levitus_climatology.cdf
+             SUBSET   : 3 points (X)
+ 3   / 3:  3.000
+ 4   / 4:  4.000
+ 5   / 5:  5.000
 *** Running ferret script: bn_transforms.jnl
 [?1034h! Test the transforms
  
@@ -50705,10 +51638,13 @@ use this_is_not_a_file.nc
 !!use "http://iridl.ldeo.columbia.edu/SOURCES/.FSU/.FULL/.tauyyyyy/dods"
  
 ! This is a valid address
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_air.cdf"
+use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_air.cdf"
+ 
+ 
+! Intentional errors
  
 ! change the variable name to something nonexistent
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
+use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
  
 ! bad server
 use  "http://noserver/a/nofile.cdf"
@@ -50732,6 +51668,7 @@ set mode/last ignore
 ! Bug 1129 axis formatting when /HLIM sets axis length < 0.15 deg
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_hlim_axislab.jnl
 ! err581_hlim_axislab.jn
 ! bug 1129
@@ -50766,6 +51703,7 @@ ppl list xaxis
 ! Bug 1275 stray characters appear in data lines listing string data
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_list_stray_chars.jnl
 ! err581_list_stray_chars.jnl
 ! 8/2005 (acm) bug 1275  stray characters in data listing
@@ -50803,6 +51741,7 @@ list/i=1:5 id, country, type
 ! pattern matching for SHO FUNC failed to match all EF's
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_sho_func_pattern_match.jnl
 ! err581_sho_func_pattern_match.jnl
 ! bug 1186
@@ -50847,6 +51786,7 @@ IS_ELEMENT_OF_STR_N(VAR,VALUES)
 ! FILL on data with subspan modulo axis, got wrong data
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_subspanx_fill_bug.jnl
 ! err581_subspanx_fill_bug.jnl
 ! bug 900: subspan longitude axis and hlimits gets wrong data
@@ -50872,6 +51812,7 @@ sp rm -f err581_subspanx_fill_bug.nc
 ! bug 1318 Spurious error message on USE file where file has axes with bounds.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_use_bounds.jnl
 ! err581_use_bounds.jnl
 ! bug 1318 Spurious error message on USE file where file has axes with bounds.
@@ -50887,6 +51828,7 @@ use xyir
 ! Bug 1332 variable not scaled unless it is first variable in stepfile.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_des_scale.jnl
 ! err581_des_scale.jnl  bug 1332. When using a descriptor file and
 ! a varriable has scale_factor and/or add_offset attributes, the
@@ -50906,6 +51848,7 @@ EXIT/SCRIPT   ! error in namelist record...
 ! Bug 1335 Zero-contour should be dark line.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_contour_zero_lev.jnl
 ! err581_contour_zero_lev.jnl
 ! acm 9/7/2005
@@ -50918,6 +51861,7 @@ contour/lev=(-20,20,2) sst[L=1] - 20
 ! Bug 1339, code hangs with this combination of (-INF)(INF) levels and shakey
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_shakey_inf.jnl
 ! err581_shakey_inf.jnl
 ! acm 9/7/2005
@@ -50936,6 +51880,7 @@ ppl/reset  ! undo the SHAKEY setting.
 ! Bug 918, immediate mode parsing in IF blocks
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_if_conditional.jnl
 ! err581_if_conditional.jnl  bug 918.
 ! acm 10/2005
@@ -51146,6 +52091,7 @@ palette rainbow
 ! Ungraceful STOP if we asl for multi-var transformations on axis where there is no data
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_illegal_trans.jnl
 ! err581_illegal_trans.jnl
 ! Ungraceful STOP if we do @VAR on an axis where there is no data
@@ -51162,6 +52108,7 @@ can mode ignore_error
 ! missing flag gets scaled by scale and offset factors!
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_missing_scale_off.jnl
 ! err581_missing_scale_off.jnl
 ! ACM 11/8/05
@@ -51195,6 +52142,7 @@ list tt
 ! SHOW GRID and other output have wrong dates, non-std calendar axesv
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_cal_dates_output.jnl
 ! err581_cal_dates_output.jnl
 ! bug 1363:
@@ -51216,13 +52164,12 @@ sho grid t3
  normal    Y
  normal    Z
  T360      TIME                61 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
- normal    E
- normal    F
  
 ! bug 1365
 ! STOP on shade command when modulo-regridding a time-limited nonstd calendar
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_noleap_mod.jnl
 ! err581_noleap_mod.jnl
 ! This is bug 1365: STOP on shade command
@@ -51242,6 +52189,7 @@ shade/y=0/k=1 a_clim
 ! CANCEL DATA errors
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_cancel_data.jnl
 ! err581_cancel_data.jnl
  
@@ -51262,8 +52210,8 @@ use "subdir/a.nc"
 sh data
      currently SET data sets:
     1> subdir/a.nc  (default)
- name     title                             I         J         K         L         M         N
- A        {1,5,6}                          1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        {1,5,6}                          1:3       ...       ...       ...
  
 can data "subdir/a.nc"
 sh data
@@ -51273,8 +52221,8 @@ set data "subdir/0000_a.nc"
 sh data
      currently SET data sets:
     1> subdir/0000_a.nc  (default)
- name     title                             I         J         K         L         M         N
- A        {1,5,6}                          1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        {1,5,6}                          1:3       ...       ...       ...
  
 can dat 0000_a
 set data "subdir/0000_a.nc"
@@ -51294,6 +52242,7 @@ sp rm -f subdir/0000_a.nc
 ! CANCEL DATA errors
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_since_units.jnl
 ! err581_since_units.jnl
 ! bug 1394: units of months_since_event
@@ -51326,6 +52275,7 @@ list a
 ! CANCEL DATA errors
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_exp_spaces.jnl
 ! err581_exp_spaces.jnl
 ! bug 1395
@@ -51382,6 +52332,7 @@ can mode ignore
 ! bugs 439,1390: applying command context
 GO bn_reset.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_command_cx.jnl
 ! err590_command_cx.jnl
 ! bugs 439 and 1390: the command context should apply to immed. mode evaluation
@@ -51408,6 +52359,7 @@ can mode ignore
 ! bug 1401: define 1-point axis with bounds; gets bounds wrong
 GO bn_reset.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_define_1pt_bounds.jnl
 ! err581_define_1pt_bounds.jnl
 ! see bug 1401:
@@ -51451,6 +52403,7 @@ list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
 ! Bug in strrindex when 1st argument is a list of strings
 GO bn_reset.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_strrindex.jnl
 ! err581_strrindex.jnl
 ! 5/2/2006
@@ -51470,6 +52423,7 @@ list strrindex(var,"s")
 ! POLYGON/LINE over a depth axis.
 GO bn_reset.jnl
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err581_poly_rev.jnl
 ! err581_poly_rev.jnl
 ! POLYGON/LINE mis-locates the line when there is a depth or
@@ -51532,6 +52486,7 @@ set mem /size=25.6
 ! Bug 1443
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_long_bounds_name
 ! err600_long_bounds_name.jnl
 ! Long name for bounds attribute was not read by Ferret
@@ -51564,6 +52519,7 @@ list  x[gx=var], xbox[gx=var], xboxlo[gx=var], xboxhi[gx=var]
 ! bug1434
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_check_bounds_regular.jnl
 ! err600_check_bounds_regular.jnl
 ! Previously TM_CHECK_BNDS had not been used to check bounds on regular axes.
@@ -51584,6 +52540,7 @@ use b
 ! Bug 1439
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_long_symbol_string.jnl
 ! err600_longsym_symbol_string.jnl
 ! Long values for symbols: previously strings were cut off at 255 characters.
@@ -51627,6 +52584,7 @@ CANCEL SYMBOL longsym*
 ! bug 1445
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_missing_flag.jnl
 ! noglobalhistory.nc has no global history attribute, and
 ! also the variable B has no missing or fill value flag
@@ -51650,6 +52608,7 @@ list b
 ! ( a parsing error, confusing the dot in the filename with dot in `var.att,return=size` )
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_returnsize.jnl
 ! err600_returnsize.jnl
 ! ACM 10-4-2006
@@ -51677,6 +52636,7 @@ say `(($the_x_axis)).units,return=size`
 ! thrown off and we got an error about an invalid ENDIF
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_if_comments_tab.jnl
 ! err600_if_comments_tab.jnl
 ! ACM 10-4-2006
@@ -51694,6 +52654,7 @@ ENDIF
 ! Bug 1454 Settings made by SET VAR/TITLE=/UNITS= were not saved in output file
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_set_var_title.jnl
 ! err600_set_var_title.jnl
 ! Bug 1454
@@ -51751,6 +52712,7 @@ use a.nc
 ! be labelled with the var name but it only has units label
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_var_label.jnl
 ! err600_var_label.jnl
 ! bug1442
@@ -51796,6 +52758,7 @@ list/i=70/l=1/j=30/k=1 temp
 ! Bug 1461 upcasing of axis name on creating bounds variable for output
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_upcase.jnl
  ! err600_upcase.jnl
  ! 10/23/2006
@@ -51820,6 +52783,7 @@ SET MODE/LAST ignore_error
 ! structure fail, and the list of variable names was incorrect.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_let_d.jnl
 ! err600_let_d.jnl
 ! Making a LET/D= assignment caused the return of dimension
@@ -51847,6 +52811,7 @@ list ..varnames
 ! Bug 1459 order of multiple descriptor file opening causes netCDF error
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_nc_des_order.jnl
 ! err600_nc_des_order.jnl
 ! 11/07/2006 ACM
@@ -51908,6 +52873,7 @@ stat rose[j=12,d=1]
 ! in the attribute structure.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_reset_redefine_axis.jnl
 ! err600_reset_redefine_axis.jnl
 ! Bug 1470; redefine or reset attributes of an axis
@@ -52041,6 +53007,7 @@ show axis ($zax)
 ! orig_file_axname keeps the input name.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_ferret_axis_names.jnl
 ! err600_ferret_axis_names.jnl
 ! If Ferret needed to rename an axis on file initialization for uniqueness,
@@ -52098,7 +53065,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -52147,7 +53114,7 @@ sho dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (PSXT91_108)           DOUBLE    units           CHAR        12   T       degrees_east
@@ -52198,6 +53165,7 @@ sho dat/att
 ! should output a comma or tab as placeholder for the missing value
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_tab_comma_missingdat.jnl
 ! err600_tab_comma_missingdat.jnl
 ! 11/21/2006 acm
@@ -52270,6 +53238,7 @@ list/form=tab a,b,a
 ! VECTOR/ASPECT plots are wrong (incorrect fix for bug 1348)
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_vec_aspect.jnl
 ! err600_vec_aspect.jnl
 ! VECTOR/ASPECT plots are wrong (incorrect fix for bug 1348)
@@ -52293,6 +53262,7 @@ vec/asp/over a,b
 ! when checking whether 2nd variable has same grid.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_save_two.jnl
 ! err600_save_two.jnl
 ! 12/11/2006
@@ -52310,6 +53280,7 @@ save/clobber/file="out.nc" olr[d=1], swdn_toa[d=2]
 ! Bug 1459 order of multiple descriptor file opening causes netCDF error
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err600_nc_des_order.jnl
 ! err600_nc_des_order.jnl
 ! 11/07/2006 ACM
@@ -52652,8 +53623,8 @@ use/order=yzt coads_climatology
 show data/all
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          ...       1:180     1:90      1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          ...       1:180     1:90      1:3
  
 set axis/stride=5 `sst,return=yaxis`
  !-> set axis/stride=5 COADSX
@@ -52847,8 +53818,6 @@ sh grid temp
  YAX_LEV94 LATITUDE           180 r   89.5S                89.5N               full
  ZAXLEVIT191_1 DEPTH (m)        1 r-  0                    0                   full
  TIME      TIME                 2mr   16-JAN 06:00         15-FEB 16:29        full
- normal    E
- normal    F
 sh axis XAX_LEV9421_380
  name       axis              # pts   start                end
  XAX_LEV9421_380 LONGITUDE    360mr   20.5E                19.5E(379.5)
@@ -52862,8 +53831,8 @@ say `temp,return=xmod`
  !-> MESSAGE/CONTINUE 360
 360
 say `temp,return=tmod`
- !-> MESSAGE/CONTINUE 8765.82
-8765.82
+ !-> MESSAGE/CONTINUE 8765.81982421875
+8765.81982421875
  
 ! X is modulo but not T
 use levitus_climatology.cdf
@@ -52879,8 +53848,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.2425
-365.2425
+ !-> MESSAGE/CONTINUE 365.2424926757813
+365.2424926757813
  
 ! Modulo because defined on longitude coordinates
 define axis/x=130e:80w:10 xsub
@@ -52899,8 +53868,6 @@ sh grid axy
  Y3AX      Y                    3 r   1                    3                   full
  Z4AX      Z                    4 r   1                    4                   full
  T2AX      T                    2 r   1                    2                   full
- normal    E
- normal    F
 show axis x2ax
  name       axis              # pts   start                end
  X2AX      X                    2mr   1                    2
@@ -52917,6 +53884,7 @@ say `axy,return=xmod`
 ! bug 1468: SHOW AXIS/ALL/XML listed the wrong info for the calendar
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err601_sho_ax_xml_calendar.jnl
 ! err601_sho_ax_xml_calendar.jnl
 ! 11/8/2006 ACM
@@ -52971,6 +53939,7 @@ sh axis/xml timenoleap
 ! with unspecified_int4.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err601_index_111.jnl
  
 ! err601_index_111.jnl
@@ -52997,6 +53966,7 @@ list x[gx=sst,x=-193:-203]
 ! Check for irregular axis actually being irregular failed; bug 1483
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err601_irregular_axis.jnl
 ! err601_irregular_axis.jnl
 ! V6.0 had a new scheme to check for irregular axes; for an axis
@@ -53011,8 +53981,6 @@ SHOW GRID/Z atmos
  normal    Y
  ALTITUDE  Z (Pa)              50 i   6.791595619E-10      1400                full
  TIME      TIME                 1mr   01-JAN 04:00         01-JAN 04:00        full
- normal    E
- normal    F
  
        K     Z                   ZBOX      ZBOXLO
        1>  6.791595619227E-10    6.885E-10  3.349092392302E-10
@@ -53071,6 +54039,7 @@ SHOW GRID/Z atmos
 ! see bug 1485, check on missing coordinates for 3-argument graphics
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err601_check_missing_3arg.jnl
 ! err601_check_missing_3arg.jnl
 ! see bug 1485: if missing coordinates in a curvilinear dataset, we should be
@@ -53154,6 +54123,7 @@ sp rm -f tripolar_missing_lon.nc
 !  when the last element is missing.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err601_missing_string_element.jnl
 ! err601_missing_string_element.jnl
 !  Bug 1488. Seg fault when try to list a string variable
@@ -53298,6 +54268,7 @@ cancel mode ignore_error
 ! SHADE/LEV did not keep same levels after a SHADE/LINE
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err602_shade_line_lev.jnl
 ! err602_shade_line_lev.jnl
 ! Bug 904.
@@ -53337,6 +54308,7 @@ LEV_DEL = "0.05"
 ! Draw correct SHADE and FILL plots across the modulo branch cut.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err602_curvi_modulo_cut
 ! err602_curvi_modulo_cut.jnl
 ! 5/07  bug 1302
@@ -53359,6 +54331,7 @@ fill/hlim=75:85/vlim=-10:0/mod u,geolon_c,geolat_c
 ! SET LIST/PREC worked for multi-var listings, LIST/PREC= var1,var2 did not
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err602_list_prec
 ! err602_list_prec.jnl
 ! fixes for bug 1388: SET LIST/PREC worked for multi-variable listings,
@@ -53414,8 +54387,8 @@ SET VAR/NAME=my_sst sst
 SHOW DATA
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- MY_SST   SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ MY_SST   SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
  
 LIST/X=179:183/Y=40/L=3 my_sst
@@ -53459,21 +54432,23 @@ set mem/siz=90
 sh sym ferret_memory
 FERRET_MEMORY = "90"
 show memory
- Current size of FERRET memory cache: 90 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 90 megawords
+    Peak demand: 0 words
+    Current cache: 0 words
  
 set mem/size=0.05
 sh sym ferret_memory
-FERRET_MEMORY = "0.2"
+FERRET_MEMORY = "0.05"
  
 set mem/siz=500000  ! too large to allow
-Unable to resize Ferret's memory cache to 500000.000000 Mdoubles
-Ferret's memory cache remains at 0.200000 Mdoubles
 sho sym ferret_memory
-FERRET_MEMORY = "0.2"
+FERRET_MEMORY = "500000"
  
 set mem/siz=25.6  ! return to the default setting
 show memory
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 0 words
+    Current cache: 0 words
 *** Running ferret script: bn605_bug_fixes.jnl
 [?1034h! bn604_bug_fixes.jnl
 ! test various fixes that went into version 6.05
@@ -53482,6 +54457,7 @@ show memory
 ! Fix for Bug 1524: irregular axis detected as REGULAR
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err604_irreg_axis.jnl
 ! Bug 1524: irregular axis detected as REGULAR!
  
@@ -53513,6 +54489,7 @@ list t[gt=month_irreg], tbox[gt=month_irreg]
 ! SHOW FUNCTIONS caused a crash or a message
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err605_show_func.jnl
 ! err605_show_func.jnl
 ! Reported by Andrew W.
@@ -53570,6 +54547,8 @@ DNCASE(STR)
 STRCAT(STR1,STR2)
 SUBSTRING(STR,OFFSET,LENGTH)
 STRFLOAT(STR)
+INNERPRODUCT(VAR1,VAR2,IDIM)
+TRANSPOSE(VAR,DIM1,DIM2)
  
 Externally defined functions available to Ferret:
 AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
@@ -53704,11 +54683,20 @@ TAX_YEARFRAC(A,B)
 TCAT(A,B)
 TCAT_STR(A,B)
 TEST_OPENDAP(url)
+TRANSPOSE_EF(VAR)
+TRANSPOSE_TE(VAR)
+TRANSPOSE_TF(VAR)
+TRANSPOSE_XE(VAR)
+TRANSPOSE_XF(VAR)
 TRANSPOSE_XT(VAR)
 TRANSPOSE_XY(VAR)
 TRANSPOSE_XZ(VAR)
+TRANSPOSE_YE(VAR)
+TRANSPOSE_YF(VAR)
 TRANSPOSE_YT(VAR)
 TRANSPOSE_YZ(VAR)
+TRANSPOSE_ZE(VAR)
+TRANSPOSE_ZF(VAR)
 TRANSPOSE_ZT(VAR)
 TREVERSE(A)
 UNIQUE_STR2INT(A)
@@ -53752,6 +54740,15 @@ 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)
@@ -53951,6 +54948,7 @@ SHAPEFILE_WRITEXYZVAL(SHAPEFILE,GRIDX,GRIDY,GRIDZ,VALUE,VALNAME,MAPPRJ)
 ! Fix for Bug 1539: SHOW VAR/XML
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err607_show_var_xml
 ! Bug 1539 SHOW VAR/XML didnt show all vars.
  
@@ -53989,6 +54987,9 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <xaxis>XAX1_15</xaxis>
@@ -54003,6 +55004,9 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GRR1">
 <axes>
 <xaxis>XAX1_15</xaxis>
@@ -54017,6 +55021,9 @@ show var/xml
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GSI1">
 <axes>
 </axes>
@@ -54027,6 +55034,7 @@ show var/xml
 ! err607_set_new_history_att
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err607_set_new_history_att
 ! err607_set_new_history_att.jnl
 ! Previously if we set a history attribute on a user-defined variable that
@@ -54043,8 +55051,8 @@ use a.nc
 show data
      currently SET data sets:
     1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- VAR      SST                              1:10      1:1       ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ VAR      SST                              1:10      1:1       ...       1:3
  
 show att/all var
      attributes for user-defined variables
@@ -54055,6 +55063,7 @@ show att/all var
 ! Symbols YAXIS_MIN, YAXIS_MAX were 0 when values small
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err607_axis_minmax_syms
 ! Bug 1542
 ! Symbols YAXIS_MIN, YAXIS_MAX were 0 when values small
@@ -54088,6 +55097,7 @@ YAXIS_MAX = "2.005050505E-06"
 ! Error message for too many contour levels requested
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err607_lev_errmsg
 ! err607_lev_errmsg.F
 ! Make the error message more detailed, saying it is the choice of
@@ -54178,6 +55188,7 @@ set mode nlevels 40
 ! Error processing parentheses on abstract axis names.
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err608_bug1556
 ! err608_bug1556.jnl
 ! Error processing parentheses on abstract axis names.
@@ -54205,6 +55216,7 @@ SAVE/FILE=a.nc/CLOBBER sst[i=1:5:1,j=1:5:1,l=1:1:1]
 ! Precision of immediate-mode output of negative values
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err608_precision_neg_numbers
 ! err608_precision_neg_numbers.jnl
 ! ACM 1/2/2008
@@ -54232,8 +55244,8 @@ SET MODE IGNORE
 !!list test_opendap ("http://iridl.ldeo.NOT.columbia.edu/SOURCES/.LEVITUS/.MONTHLY/.temp/dods")
  
 !! Change to another server, this one not working 8/2012
-list test_opendap ("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
-             VARIABLE : TEST_OPENDAP ("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
+list test_opendap ("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
+             VARIABLE : TEST_OPENDAP ("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
              X        : 1
           0.0000
 list test_opendap ("http://ferret.pmel.NOT.noaa.gov/thredds/dodsC/data/PMEL/WOA05nc/monthly/s0112an1.nc")
@@ -54249,6 +55261,7 @@ CANCEL MODE IGNORE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_write_bounds
 ! err61_write_bounds.jnl
 ! test fixes for bugzilla 1534: write correct bounds
@@ -54278,6 +55291,7 @@ sp ncdump a.nc >> all_ncdump.out
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_poly_shade_over_noaxes
 ! err61_poly_shade_over_noaxes.jnl
 ! See bug 1571
@@ -54333,6 +55347,7 @@ go polymark poly/lev=(-5,30,1)/fill/line=1/nolab/over v1 v2 v3 circle 2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_context_scalar_strings
 ! err61_context_scalar_strings.jnl
 ! Bug 1558, first present in Ferret v6.02
@@ -54349,6 +55364,7 @@ say `"a" EQ "a"`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_exit_script
 ! Bug 1566 Andrew Wittenberb
 !
@@ -54495,6 +55511,7 @@ exit/script
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_new_attr_on_axis
 ! err61_new_attr_on_axis.jnl
 ! For any var or axis, allow adding an attribute
@@ -54504,8 +55521,8 @@ use ocean_atlas_temp
 sh dat
      currently SET data sets:
     1> ./ocean_atlas_temp.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     Temperature                      1:360     1:180     1:1       1:2       ...       ...
+ name     title                             I         J         K         L
+ TEMP     Temperature                      1:360     1:180     1:1       1:2
  
 define att/output (`temp,return=xaxis`).long_name = "Here is a long name for the x axis of TEMP"
  !-> define att/output (XAX_LEV9421_380).long_name = "Here is a long name for the x axis of TEMP"
@@ -54527,6 +55544,7 @@ sp ncdump -h a.nc >> all_ncdump.out
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_varcontext_attributes
 ! Examples from bn_attributes, where instead of var.att[specifiers]
 ! we use var[specifiers].att  where appropriate.
@@ -54587,6 +55605,7 @@ list lnames
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
  
 !-----
@@ -54627,6 +55646,7 @@ say `($yaxnam)[d=1].nattrs`
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 !-----
 ! more on access to attribute names and values as variables
@@ -54645,12 +55665,10 @@ list/d=3 a
 list temp[d=3].units
              VARIABLE : TEMP[D=ocean_atlas_temp].UNITS
              FILENAME : gt4d011.cdf
-             X        : 1
         "Deg C"
 list/d=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : ocean_atlas_temp.cdf
-             X        : 1
         "From ocean_atlas_monthly"
  
 can data/all
@@ -54670,6 +55688,7 @@ list a[i=2]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! When the variable context is given in an attribute
 ! spec, we want to ignore the information except for the
@@ -54681,7 +55700,6 @@ list ($ferret_plot_var).long_name
  !-> list sst[x=30:39,y=-90:90].long_name
              VARIABLE : SST[X=30:39,Y=-90:90].LONG_NAME
              FILENAME : coads_climatology.cdf
-             X        : 1
         "SEA SURFACE TEMPERATURE"
  
 use coads_climatology
@@ -54690,7 +55708,6 @@ list ($ferret_plot_var).units
  !-> list sst[d=1,x=30:35,y=-90:90].units
              VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].UNITS
              FILENAME : coads_climatology.cdf
-             X        : 1
         "Deg C"
  
 use coads_climatology
@@ -54700,11 +55717,11 @@ list ($ferret_plot_var).history
  !-> list sst[d=1,x=30:35,y=-90:90].history
              VARIABLE : SST[D=coads_climatology,X=30:35,Y=-90:90].HISTORY
              FILENAME : levitus_climatology.cdf
-             X        : 1
         "From coads_climatology"
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 use levitus_climatology
 use coads_climatology
@@ -54718,18 +55735,17 @@ list ($xaxnam)[d=1].modulo
  !-> list (XAXLEVITR1_160)[d=1].modulo
              VARIABLE : (XAXLEVITR1_160)[D=levitus_climatology].MODULO
              FILENAME : coads_climatology.cdf
-             X        : 1
         " "
 list ($yaxnam).point_spacing[d=1]
  !-> list (YAXLEVITR1_90).point_spacing[d=1]
              VARIABLE : (YAXLEVITR1_90).POINT_SPACING[D=levitus_climatology]
              FILENAME : levitus_climatology.cdf
-             X        : 1
         "even"
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_show_dat_var_xml
 ! err61_show_dat_var_xml.jnl
 ! See bug 1580. Intermediate variablels associated with a
@@ -54767,9 +55783,9 @@ LET/D=2 ddat_a = ZAXREPLACE(ddat_orig[d=1], cycle_orig[d=2], dummy)
 SHOW DATA 2
      currently SET data sets:
     2> ./z2.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  CYCLE_ORIG
-          CYCLE[GZ=ZAXIS_ORIG at ASN]         ...       ...       1:5       ...       ...       ...
+          CYCLE[GZ=ZAXIS_ORIG at ASN]         ...       ...       1:5       ...
  ------------------------------
  DDAT_A[D=z2] = ZAXREPLACE(DDAT_ORIG[D=1], CYCLE_ORIG[D=2], DUMMY)
  
@@ -54813,12 +55829,12 @@ SHOW DATA/VAR/XML 2
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
 <attribute name="long_name" type="char">
    <value><![CDATA[ZAXREPLACE(DDAT_ORIG[D=1], CYCLE_ORIG[D=2], DUMMY)]]></value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="(G006)">
 <axes>
 <zaxis>ZAXIS_DES</zaxis>
@@ -54890,6 +55906,7 @@ SHOW DATA/VAR/XML 2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_360_calendar
 ! err61_360_calendar.jnl
 !
@@ -54915,6 +55932,7 @@ define axis/t=30-feb-1909:07-mar-1909:2/units=days/t0=1-jan-1909/calendar=d360 t
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_exit_if.jnl
 ! err611_exit_if.jnl
 !
@@ -54941,6 +55959,7 @@ exit/script
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_save_irreg.jnl
 ! err611_save_irreg.jnl
 !
@@ -54973,7 +55992,7 @@ save/clob/file=b.nc b
 use coads_climatology
 plot/x=56e:100e/y=40 sst[L=1]
 ppl list labels
- @ACSEA SURFACE TEMPERATURE (Deg C) No Valid Data                               
+ @ACSEA SURFACE TEMPERATURE No Valid Data                                       
  @ASLONGITUDE                                                                   
  @ASDeg C                                                                       
 
@@ -55140,6 +56159,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_axislab
 ! err611_axislab.jnl
 ! Fix bug 1582: Horizontal axis label disappeared
@@ -55154,6 +56174,7 @@ ppl plot
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_360_calendar
 ! err61_360_calendar.jnl
 !
@@ -55179,6 +56200,7 @@ define axis/t=30-feb-1909:07-mar-1909:2/units=days/t0=1-jan-1909/calendar=d360 t
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_exit_if.jnl
 ! err611_exit_if.jnl
 !
@@ -55205,6 +56227,7 @@ exit/script
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_save_irreg.jnl
 ! err611_save_irreg.jnl
 !
@@ -55229,6 +56252,7 @@ save/clob/file=b.nc b
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_wrong_fineaxis_range
 ! err611_wrong_fineaxis_range.jnl
 ! Bug 1594
@@ -55250,8 +56274,6 @@ sh grid sst
  LAT1800_1800 LATITUDE          1 r   0.025S               0.025S              full
  ENS       Z (count)            1 r   1                    1                   full
  TIME1     TIME                 1 r   01-APR-2006 00:00    01-APR-2006 00:00   full
- normal    E
- normal    F
  
 ! This first was wrong, returned data at x=-180
 list/x=180 sst
@@ -55301,6 +56323,7 @@ say `the_plot_var,return=size`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_digit_filename
 ! err611_digit_filename.jnl
 ! Under linux, FILE command fails if filename
@@ -55315,7 +56338,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=1a.dat i
  !-> SET DATA/EZ/VAR="a1" 1a.dat
  !-> LIST a1
-             VARIABLE : A1
+             VARIABLE : a1
              FILENAME : 1a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000
@@ -55325,7 +56348,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=3a.dat i
  !-> SET DATA/EZ/VAR="a3" 3a.dat
  !-> LIST a3
-             VARIABLE : A3
+             VARIABLE : a3
              FILENAME : 3a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000
@@ -55335,7 +56358,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=5a.dat i
  !-> SET DATA/EZ/VAR="a5" 5a.dat
  !-> LIST a5
-             VARIABLE : A5
+             VARIABLE : a5
              FILENAME : 5a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000
@@ -55345,7 +56368,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=7a.dat i
  !-> SET DATA/EZ/VAR="a7" 7a.dat
  !-> LIST a7
-             VARIABLE : A7
+             VARIABLE : a7
              FILENAME : 7a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000
@@ -55355,7 +56378,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=9a.dat i
  !-> SET DATA/EZ/VAR="a9" 9a.dat
  !-> LIST a9
-             VARIABLE : A9
+             VARIABLE : a9
              FILENAME : 9a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000
@@ -55365,7 +56388,7 @@ REPEAT/RANGE=1:12:2/name=m \
  !-> LIST/CLOBBER/NOHEAD/NOROWHEAD/I=1:3/FILE=11a.dat i
  !-> SET DATA/EZ/VAR="a11" 11a.dat
  !-> LIST a11
-             VARIABLE : A11
+             VARIABLE : a11
              FILENAME : 11a.dat
              SUBSET   : 3 points (X)
  1   / 1:  1.000
@@ -55374,32 +56397,33 @@ REPEAT/RANGE=1:12:2/name=m \
 SHOW DATA
      currently SET data sets:
     1> ./1a.dat
- name     title                             I         J         K         L         M         N
- A1       A1                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A1       a1                               1:3       ...       ...       ...
  
     2> ./3a.dat
- name     title                             I         J         K         L         M         N
- A3       A3                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A3       a3                               1:3       ...       ...       ...
  
     3> ./5a.dat
- name     title                             I         J         K         L         M         N
- A5       A5                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A5       a5                               1:3       ...       ...       ...
  
     4> ./7a.dat
- name     title                             I         J         K         L         M         N
- A7       A7                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A7       a7                               1:3       ...       ...       ...
  
     5> ./9a.dat
- name     title                             I         J         K         L         M         N
- A9       A9                               1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A9       a9                               1:3       ...       ...       ...
  
     6> ./11a.dat  (default)
- name     title                             I         J         K         L         M         N
- A11      A11                              1:3       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A11      a11                              1:3       ...       ...       ...
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_parse_semicolon
 ! err611_parse_semicolon.jnl
 ! Bug 1608. The first time it was issued, the first command
@@ -55420,6 +56444,7 @@ c (d; say a ; b
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_ov_ax
 ! err611_ov_ax.jnl
 !
@@ -55440,6 +56465,7 @@ set v lr; ppl axlabp 0 0; plot/nolab {-1,1,6}
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_context_after_error
 ! err611_context_after_error.jnl
 ! ACM 11/12/08
@@ -55461,12 +56487,12 @@ USE bug1421_b
 SHOW DATA
      currently SET data sets:
     1> ./bug1421_a.nc
- name     title                             I         J         K         L         M         N
- A        zonal wind stress                1:1       1:1       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ A        zonal wind stress                1:1       1:1       ...       1:20
  
     2> ./bug1421_b.nc  (default)
- name     title                             I         J         K         L         M         N
- B        T[GT=MON_IRREG_NLP]              ...       ...       ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ B        T[GT=MON_IRREG_NLP]              ...       ...       ...       1:12
  
 SHOW AXIS LON88_88
  name       axis              # pts   start                end
@@ -55520,6 +56546,7 @@ SET MODE/LAST ignore_error
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_isize_gc_fcns
 ! err611_isize_gc_fcns.jnl
 ! ACM 11/13/2008
@@ -55563,6 +56590,7 @@ SAY `XSEQUENCE(a),RETURN=size`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_return_precision
 ! err611_return_precision.jnl
 ! 17-Nov-08 ACM
@@ -55713,6 +56741,7 @@ a-950
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_set_var_ez
 ! err611_set_var_ez.jnl
 ! 6-Jan-2009
@@ -55740,7 +56769,7 @@ SHOW DAT/ATT
   
  .                               history         CHAR        7    F       dat.dat
   
- MY_ASC                FLOAT     long_name       CHAR        11   T       chlorophyll
+ my_asc                FLOAT     long_name       CHAR        11   T       chlorophyll
                                  missing_value   FLOAT       1    T       3
                                  units           CHAR        12   T       micrograms/L
   
@@ -55759,6 +56788,7 @@ SP ncdump -h a.nc >> all_ncdump.out
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_convert_missing_type
 ! err611_convert_missing_type.jnl
 ! Fix for bug 1620 message about converting data type of
@@ -55781,6 +56811,7 @@ SAVE/CLOBBER/FILE=lonlat.nc lat, lon
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_shade_fill_levs
 ! err611_shade_fill_levs.jnl
 ! 2/27/2009
@@ -55802,6 +56833,7 @@ LEV_DEL = "0.05"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_set_uvar_outtyp
 ! err611_set_uvar_outtyp.jnl
 ! fix for bug 1646: set outtype for user variables.
@@ -55824,6 +56856,7 @@ SP ncdump a.nc >> all_ncdump.out
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_save_from_desc
 ! err611_save_from_desc.jnl
 !
@@ -55835,6 +56868,7 @@ save/clobber/file=a.nc/i=100 sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_irregular_axis
  ! err611_irregular_axis.jnl
  
@@ -55861,12 +56895,11 @@ sh grid cc
  normal    Y
  normal    Z
  TAX       TIME               142 i   30-DEC-2007 00:00    30-DEC-2007 00:02   full
- normal    E
- normal    F
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_ef_string_result
 ! err611_ef_string_result.jnl
 ! testing the fix for bug 1621
@@ -55952,6 +56985,7 @@ list xt
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err61_contour_subspan_reps
 ! err61_contour_subspan_reps.jnl
 ! Bug 1659.
@@ -56025,8 +57059,8 @@ set data proleptic_gregorian.nc
 show data
      currently SET data sets:
     1> ./proleptic_gregorian.nc  (default)
- name     title                             I         J         K         L         M         N
- MY_DATA  SIN(L[GT=TDAYS])                 ...       ...       ...       1:32      ...       ...
+ name     title                             I         J         K         L
+ MY_DATA  SIN(L[GT=TDAYS])                 ...       ...       ...       1:32
  
 show axis tdays
  name       axis              # pts   start                end
@@ -56744,8 +57778,8 @@ set data/format=cdf test0a, test0b, test0c, test0d, test0e, test0f, test0g, test
 show data 1
      currently SET data sets:
     1> ./test0a.cdf
- name     title                             I         J         K         L         M         N
- L_       L                                ...       ...       ...       1:500     ...       ...
+ name     title                             I         J         K         L
+ L_       L                                ...       ...       ...       1:500
        (axis ABSTRACT)
  
 show data/br
@@ -56896,78 +57930,78 @@ show data/full
      currently SET data sets:
     1> ./test_abs.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       I                                1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       I                                1:10      ...       ...       ...
                on grid GEU1 with -1.E+34 for missing data
              X=0.5:10.5  
- J1       J                                ...       1:20      ...       ...       ...       ...
+ J1       J                                ...       1:20      ...       ...
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- K1       K                                ...       ...       1:100     ...       ...       ...
+ K1       K                                ...       ...       1:100     ...
                on grid GEU3 with -1.E+34 for missing data
              Z=0.5:100.5  
- L1       L[G=GCENTURY]                    ...       ...       ...       1:12      ...       ...
+ L1       L[G=GCENTURY]                    ...       ...       ...       1:12
                on grid GEU4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:10      ...       ...
+ L2       L                                ...       ...       ...       1:10
                on grid GEU5 with -1.E+34 for missing data
              
- IJ       I+J                              1:10      1:20      ...       ...       ...       ...
+ IJ       I+J                              1:10      1:20      ...       ...
                on grid GEU6 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IK       I+K                              1:10      ...       1:100     ...       ...       ...
+ IK       I+K                              1:10      ...       1:100     ...
                on grid GEU7 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IL       I+L1                             1:10      ...       ...       1:12      ...       ...
+ IL       I+L1                             1:10      ...       ...       1:12
                on grid GEU8 with -1.E+34 for missing data
              X=0.5:10.5  
- JK       J+K                              ...       1:20      1:100     ...       ...       ...
+ JK       J+K                              ...       1:20      1:100     ...
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJK      I+J+K                            1:10      1:20      1:100     ...       ...       ...
+ IJK      I+J+K                            1:10      1:20      1:100     ...
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IKL      I+K+L1                           1:10      ...       1:100     1:12      ...       ...
+ IKL      I+K+L1                           1:10      ...       1:100     1:12
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJL      I+J+L1                           1:10      1:20      ...       1:12      ...       ...
+ IJL      I+J+L1                           1:10      1:20      ...       1:12
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- JKL      J+K+L1                           ...       1:20      1:100     1:12      ...       ...
+ JKL      J+K+L1                           ...       1:20      1:100     1:12
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJKL     I+J+K+L1                         1:10      1:20      1:100     1:12      ...       ...
+ IJKL     I+J+K+L1                         1:10      1:20      1:100     1:12
                on grid GEU14 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IJK2     I+J+K                            ...       1:20      1:100     ...       ...       ...
+ IJK2     I+J+K                            ...       1:20      1:100     ...
        (X=0.5:10.5 at AVE)
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IKL2     I+K+L1                           ...       ...       1:100     1:12      ...       ...
+ IKL2     I+K+L1                           ...       ...       1:100     1:12
        (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
                on grid GEU15 with -1.E+34 for missing data
              Z=0.5:100.5  
- IJL2     I+J+L1                           ...       ...       ...       1:12      ...       ...
+ IJL2     I+J+L1                           ...       ...       ...       1:12
        (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
                on grid GEU4 with -1.E+34 for missing data
              
- JKL2     J+K+L1                           ...       1:20      ...       ...       ...       ...
+ JKL2     J+K+L1                           ...       1:20      ...       ...
        (Z=0.5:100.5 at AV4, T=03-JAN-1902 12:00:08-JAN-1902 12:00 at AV4)
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:12      ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:12
        (X=0.5:10.5)
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:12      ...       ...
+ IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:12
        (Y=0.5:20.5)
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:12      ...       ...
+ IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:12
        (Z=0.5:100.5)
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...
        (T=03-JAN-1902 12:00:08-JAN-1902 12:00)
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
@@ -56982,8 +58016,6 @@ show grid ijkl
  YAX       Y                   20 r   1                    20                  full
  ZAX       Z                  100 r   1                    100                 full
  TCENTURY1 TIME                12 r   01-JAN-1902 00:00    12-JAN-1902 00:00   full
- normal    E
- normal    F
 cancel data test_abs
  
 ! make the time axis irregular by leaving out l=13
@@ -56993,78 +58025,78 @@ show data/full
      currently SET data sets:
     1> ./test_abs.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       I                                1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       I                                1:10      ...       ...       ...
                on grid GEU1 with -1.E+34 for missing data
              X=0.5:10.5  
- J1       J                                ...       1:20      ...       ...       ...       ...
+ J1       J                                ...       1:20      ...       ...
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- K1       K                                ...       ...       1:100     ...       ...       ...
+ K1       K                                ...       ...       1:100     ...
                on grid GEU3 with -1.E+34 for missing data
              Z=0.5:100.5  
- L1       L[G=GCENTURY]                    ...       ...       ...       1:15      ...       ...
+ L1       L[G=GCENTURY]                    ...       ...       ...       1:15
                on grid GEU4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:10      ...       ...
+ L2       L                                ...       ...       ...       1:10
                on grid GEU5 with -1.E+34 for missing data
              
- IJ       I+J                              1:10      1:20      ...       ...       ...       ...
+ IJ       I+J                              1:10      1:20      ...       ...
                on grid GEU6 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IK       I+K                              1:10      ...       1:100     ...       ...       ...
+ IK       I+K                              1:10      ...       1:100     ...
                on grid GEU7 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IL       I+L1                             1:10      ...       ...       1:15      ...       ...
+ IL       I+L1                             1:10      ...       ...       1:15
                on grid GEU8 with -1.E+34 for missing data
              X=0.5:10.5  
- JK       J+K                              ...       1:20      1:100     ...       ...       ...
+ JK       J+K                              ...       1:20      1:100     ...
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJK      I+J+K                            1:10      1:20      1:100     ...       ...       ...
+ IJK      I+J+K                            1:10      1:20      1:100     ...
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IKL      I+K+L1                           1:10      ...       1:100     1:15      ...       ...
+ IKL      I+K+L1                           1:10      ...       1:100     1:15
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJL      I+J+L1                           1:10      1:20      ...       1:15      ...       ...
+ IJL      I+J+L1                           1:10      1:20      ...       1:15
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- JKL      J+K+L1                           ...       1:20      1:100     1:15      ...       ...
+ JKL      J+K+L1                           ...       1:20      1:100     1:15
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJKL     I+J+K+L1                         1:10      1:20      1:100     1:15      ...       ...
+ IJKL     I+J+K+L1                         1:10      1:20      1:100     1:15
                on grid GEU14 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
- IJK2     I+J+K                            ...       1:20      1:100     ...       ...       ...
+ IJK2     I+J+K                            ...       1:20      1:100     ...
        (X=0.5:10.5 at AVE)
                on grid GEU9 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IKL2     I+K+L1                           ...       ...       1:100     1:15      ...       ...
+ IKL2     I+K+L1                           ...       ...       1:100     1:15
        (X=0.5:10.5 at AVE, box smoothed by 3 pts on Z)
                on grid GEU15 with -1.E+34 for missing data
              Z=0.5:100.5  
- IJL2     I+J+L1                           ...       ...       ...       1:15      ...       ...
+ IJL2     I+J+L1                           ...       ...       ...       1:15
        (X=0.5:10.5 at AV4, Y=0.5:20.5 at AV4)
                on grid GEU4 with -1.E+34 for missing data
              
- JKL2     J+K+L1                           ...       1:20      ...       ...       ...       ...
+ JKL2     J+K+L1                           ...       1:20      ...       ...
        (Z=0.5:100.5 at AV4, T=03-JAN-1902 12:00:08-JAN-1902 12:00 at AV4)
                on grid GEU2 with -1.E+34 for missing data
              Y=0.5:20.5  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:15      ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:20      1:100     1:15
        (X=0.5:10.5)
                on grid GEU13 with -1.E+34 for missing data
              Y=0.5:20.5  Z=0.5:100.5  
- IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:15      ...       ...
+ IJAVEKL  IJKL[J=@AVE]                     1:10      ...       1:100     1:15
        (Y=0.5:20.5)
                on grid GEU11 with -1.E+34 for missing data
              X=0.5:10.5  Z=0.5:100.5  
- IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:15      ...       ...
+ IJKAVEL  IJKL[K=@AVE]                     1:10      1:20      ...       1:15
        (Z=0.5:100.5)
                on grid GEU12 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  
- IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                     1:10      1:20      1:100     ...
        (T=03-JAN-1902 12:00:08-JAN-1902 12:00)
                on grid GEU10 with -1.E+34 for missing data
              X=0.5:10.5  Y=0.5:20.5  Z=0.5:100.5  
@@ -57078,8 +58110,6 @@ show grid ijkl
  YAX       Y                   20 r   1                    20                  full
  ZAX       Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
  
  
 ! list long time series using a rigid (non-record axis) time axis --> FAST
@@ -57112,40 +58142,30 @@ show grid j1 jkl jkl2 iavejkl ijkl
  YAX       Y                   20 r   1                    20                  full
  normal    Z
  normal    T
- normal    E
- normal    F
     GRID GEU13
  name       axis              # pts   start                end                 subset
  normal    X
  YAX       Y                   20 r   1                    20                  full
  ZAX       Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
     GRID GEU2
  name       axis              # pts   start                end                 subset
  normal    X
  YAX       Y                   20 r   1                    20                  full
  normal    Z
  normal    T
- normal    E
- normal    F
     GRID GEU13
  name       axis              # pts   start                end                 subset
  normal    X
  YAX       Y                   20 r   1                    20                  full
  ZAX       Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
     GRID GEU14
  name       axis              # pts   start                end                 subset
  XAX       X                   10 r   1                    10                  full
  YAX       Y                   20 r   1                    20                  full
  ZAX       Z                  100 r   1                    100                 full
  TCENTURY1 TIME                15 i   01-JAN-1902 00:00    16-JAN-1902 00:00   full
- normal    E
- normal    F
 cancel data test_abs
  
 ! test TMAP data io
@@ -57229,29 +58249,29 @@ show data/full
      currently SET data sets:
     1> ./gtbc011.cdf
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.8S:51.4N  
  
@@ -57259,67 +58279,67 @@ show data/full
  
     2> ./test_fil0.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...
                on grid PS3DT1_NYZT with -1.E+34 for missing data
              X=130E:140E  
- J1       Y[G=TEMP,J=5:10]                 ...       5:10      ...       ...       ...       ...
+ J1       Y[G=TEMP,J=5:10]                 ...       5:10      ...       ...
                on grid PS3DT1_NXZT with -1.E+34 for missing data
              Y=21.1S:12.5S  
- K1       Z[G=U,K=5:15]                    ...       ...       5:15      ...       ...       ...
+ K1       Z[G=U,K=5:15]                    ...       ...       5:15      ...
                on grid PS3DU1_NXYT with -1.E+34 for missing data
              Z=40:190  
- L1       L[G=U,L=1:3]                     ...       ...       ...       1:3       ...       ...
+ L1       L[G=U,L=1:3]                     ...       ...       ...       1:3
                on grid GRH1 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:2       ...       ...
+ L2       L                                ...       ...       ...       1:2
                on grid GRH2 with -1.E+34 for missing data
              
- IJ       TAUX[L=@AVE]                    69:71      1:100     ...       ...       ...       ...
+ IJ       TAUX[L=@AVE]                    69:71      1:100     ...       ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid PS2DU1_NT with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- IK       I1+K1                            1:10      ...       5:15      ...       ...       ...
+ IK       I1+K1                            1:10      ...       5:15      ...
                on grid G016_NYT with -1.E+34 for missing data
              X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
+ IL       I1+L1                            1:10      ...       ...       1:3
                on grid G016_NYZ with -1.E+34 for missing data
              X=130E:140E  
- JK       J1+K1                            ...       5:10      5:15      ...       ...       ...
+ JK       J1+K1                            ...       5:10      5:15      ...
                on grid G002_NXT with -1.E+34 for missing data
              Y=21.1S:12.5S  Z=40:190  
- IJK      TEMP[L=@AVE]                    70:72      1:100     1:27      ...       ...       ...
+ IJK      TEMP[L=@AVE]                    70:72      1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid PS3DT1_NT with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- IKL      TEMP[J=@AVE]                    70:72      ...       1:27      1:3       ...       ...
+ IKL      TEMP[J=@AVE]                    70:72      ...       1:27      1:3
        (Y=30S:50N)
                on grid PS3DT1_NY with -1.E+34 for missing data
              X=161W:158W  Z=0:4149  
- IJL      TEMP[K=@AVE]                    70:72      1:100     ...       1:3       ...       ...
+ IJL      TEMP[K=@AVE]                    70:72      1:100     ...       1:3
        (Z=0:4149)
                on grid PS3DT1_NZ with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  
- JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ JKL      TEMP[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130E:70W)
                on grid GRH3 with -1.E+34 for missing data
              Y=30S:50N  Z=0:4149  
- IJKL     U                               69:72      1:100     1:27      1:3       ...       ...
+ IJKL     U                               69:72      1:100     1:27      1:3
                on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3       ...       ...
+ IAVEJKL  IJKL[I=@AVE]                     ...       1:100     1:27      1:3
        (X=130.5E:69.5W)
                on grid GRH4 with -1.E+34 for missing data
              Y=28.8S:51.4N  Z=0:4149  
- IJAVEKL  IJKL[J=@AVE]                    69:72      ...       1:27      1:3       ...       ...
+ IJAVEKL  IJKL[J=@AVE]                    69:72      ...       1:27      1:3
        (Y=28.8S:51.4N)
                on grid PS3DU1_NY with -1.E+34 for missing data
              X=161.5W:157.5W  Z=0:4149  
- IJKAVEL  IJKL[K=@AVE]                    69:72      1:100     ...       1:3       ...       ...
+ IJKAVEL  IJKL[K=@AVE]                    69:72      1:100     ...       1:3
        (Z=0:4149)
                on grid PS3DU1_NZ with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  
- IJKLAVE  IJKL[L=@AVE]                    69:72      1:100     1:27      ...       ...       ...
+ IJKLAVE  IJKL[L=@AVE]                    69:72      1:100     1:27      ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid PS3DU1_NT with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
@@ -57334,8 +58354,6 @@ show grid ijkl
  PSYU      LATITUDE           100 i   27.672S              50N                 full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME      TIME                 3 r   15-MAR-1983 10:00    15-MAR-1983 12:00   full
- normal    E
- normal    F
 cancel data test_fil0
 ! 5/99 moved old bn230_cdf.sub3 to bn_cdf_keepax.sub4 to stay inline w/ old benchmarks *kob*
 GO bn_cdf_keepax.sub4
@@ -57423,29 +58441,29 @@ show data/full
      currently SET data sets:
     1> ./gtbc011.cdf
  
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
              deg. C on grid PS3DT1 with -1.E+34 for missing data
              X=161W:158W  Y=30S:50N  Z=0:4149  
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
              frac. by wt. less .035 on grid PS3DT1 with 0.01 for missing data
              X=161W:159W  Y=30S:50N  Z=0:4149  
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
              cm/sec on grid PS3DU1 with -1.E+34 for missing data
              X=161.5W:157.5W  Y=28.8S:51.4N  Z=0:4149  
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
              cm/sec on grid PS3DW1 with -1.E+34 for missing data
              X=161W:159W  Y=30S:50N  Z=5:4149  
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
              dynes/cm**2 on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
              cm**3/sec on grid PS2DU1 with -1.E+34 for missing data
              X=161.5W:156.5W  Y=28.8S:51.4N  
  
@@ -57453,33 +58471,33 @@ show data/full
  
     2> ./test_fil.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ I1       X[G=TEMP,I=1:10]                 1:10      ...       ...       ...
                on grid GLZ1 with -1.E+34 for missing data
              X=130E:140E  
- J1       Y[G=TEMP,J=5:10]                 ...       1:6       ...       ...       ...       ...
+ J1       Y[G=TEMP,J=5:10]                 ...       1:6       ...       ...
                on grid GLZ2 with -1.E+34 for missing data
              Y=21.1S:12.5S  
- K1       Z[G=U,K=5:15]                    ...       ...       1:11      ...       ...       ...
+ K1       Z[G=U,K=5:15]                    ...       ...       1:11      ...
                on grid GLZ3 with -1.E+34 for missing data
              Z=40:190  
- L1       L[G=U,L=1:3]                     ...       ...       ...       1:3       ...       ...
+ L1       L[G=U,L=1:3]                     ...       ...       ...       1:3
                on grid GLZ4 with -1.E+34 for missing data
              
- L2       L                                ...       ...       ...       1:2       ...       ...
+ L2       L                                ...       ...       ...       1:2
                on grid GLZ5 with -1.E+34 for missing data
              
- IJ       TAUX[L=@AVE]                     1:3       1:100     ...       ...       ...       ...
+ IJ       TAUX[L=@AVE]                     1:3       1:100     ...       ...
        (T=15-MAR-1983 09:30:15-MAR-1983 11:30)
                on grid GLZ6 with -1.E+34 for missing data
              X=161.5W:158.5W  Y=28.8S:51.4N  
- IK       I1+K1                            1:10      ...       1:11      ...       ...       ...
+ IK       I1+K1                            1:10      ...       1:11      ...
                on grid GLZ7 with -1.E+34 for missing data
              X=130E:140E  Z=40:190  
- IL       I1+L1                            1:10      ...       ...       1:3       ...       ...
+ IL       I1+L1                            1:10      ...       ...       1:3
                on grid GLZ8 with -1.E+34 for missing data
              X=130E:140E  
- JK       J1+K1                            ...       1:6       1:11      ...       ...       ...
+ JK       J1+K1                            ...       1:6       1:11      ...
                on grid GLZ9 with -1.E+34 for missing data
              Y=21.1S:12.5S  Z=40:190  
  
@@ -57506,15 +58524,15 @@ show data/var
      currently SET data sets:
     1> ./reverse_axes.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ FCN_NORM COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...
                on grid GAF1 with -1.E+34 for missing data
              X=129.5E:179.5W  Y=10.5S:10.5N  
- FCN_REV  COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...       ...       ...
+ FCN_REV  COS(X/10)*SIN(Y/2)               1:51      1:21      ...       ...
                on grid GAF2 with -1.E+34 for missing data
              X=129.5E:179.5W  Y=10.5S:10.5N  
  FCN_REV_SUB
-          COS(X/10)*SIN(Y/2)               1:51     10:19      ...       ...       ...       ...
+          COS(X/10)*SIN(Y/2)               1:51     10:19      ...       ...
                on grid GREV with -1.E+34 for missing data
              X=129.5E:179.5W  Y=1.5S:8.5N  
  
@@ -57677,6 +58695,7 @@ shade/lev=35 sst[L=1]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err618_julday.jnl
 ! err618_julday.jnl
 ! Bug 1639
@@ -57726,6 +58745,7 @@ list/t=27-feb-1999:02-mar-1999 rjulianday
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err611_polygons.jnl
 ! err611_polygons.jnl
 ! bug 1661
@@ -58003,13 +59023,13 @@ USE grads_bug_file.nc
 SHOW DATA
      currently SET data sets:
     1> ./grads_bug_file.nc  (default)
- name     title                             I         J         K         L         M         N
- AM       Z[GZ=CAXIS] + Y[GY=BAXIS] + X[G  1:10      1:5       1:5       ...       ...       ...
- AR       Z[GZ=DAXIS]+ Y[GY=BAXIS] + X[GX  1:10      1:5       1:6       ...       ...       ...
- A1                                        ...       ...       1:5       ...       ...       ...
- A2                                        ...       ...       1:5       ...       ...       ...
- A3                                        ...       ...       1:5       ...       ...       ...
- A4                                        ...       ...       1:5       ...       ...       ...
+ name     title                             I         J         K         L
+ AM       Z[GZ=CAXIS] + Y[GY=BAXIS] + X[G  1:10      1:5       1:5       ...
+ AR       Z[GZ=DAXIS]+ Y[GY=BAXIS] + X[GX  1:10      1:5       1:6       ...
+ A1                                        ...       ...       1:5       ...
+ A2                                        ...       ...       1:5       ...
+ A3                                        ...       ...       1:5       ...
+ A4                                        ...       ...       1:5       ...
  
  
 ! The z axis of AM has no useful clues about its direction.
@@ -58021,8 +59041,6 @@ SH GRID am
  BAXIS     Y (METERS)           5 r   1                    9                   full
  CAXIS     Z (METERS)           5 r   2                    10                  full
  normal    T
- normal    E
- normal    F
  
 ! This axis has long_name = "depth" so it is (now) reversed.
 ! Previously it was not.
@@ -58033,8 +59051,6 @@ SH GRID ar
  BAXIS     Y (METERS)           5 r   1                    9                   full
  DAXIS     DEPTH (m)            6 i-  0                    8                   full
  normal    T
- normal    E
- normal    F
  
 ! Can redefine the axis for variable AM to make it a z depth axis
  
@@ -58049,14 +59065,12 @@ SH GRID am
  BAXIS     Y (METERS)           5 r   1                    9                   full
  CAXIS     DEPTH (m)            5 r-  2                    10                  full
  normal    T
- normal    E
- normal    F
 *** Running ferret script: bn_clock_syms.jnl
 [?1034hSH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "0.208967"
-CLOCK_SECS = "0.102"
-CURRENT_DATE = "17-Jun-16"
-CURRENT_TIME = "15:18:13"
+DELTA_CPU = "0.205968"
+CLOCK_SECS = "0.096"
+CURRENT_DATE = "18-Apr-17"
+CURRENT_TIME = "17:15:42"
 ! test special symbols DELTA_CPU, CLOCK_SECS
 !
 ! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -58065,8 +59079,8 @@ CURRENT_TIME = "15:18:13"
 use gt4d011
 shade/k=1 temp[L=@ave]
 sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.021997"
-CLOCK_SECS = "0.123"
+DELTA_CPU = "0.021996"
+CLOCK_SECS = "0.118"
  
 repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=1
@@ -58080,15 +59094,15 @@ repeat/k=1:10 shade temp[L=@ave]
 !-> REPEAT: K=9
 !-> REPEAT: K=10
 let ten_plots = ($DELTA_CPU)
- !-> DEFINE VARIABLE ten_plots = 0.05999
+ !-> DEFINE VARIABLE ten_plots = 0.059991
 sh sym DELTA_CPU, CLOCK_SECS
 DELTA_CPU = "0"
-CLOCK_SECS = "0.183"
+CLOCK_SECS = "0.178"
  
 let  sumclock = 0
 let  sumcpu = 0
 sh sym CLOCK_SECS
-CLOCK_SECS = "0.184"
+CLOCK_SECS = "0.179"
 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`)
@@ -58096,50 +59110,51 @@ let sumcpu =`sumcpu + dt`)
  !-> DEFINE VARIABLE dt = 0.006999
  !-> DEFINE VARIABLE sumcpu =0.006999
 !-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.006999
- !-> DEFINE VARIABLE sumcpu =0.013998
-!-> REPEAT: K=3
  !-> DEFINE VARIABLE dt = 0.007999
- !-> DEFINE VARIABLE sumcpu =0.021997
+ !-> DEFINE VARIABLE sumcpu =0.014998
+!-> REPEAT: K=3
+ !-> DEFINE VARIABLE dt = 0.007998
+ !-> DEFINE VARIABLE sumcpu =0.022996
 !-> REPEAT: K=4
  !-> DEFINE VARIABLE dt = 0.007999
- !-> DEFINE VARIABLE sumcpu =0.029996
+ !-> DEFINE VARIABLE sumcpu =0.030995
 !-> REPEAT: K=5
  !-> DEFINE VARIABLE dt = 0.006999
- !-> DEFINE VARIABLE sumcpu =0.036995
+ !-> DEFINE VARIABLE sumcpu =0.037994
 !-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.007999
- !-> DEFINE VARIABLE sumcpu =0.044994
+ !-> DEFINE VARIABLE dt = 0.008999
+ !-> DEFINE VARIABLE sumcpu =0.046993
 !-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.006998
- !-> DEFINE VARIABLE sumcpu =0.051992
+ !-> DEFINE VARIABLE dt = 0.006999
+ !-> DEFINE VARIABLE sumcpu =0.053992
 !-> REPEAT: K=8
  !-> DEFINE VARIABLE dt = 0.007999
- !-> DEFINE VARIABLE sumcpu =0.059991
+ !-> DEFINE VARIABLE sumcpu =0.061991
 !-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.006999
- !-> DEFINE VARIABLE sumcpu =0.06699
+ !-> DEFINE VARIABLE dt = 0.007998
+ !-> DEFINE VARIABLE sumcpu =0.069989
 !-> REPEAT: K=10
  !-> DEFINE VARIABLE dt = 0.007999
- !-> DEFINE VARIABLE sumcpu =0.074989
+ !-> DEFINE VARIABLE sumcpu =0.077988
  
 say `sumcpu`
- !-> MESSAGE/CONTINUE 0.074989
-0.074989
+ !-> MESSAGE/CONTINUE 0.077988
+0.077988
 sh sym CLOCK_SECS
-CLOCK_SECS = "0.26"
+CLOCK_SECS = "0.259"
  
 SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "17-Jun-16"
-SESSION_TIME = "15:18"
-CURRENT_DATE = "17-Jun-16"
-CURRENT_TIME = "15:18:13"
+SESSION_DATE = "18-Apr-17"
+SESSION_TIME = "17:15"
+CURRENT_DATE = "18-Apr-17"
+CURRENT_TIME = "17:15:42"
 *** Running ferret script: bn63_bug_fixes.jnl
 [?1034h! bn63_bug_fixes.jnl
 ! Fixes that go into v6.3 release
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_string_write_nc
 ! err62_string_write_nc.jnl
 ! Bug 1664: string variable written as a float.
@@ -58218,6 +59233,7 @@ list cruise_id_xz
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_levset
 ! err62_levset.jnl
 ! fix for bug 1672, top color level chopped off in some circumstances
@@ -58229,6 +59245,7 @@ shade/x=350:390/y=1:10/lev=(376.6,379.0,0.8)(379.0,385.4,0.2) var
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_thick_tic_time_axis
 ! err62_thick_tic_time_axis.jnl
 ! Fixing bug 1668
@@ -58282,6 +59299,7 @@ set win/new
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_reset_after_inf
 ! err62_reset_after_inf.jnl
 ! Bug 1292
@@ -58301,6 +59319,7 @@ cancel mode meta
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_reversed_up
 ! err62_reversed_up.jnl
 !
@@ -58347,6 +59366,7 @@ list z[gz=temp], zboxlo[gz=temp], zboxhi[gz=temp]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_samplexy
 ! err62_samplexy
 ! bug 1677
@@ -58381,6 +59401,7 @@ list sr
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_one_point_bounds
 ! err62_one_point_bounds.jnl
 ! Bug 1680
@@ -58413,6 +59434,7 @@ I / *:     5.000  4.890  5.110
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_cos_lat_uncentered
 !err62_cos_lat_uncentered.jnl
 ! See this thread, here is the esample, with his test.nc renamed to uncentered.nc
@@ -58561,6 +59583,7 @@ list cell18[x=@din,y=@din]/total_area
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_if_inside_repeat
 ! err62_if_inside_repeat.jnl
 ! Bug 1681. Parsing error when, inside the REPEAT, we have
@@ -58627,6 +59650,7 @@ done
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_title_curvi_plot
 ! err62_title_curvi_plot.jnl
 ! bug 1669; when the variable and its coordinate variables
@@ -58664,6 +59688,7 @@ LABTIT = "SEA SURFACE TEMPERATURE (Deg C)"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err62_save_missingcoordvar
 ! err62_save_missingcoordvar.jnl
 ! see bug 1686
@@ -58680,6 +59705,7 @@ save/clobber/file=a.nc sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_contourbug
 ! err62_contourbug.jnl
 ! Bug 1688
@@ -58702,6 +59728,7 @@ fill/hlimits=-100:400:50 0.0000001*(xb2+zb)^3,xb2,zb
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_append_irreg_to_reg
 ! err62_append_irreg_to_reg.jnl
 ! bug 1692
@@ -58734,9 +59761,11 @@ SET MODE/LAST IGNORE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_axis_stride_off
 ! err62_axis_stride_off.jnl
 ! fixing bug 1689: offset shifted by 1 so /OFFSET=0 >> start index = 1
+! 1/2017 *acm* changes in output due to backing off auto-detection of truemonth axes, tkt 2497
  
 USE truemonth.nc
  
@@ -58810,6 +59839,7 @@ SET MODE/LAST IGNORE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err62_compound_string_conditional
 ! err62_compound_string_conditional
 ! Bug 1380
@@ -58970,7 +60000,7 @@ shade/line/lev=50v/title="/LEV=50v" temp[K=1]
 sh sym lev*
 LEV_TEXT = "50V"
 LEV_MIN = "-2"
-LEV_MAX = "30.74"
+LEV_MAX = "open-ended"
 LEV_NUM = "56"
 LEV_DEL = "irregular"
 LEV_OPNLEVS = "(-2,3.05,0.505)(3.5,25.5,0.5)(25.5,25.5,0.505)(inf)"
@@ -59022,6 +60052,7 @@ shade/line/key/lev=50h/title="/LEV=50h" cvar[K=1]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err63_days1900toydmhms
 ! err63_days1900toydmhms.jnl
 !
@@ -59046,6 +60077,7 @@ list/k=2:3 tpts
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err63_log_vaxis
 ! err63_log_vaxis.jnl
 ! fix for bug 1708
@@ -59064,6 +60096,7 @@ plot/vlog z[gz=vert_axis_dn]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err63_delim_E.jnl
 ! err63_delim_E.jnl
 ! bug 1700
@@ -59114,11 +60147,11 @@ SHOW DATA/FULL
      currently SET data sets:
     1> ./EZ.DAT  (default)
  
- name     title                             I         J         K         L         M         N
- X1       X1                               1:3       1:20480   ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:3       1:20480   ...       ...
                on grid ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 with -1.E+34 for missing data
              X=0.5:3.5  Y=0.5:20480.5  
- X2       X2                               1:3       1:20480   ...       ...       ...       ...
+ X2       X2                               1:3       1:20480   ...       ...
                on grid ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 with -1.E+34 for missing data
              X=0.5:3.5  Y=0.5:20480.5  
  
@@ -59139,9 +60172,9 @@ LIST X1
 SHOW DATA
      currently SET data sets:
     1> ./EZ.DAT  (default)
- name     title                             I         J         K         L         M         N
- X1       X1                               1:3       1:5       ...       ...       ...       ...
- X2       X2                               1:3       1:5       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ X1       X1                               1:3       1:5       ...       ...
+ X2       X2                               1:3       1:5       ...       ...
  
 CAN DATA/ALL
  
@@ -59308,6 +60341,7 @@ stat v1234[g=even]-veven, v1234
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! regrid_transforms
 use gtsa056_1
 use gtsa056_2
@@ -59316,15 +60350,15 @@ set mode diag
 define axis/t=15-jan-1982:15-mar-1984:120/unit=hour tax5day
 define axis/x=120e:60w:10/unit=degrees xax10
 define grid/like=u/t=tax5day g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day
- getgrid EX#1     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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ getgrid EX#1     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 PS3DU1          PSXU      PSYU      PSZT      TIME1
 define grid/like=u/x=xax10/z=w/t=tax5day g5_10g00abcdefghijklmnopqrstuvwxyz1234567890
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  8 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- getgrid EX#1     C:  9 dset:   2 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid PS3DW11         PSXT      PSYT      PSZW      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ getgrid EX#1     C:  8 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ getgrid EX#1     C:  9 dset:   2 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS3DW11         PSXT      PSYT      PSZW      TIME1
  
 set reg/x=130w:125w/y=0:1.5/z=0:15/t=21-JAN-1982:24-jan-1982
 !set reg/i=101:105/j=41:42/k=1:2/l=3:4
@@ -59332,19 +60366,19 @@ set reg/x=130w:125w/y=0:1.5/z=0:15/t=21-JAN-1982:24-jan-1982
 use gtsa056_1    	!kob 4/99
  
 LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc  dynamic grid PS3DW11         PSXT      PSYT      PSZW      TIME1     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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DW11         PSXT      PSYT      PSZW      TIME1
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- reading TEMP     M:  6 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  2 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  1 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  2 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ reading TEMP     M:  6 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M:  2 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M:  1 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M:  2 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:  2 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  1 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:  2 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M:  1 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10G00ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 on X at AAV, on Y at AAV*
              FILENAME : gtsa056_1.cdf
@@ -59356,22 +60390,22 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
  20-JAN-1982 00 / 2:  23.88  23.97  24.15  24.37  24.63
  25-JAN-1982 00 / 3:  23.89  23.98  24.17  24.40  24.65
 LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gx=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M:  2 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  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
- eval    EX#1     C:  4 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      TAX5DAY
+ -DELETE TEMP     M:  2 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @AVE
  strip regrid on Y: TEMP --> XNTERMED         @LIN
  strip regrid on Z: TEMP --> YNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M:  6 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  2 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  1 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  2 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  2 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  1 dset:   1 I:   95  106  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  1 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  2 dset:   1 I:   95  106  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  6 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M:  2 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M:  1 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M:  2 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:  2 dset:   1 I:     95    106  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M:  1 dset:   1 I:     95    106  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:  1 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M:  2 dset:   1 I:     95    106  J:   45   49  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10G00ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 on X at AVE, on Y at LIN*
              FILENAME : gtsa056_1.cdf
@@ -59384,19 +60418,19 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gx=g5_10g00abcdefghijkl
  25-JAN-1982 00 / 3:  23.88  23.97  24.15  24.39  24.64
  
 LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
- dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      TAX5DAY   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:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      TAX5DAY
+ getgrid 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:     12     12  J:   45   49  K:    1    1  L:      2      3
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- found   TEMP     M:  6 dset:   1 I:   95  106  J:   45   50  K:    1    2  L:    2    5  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  2 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  5 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  2 dset:   1 I:  100  101  J:   45   50  K:    1    2  L:    2    3  M: -999 -999  N: -999 -999
+ found   TEMP     M:  6 dset:   1 I:     95    106  J:   45   50  K:    1    2  L:      2      5
+ regrid  TEMP     M:  2 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3
+ regrid  TEMP     M:  5 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3
+ -DELETE TEMP     M:  2 dset:   1 I:    100    101  J:   45   50  K:    1    2  L:      2      3  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M:  2 dset:   1 I:   12   12  J:   45   49  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  5 dset:   1 I:  100  101  J:   45   50  K:    1    1  L:    2    3  M: -999 -999  N: -999 -999
+ regrid  TEMP     M:  2 dset:   1 I:     12     12  J:   45   49  K:    1    1  L:      2      3
+ -DELETE TEMP     M:  5 dset:   1 I:    100    101  J:   45   50  K:    1    1  L:      2      3  M: -999 -999  N: -999 -999
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5_10G00ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 on X at LIN, on Y at LIN*
              FILENAME : gtsa056_1.cdf
@@ -59412,211 +60446,211 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijkl
 use gtsa056_2	!kob  4/99
 set region/x=180W/y=0/z=5/t=21-JAN-1982:13-JUN-1983
 load temp[i=50:51,j=45:56,k=1:2,l=1:172]  ! preload to save time
- dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DT1          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     1   172 dset:   2
- reading TEMP     M:  5 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
+ dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DT1          PSXT      PSYT      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ strip moduloing TEMP on T axis:        1      172 dset:   2
+ reading TEMP     M:  5 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
 plot temp
- dealloc  dynamic grid PS3DT1          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DT1          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- found   TEMP     M:  3 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DT1          PSXT      PSYT      PSZT      TIME1
+ 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 PS3DT1          PSXT      PSYT      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ found   TEMP     M:  3 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
 setting up plot
 PPL plot 1    complete
 plot/over temp[g=u]
- dealloc  dynamic grid PS3DT1          PSXT      PSYT      PSZT      TIME1     NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ dealloc  dynamic grid PS3DT1          PSXT      PSYT      PSZT      TIME1
+ 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 PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @LIN
- found   TEMP     M:  3 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ found   TEMP     M:  3 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
  regrid XY
- regrid  TEMP     M:  9 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ regrid  TEMP     M:  9 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    168
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @LIN
- found   TEMP     M:  3 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ found   TEMP     M:  3 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
  regrid XY
- regrid  TEMP     M:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ regrid  TEMP     M:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      1      2
+ doing moduloing TEMP on T axis:        1        2 dset:   2
 setting up plot
 PPL plot 2    complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
  strip regrid on T: TEMP --> XNTERMED         @LIN
- found   TEMP     M:  3 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  8 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:  3 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
+ regrid  TEMP     M:  8 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M: 10 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  8 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 10 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:  8 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 3    complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890]
- dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 10 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -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
- eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT      TAX5DAY
+ -DELETE TEMP     M: 10 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ 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
+ eval    EX#1     C:  4 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @LIN
- found   TEMP     M:  3 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 10 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M:  8 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 10 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:  3 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
+ regrid  TEMP     M: 10 dset:   2 I:     50     51  J:   45   46  K:    1    2  L:      2    104
+ regrid  TEMP     M:  8 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 10 dset:   2 I:     50     51  J:   45   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 10 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M:  8 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 10 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M:  8 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 4    complete
 plot/over temp[g=u at ave]
- dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @AAV
- found   TEMP     M:  3 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ found   TEMP     M:  3 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
  regrid XY
- regrid  TEMP     M:  8 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ regrid  TEMP     M:  8 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    168
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @AAV
- found   TEMP     M:  3 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
+ found   TEMP     M:  3 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
  regrid XY
- regrid  TEMP     M: 12 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ regrid  TEMP     M: 12 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      1      2
+ doing moduloing TEMP on T axis:        1        2 dset:   2
 setting up plot
 PPL plot 5    complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @AAV
  strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M:  3 dset:   2 I:   50   51  J:   45   50  K:    1    2  L:    1  172  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 13 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M:  3 dset:   2 I:     50     51  J:   45   50  K:    1    2  L:      1    172
+ regrid  TEMP     M: 13 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M: 14 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 13 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 14 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 13 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 6    complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- -DELETE TEMP     M: 14 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -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
- eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT      TAX5DAY
+ -DELETE TEMP     M: 14 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ 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
+ eval    EX#1     C:  4 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @AAV
  strip regrid on Z: TEMP --> XNTERMED         @AVE
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- strip moduloing TEMP on T axis:     2   171 dset:   2
- reading TEMP     M: 14 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1   168 dset:   2
- regrid  TEMP     M: 15 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 16 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 15 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ strip moduloing TEMP on T axis:        2      171 dset:   2
+ reading TEMP     M: 14 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      1    168
+ doing moduloing TEMP on T axis:        1      168 dset:   2
+ regrid  TEMP     M: 15 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    104
+ regrid  TEMP     M: 16 dset:   2 I:     45     56  J:   45   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 15 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 15 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 16 dset:   2 I:   45   56  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 15 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 16 dset:   2 I:     45     56  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 7    complete
 plot/over temp[g=u at asn]
- dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- strip moduloing TEMP on T axis:     3   170 dset:   2
+ dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ strip moduloing TEMP on T axis:        3      170 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 13 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 16 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 17 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 16 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  168  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     3   168 dset:   2
+ found   TEMP     M: 13 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    171
+ regrid  TEMP     M: 16 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    168
+ regrid  TEMP     M: 17 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    168
+ -DELETE TEMP     M: 16 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    168  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on T axis:        3      168 dset:   2
  strip regrid on X: TEMP --> PS3DU1           @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 14 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    1  168  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 18 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 19 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 18 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    1    2  M: -999 -999  N: -999 -999
- doing moduloing TEMP on T axis:     1     2 dset:   2
+ found   TEMP     M: 14 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      1    168
+ regrid  TEMP     M: 18 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      1      2
+ regrid  TEMP     M: 19 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      1      2
+ -DELETE TEMP     M: 18 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      1      2  M: -999 -999  N: -999 -999
+ doing moduloing TEMP on T axis:        1        2 dset:   2
 setting up plot
 PPL plot 8    complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
+ eval    EX#1     C:  4 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @ASN
  strip regrid on Y: TEMP --> XNTERMED         @ASN
  strip regrid on Z: TEMP --> YNTERMED         @ASN
  strip regrid on T: TEMP --> ZNTERMED         @ASN
- reading TEMP     M: 18 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 20 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 20 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 20 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 21 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 21 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 20 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ reading TEMP     M: 18 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ regrid  TEMP     M: 20 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ regrid  TEMP     M: 21 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 20 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 20 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 21 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 21 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 20 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 9    complete
 plot/over temp[g=u,gt=u at ave]
- dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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 PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- found   TEMP     M:  7 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    3  170  M: -999 -999  N: -999 -999
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      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
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ allocate dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ found   TEMP     M:  7 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      3    170
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
 setting up plot
 PPL plot 10   complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
- dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1     NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid PS3DU1          PSXU      PSYU      PSZT      TIME1
+ 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
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
  strip regrid on T: TEMP --> XNTERMED         @AVE
- found   TEMP     M: 13 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 20 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M: 13 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    171
+ regrid  TEMP     M: 20 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M: 22 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 20 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 22 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 20 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 11   complete
 plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      PSYU      PSZT      TAX5DAY   NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5DAYG5DAYG5DAYGPSXU      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
+ eval    EX#1     C:  4 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5_10G00ABCDEFGH @LIN
  strip regrid on Z: TEMP --> XNTERMED         @LIN
  strip regrid on T: TEMP --> ZNTERMED         @AVE
- found   TEMP     M: 13 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 20 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 23 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 20 dset:   2 I:   50   51  J:   45   46  K:    1    2  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M: 13 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    171
+ regrid  TEMP     M: 20 dset:   2 I:     50     51  J:   45   46  K:    1    2  L:      2    104
+ regrid  TEMP     M: 23 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 20 dset:   2 I:     50     51  J:   45   46  K:    1    2  L:      2    104  M: -999 -999  N: -999 -999
  regrid XY
- regrid  TEMP     M: 20 dset:   2 I:    7    7  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 23 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 20 dset:   2 I:      7      7  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 23 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 12   complete
 plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at asn]  ! invalid interpretation of data
- dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      TAX5DAY   NORMAL    NORMAL
- 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
- eval    EX#1     C:  4 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ dealloc  dynamic grid G5_10G00ABCDEFGHXAX10     PSYU      PSZW      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
+ eval    EX#1     C:  4 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
  strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
  strip regrid on T: TEMP --> XNTERMED         @ASN
- found   TEMP     M: 13 dset:   2 I:   45   56  J:   45   46  K:    1    2  L:    2  171  M: -999 -999  N: -999 -999
- regrid  TEMP     M: 23 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ found   TEMP     M: 13 dset:   2 I:     45     56  J:   45   46  K:    1    2  L:      2    171
+ regrid  TEMP     M: 23 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104
  regrid XY
- regrid  TEMP     M: 24 dset:   2 I:   50   50  J:   45   45  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
- -DELETE TEMP     M: 23 dset:   2 I:   50   51  J:   45   46  K:    1    1  L:    2  104  M: -999 -999  N: -999 -999
+ regrid  TEMP     M: 24 dset:   2 I:     50     50  J:   45   45  K:    1    1  L:      2    104
+ -DELETE TEMP     M: 23 dset:   2 I:     50     51  J:   45   46  K:    1    1  L:      2    104  M: -999 -999  N: -999 -999
 setting up plot
 PPL plot 13   complete
  
@@ -59625,6 +60659,7 @@ set mode/last diag
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! regrid_to_user
  
 use coads_climatology
@@ -59665,8 +60700,6 @@ show grid
  COADSY    LATITUDE            90 r   89S                  89N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! per axis regrid
 ! 5/01 note: changed from y=0 yo y=5s to accomodate Y-truncated
@@ -59696,8 +60729,6 @@ show grid
  YAX       LATITUDE            81 r   20S                  20N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! combined full grid and per-axis
 list/x=160e/y=5s temp[d=2,k=1,g=gg12345678901234567890,gx=a[d=1]]
@@ -59725,8 +60756,6 @@ show grid
  YAX       LATITUDE            81 r   20S                  20N                 full
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0                   1 pt
  normal    T
- normal    E
- normal    F
  
 ! pseudo-variable access
 list/i=1:4 i[g=a]		! a is previously loaded
@@ -59766,8 +60795,6 @@ show grid gg123456789012345678901
  COADSY    LATITUDE            90 r   89S                  89N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
 let f = sst[y=20s:20n:.1,d=coads_climatology]
 DEFINE GRID/LIKE=f/x=temp[d=levitus_climatology] gg123456789012345678902
 cancel variable f
@@ -59778,8 +60805,6 @@ show grid gg123456789012345678902
  (AX011)   LATITUDE           401 r   20S                  20N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     no implicit grids
@@ -59801,8 +60826,6 @@ show grid gg123456789012345678902
  YAXLEVITR1_90 LATITUDE        90 r   89.5S                0.5S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     no implicit grids
@@ -59821,8 +60844,6 @@ show grid
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! The SET GRID (default) definition should be protected -- not altered
 load/d=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
@@ -59832,11 +60853,9 @@ show grid
     GRID (G005)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX014)   LATITUDE           201 r   10S                  10N                 200 pts
+ (AX014)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
- normal    E
- normal    F
 show grid/dynamic
 Dynamic grids:
     GRID (G005)                          use count:   1
@@ -59845,20 +60864,6 @@ Dynamic grids:
  (AX014)   LATITUDE           201 r   10S                  10N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-    GRID (G006)                          use count:   1
- name       axis              # pts   start                end
- (AX013)   LONGITUDE          301 r   0E                   30E
- COADSY    LATITUDE            90 r   89S                  89N
- normal    Z
- TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
-Dynamic axes:
-    AXIS (AX014)                         use count:   1
-    AXIS (AX013)                         use count:   1
-    AXIS (AX011)                         use count:   1
  
 ! deliberate errors
 set mode ignore
@@ -59868,6 +60873,7 @@ set mode/last ignore
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
 ! dynamic grid commands
  
@@ -59882,8 +60888,6 @@ SHOW GRID mygrid_123456789012345678901234567890
  (AX014)   LATITUDE            41 r   10S                  2S
  ZAXLEVITR1_1 DEPTH (m)         1 r-  0                    0
  normal    T
- normal    E
- normal    F
 *** Running ferret script: bn_xml_repl.jnl
 [?1034h! bn_xml_repl.jnl
 ! replace > and < and & with their html equivalents.
@@ -59935,6 +60939,7 @@ sh dat/xml/var
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_very_small_latlon
 ! err64_very_small_latlon.jnl
 ! Based on a report and data file from Jean Newman.
@@ -59949,6 +60954,7 @@ shade/i=1:10/j=1:10 bathy
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_packed_data
 ! err64_packed_data.jnl
 ! Test writing packed data. Prior to v6.4 this example shows the
@@ -60041,6 +61047,7 @@ list/i=1:15 sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_repl_9999999
 ! bn_repl_9999999.jnl
 ! Bug 1717
@@ -60055,6 +61062,7 @@ can view view9999999
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_shakey_missingdata
 ! err64_shakey_missingdata.jnl
 ! starting with v6.2 a polygon plot with all missing data.
@@ -60079,6 +61087,7 @@ go polytube polygon/over/key/lev=(0,6,1) xpts,ypts,zpts
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_return_precision
 !err64_return_precision.jnl
 ! most of these resulted in *** - format too small.
@@ -60111,6 +61120,7 @@ say `999.999,p=-2`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_parse_equals
 ! err64_parse_equals
 ! Bug1469 (and duplicate 1690)
@@ -60131,6 +61141,7 @@ DEFINE SYMBOL my_sym  = `UPCASE("/lev=(0,30,2)")`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_regrid_noleap
 ! err64_regrid_noleap.jnl
 !
@@ -60174,6 +61185,7 @@ list b[t=15-feb-1150]  ! Now ok??
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err64_polymark_over_calendar
 ! err64_polymark_over_calendar.jnl
 ! bug1722.  Polymark script failed with calendar mismatch
@@ -60602,6 +61614,7 @@ sp cat the_xml_file.xml
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err65_averages.jnl
  
 use gt4d011
@@ -60746,13 +61759,13 @@ save/file=nc4_deflate4_defaultchunk.nc/clobber/ncformat=4/deflate/shuffle sst
 ! history attribute; e.g. changing the Ferret version name from v6.97 to v7
  
 sp stat nc4_nodeflate3.nc --printf="Bytes: %s\n"
-Bytes: 197516
+Bytes: 197520
 sp stat nc4_deflate4bigchunk.nc --printf="Bytes: %s\n"
-Bytes: 125222
+Bytes: 125226
 sp stat nc4_deflate4_xyt.nc --printf="Bytes: %s\n"
-Bytes: 124810
+Bytes: 124814
 sp stat nc4_deflate4_defaultchunk.nc --printf="Bytes: %s\n"
-Bytes: 118875
+Bytes: 118879
  
 ! Write variable as INT
 CAN DAT/all; can var/all; can mem/all
@@ -60767,11 +61780,11 @@ save/clobber/shuffle=1/file=nc4_inttemp_shuffle_set_list_deflate_chunk.nc temp
  
 ! get the file sizes
 sp stat nc4_inttemp_classic.nc --printf="Bytes: %s\n"
-Bytes: 60556
+Bytes: 60560
 sp stat nc4_inttemp_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
-Bytes: 32402
+Bytes: 32406
 sp stat nc4_inttemp_shuffle_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
-Bytes: 32579
+Bytes: 32583
  
 cancel list/all
 set list/ncformat=classic
@@ -60841,9 +61854,7 @@ sh grid tt
  normal    X
  normal    Y
  normal    Z
- TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   9 pts
- normal    E
- normal    F
+ TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   10 pts
  
  
 define axis/x=0:10:0.05 x10
@@ -61048,9 +62059,7 @@ show grid tt
  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   9 pts
- normal    E
- normal    F
+ TOUT      TIME                10 r   01-JAN-2010 00:00    01-APR-2010 00:00   10 pts
  
 let sgrid = scat2grid_bin_xyt (xpts, ypts, tpts, sample_function, x[gx=xax5], y[gy=yax5], tt)
 SAVE/FILE=a.nc/clobber sgrid
@@ -61196,6 +62205,7 @@ AX_VERT = "Y"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err65_dots_in_dashes.jnl
 ! err65_dots_in_dashes.jnl
 ! Test fix to bug 1396: dots where there should
@@ -61216,6 +62226,7 @@ cancel mode meta
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err66_all_missing_lev_v.jnl
 ! err66_all_missing_lev_v.jnl
 ! Ferret hangs with /LEV=V and all missing data
@@ -61300,8 +62311,6 @@ show grid
  MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! --- force the x axis to be regular
 set axis /regular myx
@@ -61361,8 +62370,6 @@ show grid
  MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! --- setting a regular axis as regular does nothing
 set axis /regular myx
@@ -61422,12 +62429,11 @@ show grid
  MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! --- clean up
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 cancel grid mygrid
  
 ! --- read a NetCDF file with the irregular axes and data
@@ -61435,8 +62441,8 @@ use bn_set_axis_regular
 show data
      currently SET data sets:
     1> ./bn_set_axis_regular.nc  (default)
- name     title                             I         J         K         L         M         N
- MYDATA   2 * X + Y                        1:10      1:10      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ MYDATA   2 * X + Y                        1:10      1:10      ...       ...
  
 list mydata
              VARIABLE : 2 * X + Y
@@ -61463,8 +62469,6 @@ show grid
  MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! --- force the x axis to be regular
 set axis /regular `..dimnames[i=1]`
@@ -61494,8 +62498,6 @@ show grid
  MYY       Y                   10 i   1                    10                  full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 *** Running ferret script: bn_set_cancel_redirect.jnl
 [?1034h! bn_set_cancel_redirect.jnl
@@ -61546,8 +62548,6 @@ show grid mygrid
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 go /help
  
 ! --- 5. show the contents of the redirect file
@@ -61636,8 +62636,6 @@ show grid mygrid
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 go /help
  
 ! --- 10. results of CANCEL REDIRECT when nothing is redirected
@@ -61807,8 +62805,6 @@ show grid mygrid
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 go /help
  
 ! --- 18. see what happens to messages (say, warn, error)
@@ -61825,7 +62821,7 @@ let contents = { spawn:"cat redirect_stdout.txt" }
 ! ---     should be the stdout of 17, whatever stdout of 18, and cancel redirect from 19
 list contents
              VARIABLE : { SPAWN:"cat redirect_stdout.txt" }
-             SUBSET   : 24 points (X)
+             SUBSET   : 22 points (X)
  1    /  1:"set redirect /tee /file="redirect_stderr.txt" /clobber stderr"   
  2    /  2:" "                                                               
  3    /  3:"! --- 17. produce some output"                                   
@@ -61836,20 +62832,18 @@ list contents
  8    /  8:" normal    Y"                                                    
  9    /  9:" normal    Z"                                                    
  10   / 10:" normal    T"                                                    
- 11   / 11:" normal    E"                                                    
- 12   / 12:" normal    F"                                                    
- 13   / 13:"go /help"                                                        
- 14   / 14:" "                                                               
- 15   / 15:"! --- 18. see what happens to messages (say, warn, error)"       
- 16   / 16:"say "   This is a say message""                                  
- 17   / 17:"   This is a say message"                                        
- 18   / 18:"set axis /regular myaxis"                                        
- 19   / 19:"set mode ignore_error"                                           
- 20   / 20:"show grid garbage"                                               
- 21   / 21:"cancel mode ignore_error"                                        
- 22   / 22:" "                                                               
- 23   / 23:"! --- 19. cancel redirections and show the contents of the files"
- 24   / 24:"cancel redirect"                                                 
+ 11   / 11:"go /help"                                                        
+ 12   / 12:" "                                                               
+ 13   / 13:"! --- 18. see what happens to messages (say, warn, error)"       
+ 14   / 14:"say "   This is a say message""                                  
+ 15   / 15:"   This is a say message"                                        
+ 16   / 16:"set axis /regular myaxis"                                        
+ 17   / 17:"set mode ignore_error"                                           
+ 18   / 18:"show grid garbage"                                               
+ 19   / 19:"cancel mode ignore_error"                                        
+ 20   / 20:" "                                                               
+ 21   / 21:"! --- 19. cancel redirections and show the contents of the files"
+ 22   / 22:"cancel redirect"                                                 
 cancel var contents
 let contents = { spawn:"cat redirect_stderr.txt" }
 ! ---     should be the stderr of 17.
@@ -61910,8 +62904,6 @@ show grid mygrid
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 go /help
  
 ! --- 26. turn off journal mode
@@ -61944,11 +62936,11 @@ cancel redirect
 let contents = { spawn:"cat redirect_journal.txt" }
 list contents
              VARIABLE : { SPAWN:"cat redirect_journal.txt" }
-             SUBSET   : 47 points (X)
+             SUBSET   : 45 points (X)
  1    /  1:" ! NOAA/PMEL TMAP"                                                          
- 2    /  2:" ! PyFERRET v7 (beta/dbg)"                                                  
- 3    /  3:" ! Linux 2.6.32-642.1.1.el6.x86_64 - 06/17/16"                              
- 4    /  4:" ! 17-Jun-16 15:18     "                                                    
+ 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     "                                                    
  5    /  5:""                                                                           
  6    /  6:"! "                                                                         
  7    /  7:"!! --- 22. produce some output to stdout and stderr"                        
@@ -61982,16 +62974,14 @@ list contents
  35   / 35:"! normal    Y"                                                              
  36   / 36:"! normal    Z"                                                              
  37   / 37:"! normal    T"                                                              
- 38   / 38:"! normal    E"                                                              
- 39   / 39:"! normal    F"                                                              
- 40   / 40:"!go /help"                                                                  
- 41   / 41:"! Use the GO command to name a file of FERRET commands to be executed."     
- 42   / 42:"!     e.g.   yes? GO filename"                                              
+ 38   / 38:"!go /help"                                                                  
+ 39   / 39:"! Use the GO command to name a file of FERRET commands to be executed."     
+ 40   / 40:"!     e.g.   yes? GO filename"                                              
+ 41   / 41:"! "                                                                         
+ 42   / 42:"! Use "GO/HELP filename" to read documentation in  the file to be executed."
  43   / 43:"! "                                                                         
- 44   / 44:"! Use "GO/HELP filename" to read documentation in  the file to be executed."
- 45   / 45:"! "                                                                         
- 46   / 46:"!! --- 26. turn off journal mode"                                           
- 47   / 47:"!set mode journal:ferret.jnl"                                               
+ 44   / 44:"!! --- 26. turn off journal mode"                                           
+ 45   / 45:"!set mode journal:ferret.jnl"                                               
 cancel var contents
  
 ! --- clean-up: get rid of mygrid
@@ -62404,6 +63394,7 @@ LAB4 = "CALENDAR: NOLEAP"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err664_xml_keep_case
 ! err664_xml_keep_case.jnl
 !
@@ -62599,6 +63590,7 @@ REPEAT/RANGE=1:`nd`/name=m (DEFINE SYMBOL m = `m`; SH AXIS/XML `axis_names[i=($m
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err664_xml_one_point_axis
 ! err664_xml_one_point_axis.jnl
 ! See LAS ticket 969.
@@ -62610,8 +63602,8 @@ USE a_cartesian_bug1179.nc
 SH DAT
      currently SET data sets:
     1> ./a_cartesian_bug1179.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
+ name     title                             I         J         K         L
+ TEMP     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1
  
  
 LET/D=1 a = temp
@@ -62626,6 +63618,9 @@ SH VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GHU1">
 <axes>
 <xaxis>GRID_X_T</xaxis>
@@ -62651,6 +63646,9 @@ SH VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GHU1">
 <axes>
 <xaxis>GRID_X_T</xaxis>
@@ -62664,6 +63662,7 @@ SH VAR/XML
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err65_read_epic_cdf
 ! Ned Cokelet reports that the time coordinate is read incorrectly
 ! from this file.  Should translate to  04-MAY-2007 05:02
@@ -62702,6 +63701,7 @@ list ..dimnames
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err664_tax_fcns
 ! err664_tax_fcns.jnl
 ! Fixes for tickets 1766 and 1765
@@ -62899,6 +63899,7 @@ LIST/X=165W:135W/Y=-50/L=1 STRLEN(var)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err665_sum_4d_labels
 ! A multi-dimensioned sum is now done as a 4D transformation.
 ! the labels on a LISTing of the result contained ???
@@ -62915,6 +63916,7 @@ list sst[X=125E,Y=75S:75N at sum,l=1:12 at sum]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err665_din
 ! err665_din
 ! Fixing incorrect latitude corrections for single-point y axis,
@@ -62984,6 +63986,7 @@ list p[x=279:380 at din,z=0:10 at din]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err665_centered_lev
 ! err665_centered_lev
 ! Bug 1803; computation of new levels isnt requested for
@@ -63024,6 +64027,7 @@ LEV_DEL = "5"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err665_hours_since_T
 ! err665_hours_since_T.jnl
 ! Ticket 1806: allow time-axis units string to
@@ -63042,6 +64046,7 @@ T0 = 15-JAN-1901 12:00:00
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_att_too_long
 ! err667_att_too_long.jnl
 ! 3/25/2011 ACM
@@ -63092,6 +64097,7 @@ save/file=aa.nc/clobber sfco2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_mode_desperate
 ! err667_mode_desperate
 ! 3/25/2011 ACM
@@ -63103,31 +64109,32 @@ set mode ignore
  
 ! setting too large
 set mode desperate `9999999999`
- !-> set mode desperate 1.E+10
+ !-> set mode desperate 9999999999.
 show mode desperate
       MODE            STATE        ARGUMENT
-      DESPERATE     CANCELLED      2560000
+      DESPERATE     CANCELED       2560000
  
 ! another setting too large (previously value
 ! was set to the first 10 digits of this)
 set mode desperate 1234567890123456789
 show mode desperate
       MODE            STATE        ARGUMENT
-      DESPERATE     CANCELLED      2560000
+      DESPERATE     CANCELED       2560000
  
 ! Previously couldnt handle a floating point
 ! input. Now we can.
 set mode desperate `96 * 1024 * 1024`
- !-> set mode desperate 1.006633E+08
+ !-> set mode desperate 100663296.
 show mode desperate
       MODE            STATE        ARGUMENT
-      DESPERATE        SET           100663300
+      DESPERATE        SET           100663296
 can mode ignore
  
 cancel mode desperate
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_dup_axnames
 ! err667_dup_axnames.jnl
 ! See bug 1750
@@ -63158,6 +64165,7 @@ save/clob/file="justg.nc" g[d=1]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_string_if
 ! err667_string_if.jnl
 ! Previously both of these LIST commands caused a crash.
@@ -63183,6 +64191,7 @@ list IF strings EQ "a" THEN "" ELSE strings
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_show_var_twice
  ! err667_show_var_twice.jnl
  ! ticket 1825
@@ -63204,11 +64213,13 @@ sh var airt2[d=1]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err667_5d_netcdf
 exit/script  ! this test is not valid for 6D Ferret.
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_save_append_open
 ! err67_save_append_open.jnl
 ! ticket 1832
@@ -63231,8 +64242,8 @@ save/append/file=a.nc temp_mm
 sh dat
      currently SET data sets:
     1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25
  
 can dat/all
  
@@ -63242,9 +64253,9 @@ use a.nc
 sh dat
      currently SET data sets:
     1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
- TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25
+ TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25
  
  
 *** Running ferret script: bn_NaN_note.jnl
@@ -63261,6 +64272,7 @@ USE test0
 ! Now we get the NOTE
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 SET MODE diag
 USE test0
 CANCEL MODE diag
@@ -63271,6 +64283,7 @@ CANCEL MODE diag
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_tax_modtime
 ! err67_tax_modtime.jnl
 ! 5/17/2011
@@ -63341,6 +64354,7 @@ list tax_units(tvar)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_save_append_open
 ! err67_save_append_open.jnl
 ! ticket 1832
@@ -63363,8 +64377,8 @@ save/append/file=a.nc temp_mm
 sh dat
      currently SET data sets:
     1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25
  
 can dat/all
  
@@ -63374,13 +64388,14 @@ use a.nc
 sh dat
      currently SET data sets:
     1> ./a.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25      ...       ...
- TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:18      1:22      1:10      1:25
+ TEMP_MM  TEMP - TEMPAVE                   1:18      1:22      1:10      1:25
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_regridding_dyn
 ! err67_regridding_dyn.jnl
 !  6/2011
@@ -63488,6 +64503,7 @@ list/x=330/y=40:90 filled[d=3,gxy=filled[d=2]]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_reverse_bounds
 ! err67_reverse_bounds.jnl
 !
@@ -63530,6 +64546,7 @@ list lev_var, zboxlo[gz=lev_var], zboxhi[gz=lev_var]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err67_nrst_trans
 ! err67_nrst_trans.jnl
 !
@@ -63560,6 +64577,7 @@ list var
 !
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_stray_line
 ! err672_stray_line.jnl
 ! bug 1545, present in older versions of Ferret too.
@@ -63580,6 +64598,7 @@ plot/over/vs/nolab/line/sym {148.83, 148.17}, {-29.96, -29.68}
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_tax_functions_prec
 ! See ticket 1642: arg 1 of TAX_* functions
 ! is a single-precision variale representing double-precision coords.
@@ -63877,6 +64896,7 @@ can mode ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_subscr_precision
 ! err672_subscr_precision.jnl
 ! See ticket 1888.
@@ -63904,6 +64924,7 @@ list/t="02-JUN-2010:13:34:40":"02-JUN-2010:13:34:50" tt
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_vert_axislabel
 ! err672_vert_axislabel.jnl
 ! bug 1896
@@ -63934,6 +64955,7 @@ SET MODE/LAST shrink_ylab
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_axis_label_prec
 ! See ticket 1907
 ! Axis label format didnt give enough precision for accurate labels
@@ -63967,6 +64989,7 @@ plot v
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_long_show_axis
 ! See ticket 1905 - axes with very large number of points overflowed
 ! the format in SHOW AXIS commands
@@ -63982,6 +65005,7 @@ can axis huge
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_axis_order
 ! err672_axis_order
 ! See comment 5 under ticket 1774.
@@ -63993,20 +65017,20 @@ use err67_axis_order_copy.nc
 sh dat
      currently SET data sets:
     1> ./err67_axis_order.nc
- name     title                             I         J         K         L         M         N
- UCOV     UCOV                             1:6       1:9       1:3       1:1       ...       ...
- CONTROLE CONTROLE                         1:6       ...       ...       ...       ...       ...
- NIVSIGS  NIVSIGS                          ...       ...       1:3       ...       ...       ...
- NIVSIG   NIVSIG                           1:6       ...       ...       ...       ...       ...
- AP       AP                               1:6       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ UCOV     UCOV                             1:6       1:9       1:3       1:1
+ CONTROLE CONTROLE                         1:6       ...       ...       ...
+ NIVSIGS  NIVSIGS                          ...       ...       1:3       ...
+ NIVSIG   NIVSIG                           1:6       ...       ...       ...
+ AP       AP                               1:6       ...       ...       ...
  
     2> ./err67_axis_order_copy.nc  (default)
- name     title                             I         J         K         L         M         N
- UCOV     UCOV                             1:6       1:9       1:3       1:1       ...       ...
- CONTROLE CONTROLE                         1:6       ...       ...       ...       ...       ...
- NIVSIGS  NIVSIGS                          ...       ...       1:3       ...       ...       ...
- NIVSIG   NIVSIG                           1:6       ...       ...       ...       ...       ...
- AP       AP                               1:6       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ UCOV     UCOV                             1:6       1:9       1:3       1:1
+ CONTROLE CONTROLE                         1:6       ...       ...       ...
+ NIVSIGS  NIVSIGS                          ...       ...       1:3       ...
+ NIVSIG   NIVSIG                           1:6       ...       ...       ...
+ AP       AP                               1:6       ...       ...       ...
  
  
 ! Listings should be identical with the bug they are reversed.
@@ -64050,6 +65074,7 @@ list/k=3/i=1 ucov[d=2]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_runoff_page
 ! err672_runoff_page
 ! acm 5/3/2012
@@ -64070,6 +65095,7 @@ SET MODE/LAST shrink_ylab
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_samplexy_modulo
 ! err672_samplexy_modulo.jnl
 ! See ticket 1950: samplexy doesnt correctly do modulo operations.
@@ -64128,6 +65154,7 @@ list samplexyt(sst,{160,180,-20},{0,0,0},{`t1`,`t1`,`t1`})
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_varnames
 ! err672_varnames.jnl
 ! ticket 1938
@@ -64158,6 +65185,7 @@ CAN MODE IGNORE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err672_dset_cx
 ! err672_dset_cx.jnl
 ! Ticket 1951: The dataset specified in list x[gx=a[d=1,i=1:3]] is not applied.
@@ -64167,12 +65195,10 @@ let a = x[gx=0:2:1]; save/clob/file=a1.nc a
 sho grid/x a
     GRID (G008)
  name       axis              # pts   start                end                 subset
- (AX007)   X                    3 r   0                    2                   2 pts
+ (AX007)   X                    3 r   0                    2                   3 pts
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  0                     1          -0.5
@@ -64183,12 +65209,10 @@ let a = x[gx=1:3:1]; save/clob/file=a2.nc a
 sho grid/x a
     GRID (G008)
  name       axis              # pts   start                end                 subset
- (AX002)   X                    3 r   1                    3                   2 pts
+ (AX002)   X                    3 r   1                    3                   3 pts
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
        I     X                   XBOX      XBOXLO
        1>  1                     1          0.5
@@ -64408,40 +65432,40 @@ can mode ver
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.273
-randu2_randn2       0.660
-randu2_randn2       0.581
-randu2_randn2       0.130
-randu2_randn2       0.046
+randu2_randn2       0.808
+randu2_randn2       0.850
+randu2_randn2       0.488
+randu2_randn2       0.076
+randu2_randn2       0.486
              VARIABLE : RANDU2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.181
-randu2_randn2       0.479
-randu2_randn2       0.130
-randu2_randn2       0.017
-randu2_randn2       0.334
+randu2_randn2       0.168
+randu2_randn2       0.183
+randu2_randn2       0.603
+randu2_randn2       0.139
+randu2_randn2       0.651
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.706
-randu2_randn2       0.598
-randu2_randn2       0.639
-randu2_randn2       0.550
-randu2_randn2       0.041
-randu2_randn2       0.719
+randu2_randn2       0.977
+randu2_randn2       0.506
+randu2_randn2       0.567
+randu2_randn2       0.509
+randu2_randn2       0.726
+randu2_randn2       0.597
              VARIABLE : RANDU2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2       0.649
-randu2_randn2       0.659
-randu2_randn2       0.217
-randu2_randn2       0.927
-randu2_randn2       0.323
-randu2_randn2       0.872
+randu2_randn2       0.781
+randu2_randn2       0.994
+randu2_randn2       0.943
+randu2_randn2       0.554
+randu2_randn2       0.582
+randu2_randn2       0.170
              VARIABLE : RANDU2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -64466,40 +65490,40 @@ randu2_randn2       0.638
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2       0.148
-randu2_randn2       0.808
-randu2_randn2       0.482
-randu2_randn2      -0.358
-randu2_randn2      -0.610
+randu2_randn2      -0.877
+randu2_randn2      -0.894
+randu2_randn2      -0.584
+randu2_randn2      -1.907
+randu2_randn2      -2.199
              VARIABLE : RANDN2(XBIG,-1)
              BAD FLAG : -1.E+34       
              SUBSET   : 5 points (X)
              X        : 0.5 to 5.5
-randu2_randn2      -0.845
-randu2_randn2      -0.648
-randu2_randn2       0.768
-randu2_randn2      -0.029
-randu2_randn2      -0.903
+randu2_randn2      -0.100
+randu2_randn2      -0.167
+randu2_randn2       0.402
+randu2_randn2       0.806
+randu2_randn2       1.172
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2      -1.326
-randu2_randn2       0.193
-randu2_randn2      -0.162
-randu2_randn2      -0.674
-randu2_randn2      -0.518
-randu2_randn2       0.558
+randu2_randn2      -0.304
+randu2_randn2      -0.480
+randu2_randn2      -2.544
+randu2_randn2      -1.544
+randu2_randn2       0.812
+randu2_randn2      -0.691
              VARIABLE : RANDN2(XX,0)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
              X        : 0.5 to 6.5
-randu2_randn2      -0.471
-randu2_randn2      -0.503
-randu2_randn2      -0.154
-randu2_randn2      -3.331
-randu2_randn2      -0.816
-randu2_randn2      -1.594
+randu2_randn2       2.575
+randu2_randn2       0.289
+randu2_randn2       0.585
+randu2_randn2      -1.139
+randu2_randn2      -2.485
+randu2_randn2       0.020
              VARIABLE : RANDN2(XX,12436)
              BAD FLAG : -1.E+34       
              SUBSET   : 6 points (X)
@@ -64524,14 +65548,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.902       1.902       1.067
-randu2_randn2       1.658       1.658       1.067
-randu2_randn2       1.067       1.067       0.422
-randu2_randn2       0.422       0.422       0.875
-randu2_randn2       0.013       0.013       0.875
-randu2_randn2      -0.212      -0.095       0.875
-randu2_randn2      -0.095      -0.095       0.875
-randu2_randn2       0.875       0.875       0.875
+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
 *** Running ferret script: bn_axis_cf.jnl
 [?1034h! Ticket 1792: Write axes with CF-compliant units
 ! and with standard name attributes for geophysical attrs.
@@ -64613,8 +65637,6 @@ show grid a
  normal    Y
  normal    Z
  TMIN      TIME                71 i   01-JAN-2001 00:00    01-JAN-2001 01:10   full
- normal    E
- normal    F
 show axis tmin
  name       axis              # pts   start                end
  TMIN      TIME                71 i   01-JAN-2001 00:00    01-JAN-2001 01:10
@@ -64646,8 +65668,6 @@ show grid a
  normal    Y
  normal    Z
  TMIN      T                   71 r   1                    71                  full
- normal    E
- normal    F
 show axis tmin
  name       axis              # pts   start                end
  TMIN      T                   71 r   1                    71
@@ -64923,8 +65943,6 @@ show grid spacetime
  YAXIS     Y                    1 r   1                    1                   full
  normal    Z
  TAXIS     T                  240 r   0                    59.75               full
- normal    E
- normal    F
  
 show func eofsvd_stat
 EOFSVD_STAT(A)
@@ -65545,8 +66563,6 @@ show grid spacetime
  YAXIS     Y                    2 r   1                    2                   full
  normal    Z
  TAXIS     T                  240 r   0                    23.9                full
- normal    E
- normal    F
  
 show func eofsvd_stat
 EOFSVD_STAT(A)
@@ -68484,7 +69500,7 @@ set mode calendar:years
 define axis/f=23-jan-1982:30-jan-1982:20/unit=hour fax20
 define axis/x=120e:60w:10/unit=degrees xax10
 define grid/like=temp/f=fax20 g5day
- getgrid 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 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
  
 set reg/x=130w:125w/y=0:1.5/e=1:2/f=23-JAN-1982:24-jan-1982/t=21-JAN-1982/z=5
@@ -68493,14 +69509,14 @@ use gtsa056_1_ef    	!kob 4/99
  
 stat temp[g=g5day] - temp[g=g5day at ave]
  dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
- getgrid 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:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    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
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
  strip regrid on F: TEMP --> G5DAY            @LIN
- reading TEMP     M:  1 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
- regrid  TEMP     M:  2 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
+ reading TEMP     M:  1 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:  2 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
  strip regrid on F: TEMP --> G5DAY            @AVE
- found   TEMP     M:  1 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
- regrid  TEMP     M:  3 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
+ found   TEMP     M:  1 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:  3 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
  
              TEMP[G=G5DAY] - TEMP[G=G5DAY at AVE]
              LONGITUDE: 130W to 125W
@@ -68520,15 +69536,15 @@ stat temp[g=g5day] - temp[g=g5day at ave]
  
 ! basic regrid tests
 LIST temp[g=g5day at ave]
- -DELETE EX#1     M:  4 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
+ -DELETE EX#1     M:  4 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAX20
- -DELETE TEMP     M:  2 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
- -DELETE TEMP     M:  3 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    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
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
+ -DELETE TEMP     M:  2 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
+ -DELETE TEMP     M:  3 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    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
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
  strip regrid on F: TEMP --> G5DAY            @AVE
- found   TEMP     M:  1 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
- regrid  TEMP     M:  3 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
+ found   TEMP     M:  1 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:  3 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY on F at AVE
              FILENAME : gtsa056_1_ef.nc
@@ -68569,12 +69585,12 @@ LIST temp[g=g5day at ave]
  0.17S / 41:  43.35  43.26  43.17  43.14  43.27
 LIST temp[g=g5day]	
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAX20
- -DELETE TEMP     M:  3 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    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
- eval    EX#1     C:  4 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
+ -DELETE TEMP     M:  3 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    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
+ eval    EX#1     C:  4 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
  strip regrid on F: TEMP --> G5DAY            @LIN
- found   TEMP     M:  1 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
- regrid  TEMP     M:  3 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    1    2
+ found   TEMP     M:  1 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:  3 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    1    2
              VARIABLE : TEMPERATURE (deg. C)
                         regrid: G5DAY
              FILENAME : gtsa056_1_ef.nc
@@ -68634,15 +69650,15 @@ use gtsa056_1_ef 		!kob 4/99
 set region/x=180E/y=0/f=23-JAN-1982/t=21-JAN-1982/z=5
 plot temp
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAX20
- -DELETE TEMP     M:  3 dset:   1 I:  101  105  J:   41   46  K:    1    1  L:    3    3  M:    1    2  N:    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
+ -DELETE TEMP     M:  3 dset:   1 I:    101    105  J:   41   46  K:    1    1  L:      3      3  M:    1    2  N:    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 GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
  strip --> EX#1[F=1982 at ITP,D=1]
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  8 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- reading TEMP     M:  3 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
+ eval    EX#1     C:  8 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ reading TEMP     M:  3 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
@@ -68651,14 +69667,14 @@ setting up plot
 PPL plot 1    complete
 plot/over temp[g=g5day]
  dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
- getgrid 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 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ eval    EX#1     C:  7 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @LIN
- found   TEMP     M:  3 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- regrid  TEMP     M:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ found   TEMP     M:  3 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M:  7 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
@@ -68666,18 +69682,18 @@ setting up plot
 PPL plot 2    complete
 plot/over temp[g=g5day at ave]
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAX20
- -DELETE TEMP     M:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M:  8 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M:  9 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 10 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    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
+ -DELETE TEMP     M:  7 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:  8 dset:   1 I:   -999   -999  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:  9 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M: 10 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:   -999   -999  M:    1    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
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ eval    EX#1     C:  7 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @AVE
- found   TEMP     M:  3 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- regrid  TEMP     M: 10 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ found   TEMP     M:  3 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M: 10 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
@@ -68685,18 +69701,18 @@ setting up plot
 PPL plot 3    complete
 plot/over temp[g=g5day at asn]
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAX20
- -DELETE TEMP     M:  7 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
- -DELETE TEMP     M:  8 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M:  9 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 10 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    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
+ -DELETE TEMP     M:  7 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:   -999   -999  M:    1    2  N:    1    1
+ -DELETE TEMP     M:  8 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:  9 dset:   1 I:   -999   -999  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M: 10 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    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
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[Y=0 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ eval    EX#1     C:  7 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @ASN
- found   TEMP     M:  3 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    2
- regrid  TEMP     M: 10 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
+ found   TEMP     M:  3 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    2
+ regrid  TEMP     M: 10 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[Y=0 at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
@@ -68707,17 +69723,17 @@ PPL plot 4    complete
 set region/x=180/y=20s:20n/e=2/t=21-JAN-1982/z=5
 plot temp
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAX20
- -DELETE TEMP     M:  7 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L: -999 -999  M:    1    2  N:    1    1
- -DELETE TEMP     M:  8 dset:   1 I: -999 -999  J: -999 -999  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M:  9 dset:   1 I: -999 -999  J:   41   42  K:    1    1  L:    2    3  M:    1    2  N:    1    1
- -DELETE TEMP     M: 10 dset:   1 I:   50   51  J:   41   42  K:    1    1  L:    2    3  M:    1    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
+ -DELETE TEMP     M:  7 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:   -999   -999  M:    1    2  N:    1    1
+ -DELETE TEMP     M:  8 dset:   1 I:   -999   -999  J: -999 -999  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M:  9 dset:   1 I:   -999   -999  J:   41   42  K:    1    1  L:      2      3  M:    1    2  N:    1    1
+ -DELETE TEMP     M: 10 dset:   1 I:     50     51  J:   41   42  K:    1    1  L:      2      3  M:    1    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
  allocate dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
  strip --> EX#1[F=1982 at ITP,D=1]
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  7 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
- reading TEMP     M: 10 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
+ eval    EX#1     C:  7 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
+ reading TEMP     M: 10 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
  doing --> TEMP[F=1982 at ITP,D=1]
@@ -68725,45 +69741,45 @@ setting up plot
 PPL plot 5    complete
 plot/over temp[g=g5day]
  dealloc  dynamic grid GGR1            PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAXIS
- getgrid 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 EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ eval    EX#1     C:  6 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @LIN
- found   TEMP     M: 10 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
- regrid  TEMP     M: 11 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ found   TEMP     M: 10 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
+ regrid  TEMP     M: 11 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
 PPL plot 6    complete
 plot/over temp[g=g5day at ave]
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAX20
- -DELETE TEMP     M: 11 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- -DELETE TEMP     M: 12 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- -DELETE TEMP     M: 13 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  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
+ -DELETE TEMP     M: 11 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
+ -DELETE TEMP     M: 12 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
+ -DELETE TEMP     M: 13 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:   -999   -999  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
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ eval    EX#1     C:  6 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @AVE
- found   TEMP     M: 10 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
- regrid  TEMP     M: 13 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ found   TEMP     M: 10 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
+ regrid  TEMP     M: 13 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
 PPL plot 7    complete
 plot/over temp[g=g5day at asn]
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAX20
- -DELETE TEMP     M: 11 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
- -DELETE TEMP     M: 12 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- -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
+ -DELETE TEMP     M: 11 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:   -999   -999  M:    2    2  N:    1    1
+ -DELETE TEMP     M: 12 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
+ -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
  strip --> EX#1[T=1982 at ITP,D=1]
  strip --> EX#1[X=180E at ITP,D=1]
- eval    EX#1     C:  6 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ eval    EX#1     C:  6 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  strip regrid on F: TEMP --> G5DAY            @ASN
- found   TEMP     M: 10 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    2
- regrid  TEMP     M: 13 dset:   1 I:   50   51  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
+ found   TEMP     M: 10 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    2
+ regrid  TEMP     M: 13 dset:   1 I:     50     51  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
  doing --> TEMP[X=180E at ITP,D=1]
  doing --> TEMP[T=1982 at ITP,D=1]
 setting up plot
@@ -68789,11 +69805,11 @@ let a2 = _e[ge=e2pt]+_f[gf=f2pt]
  
 list a1[ge=eoffset at ave, gf=fax4day at ave]
  dealloc  dynamic grid G5DAY           PSXT      PSYT5_89  PSZT1_2   TIME2     EAXIS     FAX20
- -DELETE TEMP     M: 11 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L: -999 -999  M:    2    2  N:    1    1
- -DELETE TEMP     M: 12 dset:   1 I: -999 -999  J:    1   84  K:    1    1  L:    2    3  M:    2    2  N:    1    1
- -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
+ -DELETE TEMP     M: 11 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:   -999   -999  M:    2    2  N:    1    1
+ -DELETE TEMP     M: 12 dset:   1 I:   -999   -999  J:    1   84  K:    1    1  L:      2      3  M:    2    2  N:    1    1
+ -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
@@ -68802,22 +69818,22 @@ list a1[ge=eoffset at ave, gf=fax4day at ave]
  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
- 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
+ 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
  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
+ 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
- pseudo  _E       M: 13 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
+ 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
- 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
+ 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
- -DELETE _E       M: 13 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
+ -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
- 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
+ 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
              VARIABLE : _E[GE=E1PT]+_F[GF=F1PT]
                         regrid: 1 delta on E at AVE, 96 hour on F at AVE
@@ -68842,19 +69858,19 @@ list a1[ge=eoffset at ave, gf=fax4day at ave]
  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
- -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
+ -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
- 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
+ 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
  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
+ 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
              VARIABLE : _E[GE=E1PT]+_F[GF=F1PT]
                         regrid: 1 delta on E at SUM, 96 hour on F at SUM
@@ -68879,19 +69895,19 @@ list a1[ge=eoffset at sum, gf=fax4day at sum]
  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
- -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
+ -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
- 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
+ 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
  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
+ 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
              VARIABLE : Variance of _E[GE=E1PT]+_F[GF=F1PT]
                         regrid: 1 delta on E at VAR, 96 hour on F at VAR
@@ -68917,9 +69933,9 @@ list a1[ge=eoffset at var, gf=fax4day at var]
  
 list a2[ge=eoffset at ave, gf=fax4day at ave]
  dealloc  dynamic grid (G003)          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
+ -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
@@ -68928,22 +69944,22 @@ list a2[ge=eoffset at ave, gf=fax4day at ave]
  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
- 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
+ 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
  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
+ 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
- pseudo  _E       M: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ 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
- 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
+ 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
- -DELETE _E       M: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ -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
- 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
+ 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
              VARIABLE : _E[GE=E2PT]+_F[GF=F2PT]
                         regrid: 1 delta on E at AVE, 96 hour on F at AVE
@@ -68968,19 +69984,19 @@ list a2[ge=eoffset at ave, gf=fax4day at ave]
  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
- -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
+ -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
- 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
+ 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
  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
+ 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
              VARIABLE : _E[GE=E2PT]+_F[GF=F2PT]
                         regrid: 1 delta on E at SUM, 96 hour on F at SUM
@@ -69005,19 +70021,19 @@ list a2[ge=eoffset at sum, gf=fax4day at sum]
  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
- -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
+ -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
- 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
+ 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
  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
+ 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
              VARIABLE : Variance of _E[GE=E2PT]+_F[GF=F2PT]
                         regrid: 1 delta on E at VAR, 96 hour on F at VAR
@@ -69045,31 +70061,31 @@ list a2[ge=eoffset at var, gf=fax4day at var]
  
 let a1 = _e[ge=e1pt]
  dealloc  dynamic grid (G004)          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
+ -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
- -DELETE A1       M: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N:    1    1
+ -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
 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
+ getgrid 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
- 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
+ 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
- eval    A1       C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
+ 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
- pseudo  _E       M: 11 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    1  N: -999 -999
+ 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
- regrid  A1       M: 13 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ 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
              VARIABLE : _E[GE=E1PT]
                         regrid: 1 delta on E at MAX
@@ -69077,25 +70093,25 @@ list a1[ge=eoffset at max]
  1.1 / 1:   ....
  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
+ -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
- -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
+ -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
- 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
+ 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
- eval    A2       C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ 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
- pseudo  _E       M: 13 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ 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
- regrid  A2       M: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  N: -999 -999
+ 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
              VARIABLE : _E[GE=E2PT]
                         regrid: 1 delta on E at MAX
@@ -69103,25 +70119,25 @@ list a2[ge=eoffset at max]
  1.1 / 1:  1.500
  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
+ -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
- -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
+ -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
- 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
+ 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
- eval    A4       C:  7 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
+ 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
- pseudo  _E       M: 12 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    3  N: -999 -999
+ 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
- regrid  A4       M: 15 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M:    1    2  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
              VARIABLE : _E[GE=E4PT]
                         regrid: 1 delta on E at MAX
@@ -69129,18 +70145,18 @@ list a4[ge=eoffset at max]
  1.1 / 1:  1.500
  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
+ -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
- -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
+ -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
- 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
+ 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
- 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
+ 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
              VARIABLE : _E[GE=E4PT]
                         regrid: 1 delta on E at MIN
@@ -69149,16 +70165,16 @@ list a4[ge=eoffset at min]
  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
- -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
+ -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
- 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
+ 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
- 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
+ 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
              VARIABLE : _E[GE=E4PT]
                         regrid: 1 delta on E at SUM
@@ -69172,17 +70188,17 @@ 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
- -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
+ -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
- 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
+ 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
- pseudo  _F       M: 15 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N:    1    5
+ 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
              VARIABLE : _F[GF=EDAY]
              SUBSET   : 5 points (FORECAST)
@@ -69203,17 +70219,17 @@ show grid
  normal    E
  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
+ -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
- getgrid 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 EX#1     C:  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
- 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    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
- 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
+ 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
              VARIABLE : _F[GF=EDAY]
                         regrid: 24 hour on F at MAX
@@ -69261,25 +70277,26 @@ 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
+ 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
  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
+ 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]
- strip aggregate gathering SST on E axis:     1     4 dset:   5
- reading SST      M:  1 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering SST on E axis:     1     1 dset:   1
- -DELETE SST      M:  1 dset:   1 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:  1 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering SST on E axis:     2     2 dset:   3
- -DELETE SST      M:  1 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:  1 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering SST on E axis:     3     3 dset:   2
- -DELETE SST      M:  1 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:  1 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering SST on E axis:     4     4 dset:   4
- -DELETE SST      M:  1 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ strip aggregate gathering SST on E axis:        1        4 dset:   5
+ reading SST      M:  1 dset:   1 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering SST on E axis:        1        1 dset:   1
+ -DELETE SST      M:  1 dset:   1 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:  1 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering SST on E axis:        2        2 dset:   3
+ -DELETE SST      M:  1 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:  1 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering SST on E axis:        3        3 dset:   2
+ -DELETE SST      M:  1 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:  1 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering SST on E axis:        4        4 dset:   4
+ -DELETE SST      M:  1 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
  doing --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
+ final --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
              VARIABLE : SST_IN (Deg C)
              DATA SET : Ensemble series of 4 datasets patterned on ens1
              FILENAME : fourfiles
@@ -69294,23 +70311,27 @@ list/i=3 sst[T=@ave]
  4   / 4:  114.1  113.8  111.6  109.8  106.9  102.2   ....   ....   ....
  
 show memory/all  ! show memory-resident variables before canceling dataset
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 540 words
+    Current cache: 504 words
 all data in memory:
- SST[D=fourfiles]                  YE    mr:1  blk1:1  nblk:1
-    3  /106W           1  /12N          ...  / ...         ...  /01-JAN 00:45   1  /0.5          ...  / ...
-    3  /104W           9  /30N          ...  / ...         ...  /31-DEC 06:34   4  /4.5          ...  / ...
+ SST[D=fourfiles]                  YE    mr:1 size:72
+         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:2  blk1:2  nblk:1
-    3  /106W           1  /12N          ...  / ...           1  /01-JAN 00:45   1  /0.5          ...  / ...
-    3  /104W           9  /30N          ...  / ...          12  /31-DEC 06:34   4  /4.5          ...  / ...
+ SST[D=fourfiles]                  YTE   mr:2 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              ... / ...
  
 cancel data fourfiles
  dealloc  dynamic grid (G006)          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
+ -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
 show memory/all  ! show memory-resident variables after  canceling dataset
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 540 words
+    Current cache: 0 words
 all data in memory:
  
 ! 12/15 now do again adding COADS to de-align toe dset #s from the sequence #s
@@ -69326,8 +70347,8 @@ define data/agg/E/hide fourfiles = ens1, ens3, ens2, ens4
 show data
      currently SET data sets:
     1> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
     6> fourfiles  (default)  Ensemble aggregation
  name     title                             I         J         K         L         M         N
@@ -69350,12 +70371,12 @@ let/d=ens3 airt = sst + 1
 let/d=ens4 airt = sst + 1
  
 ENSEMBLE fourfiles = ens1, ens3, ens2, ens4
- getgrid AIRT     C:  5 dset:   4 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1     NORMAL    NORMAL
- getgrid AIRT     C:  5 dset:   3 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1     NORMAL    NORMAL
- getgrid AIRT     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 GOH1            COADSX116_COADSY52_6NORMAL    TIME1     NORMAL    NORMAL
+ getgrid AIRT     C:  5 dset:   4 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1
+ getgrid AIRT     C:  5 dset:   3 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1
+ getgrid AIRT     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 GOH1            COADSX116_COADSY52_6NORMAL    TIME1
 show data fourfiles
      currently SET data sets:
     6> fourfiles  (default)  Ensemble aggregation
@@ -69365,34 +70386,35 @@ 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
+ 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
  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
+ 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]
- strip aggregate gathering AIRT on E axis:     1     4 dset:   6
- reading AIRT     M:  2 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     1     1 dset:   2
- -DELETE AIRT     M:  2 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- eval    AIRT     C:  9 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:  2 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     2     2 dset:   4
- -DELETE AIRT     M:  4 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- eval    AIRT     C:  9 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:  4 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     3     3 dset:   3
- -DELETE AIRT     M:  5 dset:   3 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- eval    AIRT     C:  9 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- reading SST      M:  5 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     4     4 dset:   5
- -DELETE AIRT     M:  6 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ strip aggregate gathering AIRT on E axis:        1        4 dset:   6
+ reading AIRT     M:  2 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering AIRT on E axis:        1        1 dset:   2
+ -DELETE AIRT     M:  2 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ eval    AIRT     C:  9 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:  2 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing aggregate gathering AIRT on E axis:        2        2 dset:   4
+ -DELETE AIRT     M:  4 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ eval    AIRT     C:  9 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:  4 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing aggregate gathering AIRT on E axis:        3        3 dset:   3
+ -DELETE AIRT     M:  5 dset:   3 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ eval    AIRT     C:  9 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ reading SST      M:  5 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing aggregate gathering AIRT on E axis:        4        4 dset:   5
+ -DELETE AIRT     M:  6 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
  doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
+ final --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
              VARIABLE : AIR TEMPERATURE (DEG C)
              DATA SET : Ensemble series of 4 datasets patterned on ens1
              FILENAME : fourfiles
@@ -69408,10 +70430,10 @@ list/i=3 airt[T=@ave]
  
 ! create an ensemble where one member is missing
 ENSEMBLE fourfiles_gap = ens1, -, ens3, ens4
- getgrid AIRT     C:  5 dset:   4 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1     NORMAL    NORMAL
- getgrid AIRT     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 GOH1            COADSX116_COADSY52_6NORMAL    TIME1     NORMAL    NORMAL
+ getgrid AIRT     C:  5 dset:   4 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid GOH1            COADSX116_COADSY52_6NORMAL    TIME1
+ getgrid AIRT     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 GOH1            COADSX116_COADSY52_6NORMAL    TIME1
 show data/files fourfiles_gap
      currently SET data sets:
     7> fourfiles_gap  (default)  Ensemble aggregation
@@ -69419,37 +70441,38 @@ show data/files fourfiles_gap
  SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
  AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12      1:4       ...
  
-          Aggregated datasets:
-      1: ./ens1.nc
-      2: (dummy)
-      3: ./ens3.nc
-      4: ./ens4.nc
+          Member datasets:
+      7.1: ./ens1.nc
+      7.2: (dummy)
+      7.3: ./ens3.nc
+      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
+ 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
  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
+ 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]
- strip aggregate gathering AIRT on E axis:     1     4 dset:   7
- reading AIRT     M:  3 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     1     1 dset:   2
- -DELETE AIRT     M:  3 dset:   2 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- dummy AIRT     M:  3 dset: 401 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     2     2 dset: 401
- -DELETE AIRT     M:  3 dset: 401 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- eval    AIRT     C:  9 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- found   SST      M:  2 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     3     3 dset:   4
- -DELETE AIRT     M:  8 dset:   4 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- eval    AIRT     C:  9 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- found   SST      M:  5 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
- constan cnst     M:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  8 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing aggregate gathering AIRT on E axis:     4     4 dset:   5
- -DELETE AIRT     M:  3 dset:   5 I:    3    3  J:    1    9  K: -999 -999  L:    1   12  M: -999 -999  N: -999 -999
+ strip aggregate gathering AIRT on E axis:        1        4 dset:   7
+ reading AIRT     M:  3 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering AIRT on E axis:        1        1 dset:   2
+ -DELETE AIRT     M:  3 dset:   2 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ dummy AIRT     M:  3 dset:5001 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ doing aggregate gathering AIRT on E axis:        2        2 dset:5001
+ -DELETE AIRT     M:  3 dset:5001 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ eval    AIRT     C:  9 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ found   SST      M:  2 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing aggregate gathering AIRT on E axis:        3        3 dset:   4
+ -DELETE AIRT     M:  8 dset:   4 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ eval    AIRT     C:  9 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ found   SST      M:  5 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
+ constan cnst     M:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE cnst     M:  8 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing aggregate gathering AIRT on E axis:        4        4 dset:   5
+ -DELETE AIRT     M:  3 dset:   5 I:      3      3  J:    1    9  K: -999 -999  L:      1     12
  doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=7]
+ final --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=7]
              VARIABLE : AIR TEMPERATURE (DEG C)
              DATA SET : Ensemble series of 4 datasets patterned on ens1
              FILENAME : fourfiles_gap
@@ -69505,15 +70528,15 @@ let/d=2/units="`vin,return=units`"/title="`vin,return=title`" \
 show data
      currently SET data sets:
     1> ./coads_uw.nc
- name     title                             I         J         K         L         M         N
- UWND     ZONAL WIND                       1:30      1:30      ...       1:12      ...       ...
- VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      ...       ...
- SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12
+ VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12
+ SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12
  
     2> ./navy_uw.nc  (default)
- name     title                             I         J         K         L         M         N
- UIN      ZONAL WIND                       1:30      1:30      ...       1:30      ...       ...
- VIN      MERIDIONAL WIND                  1:30      1:30      ...       1:30      ...       ...
+ name     title                             I         J         K         L
+ UIN      ZONAL WIND                       1:30      1:30      ...       1:30
+ VIN      MERIDIONAL WIND                  1:30      1:30      ...       1:30
  ------------------------------
  VWND[D=navy_uw] = VIN[D=2,GXY=VWND[D=1],GT=VWND[D=1]@MOD]
  UWND[D=navy_uw] = UIN[D=2,GXY=UWND[D=1],GT=UWND[D=1]@MOD]
@@ -69607,13 +70630,13 @@ show command define
  DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+         /EDGES/CALENDAR/BOUNDS/QUIET/MONTHLY/LIKE
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
  DEFINE ALIAS
  DEFINE SYMBOL
  DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE/U
  DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
 show command show
  SHOW/ALL
@@ -69623,12 +70646,12 @@ show command show
  SHOW EXPRSION/ALL
  SHOW LIST/ALL
  SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
-       /HIDDEN
+       /HIDDEN/MEMBERS
  SHOW MODE/ALL
  SHOW MOVIE/ALL
  SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
  SHOW COMMANDS/ALL/BRIEF
- SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+ SHOW MEMORY/ALL/DIAGNOST/TEMPORY/PERMANT/FREE
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
  SHOW VIEWPORT/ALL
  SHOW TRANFORM/ALL
@@ -69722,20 +70745,20 @@ show data/brief/files
      currently SET data sets:
     1> ./coads_climatology.cdf
     6> fourfiles     Ensemble aggregation
-          Aggregated datasets:
-      1: ./ens1.nc
-      2: ./ens2.nc
-      3: ./ens3.nc
-      4: ./ens4.nc
+          Member datasets:
+      6.1: ./ens1.nc
+      6.2: ./ens2.nc
+      6.3: ./ens3.nc
+      6.4: ./ens4.nc
     7> some     Ensemble aggregation
-          Aggregated datasets:
-      1: ./ens1.nc
-      2: ./ens2.nc
+          Member datasets:
+      7.1: ./ens1.nc
+      7.2: ./ens2.nc
     8> more  (default)  Ensemble aggregation
-          Aggregated datasets:
-      1: ./ens2.nc
-      2: ./ens3.nc
-      3: ./ens4.nc
+          Member datasets:
+      8.1: ./ens2.nc
+      8.2: ./ens3.nc
+      8.3: ./ens4.nc
  
 ! Cancel a member of all the ensembles.  All the ensembles get deleted.
 cancel data ens2
@@ -69756,15 +70779,15 @@ set mode 6d_lab  ! this is the default setting
 show data
      currently SET data sets:
     1> ./gt4d011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
+ SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
+ U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
+ V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
+ W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
+ TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
+ TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
+ PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  
 cancel mode 6d_lab
 show data
@@ -69791,8 +70814,6 @@ show grid temp
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
- normal    E
- normal    F
 cancel mode 6d_lab
 show grid temp
     GRID PS3DT2
@@ -69844,14 +70865,15 @@ stat temp
 set mode diag
 set mode 6d_lab
 list/L=1:8 taux[x=@ave,y=@ave]
- dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1     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 PS2DU2          PSXU      PSYU      NORMAL    TIME1     NORMAL    NORMAL
+ dealloc  dynamic grid PS3DT2          PSXT      PSYT      PSZT      TIME1
+ getgrid EX#1     C:  5 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ allocate dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME1
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1  160  J:    1  100  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
+ eval    EX#1     C:  5 dset:   1 I:      1    160  J:    1  100  K: -999 -999  L:      1      8
  strip --> TAUX[Y=28.8S:51.4N at AV4,D=1]
- reading TAUX     M:  2 dset:   1 I:   91  108  J:   35   55  K: -999 -999  L:    1    8  M: -999 -999  N: -999 -999
+ reading TAUX     M:  2 dset:   1 I:     91    108  J:   35   55  K: -999 -999  L:      1      8
  doing --> TAUX[Y=3.5S:3.5N at AV4,D=1]
+ final --> TAUX[Y=3.5S:3.5N at AV4,D=1]
              VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
              FILENAME : gt4d011.cdf
              SUBSET   : 8 points (TIME)
@@ -69868,12 +70890,12 @@ list/L=1:8 taux[x=@ave,y=@ave]
 cancel mode 6d_lab
 list/L=1:8 taux[x=@sum,y=@sum]
  dealloc  dynamic grid PS2DU2          PSXU      PSYU      NORMAL    TIME1
- getgrid EX#1     C:  5 dset:   1 I:    1    1  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 PS2DU2          PSXU      PSYU      NORMAL    TIME1
  strip limits reconciliation : EX#1
- eval    EX#1     C:  5 dset:   1 I:    1  160  J:    1  100  K: -999 -999  L:    1    8
+ eval    EX#1     C:  5 dset:   1 I:      1    160  J:    1  100  K: -999 -999  L:      1      8
  strip --> TAUX[Y=28.8S:51.4N at SM4,D=1]
- found   TAUX     M:  2 dset:   1 I:   91  108  J:   35   55  K: -999 -999  L:    1    8
+ found   TAUX     M:  2 dset:   1 I:     91    108  J:   35   55  K: -999 -999  L:      1      8
  doing --> TAUX[Y=3.5S:3.5N at SM4,D=1]
              VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
              FILENAME : gt4d011.cdf
@@ -69899,6 +70921,7 @@ set mode 6d_lab
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err681_dims_direction
 ! err681_dims_direction.jnl
 ! ticket 1955: Code still existed that determined axis direction
@@ -69926,10 +70949,10 @@ use dims_not_coord
 sh dat
      currently SET data sets:
     1> ./dims_not_coord.nc  (default)
- name     title                             I         J         K         L         M         N
- U        zonal current                    1:4       1:7       1:1       ...       ...       ...
- LON_C    uv longitude                     1:4       1:7       ...       ...       ...       ...
- LAT_C    uv latitude                      1:4       1:7       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ U        zonal current                    1:4       1:7       1:1       ...
+ LON_C    uv longitude                     1:4       1:7       ...       ...
+ LAT_C    uv latitude                      1:4       1:7       ...       ...
  
 sho grid lon_c
     GRID GOS2
@@ -69938,8 +70961,6 @@ sho grid lon_c
  TAU1      Y                    7 r   1                    7                   full
  normal    Z
  normal    T
- normal    E
- normal    F
  
 *** Running ferret script: bn683_bug_fixes.jnl
 [?1034h! bn683_bug_fixes.jnl
@@ -69948,6 +70969,7 @@ sho grid lon_c
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_shrink_axlab
 ! err682_shrink_axlab.jnl
 ! See ticket 1958. Scripts may want the axis labels to
@@ -69975,6 +70997,7 @@ set mode/last shrink_ylab
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_xact_high_prec
 ! err682_xact_high_prec.jnl
 ! based on an example from the Users List,
@@ -69982,6 +71005,8 @@ GO err682_xact_high_prec
  
 ! shows that the @XACT regridding in double-precision Ferret is broken.
  
+! 3/17 *sh* - broke after change to RESHAPE in GCF_IMPOSE_AXES
+!           - fixed it by cleaning up the definition of var_regrid
  
 Let time = {\
  22585.3295833333,\
@@ -69998,11 +71023,14 @@ Let time = {\
 Define Axis /T /From /T0=1-JAN-1950 /Units=days my_axis = time
  
 Let fake_var = T[GT=my_axis]
-Let var = RANDU( fake_var )
-Let var_regrid = RESHAPE( var, fake_var )
+! this was the definition prior to 3/17
+!Let var = RANDU( fake_var )
+!Let var_regrid = RESHAPE( var, fake_var )
+Let var_regrid = RANDU( fake_var )   ! new definition
+ 
  
 List /T="2-nov-2011 07:54":"2-nov-2011 08:04" var_regrid
-             VARIABLE : RESHAPE( VAR, FAKE_VAR )
+             VARIABLE : RANDU( FAKE_VAR )
              SUBSET   : 10 points (TIME)
  02-NOV-2011 07:54:36 /  1:  0.6251
  02-NOV-2011 07:55:36 /  2:  0.2209
@@ -70060,6 +71088,7 @@ List /T="2-nov-2011 07:54:30":"2-nov-2011 07:54:50" var_sec
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_if_yes_exit
 ! err682_if_yes_exit.jnl
 ! Ticket 1965
@@ -70076,6 +71105,7 @@ if `test` then exit
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_use_no_quotes
 ! err682_use_no_quotes.jnl
 ! See ticket 1974 - on 64-bit machines, this statement causes a crash.
@@ -70089,6 +71119,7 @@ CANCEL MODE ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_axis_no_clue
 ! err682_axis_no_clue.jnl
 ! See ticket 1975. The axis sax is intended to be
@@ -70100,12 +71131,13 @@ use xsz.nc
 sh dat
      currently SET data sets:
     1> ./xsz.nc  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:5       1:7       1:3       ...       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:5       1:7       1:3       ...
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_grid_merge
 ! err682_grid_merge.jnl
 ! Bug 1972. When merging contexts, the calendar time-axis
@@ -70152,6 +71184,7 @@ list b[T=1-JAN-1960:1-JAN-1961]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_scale_no_offset
 ! err682_scale_no_offset.jnl
 ! See ticket 1980 and the report on the Ferret list at
@@ -70187,6 +71220,7 @@ say `sst_rms[x=@nbd,y=@nbd]`  SHOULD BE 30
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err682_append_packed
 ! err682_append_packed.jnl
 ! See ticket 2004. Write packed variable with scale attributes
@@ -70259,7 +71293,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70317,7 +71351,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70365,7 +71399,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70413,7 +71447,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70453,7 +71487,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70494,7 +71528,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70564,7 +71598,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70617,7 +71651,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70681,7 +71715,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70725,7 +71759,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70769,7 +71803,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70813,7 +71847,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -70854,7 +71888,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71045,8 +72079,8 @@ use coads_clim_4digit.des
 sh dat
      currently SET data sets:
     1> ./coads_clim_4digit.des  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:4       1:4       ...       1:6       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:4       1:4       ...       1:6
  
 list/x=180/y=0 sst
              VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
@@ -71085,7 +72119,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        FLOAT     units           CHAR        12   T       degrees_east
@@ -71126,7 +72160,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        FLOAT     units           CHAR        12   T       degrees_east
@@ -71177,7 +72211,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (COADSX140_140)        DOUBLE    units           CHAR        12   T       degrees_east
@@ -71225,7 +72259,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -71251,7 +72285,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             INT       units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -71277,7 +72311,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (MYHOURS1)             DOUBLE    units           CHAR        31   T       hours since 1901-01-15 00:00:00
@@ -71300,7 +72334,7 @@ set mode ignore
  
 define axis/t=1-jan-1990:1-feb-1992:2/units=seconds myseconds
 let tt = t[gt=myseconds] - `t[gt=myseconds,L=1]`
- !-> DEFINE VARIABLE tt = t[gt=myseconds] - 2.807395E+09
+ !-> DEFINE VARIABLE tt = t[gt=myseconds] - 2.8073952E+09
  
 set axis/outtype=int myseconds
 save/L=32875000:32875201/clobber/file=mytype.nc tt
@@ -71357,6 +72391,7 @@ can view
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_label_quotes
 ! err684_label_quotes.jnl
 ! See ticket 1298.
@@ -71384,6 +72419,7 @@ label 4.5 .5 0 0 .3 "'hello'"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_context_shape
 ! when limits are omitted with a compressing transformation the grave
 ! accent R=SHAPE erroneously includes the corresponding axis in the shape
@@ -71414,6 +72450,7 @@ XY
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_tax_fcns
 !err684_tax_fcns.jnl
 ! See ticket 2043, bug in workaround for single-precision arguments
@@ -71502,6 +72539,7 @@ GO err684_tax_fcns
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_save_subset
 ! err684_bug_save_subset
 ! see ticke 2064, precision in internal comparison of coordinate data
@@ -71514,6 +72552,7 @@ save/clobber/file=aa.nc/i=5:15 sh
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_save_subset
 ! err684_bug_save_subset
 ! see ticke 2064, precision in internal comparison of coordinate data
@@ -71526,6 +72565,7 @@ save/clobber/file=aa.nc/i=5:15 sh
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_line_plot_zero
 ! err684_line_plot_zero.jnl
 ! plot all-zero variable gave blank plot.
@@ -71539,6 +72579,7 @@ YAXIS_MAX = "1.00000000"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_delimited_precision
 ! err684_delimited_precision.jnl
 ! 5/2013 Fixing bug 2066
@@ -71573,10 +72614,10 @@ set data/ez/format=delim/del=" "/var="day,lon,lat,tim"/type="numeric,longitude,l
 list/prec=10 day, lon, lat, tim
              DATA SET: ./delim_prec.dat
              X: 0.5 to 4.5
- Column  1: DAY
- Column  2: LON is LON (degrees_east)(Longitude)
- Column  3: LAT is LAT (degrees_north)(Latitude)
- Column  4: TIM is TIM (hours)(Time of day)
+ Column  1: DAY is day
+ Column  2: LON is lon (degrees_east)(Longitude)
+ Column  3: LAT is lat (degrees_north)(Latitude)
+ Column  4: TIM is tim (hours)(Time of day)
                  DAY       LON          LAT            TIM
 1   / 1:  734654.0000  330.1234500  42.00001000  2.777777806E-04
 2   / 2:  734654.0104  330.1234600  42.00004000  2.777777861E-04
@@ -71586,6 +72627,7 @@ list/prec=10 day, lon, lat, tim
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err6842_context_shape
 ! err6842_context_shape.jnl
 ! 5/2013 acm
@@ -71638,6 +72680,7 @@ XYT
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_evnt_z
 ! err684_evnt_z.jnl
 ! see ticket 2054
@@ -71678,6 +72721,7 @@ list my_var, my_event
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_save_expression
 ! err684_save_expression.jnl
 ! Bug 2076. If we write out an expression that has not been defined
@@ -71707,13 +72751,13 @@ variables:
 		A:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
  TIME = 366, 1096.485, 1826.97 ;
 
- A = -0.0994369294620974, -0.0415768591396031, 0.141480238198142 ;
+ A = -0.0994369294620867, -0.0415768591395924, 0.141480238198152 ;
 }
  
 save/clob/file=aa.nc sst[x=@ave,y=@ave]-sst[x=@ave,y=@ave,t=@ave]
@@ -71736,13 +72780,13 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
  TIME = 366, 1096.485, 1826.97 ;
 
- E410 = -0.0994369294620974, -0.0415768591396031, 0.141480238198142 ;
+ E410 = -0.0994369294620867, -0.0415768591395924, 0.141480238198152 ;
 }
  
 ! Double check the missing-value matches what is written.
@@ -71787,7 +72831,7 @@ variables:
 		E410:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -71822,6 +72866,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_degC_axlab
 ! err684_degC_axlab.jnl
 ! ACM 6/2013
@@ -71841,6 +72886,7 @@ set mode/last logo
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_null_stringwrite
 ! err684_null_stringwrite.jnl
 ! 18-Jun-2013 ACM
@@ -71863,11 +72909,12 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_FillValue_xml
 ! err684_FillValue_xml.jnl
 ! ACM 6/2013
 !
-! See the dataset at http://ferret.pmel.noaa.gov/thredds/dodsC/woa09_1deg_monthly
+! See the dataset at http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/woa09_1deg_monthly
 ! where the "number of" variables have  _FillValues attributes = -2147483647
 ! This value was being written to the xml headers as a float, without enough precision.
 ! See las ticket #761, fixes in show_data_set_vars_xml.F
@@ -71888,7 +72935,7 @@ sh dat/var/xml
    <value><![CDATA[Number of O2 Utilization Observations]]></value>
 </attribute>
 <attribute name="_FillValue" type="float">
-   <value> -2147483647.</value>
+   <value>-2147483647.</value>
 </attribute>
 <attribute name="ferret_datatype" type="char">
    <value><![CDATA[FLOAT]]></value>
@@ -71950,6 +72997,7 @@ sh dat/var/xml
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_axticlab
 ! err684_axticlab
 ! 7/10/2013 *acm
@@ -71973,6 +73021,7 @@ cancel mode meta
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_dotstart
 ! err684_dotstart.jnl
 ! 12-Jul-2013 ACM
@@ -71999,6 +73048,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_vfine_to_coarse
  ! err684_vfine_to_coarse
  ! see ticket 2070.
@@ -72128,6 +73178,7 @@ list v eq v_coarse[gf=v at ave]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_repeated_coordindates
 ! err685_repeated_coordindates.jnl
 !  The NOTE about repeated axis coordaintes reported the wrong index location.
@@ -72137,6 +73188,7 @@ use latestOb.nc
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_packed_output
 ! err684_packed_output.jnl
 ! See ticket 2089
@@ -72177,6 +73229,7 @@ list/i=1:3 sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_string_dim_name
 ! err685_string_dim_name.jnl
 ! Ticket 2091. If the string variable shares its dimension name,
@@ -72200,6 +73253,7 @@ list ..varnames
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err684_define_grid
 ! err684_define_grid.jnl
 ! 25-Oct-2013 ACM
@@ -72226,7 +73280,7 @@ use dsg.nc
 sh dat
      currently SET data sets:
     1> ./dsg.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  ROWSIZE  number of obs for this profile   ...       ...       ...       ...       1:3       ...
  PROFILE  profile ID: Cruise and Station   ...       ...       ...       ...       1:3       ...
  TIME     time                             ...       ...       ...       ...       1:3       ...
@@ -72234,8 +73288,8 @@ sh dat
  LONGITUDE
           station longitude                ...       ...       ...       ...       1:3       ...
  POT_TEMP_DEGC
-          pot_temp_degc                    1:34      ...       ...       ...       ...       ...
- SAL      sal                              1:34      ...       ...       ...       ...       ...
+          pot_temp_degc                    1:34      ...       ...       ...
+ SAL      sal                              1:34      ...       ...       ...
  
 sh att profile
      attributes for dataset: ./dsg.nc
@@ -72260,8 +73314,6 @@ sh grid sal
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! This file from the datset "West Coast Carbon cruises" in our
 ! example erdadp, has the cf_role attribute on a coordinate variable.
@@ -72273,15 +73325,15 @@ use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
 sh dat 2
      currently SET data sets:
     2> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  PROF     Prof                             ...       ...       ...       ...       1:21      ...
  TIME     Time                             ...       ...       ...       ...       1:21      ...
  LATITUDE Latitude                         ...       ...       ...       ...       1:21      ...
  LONGITUDE
           Longitude                        ...       ...       ...       ...       1:21      ...
  ROWSIZE  Number of Observations for this  ...       ...       ...       ...       1:21      ...
- PRESS_DB PRESS_DB                         1:373     ...       ...       ...       ...       ...
- PCO2     PCO2                             1:373     ...       ...       ...       ...       ...
+ PRESS_DB PRESS_DB                         1:373     ...       ...       ...
+ PCO2     PCO2                             1:373     ...       ...       ...
  
 sh att (profile)
      attributes for dataset: ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
@@ -72308,8 +73360,6 @@ sh grid pco2
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 *** Running ferret script: bn_nco_append.jnl
 [?1034h! bn_nco_append.jnl
 ! 5/2013 add a test appending files with ncks
@@ -72325,14 +73375,14 @@ use z2
 sh dat
      currently SET data sets:
     1> ./z1.nc
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  DDAT_ORIG
-          DDAT[GZ=ZAXIS_ORIG at ASN]          ...       ...       1:5       ...       ...       ...
+          DDAT[GZ=ZAXIS_ORIG at ASN]          ...       ...       1:5       ...
  
     2> ./z2.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  CYCLE_ORIG
-          CYCLE[GZ=ZAXIS_ORIG at ASN]         ...       ...       1:5       ...       ...       ...
+          CYCLE[GZ=ZAXIS_ORIG at ASN]         ...       ...       1:5       ...
  
  
 ! Write a file to be appended to and append variable in z1.nc to the file.
@@ -72359,8 +73409,8 @@ variables:
 		DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
 
 // global attributes:
-		:history = "Fri Jun 17 15:18:32 2016: ncks -h -A -h z1.nc append_to_this.nc\n",
-			"PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		: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" ;
 		:Conventions = "CF-1.6" ;
 		:NCO = "4.4.6" ;
 }
@@ -72391,7 +73441,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72422,7 +73472,7 @@ variables:
 		AVAR:long_name = "X[GX=XIRREG]" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -72437,8 +73487,8 @@ use gappy_bounds.nc
 sh dat
      currently SET data sets:
     1> ./gappy_bounds.nc  (default)
- name     title                             I         J         K         L         M         N
- A        SST[X=150:180 at AVE,Y=-10:0 at AVE]   ...       ...       ...       1:6       ...       ...
+ name     title                             I         J         K         L
+ A        SST[X=150:180 at AVE,Y=-10:0 at AVE]   ...       ...       ...       1:6
  
  
 ! See the bounds attribute on the t axis
@@ -72485,7 +73535,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -72513,7 +73563,7 @@ variables:
 		A:history = "From coads" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -73824,6 +74874,7 @@ vtree=all tempz4
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_ribbon_by_val
 ! err685_ribbon_by_val.jnl
 ! 11/21/2013
@@ -73839,6 +74890,7 @@ plot/vs/line/thick/ribbon/MISS=black/PAL=ocean_temp xpts, ypts, fpts
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_ppl_palette
 ! err685_ppl_palette.jnl
 ! Further fix for ticket 2049. If the palette or pattern file
@@ -73872,6 +74924,7 @@ palette default
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_show_grid_e
 ! err685_show_grid_e.jnl
 ! See ticket 2122
@@ -73938,6 +74991,7 @@ sh grid /f gensy
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_lowercaseAxis
 ! err685_lowercaseAxis.jnl
 ! Ticket  2126
@@ -73948,9 +75002,9 @@ use lowercaseTime.nc
 sh dat
      currently SET data sets:
     1> ./lowercaseTime.nc  (default)
- name     title                             I         J         K         L         M         N
- AA                                        ...       ...       ...       1:15      ...       ...
- BB                                        ...       ...       ...       1:8       ...       ...
+ name     title                             I         J         K         L
+ AA                                        ...       ...       ...       1:15
+ BB                                        ...       ...       ...       1:8
  
 ! This axis has uppercase in the file
 set axis/t0=1-jan-2001/units=days uppercasetime
@@ -73968,8 +75022,6 @@ show grid bb
  normal    Y
  normal    Z
  UPPERCASETIME TIME             8 r   02-JAN-2001 00:00    09-JAN-2001 00:00   full
- normal    E
- normal    F
  
 ! This variable has axis time, lowercase in the file
 sh grid aa
@@ -73979,8 +75031,6 @@ sh grid aa
  normal    Y
  normal    Z
  TIME      T                   15 r   1                    15                  full
- normal    E
- normal    F
 set axis/t0=1-jan-2001/units=days time
  
 ! showed no output
@@ -74007,6 +75057,7 @@ list/L=1:5 aa
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_redefine_uvar_att
 ! err685_redefine_uvar_att.jnl
 ! ticket 2127 Redefine an attribute for a
@@ -74019,6 +75070,7 @@ define att/type=STRING  a.ival = 99
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_use_no_extension
 ! Ticket 2128: if no extension, we should try .cdf, .nc, .des
 !  but .des was not being tried.
@@ -74034,8 +75086,8 @@ use duplicate
 sh dat
      currently SET data sets:
     1> ./duplicate.nc  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:1       1:10      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:1       1:10      ...       1:3
  
  
 set mode ignore
@@ -74055,6 +75107,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_samplexy
 ! err685_samplexy.jnl
 ! Fix for ticket 2137. out-of-bounds error
@@ -74077,6 +75130,7 @@ list  samplexy(sst[x=290:310,y=0:20], lon, lat)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err685_shade_set
 ! err685_shade_set.jnl
 !
@@ -74124,6 +75178,7 @@ set mode/last logo
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_individual_levels
 ! err686_individual_levels.jnl
 ! Ticket 2142
@@ -74214,7 +75269,7 @@ variables:
 		LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74237,7 +75292,7 @@ variables:
 		STRVAR:long_name = "mystrings" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74265,6 +75320,7 @@ fill/lev=(20,30,10)/L=1 sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_long_list_varnames
 ! err686_long_list_varnames.jnl
 !
@@ -74334,7 +75390,7 @@ longvarnames.tsv
 ! Try to load a variable later than that in the list.
  
 list etopo2_depth
-             VARIABLE : ETOPO2_DEPTH
+             VARIABLE : etopo2_depth
              FILENAME : longvarnames.tsv
              SUBSET   : 10 points (X)
  1    /  1: -97.00
@@ -74352,6 +75408,7 @@ list etopo2_depth
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_faxis_label
 ! err686_faxis_label.jnl
 ! 3/11/2014 ACM
@@ -74385,6 +75442,7 @@ LAB2 = "FORECAST : 03-JAN-2000 00:00 JULIAN"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_dup_axnames
 ! err686_dup_axnames
 ! Ticket 1750
@@ -74405,12 +75463,12 @@ use a; use b
 sh dat
      currently SET data sets:
     1> ./a.nc
- name     title                             I         J         K         L         M         N
- A        X[GX=XAXIS_TEST]                 1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ A        X[GX=XAXIS_TEST]                 1:4       ...       ...       ...
  
     2> ./b.nc  (default)
- name     title                             I         J         K         L         M         N
- B        X[GX=XAXIS_TEST]                 1:4       ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ B        X[GX=XAXIS_TEST]                 1:4       ...       ...       ...
  
 sh grid a[d=1]
     GRID GSI1
@@ -74419,8 +75477,6 @@ sh grid a[d=1]
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 sh grid b[d=2]
     GRID GRR1
  name       axis              # pts   start                end                 subset
@@ -74428,8 +75484,6 @@ sh grid b[d=2]
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! Write b with its Ferret internal axis name XAXIS_TEST1
 save/clob/file=c.nc a[d=1],b
@@ -74457,7 +75511,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74487,7 +75541,7 @@ variables:
 		A:history = "From a" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74508,7 +75562,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74529,7 +75583,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74551,7 +75605,7 @@ variables:
 		B:history = "From b" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -74564,9 +75618,12 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_cancel_invalid_var
 ! err686_cancel_invalid_var
 ! ticket 2159
+! (Note that the shade of a one-cell or less region is
+!  allowed fully as of Ferret v7.1.  See ticket 2494)
  
 ! The cancel variable ran into an incorrect setting
 ! for variable-in-memory
@@ -74585,6 +75642,7 @@ shade/x=161.1:161.3/y=0.2:0.4/L=1 sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_redef_ascii_att
 ! err686_redef_ascii_att.jnl
 ! Bug 2161
@@ -74623,6 +75681,7 @@ sh att v1
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_sho_nonexist_att
 ! err686_sho_nonexist_att.jnl
 ! See ticket 2133
@@ -74638,6 +75697,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err686_set_var_name
 ! err686_set_var_name.jnl
 ! ticket 2152
@@ -74673,30 +75733,30 @@ set var/name=temp salt
 show dat
      currently SET data sets:
     1> ./gt4d011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
+ SALT     (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
+ U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
+ V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
+ W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
+ TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
+ TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
+ PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  
 ! This rename is ok
 set var/name=salinity salt
 show dat
      currently SET data sets:
     1> ./gt4d011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALINITY (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
+ SALINITY (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
+ U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
+ V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
+ W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
+ TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
+ TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
+ PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  
  
 ! Test LET/D variables:
@@ -74708,15 +75768,15 @@ set var/name=diff myvar
 show dat
      currently SET data sets:
     1> ./gt4d011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25      ...       ...
- SALINITY (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25      ...       ...
- U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25      ...       ...
- V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25      ...       ...
- W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25      ...       ...
- TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25      ...       ...
- TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25      ...       ...
- PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25      ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     91:108    35:56      1:10      1:25
+ SALINITY (SALINITY(ppt) - 35) /1000      91:108    35:55      1:10      1:25
+ U        ZONAL VELOCITY                  91:108    35:55      1:10      1:25
+ V        MERIDIONAL VELOCITY             91:108    35:55      1:10      1:25
+ W        VERTICAL VELOCITY               91:108    36:55      1:10      1:25
+ TAUX     ZONAL WIND STRESS               91:108    35:55      ...       1:25
+ TAUY     MERIDIONAL WIND STRESS          91:108    35:55      ...       1:25
+ PSI      STREAM FUNCTION                 91:108    35:56      ...       1:25
  ------------------------------
  DIFF[D=gt4d011] = TAUX - TAUY
  
@@ -74734,11 +75794,11 @@ use badbounds.nc
 show data
      currently SET data sets:
     1> ./badbounds.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  MONTH_IRREG_BNDS
-                                           1:2       ...       ...       1:12      ...       ...
+                                           1:2       ...       ...       1:12
        (invalid axis bounds)
- TEMP2    TEMP[GT=MONTH_IRREG at ASN]         1:1       1:1       1:1       1:12      ...       ...
+ 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
@@ -74906,9 +75966,7 @@ sh grid a
  normal    X
  normal    Y
  normal    Z
- daysaxis  TIME                 5 r   01-MAY-2010 00:00    05-MAY-2010 00:00   full
- normal    E
- normal    F
+ DAYSAXIS  TIME                 5 r   01-MAY-2010 00:00    05-MAY-2010 00:00   full
  
 cancel data/all
  
@@ -74943,14 +76001,14 @@ X13AXIS
 ! Rename the axis
 set axis/name=x_in_meters x13axis
 say `a[d=1],return=xaxis`
- !-> MESSAGE/CONTINUE x_in_meters
-x_in_meters
+ !-> MESSAGE/CONTINUE X_IN_METERS
+X_IN_METERS
 say `b[d=2],return=xaxis`
- !-> MESSAGE/CONTINUE x_in_meters
-x_in_meters
+ !-> MESSAGE/CONTINUE X_IN_METERS
+X_IN_METERS
 say `c[d=3],return=xaxis`
- !-> MESSAGE/CONTINUE x_in_meters
-x_in_meters
+ !-> MESSAGE/CONTINUE X_IN_METERS
+X_IN_METERS
  
 ! For SHOW DAT/ATT we get info from the attribute structure.
 ! It has the udated name.
@@ -74960,7 +76018,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -74977,7 +76035,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -74994,7 +76052,7 @@ sh dat/att
  Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
 ------------------------------------------------------------------------------------------
   
- .                               history         CHAR        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (x_in_meters)          DOUBLE    units           CHAR        6    T       meters
@@ -75024,200 +76082,14 @@ set mode/last ignore
 [?1034h! 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
  
 ! See if the F-TDS is working and bail if not.
- 
-let status = TEST_OPENDAP("http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl")
+let status = TEST_OPENDAP("http://ferret.pmel.noaa.gov/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/nvods/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:1000 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:1000 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]
- >>> 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 myvar
-set view ur; shade/l=3 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_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
-             LONGITUDE: 60W to 50W
-             LATITUDE: 14.5N
-             TIME: 14-JUL 12:00
- Column  1: MYVAR is T0112MN1[K=1:5 at SUM]
- Column  2: AVE_Z is T0112MN1[Z=0:1000 at AVE]
-             MYVAR   AVE_Z
-59.5W / 301:  139.9  12.94
-58.5W / 302:  139.5  12.91
-57.5W / 303:  140.5  13.68
-56.5W / 304:  140.0  12.37
-55.5W / 305:  137.6  13.60
-54.5W / 306:  136.1  12.27
-53.5W / 307:  134.2  12.13
-52.5W / 308:  137.2  12.35
-51.5W / 309:   27.3  27.30
-50.5W / 310:  135.4  12.16
- 
-let/D=1/remote ave_t = t0112mn1[L=1:12 at ave]
-set view ll; shade/z=0 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]
-set view lr; shade/z=0 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_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/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_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl
- name     title                             I         J         K         L         M         N
- T0112MN1 Temperature                      1:360     1:180     1:24      1:12      ...       ...
- 
-    2> http://ferret.pmel.noaa.gov/nvods/thredds/dodsC/las/COADS-climatology/data_coads_climatology.jnl  (default)
- name     title                             I         J         K         L         M         N
- 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_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl"
- 
-! This is ok let/remote/D=
-let/D=1/remote myvar = t0112mn1[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 = t0112mn1[d=1,z=1:100 at ave]
- 
- 
-! But, require LET/D= with /REMOTE
-let/remote rvar = t0112mn1[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]
-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_monthly/data_ferret.pmel.noaa.gov_thredds_dodsC_data_PMEL_WOA05nc_monthly_t0112mn1.nc.jnl  (default)
- name     title                             I         J         K         L         M         N
- T0112MN1 Temperature                      1:360     1:180     1:24      1:12      ...       ...
- ------------------------------
- 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]
- 
-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/nvods/thredds/dodsC/las/woa05_monthly/
-             SUBSET   : 7 points (DEPTH (m))
-             LONGITUDE: 60.5W
-             LATITUDE : 14.5N
-             TIME     : 01-JAN 12:00 to 30-DEC 06:00
-               60.5W 
-              300
- 0      / 1:  331.0
- 10     / 2:  330.6
- 20     / 3:  330.4
- 30     / 4:  329.6
- 50     / 5:  324.5
- 75     / 6:  313.6
- 100    / 7:  299.4
- 
-can dat/all; can var/all
- 
+ !-> if 1 then EXIT/SCRIPT
 *** Running ferret script: bn691_bug_fixes.jnl
 [?1034h! bn691_bug_fixes
 ! test various fixes that went into version 6.91
@@ -75225,6 +76097,7 @@ can dat/all; can var/all
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_arg_type_error
 ! err69_arg_type_error
 ! See ticket 2169
@@ -75287,6 +76160,7 @@ set mode /last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_bad_bounds
 ! err69_bad_bounds.jnl
 ! See ticket 2170
@@ -75359,6 +76233,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_const_array
 ! err69_const_array.jnl
 ! 5/8/2014  ACM
@@ -75394,6 +76269,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_multi_label_ascii
 ! err69_multi_label_ascii.jnl
 ! 5/2014  ACM
@@ -75427,6 +76303,7 @@ label .55 .2 0 0 .16 "@ASEscape_color_not_font<NL>@P2 at SRred_1<NL>@P3 at SRgreen_2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_ens_badvalue
 ! err69_ens_badvalue.jnl
 !
@@ -75462,6 +76339,7 @@ list/y=29.25  MAIZE_YIELD[d=1], MAIZE_YIELD[d=2], MAIZE_YIELD[d=3],  MAIZE_YIELD
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_ribbon_by_levels
 ! err69_ribbon_by_levels.jnl
 ! ACM 5/19/2014
@@ -75487,6 +76365,7 @@ RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels xpts,ypts,var
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_ribbon_histogram
 ! err69_ribbon_histogram.jnl
 ! ACM 5/24/2014
@@ -75514,6 +76393,7 @@ ribbon/vs/line/thick/lev=10h xpts,ypts,var
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_repl_scinot
 ! err69_repl_scinot.jnl
 ! ticket 2175
@@ -75541,6 +76421,7 @@ say (`a`)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err691_bnds_case
 ! err691_bnds_case
 ! 6/30/14
@@ -75555,6 +76436,7 @@ set mode/last upcase_output
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_plot_vs_labs
 ! err69_plot_vs_labs.jnl
 ! ticket 2187: the axis labels on the dependent axis
@@ -75592,6 +76474,7 @@ LABY = "A[X=150W:90W at AVE]"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_levels_v
 ! err69_levels_v.jnl
 ! Ferret ticket 2186, and LAS ticket 1598
@@ -75610,13 +76493,14 @@ sh sym *lev*
 LEV_TEXT = "V"
 LEV_OPNLEVS = "(290,330,10)(332,402,2)(400,450,10)(inf)"
 LEV_MIN = "290"
-LEV_MAX = "114930.72"
+LEV_MAX = "open-ended"
 LEV_NUM = "45"
 LEV_DEL = "irregular"
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_letd_dsetnum
 ! err69_letd_dsetnum.jnl
 !  Ticket 2189. Previously the grave-accent expression didn't get
@@ -75628,14 +76512,15 @@ let/d=`sst,r=dsetnum` a = 1
 sh dat
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
  A[D=coads_climatology] = 1
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_long_string_to_xml
 ! err69_long_string_to_xml.jnl
 ! ticket 2190  8-8-2014
@@ -75654,6 +76539,7 @@ sp cat out.xml
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_fill_trans
 ! err69_fill_trans.jnl
 ! ticket 2196. Visible only if bounds-checking is turned on.
@@ -75702,6 +76588,7 @@ list myvar[x=6 at fav:18]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_load_big_grid
 ! err69_load_big_grid
 ! ticket 1758
@@ -75725,9 +76612,12 @@ sh grid bigvar
  YAXIS     Y                  180 r   1                    180                 full
  ZAXIS     Z                   20 r   1                    20                  full
  LONGTIME  TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
- normal    E
- normal    F
 load bigvar
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 25.6 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 1297828 (5.1%)
+    The size of the requested object was: : 2369088000 (9254%)
  
 ! also was an incorrect size.
 define axis/t=1-jan-2000:1-jan-2010:1/units=days  longtime
@@ -75738,14 +76628,18 @@ sh grid bigvar
  YAXIS     Y                  180 r   1                    180                 full
  ZAXIS     Z                   20 r   1                    20                  full
  LONGTIME  TIME              3654 r   01-JAN-2000 00:00    01-JAN-2010 00:00   full
- normal    E
- normal    F
 load bigvar
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 25.6 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 1299654 (5.1%)
+    The size of the requested object was: : 4735584000 (18498%)
  
 cancel mode ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_write_attribute
 ! err69_write_attribute.jnl
 ! Bug 1863
@@ -75758,8 +76652,6 @@ sh grid temp
  PSYT      LATITUDE           100 i   28.836S              48.568N             full
  PSZT      DEPTH (m)           27 i-  5                    3824                full
  TIME1     TIME                25 r   17-AUG-1982 12:00    10-JAN-1983 12:00   full
- normal    E
- normal    F
 let a = temp[x=@ave,y=@ave,L=1]
  
 ! The attribute we ask not to write is not written for this variable
@@ -75886,6 +76778,7 @@ sp rm aa.nc bb.nc
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_isready_status_errmsgs
 ! err69_isready_status_errmsgs
 ! ticket 2197
@@ -75909,6 +76802,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_isready_status_errmsgs
 ! err69_isready_status_errmsgs
 ! ticket 2197
@@ -75932,6 +76826,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_countervar_context
 ! err69_countervar_context.jnl
 ! ACM 10/3/2014
@@ -75956,6 +76851,7 @@ can region
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_label_backspace
 ! err69_label_backspace
 ! Ticket 2203:  \\ before a character backspaces before
@@ -75967,6 +76863,7 @@ label .5 .5 0 0 1 "El Nin\\^@MA45 at SRo\!"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_isready_and_regridding
 ! err69_isready_and_regridding.jnl
 ! Ticket 2204: A `var,return=isready` sends Ferret into a hanged
@@ -76012,6 +76909,7 @@ ENDIF
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_vtree_and_uvar_regrid
 ! err69_vtree_and_uvar_regrid.jnl
 ! Ticket 2206: This lead to a crash.
@@ -76037,6 +76935,7 @@ c is ready and AVAILABLE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_vtree_cancel_axis
 ! err69_vtree_cancel_axis
 ! Ticket 2201: After a return=isready,
@@ -76064,6 +76963,7 @@ cancel axis xax2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err69_isready_bugs
 ! err69_isready_bugs.jnl
 ! Tickets 2201 and 2215
@@ -76115,6 +77015,7 @@ m
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err691_substring_arg
 ! err693_substring_arg
 ! ACM 12/10/2014
@@ -76203,7 +77104,7 @@ 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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 }
  
 set mode/last upcase
@@ -76296,7 +77197,7 @@ variables:
 		lon360:history = "added to test_save_dsg.nc" ;
 
 // global attributes:
-		:history = "CruiseDsgNcFile 1.0PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "CruiseDsgNcFile 1.0PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:featureType = "Trajectory" ;
 		:Conventions = "Some other conventionsCF-1.6" ;
 		:geospatial_lon_min = -92.77 ;
@@ -76323,7 +77224,7 @@ can dat/all; use anew_global.nc
 sh att .
      attributes for dataset: ./anew_global.nc
  ..history = Subset of etopo20,
- PyFERRET V7 (beta/dbg) 17-Jun-16 
+ PyFerret V7.1 (beta/debug) 18-Apr-17 
  ..Conventions = Existing conventions note, , CF-1.6 
  
  
@@ -76353,7 +77254,7 @@ can dat/all; use conventions_history
 ! The new attibutes
 sh att .
      attributes for dataset: ./conventions_history.nc
- ..history = The history of the filePyFERRET V7 (beta/dbg) 17-Jun-16 
+ ..history = The history of the filePyFerret V7.1 (beta/debug) 18-Apr-17 
  ..Conventions = Conventions for variables named V2CF-1.6 
 *** Running ferret script: bn_center_key_labels.jnl
 [?1034h! bn_center_key_labels
@@ -76560,8 +77461,6 @@ sp cat a.txt
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! show var/outfile
  
@@ -76588,8 +77487,8 @@ sp cat a.txt
  TWO = 2
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
  
 ! combinations of /append and /clobber
@@ -76602,8 +77501,8 @@ SAY ---------------- Just show data, two show data/clobber commands in a row
 sp cat a.txt
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
  
 show grid/clobber/outfile=a.txt sst
@@ -76617,8 +77516,6 @@ sp cat a.txt
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 use coads_climatology
 use levitus_climatology
@@ -76630,8 +77527,8 @@ SAY ---------------- Just dataset 1
 sp cat a.txt
      currently SET data sets:
     1> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
  
 show data/append/outfile=a.txt levitus_climatology
@@ -76641,13 +77538,13 @@ SAY ---------------- appending datset 2 by name
 sp cat a.txt
      currently SET data sets:
     1> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
      currently SET data sets:
     2> ./levitus_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:160     1:90      1:1       ...       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:160     1:90      1:1       ...
  
 show grid/clobber/outfile=a.txt PS3*
  
@@ -77207,57 +78104,81 @@ list t[gt=taxis]
  
 *** Running ferret script: bn_spawn_size.jnl
 [?1034h! bn_spawn_size.jnl
+! Added 9/9/2014
+! Fix for ticket 981
 ! Return the size of the result of a spawn, not
-! the nominalabstract axis length.
- 
-! ticket 981
- 
-let files = {spawn:"ls *cdf*.jnl"}
+! the nominal abstract axis length.
+ 
+! 1/2017 *acm* change this script so the results are always consistent,
+! not depending on the contents of the directory which may change.
+ 
+! Make some files to operate on
+let a = x + 1
+save/clobber/i=1:5/file=bn_spawn_size1.cdf a
+save/clobber/i=1:5/file=bn_spawn_size2.cdf a
+save/clobber/i=1:5/file=bn_spawn_size3.cdf a
+save/clobber/i=1:5/file=bn_spawn_size4.cdf a
+save/clobber/i=1:5/file=bn_spawn_size5.cdf a
+ 
+list/clobber/i=1:7/file=bn_spawn_size02.dat a
+list/clobber/i=1:7/file=bn_spawn_size04.dat a
+list/clobber/i=1:7/file=bn_spawn_size06.dat a
+list/clobber/i=1:7/file=bn_spawn_size08.dat a
+list/clobber/i=1:7/file=bn_spawn_size10.dat a
+list/clobber/i=1:7/file=bn_spawn_size12.dat a
+list/clobber/i=1:7/file=bn_spawn_size14.dat a
+ 
+! Previously these return=isize results returned 2000
+ 
+let files = {spawn:"ls *bn_spawn_size*4.*"}
 list files
-             VARIABLE : {SPAWN:"ls *cdf*.jnl"}
-             SUBSET   : 8 points (X)
- 1   / 1:"bn_cdf_errmsg.jnl"      
- 2   / 2:"bn_cdf.jnl"             
- 3   / 3:"bn_cdf_keepax.jnl"      
- 4   / 4:"bn_netcdf4.jnl"         
- 5   / 5:"err490_cdf_childax.jnl" 
- 6   / 6:"err491_cdf_childax.jnl" 
- 7   / 7:"err65_read_epic_cdf.jnl"
- 8   / 8:"err667_5d_netcdf.jnl"   
+             VARIABLE : {SPAWN:"ls *bn_spawn_size*4.*"}
+             SUBSET   : 3 points (X)
+ 1   / 1:"bn_spawn_size04.dat"
+ 2   / 2:"bn_spawn_size14.dat"
+ 3   / 3:"bn_spawn_size4.cdf" 
 say `files,return=isize`
- !-> MESSAGE/CONTINUE 8
-8
+ !-> MESSAGE/CONTINUE 3
+3
  
 ! Evaluate size without loading the variable first
-let datfiles = {spawn:"ls *.dat"}
+let datfiles = {spawn:"ls bn_spawn_size1*.dat"}
 say `datfiles,return=isize`
- !-> MESSAGE/CONTINUE 37
-37
- 
-! expression syntax
-say `{spawn:"ls xml*.jnl"},return=isize`
  !-> MESSAGE/CONTINUE 3
 3
-list {spawn:"ls xml*.jnl"}
-             VARIABLE : {SPAWN:"ls xml*.jnl"}
-             SUBSET   : 3 points (X)
- 1   / 1:"xml_header_script.jnl"
- 2   / 2:"xml_use_coads.jnl"    
- 3   / 3:"xml_use_numstring.jnl"
  
-! Test variables based on output of a spawn.
+! expression syntax
+say `{spawn:"ls bn_spawn_size*.dat"},return=isize`
+ !-> MESSAGE/CONTINUE 7
+7
+list {spawn:"ls bn_spawn_size*.dat"}
+             VARIABLE : {SPAWN:"ls bn_spawn_size*.dat"}
+             SUBSET   : 7 points (X)
+ 1   / 1:"bn_spawn_size02.dat"
+ 2   / 2:"bn_spawn_size04.dat"
+ 3   / 3:"bn_spawn_size06.dat"
+ 4   / 4:"bn_spawn_size08.dat"
+ 5   / 5:"bn_spawn_size10.dat"
+ 6   / 6:"bn_spawn_size12.dat"
+ 7   / 7:"bn_spawn_size14.dat"
+ 
+! Test variables based on a function operating on output of a spawn.
 ! These already worked correctly, has a grid-changing function.
  
-LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
+LET filesets = XCAT({spawn:"ls bn_spawn_size*.cdf"}, {spawn:"ls bn_spawn_size*.dat"})
 say `filesets, return=isize`
- !-> MESSAGE/CONTINUE 964
-964
+ !-> MESSAGE/CONTINUE 12
+12
  
-let files = {spawn:"ls *cdf*.jnl"}
-let name_len = strindex(files, ".sub")
+let files = {spawn:"ls bn_spawn_size*.dat"}
+let name_len = STRINDEX(files, "ze0")
 say `name_len, return=isize`
- !-> MESSAGE/CONTINUE 8
-8
+ !-> MESSAGE/CONTINUE 7
+7
+ 
+! clean up
+sp rm bn_spawn_size*.dat bn_spawn_size*.cdf
+ 
 *** Running ferret script: bn_polygon_log.jnl
 [?1034h! bn_polygon_log.jnl
 ! polygon plots on a log axis need tests
@@ -77301,6 +78222,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_upcase_quoted_name
 ! err693_upcase_quoted_name.jnl
 ! ticket 2050. Names are saved in uppercase
@@ -77325,6 +78247,7 @@ set mode/last upcase
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_isready_hang
 ! err693_isready_hang.jnl
 ! ACM 12/10/2014
@@ -77352,6 +78275,7 @@ IF `a,r=isready` THEN; let/title="`a,r=title`" a5 = a; ENDIF
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_isready_dyn_grid_crash   ! 12/23/2014
 let/unit="m" b = x[gx=1:5:1]
 say "`b,r=unit`"     ! this causes dynamic grid of b to be created
@@ -77367,6 +78291,7 @@ VTREE b2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_attr_in_gcfcn
 ! err693_attr_in_gcfcn.jnl
 ! ACM 12/10/2014
@@ -77406,6 +78331,7 @@ list is_element_of_str (a, {"Kelvin", "Celsius", "DEG C"})
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_inconsistent_quote
 ! inconsistent interpretation of surrounding double quotes
 ! the original source of the problem is in PARSE_COMMAND
@@ -77427,6 +78353,7 @@ LIST "foobar"           ! error: lists the value instead
 ! IF-THEN flow tests
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_2214
 ! bug 2214
 ! If we put the "say hi" in parentheses, this seems to work.
@@ -77458,6 +78385,7 @@ CORRECT
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_2211
 ! bug #2211
  
@@ -77468,6 +78396,7 @@ ELSE
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_1860
 ! from bug 1860
 ! continue line found within grave accents
@@ -77483,6 +78412,7 @@ CORRECT IF THIS DISPLAYS
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_1446
 ! testing ticket 1446
  
@@ -77497,6 +78427,7 @@ ENDIF
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_1681
 ! testing ticker 1681
  
@@ -77525,6 +78456,7 @@ endif
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_1706
 ! testing ticket 1706
 !
@@ -77541,6 +78473,7 @@ ENDIF
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_if_then_flow_1368   ! Jan 28, 2010, Ferret version 5.812
 ! testing ticket 1368 - first found in Ferret v5.812 (Jan 28, 2010)
  
@@ -77573,6 +78506,7 @@ ENDIF
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_ribbon_start_missing
 ! err693_ribbon_start_missing
 ! 1/6/2015 ACM
@@ -77623,6 +78557,7 @@ let vvar = {,1.e7,,271,319}
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err691_pt_in_poly
 ! err691_pt_in_poly
 ! ticket 1961: modulo longitude for pt_in_poly
@@ -77671,6 +78606,7 @@ list minmax(pts)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_undetected_regrid_dset
 ! err693_undetected_regrid_dset.jnl    - Jan 2015
  
@@ -77690,11 +78626,12 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_line_over_axis
 ! Ticket 2232: line plots overlaid the plot axes
 show mode meta
       MODE            STATE        ARGUMENT
-      METAFILE      CANCELLED      ferret.png
+      METAFILE      CANCELED       ferret.png
 ! line plot with /VS draw on top of the axes
 let xval = {0.0, 0.2, 1.0, 0.8, 0}
 let yval = {0.0, 1.1, 1.1, 0.0, 0}
@@ -77708,6 +78645,7 @@ plot/ribbon/vs/line/thick=3/over/nolab/pal=green_light xval, yval, yval
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_save_packed
 ! err693_save_packed.jnl
 ! ticket 2240: bug writing multiple vars with one SAVE when scaled
@@ -77719,6 +78657,7 @@ save/clobber/file=a.nc QA_OF_SEAICE_CONC_CDR, GODDARD_MERGED_SEAICE_CONC
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_subspan_trans
 ! err693_subspan_trans
 ! bug 2241  3/9/2015
@@ -77733,53 +78672,53 @@ let b = a[x=@min]
  
 set mode diag
 say `a[x=@min]`
- 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 GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -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 GSI1            COADSX51_1NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   2 I:      0     83  J: -999 -999  K: -999 -999  L:   -999   -999
  strip --> A[X=25E:25E(385)@MIN,D=2]
- strip modulo-void-filling A on X axis:     0    83 dset:   2
- strip moduloing A on X axis:     0    82 dset:   2
- reading A        M:  5 dset:   2 I:    1   82  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- doing moduloing A on X axis:     1    82 dset:   2
- doing modulo-void-filling A on X axis:     0    82 dset:   2
+ strip modulo-void-filling A on X axis:        0       83 dset:   2
+ strip moduloing A on X axis:        0       82 dset:   2
+ reading A        M:  5 dset:   2 I:      1     82  J: -999 -999  K: -999 -999  L:   -999   -999
+ doing moduloing A on X axis:        1       82 dset:   2
+ doing modulo-void-filling A on X axis:        0       82 dset:   2
  doing --> A[X=25E:25E(385)@MIN,D=2]
- -DELETE A        M:  4 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- !-> MESSAGE/CONTINUE 25.27741
-25.27741
+ -DELETE A        M:  2 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
  
 ! This previously resulted in an error.
 say `b`
- dealloc  dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- 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 B        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 GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- eval    B        C:  6 dset:   2 I:    0   83  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- found   A        M:  7 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE B        M: 11 dset:   2 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- !-> MESSAGE/CONTINUE 25.27741
-25.27741
+ dealloc  dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL
+ 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 B        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 GSI1            COADSX51_1NORMAL    NORMAL    NORMAL
+ allocate dynamic grid GSI1            COADSX51_1NORMAL    NORMAL    NORMAL
+ eval    EX#1     C:  4 dset:   2 I:      0     83  J: -999 -999  K: -999 -999  L:   -999   -999
+ eval    B        C:  6 dset:   2 I:      0     83  J: -999 -999  K: -999 -999  L:   -999   -999
+ found   A        M:  7 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE B        M: 11 dset:   2 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
  
 can mode diag
  
 ! What if the region for @MIN is in the saved portion?
 say `a[x=150:200 at min]`
- !-> MESSAGE/CONTINUE 26.96306
-26.96306
+ !-> MESSAGE/CONTINUE 26.96305592854818
+26.96305592854818
 let b = a[x=150:200 at min]
 say `b`
- !-> MESSAGE/CONTINUE 26.96306
-26.96306
+ !-> MESSAGE/CONTINUE 26.96305592854818
+26.96305592854818
  
 ! What if the region for @MIN extends beyond the saved portion?
 say `a[x=200:300 at min]`
- !-> MESSAGE/CONTINUE 25.27741
-25.27741
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
 let b = a[x=200:300 at min]
 say `b`
- !-> MESSAGE/CONTINUE 25.27741
-25.27741
+ !-> MESSAGE/CONTINUE 25.27740573883057
+25.27740573883057
  
 ! What if the region for @MIN is outside the saved portion?
 say `a[x=300:385 at min]`
@@ -77793,6 +78732,7 @@ bad
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_repeat_err
 !   err693_repeat_err.jnl
 ! test fix for ticket 2244: Error handling in REPEAT
@@ -77824,6 +78764,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_edit_useratt
 ! err693_edit_useratt.jnl
 ! ticket 2249: set attribute properties for user-defined variable
@@ -77883,6 +78824,7 @@ list/x=135.402W:135.321W/y=58.609 elev
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_redef_rec_axis
 ! err693_redef_rec_axis.jnl
 ! ticket 2271. Redefining the record axis meant
@@ -77907,8 +78849,8 @@ show data/full
      currently SET data sets:
     1> ./a.nc  (default)
  
- name     title                             I         J         K         L         M         N
- VAR      X[GX=XAX] + Y[GY=YAX] + T[GT=TR  1:5       1:5       ...       1:7       ...       ...
+ name     title                             I         J         K         L
+ VAR      X[GX=XAX] + Y[GY=YAX] + T[GT=TR  1:5       1:5       ...       1:7
                on grid GSI1 with -1.E+34 for missing data
              X=0.5:5.5  Y=1:11  
  
@@ -77917,6 +78859,7 @@ show data/full
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_frame_types
 ! bn_frame_types.jnl
 ! Ticket 2275
@@ -77941,6 +78884,7 @@ set mode/last ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_shape
 ! err693_shape.jnl
 ! bug 2273 shape of variable with various subexpressions
@@ -77965,6 +78909,7 @@ say `sst,r=isize`  `a,r=isize` `a_anom,r=isize`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_ef_axis_precision
  ! NOAA/PMEL TMAP
  ! FERRET v6.94
@@ -77996,6 +78941,7 @@ q
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_string_results
 ! err693_string_results.jnl
 ! Ticket 2234, the LIST B returned the numeric pointer to the string.
@@ -78017,6 +78963,7 @@ list d
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_lev_nv_over
 ! err693_lev_nv_over.jnl
 ! The polygon command with /LEV=20V caused a crash; levels settings incorrect.
@@ -78037,6 +78984,7 @@ GO polymark polygon/over/lev=20v/key/title="SST"  xpts,ypts,sst,square, 0.5
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_fcn_of_attvar
 ! err693_fcn_of_attvar.jnl
 ! Ticket 2291 Function of attribute-expression
@@ -78088,6 +79036,7 @@ list ysequence(dncase(sst.dimnames))
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_isize_and_gcfcn
 ! err693_isize_and_gcfcn.jnl
 ! ticket 2213
@@ -78099,12 +79048,10 @@ can mode verify
 8
     GRID XABSTRACT
  name       axis              # pts   start                end                 subset
- ABSTRACT  X             99999999 r   1                    1.E+08              7 pts
+ ABSTRACT  X             99999999 r   1                    1.E+08              8 pts
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 8
 8 a
 8
@@ -78128,8 +79075,6 @@ can mode verify
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 8
 8 a
 8
@@ -78149,6 +79094,7 @@ can mode verify
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_ribbon_scale
 ! err693_ribbon_scale.jnl
 ! ticket 2295: the vertical scale is mis-computed
@@ -78161,11 +79107,12 @@ 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
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_parse_curly
 ! err693_parse_curly.jnl
 ! the sub-routine defines a string variable containing commands for overlays in
@@ -78279,6 +79226,7 @@ define symbol overcommands = `p1s_ov`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_list_missing
 ! err693_list_missing.jnl
  
@@ -78300,6 +79248,7 @@ list a,b
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_shf_subscr
 ! err693_shf_subscr.jnl
 ! ticket 2231  Subscripts used to compute @SHF-1 at the low end of the axis
@@ -78342,6 +79291,7 @@ list/k=3:4 zdiff_t
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_shift_w_region
 ! err693_shift_w_region
 ! Ticket 2300.  In fact with bounds checking on, the list a[i=@shf] would have
@@ -78375,6 +79325,7 @@ list a[i=@shf]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_scalar_grids
 ! err693_scalar_grids.jnl
 ! See ticket 1602
@@ -78462,11 +79413,11 @@ def grid/x=x4ax/t=t12 txgrid
 sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
- name     title                             I         J         K         L         M         N
- TM       TM                               1:4       ...       ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ TM       Tm                               1:4       ...       ...       1:12
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 4 by 12 points (X-T)
                1      2      3      4    
@@ -78492,11 +79443,11 @@ FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
 sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
- name     title                             I         J         K         L         M         N
- TM       TM                               1:4       ...       ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ TM       Tm                               1:4       ...       ...       1:12
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 4 by 12 points (X-T)
                1      2      3      4    
@@ -78525,10 +79476,10 @@ sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
  name     title                             I         J         K         L         M         N
- TM       TM                               1:4       ...       ...       ...       ...       1:12
+ TM       Tm                               1:4       ...       ...       ...       ...       1:12
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 4 by 12 points (X-F)
                1      2      3      4    
@@ -78557,11 +79508,11 @@ FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
 sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
- name     title                             I         J         K         L         M         N
- TM       TM                               ...       1:2       1:4       1:6       ...       ...
+ name     title                             I         J         K         L
+ TM       Tm                               ...       1:2       1:4       1:6
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 2 by 4 by 6 points (Y-Z-T)
              1      2    
@@ -78609,11 +79560,11 @@ FILE/SKIP=4/VAR="Tm"/COL=12/order=tyz/GRID=grid3d fxdata.dat
 sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
- name     title                             I         J         K         L         M         N
- TM       TM                               ...       1:2       1:4       1:6       ...       ...
+ name     title                             I         J         K         L
+ TM       Tm                               ...       1:2       1:4       1:6
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 2 by 4 by 6 points (Y-Z-T)
              1      2    
@@ -78662,10 +79613,10 @@ sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
  name     title                             I         J         K         L         M         N
- TM       TM                               ...       1:2       1:4       ...       1:6       ...
+ TM       Tm                               ...       1:2       1:4       ...       1:6       ...
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 2 by 4 by 6 points (Y-Z-E)
              1      2    
@@ -78712,10 +79663,10 @@ sh dat
      currently SET data sets:
     1> ./fxdata.dat  (default)
  name     title                             I         J         K         L         M         N
- TM       TM                               ...       1:2       1:4       ...       1:6       ...
+ TM       Tm                               ...       1:2       1:4       ...       1:6       ...
  
 list tm
-             VARIABLE : TM
+             VARIABLE : Tm
              FILENAME : fxdata.dat
              SUBSET   : 2 by 4 by 6 points (Y-Z-E)
              1      2    
@@ -79273,13 +80224,13 @@ LIST a
 show data   ! to side step dset=-1 left behind by SHOW ATTRIBUTE previously
      currently SET data sets:
     1> ./weird_name1.cdf  (default)
- name     title                             I         J         K         L         M         N
- v1       lower case v1                    1:20      ...       ...       ...       ...       ...
+ name     title                             I         J         K         L
+ v1       lower case v1                    1:20      ...       ...       ...
  v2-and-minus
-          SIN(2+I/10)                      1:20      ...       ...       ...       ...       ...
- V1       Upper case V1                    1:20      ...       ...       ...       ...       ...
- I        SIN(4+I/10)                      1:20      ...       ...       ...       ...       ...
- X        SIN(5+I/10)                      1:20      ...       ...       ...       ...       ...
+          SIN(2+I/10)                      1:20      ...       ...       ...
+ V1       Upper case V1                    1:20      ...       ...       ...
+ I        SIN(4+I/10)                      1:20      ...       ...       ...
+ X        SIN(5+I/10)                      1:20      ...       ...       ...
  
 ! !!!!!!
 ! =========================
@@ -79292,8 +80243,6 @@ show grid gg
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! ======
 LET/TITLE= _DQ_'A title w/ "sq"'. Ship_Ka'imimoana_DQ_ A = 1 ! ' char for emacs
@@ -79369,6 +80318,7 @@ plot/vlim=-2:2/hlim=_DQ_1-jan-1980_DQ_:_DQ_15-feb-1980:12:00_DQ_ \
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err694_shf_missing
 ! err694_shf_missing.jnl
 ! Test the fix for ticket 2314
@@ -79426,6 +80376,7 @@ list/x=10:30/y=-60/l=1  sst[i=@shf:3]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err694_longname_showdat
 ! err694_longname_showdat.jnl
 ! ticket 2317
@@ -79441,15 +80392,15 @@ use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
 sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
      currently SET data sets:
     1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  PROF     Prof                             ...       ...       ...       ...       1:21      ...
  TIME     Time                             ...       ...       ...       ...       1:21      ...
  LATITUDE Latitude                         ...       ...       ...       ...       1:21      ...
  LONGITUDE
           Longitude                        ...       ...       ...       ...       1:21      ...
  ROWSIZE  Number of Observations for this  ...       ...       ...       ...       1:21      ...
- PRESS_DB PRESS_DB                         1:373     ...       ...       ...       ...       ...
- PCO2     PCO2                             1:373     ...       ...       ...       ...       ...
+ PRESS_DB PRESS_DB                         1:373     ...       ...       ...
+ PCO2     PCO2                             1:373     ...       ...       ...
  
  
 ! If a file matched to 1st 32 characters, the shorter-named
@@ -79459,21 +80410,22 @@ use WestCoastCarbon_9d9c_f562_77b5_5
 sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
      currently SET data sets:
     1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  PROF     Prof                             ...       ...       ...       ...       1:21      ...
  TIME     Time                             ...       ...       ...       ...       1:21      ...
  LATITUDE Latitude                         ...       ...       ...       ...       1:21      ...
  LONGITUDE
           Longitude                        ...       ...       ...       ...       1:21      ...
  ROWSIZE  Number of Observations for this  ...       ...       ...       ...       1:21      ...
- PRESS_DB PRESS_DB                         1:373     ...       ...       ...       ...       ...
- PCO2     PCO2                             1:373     ...       ...       ...       ...       ...
+ PRESS_DB PRESS_DB                         1:373     ...       ...       ...
+ PCO2     PCO2                             1:373     ...       ...       ...
  
  
 sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err693_std4d
 ! err693_std4d
 ! Check fix to ticket 2319: std transform in multi-dimensions
@@ -80223,24 +81175,24 @@ FILE/VAR=v layerz_test_data.txt
 ! set the layerz link to point to a variable named "depth"
 SET VAR/layerz=depth v
 SHOW VAR/LAYERZ v
-  DEPTH holds the designated vertical (layerz) coordinates of V
+  DEPTH holds the designated vertical (layerz) coordinates of v
 SHOW ATT v
 ! modify the layerz link
 SET VAR/layerz=newdepth v
 SHOW VAR/LAYERZ v
-  NEWDEPTH holds the designated vertical (layerz) coordinates of V
+  NEWDEPTH holds the designated vertical (layerz) coordinates of v
 SHOW ATT v
      attributes for dataset: ./layerz_test_data.txt
- V.long_name = V 
- V.missing_value = -1.E+34
- V.__LayerzRef_ = NEWDEPTH 
+ v.long_name = v 
+ v.missing_value = -1.E+34
+ v.__LayerzRef_ = NEWDEPTH 
 cancel var/layerz v
 SHOW VAR/LAYERZ v
-  No variable holds vertical (layerz) coordinates of V
+  No variable holds vertical (layerz) coordinates of v
 SHOW ATT v
      attributes for dataset: ./layerz_test_data.txt
- V.long_name = V 
- V.missing_value = -1.E+34
+ v.long_name = v 
+ v.missing_value = -1.E+34
 CANCEL DATA layerz_test_data.txt
  
 ! user variable
@@ -80354,10 +81306,8 @@ SHOW GRID
  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                10 pts
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                11 pts
  normal    T
- normal    E
- normal    F
  
 ! use aux var regridding.  Target coordinate points match the source points
 ! identically at 0, 100, 200, ... 500
@@ -80367,33 +81317,33 @@ SHOW GRID
 SET MODE diagnostic
 LET tempz = temp[gz(depth)=zpts]
 LIST/PREC=7 tempz
- dealloc  dynamic grid GAO1            XAXLEVITR1YAXLEVITR4ZAXLEVITR 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 TEMPZ    C:  7 dset:   1 I:    1    1  J:    1    1  K:    1    1  L:    1    1  M:    1    1  N:    1    1
- 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    NORMAL    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    NORMAL    NORMAL
- dealloc  dynamic grid (G003)          NORMAL    NORMAL    (AX005)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G003)          NORMAL    NORMAL    (AX005)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
- dealloc  dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
- allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
- eval    EX#1     C:  4 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
- eval    TEMPZ    C:  6 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
- allocate dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
+ dealloc  dynamic grid GAO1            XAXLEVITR1YAXLEVITR4ZAXLEVITR 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 TEMPZ    C:  7 dset:   1 I:      1      1  J:    1    1  K:    1    1  L:      1      1  M:    1    1  N:    1    1
+ 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
+ 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
- eval    DEPTH    C:  9 dset:   1 I:    1    2  J:    1    2  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
- pseudo  Z        M:  1 dset:   1 I: -999 -999  J: -999 -999  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
- constan cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- found   TEMP     M:  2 dset:   1 I:    1    2  J:    1    2  K:    1   11  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE cnst     M:  3 dset:   0 I: -999 -999  J: -999 -999  K: -999 -999  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE tpry     M:  4 dset:   0 I:    1    2  J:    1    2  K:    1    1  L: -999 -999  M: -999 -999  N: -999 -999
- -DELETE Z        M:  1 dset:   1 I: -999 -999  J: -999 -999  K:    1   20  L: -999 -999  M: -999 -999  N: -999 -999
- reading TEMP     M:  1 dset:   1 I:    1    2  J:    1    2  K:    7   12  L: -999 -999  M: -999 -999  N: -999 -999
- auxgrd  TEMP     M:  4 dset:   1 I:    1    2  J:    1    2  K:    1    5  L: -999 -999  M: -999 -999  N: -999 -999
- dealloc  dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   NORMAL    NORMAL    NORMAL
+ 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
+ found   TEMP     M:  2 dset:   1 I:      1      2  J:    1    2  K:    1   11  L:   -999   -999
+ -DELETE cnst     M:  3 dset:   0 I:   -999   -999  J: -999 -999  K: -999 -999  L:   -999   -999
+ -DELETE tpry     M:  4 dset:   0 I:      1      2  J:    1    2  K:    1    1  L:   -999   -999  M: -999 -999  N: -999 -999
+ -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
              VARIABLE : TEMP[GZ(DEPTH)=ZPTS]
              FILENAME : levitus_3d_subset.nc
              SUBSET   : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
@@ -80415,17 +81365,15 @@ 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    NORMAL    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    NORMAL    NORMAL
+ dealloc  dynamic grid (G002)          XAXLEVITR1YAXLEVITR4(AX005)   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)
  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
  normal    T
- normal    E
- normal    F
 !LET tempz = temp[gz=zpts,layerz]  ! same regrid using semi-automated notation
 !LIST/PREC=7 tempz
 !SHOW GRID tempz
@@ -80474,8 +81422,6 @@ SHOW GRID tempzax
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAX       Z (METERS)           5 r   100                  500                 full
  normal    T
- normal    E
- normal    F
 !LET tempzax = temp[gz=zax,layerz]  ! same regrid using semi-automated notation
 !LIST tempzax
 !SHOW GRID tempzax
@@ -80508,10 +81454,8 @@ SHOW GRID tempz_alt
  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                  4 pts
+ (AX007)   Z                    5 r   2                    10                  5 pts
  normal    T
- normal    E
- normal    F
  
 !! do same regrid using the shorhand semi-automated notation
 !LIST/PREC=7 temp[z=2:10:2,layerz]   ! lo:hi:delta notation
@@ -80537,8 +81481,6 @@ SHOW GRID/z tempz_1pt
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  (AX008)   Z                    1 r   6                    6                   1 pt
  normal    T
- normal    E
- normal    F
  
        K     Z                   ZBOX      ZBOXLO
        1>  6                     6.E-05     5.99997
@@ -80562,8 +81504,6 @@ SHOW GRID
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAXLEVITR DEPTH (m)           20 i-  0                    5000                1 pt
  normal    T
- normal    E
- normal    F
  
 ! auxiliary points in reverse order
 ! to get results that we can check for correctness, we will reverse the Z-order
@@ -80604,8 +81544,6 @@ SHOW GRID rvtempzax
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
  normal    T
- normal    E
- normal    F
  
 ! deliberate execution errors:
 LET disordered_depth1 = IF K EQ 3 THEN DEPTH[K=1] ELSE DEPTH
@@ -81799,8 +82737,6 @@ SHOW GRID/z rvtempzaxave
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
  normal    T
- normal    E
- normal    F
  
        K     Z                   ZBOX      ZBOXLO
        1>  100                   100        50
@@ -84283,6 +85219,7 @@ LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err695_bounds_match_axis
 ! err695_bounds_match_axis.jnl
 ! ticket 2321.
@@ -84302,8 +85239,6 @@ sh grid/l=1:4444 temp
  LAT       LATITUDE             1 r   36.65N               36.65N              full
  PFULL1_1  Z (hpa)              1 r-  3.3236               3.3236              full
  TIME      TIME                 4 i   19-JUN-1997 00:00    19-JUN-1997 01:30   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  19-JUN-1997 00:00:00  0.0208333  18-JUN-1997 23:30:00    0.02083333
@@ -84313,6 +85248,7 @@ sh grid/l=1:4444 temp
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err695_show_dat_nodata
 ! err695_show_dat_nodata.jnl
 ! ticket 2322
@@ -84325,14 +85261,14 @@ USE coads_climatology
 SHOW DATA 1
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
 SHOW DATA coads_climatology
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
  
 ! intentional errors
@@ -84345,29 +85281,30 @@ SET MODE/LAST ignore
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err695_grave_prec
 ! err695_grave_prec
 ! Bug 2323. Large numbers had incorrect results on grave-accent
 ! evaluations, returning only 8 digits of precision
  
 list/nohead/p=16 1234567890123456, `1234567890123456`
- !-> list/nohead/p=16 1234567890123456, 1.234568E+15
-I / *:     1234567890123456.  1234568000000000.
+ !-> list/nohead/p=16 1234567890123456, 1234567890123456.
+I / *:     1234567890123456.  1234567890123456.
 list/nohead/p=16 -1234567890123.456, `-1234567890123.456`
- !-> list/nohead/p=16 -1234567890123.456, -1.234568E+12
-I / *:    -1234567890123.456 -1234568000000.000
+ !-> list/nohead/p=16 -1234567890123.456, -1234567890123.456
+I / *:    -1234567890123.456 -1234567890123.456
  
 ! this was ok
 list/nohead/p=16 1.234567890123456, `1.1234567890123456`
- !-> list/nohead/p=16 1.234567890123456, 1.123457
-I / *:     1.234567890123456  1.123457000000000
+ !-> list/nohead/p=16 1.234567890123456, 1.123456789012346
+I / *:     1.234567890123456  1.123456789012346
  
 ! check output when asking for lower precision
 list/nohead/p=9 1234567890123456, `1234567890123456`
- !-> list/nohead/p=9 1234567890123456, 1.234568E+15
-I / *:     1.23456789E+15  1.23456800E+15
+ !-> list/nohead/p=9 1234567890123456, 1234567890123456.
+I / *:     1.23456789E+15  1.23456789E+15
 list/nohead/p=6 1234567890123456, `1234567890123456`
- !-> list/nohead/p=6 1234567890123456, 1.234568E+15
+ !-> list/nohead/p=6 1234567890123456, 1234567890123456.
 I / *:     1.23457E+15  1.23457E+15
  
 let var = 1.23456e+34
@@ -84434,9 +85371,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GX=dcoarse]
-             X: 0.5 to 5.5
- Column  1: DEST is _X[GX=DCOARSE]
- Column  2: VAR[G=1 delta on X] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X)
+ Column  1: DEST[X=0.5:5.5] is _X[GX=DCOARSE]
+ Column  2: VAR[G=1 delta on X,X=1.5:5.5] is RESHAPE(SBIN, _X[GX=IRR]) (regrid: 1 delta on X)
           DEST    VAR
 1   / 1:  1.000   ....
 2   / 2:  2.000   ....
@@ -84497,9 +85433,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GY=dcoarse]
-             Y: 0.5 to 5.5
- Column  1: DEST is _Y[GY=DCOARSE]
- Column  2: VAR[G=1 delta on Y] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y)
+ Column  1: DEST[Y=0.5:5.5] is _Y[GY=DCOARSE]
+ Column  2: VAR[G=1 delta on Y,Y=1.5:5.5] is RESHAPE(SBIN, _Y[GY=IRR]) (regrid: 1 delta on Y)
           DEST    VAR
 1   / 1:  1.000   ....
 2   / 2:  2.000   ....
@@ -84560,9 +85495,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GZ=dcoarse]
-             Z: 0.5 to 5.5
- Column  1: DEST is _Z[GZ=DCOARSE]
- Column  2: VAR[G=1 delta on Z] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z)
+ Column  1: DEST[Z=0.5:5.5] is _Z[GZ=DCOARSE]
+ Column  2: VAR[G=1 delta on Z,Z=1.5:5.5] is RESHAPE(SBIN, _Z[GZ=IRR]) (regrid: 1 delta on Z)
           DEST    VAR
 1   / 1:  1.000   ....
 2   / 2:  2.000   ....
@@ -84623,9 +85557,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GT=dcoarse]
-             T: 0.5 to 5.5
- Column  1: DEST is _T[GT=DCOARSE]
- Column  2: VAR[G=1 delta on T] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T)
+ Column  1: DEST[T=0.5:5.5] is _T[GT=DCOARSE]
+ Column  2: VAR[G=1 delta on T,T=1.5:5.5] is RESHAPE(SBIN, _T[GT=IRR]) (regrid: 1 delta on T)
           DEST    VAR
 1   / 1:  1.000   ....
 2   / 2:  2.000   ....
@@ -84686,9 +85619,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GE=dcoarse]
-             E: 0.5 to 5.5
- Column  1: DEST is _E[GE=DCOARSE]
- Column  2: VAR[G=1 delta on E] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E)
+ Column  1: DEST[E=0.5:5.5] is _E[GE=DCOARSE]
+ Column  2: VAR[G=1 delta on E,E=1.5:5.5] is RESHAPE(SBIN, _E[GE=IRR]) (regrid: 1 delta on E)
           DEST    VAR
 1   / 1:  1.000   ....
 2   / 2:  2.000   ....
@@ -84749,9 +85681,8 @@ LIST dest, var[G$1=dcoarse at ave], var[G$1=dcoarse at BIN], var[G$1=dcoarse at NBIN]
  
 LIST dest, var[G$1=dcoarse]
  !-> LIST dest, var[GF=dcoarse]
-             F: 0.5 to 5.5
- Column  1: DEST is _F[GF=DCOARSE]
- Column  2: VAR[G=1 delta on F] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F)
+ Column  1: DEST[F=0.5:5.5] is _F[GF=DCOARSE]
+ Column  2: VAR[G=1 delta on F,F=1.5:5.5] is RESHAPE(SBIN, _F[GF=IRR]) (regrid: 1 delta on F)
           DEST    VAR
 1   / 1:  1.000   ....
 2   / 2:  2.000   ....
@@ -84765,6 +85696,7 @@ LIST dest, var[G$1=dcoarse]
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_only_inf_lev
 ! Bug 2326: levels with only a value and (inf) or (-inf)
 ! should show values less-equal or greater-equal to that level.
@@ -84792,6 +85724,7 @@ set view ur; shade/key=horiz/lev=(-inf)(22)(inf) sst
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_plot_ax_ppl
 ! err696_plot_ax_ppl.jnl
 ! ticket 2327
@@ -84875,6 +85808,7 @@ plot/i=1:199 i*cos(i/10)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_ft_calendars
 ! err696_ft_calendars.jnl
 ! see ticket 2332: check for matching calendars when
@@ -84901,6 +85835,7 @@ can data/all
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_centerlab_restore
 ! err696_centerlab_restore
 ! Ticket 2331.
@@ -84961,6 +85896,7 @@ polygon/trans/i=1:20/nolab/key=horiz  xpts+xsqr, ypts+ysqr, x*x/10
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_time_overlay
 ! err696_time_overlay
 ! bug 2334, first plot/over takes too long and the line is incorrect.
@@ -84968,23 +85904,24 @@ 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
-Fri Jun 17 15:18:49 PDT 2016
+Tue Apr 18 17:16:25 PDT 2017
 set view upper
 plot t[gt=tax_nlp]
 plot/ov/vs/line/dash {1,1}, 1e6*{-1,1}
 sp date
-Fri Jun 17 15:18:49 PDT 2016
+Tue Apr 18 17:16:25 PDT 2017
  
 sp date
-Fri Jun 17 15:18:49 PDT 2016
+Tue Apr 18 17:16:25 PDT 2017
 set view lower
 plot t[gt=tax_jul]
 plot/ov/vs/line/dash {2,2}, 1e6*{-1,1}
 sp date
-Fri Jun 17 15:18:49 PDT 2016
+Tue Apr 18 17:16:25 PDT 2017
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_save_noupcase
 ! err696_save_noupcase
 ! Ticket 2336: When UPCASE canceled an extra upcase axis
@@ -85038,7 +85975,7 @@ variables:
 		var:long_name = "0*TT + X[GX=XAX]" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
  
@@ -85046,6 +85983,7 @@ set mode/last upcase
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_argument_blanks
 ! err696_argument_blanks.jnl
 ! Ticket 2343: quoted argument with a blank at the end.
@@ -85082,6 +86020,7 @@ Hi Hi there my friend
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_annotate_numeric
 ! err696_annotate_numeric
 ! 1/7/2016
@@ -85114,6 +86053,7 @@ annotate/nouser/xpos=1/ypos=0.5 1,2,3,4,5
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_e_component_mem_crptn
 ! canceling of an E aggregation dataset is leaving
 ! corrupted variables in memory as seen by the variable names "%%"
@@ -85144,28 +86084,37 @@ list/i=3 sst[T=@ave]
  4   / 4:  114.1  113.8  111.6  109.8  106.9  102.2   ....   ....   ....
  
 show mem/all
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 540 words
+    Current cache: 504 words
 all data in memory:
- SST[D=fourfiles]                  YE    mr:15  blk1:1  nblk:1
-    3  /106W           1  /12N          ...  / ...         ...  /01-JAN 00:45   1  /0.5          ...  / ...
-    3  /104W           9  /30N          ...  / ...         ...  /31-DEC 06:34   4  /4.5          ...  / ...
+ SST[D=fourfiles]                  YE    mr:15 size:72
+         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:12  blk1:2  nblk:1
-    3  /106W           1  /12N          ...  / ...           1  /01-JAN 00:45   1  /0.5          ...  / ...
-    3  /104W           9  /30N          ...  / ...          12  /31-DEC 06:34   4  /4.5          ...  / ...
+ SST[D=fourfiles]                  YTE   mr:12 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              ... / ...
  
 cancel data fourfiles
 show mem/all
- Current size of FERRET memory cache: 25.6 MegaWords  (1 word = 8 bytes)
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 540 words
+    Current cache: 0 words
 all data in memory:
  
 exit
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_mem_err_report
 ! err696_mem_err_report.jnl
 ! 1/21/2016 *acm*
+! V702: *sh* 2/17 - This script depends upon the specific formatting
+! of the error string, when memory is exceeded
+! Tweaked it to match the new formatting
+ 
 ! Ticket 2354: The error message shows the wrong number for memory needed.
 !
 ! Try to load some data larger than the default amount of memory
@@ -85188,31 +86137,28 @@ sh grid bigvar
  YAXIS     Y                  180 r   1                    180                 full
  ZAXIS     Z                   20 r   1                    20                  full
  LONGTIME  TIME              1828 r   01-JAN-2000 00:00    01-JAN-2005 00:00   full
- normal    E
- normal    F
  
  
 set mode ignore
 load/l=1:5 bigvar
+    To fulfill this request would exceed the current SET MEMORY/SIZE= limit of 2 megawords
+    At the moment that the memory limit was reached
+    memory was committed as follows:
+        - to objects used in computation: : 1296005 (65%)
+    The size of the requested object was: : 6480000 (324%)
  
 ! Previously the number Mwords shown was too low
 show sym fer_last_error
-FER_LAST_ERROR = "**ERROR: request exceeds memory setting: 13 Mwords were requested. "
+FER_LAST_ERROR = "**ERROR: request exceeds memory setting"
 cancel mode ignore
  
-! Get the number Ferret says it needs
-let ms1 = `strrindex("($fer_last_error)", ":")`
- !-> DEFINE VARIABLE ms1 = 40
-let ms2 = `strindex("($fer_last_error)", "Mword")`
- !-> DEFINE VARIABLE ms2 = 45
-let siz = substring("($fer_last_error)", `ms1+1`, `ms2-ms1-1`)
- !-> DEFINE VARIABLE siz = substring("**ERROR: request exceeds memory setting: 13 Mwords were requested. ", 41, 4)
+! V702:  we no longer have to parse the error string.
+! Instead look at PEAK_MEMORY
  
-! Increase memory accordingly
- 
-set mem/siz=`siz`
- !-> set mem/siz= 13
+SET MEMORY/SIZE=15
 load/l=1:5 bigvar
+SHOW SYMBOL ($PEAK_MEMORY)
+ !-> SHOW SYMBOL 7776005
  
 ! restore default
 set mem/siz=`memsize`
@@ -85221,6 +86167,7 @@ set mem/siz=`memsize`
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_multiple_slashes
 ! err696_multiple_slashes.jnl
 ! 1/25/2016 *acm*
@@ -85265,19 +86212,19 @@ fill/($regqual)($plotqual) sst
  !-> CONTOUR/FILL//x=300:360///y=-20:20/L=3/pal=grayscale/line//key=cont sst
  
 ! command lines with urls unchanged
-IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
  !-> IF 1 THEN
-   set data///format=cdf http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+   set data///format=cdf http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
    let//d=coads_sst myvar = 1
    sh dat
      currently SET data sets:
     1> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
-    2> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      Sea Surface Temperature          1:180     1:90      ...       1:1680    ...       ...
+    2> http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+ name     title                             I         J         K         L
+ SST      Sea Surface Temperature          1:180     1:90      ...       1:1680
  ------------------------------
  MYVAR[D=coads_sst] = 1
  
@@ -85359,6 +86306,7 @@ repeat/l=1:2 (set reg/x=1:4//)
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_2d_time_overlay
 ! err696_2d_time_overlay.jnl
 ! ticket 2360: 2-D time overlay plots have never worked.
@@ -85408,6 +86356,7 @@ shade/ov/pal=grayscale/lev f2
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_singlevec_over
 ! err696_singlevec_over.jnl
 ! Ticket 2365: overlay a single vector. If
@@ -85451,6 +86400,7 @@ PPL_VECLEN = "  27.2"
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_return_type
 ! err696_return_type
 ! See ticket #2367
@@ -85504,6 +86454,7 @@ list allcat
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_hovmuller_mod_fill
 ! err696_hovmuller_mod_fill.jnl
 ! 3/7/2016 ACM
@@ -85519,6 +86470,7 @@ fill/lin/t=1-jan-0000:31-dec-0001/hlim=1-jan-0000:1-jan-0001/x=180/lev=8 sst
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_repeat_escapes.jnl
 ! err696_repeat_escapes.jnl
 ! Ticket 2376 - parsing error with escaped grave-accent syntax
@@ -85566,6 +86518,7 @@ repeat/k=1:3 (rep/i=1:2 (sp echo \``a`\`))
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_red_keylab.jnl
 ! err696_red_keylab.jnl
 ! Ticket 2375: outline and labels of color key were
@@ -85580,6 +86533,7 @@ fill/over/nolab/key/lev=v,2min temp
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_poly_over_label
 ! err696_poly_over_label
 ! Tiket 2396: incorrect label in the lower
@@ -85639,6 +86593,7 @@ ppl list labels  ! shows cvar for lab2
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_def_ax_f
 ! err696_def_ax_f.jnl
 ! See ticket 2380
@@ -85686,6 +86641,7 @@ list _t[gt=aax]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_mode_cal_f
 ! err696_mode_cal_f.jnl
 ! ticket 2399 MODE CALENDAR and F calendar axes
@@ -85749,6 +86705,7 @@ LAB1 = "F (DAY) : 1.5"
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_def_ax_edges
 ! err696_def_ax_edges
 ! See ticket 2400
@@ -85866,6 +86823,7 @@ def ax/edge/x xax = edges[i=1:4]; sh axis xax; list x[gx=xax]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_write_no_dim
 ! err696_write_no_dim.jnl
 ! ticket 2241: save a subset of a variable whose grid
@@ -85875,10 +86833,10 @@ use nodim
 sh dat
      currently SET data sets:
     1> ./nodim.nc  (default)
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  EXPOCODE expocode                         ...       ...       ...       ...       1:1       ...
  NUM_OBS  Number of observations           ...       ...       ...       ...       1:1       ...
- TEMP     sea surface temperature          1:51      ...       ...       ...       ...       ...
+ TEMP     sea surface temperature          1:51      ...       ...       ...
  
  
 ! previously this gave an error
@@ -85911,7 +86869,7 @@ variables:
 		TEMP:history = "From /home/data/socat/socatV3/11SS/11SS20140225.nc" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -85921,6 +86879,7 @@ data:
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_mod_sub_fln
 ! err696_mod_sub_fln.jnl
 ! Ticket 2366, @FLN on a modulo subspan axis
@@ -85989,6 +86948,7 @@ list/x=-180:720 b, b[x=@fln]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_subspan_transforms
 ! err696_subspan_transforms.jnl
 ! See ticket 2364.  Results previously
@@ -86788,6 +87748,7 @@ can var a; can ax xaxis; use a.nc
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_subspan_mod_in_expr
 ! err696_subspan_mod_in_expr.jnl
 ! ticket 1845: a subspan modulo due to context info buried
@@ -86819,6 +87780,7 @@ XAXIS_MAX = "145.345261"
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_shade_subspan_clim
 ! err696_shade_subspan_clim
 ! See ticket 2404
@@ -86837,7 +87799,7 @@ set view ul; shade a*x[gx=0:10:1]
 sh sym yaxis*
 YAXIS_REVERSED = "0"
 YAXIS_MIN = "31.0000000"
-YAXIS_MAX = "212.242500"
+YAXIS_MAX = "243.000000"
  
 ! But the top-right SHADE plot was all messed up; it shifts the data
 ! later by a full month, and stretches the last (shifted) cell all
@@ -86847,7 +87809,7 @@ set view ur; shade/t=1-jan-0001:1-jan-0002 a*x[gx=0:10:1]
 sh sym yaxis*
 YAXIS_REVERSED = "0"
 YAXIS_MIN = "31.0000000"
-YAXIS_MAX = "212.242500"
+YAXIS_MAX = "243.000000"
  
 ! In the bottom-right line plot, the actual plotted data look ok.
 ! But the plot limits extend all the way from 1-JUL-0000 to 1-MAR-0002,
@@ -86858,14 +87820,16 @@ set view lr; plot/step=con/t=1-jan-0001:1-jan-0002 a
 sh sym xaxis*
 XAXIS_REVERSED = "0"
 XAXIS_MIN = "31.0000000"
-XAXIS_MAX = "212.242500"
+XAXIS_MAX = "243.000000"
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 ! go err696_subspan_mod_strides  ! do this test in bn_gif
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_def_att
 ! err696_def_att.jnl
 ! tickets 2415, 2416
@@ -86921,6 +87885,7 @@ sp ncdump a.nc | grep -i sst
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err696_return_prec
 ! err696_return_prec.jnl
 ! ACM 5/16 See ticket 2389.
@@ -86983,7 +87948,7 @@ say `1.55555551e8,p=14`
  !-> MESSAGE/CONTINUE 155555551
 155555551
 say `1.555555001e8,p=14`
- !-> MESSAGE/CONTINUE   155555500.1
+ !-> MESSAGE/CONTINUE 155555500.1
 155555500.1
  
  
@@ -86991,6 +87956,7 @@ say `1.555555001e8,p=14`
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go err686_show_xml_letd
 ! ! bn_show_xml_letd
 ! Testing SHOW DATA/VAR/XML with a let/D variable
@@ -87005,8 +87971,8 @@ let/d=1 salt2 = salt[d=2]
 sh dat 1
      currently SET data sets:
     1> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
  SALT2[D=coads_climatology] = SALT[D=2]
  W2[D=coads_climatology] = W[D=2]
@@ -87028,6 +87994,7 @@ sp grep "var name" out.xml
 ! 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
+! 1/2017 *acm* changes in output due to backing off auto-detection of truemonth axes, tkt 2497
  
 spawn "mkdir -p tmp"     ! tmp directory t store files
  
@@ -87236,9 +88203,9 @@ tseries myagg1 =  tmp/tagg_reg_1.nc
 show data myagg1
      currently SET data sets:
     2> myagg1  (default)
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
  
 show grid myvar
     GRID GQC1
@@ -87247,8 +88214,6 @@ show grid myvar
  normal    Y
  normal    Z
  TDAY1     TIME                10 r   01-JAN-1980 00:00    10-JAN-1980 00:00   full
- normal    E
- normal    F
  
 ! double file aggregation
 define data/agg/t myagg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
@@ -87259,8 +88224,6 @@ show grid myvar
  normal    Y
  normal    Z
  TDAY2     TIME                20 r   01-JAN-1980 00:00    20-JAN-1980 00:00   full
- normal    E
- normal    F
 stat myvar
  
              SIN(T[GT=TDAY]/10) + L[GT=TDAY]/10
@@ -87284,9 +88247,9 @@ define data/agg/t myAgg2 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
 show data myAgg2
      currently SET data sets:
     3> myagg2
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
  
  
 ! *sh* 1/28/2016 addition
@@ -87306,11 +88269,11 @@ show data/full  ! all 4 datasets
      currently SET data sets:
     1> tmp/tagg_reg_1.nc
  
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10
                on grid GTR1 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GTR2 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -87319,11 +88282,11 @@ show data/full  ! all 4 datasets
     2> myagg1
  
      T-aggregation of 1 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:10
                on grid GQC1 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GQC2 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -87335,11 +88298,11 @@ show data/full  ! all 4 datasets
     3> myagg2
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20
                on grid GQC3 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GQC4 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -87352,11 +88315,11 @@ show data/full  ! all 4 datasets
     4> myAgg2
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20
                on grid GQC5 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GQC6 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -87369,11 +88332,11 @@ show data/full  ! all 4 datasets
     5> ./bn_aggregate_t.jnl
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20
                on grid GQC7 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GQC8 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -87386,11 +88349,11 @@ show data/full  ! all 4 datasets
     6> myagg8  (default)
  
      T-aggregation of 8 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:80      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:80
                on grid GQC9 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GQC10 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -87413,8 +88376,6 @@ show grid myvar
  normal    Y
  normal    Z
  TDAY3     TIME                80 r   01-JAN-1980 00:00    20-MAR-1980 00:00   full
- normal    E
- normal    F
 plot/line/sym myvar
  
 ! read a time-independent field from the first file of the aggregation
@@ -87508,10 +88469,13 @@ tseries myTindepagg = tmp/tagg_reg_no_T.nc
 ! erroneous file 2 with 15 time steps, goes beyond start of file 3
 define data/agg/t myagg3 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2_overlarge.nc,tmp/tagg_reg_3.nc
  
+! Try to use dataset names not file names. This is not allowed for Tseries aggregations.
+use tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc
+define data/agg/t myagg2num = 1,2
+ 
 set mode/last ignore
 canc data/all
  
- 
 ! --- irregularly-spaced axes ---
 ! aggregation of 2 irregular datasets
  define data/agg/t myagg2 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc
@@ -87523,8 +88487,8 @@ define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irr
     1> myagg2
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20
                on grid GCV1 with -1.E+34 for missing data
              
  
@@ -87537,8 +88501,8 @@ define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irr
     2> myagg8  (default)
  
      T-aggregation of 8 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:80      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:80
                on grid GCV2 with -1.E+34 for missing data
              
  
@@ -87557,8 +88521,8 @@ define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irr
   show data myagg2
      currently SET data sets:
     1> myagg2
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20
  
   show grid/t myvar[d=1]
     GRID GCV1
@@ -87567,8 +88531,6 @@ define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irr
  normal    Y
  normal    Z
  TDAY_IR1  TIME                20 i   02-JAN-1980 00:00    21-JAN-1980 14:35   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1980 00:00:00  1.013911   01-JAN-1980 11:49:59    1
@@ -87598,8 +88560,6 @@ define data/agg/t myagg8 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2.nc,tmp/tagg_irr
  normal    Y
  normal    Z
  TDAY_IR2  TIME                80 i   02-JAN-1980 00:00    24-MAR-1980 14:00   full
- normal    E
- normal    F
   plot/line/sym myvar[d=2],myvar[d=1]
  
 ! aggregate collection that mixes regular (file 2) with irregular
@@ -87611,8 +88571,6 @@ define data/agg/t myagg4 = tmp/tagg_irreg_1.nc, tmp/tagg_irreg_2_reg.nc,tmp/tagg
  normal    Y
  normal    Z
  TDAY_IR3  TIME                40 i   02-JAN-1980 00:00    11-FEB-1980 12:04   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1980 00:00:00  1.013911   01-JAN-1980 11:49:59    1
@@ -87673,8 +88631,8 @@ define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/
     1> myagg2
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8
                on grid GBN1 with -1.E+34 for missing data
              
  
@@ -87687,8 +88645,8 @@ define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/
     2> myagg8  (default)
  
      T-aggregation of 5 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:20      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:20
                on grid GBN2 with -1.E+34 for missing data
              
  
@@ -87704,8 +88662,8 @@ define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/
   show data myagg2
      currently SET data sets:
     1> myagg2
- name     title                             I         J         K         L         M         N
- MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    MYVAR0[GT=TDAY_TVAR at ASN]         ...       ...       ...       1:8
  
   show grid/t myvar[d=1]
     GRID GBN1
@@ -87714,8 +88672,6 @@ define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/
  normal    Y
  normal    Z
  TDAY_TVAR TIME                 8 r   02-JAN-1980 00:00    09-JAN-1980 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1980 00:00:00  1          01-JAN-1980 12:00:00    1
@@ -87733,8 +88689,6 @@ define data/agg/t myagg8 = tmp/tagg_T0varying_1.nc, tmp/tagg_T0varying_2.nc,tmp/
  normal    Y
  normal    Z
  TDAY_TVAR1 TIME               20 r   02-JAN-1980 00:00    21-JAN-1980 00:00   full
- normal    E
- normal    F
   plot/line/sym myvar[d=2],myvar[d=1]
  
 canc data/all
@@ -87751,8 +88705,8 @@ define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T
     1> myagg2
  
      T-aggregation of 2 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11
                on grid GKQ1 with -1.E+34 for missing data
              
  
@@ -87765,8 +88719,8 @@ define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T
     2> myagg8  (default)
  
      T-aggregation of 8 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:62      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:62
                on grid GKQ2 with -1.E+34 for missing data
              
  
@@ -87785,8 +88739,8 @@ define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T
   show data myagg2
      currently SET data sets:
     1> myagg2
- name     title                             I         J         K         L         M         N
- MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11      ...       ...
+ name     title                             I         J         K         L
+ MYVAR    L[GT=TDAY_TVAR]                  ...       ...       ...       1:11
  
   show grid/t myvar[d=1]
     GRID GKQ1
@@ -87795,8 +88749,6 @@ define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T
  normal    Y
  normal    Z
  TDAY_TVAR TIME                11 i   02-JAN-1981 00:00    11-JAN-1982 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    1
@@ -87817,8 +88769,6 @@ define data/agg/t myagg8 = tmp/tagg_disjoint_T0varying_1.nc, tmp/tagg_disjoint_T
  normal    Y
  normal    Z
  TDAY_TVAR1 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
- normal    E
- normal    F
   plot/line/sym/vlim=0:11 myvar[d=2],myvar[d=1]
  
 ! a few tests of using Ferret string variables to get the names of files
@@ -87826,9 +88776,9 @@ define data/agg/t listAgg1 = {"tmp/tagg_reg_1.nc", "tmp/tagg_reg_2.nc"}
 show data/files listAgg1
      currently SET data sets:
     3> listAgg1  (default)
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20      ...       ...
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:20
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
  
           time-dependent data files:
 01-JAN-1980 00:00 -> 10-JAN-1980 00:00    tmp/tagg_reg_1.nc
@@ -87841,9 +88791,9 @@ define data/agg/t listAgg2 = file_list
 show data/files listAgg2
      currently SET data sets:
     4> listAgg2  (default)
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:90      ...       ...
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:90
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
  
           time-dependent data files:
 01-JAN-1980 00:00 -> 10-JAN-1980 00:00    tmp/tagg_reg_1.nc
@@ -87880,8 +88830,6 @@ show grid/l=1:8 myvar[d=myagg8]
  normal    Y
  normal    Z
  TDAY_TVAR1 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    1
@@ -87899,8 +88847,6 @@ show grid/l=1:8 myvar[d=myagg8_disordered3]
  normal    Y
  normal    Z
  TDAY_TVAR2 TIME               62 i   02-JAN-1981 00:00    11-JAN-1988 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  02-JAN-1981 00:00:00  365        03-JUL-1980 12:00:00    -364
@@ -87933,11 +88879,11 @@ show data/full  MYsing_reg_agg6
     1> MYsing_reg_agg6  (default)
  
      T-aggregation of 6 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:6       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:6
                on grid GMI1 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GMI2 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -87958,8 +88904,6 @@ show grid/t myvar
  normal    Y
  normal    Z
  TDAY1     TIME                 6 r   01-JAN-1980 00:00    06-JAN-1980 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  01-JAN-1980 00:00:00  1          31-DEC-1979 12:00:00    28840
@@ -87995,11 +88939,11 @@ show data/full MYsing_irreg_agg4
     2> MYsing_irreg_agg4  (default)
  
      T-aggregation of 4 netCDF files
- name     title                             I         J         K         L         M         N
- MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:4       ...       ...
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY]/10) + L[GT=TDAY]  ...       ...       ...       1:4
                on grid GMI3 with -1.E+34 for missing data
              
- MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...       ...       ...
+ MYMAP    I[X=0E:0E:5]+ 10*J[Y=80S:80N:5]  1:73      1:33      ...       ...
                on grid GMI4 with -1.E+34 for missing data
              X=2.5W(-2.5):2.5E(362.5)  Y=82.5S:82.5N  
  
@@ -88018,8 +88962,6 @@ show grid/t myvar
  normal    Y
  normal    Z
  TDAY2     TIME                 4 i   01-JAN-1980 00:00    05-JAN-1980 00:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  01-JAN-1980 00:00:00  1          31-DEC-1979 12:00:00    28840
@@ -88086,14 +89028,18 @@ stat/brief TBOXHI[g=myvar[d=MYsing_irreg_agg4]] - TBOXHI[g=myvar[d=MYsing_irreg_
 canc data/all
  
 ! OPeNDAP test
-IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc") EQ 0` THEN
+! (Note: when running pre-true-month Ferret versions, the timestep output from
+! show grid/T below was eliminated by the "clean_draconian" script)
+! 1/17/2017 changes due to backing off auto-detection of truemonth axes, tkt 2497
+ 
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc") EQ 0` THEN
  !-> IF 1 THEN
-   tseries COADS = http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc, http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2013.nc, http://ferret.pmel.noaa.gov/thredds/dodsC/data/ferret/test_coads_monthly_air_2014.nc
+   tseries COADS = http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/ferret/test_coads_monthly_air_2012.nc, http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/ferret/test_coads_monthly_air_2013.nc, http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/ferret/test_coads_monthly_air_2014.nc
 show data COADS
      currently SET data sets:
     1> COADS  (default)
- name     title                             I         J         K         L         M         N
- AIR      Air Temperature Monthly Mean_da  1:180     1:90      ...       1:36      ...       ...
+ name     title                             I         J         K         L
+ AIR      Air Temperature Monthly Mean_da  1:180     1:90      ...       1:36
  
 show grid/T air
     GRID GMW1
@@ -88102,8 +89048,6 @@ show grid/T air
  LAT       LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                36 i   16-JAN-2012 12:00    16-DEC-2014 12:00   full
- normal    E
- normal    F
  
        L     T                   TBOX      TBOXLO                TSTEP (days)
        1>  16-JAN-2012 12:00:00  31         01-JAN-2012 00:00:00    77446.5
@@ -88249,24 +89193,24 @@ show data/brief
     3> tmp/test3.nc  (default)
 canc data/all
  
-IF `test_opendap("http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
  !-> IF 1 THEN
-  use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
+  use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
   show data/brief
      currently SET data sets:
-    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+    1> http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
   canc data/all
-  use http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+  use http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
   show data/brief
      currently SET data sets:
-    1> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+    1> http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
   canc data/all
-  use tmp/test1.nc, "tmp/test2.nc", http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
+  use tmp/test1.nc, "tmp/test2.nc", http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf
   show data/brief
      currently SET data sets:
     1> tmp/test1.nc
     2> tmp/test2.nc
-    3> http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
+    3> http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf  (default)
   canc data/all
 ELSE
 ENDIF
@@ -88534,23 +89478,19 @@ use coads_climatology
 show grid sst[x=240:320,y=0,t=@ave]
     GRID GSQ1
  name       axis              # pts   start                end                 subset
- COADSX    LONGITUDE          180mr   21E                  19E(379)            39 pts
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            40 pts
  COADSY    LATITUDE            90 r   89S                  89N                 1 pt
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        compressed
- normal    E
- normal    F
  
 ! Modulo axes ask for superset
 show grid sst[x=0:540,L=1:15]
     GRID GSQ1
  name       axis              # pts   start                end                 subset
- COADSX    LONGITUDE          180mr   21E                  19E(379)            269 pts
+ COADSX    LONGITUDE          180mr   21E                  19E(379)            270 pts
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        14 pts
- normal    E
- normal    F
+ TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        15 pts
  
 ! Constant: full abstract grid
 show grid 1
@@ -88571,18 +89511,14 @@ show grid {1}
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
 let var = {1,2,4,8}  ! Note that show grid {1,2,4,8} fails: bug
 show grid var
     GRID XABSTRACT
  name       axis              # pts   start                end                 subset
- ABSTRACT  X             99999999 r   1                    1.E+08              3 pts
+ ABSTRACT  X             99999999 r   1                    1.E+08              4 pts
  normal    Y
  normal    Z
  normal    T
- normal    E
- normal    F
  
 ! but don't show any user-var grid info if they just ask for the grid by name
 show grid `sst,return=grid`
@@ -88593,8 +89529,6 @@ show grid `sst,return=grid`
  COADSY    LATITUDE            90 r   89S                  89N
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58
- normal    E
- normal    F
  
 ! grid of last variable loaded
 load sst[x=240,y=@iin,t=@ave]
@@ -88607,8 +89541,6 @@ show grid
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        compressed
- normal    E
- normal    F
  
 ! Result grid is full grid
 let var = sst[L=@ave] - sst[x=@max] - sst[y=0]
@@ -88619,8 +89551,6 @@ show grid var
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! transform on single-point range is equiv. to single-point subset
  
@@ -88633,8 +89563,6 @@ show grid var
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
 set mode/last interpolate
 let var = sst[X=30:30.1 at max]
 show grid var
@@ -88644,8 +89572,6 @@ show grid var
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! dynamic grid
 let var = sst[y=-10:10:.1,l=1,x=160e]
@@ -88653,22 +89579,18 @@ show grid var
     GRID (G002)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX005)   LATITUDE           201 r   10S                  10N                 200 pts
+ (AX005)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
- normal    E
- normal    F
  
 ! striding
 show grid sst[i=1:180:3,j=1:90:2]
     GRID (G003)
  name       axis              # pts   start                end                 subset
- (AX006)   LONGITUDE           60 r   21E                  15E(375)            59 pts
- (AX007)   LATITUDE            45 r   89S                  87N                 44 pts
+ (AX006)   LONGITUDE           60 r   21E                  15E(375)            60 pts
+ (AX007)   LATITUDE            45 r   89S                  87N                 45 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 ! regridding
  
@@ -88681,9 +89603,7 @@ sh grid vwnd_days
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- DAX       TIME              1096 r   01-JAN-1980 00:00    31-DEC-1982 00:00   44 pts
- normal    E
- normal    F
+ DAX       TIME              1096 r   01-JAN-1980 00:00    31-DEC-1982 00:00   45 pts
  
 let vwnd_clim = vwnd[gt=month_irreg at mod]
 sh grid vwnd_clim[L=4:9]
@@ -88692,9 +89612,7 @@ sh grid vwnd_clim[L=4:9]
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
- MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49        5 pts
- normal    E
- normal    F
+ MONTH_IRREG TIME              12mi   16-JAN 12:00         15-DEC 17:49        6 pts
  
 can dat/all
 use coads_climatology
@@ -88709,19 +89627,15 @@ show grid var
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 let var = sst[y=-30:30 at iin]
 show grid var
     GRID GSQ1
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            full
- COADSY    LATITUDE            90 r   89S                  89N                 29 pts
+ COADSY    LATITUDE            90 r   89S                  89N                 30 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
  
 use levitus_3d_subset
 let var = temp[z=@weq:20]
@@ -88732,8 +89646,6 @@ show grid var
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAXLEVITR DEPTH (m)           20 i-  0                    5000                full
  normal    T
- normal    E
- normal    F
  
 let var = temp[z=1:120 at weq:20]
 show grid var
@@ -88741,10 +89653,8 @@ show grid var
  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                6 pts
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                7 pts
  normal    T
- normal    E
- normal    F
  
  
 ! grid-changing functions
@@ -88759,8 +89669,6 @@ show grid depth_rev
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ABSTRACT  Z             99999999 r   1                    1.E+08              (axis from grid-changing func)
  normal    T
- normal    E
- normal    F
  
 DEFINE AXIS/t=1-Jan-1990:31-Dec-1990:24/t0=1-jan-1980 dayt
 let tpts = t[gt=dayt]
@@ -88773,8 +89681,6 @@ show grid ffta(sample_function)
  normal    Y
  normal    Z
  (AX002)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
- normal    E
- normal    F
  
 show grid ffta(sample_function[t=15-jan-1990:15-jun-1990])
     GRID (G003)
@@ -88783,18 +89689,14 @@ show grid ffta(sample_function[t=15-jan-1990:15-jun-1990])
  normal    Y
  normal    Z
  (AX001)   T (CYC/HOURS)       76 r   0.00027412           0.020833            (axis from grid-changing func)
- normal    E
- normal    F
  
 show grid ffta(sample_function + temp[d=levitus_3d_subset,z=0:40])
     GRID (G005)
  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                3 pts
+ ZAXLEVITR DEPTH (m)           20 i-  0                    5000                4 pts
  (AX002)   T (CYC/HOURS)      182 r   0.00011447           0.020833            (axis from grid-changing func)
- normal    E
- normal    F
  
 can dat/all
  
@@ -88813,17 +89715,13 @@ sh grid tempz
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  (AX002)   Z                    5 r   100                  500                 full
  normal    T
- normal    E
- normal    F
 sh grid tempz[z=100:400]
     GRID (G002)
  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                 3 pts
+ (AX002)   Z                    5 r   100                  500                 4 pts
  normal    T
- normal    E
- normal    F
  
 ! and with a grid-changing function thrown in
  
@@ -88843,8 +89741,6 @@ show grid rvtempzax
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
  normal    T
- normal    E
- normal    F
  
 ! gc func: limits are hidden so a subset not seen
  
@@ -88856,8 +89752,6 @@ show grid rvtempzax[z=100:300]
  YAXLEVITR41_42 LATITUDE        2 r   49.5S                48.5S               full
  ZAX       Z (METERS)           5 r   100                  500                 (axis from grid-changing func)
  normal    T
- normal    E
- normal    F
 *** Running ferret script: bn_aggregate_f.jnl
 [?1034h! bn_aggregate_f.F
 ! 12/2015 *sh*
@@ -88984,18 +89878,18 @@ show data/files my_fmrc
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:11
        (L=1:24)
  
-          Aggregated datasets:
-      1 : tmp/fcst_1.nc
-      2 : tmp/fcst_2.nc
-      3 : tmp/fcst_3.nc
-      4 : tmp/fcst_4.nc
-      5 : tmp/fcst_5.nc
-      6 : tmp/fcst_6.nc
-      7 : tmp/fcst_7.nc
-      8 : tmp/fcst_8.nc
-      9 : tmp/fcst_9.nc
-      10: tmp/fcst_10.nc
-      11: tmp/fcst_11.nc
+          Member datasets:
+      12.1 : tmp/fcst_1.nc
+      12.2 : tmp/fcst_2.nc
+      12.3 : tmp/fcst_3.nc
+      12.4 : tmp/fcst_4.nc
+      12.5 : tmp/fcst_5.nc
+      12.6 : tmp/fcst_6.nc
+      12.7 : tmp/fcst_7.nc
+      12.8 : tmp/fcst_8.nc
+      12.9 : tmp/fcst_9.nc
+      12.10: tmp/fcst_10.nc
+      12.11: tmp/fcst_11.nc
 show data/attr my_fmrc
      currently SET data sets:
    12> my_fmrc  (default)  Forecast aggregation
@@ -89241,18 +90135,18 @@ show data/files my_fmrc
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:11
        (L=1:24)
  
-          Aggregated datasets:
-      1 : tmp/fcst_1.nc
-      2 : (dummy)
-      3 : (dummy)
-      4 : tmp/fcst_4.nc
-      5 : tmp/fcst_5.nc
-      6 : tmp/fcst_6.nc
-      7 : tmp/fcst_7.nc
-      8 : tmp/fcst_8.nc
-      9 : (dummy)
-      10: (dummy)
-      11: tmp/fcst_11.nc
+          Member datasets:
+      12.1 : tmp/fcst_1.nc
+      12.2 : (dummy)
+      12.3 : (dummy)
+      12.4 : tmp/fcst_4.nc
+      12.5 : tmp/fcst_5.nc
+      12.6 : tmp/fcst_6.nc
+      12.7 : tmp/fcst_7.nc
+      12.8 : tmp/fcst_8.nc
+      12.9 : (dummy)
+      12.10: (dummy)
+      12.11: tmp/fcst_11.nc
 show data/brief
      currently SET data sets:
     2> tmp/fcst_2.nc
@@ -89280,6 +90174,7 @@ LIST tf_times
  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.
+ 
 GO bn_aggregate_f.sub
 ! bn_aggregate_f.sub
  
@@ -89502,16 +90397,16 @@ show data/files my_fmrc
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:9
        (L=1:36)
  
-          Aggregated datasets:
-      1: tmp/long_fcst_1.nc
-      2: tmp/fcst_2.nc
-      3: tmp/fcst_3.nc
-      4: tmp/fcst_4.nc
-      5: tmp/fcst_5.nc
-      6: tmp/fcst_6.nc
-      7: tmp/fcst_7.nc
-      8: tmp/fcst_8.nc
-      9: tmp/fcst_9.nc
+          Member datasets:
+      10.1: tmp/long_fcst_1.nc
+      10.2: tmp/fcst_2.nc
+      10.3: tmp/fcst_3.nc
+      10.4: tmp/fcst_4.nc
+      10.5: tmp/fcst_5.nc
+      10.6: tmp/fcst_6.nc
+      10.7: tmp/fcst_7.nc
+      10.8: tmp/fcst_8.nc
+      10.9: tmp/fcst_9.nc
 GO bn_aggregate_f.sub
 ! bn_aggregate_f.sub
  
@@ -89712,15 +90607,15 @@ show data/files my_fmrc
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:8
        (L=1:24)
  
-          Aggregated datasets:
-      1: tmp/fcst_1.nc
-      2: tmp/fcst_2.nc
-      3: tmp/fcst_3.nc
-      4: tmp/fcst_4.nc
-      5: tmp/fcst_5.nc
-      6: tmp/long_fcst_6.nc
-      7: tmp/fcst_7.nc
-      8: tmp/fcst_8.nc
+          Member datasets:
+      9.1: tmp/fcst_1.nc
+      9.2: tmp/fcst_2.nc
+      9.3: tmp/fcst_3.nc
+      9.4: tmp/fcst_4.nc
+      9.5: tmp/fcst_5.nc
+      9.6: tmp/long_fcst_6.nc
+      9.7: tmp/fcst_7.nc
+      9.8: tmp/fcst_8.nc
 GO bn_aggregate_f.sub
 ! bn_aggregate_f.sub
  
@@ -89916,12 +90811,12 @@ show data/files
        (L=7:30)
  TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:5
  
-          Aggregated datasets:
-      1: tmp/fcst_3.nc
-      2: tmp/fcst_4.nc
-      3: tmp/fcst_5.nc
-      4: tmp/one_var_fcst_6.nc
-      5: tmp/fcst_7.nc
+          Member datasets:
+      6.1: tmp/fcst_3.nc
+      6.2: tmp/fcst_4.nc
+      6.3: tmp/fcst_5.nc
+      6.4: tmp/one_var_fcst_6.nc
+      6.5: tmp/fcst_7.nc
 stat/l=1:20 fcst
  
              FIELD + FCST_ERROR
@@ -89965,12 +90860,12 @@ show data/full
  
   time range: 15.228 to 715.73
  
-          Aggregated datasets:
-      1: tmp/fcst_3.nc
-      2: tmp/fcst_4.nc
-      3: tmp/fcst_5.nc
-      4: tmp/one_var_fcst_6.nc
-      5: tmp/fcst_7.nc
+          Member datasets:
+      6.1: tmp/fcst_3.nc
+      6.2: tmp/fcst_4.nc
+      6.3: tmp/fcst_5.nc
+      6.4: tmp/one_var_fcst_6.nc
+      6.5: tmp/fcst_7.nc
     7> my_fmrc  (default)  Forecast aggregation
      Forecast series of 5 datasets patterned on fcst_3.nc
  name     title                             I         J         K         L         M         N
@@ -89984,12 +90879,12 @@ show data/full
  
   time range: 15.228 to 715.73
  
-          Aggregated datasets:
-      1: tmp/fcst_3.nc
-      2: tmp/fcst_4.nc
-      3: tmp/fcst_5.nc
-      4: tmp/one_var_fcst_6.nc
-      5: tmp/fcst_7.nc
+          Member datasets:
+      7.1: tmp/fcst_3.nc
+      7.2: tmp/fcst_4.nc
+      7.3: tmp/fcst_5.nc
+      7.4: tmp/one_var_fcst_6.nc
+      7.5: tmp/fcst_7.nc
  
 ! cancel a component dataset -- used in two aggregations
 cancel data tmp/fcst_4.nc
@@ -90030,14 +90925,14 @@ show data/files
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
        (L=1:24)
  
-          Aggregated datasets:
-      1: tmp/fcst_1.nc
-      2: tmp/fcst_2.nc
-      3: tmp/fcst_3.nc
-      4: tmp/fcst_4.nc
-      5: tmp/fcst_5.nc
-      6: tmp/one_var_fcst_6.nc
-      7: tmp/fcst_7.nc
+          Member datasets:
+      9.1: tmp/fcst_1.nc
+      9.2: tmp/fcst_2.nc
+      9.3: tmp/fcst_3.nc
+      9.4: tmp/fcst_4.nc
+      9.5: tmp/fcst_5.nc
+      9.6: tmp/one_var_fcst_6.nc
+      9.7: tmp/fcst_7.nc
    11> my_fmrc_letd_1     Forecast aggregation
  name     title                             I         J         K         L         M         N
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
@@ -90046,14 +90941,14 @@ show data/files
  FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
        (L=1:24)
  
-          Aggregated datasets:
-      1: tmp/one_var_fcst_1.nc
-      2: tmp/fcst_2.nc
-      3: tmp/fcst_3.nc
-      4: tmp/fcst_4.nc
-      5: tmp/fcst_5.nc
-      6: tmp/fcst_6.nc
-      7: tmp/fcst_7.nc
+          Member datasets:
+      11.1: tmp/one_var_fcst_1.nc
+      11.2: tmp/fcst_2.nc
+      11.3: tmp/fcst_3.nc
+      11.4: tmp/fcst_4.nc
+      11.5: tmp/fcst_5.nc
+      11.6: tmp/fcst_6.nc
+      11.7: tmp/fcst_7.nc
    12> my_fmrc  (default)  Forecast aggregation
  name     title                             I         J         K         L         M         N
  FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:7
@@ -90062,14 +90957,14 @@ show data/files
  FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:7
        (L=1:24)
  
-          Aggregated datasets:
-      1: tmp/fcst_1.nc
-      2: tmp/fcst_2.nc
-      3: tmp/fcst_3.nc
-      4: tmp/fcst_4.nc
-      5: tmp/fcst_5.nc
-      6: tmp/fcst_6.nc
-      7: tmp/fcst_7.nc
+          Member datasets:
+      12.1: tmp/fcst_1.nc
+      12.2: tmp/fcst_2.nc
+      12.3: tmp/fcst_3.nc
+      12.4: tmp/fcst_4.nc
+      12.5: tmp/fcst_5.nc
+      12.6: tmp/fcst_6.nc
+      12.7: tmp/fcst_7.nc
 show data
      currently SET data sets:
     9> my_fmrc_letd_6     Forecast aggregation
@@ -90200,6 +91095,7 @@ set mode/last ignore
 [?1034h! 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
  
 ! to avoid re-creating the test files include argument "0" as in
 !  yes?  GO bn_aggregate_tef 0
@@ -90211,7 +91107,7 @@ set mode/last ignore
 ! many time aggregations
 CANCEL MODE VERIFY
  
-show data/files/br
+show data/members/br
      currently SET data sets:
     1> t_f01_e1
           time-dependent data files:
@@ -90558,8 +91454,6 @@ show grid fcst[d=t_f01_e1]
  YAX       LATITUDE            11 r   10N                  20N                 full
  ZAX1      Z (m)                1 r   250                  250                 full
  TRUEMONTH1 TIME               36 i   16-JAN-1950 12:00    16-DEC-1952 12:00   full
- normal    E
- normal    F
 show grid fcst[d=t_f01_e2]
     GRID GFA1
  name       axis              # pts   start                end                 subset
@@ -90567,8 +91461,6 @@ show grid fcst[d=t_f01_e2]
  YAX       LATITUDE            11 r   10N                  20N                 full
  ZAX1      Z (m)                1 r   250                  250                 full
  TRUEMONTH1 TIME               36 i   16-JAN-1950 12:00    16-DEC-1952 12:00   full
- normal    E
- normal    F
  
 ! ======== TEST SET 1:  aggregate E first, then F
  
@@ -90623,12 +91515,12 @@ SHOW DATA/FULL te_f11
  
   time range: 16-JUL-1952 12:00 to 16-JUN-1955 00:00
  
-          Aggregated datasets:
-      1: t_f11_e1
-      2: t_f11_e2
-      3: t_f11_e3
-      4: t_f11_e4
-      5: t_f11_e5
+          Member datasets:
+      67.1: t_f11_e1
+      67.2: t_f11_e2
+      67.3: t_f11_e3
+      67.4: t_f11_e4
+      67.5: t_f11_e5
 SHOW DATA/ATT te_f11   ! notice the promotion of fcst.im_everywhere
      currently SET data sets:
    67> te_f11  (default)  Ensemble aggregation
@@ -90652,7 +91544,7 @@ SHOW DATA/ATT te_f11   ! notice the promotion of fcst.im_everywhere
  
 ! define tef aggregation
 FMRC/HIDE tef = te_f01, te_f02, te_f03, te_f04, te_f05, te_f06, te_f07, te_f08, te_f09, te_f10, te_f11
-SHOW DATA/brief/files
+SHOW DATA/brief/members
      currently SET data sets:
     1> t_f01_e1
           time-dependent data files:
@@ -90691,18 +91583,18 @@ SHOW DATA/brief/files
 16-OCT-1952 12:00 -> 16-SEP-1953 00:00    tmp/f04_e3_t3_1v.nc
  
    68> tef  (default)  Forecast aggregation
-          Aggregated datasets:
-      1 : te_f01
-      2 : te_f02
-      3 : te_f03
-      4 : te_f04
-      5 : te_f05
-      6 : te_f06
-      7 : te_f07
-      8 : te_f08
-      9 : te_f09
-      10: te_f10
-      11: te_f11
+          Member datasets:
+      68.1 : te_f01
+      68.2 : te_f02
+      68.3 : te_f03
+      68.4 : te_f04
+      68.5 : te_f05
+      68.6 : te_f06
+      68.7 : te_f07
+      68.8 : te_f08
+      68.9 : te_f09
+      68.10: te_f10
+      68.11: te_f11
 show data/full tef
      currently SET data sets:
    68> tef  (default)  Forecast aggregation
@@ -90722,18 +91614,18 @@ show data/full tef
  
   time range: 15.214 to 1080.2
  
-          Aggregated datasets:
-      1 : te_f01
-      2 : te_f02
-      3 : te_f03
-      4 : te_f04
-      5 : te_f05
-      6 : te_f06
-      7 : te_f07
-      8 : te_f08
-      9 : te_f09
-      10: te_f10
-      11: te_f11
+          Member datasets:
+      68.1 : te_f01
+      68.2 : te_f02
+      68.3 : te_f03
+      68.4 : te_f04
+      68.5 : te_f05
+      68.6 : te_f06
+      68.7 : te_f07
+      68.8 : te_f08
+      68.9 : te_f09
+      68.10: te_f10
+      68.11: te_f11
  
 ! simplest acess -- compact form -- just demonstrate it doesn't fail
 stat/brief fcst[i=11:12, j=5:6, l=31:32, m=1:2, n=5:6]
@@ -90751,8 +91643,8 @@ shade/x=150E/y=15n diag_fcst[m=1:5 at ave]
 ! difference between the mean and the middle is zero within computational error
 let epsilon = 1 / 2^50   ! 52 mantissa bits in a double
 say using epsilon = `epsilon`
- !-> MESSAGE/CONTINUE using epsilon = 8.8817842E-16
-using epsilon = 8.8817842E-16
+ !-> MESSAGE/CONTINUE using epsilon = 8.881784197001E-16
+using epsilon = 8.881784197001E-16
 let rel_err = (diag_fcst[m=1:5 at ave]-diag_fcst[m=3])/diag_fcst[m=3]
 stat/brief/x=150E/y=15n IF ABS(rel_err) LT epsilon THEN 0.0 ELSE rel_err
  
@@ -90770,7 +91662,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        32   T       PyFERRET V7 (beta/dbg) 17-Jun-16
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
                                  Conventions     CHAR        6    F       CF-1.6
   
 (XAX)                  DOUBLE    units           CHAR        12   T       degrees_east
@@ -91254,7 +92146,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
 use a.nc
 sh att .
      attributes for dataset: ./a.nc
- ..history = PyFERRET V7 (beta/dbg) 17-Jun-16 
+ ..history = PyFerret V7.1 (beta/debug) 18-Apr-17 
  ..Conventions = CF-1.6 
  ..dt_internal = 15
 sh att elev
@@ -91275,7 +92167,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
 use a.nc
 sh att .
      attributes for dataset: ./a.nc
- ..history = PyFERRET V7 (beta/dbg) 17-Jun-16 
+ ..history = PyFerret V7.1 (beta/debug) 18-Apr-17 
  ..Conventions = CF-1.6 
 sh att elev
      attributes for dataset: ./a.nc
@@ -91299,11 +92191,9 @@ show grid
     GRID (G009)
  name       axis              # pts   start                end                 subset
  COADSX    LONGITUDE          180mr   21E                  19E(379)            1 pt
- (AX018)   LATITUDE           201 r   10S                  10N                 200 pts
+ (AX018)   LATITUDE           201 r   10S                  10N                 201 pts
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
- normal    E
- normal    F
  
 ! LIST/DAT=, LET/DAT=,
 can dat/all
@@ -91322,7 +92212,6 @@ list/DAT=3 a
 list/DAT=3 temp.history
              VARIABLE : TEMP.HISTORY
              FILENAME : levitus_climatology.cdf
-             X        : 1
         "From levitus_climatology"
  
 ! PLOT, SHADE, FILL, CONTOUR, VECTOR, STAT
@@ -91332,8 +92221,8 @@ let/DAT=2 temp = sst + 0*z[z=1:5:1]
 sh dat 2
      currently SET data sets:
     2> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
  TEMP[D=coads_climatology] = SST + 0*Z[Z=1:5:1]
  
@@ -91399,9 +92288,9 @@ flow/DAT=2/den=3/L=3 taux,tauy
 [?1034h! bn_speedtest.jnl
 ! issue large numbers of commands, timing with clock time
 can mode verify
-10K LET commands LET a = 0 takes  1.241  seconds
-Second 10K LET commands LET a = 0 takes  2.8  seconds
-5K LOAD with transform takes  3.904  seconds
+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
 *** Running ferret script: bn_show_noupcase.jnl
 [?1034h! bn_show_noupcase.jnl
 ! 1/2016 ticket 1796
@@ -91425,12 +92314,10 @@ show var
 show grid MyUpperLowerCaseVar
     GRID (G001)
  name       axis              # pts   start                end                 subset
- ABSTRACT  X             99999999 r   1                    1.E+08              9 pts
+ ABSTRACT  X             99999999 r   1                    1.E+08              10 pts
  normal    Y
  normal    Z
  tday      TIME                31 r   01-JAN-1999 00:00    31-JAN-1999 00:00   full
- normal    E
- normal    F
  
  
 ! Files have variable and axis names in mixed case.
@@ -91440,14 +92327,14 @@ USE a_cartesian_bug1179.nc
 show data
      currently SET data sets:
     1> ./a1478.nc
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  lat1_5_bnds
-                                           1:2       1:5       ...       ...       ...       ...
- olr      outgoing longwave radiation      1:5       1:5       ...       1:3       ...       ...
+                                           1:2       1:5       ...       ...
+ olr      outgoing longwave radiation      1:5       1:5       ...       1:3
  
     2> ./a_cartesian_bug1179.nc  (default)
- name     title                             I         J         K         L         M         N
- temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
+ name     title                             I         J         K         L
+ temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1
  
  
 ! Previously the RETURN= gave the capitalized axis names
@@ -91481,21 +92368,22 @@ LET/D=2 newvar =  0*zvar[d=2] + olr[d=1]
 show data
      currently SET data sets:
     1> ./a1478.nc
- name     title                             I         J         K         L         M         N
+ name     title                             I         J         K         L
  lat1_5_bnds
-                                           1:2       1:5       ...       ...       ...       ...
- olr      outgoing longwave radiation      1:5       1:5       ...       1:3       ...       ...
+                                           1:2       1:5       ...       ...
+ olr      outgoing longwave radiation      1:5       1:5       ...       1:3
  ------------------------------
  zvar[D=a1478] = 2*TEMP[D=2]
  
     2> ./a_cartesian_bug1179.nc  (default)
- name     title                             I         J         K         L         M         N
- temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1       ...       ...
+ name     title                             I         J         K         L
+ temp     THETA_FO(SALT_EXTRAP,TEMP_EXTRA  1:1       1:1       1:10      1:1
  ------------------------------
  newvar[D=a_cartesian_bug1179] = 0*ZVAR[D=2] + OLR[D=1]
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
  
  
 ! xml output
@@ -92119,12 +93007,12 @@ SHO DATA/VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
-<attribute name="ferret_datatype" type="char">
-   <value><![CDATA[FLOAT]]></value>
-</attribute>
 <attribute name="long_name" type="char">
    <value><![CDATA[TEMP[X=79E:79E at AVE]]]></value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GHU1">
 <axes>
 <yaxis>grid_y_T</yaxis>
@@ -92462,6 +93350,9 @@ SHO VAR/XML
 <attribute name="missing_value" type="float">
    <value>-1.E+34</value>
 </attribute>
+<attribute name="ferret_datatype" type="char">
+   <value><![CDATA[FLOAT]]></value>
+</attribute>
 <grid name="GHU1">
 <axes>
 <xaxis>grid_x_T</xaxis>
@@ -92493,8 +93384,8 @@ let/d=1/title="coads myvar" myvar = 1
 show dat 1
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
  MYVAR[D=coads_climatology] = 1
  
@@ -92557,8 +93448,8 @@ let/d=2/title="Levitus myvar" myvar = 2
 show dat 2
      currently SET data sets:
     2> ./levitus_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:160     1:90      1:1       ...       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:160     1:90      1:1       ...
  ------------------------------
  MYVAR[D=levitus_climatology] = 2
  
@@ -92631,12 +93522,12 @@ cancel var/all
 show dat
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
     2> ./levitus_climatology.cdf
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                      1:160     1:90      1:1       ...       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                      1:160     1:90      1:1       ...
  
  
 show dat/att 2
@@ -92916,6 +93807,27 @@ can dat/all; use a.nc
 list/nohead/norow c.climatology_time_range
  "Multiple time ranges used"
  
+ 
+! The attribute created only for user-defined variables not for an expression
+!
+! Define a monthly axis
+define axis/t=1-feb-1980:1-feb-2003/npoints=276/unit="day"/t0=1-jan-1900 tax
+ 
+let tvar = t[gt=tax]
+let clim1 = tvar[gt=month_irreg at mod]
+save/nobounds/file=a.nc/clobber 3*clim1
+ 
+can dat/all; use a.nc
+ 
+! The variable did not get a climatology_time_range attribute
+let vname = ..varnames
+show att `vname[i=1]`
+ !-> show att E494
+     attributes for dataset: ./a.nc
+ E494.missing_value = -1.E+34
+ E494._FillValue = -1.E+34
+ E494.long_name = 3*CLIM1 
+ 
 *** Running ferret script: bn_plot_along.jnl
 [?1034h! BN_PLOT_ALONG
  
@@ -93005,7 +93917,7 @@ sho command set
  SET
  SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE/QUALITY/ANTIALIA/NOANTIAL
       /ENGINE/COLOR/OPACITY/THICKEN/XPIXELS/YPIXELS/XINCHES/YINCHES/TEXTPROM
-      /OUTLINE
+      /OUTLINE/SCALE
  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
  SET VIEWPORT
  SET EXPRSION
@@ -93028,7 +93940,7 @@ sho command set
 sho command set w  ! SET WINDOW
  SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE/QUALITY/ANTIALIA/NOANTIAL
       /ENGINE/COLOR/OPACITY/THICKEN/XPIXELS/YPIXELS/XINCHES/YINCHES/TEXTPROM
-      /OUTLINE
+      /OUTLINE/SCALE
 sho command set r  ! SET REGION
  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
 sho command set v  ! SET VIEWPORT
@@ -93071,12 +93983,12 @@ sho command sho
  SHOW EXPRSION/ALL
  SHOW LIST/ALL
  SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
-       /HIDDEN
+       /HIDDEN/MEMBERS
  SHOW MODE/ALL
  SHOW MOVIE/ALL
  SHOW VARIABLE/ALL/DATASET/USER/XML/OUTFILE/APPEND/CLOBBER/TREE/LAYERZ/CURVILIN
  SHOW COMMANDS/ALL/BRIEF
- SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+ SHOW MEMORY/ALL/DIAGNOST/TEMPORY/PERMANT/FREE
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
  SHOW VIEWPORT/ALL
  SHOW TRANFORM/ALL
@@ -93100,7 +94012,7 @@ sho command sho l  ! SHOW LIST
  SHOW LIST/ALL
 sho command sho d  ! SHOW DATA
  SHOW DATA/ALL/BRIEF/FULL/VARIABLE/FILES/XML/ATTR/OUTFILE/APPEND/CLOBBER
-       /HIDDEN
+       /HIDDEN/MEMBERS
 sho command sho m  ! SHOW MODE
  SHOW MODE/ALL
 sho command sho mov! SHOW MOVIE
@@ -93110,7 +94022,7 @@ sho command sho v  ! SHOW VARIABLE
 sho command sho c  ! SHOW COMMANDS
  SHOW COMMANDS/ALL/BRIEF
 sho command sho me ! SHOW MEMORY
- SHOW MEMORY/ALL/TEMPORY/PERMANT/FREE
+ SHOW MEMORY/ALL/DIAGNOST/TEMPORY/PERMANT/FREE
 sho command sho g  ! SHOW GRID
  SHOW GRID/ALL/I/J/K/L/M/N/X/Y/Z/T/E/F/DYNAMIC/XML/OUTFILE/APPEND/CLOBBER
 sho command sho vi ! SHOW VIEWPORT
@@ -93195,13 +94107,13 @@ sho command def
  DEFINE GRID/X/Y/Z/T/E/F/FILE/LIKE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+         /EDGES/CALENDAR/BOUNDS/QUIET/MONTHLY/LIKE
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
  DEFINE ALIAS
  DEFINE SYMBOL
  DEFINE ATTRIBUT/DATASET/TYPE/OUTPUT/QUIET
  DEFINE PYFUNC/NAME
- DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE/U
  DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
 sho command def r  ! DEFINE REGION
  DEFINE REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DEFAULT/DX/DY/DZ/DT/DE/DF/DI/DJ/DK
@@ -93212,7 +94124,7 @@ sho command def v  ! DEFINE VARIABLE
  DEFINE VARIABLE/TITLE/UNITS/QUIET/DATASET/BAD/REMOTE
 sho command def a  ! DEFINE AXIS
  DEFINE AXIS/X/Y/Z/T/E/F/FILE/UNITS/T0/NAME/FROMDATA/DEPTH/MODULO/NPOINTS
-         /EDGES/CALENDAR/BOUNDS/QUIET/LIKE
+         /EDGES/CALENDAR/BOUNDS/QUIET/MONTHLY/LIKE
 sho command def vi ! DEFINE VIEWPORT
  DEFINE VIEWPORT/TEXT/XLIMITS/YLIMITS/SIZE/ORIGIN/CLIP/AXES
 sho command def al ! DEFINE ALIAS
@@ -93224,7 +94136,7 @@ sho command def at ! DEFINE ATTRIBUTE
 sho command def P  ! DEFINE PYFUNC
  DEFINE PYFUNC/NAME
 sho command def d  ! DEFINE DATA
- DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE
+ DEFINE DATA/AGGREGAT/T/E/F/TITLE/QUIET/HIDE/U
 sho command def an ! DEFINE ANNOTATE
  DEFINE ANNOTATI/USER/NORM/NOUSER/XPOS/YPOS/HALIGN/VALIGN/ANGLE/SIZE/NLAB
  
@@ -93394,14 +94306,16 @@ sho command/brief sp
 sho command/brief st
  STAT
 sho command/brief u
- USER
+ Not a recognized command: u
+ 
+ Use SHOW ALIAS to see alternative command names
 sho command/brief v
  VECTOR
  
  
 ! All the commands, no subcommands, no qualifiers
 SHOW COMMAND/BRIEF
- Commands in Program PyFERRET (beta/dbg) version7:
+ Commands in Program PyFerret (beta/debug) version7.1:
  SET
  SHOW
  CANCEL
@@ -93421,7 +94335,6 @@ SHOW COMMAND/BRIEF
  STAT
  SHADE
  SPAWN
- USER
  WIRE
  QUERY
  IF
@@ -93556,6 +94469,7 @@ PLOT/SKIP=($deci)/ALONG=t ens_sin_block[i=1,j=2,k=3]
 ! 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.
 ! (later make this the default setting??)
+! acm* 3/17 check the URL with TEST_OPENDAP befor trying to open it.
  
 set mode calendar:auto
 show mode calendar
@@ -93662,12 +94576,16 @@ shade/title="hours "/l=3/k=1/x=60:70/y=-40:-30 ttim; sh sym  lab($labnum_t)
 LAB2 = "TIME : 01-JAN-2001 12:00"
  
 ! Reynolds SST weekly, even 7-day spacing
-use http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc
+ 
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc") NE 0` THEN EXIT/SCRIPT
+ !-> IF 0 THEN EXIT/SCRIPT
+ 
+use http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc
 list/x=180/y=0/l=20:25 fsst
              VARIABLE : Filtered Weekly SST Means (deg C)
              DATA SET : Reynolds Optimum Interpolation Weekly SST Analysis
              FILENAME : reynolds_sst_wk.nc
-             FILEPATH : http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
+             FILEPATH : http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/
              SUBSET   : 6 points (TIME)
              LONGITUDE: 179.5E
              LATITUDE : 0.5S
@@ -93795,315 +94713,7649 @@ list/nohead ..coordnames
  1   / 1:"XAX"    
  2   / 2:"ZAX"    
  3   / 3:"XAX1_10"
-*** Running ferret script: bn_gif.jnl
-[?1034h! 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*
+*** Running ferret script: bn710_bug_fixes.jnl
+[?1034h! bn710_bug_fixes.jnl
+! test various fixes that went into version 7.1
+! 6/16 *acm*
+!
  
+! Bug 2445 missing or repeated coords when axis marked as regular
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_reg_axis_check
+! err700_reg_axis_check.jnl
+! Ticket 2445: regular axis, test for valid line_delta
+! ACM 7/6/2016
  
-can mode logo
+use bug2445.nc
+show data
+     currently SET data sets:
+    1> ./bug2445.nc  (default)
+ name     title                             I         J         K         L
+ XAX                                       1:5       ...       ...       ...
+       (invalid coordinate axis)
+ YAX                                       ...       1:3       ...       ...
+       (invalid coordinate axis)
+ XX       X[GX=xax]                        1:5       ...       ...       ...
+ YY       Y var                            ...       1:3       ...       ...
  
-! define a 6 viewport window (modified definitions 11/92)
-def view/xlim=0,.333/ylim=0,.5    ll6
-def view/xlim=0,.333/ylim=.5,1    ul6
-def view/xlim=.333,.666/ylim=0,.5 lm6
-def view/xlim=.333,.666/ylim=.5,1 um6
-def view/xlim=.666,1/ylim=0,.5    lr6
-def view/xlim=.666,1/ylim=.5,1    ur6
-show view
  
- name             text    xlimits     ylimits    mode
+! Repeated coordinates in first 2 coordinates of x axis.
+list xx
+             VARIABLE : X[GX=xax]
+             FILENAME : bug2445.nc
+             SUBSET   : 5 points (X)
+ 1   / 1:  1.000
+ 2   / 2:  2.000
+ 3   / 3:  3.000
+ 4   / 4:  4.000
+ 5   / 5:  5.000
+list xax
+             VARIABLE : XAX
+                        invalid coordinate axis
+             FILENAME : bug2445.nc
+             SUBSET   : 5 points (X)
+ 1   / 1:  1.000
+ 2   / 2:  1.000
+ 3   / 3:  1.000
+ 4   / 4:  1.000
+ 5   / 5:  1.000
+ 
+! Missing coordinate in first 2 coordinates of y axis.
+! Coordinate data cannot be missing.
+list yy
+             VARIABLE : Y var
+             FILENAME : bug2445.nc
+             SUBSET   : 3 points (Y)
+ 1   / 1:  10.00
+ 2   / 2:  20.00
+ 3   / 3:  30.00
+list yax
+             VARIABLE : YAX
+                        invalid coordinate axis
+             FILENAME : bug2445.nc
+             SUBSET   : 3 points (Y)
+ 1   / 1:  1.000E+00
+ 2   / 2:  9.969E+36
+ 3   / 3:  1.000E+00
  
- UPPER            1.00   0.00,1.00   0.50,1.00   edges
- LOWER            1.00   0.00,1.00   0.00,0.50   edges
- RIGHT            1.00   0.50,1.00   0.00,1.00   edges
- LEFT             1.00   0.00,0.50   0.00,1.00   edges
- LL               0.50   0.00,0.50   0.00,0.50   edges
- LR               0.50   0.50,1.00   0.00,0.50   edges
- UL               0.50   0.00,0.50   0.50,1.00   edges
- UR               0.50   0.50,1.00   0.50,1.00   edges
- FULL             1.00   0.00,1.00   0.00,1.00   edges
- LL6              0.41   0.00,0.33   0.00,0.50   edges
- UL6              0.41   0.00,0.33   0.50,1.00   edges
- LM6              0.41   0.33,0.67   0.00,0.50   edges
- UM6              0.41   0.33,0.67   0.50,1.00   edges
- LR6              0.41   0.67,1.00   0.00,0.50   edges
- UR6              0.41   0.67,1.00   0.50,1.00   edges
-   current viewport is NONE
+! Bug 2446 include script name on warning about unclosed IF block
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_unclosed_if
+! err71_unclosed_if.jnl
+! Ticket 2446
+! Add the script name when reporting an unclosed IF block
+! ACM 7/2016
  
-! some variables for plotting
-let a = 0.8*sin(l/10)
-let b = 0.6*cos(l/10)
-let c = sin(100/(l+k))
-let d = l/50
-let e = k-(l/25)
-let f = -.5+(l/125)
-let g = (l-25)/(k*35)
-let h = 0.1
-let m = 0.2
+go unclosed_if.sub
  
-! illegal plot commands
-set mode ignore
-plot/i=1:10/j=1:20/nolabel i+j			! not a line
-plot/i=1:10/j=1:20/nolabel i,i+j		! not a line
-plot/i=1:10/j=1:20/nolabel i+j,i		! not a line
-plot/i=1:10/j=1:20/nolabel j,i			! differing axes
-plot/i=1:10/j=1:20/vs/line/nolabel j,i		! unequal lengths
-contour/i=1:10/j=1:20/nolabel i			! only 1 D
-contour/i=1:10/j=1:20/nolabel i/j,j/i		! multiple fields
-vector/i=1:10/j=1:20/nolabel i/j		! only 1 field
-vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j	! 3 fields
-set mode/last ignore
+let a = 1
+if `a eq 1` THEN
+ !-> if 1 THEN
+SAY YES
+YES
+let b = 1
  
-! notice the default window size is 10.2,width x 8.8,height
-ppl list plot
-         WIDTH=   10.20  HEIGHT=    8.80  TKTYPE=    0  BAUD=  110
-         WINDOW= ON   BOX= OFF  CROSS= 0  PLTYPE=  3
-         PLOT MODE=   A
-         PLOT FILE= ferret.png                                                                                                                                                                                                                                                                                                                                                                                                                                                                               [...]
  
-! enlarge it to accomodate an additional 50% width
-! ppl size 15.3,8.8
-! in PyFerret must use SET WINDOW
-set win /xinch=15.3 /yinch=8.8
+! Bug 2446 inheriting attributes
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_inherit_all
+! err700_inherit_all.jnl
+! Ticket 2447: If all attributes are inherited, missing-value flags
+! are wrong.
+ 
+! This non-standardfile has no missing-value attributes.
+use no_miss_att.nc
+sh att a
+     attributes for dataset: ./no_miss_att.nc
+ A.min_value = 1
+ A.max_value = 3
+ A.long_name = {1,2,3} 
+ 
+! Define a variable, using some missing-value flag
+let/bad=9999 b = if a ne 2 then a else 9999
+list b
+             VARIABLE : IF A NE 2 THEN A ELSE 9999
+             FILENAME : no_miss_att.nc
+             SUBSET   : 3 points (X)
+ 1   / 1:  1.000
+ 2   / 2:   ....
+ 3   / 3:  3.000
  
-! turn on metafile (enabled 10/29/91)
-! commented out 9/97 - instead set in bn450_all.jnl
-! set mode metafile
+! Now inherit the attributes from variable a.
+set att/like=a b
+show att b
+     attributes for user-defined variables
+ b.missing_value = 9999
+ b.min_value = 1
+ b.max_value = 3
+ b.long_name = {1,2,3} 
  
-! draw a plot into a viewport - to be deleted (check hard copy)
-set view ll6
-contour/i=1:50/j=1:50/nolabel i/(j+20)
+! The missing-value flag is not written, but the value 9999 is
+save/file=a.nc/clobber b
  
-! 4 frames testing PLOT output
-set view ul6
-plot/l=1:50/k=1/trans/nolabel a,b,c
-plot/l=1:50/k=1/trans/over/line=6/nolabel d
-plot/l=1:50/k=1/trans/over/symbol=88/nolabel e
-plot/l=1:50/k=1/trans/over/symbol=47/line/nolabel f
-def view/xlim=.333,1/ylim=0,.5 lm6   ! redefine longer in x (11/92)
-set view lm6
-!ppl axlen 16
-set region/k=1
-plot/l=1:50/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
-def view/xlim=.333,1/ylim=.5,1 um6    ! redefine it longer in x (11/92)
-set view um6
-!ppl axlen 17,5
-plot/l=1:50/nolabel sin(100/(l+5))
-plot/l=1:50/over/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
-set view ll6
-!ppl axlen 8,6
-plot/l=1:99000/nolabel sin(200000/(l+10000))
+can var/all
+use a
  
-! reset to normal axis lengths and prepare for a new piccie
-!ppl axlen 8
-frame/file=bnplot_1.gif
-set wind/clear
+! Element 2 should be missing. Previously lists out the 9999.
+list b
+             VARIABLE : {1,2,3}
+             FILENAME : a.nc
+             SUBSET   : 3 points (X)
+ 1   / 1:  1.000
+ 2   / 2:   ....
+ 3   / 3:  3.000
  
-! draw six frames
-set view ll6
-contour/i=1:50/j=1:50/levels=(0,2.5,.25)/nolabel i/(j+20)
-plot/over/nolab/vs/line/i=1:50/j=1:50/nolabel 6*i/j,5*j/i
-set view ul6
-vector/i=1:50/j=1:50/length=50/aspect/nolabel sin(i/20)*10+j-20,-1*cos(j/10)*10+i-20
-def view/xlim=.333,.666/ylim=0,.5 lm6  ! redefine it (11/92)
-set view lm6
-shade/i=1:50/j=1:50/nolabel i/(j+20)
-set view lr6
-ppl lev () (0,2.5,.1)
-shade/i=1:50/j=1:50/line/level/nolabel i/(j+20)
-set view ur6
-let icomp = (sin(i/20)*10+j-20)
-let jcomp = (-1*cos(j/10)*10+i-20)
-contour/i=1:50/j=1:50/nolabel icomp^2+jcomp^2
-contour/i=1:50/j=1:50/over/level/nolabel icomp^2+(-1*cos(i/10)*80)^2
-! note: "i-i" and "j-j" are needed to create 2D structures
-vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
-vector/i=1:50/j=1:50/overlay/length/nolabel i-20+(j-j),40-j+(i-i)
-def view/xlim=.333,.666/ylim=.5,1 um6    ! redefine it (11/92)
-set view um6
-shade/i=1:50/j=1:50/nolabel i/(j+20)
-contour/i=1:50/j=1:50/over/nolabel (sin(i/20)+j-20)^2+(-1*cos(j/10)+i-20)^2
-vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
-frame/file=bnplot_2.gif
-! additions for version 3.01 "/TITLE=" controls
-cancel viewports
-set view ul6
-plot/title="My Custom Title"/i=1:100/nolabel sin(i/6)
-plot/title="My Custom Key"/i=1:100/over/nolabel sin(i/5)
-set view um6
-plot/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9)
-plot/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-set view ur6
-plot/vs/line/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9)
-plot/vs/line/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-set view ll6
-plot/vs/line/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
-plot/vs/line/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-set view lm6
-contour/i=1:20/j=1:20/title="My Contour Title"/nolabel sin(i/3)*cos(j/4)
-contour/over/i=5:30/j=5:30/title="My Contour Overlay"/nolabel sin(i/2)*cos(j/3)
-set view lr6
-wire/view=0,0,2/i=1:20/j=1:20/title="My Egg Carton"/nolabel sin(i/3)*cos(j/4)
  
-! addition for 3.20 showing changed default behavior of plot/vs
-! return to window and redraw with symbols
-set view ll6
-plot/vs/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
-plot/vs/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
-frame/file=bnplot_3.gif
+! Bug 2458  Subspan modulo grids and SAMPLEXY
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_samplexy_subspan_modulo
+! err700_samplexy_subspan_modulo.jnl
+! 7/29/2016 ACM
+! Ticket 2458. the result of SAMPLEXY wrong when it needs
+! to do a modulo operation on a subspan modulo axis
  
-! Prior to v5.8 could not get the window size in pixels when in gif mode
-show symbol ppl$xpixel
-PPL$XPIXEL = "1468"
-show symbol ppl$ypixel
-PPL$YPIXEL = "844"
+! Define a grid with a subspan longitude axis
  
-! V6.13
-! transparency with FRAME/TRANS
-!!
-! These gif images have the background color white or black
-! replaced by transparent color. This can be tested by putting
-! them into an HTML document with a colored background.
-! e.g. a file called test_transparent.html containing only this line:
-! <html> <body bgcolor="orange"> <img src="testfile.gif"/> </body> </html>
+define axis/x=-100:-60:5/units=degrees_east xaxis
+define axis/y=18:30:2/units=degrees_north yaxis
+let var = x[gx=xaxis]+100 + 0.3*y[gy=yaxis]
  
-can view
-use coads_climatology
-shade/nokey/lev=50 sst[L=1]
-frame/trans/file=testbackground.gif
+save/clobber/file=a.nc var
+can var/all; use a
  
-! moved here from bn500_bug_fixes.jnl. The frame/  command it contains
-! has trouble when running the benchmarks from remote desktop
-go bn_reset
-cancel mode verify
-go err491_long_gif_name
-! err491_long_gif_name.jnl
-! *sh* 4/99 - test 175 character gif name
+list/y=22 var
+             VARIABLE : X[GX=XAXIS]+100 + 0.3*Y[GY=YAXIS]
+             FILENAME : a.nc
+             SUBSET   : 9 points (LONGITUDE)
+             LATITUDE : 22N
+                22N   
+                 3
+ 100W    / 1:   6.60
+ 95W     / 2:  11.60
+ 90W     / 3:  16.60
+ 85W     / 4:  21.60
+ 80W     / 5:  26.60
+ 75W     / 6:  31.60
+ 70W     / 7:  36.60
+ 65W     / 8:  41.60
+ 60W     / 9:  46.60
+list samplexy(var, {-80,80}, {22,22})
+             VARIABLE : SAMPLEXY(VAR, {-80,80}, {22,22})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60
+ 2   / 2:   ....
  
-! name length extended with changes to save_frame.F and xeq_frame.F
+list samplexy(var, -80, 22)       ! this is ok, in the native range of the axis
+             VARIABLE : SAMPLEXY(VAR, -80, 22)
+             FILENAME : a.nc
+             X        : 1
+          26.60
+list samplexy(var, `360-80`, 22)  ! this was wrong
+ !-> list samplexy(var, 280, 22)
+             VARIABLE : SAMPLEXY(VAR, 280, 22)
+             FILENAME : a.nc
+             X        : 1
+          26.60
+list samplexy_closest(var, `360-80`, 22)  ! is ok
+ !-> list samplexy_closest(var, 280, 22)
+             VARIABLE : SAMPLEXY_CLOSEST(VAR, 280, 22)
+             FILENAME : a.nc
+             X        : 1
+          26.60
  
-set wind/siz=0.03
-go ptest
-! Description: create a simple test line plot
+! Looking for a point that is not, even in a modulo sense, in the subpsan axis
  
-! spirograph picture ...
-PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
+list samplexy(var, {-80,80}, {22,22})
+             VARIABLE : SAMPLEXY(VAR, {-80,80}, {22,22})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60
+ 2   / 2:   ....
+list samplexy(var, {`360-80`,80}, {22,22})
+ !-> list samplexy(var, {280,80}, {22,22})
+             VARIABLE : SAMPLEXY(VAR, {280,80}, {22,22})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60
+ 2   / 2:   ....
+list samplexy_closest(var, {`360-80`,80}, {22,22})
+ !-> list samplexy_closest(var, {280,80}, {22,22})
+             VARIABLE : SAMPLEXY_CLOSEST(VAR, {280,80}, {22,22})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60
+ 2   / 2:   ....
  
+! interpolation between grid points
  
-sp rm -f abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy*
+cancel mode interpolate
+list/y=21.2/x=277.7 var
+             VARIABLE : X[GX=XAXIS]+100 + 0.3*Y[GY=YAXIS]
+             FILENAME : a.nc
+             LONGITUDE: 80W
+             LATITUDE : 22N
+          26.60
+set mode interpolate; list/y=21.2/x=277.7 var; cancel mode interpolate
+             VARIABLE : X[GX=XAXIS]+100 + 0.3*Y[GY=YAXIS]
+             FILENAME : a.nc
+             LONGITUDE: 82.3W (interpolated)
+             LATITUDE : 21.2N (interpolated)
+          24.06
  
-frame/file="abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.gif"
+! These should match the MODE INTERPOLATE result (the second was wrong).
  
-spawn ls abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy*
-abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.png
+list samplexy(var, {-82.3,82.3}, {21.2,21.2})
+             VARIABLE : SAMPLEXY(VAR, {-82.3,82.3}, {21.2,21.2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  24.06
+ 2   / 2:   ....
+list samplexy(var, {`360-82.3`,82.3}, {21.2,21.2})
+ !-> list samplexy(var, {277.7,82.3}, {21.2,21.2})
+             VARIABLE : SAMPLEXY(VAR, {277.7,82.3}, {21.2,21.2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  24.06
+ 2   / 2:   ....
  
+! this should match the non-MODE INTERPOLATE result
+list samplexy_closest(var, {`360-82.3`,82.3}, {21.2,21.2})
+ !-> list samplexy_closest(var, {277.7,82.3}, {21.2,21.2})
+             VARIABLE : SAMPLEXY_CLOSEST(VAR, {277.7,82.3}, {21.2,21.2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60
+ 2   / 2:   ....
  
-! The fix for bug 1396
-set v ul; plot/dash x[gx=0:20:.5]
-set v ur; plot/dash x[gx=0:20:.1]
-set v ll; plot/dash x[gx=0:20:.05]
-set v lr; plot/dash x[gx=0:20:.01]
-frame/file=gif_dashbug.gif
+can dat/all
  
-! Restore size
-set win/siz=1/asp=1
+! Test samplexyt functions
  
-! New benchmark gif outputs in v6.97
+define axis/t=1:5:1 tax
+let vart = x[gx=xaxis]+100 + 0.3*y[gy=yaxis] + 0*t[gt=tax]
+save/clobber/file=a.nc vart
+can var/all; use a
+ 
+list vart[x=-80,y=21,t=2]
+             VARIABLE : X[GX=XAXIS]+100 + 0.3*Y[GY=YAXIS] + 0*T[GT=TAX]
+             FILENAME : a.nc
+             LONGITUDE: 80W(-80)
+             LATITUDE : 20N
+             T        : 2
+          26.00
+list samplexyt(vart, {-82.3,82.3}, {21.2,21.2}, {2,2})
+             VARIABLE : SAMPLEXYT(VART, {-82.3,82.3}, {21.2,21.2}, {2,2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  24.06
+ 2   / 2:   ....
+list samplexyt(vart, {`360-82.3`,82.3}, {21.2,21.2}, {2,2})
+ !-> list samplexyt(vart, {277.7,82.3}, {21.2,21.2}, {2,2})
+             VARIABLE : SAMPLEXYT(VART, {277.7,82.3}, {21.2,21.2}, {2,2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  24.06
+ 2   / 2:   ....
+list samplexyt_nrst(vart, {`360-82.3`,82.3}, {21.2,21.2}, {2,2})
+ !-> list samplexyt_nrst(vart, {277.7,82.3}, {21.2,21.2}, {2,2})
+             VARIABLE : SAMPLEXYT_NRST(VART, {277.7,82.3}, {21.2,21.2}, {2,2})
+             FILENAME : a.nc
+             SUBSET   : 2 points (X)
+ 1   / 1:  26.60
+ 2   / 2:   ....
+ 
+! Full-span modulo grid is ok
+ 
+use coads_climatology
+list/l=1/x=-80/y=22 sst
+             VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+             FILENAME : coads_climatology.cdf
+             LONGITUDE: 81W(-81)
+             LATITUDE : 21N
+             TIME     : 16-JAN 06:00
+          26.59
+list samplexy(sst[l=1], -80, 22)
+             VARIABLE : SAMPLEXY(SST[L=1], -80, 22)
+             FILENAME : coads_climatology.cdf
+             X        : 1
+             TIME     : 16-JAN 06:00
+          26.04
+list samplexy(sst[l=1], `360-80`, 22)
+ !-> list samplexy(sst[l=1], 280, 22)
+             VARIABLE : SAMPLEXY(SST[L=1], 280, 22)
+             FILENAME : coads_climatology.cdf
+             X        : 1
+             TIME     : 16-JAN 06:00
+          26.04
+list samplexy_closest(sst[l=1], `360-80`, 22)
+ !-> list samplexy_closest(sst[l=1], 280, 22)
+             VARIABLE : SAMPLEXY_CLOSEST(SST[L=1], 280, 22)
+             FILENAME : coads_climatology.cdf
+             X        : 1
+             TIME     : 16-JAN 06:00
+          26.59
+ 
+list samplexyt(sst, -80, 22, `t[gt=sst,l=1]`)
+ !-> list samplexyt(sst, -80, 22, 366)
+             VARIABLE : SAMPLEXYT(SST, -80, 22, 366)
+             FILENAME : coads_climatology.cdf
+             X        : 1
+          26.04
+ 
+ 
+! Bug 2463  SHADE/LEVELS and single-color data
 go bn_reset
 cancel mode verify
-GO bn_hovmuller_overlays
-! bn_hovmuller_overlays.jnl
-! Previously a time series plot overlaid oon a Hovmuller plot did not
-! work unless the time axis of the original data had units of hours.
-! See ticket 2344
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_levels_one_level
+! err700_levels_one_level.jnl
+! Ticket 2436. If the data has just one value, then shade it with
+! the correct color taken from the /LEVELS and /PALETTE settings
  
-! 1/6/2016 ACM
+use coads_climatology
+set view ul
+shade/l=1/lev=(0,30,5)  sst
  
-! run this in the gif benchmarks.
+! These single-valued expressions should get the correct color from the color bar
  
+set view ur
+shade/l=1/lev=(0,30,5)  if sst gt 25 and sst le 30 then 28
+set view ll
+shade/l=1/lev=(0,30,5)  if sst gt 15 and sst le 20 then 18
+set view lr
+shade/l=1/lev=(0,30,5)  if sst gt  0 and sst le  5 then  3
+frame /file=levels_one_level.gif
+can view
  
-def view/xlim=0,.333/ylim=.5,1    ul6
-def view/xlim=.333,.666/ylim=.5,1 um6
-def view/xlim=.666,1/ylim=.5,1    ur6
-def view/xlim=0,.333/ylim=0,.5    ll6
-def view/xlim=.333,1/ylim=0,.5    lr6
+! Bug xxxx  Only examine key labels that are actually going to be printed
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_key
+use coads_climatology
+set window/aspect=0.7 1
+shade/levels="(-inf)(0,1.3,0.025)(inf)"/key=continuous/set_up sst[t=@ave]*5e-2
+ppl shakey 1, 1, 0.12, 4, -1, 4
+ppl shade
+frame /file=err700_key.gif
  
-! The example from the FAQ, "Overlaying a time series on a 2D plot"
-set view ul6
+! Bug 2468 Symbol AX_HORIZ corrupted by an overlay
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_ax_horiz
+! err700_ax_horiz.jnl
+! 8/30/2016 *acm* Ticket 2468
+! Symbol axis_horiz was corrupted by overlaying a
+! set of points using a list in other than the same
+! direction as the axis.
  
-! Define a 2D field in YT with a time axis in units of DAYS
-DEFINE AXIS/T="1-JAN-1980":"1-JAN-1990":5/UNITS=DAYS tdays
-DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
+use coads_climatology
+shade/l=1/pal=grayscale/x=100:140/y=-10:30 sst
  
-LET/TITLE=XY my_var = 10*cos(T[gt=tdays]/2000)*EXP((-1)*y[gy=yax]/20)
+let xpts={111,115,120,129}
+let ypts = {-5,10,20,23}
  
-! make a Hovmoller plot
  
-SHADE my_var
+! this is ok; ax_horiz = X, ax_vert = y
+plot/vs/oversym/color=red/thick/siz=0.2 xpts,ypts
+sh sym ax*
+AX_HORIZ = "X"
+AX_VERT = "Y"
  
-! This did not work previously.  Needed to re-define the axis in units of hours
-PLOT/OVER my_var[Y=@loc:-4]
+! Now overlay points whose grid is in the E direction
  
+let expts = esequence(xpts)
+let eypts = esequence(ypts)
+shade/l=1/pal=grayscale/x=100:140/y=-10:30 sst
+plot/vs/oversym/color=red/thick/siz=0.2 expts,eypts
  
-! XT variable
-set view um6
+! this was incorrect, ax_horiz had changed to E
+sh sym ax*
+AX_HORIZ = "X"
+AX_VERT = "Y"
  
-DEFINE AXIS/X=0:40E:1/UNITS=DEGREES xax
-LET/TITLE="XT" my_var = 10*cos(T[gt=tdays]/20)*EXP((-1)*x[gx=xax]/20)
-SHADE/t=1-jan-1987:1-jan-1989 my_var
-PLOT/OVER/TRANS/THICK my_var[x=@loc:-4]
+! Bug 2470 Symbol LEV_DEL incorrect on a LEV=(lo,hi,delta)
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_lev_del_symb
+! err700_lev_del_symb.jnl
+! 9/9/2016
+! Ticket 2470: Symbol LEV_DEL was erroneously marked as Irregular
+! Also, the symbols LEV_MIN and LEV_MAX are changed to say open-ended
+! when (-inf), (inf) or /lev=v is used.
  
+use coads_climatology
  
-! Irregular time axis
-set view ur6
  
-DEFINE AXIS/T0=1-jan-2001/UNITS=DAYS tdays = {1,2,4,5,6,8,9,10,12,30,35,41,42,44,45,46,48,49,50,58}
-DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
-LET my_var = 10*cos(T[gt=tdays])*EXP((-1)*y[gy=yax]/8)
+! LEV_DEL should be regular
+shade/lev=(16.4,24.4,0.4) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(16.4,24.4,0.4)"
+LEV_MIN = "16.4"
+LEV_MAX = "24.4"
+LEV_NUM = "20"
+LEV_DEL = "0.4"
  
-FILL/title="irregular t" my_var
-PLOT/OVER/thick/y=8 my_var+10
+shade/lev=(16)(16.4)(16.8)(17.2)(17.6) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(16)(16.4)(16.8)(17.2)(17.6)"
+LEV_MIN = "16"
+LEV_MAX = "17.6"
+LEV_NUM = "4"
+LEV_DEL = "0.4"
  
+shade/lev=(22) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(22)"
+LEV_MIN = "22"
+LEV_MAX = "22"
+LEV_NUM = "1"
+LEV_DEL = "none"
  
-! Like the dataset example from the FAQ
-set view ll6
+! LEV_DEL should be irregular
  
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
-set region/x=40w/y=10n:60n/t=15-jan-1982:15-dec-1983
-shade sst
-plot/over/thick/TITLE="at 20"  sst[y=@LOC:20]
+shade/lev=(16.4,24.4,0.4)(inf) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(16.4,24.4,0.4)(INF)"
+LEV_MIN = "16.4"
+LEV_MAX = "open-ended"
+LEV_NUM = "21"
+LEV_DEL = "irregular"
  
-can data/all
-can region
+shade/lev=20v sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "20V"
+LEV_MIN = "open-ended"
+LEV_MAX = "open-ended"
+LEV_NUM = "19"
+LEV_DEL = "irregular"
+LEV_OPNLEVS = "(-inf)(16,19.1,1.05)(19.5,26,0.5)(25.7,25.7,1.05)(inf)"
  
-! vector plots with a time series
-set view lr6
+shade/lev=(16.4,24.4,0.4)(24.4,28.1,0.1) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(16.4,24.4,0.4)(24.4,28.1,0.1)"
+LEV_MIN = "16.4"
+LEV_MAX = "28.1"
+LEV_NUM = "57"
+LEV_DEL = "irregular"
  
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf"
-use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_vwnd.cdf"
+shade/lev=(5)(16.4,24.4,0.4) sst[L=1,x=290:330,y=10:40]
+show sym lev*
+LEV_TEXT = "(5)(16.4,24.4,0.4)"
+LEV_MIN = "5"
+LEV_MAX = "24.4"
+LEV_NUM = "21"
+LEV_DEL = "irregular"
  
-vec/x=0/y=-10:10/t=1-jan-1980:1-jan-1990 uwnd[d=1], vwnd[d=2]
+! Bug 2466 Graticule lines too dense on time plots
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_timegrat
+!err700_timegrat.jnl
+! 22-sep-2016 *acm*
+! See ticket 2466, too many graticule lines on axis with short time axis.
  
-let wspd = (uwnd[d=1]*uwnd[d=1] + vwnd[d=2]*vwnd[d=2])^0.5
-plot/over/color=red/thick/x=0/t=1-jan-1980:1-jan-1990 wspd[y=-10:10 at ave]
+define axis/t="22-aug-2016:12":"23-aug-2016:18":6/units=hours tax
+define axis/z=0:50:2/depth/units=m zax
+let ztvar = sin(L[Gt=tax]/20) + z[gz=zax]
  
-FRAME/FILE=bn_hovmuller_overlays.pdf
+set view upper; shade/grat ztvar
+set view lower; plot/grat=(color=light_blue)/z=20 ztvar
  
+can view
+set view left; shade/trans/grat ztvar
+set view right; plot/trans/grat=(color=light_blue)/z=20 ztvar
  
-Go bn_reset
-cancel mode verify
-GO bn_labels_on_taxis
-! bn_labels_on_taxis.jnl
-! tests of labels and overlays on time axes
+! Axis of few days, likewise
  
+define axis/t=16-SEP-2016:21-SEP-2016:15/units=minutes/t0=16-SEP-2016 tax
  
-set v ul
-DEFINE AXIS/T=1-JAN-1980:31-JAN-1985:30/T0=1-jan-1980/UNIT=days tax
-LET tt = t[gt=tax]
-LET tvar = cos(tt/200)
-plot tvar
+can view
+set view upper; shade/grat ztvar
+set view lower; plot/grat=(color=light_blue)/z=20 ztvar
+ 
+can view
+set view left; shade/trans/grat/t=16-SEP-2016:19-sep-2016 ztvar
+set view right; plot/trans/grat=(color=light_blue)/z=20/t=16-SEP-2016:19-sep-2016 ztvar
+ 
+ 
+ 
+! Bug 2465 parsing errors on commands with expressions involving attrbutes
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_attribute_parsing
+! err700_attribute_parsing.jnl
+! See ticket 2465. Parsing errors for commands with attribute references
+! acm  9/2016
+ 
+! Write a simple file and then try to get at its attributes.
+ 
+let/title="my variable" a = 1
+save/clob/file="a.nc"/title="my file" a
+can var a
+use a.nc
+ 
+! These were ok
+list/nohead ..title
+        "my file"
+list/nohead a.long_name
+        "my variable"
+ 
+! errors
+list/nohead ..title EQ " "
+          0.0000
+list/nohead (..title)
+        "my file"
+list/nohead ..title + "text"
+        "my filetext"
+list/nohead a.long_name EQ " "
+          0.0000
+ 
+list/nohead strlen(a.long_name)
+          11.00
+list/nohead strindex(..title, "file")
+          4.000
+ 
+ 
+! Note the fix for # 2437 needs documentation: 4D output for grids in X,Y,Z,T only
+! Note the fix for # 2451 needs documentation: -gif mode plots with /HLIM or /VLIM reversing an axis.
+ 
+ 
+! 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
+ 
+! Bug 2483. Fixing axis-ends symbols XAXIS_MIN,XAXIS_MAX, YAXIS_MIN,YAXIS_MAX
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_axis_dates
+! err700_axis_dates.jnl
+! See ticket 2483. 11/10/2016 ACM
+!
+! The axis-ends symbols XAXIS_MIN,XAXIS_MAX, YAXIS_MIN,YAXIS_MAX
+! were not accurate for time axes, which get padded out to the nearest
+! time unit, e.g. whole months etc.
+ 
+! This axis gets plotted from 1-oct-2015 to the end of 30-apr-2016
+ 
+def axis/t=23-oct-2015:17-apr-2016:10/units=hours taxis
+ 
+! Define some variables
+let tt = t[gt=taxis]
+let var = cos(L[gt=taxis]/30)
+define axis/x=1:52:4 xaxis
+define axis/y=1:52:4 yaxis
+let xtvar = x[gx=xaxis] + var
+let ytvar = y[gy=yaxis] + var
+ 
+! 1-D time plot
+plot var
+ 
+! Previously these were set to the axis-coordinate
+! ends not the drawn axis ends.
+list tax_datestring(($xaxis_min), tt, "minutes"), tax_datestring(($xaxis_max), tt, "minutes")
+ !-> list tax_datestring(1005528.00, tt, "minutes"), tax_datestring(1010640.00, tt, "minutes")
+ Column  1: TAX_DATESTRING(1005528.00, TT, "minutes")
+ Column  2: TAX_DATESTRING(1010640.00, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "01-OCT-2015 00:00" "01-MAY-2016 00:00"
+ 
+! 2D plots
+ 
+shade ytvar
+list tax_datestring(($xaxis_min), tt, "minutes"), tax_datestring(($xaxis_max), tt, "minutes")
+ !-> list tax_datestring(1005528.00, tt, "minutes"), tax_datestring(1010640.00, tt, "minutes")
+ Column  1: TAX_DATESTRING(1005528.00, TT, "minutes")
+ Column  2: TAX_DATESTRING(1010640.00, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "01-OCT-2015 00:00" "01-MAY-2016 00:00"
+ 
+shade xtvar ! T axis on the vertical axis
+list tax_datestring(($yaxis_min), tt, "minutes"), tax_datestring(($yaxis_max), tt, "minutes")
+ !-> list tax_datestring(1005528.00, tt, "minutes"), tax_datestring(1010640.00, tt, "minutes")
+ Column  1: TAX_DATESTRING(1005528.00, TT, "minutes")
+ Column  2: TAX_DATESTRING(1010640.00, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "01-OCT-2015 00:00" "01-MAY-2016 00:00"
+ 
+ 
+! Short time axis, plot ends extended out to the nearest hour
+def axis/t="23-oct-2015:01:15":"23-oct-2015:12:30":15/units=minutes taxis
+ 
+plot var
+list tax_datestring(($xaxis_min), tt, "minutes"), tax_datestring(($xaxis_max), tt, "minutes")
+ !-> list tax_datestring(60363420.0, tt, "minutes"), tax_datestring(60364140.0, tt, "minutes")
+ Column  1: TAX_DATESTRING(60363420.0, TT, "minutes")
+ Column  2: TAX_DATESTRING(60364140.0, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "23-OCT-2015 01:00" "23-OCT-2015 13:00"
+ 
+shade ytvar
+list tax_datestring(($xaxis_min), tt, "minutes"), tax_datestring(($xaxis_max), tt, "minutes")
+ !-> list tax_datestring(60363420.0, tt, "minutes"), tax_datestring(60364140.0, tt, "minutes")
+ Column  1: TAX_DATESTRING(60363420.0, TT, "minutes")
+ Column  2: TAX_DATESTRING(60364140.0, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "23-OCT-2015 01:00" "23-OCT-2015 13:00"
+ 
+shade xtvar
+list tax_datestring(($yaxis_min), tt, "minutes"), tax_datestring(($yaxis_max), tt, "minutes")
+ !-> list tax_datestring(60363420.0, tt, "minutes"), tax_datestring(60364140.0, tt, "minutes")
+ Column  1: TAX_DATESTRING(60363420.0, TT, "minutes")
+ Column  2: TAX_DATESTRING(60364140.0, TT, "minutes")
+                   (C001,V00      (C001,V008)
+I / *:    "23-OCT-2015 01:00" "23-OCT-2015 13:00"
+ 
+ 
+ 
+! Bug 2489. Attribute climatology_time_range not defined on an expression
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_clim_attr_expression
+! err700_clim_attr_expression.jnl
+! Ticket 2489
+! 11/22/2016
+!
+! The attribute climatology_time_range is created whena variable comes
+! from a climatological regridding. It can be created only for user-defined
+! variables not for an expression. Previously the SAVE command resulted in a crash.
+! (See bn_climatology_attr.jnl for more examples).
+ 
+! Define a monthly axis
+define axis/t=1-feb-1980:1-feb-2003/npoints=276/unit="day"/t0=1-jan-1900 tax
+ 
+let tvar = t[gt=tax]
+let clim1 = tvar[gt=month_irreg at mod]
+save/nobounds/file=a.nc/clobber 3*clim1
+ 
+can dat/all; use a.nc
+ 
+! The variable did not get a climatology_time_range attribute
+let vname = ..varnames
+show att `vname[i=1]`
+ !-> show att E494
+     attributes for dataset: ./a.nc
+ E494.missing_value = -1.E+34
+ E494._FillValue = -1.E+34
+ E494.long_name = 3*CLIM1 
+ 
+ 
+! Bug 2491: Location of colorbar labels wrong
+! on /HLOG or /VLOG plots
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_ribbon_vlog
+! err700_ribbon_vlog.jnl
+! 1/3/2017 *acm*
+! See ticket 2491: Location of colorbar labels wrong
+! on /HLOG or /VLOG plots
+ 
+ 
+let a = 0.1* {1,2,3,4,5,6,7,8,9}
+set v ul
+plot/vs/rib/sym=25 a, a, a
+ 
+! Draw with /VLOG, previously put the colorbar labels in the wrong place
+set view lr
+plot/vs/rib/sym=25/vlog a, a, a
+ 
+! likewise /HLOG on a horizontal color key
+set view ll
+plot/vs/rib/sym=25/hlog/key=horiz a,a,a
+ 
+frame/file=bn_ribbon_vlog.gif
+ 
+! Bug 2492: single-variable listings with /form=comma or /form=tab
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_list_comma
+! err700_list_comma.jnl
+! 1/4/2017 Fixes for ticket 2492: for single-variable listings, /FORM=comma and /FORM=tab
+ 
+use gt4d011
+ 
+! Previously for comma and tab listings there was an extra line right after the header
+! that showed a longitude, even on [i=@ave,j=@ave]
+ 
+list/L=1:3/K=1/form=comma taux[i=@ave,j=@ave]
+             VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
+             FILENAME : gt4d011.cdf
+             BAD FLAG : -1.E+34       
+             SUBSET   : 3 points (TIME)
+             LONGITUDE: 139.5W to 121.5W (XY ave)
+             LATITUDE : 3.5S to 3.5N (XY ave)
+17-AUG-1982 12,-0.2742
+23-AUG-1982 14,-0.2363
+29-AUG-1982 16,-0.1984
+ 
+list/nohead/L=1:3/K=1/form=comma taux[i=95,j=@ave]
+17-AUG-1982 12,-0.2738
+23-AUG-1982 14,-0.2441
+29-AUG-1982 16,-0.2144
+ 
+list/nohead/L=1:3/K=1/form=comma taux[i=@ave,j=@ave]
+17-AUG-1982 12,-0.2742
+23-AUG-1982 14,-0.2363
+29-AUG-1982 16,-0.1984
+ 
+! Previously /NOROW had no effect for /form=comma or /tab
+! (for single-variable listings)
+ 
+list/norow/L=1:3/K=1/form=comma taux[i=@ave,j=@ave]
+             VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
+             FILENAME : gt4d011.cdf
+             BAD FLAG : -1.E+34       
+             SUBSET   : 3 points (TIME)
+             LONGITUDE: 139.5W to 121.5W (XY ave)
+             LATITUDE : 3.5S to 3.5N (XY ave)
+-0.2742 
+-0.2363 
+-0.1984 
+ 
+list/norow/nohead/L=1:3/K=1/form=comma taux[i=95,j=@ave]
+-0.2738 
+-0.2441 
+-0.2144 
+ 
+list/norow/nohead/L=1:3/K=1/i=95/j=40/form=comma taux
+-0.3336 
+-0.298 
+-0.2623 
+ 
+list/norow/nohead/L=1:3/K=1/i=95/j=40/form=comma taux
+-0.3336 
+-0.298 
+-0.2623 
+ 
+! Now all the same commands with /form=tab
+ 
+! Previously for comma and tab listings there was an extra line right after the header
+! that showed a longitude, even on [i=@ave,j=@ave]
+ 
+list/L=1:3/K=1/form=tab taux[i=@ave,j=@ave]
+             VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
+             FILENAME : gt4d011.cdf
+             BAD FLAG : -1.E+34       
+             SUBSET   : 3 points (TIME)
+             LONGITUDE: 139.5W to 121.5W (XY ave)
+             LATITUDE : 3.5S to 3.5N (XY ave)
+17-AUG-1982 12	-0.2742
+23-AUG-1982 14	-0.2363
+29-AUG-1982 16	-0.1984
+ 
+list/nohead/L=1:3/K=1/form=tab taux[i=95,j=@ave]
+17-AUG-1982 12	-0.2738
+23-AUG-1982 14	-0.2441
+29-AUG-1982 16	-0.2144
+ 
+list/nohead/L=1:3/K=1/form=tab taux[i=@ave,j=@ave]
+17-AUG-1982 12	-0.2742
+23-AUG-1982 14	-0.2363
+29-AUG-1982 16	-0.1984
+ 
+! Previously /NOROW had no effect for /form=comma or /tab
+! (for single-variable listings)
+ 
+list/norow/L=1:3/K=1/form=tab taux[i=@ave,j=@ave]
+             VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
+             FILENAME : gt4d011.cdf
+             BAD FLAG : -1.E+34       
+             SUBSET   : 3 points (TIME)
+             LONGITUDE: 139.5W to 121.5W (XY ave)
+             LATITUDE : 3.5S to 3.5N (XY ave)
+-0.2742 
+-0.2363 
+-0.1984 
+ 
+list/norow/nohead/L=1:3/K=1/form=tab taux[i=95,j=@ave]
+-0.2738 
+-0.2441 
+-0.2144 
+ 
+list/norow/nohead/L=1:3/K=1/i=95/j=40/form=tab taux
+-0.3336 
+-0.298 
+-0.2623 
+ 
+list/norow/nohead/L=1:3/K=1/i=95/j=40/form=tab taux
+-0.3336 
+-0.298 
+-0.2623 
+ 
+ 
+! Bug 2493: T aggregation when there are E or F axes
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_aggT_5d
+! err700_aggT_5d.jnl
+! 1/6/2017 ACM  Ticket 2493
+! When there are E or F axes in the grid, the multi-file reading
+! for time aggregations or mc files corrupted the data.
+ 
+!  The two files have data in different ranges
+ 
+! data range in 260-270
+use aggT_5d1.nc
+list/i=3/j=2 thetao[d=1]
+             VARIABLE : Sea Water Potential Temperature (K)
+             FILENAME : aggT_5d1.nc
+             SUBSET   : 6 by 10 points (TIME-E)
+             CALENDAR : NOLEAP
+             LONGITUDE: 22.5E
+             LATITUDE : 58.5S
+             DEPTH (m): 5
+              1999   2000   2001   2002   2003   2004  
+               1      2      3      4      5      6
+ 1    /  1:  265.2  265.6  266.0  266.2  265.5  265.4
+ 2    /  2:  265.6  265.8  265.6  265.7  265.5  265.5
+ 3    /  3:  265.2  265.5  265.3  265.3  264.9  265.5
+ 4    /  4:  263.9  263.3  263.1  263.4  263.5  263.3
+ 5    /  5:  261.8  261.8  261.9  261.9  262.1  261.8
+ 6    /  6:  263.4  263.4  263.8  263.6  263.6  263.4
+ 7    /  7:  264.0  264.5  264.2  264.0  264.3  264.0
+ 8    /  8:  264.2  264.1  264.0  263.4  263.4  263.9
+ 9    /  9:  263.7  262.7  262.7  262.9  263.3  263.0
+ 10   / 10:  263.8  263.7  264.0  263.8  263.7  264.2
+ 
+! data range in 270-280
+use aggT_5d2.nc
+list/i=3/j=2 thetao[d=2]
+             VARIABLE : Sea Water Potential Temperature (K)
+             FILENAME : aggT_5d2.nc
+             SUBSET   : 4 by 10 points (TIME-E)
+             CALENDAR : NOLEAP
+             LONGITUDE: 22.5E
+             LATITUDE : 58.5S
+             DEPTH (m): 5
+              2006   2007   2008   2009  
+               1      2      3      4
+ 1    /  1:  275.4  275.1  275.0  275.1
+ 2    /  2:  275.6  275.8  275.8  275.3
+ 3    /  3:  275.1  275.3  275.0  275.4
+ 4    /  4:  273.4  273.3  273.4  273.9
+ 5    /  5:  271.8  271.7  271.8  271.9
+ 6    /  6:  273.8  273.6  273.9  273.8
+ 7    /  7:  273.9  273.9  274.2  274.2
+ 8    /  8:  273.9  274.0  274.5  274.2
+ 9    /  9:  272.7  272.9  273.0  274.0
+ 10   / 10:  274.8  274.9  274.4  274.5
+can data/all
+ 
+! Now make an aggregation. Previously the data was wrapped onto
+! the grid incorrectly, with zero in M=7 and higher
+ 
+define data/agg/t myagg = aggT_5d1.nc, aggT_5d2.nc
+list/i=3/j=2 thetao
+             VARIABLE : Sea Water Potential Temperature (K)
+             FILENAME : myagg
+             SUBSET   : 10 by 10 points (TIME-E)
+             CALENDAR : NOLEAP
+             LONGITUDE: 22.5E
+             LATITUDE : 58.5S
+             DEPTH (m): 5
+              1999   2000   2001   2002   2003   2004   2006   2007   2008   2009  
+               1      2      3      4      5      6      7      8      9     10
+ 1    /  1:  265.2  265.6  266.0  266.2  265.5  265.4  275.4  275.1  275.0  275.1
+ 2    /  2:  265.6  265.8  265.6  265.7  265.5  265.5  275.6  275.8  275.8  275.3
+ 3    /  3:  265.2  265.5  265.3  265.3  264.9  265.5  275.1  275.3  275.0  275.4
+ 4    /  4:  263.9  263.3  263.1  263.4  263.5  263.3  273.4  273.3  273.4  273.9
+ 5    /  5:  261.8  261.8  261.9  261.9  262.1  261.8  271.8  271.7  271.8  271.9
+ 6    /  6:  263.4  263.4  263.8  263.6  263.6  263.4  273.8  273.6  273.9  273.8
+ 7    /  7:  264.0  264.5  264.2  264.0  264.3  264.0  273.9  273.9  274.2  274.2
+ 8    /  8:  264.2  264.1  264.0  263.4  263.4  263.9  273.9  274.0  274.5  274.2
+ 9    /  9:  263.7  262.7  262.7  262.9  263.3  263.0  272.7  272.9  273.0  274.0
+ 10   / 10:  263.8  263.7  264.0  263.8  263.7  264.2  274.8  274.9  274.4  274.5
+ 
+! Bug 2495: shift on overlay of time series plot on 2d time plot
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_time_overlay
+! err700_time_overlay.jnl
+! bug 2495
+! Shifting on overlay of time series on 2D plot
+ 
+define axis/t=15-jun-1970:16-jun-1970:60/t0=1-jan-1970/units=seconds  tax
+def axis/y=-2:2:0.2 yaxis
+let tt = t[gt=tax]
+ 
+shade/pal=white/nokey/title="example plot" y[gy=yaxis] + t[gt=tax]
+ 
+! Previously the second plot was shifted in time
+plot/over/color=red  cos(tt/3000)
+plot/over/color=blue cos(tt/3000)+0.5
+ 
+! now vertical time axis
+shade/trans/pal=white/nokey/title="example plot" y[gy=yaxis] + t[gt=tax]
+ 
+plot/trans/over/color=red  cos(tt/3000)
+plot/trans/over/color=blue cos(tt/3000) + 0.5
+ 
+ 
+ 
+! Bug 2494:  drawing a single-cell shade plot
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_shade_singlecell
+! err700_shade_singlecell.jnl
+! Ticket 2494, drawing a single-cell shade plot
+ 
+def axis/x=233.59375:293.90625:0.3125/units=degrees_east xlon
+def axis/y=24.125:50.625:0.25/units=degrees_north ylat
+let iijj = i[gx=xlon] + j[gy=ylat]
+set reg/x=77w:72.5w/y=38.9n:41.5n
+ 
+ 
+shade/pal=grayscale iijj
+shade/pal=blue/ov iijj[i=167:168,j=64:65]
+ 
+! previously this was drawn, but located one cell to the left of where it should be
+shade/pal=black/ov iijj[i=167,j=64]
+ 
+! Specify a cell by X,Y. Previously this gave a dimensions error
+shade/over/pal=green iijj[x=76w,y=40n]
+ 
+! These same sorts of degenerate regions, bug not as an overlay
+ 
+! Previously both of these drew a blank plot
+shade/pal=rnb2 iijj[i=167,j=64]
+shade/pal=rnb2 iijj[i=167,j=64:66]
+ 
+! Specify a cell by X,Y
+! Previously this gave a dimensions error
+shade/pal=green iijj[x=76w,y=40n]
+ 
+! Partial cell, given by xy limits.
+! Previously drew a blank plot
+shade/pal=green iijj[x=74.5w:74.4w,y=39.9:40.0]
+ 
+! Several cells in one direction - partial cells in y at edges
+shade/pal=rnb2 iijj[x=74.5w,y=39.9:40.8]
+ 
+ 
+! Bug 2496: errors using axis with nearly-repeating coordinates
+!           where coordinates are very near grid-cell edges.
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_coords
+! err700_coords.jnl
+! 1/17/2017
+! From bug 2496. Data with almost-repeating values used to define an axis
+ 
+use err700_coords.nc
+list/i=10:20/prec=16 du_coords, du_coords[i=@ddf]
+             DATA SET: ./err700_coords.nc
+             X: 9.5 to 20.5
+ Column  1: DU_COORDS is DU_VU[I=1:20]
+ Column  2: DU_COORDS[X=@DDF] is DU_VU[I=1:20] (forward derivative on X)
+                   DU_COORDS       DU_COORDS
+10   / 10:  23.75000000000000  2.500000000000000
+11   / 11:  26.25000000000000  0.000000000000011
+12   / 12:  26.25000000000001  2.499999999999989
+13   / 13:  28.75000000000000  2.500000000000000
+14   / 14:  31.25000000000000  0.000000000000011
+15   / 15:  31.25000000000001  2.499999999999989
+16   / 16:  33.75000000000000  2.500000000000000
+17   / 17:  36.25000000000000  2.500000000000000
+18   / 18:  38.75000000000000  2.500000000000000
+19   / 19:  41.25000000000000  2.500000000000000
+20   / 20:  43.75000000000000               ....
+ 
+! The data has repeated coords, to 1.e15. Should be reported as micro-adjusted
+ 
+def ax/bounds/x/unit="degrees_east"/modulo=360 c2d_ax_x = du_coords[i=1:160], du_edges[i=1:161]
+ 
+ 
+sh axis c2d_ax_x
+ name       axis              # pts   start                end
+ C2D_AX_X  LONGITUDE           20mi   1.25E                43.75E
+   Axis span (to cell edges) = 45 (modulo length = 360)
+let c = x[gx=c2d_ax_x]
+ 
+! for this region, the setup steps got data in index 11:31, then
+! at the point of writing the index ragne was found to be 12:31
+ 
+set region/x=25:385
+set mode diag
+save/clob/file=a.nc c
+ dealloc  dynamic grid GAY2            XAX1_21   NORMAL    NORMAL    NORMAL
+ 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
+ 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
+ -DELETE C        M:  5 dset:   0 I:     11     30  J: -999 -999  K: -999 -999  L:   -999   -999
+ 
+set mode /last diag
+ 
+ 
+! Bug 2499: Define a single-point axis with bounds
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_define_1pt_axis
+! err700_define_1pt_axis.jnl
+! Ticket 2499: regular axis, test for valid line_delta
+! ACM 7/6/2016
+ 
+ 
+def ax/t/bounds tax = 1, 0, 2
+show 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
+ 
+! check that reading such an axis from a file is ok
+let twelve = 12*t[gt=tax]
+ 
+save/file=a.nc/clobber twelve
+cancel var/all; cancel axis tax
+use a.nc
+sh dat
+     currently SET data sets:
+    1> ./a.nc  (default)
+ name     title                             I         J         K         L
+ TWELVE   12*T[GT=TAX]                     ...       ...       ...       1:1
+ 
+sh axis/t tax
+ name       axis              # pts   start                end
+ TAX       T                    1 r   1                    1
+T0 = %%
+   Axis span (to cell edges) = 2
+ 
+       L     T                   TBOX      TBOXLO
+       1>  1                     2          0
+ 
+ 
+ 
+! Bug 2498: time unit error in F-aggregation of some OPENDAP datasets
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_aggregate_from_fmrc
+! err700_aggregate_from_fmrc.jnl
+! 1/2017 *acm*
+! (See ticket 2498)
+! Previously an incorrect definition of the F axis when datasets from
+! thredds fmrc.xml are used in a Ferret F aggregation
+! This was a bug in the true-month time axes in an un-released Ferret executable.
+ 
+IF `TEST_OPENDAP(\
+"http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Hawaii_Regional_Ocean_Model_RUN_2017-01-01T00:00:00Z") NE 0` \
+ THEN EXIT/SCRIPT
+ !-> IF 0  THEN EXIT/SCRIPT
+ 
+use http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Hawaii_Regional_Ocean_Model_RUN_2017-01-01T00:00:00Z
+use http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Hawaii_Regional_Ocean_Model_RUN_2017-01-02T00:00:00Z
+use http://oos.soest.hawaii.edu/thredds/dodsC/hioos/roms_forec/hiig/runs/ROMS_Hawaii_Regional_Ocean_Model_RUN_2017-01-03T00:00:00Z
+ 
+DEFINE DATA/AGGREGATE/F testdata = 1,2,3
+! F axis should be  31-DEC-2016 to 02-JAN-2017
+SHOW GRID zeta
+    GRID (G013)
+ 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
+ normal    Z
+ TF_LAG_T  MODEL ELAPSED TIME  57 r   1.5                  169.5               full
+ normal    E
+ TF_CAL_F  FORECAST             3 r   31-DEC-2016 22:30    02-JAN-2017 22:30   full
+ 
+ 
+! Bug 2504: modulo axes and coordinates
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_modulo
+! err700_modulo.jnl
+! See ticket 2504. Axis defintions where bounds are not given, and Ferret
+! is defining the cell edges. If axis coordinates lie within the modulo range
+! but the cell bounds defined automatically using coordinate midpoints range
+! larger than 360 degrees, or 1 year, need to adjust bounds. This is done only
+! for irregular axes.
+ 
+use modax
+ 
+! The axis 'irreg_no_bounds' is irregular and is stored in the file without
+! bounds. The coordinate range is < 360 but previously the computed bounds
+! made the axis length 369.45, so it was not treated as modulo.
+! Now it is marked modulo.
+ 
+sh axis irreg_no_bounds
+ name       axis              # pts   start                end
+ IRREG_NO_BOUNDS LONGITUDE      8mi   0E                   0.7W
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+list/order=x/nohead x[gx=irreg_no_bounds]
+            0.0    1.0   20.0   30.0  320.0  330.0  340.0  359.3
+show axis/x irreg_no_bounds
+ name       axis              # pts   start                end
+ IRREG_NO_BOUNDS LONGITUDE      8mi   0E                   0.7W
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+       I     X                   XBOX      XBOXLO
+       1>  0E                    0.85       0.35W(-0.35)
+       2>  1E                    10         0.5E
+       3>  20E                   14.5       10.5E
+       4>  30E                   150        25E
+       5>  40W                   150        175E
+       6>  30W                   10         35W
+       7>  20W                   14.65      25W
+       8>  0.7W                  10         10.35W
+ 
+ 
+! The axis 'regular_no_bounds' is regular.  Its coordinate range is < 360, but
+! to adjust the grid cells would make it irregular, so this axis is still
+! marked as not modulo.
+ 
+sh axis regular_no_bounds
+ name       axis              # pts   start                end
+ REGULAR_NO_BOUNDS LONGITUDE    8 r   10E                  0E(360)
+   Axis span (to cell edges) = 400
+list/order=x/nohead x[gx=regular_no_bounds]
+           10.0   60.0  110.0  160.0  210.0  260.0  310.0  360.0
+show axis/x regular_no_bounds
+ name       axis              # pts   start                end
+ REGULAR_NO_BOUNDS LONGITUDE    8 r   10E                  0E(360)
+   Axis span (to cell edges) = 400
+ 
+       I     X                   XBOX      XBOXLO
+       1>  10E                   50         15W(-15)
+       2>  60E                   50         35E
+       3>  110E                  50         85E
+       4>  160E                  50         135E
+       5>  150W                  50         175W
+       6>  100W                  50         125W
+       7>  50W                   50         75W
+       8>  0E(360)               50         25W
+ 
+! The axis 'irreg_with_bounds' is irregular, stored with bounds in the file.
+! Its coordinate range is < 360, but the range of the bounds is larger than
+! 360. Because the bounds are in the file, nothing is changed; it is marked
+! as not modulo.
+ 
+sh axis irreg_with_bounds
+ name       axis              # pts   start                end
+ IRREG_WITH_BOUNDS LONGITUDE    8 i   0E                   1W
+   Axis span (to cell edges) = 362
+list/order=x/nohead x[gx=irreg_with_bounds]
+            0.0    1.0   20.0   30.0  320.0  330.0  340.0  359.0
+show axis/x irreg_with_bounds
+ name       axis              # pts   start                end
+ IRREG_WITH_BOUNDS LONGITUDE    8 i   0E                   1W
+   Axis span (to cell edges) = 362
+ 
+       I     X                   XBOX      XBOXLO
+       1>  0E                    1.5        1W(-1)
+       2>  1E                    9.5        0.5E
+       3>  20E                   15         10E
+       4>  30E                   150        25E
+       5>  40W                   150        175E
+       6>  30W                   10         35W
+       7>  20W                   14         25W
+       8>  1W                    12         11W
+ 
+cancel data/all
+ 
+! DEFINE AXIS examples
+ 
+! Likewise define an irregular axis whose coordinate range is < 360 but
+! the default midpoint grid cell bounds would make it larger than 360.
+! Previously this axis was not modulo, now bounds are set so it is.
+ 
+define axis/x/units=degrees_east xax = {0, 10, 20, 340, 358}
+show axis xax
+ name       axis              # pts   start                end
+ XAX       LONGITUDE            5mi   0E                   2W
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+! Now define a regular axis whose coordinate range is < 360 but the
+! default midpoint grid cell bounds would make it larger than 360.
+! To keep it regular, mark as not modulo.
+ 
+define axis/x=5:355:50/units=degrees_east xax
+show axis xax
+ name       axis              # pts   start                end
+ XAX       LONGITUDE            8 r   5E                   5W
+   Axis span (to cell edges) = 400
+ 
+! tests for time axes
+! Regular time axis with bounds that make it longer than a year.
+! leave this one so it stays regular and is not modulo.
+ 
+define axis/t=3:363:10/units=days/t0=1-jan-0000 treg
+show axis treg
+ name       axis              # pts   start                end
+ TREG      TIME                37 r   04-JAN-0000 00:00    29-DEC-0000 00:00
+T0 = 1-JAN-0000
+   Axis span (to cell edges) = 370
+ 
+! An irregular axis where moving the bounds can make it a modulo calendar axis.
+define axis/t0=1-jan-0000/units=days/t tax2 = { 3, 55, 103, 153, 203, 253, 303, 353}
+sh axis tax2
+ name       axis              # pts   start                end
+ TAX2      TIME                 8mi   04-JAN 00:00         19-DEC 00:00
+T0 = 1-JAN-0000
+   Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ 
+ 
+! Bug 1480: saving modulo axis with too big a region
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_save_mod_att
+! err700_save_mod_att.jnl
+! ticket 1480: do not write a modulo axis when saving a modulo
+! axis with region longer than the modulo length.
+! If it's just one grid-cell too long, write one cell less so
+! the axis can still be a valid modulo axis
+ 
+! write a dataset to use, modulo attribute
+define axis/x=20:377.5:2.5/units=degrees_east/modulo xlon
+sh axis xlon
+ name       axis              # pts   start                end
+ XLON      LONGITUDE          144mr   20E                  17.5E(377.5)
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+let var = x[gx=xlon]
+ 
+save/clobber/file=a1.nc var
+sp ncdump -h a1.nc
+netcdf a1 {
+dimensions:
+	XLON = 144 ;
+variables:
+	double XLON(XLON) ;
+		XLON:units = "degrees_east" ;
+		XLON:point_spacing = "even" ;
+		XLON:axis = "X" ;
+		XLON:modulo = 360. ;
+		XLON:standard_name = "longitude" ;
+	double VAR(XLON) ;
+		VAR:missing_value = -1.e+34 ;
+		VAR:_FillValue = -1.e+34 ;
+		VAR:long_name = "X[GX=XLON]" ;
+
+// global attributes:
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+}
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+ 
+! Now set a region and write data. The axis length would be 362.5
+use a1
+sh axis xlon
+ name       axis              # pts   start                end
+ XLON      LONGITUDE          144mr   20E                  17.5E(377.5)
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+set region/x=0:360
+stat x[gx=xlon] ! 145 points
+ 
+             X
+             axis XLON
+             LONGITUDE: 0E to 0E(360)
+             Y:  N/A
+             Z:  N/A
+             T:  N/A
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 145 (145*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 360
+ Mean    value: 180 (unweighted average)
+ Standard deviation: 105
+ 
+! but we see that the region is just one cell too big, and
+! save it with length 360.
+save/clobber/file=a.nc var
+ 
+! previously the x axis had a modulo attribute and length 362.5
+! The modulo=360 didnt match the length of the axis so on using the
+! file there was a note, modulo attribute ignored. Now the axis is
+! the intended length.
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	XLONN7_136 = 144 ;
+variables:
+	double XLONN7_136(XLONN7_136) ;
+		XLONN7_136:units = "degrees_east" ;
+		XLONN7_136:point_spacing = "even" ;
+		XLONN7_136:axis = "X" ;
+		XLONN7_136:modulo = 360. ;
+		XLONN7_136:standard_name = "longitude" ;
+	double VAR(XLONN7_136) ;
+		VAR:missing_value = -1.e+34 ;
+		VAR:_FillValue = -1.e+34 ;
+		VAR:long_name = "X[GX=XLON]" ;
+		VAR:history = "From a1" ;
+
+// global attributes:
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+use a
+sh axis `var,return=xaxis`
+ !-> sh axis XLONN7_136
+ name       axis              # pts   start                end
+ XLONN7_136 LONGITUDE         144mr   0E                   2.5W
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+ 
+! Now set a bigger region and write data. The axis length is 372.5
+use a1
+sh axis xlon
+ name       axis              # pts   start                end
+ XLON      LONGITUDE          144mr   20E                  17.5E(377.5)
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+set region/x=0:370
+ 
+! Now issues a note, not writing modulo attribute.
+save/clobber/file=a.nc var
+ 
+! previously the x axis still had the modulo attribute
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	XLONN7_141 = 149 ;
+variables:
+	double XLONN7_141(XLONN7_141) ;
+		XLONN7_141:units = "degrees_east" ;
+		XLONN7_141:point_spacing = "even" ;
+		XLONN7_141:axis = "X" ;
+		XLONN7_141:standard_name = "longitude" ;
+	double VAR(XLONN7_141) ;
+		VAR:missing_value = -1.e+34 ;
+		VAR:_FillValue = -1.e+34 ;
+		VAR:long_name = "X[GX=XLON]" ;
+		VAR:history = "From a1" ;
+
+// global attributes:
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+use a
+sh axis `var,return=xaxis`
+ !-> sh axis XLONN7_141
+ name       axis              # pts   start                end
+ XLONN7_141 LONGITUDE         149 r   0E                   10E(370)
+   Axis span (to cell edges) = 372.5
+ 
+! test the machinery for a file with attribute modulo=" "
+ 
+use coads_climatology
+sh att (`sst,return=xaxis`)
+ !-> sh att (COADSX)
+     attributes for dataset: ./coads_climatology.cdf
+ (COADSX).units = degrees_east 
+ (COADSX).modulo =   
+ (COADSX).point_spacing = even 
+ (COADSX).orig_file_axname = COADSX 
+set region/x=1:361
+ 
+save/clobber/file=a.nc/y=0/l=1 sst
+ 
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+use a
+sh att (`sst,return=xaxis`)
+ !-> sh att (COADSXN9_170)
+     attributes for dataset: ./a.nc
+ (COADSXN9_170).units = degrees_east 
+ (COADSXN9_170).modulo =   
+ (COADSXN9_170).point_spacing = even 
+ (COADSXN9_170).axis = X 
+ (COADSXN9_170).standard_name = longitude 
+ (COADSXN9_170).orig_file_axname = COADSXN9_170 
+ 
+! previously the axis, of length 362, was marked modulo.
+show axis `sst,return=xaxis`
+ !-> show axis COADSXN9_170
+ name       axis              # pts   start                end
+ COADSXN9_170 LONGITUDE       180mr   1E                   1W
+   Axis span (to cell edges) = 360 (modulo length = axis span)
+ 
+ 
+ 
+! Bug 2502: FMRC regridding sensitive to insignificant floating-point differences in time
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err700_fmrcdiag
+! err700_fmrcdiag.jnl
+! these particular datasets (quarterly forecasts of two years of monthly data)
+! have times at regular intervals but at values (for 25 and 26) that are difficult
+! to represent in binary
+!
+USE forecast24.nc
+USE forecast25.nc
+USE forecast26.nc
+USE forecast27.nc
+DEFINE DATA/AGGREGATE/F testdata = 1,2,3,4
+!
+! using the values of actual gives perfect forecasts;
+! using the values of quirks has a sinusoidal error that get worse with greater lead time
+!
+SHOW GRID actual
+    GRID (G019)
+ name       axis              # pts   start                end                 subset
+ XAX1      LONGITUDE            7mr   140W                 110W                full
+ YAX       LATITUDE             4 r   45N                  60N                 full
+ ZAX1      Z (meter)            3 i   50                   1000                full
+ TF_LAG_T  MODEL ELAPSED TIME (25 r   15.217               745.62              full
+ normal    E
+ TF_CAL_F  FORECAST             4 r   01-OCT-2010 21:36    02-JUL-2011 19:12   full
+LIST /WIDTH=600 /X=120W/Y=50N/Z=50 actual
+             VARIABLE : actual
+             DATA SET : Forecast series of 4 datasets patterned on forecast24
+             FILENAME : testdata
+             SUBSET   : 25 by 4 points (MODEL ELAPSED TIME (day)-FORECAST)
+             LONGITUDE: 120W
+             LATITUDE : 50N
+             Z (meter): 50
+             Verification time increases across row.  Initialization time increases down page. 
+                    15.2   45.6   76.1   106.5  136.9  167.4  197.8  228.2  258.7  289.1  319.5  350    380.4  410.8  441.3  471.7  502.1  532.6  563    593.4  623.9  654.3  684.7  715.2  745.6 
+                     1      2      3      4      5      6      7      8      9     10     11     12     13     14     15     16     17     18     19     20     21     22     23     24     25
+ 01-OCT-2010 / 1:  3.112  3.063  3.548  4.433  5.476  6.388  6.918  6.920  6.392  5.481  4.436  3.546  3.056  3.102  3.671  4.606  5.651  6.517  6.966  6.873  6.263  5.305  4.262  3.422  3.016
+ 01-JAN-2011 / 2:  4.433  5.476  6.388  6.918  6.920  6.392  5.481  4.436  3.546  3.056  3.102  3.671  4.606  5.651  6.517  6.966  6.873  6.263  5.305  4.262  3.422  3.016  3.157  3.806  4.784
+ 02-APR-2011 / 3:  6.918  6.920  6.392  5.481  4.436  3.546  3.056  3.102  3.671  4.606  5.651  6.517  6.966  6.873  6.263  5.305  4.262  3.422  3.016  3.157  3.806  4.784  5.823  6.635  6.998
+ 02-JUL-2011 / 4:  5.481  4.436  3.546  3.056  3.102  3.671  4.606  5.651  6.517  6.966  6.873  6.263  5.305  4.262  3.422  3.016  3.157  3.806  4.784  5.823  6.635  6.998  6.809  6.122  5.125
+SHADE /X=120W/Y=50N/Z=50 actual
+FRAME /FILE=forecast_actual.gif
+!
+! the diagonal should be a regular 3:1 stairstep on lower and upper
+! using actual should show single color on horizontal
+!
+LET /TITLE="actual (diag view)" diagview = actual[gt(tf_times)=tf_cal_t]
+SHOW GRID diagview
+    GRID (G019)
+ name       axis              # pts   start                end                 subset
+ XAX1      LONGITUDE            7mr   140W                 110W                full
+ YAX       LATITUDE             4 r   45N                  60N                 full
+ ZAX1      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
+ TF_CAL_F  FORECAST             4 r   01-OCT-2010 21:36    02-JUL-2011 19:12   full
+LIST /WIDTH=600 /X=120W/Y=50N/Z=50 diagview
+             VARIABLE : actual (diag view)
+             DATA SET : Forecast series of 4 datasets patterned on forecast24
+             FILENAME : testdata
+             SUBSET   : 34 by 4 points (TIME-FORECAST)
+             LONGITUDE: 120W
+             LATITUDE : 50N
+             Z (meter): 50
+             Verification time increases across row.  Initialization time increases down page. 
+                    2010   2010   2010   2011   2011   2011   2011   2011   2011   2011   2011   2011   2011   2011   2011   2012   2012   2012   2012   2012   2012   2012   2012   2012   2012   2012   2012   2013   2013   2013   2013   2013   2013   2013  
+                     1      2      3      4      5      6      7      8      9     10     11     12     13     14     15     16     17     18     19     20     21     22     23     24     25     26     27     28     29     30     31     32     33     34
+ 01-OCT-2010 / 1:  3.112  3.063  3.548  4.433  5.476  6.388  6.918  6.920  6.392  5.481  4.436  3.546  3.056  3.102  3.671  4.606  5.651  6.517  6.966  6.873  6.263  5.305  4.262  3.422  3.016   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 01-JAN-2011 / 2:   ....   ....   ....  4.433  5.476  6.388  6.918  6.920  6.392  5.481  4.436  3.546  3.056  3.102  3.671  4.606  5.651  6.517  6.966  6.873  6.263  5.305  4.262  3.422  3.016  3.157  3.806  4.784   ....   ....   ....   ....   ....   ....
+ 02-APR-2011 / 3:   ....   ....   ....   ....   ....   ....  6.918  6.920  6.392  5.481  4.436  3.546  3.056  3.102  3.671  4.606  5.651  6.517  6.966  6.873  6.263  5.305  4.262  3.422  3.016  3.157  3.806  4.784  5.823  6.635  6.998   ....   ....   ....
+ 02-JUL-2011 / 4:   ....   ....   ....   ....   ....   ....   ....   ....   ....  5.481  4.436  3.546  3.056  3.102  3.671  4.606  5.651  6.517  6.966  6.873  6.263  5.305  4.262  3.422  3.016  3.157  3.806  4.784  5.823  6.635  6.998  6.809  6.122  5.125
+SHADE /X=120W/Y=50N/Z=50 diagview
+FRAME /FILE=forecast_diagview.gif
+!
+! using actual should show single color on horizontal
+!
+LET /TITLE="actual (lead view)" leadview = actual[gt(tf_times)=tf_cal_t,gf(tf_times)=tf_lag_f]
+SHOW GRID leadview
+    GRID (G008)
+ name       axis              # pts   start                end                 subset
+ XAX1      LONGITUDE            7mr   140W                 110W                full
+ YAX       LATITUDE             4 r   45N                  60N                 full
+ ZAX1      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
+ TF_LAG_F  FORECAST LEAD TIME ( 9 r   45.65                776.05              full
+LIST /WIDTH=600 /X=120W/Y=50N/Z=50 leadview
+             VARIABLE : actual (lead view)
+             DATA SET : Forecast series of 4 datasets patterned on forecast24
+             FILENAME : testdata
+             SUBSET   : 34 by 9 points (TIME-FORECAST LEAD TIME (day))
+             LONGITUDE: 120W
+             LATITUDE : 50N
+             Z (meter): 50
+             Verification time increases across row.  Initialization time increases down page. 
+              2010   2010   2010   2011   2011   2011   2011   2011   2011   2011   2011   2011   2011   2011   2011   2012   2012   2012   2012   2012   2012   2012   2012   2012   2012   2012   2012   2013   2013   2013   2013   2013   2013   2013  
+               1      2      3      4      5      6      7      8      9     10     11     12     13     14     15     16     17     18     19     20     21     22     23     24     25     26     27     28     29     30     31     32     33     34
+ 45.6  / 1:  3.112  3.063  4.433  5.476  6.918  6.920  5.481  4.436   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 136.9 / 2:   ....   ....  3.548  4.433  6.388  6.918  6.392  5.481  3.546  3.056   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 228.2 / 3:   ....   ....   ....   ....  5.476  6.388  6.920  6.392  4.436  3.546  3.102  3.671   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 319.5 / 4:   ....   ....   ....   ....   ....   ....  6.918  6.920  5.481  4.436  3.056  3.102  4.606  5.651   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 410.8 / 5:   ....   ....   ....   ....   ....   ....   ....   ....  6.392  5.481  3.546  3.056  3.671  4.606  6.517  6.966   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 502.1 / 6:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....  4.436  3.546  3.102  3.671  5.651  6.517  6.873  6.263   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 593.4 / 7:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....  3.056  3.102  4.606  5.651  6.966  6.873  5.305  4.262   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 684.7 / 8:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....  3.671  4.606  6.517  6.966  6.263  5.305  3.422  3.016   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+ 776   / 9:   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....  5.651  6.517  6.873  6.263  4.262  3.422  3.157  3.806   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....
+SHADE /X=120W/Y=50N/Z=50 leadview
+FRAME /FILE=forecast_leadview.gif
+ 
+! Bug 2331: Labeling the labels in line-plot legends.
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Go err700_legend_labels
+! err700_legend_labels.jnl
+! See ticket 2231:
+!   - consistent labeling of units
+!   - PLOT/KEY=title applies to PLOT/VS
+ 
+cancel symbol lab*
+use gt4d011.cdf
+ 
+! Previously vertical label had Deg C, legend labels had units.
+! Now label only the legend labels show the different units.
+set v ul; plot/l=1/k=1/y=0/key=title temp, taux, tauy
+annotate/norm/xpos=1/ypos=.5/halign=0/valign=-4/angle=-90/size=0.14 "Each label with units"
+ 
+sh sym lab*  ! laby is not used
+LABX = "LONGITUDE"
+LAB1 = "DEPTH (m) : 5"
+LABNUM_Z = "1"
+LAB2 = "TIME : 17-AUG-1982 12:00"
+LABNUM_T = "2"
+LAB3 = "DATA SET: gt4d011"
+LABNUM_DSET = "3"
+LAB4 = "TEMPERATURE (deg. C)"
+LABKEY = "MERIDIONAL WIND STRESS (dynes/cm**2)"
+LAB5 = "ZONAL WIND STRESS (dynes/cm**2)"
+LAB6 = "MERIDIONAL WIND STRESS (dynes/cm**2)"
+can sym lab*
+ 
+! Previously vertical label and legend labels had units.
+! Now label only the vertical axis with the common units.
+set v ur; plot/l=1/k=1/y=0/key=title taux, tauy
+annotate/norm/xpos=1/ypos=.5/halign=0/valign=-4/angle=-90/size=0.14 "Common Units, labeled on left"
+ 
+! legend labels now do not include units
+sh sym lab*
+LABX = "LONGITUDE"
+LAB1 = "LATITUDE : 0"
+LABNUM_Y = "1"
+LAB2 = "TIME : 17-AUG-1982 12:00"
+LABNUM_T = "2"
+LAB3 = "DATA SET: gt4d011"
+LABNUM_DSET = "3"
+LABY = "dynes/cm**2"
+LAB4 = "ZONAL WIND STRESS"
+LABKEY = "MERIDIONAL WIND STRESS"
+LAB5 = "MERIDIONAL WIND STRESS"
+can sym lab*
+ 
+! Define some variables with titles
+let/title="Temperature Avg"/units="`temp,return=units`" tmpave = temp[L=@ave,z=@ave]
+ !-> DEFINE VARIABLE/title="Temperature Avg"/units="deg. C" tmpave = temp[L=@ave,z=@ave]
+let/title="September Taux"/units="`taux,return=units`" taux_s = taux[t=23-SEP-1982, k=1]
+ !-> DEFINE VARIABLE/title="September Taux"/units="dynes/cm**2" taux_s = taux[t=23-SEP-1982, k=1]
+let/title="January Taux"/units="`taux,return=units`" taux_j = taux[t=4-jan-1983, k=1]
+ !-> DEFINE VARIABLE/title="January Taux"/units="dynes/cm**2" taux_j = taux[t=4-jan-1983, k=1]
+ 
+! Set up a common set of axes for all variables
+set v lower
+plot/vs/sym=dot/y=0/nokey tmpave,taux_s,taux_j
+annotate/norm/xpos=1/ypos=.5/halign=0/valign=-4/angle=-90/size=0.14 "PLOT/VS with KEY=title"
+ 
+! Overlay; the legend titles are variable titles.
+plot/over/vs/color=red/thick/siz=0.14/y=0/key=title tmpave,taux_s
+plot/over/vs/color=green/thick/siz=0.14/y=0/key=title tmpave,taux_j
+ 
+frame/file=legend_1d_plots.gif
+ 
+! legend labels are titles
+sh sym lab*
+LABX = "Temperature Avg (deg. C)"
+LAB1 = "January Taux"
+LABNUM_Z = "1"
+LAB2 = "DATA SET: gt4d011"
+LABNUM_DSET = "2"
+LABY = "dynes/cm**2"
+LABKEY = "January Taux"
+ 
+! Overlaying on a 2D field
+ 
+DEFINE AXIS/T="1-JAN-1980":"1-JAN-1990":5/UNITS=DAYS tdays
+DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
+ 
+LET/TITLE=XY my_var = 10*cos(T[gt=tdays]/2000)*EXP((-1)*y[gy=yax]/20)
+LET my_var2 = 10*cos(T[gt=tdays]/2000)*EXP((-1)*y[gy=yax]/20)
+ 
+! make a Hovmoller plot
+SHADE/nolab my_var
+ 
+! PLOT/OVER without key=title shows the def in the line key
+PLOT/OVER my_var[Y=@loc:-4]
+PLOT/OVER my_var2[Y=@loc:-3]
+ 
+! with /KEY=TITLE, the variable with a title uses that,
+! variable without a title uses the variable name,
+! an expression just puts the expression (same as w/o /key=title)
+ 
+PLOT/OVER/KEY=TITLE my_var[Y=@loc:-2]
+PLOT/OVER/KEY=TITLE my_var2[Y=@loc:-1]
+ 
+PLOT/OVER/KEY=TITLE 10+cos(T[gt=tdays]/200)
+ 
+ 
+! Bug 2507: time aggregations with same time axis in different grids per file
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Go err700_aggt_dup_grids
+! err700_aggt_dup_grids
+! 2/15/2017 ACM
+! Bug 2507: new time axis is identical in two tseries aggregation.
+!  It exists in more than one grid. Previously the new time axis
+!  was swapped into only one of the grids for the second aggregation.
+ 
+! Define some datsets, with two variables with different grids each
+! using a common time axis.
+ 
+use  tmp/tagg_irreg_1.nc
+define axis/x=1:1:1 xax1
+let newvar = x[gx=xax1] + myvar
+save/clobber/file=a1.nc myvar, newvar
+can dat/all
+use  tmp/tagg_irreg_2.nc
+save/clobber/file=a2.nc myvar, newvar
+ 
+can dat/all; can var/all
+ 
+! Define two aggregations; the second should share the time axis
+! that was set up in the first.
+sp ln -sf a1.nc b1.nc
+sp ln -sf a2.nc b2.nc
+ 
+tseries a2var = a1.nc, a2.nc
+tseries b2var = b1.nc, b2.nc
+ 
+! previously the time axis of the second variable in b2var was
+! listed as length 10
+sh dat
+     currently SET data sets:
+    1> a2var
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20
+ NEWVAR   X[GX=XAX1] + MYVAR               1:1       ...       ...       1:20
+ 
+    2> b2var  (default)
+ name     title                             I         J         K         L
+ MYVAR    SIN(T[GT=TDAY_IR]/10) + L[GT=TD  ...       ...       ...       1:20
+ NEWVAR   X[GX=XAX1] + MYVAR               1:1       ...       ...       1:20
+ 
+ 
+*** Running ferret script: bn_delim_datetime.jnl
+[?1034h! bn_delim_datetime.jnl
+! ACM 7/2016
+!
+! Tickets 2448, 2449, 2450: Improvements to date reading in delimited files.
+! New: date/time fields for US and European style dates.
+! Also report incorrect date/time spec (causes months out of range)
+! and put 2-digit years prior to 50 in the 21st century. (prev. cutoff was year 20)
+!
+ 
+! File contains index,euro-date-time, us-date-time, us-date, eurodate
+! The years in variables 3 and 4 are 2-digit years after year 2020.
+ 
+! Ticket 2472: Allow yyyy/dd/mm in any of the date specs.
+ 
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,datime,date,eurodate" delim_datetime.csv
+sh dat
+     currently SET data sets:
+    1> ./delim_datetime.csv  (default)
+ name     title                             I         J         K         L
+ INDEX    index                            1:8       ...       ...       ...
+ EDTIM    edtim                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ UDTIM    udtim                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ UDATE    udate                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ EDATE    edate                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ 
+list index,edtim,udtim,udate,edate
+             DATA SET: ./delim_datetime.csv
+             X: 0.5 to 5.5
+ Column  1: INDEX is index
+ Column  2: EDTIM is edtim (days)(Julian days since 1-Jan-1900)
+ Column  3: UDTIM is udtim (days)(Julian days since 1-Jan-1900)
+ Column  4: UDATE is udate (days)(Julian days since 1-Jan-1900)
+ Column  5: EDATE is edate (days)(Julian days since 1-Jan-1900)
+         INDEX   EDTIM   UDTIM   UDATE   EDATE
+1   / 1:  1.000  41659.  43850.  34837.  33376.
+2   / 2:  2.000  41659.  44216.  38490.  33407.
+3   / 3:  3.000  41659.  44581.  42142.  33437.
+4   / 4:  4.000  41659.  44946.  45795.  33468.
+5   / 5:  5.000  41659.  45311.  49447.  33529.
+ 
+! axis January 2014
+define axis/t/t0=1-jan-1900/units=days timax = edtim
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 5 i   22-JAN-2014 01:00    22-JAN-2014 05:20
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 0.2361111
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  22-JAN-2014 01:00:00  0.0555556  22-JAN-2014 00:20:00    41659.04
+       2>  22-JAN-2014 02:20:00  0.0555556  22-JAN-2014 01:40:00    41659.1
+       3>  22-JAN-2014 03:40:00  0.0347222  22-JAN-2014 03:00:00    41659.15
+       4>  22-JAN-2014 04:00:00  0.0347222  22-JAN-2014 03:50:00    41659.17
+       5>  22-JAN-2014 05:20:00  0.0555556  22-JAN-2014 04:40:00    41659.22
+ 
+! time axis in 1991
+define axis/t/t0=1-jan-1900/units=days timax = edate
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 5 i   20-MAY-1991 00:00    20-OCT-1991 00:00
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 199
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  20-MAY-1991 00:00:00  31         04-MAY-1991 12:00:00    33376
+       2>  20-JUN-1991 00:00:00  30.5       04-JUN-1991 12:00:00    33407
+       3>  20-JUL-1991 00:00:00  30.5       05-JUL-1991 00:00:00    33437
+       4>  20-AUG-1991 00:00:00  46         04-AUG-1991 12:00:00    33468
+       5>  20-OCT-1991 00:00:00  61         19-SEP-1991 12:00:00    33529
+ 
+! time axis in 2020 - 2024
+define axis/t/t0=1-jan-1900/units=days timax = udtim
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 5 i   22-JAN-2020 06:40    22-JAN-2024 10:40
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 1826.708
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  22-JAN-2020 06:40:00  366.0417   23-JUL-2019 06:10:00    43850.28
+       2>  22-JAN-2021 07:40:00  365.5417   23-JUL-2020 07:10:00    44216.32
+       3>  22-JAN-2022 08:40:00  365.0417   23-JUL-2021 20:10:00    44581.36
+       4>  22-JAN-2023 09:40:00  365.0417   23-JUL-2022 21:10:00    44946.4
+       5>  22-JAN-2024 10:40:00  365.0417   23-JUL-2023 22:10:00    45311.44
+ 
+! time axis in 1995 - 2035
+define axis/t/t0=1-jan-1900/units=days timax = udate
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 5 i   20-MAY-1995 00:00    20-MAY-2035 00:00
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 18262.5
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  20-MAY-1995 00:00:00  3653       19-MAY-1990 12:00:00    34837
+       2>  20-MAY-2005 00:00:00  3652.5     19-MAY-2000 12:00:00    38490
+       3>  20-MAY-2015 00:00:00  3652.5     20-MAY-2010 00:00:00    42142
+       4>  20-MAY-2025 00:00:00  3652.5     19-MAY-2020 12:00:00    45795
+       5>  20-MAY-2035 00:00:00  3652       20-MAY-2030 00:00:00    49447
+ 
+! Dates of yyyy/dd/mm
+! Dates with 00/00/00 return missing-data
+ 
+columns/skip=2/var="index,udate,udtim"/type="num,date,datime" delim_yyyy.csv
+sh dat
+     currently SET data sets:
+    1> ./delim_datetime.csv
+ name     title                             I         J         K         L
+ INDEX    index                            1:5       ...       ...       ...
+ EDTIM    edtim                            1:5       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ UDTIM    udtim                            1:5       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ UDATE    udate                            1:5       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ EDATE    edate                            1:5       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ 
+    2> ./delim_yyyy.csv  (default)
+ name     title                             I         J         K         L
+ INDEX    index                            1:8       ...       ...       ...
+ UDATE    udate                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ UDTIM    udtim                            1:8       ...       ...       ...
+       (Julian days since 1-Jan-1900)
+ 
+list/prec=10 index,udate,udtim
+             DATA SET: ./delim_yyyy.csv
+             X: 0.5 to 6.5
+ Column  1: INDEX is index
+ Column  2: UDATE is udate (days)(Julian days since 1-Jan-1900)
+ Column  3: UDTIM is udtim (days)(Julian days since 1-Jan-1900)
+               INDEX      UDATE        UDTIM
+1   / 1:  1.000000000  40920.00000  37243.27778
+2   / 2:  2.000000000  40921.00000  37243.31944
+3   / 3:  3.000000000  40923.00000  37243.36111
+4   / 4:  4.000000000  40924.00000  37243.40278
+5   / 5:  5.000000000         ....  37243.48611
+6   / 6:  6.000000000  40925.00000  37243.61111
+ 
+! axis January 2014
+define axis/t/t0=1-jan-1900/units=days timax = udate[i=1:4]
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 4 i   14-JAN-2012 00:00    18-JAN-2012 00:00
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 5
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  14-JAN-2012 00:00:00  1          13-JAN-2012 12:00:00    40920
+       2>  15-JAN-2012 00:00:00  1.5        14-JAN-2012 12:00:00    40921
+       3>  17-JAN-2012 00:00:00  1.5        16-JAN-2012 00:00:00    40923
+       4>  18-JAN-2012 00:00:00  1          17-JAN-2012 12:00:00    40924
+! axis December 2001
+define axis/t/t0=1-jan-1900/units=days timax = udtim
+sh axis/t timax
+ name       axis              # pts   start                end
+ TIMAX     TIME                 6 i   20-DEC-2001 06:40    20-DEC-2001 14:40
+T0 = 1-JAN-1900
+   Axis span (to cell edges) = 0.4166667
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (DAYS)
+       1>  20-DEC-2001 06:40:00  0.0416667  20-DEC-2001 06:10:00    37243.28
+       2>  20-DEC-2001 07:40:00  0.0416667  20-DEC-2001 07:10:00    37243.32
+       3>  20-DEC-2001 08:40:00  0.0416667  20-DEC-2001 08:10:00    37243.36
+       4>  20-DEC-2001 09:40:00  0.0625     20-DEC-2001 09:10:00    37243.4
+       5>  20-DEC-2001 11:40:00  0.1041667  20-DEC-2001 10:40:00    37243.49
+       6>  20-DEC-2001 14:40:00  0.125      20-DEC-2001 13:10:00    37243.61
+ 
+ 
+! Intentional errors, specifying the wrong date field type (catches the first error)
+! The error is found upon reading the file.
+ 
+set mode ignore
+can dat/all
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,datime,datime,date,date" delim_datetime.csv
+list index,edtim,udtim,udate,edate
+ 
+can dat/all
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,edatime,date,eurodate" delim_datetime.csv
+list index,edtim,udtim,udate,edate
+ 
+can dat/all
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,datime,eurodate,date" delim_datetime.csv
+list index,edtim,udtim,udate,edate
+ 
+can dat/all
+columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,datime,date,date" delim_datetime.csv
+list index,edtim,udtim,udate,edate
+ 
+set mode/last ignore
+ 
+ 
+*** Running ferret script: bn_aggregate_u.jnl
+[?1034h! bn_aggregate_u.jnl
+! Union aggregations including tests of UNION in combination
+! with TSERIES, ENSEMBLE, and FMRC aggregations
+! acm 7/15/2016
+! create some variables in separate datasets.
+define axis/t=1-jan-2010:10-jan-2010:1/units=days/t0=1-jan-2010 tax
+let/title=sst  sst = x[x=1:5] + 1.3*y[y=1:4] + t[gt=tax]
+let/title=temp temp = 0.8*x[x=1:5] - y[y=1:4] + t[gt=tax]
+let/title=U    u = x[x=1:5] + 0.4*y[y=1:4] - 1.1* t[gt=tax]
+let/title=V    v = x[x=1:5] - 0.2*y[y=1:4] + 1.1* t[gt=tax]
+ 
+save/clobber/file="tmp/uagg_1.nc" sst
+save/clobber/file="tmp/uagg_2.nc" temp
+save/clobber/file="tmp/uagg_3.nc" u
+save/clobber/file="tmp/uagg_4.nc" v
+ 
+save/l=1:3/clobber/file="tmp/uagg_1_t1.nc" sst
+save/l=4:6/clobber/file="tmp/uagg_1_t2.nc" sst
+save/l=7:10/clobber/file="tmp/uagg_1_t3.nc" sst
+ 
+can dat/all
+union tmp/uagg_1.nc,tmp/uagg_2.nc,tmp/uagg_3.nc,tmp/uagg_4.nc
+sh dat
+     currently SET data sets:
+    5> ./bn_aggregate_u.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
+ 
+vec/l=5 u,v
+ 
+cancel dat/all
+ 
+! issue a note if a variable is already in the Union
+! a new file with different defiontions of sst and temp
+!
+let/title="sst in uagg_5"  sst = 1.1*x[x=1:5] + 1.3*y[y=1:4] + t[gt=tax]
+let/title="temp in uagg_5" temp = 0.9*x[x=1:5] - y[y=1:4] + t[gt=tax]
+save/clobber/file="tmp/uagg_5.nc" sst,temp
+ 
+! In the union set, sst comes from uagg_1, temp comes from uagg_5
+union uu = tmp/uagg_1.nc,tmp/uagg_5.nc
+sh dat/att
+     currently SET data sets:
+    3> uu  (default)  Union aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        2    F       uu
+  
+ SST                   FLOAT     long_name       CHAR        3    T       sst
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ TEMP                  FLOAT     long_name       CHAR        14   T       temp in uagg_5
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+can dat/all
+ 
+! Or use /quiet to supress the note
+union/quiet uu = tmp/uagg_1.nc,tmp/uagg_5.nc
+ 
+let tnames = SPAWN("ls -1 tmp/uagg_1_*.nc")
+tseries  temp_time_agg = tnames
+sh dat
+     currently SET data sets:
+    3> uu     Union aggregation
+ name     title                             I         J         K         L
+ SST      sst                              1:5       1:4       ...       1:10
+ TEMP     temp in uagg_5                   1:5       1:4       ...       1:10
+ 
+    4> temp_time_agg  (default)
+ name     title                             I         J         K         L
+ SST      sst                              1:5       1:4       ...       1:10
+ 
+union temp_time_agg, tmp/uagg_2.nc,tmp/uagg_3.nc,tmp/uagg_4.nc
+ 
+shade/l=2 sst - temp
+ 
+ 
+can dat/all; can var/all; can sym/all
+ 
+! exercise 6D aggregations: UNION with T, E, and F simultaneously
+ 
+! do not bother to echo the creation of files and the definitions of the
+! many time aggregations
+CANCEL MODE VERIFY
+! define T aggregations
+ 
+! timeseries of files with variable fcst_1
+repeat/name=fdate/range=1:7:3 (\
+  let tstart = t[gt=truemonth,l=`fdate`];\
+  repeat/name=ens/range=1:2:1 (\
+    let realization = `ens`;\
+    TSERIES  t_f`(fdate-1)/3+1,zw=2`_e`ens` = SPAWN("ls -1 tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_t?.nc")  ))
+!-> REPEAT: FDATE:1
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=1]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f01_e1 = SPAWN("ls -1 tmp/f01_e1_t?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f01_e2 = SPAWN("ls -1 tmp/f01_e2_t?.nc")
+!-> REPEAT: FDATE:4
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=4]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f02_e1 = SPAWN("ls -1 tmp/f02_e1_t?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f02_e2 = SPAWN("ls -1 tmp/f02_e2_t?.nc")
+!-> REPEAT: FDATE:7
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=7]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f03_e1 = SPAWN("ls -1 tmp/f03_e1_t?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f03_e2 = SPAWN("ls -1 tmp/f03_e2_t?.nc")
+ 
+! timeseries of files with variable fcst_3
+repeat/name=fdate/range=1:7:3 (\
+  let tstart = t[gt=truemonth,l=`fdate`];\
+  repeat/name=ens/range=1:2:1 (\
+    let realization = `ens`;\
+    TSERIES  t_f`(fdate-1)/3+1,zw=2`_e`ens`_3 = SPAWN("ls -1 tmp/f`(fdate-1)/3+1,zw=2`_e`ens`_tu?.nc")  ))
+!-> REPEAT: FDATE:1
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=1]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f01_e1_3 = SPAWN("ls -1 tmp/f01_e1_tu?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f01_e2_3 = SPAWN("ls -1 tmp/f01_e2_tu?.nc")
+!-> REPEAT: FDATE:4
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=4]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f02_e1_3 = SPAWN("ls -1 tmp/f02_e1_tu?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f02_e2_3 = SPAWN("ls -1 tmp/f02_e2_tu?.nc")
+!-> REPEAT: FDATE:7
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=7]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/T  t_f03_e1_3 = SPAWN("ls -1 tmp/f03_e1_tu?.nc")
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/T  t_f03_e2_3 = SPAWN("ls -1 tmp/f03_e2_tu?.nc")
+ 
+cancel variable realization
+ 
+SET MODE VERIFY
+! now union these to make datsets with fcnst_1 and fcst_3.
+ 
+show data/files/br;
+     currently SET data sets:
+    1> t_f01_e1
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_t3.nc
+ 
+    2> t_f01_e2
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_t3.nc
+ 
+    3> t_f02_e1
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e1_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e1_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e1_t3.nc
+ 
+    4> t_f02_e2
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e2_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e2_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e2_t3.nc
+ 
+    5> t_f03_e1
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e1_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e1_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e1_t3.nc
+ 
+    6> t_f03_e2
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e2_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e2_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e2_t3.nc
+ 
+    7> t_f01_e1_3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_tu1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_tu2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_tu3.nc
+ 
+    8> t_f01_e2_3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_tu1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_tu2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_tu3.nc
+ 
+    9> t_f02_e1_3
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e1_tu1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e1_tu2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e1_tu3.nc
+ 
+   10> t_f02_e2_3
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e2_tu1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e2_tu2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e2_tu3.nc
+ 
+   11> t_f03_e1_3
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e1_tu1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e1_tu2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e1_tu3.nc
+ 
+   12> t_f03_e2_3  (default)
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e2_tu1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e2_tu2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e2_tu3.nc
+ 
+ 
+DEFINE DATA/AGGREGAT/U  u1 = t_f01_e1_3, t_f01_e1
+DEFINE DATA/AGGREGAT/U  u2 = t_f01_e2, t_f01_e2_3
+show data u1 u2
+     currently SET data sets:
+   13> u1     Union aggregation
+ name     title                             I         J         K         L
+ FCST_3   another variable                 1:21      1:11      1:1       1:36
+       (L=1:12)
+ REALIZATION
+          1                                ...       ...       ...       ...
+ FCST     some variable                    1:21      1:11      1:1       1:36
+       (L=1:12)
+ FCST_2   another variable                 1:21      1:11      1:1       1:36
+       (L=1:12)
+ 
+can data u1 u2
+ 
+! Make a batch of files, timeseries aggregations union-ed.
+! the /QUIET supresses the note about skipping duplicate variables.
+repeat/name=fdate/range=1:7:3 (\
+  let tstart = t[gt=truemonth,l=`fdate`];\
+  repeat/name=ens/range=1:2:1 (\
+    let realization = `ens`;\
+    UNION/quiet  t_f_u`(fdate-1)/3+1,zw=2`_e`ens` = t_f`(fdate-1)/3+1,zw=2`_e`ens`, t_f`(fdate-1)/3+1,zw=2`_e`ens`_3;\
+    show data/br t_f_u`(fdate-1)/3+1,zw=2`_e`ens`))
+!-> REPEAT: FDATE:1
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=1]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u01_e1 = t_f01_e1, t_f01_e1_3
+ !-> show data/br t_f_u01_e1
+     currently SET data sets:
+   13> t_f_u01_e1  (default)  Union aggregation
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u01_e2 = t_f01_e2, t_f01_e2_3
+ !-> show data/br t_f_u01_e2
+     currently SET data sets:
+   14> t_f_u01_e2  (default)  Union aggregation
+!-> REPEAT: FDATE:4
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=4]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u02_e1 = t_f02_e1, t_f02_e1_3
+ !-> show data/br t_f_u02_e1
+     currently SET data sets:
+   15> t_f_u02_e1  (default)  Union aggregation
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u02_e2 = t_f02_e2, t_f02_e2_3
+ !-> show data/br t_f_u02_e2
+     currently SET data sets:
+   16> t_f_u02_e2  (default)  Union aggregation
+!-> REPEAT: FDATE:7
+ !-> DEFINE VARIABLE tstart = t[gt=truemonth,l=7]
+!-> REPEAT: ENS:1
+ !-> DEFINE VARIABLE realization = 1
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u03_e1 = t_f03_e1, t_f03_e1_3
+ !-> show data/br t_f_u03_e1
+     currently SET data sets:
+   17> t_f_u03_e1  (default)  Union aggregation
+!-> REPEAT: ENS:2
+ !-> DEFINE VARIABLE realization = 2
+ !-> DEFINE DATA/AGGREGAT/U/quiet  t_f_u03_e2 = t_f03_e2, t_f03_e2_3
+ !-> show data/br t_f_u03_e2
+     currently SET data sets:
+   18> t_f_u03_e2  (default)  Union aggregation
+ 
+cancel variable realization
+ 
+! should share the same time axis
+show grid fcst[d=t_f01_e1]
+    GRID GEM1
+ name       axis              # pts   start                end                 subset
+ XAX       LONGITUDE           21mr   140E                 160E                full
+ YAX       LATITUDE            11 r   10N                  20N                 full
+ ZAX1      Z (m)                1 r   250                  250                 full
+ TRUEMONTH1 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
+ YAX       LATITUDE            11 r   10N                  20N                 full
+ ZAX1      Z (m)                1 r   250                  250                 full
+ TRUEMONTH1 TIME               36 i   16-JAN-1950 12:00    16-DEC-1952 12:00   full
+ 
+! Now go on and aggregate these time & union aggregations, in E and F
+ 
+! ======== TEST SET 1:  aggregate E first, then F
+ 
+! define tue aggregations -- only the first remains unhidden
+ENSEMBLE      tue_f01 = t_f_u01_e1, t_f_u01_e2
+ENSEMBLE/hide tue_f02 = t_f_u02_e1, t_f_u02_e1
+ENSEMBLE/hide tue_f03 = t_f_u03_e1, t_f_u03_e2
+SHOW DATA/brief
+     currently SET data sets:
+    1> t_f01_e1
+    2> t_f01_e2
+    3> t_f02_e1
+    4> t_f02_e2
+    5> t_f03_e1
+    6> t_f03_e2
+    7> t_f01_e1_3
+    8> t_f01_e2_3
+    9> t_f02_e1_3
+   10> t_f02_e2_3
+   11> t_f03_e1_3
+   12> t_f03_e2_3
+   13> t_f_u01_e1     Union aggregation
+   14> t_f_u01_e2     Union aggregation
+   16> t_f_u02_e2     Union aggregation
+   19> tue_f01     Ensemble aggregation
+   20> tue_f02     Ensemble aggregation
+   21> tue_f03  (default)  Ensemble aggregation
+SHOW DATA/FULL tue_f03
+     currently SET data sets:
+   21> tue_f03  (default)  Ensemble aggregation
+     Ensemble series of 2 datasets patterned on t_f_u03_e1
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:2       ...
+       (L=7:18)
+               on grid GEN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:2       ...
+       (L=7:18)
+               on grid GEN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  
+ REALIZATION
+          1                                ...       ...       ...       ...       1:2       ...
+               on grid GEN3 with -1.E+34 for missing data
+             E=0.5:2.5  
+ FCST_3   another variable                 1:21      1:11      1:1       1:36      1:2       ...
+       (L=7:18)
+               on grid GEN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  
+ 
+  time range: 16-JUL-1950 12:00 to 16-JUN-1953 00:00
+ 
+          Member datasets:
+      21.1: t_f_u03_e1
+      21.2: t_f_u03_e2
+SHOW DATA/ATT tue_f03   ! notice the promotion of fcst.im_everywhere
+     currently SET data sets:
+   21> tue_f03  (default)  Ensemble aggregation
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               aggregate name  CHAR        7    F       tue_f03
+  
+ FCST                  FLOAT     long_name       CHAR        13   T       some variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ FCST_2                FLOAT     long_name       CHAR        16   T       another variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ REALIZATION           FLOAT     long_name       CHAR        1    T       1
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ FCST_3                FLOAT     long_name       CHAR        16   T       another variable
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ 
+! define tuef aggregation
+FMRC/HIDE tuef = tue_f01, tue_f02, tue_f03
+SHOW DATA/brief/files
+     currently SET data sets:
+    1> t_f01_e1
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_t3.nc
+ 
+    2> t_f01_e2
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_t1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_t2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_t3.nc
+ 
+    3> t_f02_e1
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e1_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e1_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e1_t3.nc
+ 
+    4> t_f02_e2
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e2_t1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e2_t2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e2_t3.nc
+ 
+    5> t_f03_e1
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e1_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e1_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e1_t3.nc
+ 
+    6> t_f03_e2
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e2_t1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e2_t2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e2_t3.nc
+ 
+    7> t_f01_e1_3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e1_tu1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e1_tu2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e1_tu3.nc
+ 
+    8> t_f01_e2_3
+          time-dependent data files:
+16-JAN-1950 12:00 -> 16-DEC-1950 12:00    tmp/f01_e2_tu1.nc
+16-JAN-1951 12:00 -> 16-DEC-1951 12:00    tmp/f01_e2_tu2.nc
+16-JAN-1952 12:00 -> 16-DEC-1952 12:00    tmp/f01_e2_tu3.nc
+ 
+    9> t_f02_e1_3
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e1_tu1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e1_tu2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e1_tu3.nc
+ 
+   10> t_f02_e2_3
+          time-dependent data files:
+16-APR-1950 00:00 -> 16-MAR-1951 12:00    tmp/f02_e2_tu1.nc
+16-APR-1951 00:00 -> 16-MAR-1952 12:00    tmp/f02_e2_tu2.nc
+16-APR-1952 00:00 -> 16-MAR-1953 12:00    tmp/f02_e2_tu3.nc
+ 
+   11> t_f03_e1_3
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e1_tu1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e1_tu2.nc
+16-JUL-1952 12:00 -> 16-JUN-1953 00:00    tmp/f03_e1_tu3.nc
+ 
+   12> t_f03_e2_3
+          time-dependent data files:
+16-JUL-1950 12:00 -> 16-JUN-1951 00:00    tmp/f03_e2_tu1.nc
+16-JUL-1951 12:00 -> 16-JUN-1952 00:00    tmp/f03_e2_tu2.nc
+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
+ 
+   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
+ 
+   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
+ 
+   22> tuef  (default)  Forecast aggregation
+          Member datasets:
+      22.1: tue_f01
+      22.2: tue_f02
+      22.3: tue_f03
+show data/full tuef
+     currently SET data sets:
+   22> tuef  (default)  Forecast aggregation
+     Forecast series of 3 datasets patterned on tue_f01
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+               on grid GFN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  F=16-NOV-1949 18:00:15-AUG-1950 06:00  
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:36      ...       1:3
+             days since 01-JAN-1900 00:00:00 on grid FTI1 with -1.E+34 for missing data
+             F=16-NOV-1949 18:00:15-AUG-1950 06:00  
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+               on grid GFN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  F=16-NOV-1949 18:00:15-AUG-1950 06:00  
+ FCST_3   another variable                 1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+               on grid GFN with -1.E+34 for missing data
+             X=139.5E:160.5E  Y=9.5N:20.5N  Z=249.5:250.5  E=0.5:2.5  F=16-NOV-1949 18:00:15-AUG-1950 06:00  
+ 
+  time range: 15.214 to 1080.2
+ 
+          Member datasets:
+      22.1: tue_f01
+      22.2: tue_f02
+      22.3: tue_f03
+ 
+! The time-union-ensemble-forecast aggregation
+ 
+set data tuef
+show data tuef
+     currently SET data sets:
+   22> tuef  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     some variable                    1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:36      ...       1:3
+ FCST_2   another variable                 1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+ FCST_3   another variable                 1:21      1:11      1:1       1:36      1:2       1:3
+       (L=1:12)
+ 
+sh grid fcst
+    GRID (G025)  Forecast Aggregation Grid
+ name       axis              # pts   start                end                 subset
+ XAX       LONGITUDE           21mr   140E                 160E                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
+ 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
+ name       axis              # pts   start                end                 subset
+ XAX       LONGITUDE           21mr   140E                 160E                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
+ TF_CAL_F  FORECAST             3 i   01-JAN-1950 00:00    01-JUL-1950 00:00   full
+ 
+! simplest acess -- compact form -- just demonstrate it doesn't fail
+stat/brief fcst[i=11:12, j=5:6, l=31:32, m=1:2, n=2:3]
+ 
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad  data: 0
+ Minimum value: 224.8
+ Maximum value: 237.7
+ Mean    value: 228.19 (unweighted average)
+stat/brief fcst_3[i=11:12, j=5:6, l=31:32, m=1:2, n=2:3]
+ 
+ Total # of data points: 32 (2*2*1*2*2*2)
+ # flagged as bad  data: 0
+ Minimum value: 227.8
+ Maximum value: 240.74
+ Mean    value: 231.21 (unweighted average)
+ 
+! diagonal forecast view of ensemble mean
+let diag_fcst = fcst[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]
+shade/x=150E/y=15n diag_fcst[m=1:2 at ave]
+ 
+let diag_fcst_3 = fcst_3[gt(tf_times)=TF_CAL_T,gf(tf_times)=TF_LAG_F]
+shade/x=150E/y=15n diag_fcst[m=1:2 at ave]
+ 
+! the difference will be just a small variation from the value 3
+let diff_of_union = diag_fcst - diag_fcst_3
+ 
+shade/x=150E/y=15n  diff_of_union[m=1:2 at ave]
+CANCEL DATA/ALL
+ 
+ 
+*** Running ferret script: bn_ez_noupcase.jnl
+[?1034h! bn_ez_noupcase.jnl
+! 7/2016 *acm* see ticket 2454
+!
+! Handle variable-name upcasing for Ascii data
+! in the same way as for netcdf variables.
+! Previously they were resolutely up-cased and the
+! lowercase version was unavailable.
+ 
+can mode upcase
+ 
+let abc = {2,4,6,8,6}
+list/clobber/nohead/norow/file=abc.dat abc
+can var/all
+file/var=abc abc.dat
+sh dat
+     currently SET data sets:
+    1> ./abc.dat  (default)
+ name     title                             I         J         K         L
+ abc      abc                              1:5       ...       ...       ...
+ 
+sh dat/att
+     currently SET data sets:
+    1> ./abc.dat  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        7    F       abc.dat
+  
+ abc                   FLOAT     long_name       CHAR        3    T       abc
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+save/clobber/file=a.nc abc
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	AX002 = 5 ;
+variables:
+	double AX002(AX002) ;
+		AX002:point_spacing = "even" ;
+		AX002:axis = "X" ;
+	float abc(AX002) ;
+		abc:missing_value = -1.e+34f ;
+		abc:_FillValue = -1.e+34f ;
+		abc:long_name = "abc" ;
+		abc:history = "From abc.dat" ;
+
+// global attributes:
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+! Delimited read
+columns/skip=1/var="lab,nothing,var,latitude,longitude"/type="text,text,num,latitude,longitude" bn_delimited_read_1.dat
+sh dat
+     currently SET data sets:
+    1> ./abc.dat
+ name     title                             I         J         K         L
+ abc      abc                              1:5       ...       ...       ...
+ 
+    2> ./bn_delimited_read_1.dat  (default)
+ name     title                             I         J         K         L
+ lab      lab                              1:7       ...       ...       ...
+ nothing  nothing                          1:7       ...       ...       ...
+ var      var                              1:7       ...       ...       ...
+ latitude latitude                         1:7       ...       ...       ...
+       (Latitude)
+ longitude
+          longitude                        1:7       ...       ...       ...
+       (Longitude)
+ 
+sh dat/att
+     currently SET data sets:
+    1> ./abc.dat
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        7    F       abc.dat
+  
+ abc                   FLOAT     long_name       CHAR        3    T       abc
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+    2> ./bn_delimited_read_1.dat  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               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
+  
+ nothing               CHAR      long_name       CHAR        7    T       nothing
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ var                   FLOAT     long_name       CHAR        3    T       var
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ latitude              FLOAT     long_name       CHAR        8    T       latitude
+                                 units           CHAR        13   T       degrees_north
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+ longitude             FLOAT     long_name       CHAR        9    T       longitude
+                                 units           CHAR        12   T       degrees_east
+                                 missing_value   FLOAT       1    T       -1.E+34
+  
+sav/file=a.nc/clobber var,longitude,latitude
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+	AX003 = 6 ;
+variables:
+	double AX003(AX003) ;
+		AX003:point_spacing = "even" ;
+		AX003:axis = "X" ;
+	float var(AX003) ;
+		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(AX003) ;
+		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(AX003) ;
+		latitude:missing_value = -1.e+34f ;
+		latitude:_FillValue = -1.e+34f ;
+		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" ;
+		:Conventions = "CF-1.6" ;
+}
+ 
+set mode/last upcase
+*** Running ferret script: bn_spawn_fail.jnl
+[?1034h! bn_spawn_fail.jnl
+!  See ticket 2453
+!  If a no-success flag is returned from a SPAWN,
+!  report that as a warning.
+!  8/2016 *acm*
+ 
+sp ls notafile.nowhere
+sp grep "this text is not in the file" bn_all.jnl
+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
+! see ticket 2469
+ 
+let a = x[gx=1:3:1] + t[gt=1:7:1]
+let a_xav = a[x=@ave]
+let a_dev = a - a_xav
+ 
+list a_dev[x=@ave]
+             VARIABLE : A - A_XAV
+             SUBSET   : 7 points (T)
+             X        : 0.5 to 3.5 (averaged)
+ 1   / 1:  0.0000
+ 2   / 2:  0.0000
+ 3   / 3:  0.0000
+ 4   / 4:  0.0000
+ 5   / 5:  0.0000
+ 6   / 6:  0.0000
+ 7   / 7:  0.0000
+ 
+! Previously this was an error
+list a[x=@ave] - a_xav[x=@ave]
+             VARIABLE : A[X=@AVE] - A_XAV[X=@AVE]
+             SUBSET   : 7 points (T)
+             X        : 0.5 to 3.5
+ 1   / 1:  0.0000
+ 2   / 2:  0.0000
+ 3   / 3:  0.0000
+ 4   / 4:  0.0000
+ 5   / 5:  0.0000
+ 6   / 6:  0.0000
+ 7   / 7:  0.0000
+ 
+! Combine with functions, regridding
+let a = x[gx=1:3:1] + t[gt=1:7:1]
+let a_xav = a[x=@ave]
+let a_xav_xav = a_xav[x=@ave]
+let b = samplel(a_xav_xav, l[gl=1:3:1])
+let c = b[gt=1:3:1]
+ 
+! Previously an error
+list c
+             VARIABLE : B[GT=1:3:1]
+             SUBSET   : 3 points (T)
+ 1   / 1:  3.000
+ 2   / 2:  4.000
+ 3   / 3:  5.000
+ 
+! Likewise for @SUM, @MIN, @MAX.
+ 
+let a = TSEQUENCE({1,2,3})
+let a_xtrns = a[t=@SUM]
+list a[t=@SUM] - a_xtrns[t=@SUM]
+             VARIABLE : A[T=@SUM] - A_XTRNS[T=@SUM]
+             T        : 0.5 to 3.5
+          0.0000
+ 
+let a_xtrns = a[t=@MIN]
+list a[t=@MIN] - a_xtrns[t=@MIN]
+             VARIABLE : A[T=@MIN] - A_XTRNS[T=@MIN]
+             T        : 0.5 to 3.5
+          0.0000
+ 
+let a_xtrns = a[t=@MAX]
+list a[t=@MAX] - a_xtrns[t=@MAX]
+             VARIABLE : A[T=@MAX] - A_XTRNS[T=@MAX]
+             T        : 0.5 to 3.5
+          0.0000
+ 
+*** Running ferret script: bn_agg_member_syntax.jnl
+[?1034h! bn_agg_member_syntax
+ 
+! *sh* 11/16
+ 
+! running of this benchmark assumes that a tmp directory has been created
+! and that it contains the aggregation member files created by bn_aggregate_f
+ 
+ 
+! define an 11-member FMRC aggregation
+let files = SPAWN("ls -1 tmp/fcst_*.nc")
+fmrc my_fmrc = files
+show data/members my_fmrc   ! /FILES is deprecated
+     currently SET data sets:
+   12> my_fmrc  (default)  Forecast aggregation
+ name     title                             I         J         K         L         M         N
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ TF_TIMES Forecast time step matrix        ...       ...       ...       1:24      ...       1:11
+ FCST_2   another variable                 1:21      1:21      ...       1:24      ...       1:11
+       (L=1:24)
+ 
+          Member datasets:
+      12.1 : tmp/fcst_1.nc
+      12.2 : tmp/fcst_2.nc
+      12.3 : tmp/fcst_3.nc
+      12.4 : tmp/fcst_4.nc
+      12.5 : tmp/fcst_5.nc
+      12.6 : tmp/fcst_6.nc
+      12.7 : tmp/fcst_7.nc
+      12.8 : tmp/fcst_8.nc
+      12.9 : tmp/fcst_9.nc
+      12.10: tmp/fcst_10.nc
+      12.11: tmp/fcst_11.nc
+ 
+show data 12.3   ! turns out to be dset=5
+     currently SET data sets:
+    5> tmp/fcst_3.nc
+ name     title                             I         J         K         L
+ FCST     FIELD + FCST_ERROR               1:21      1:21      ...       1:24
+       (L=7:30)
+ FCST_2   another variable                 1:21      1:21      ...       1:24
+       (L=7:30)
+ 
+ 
+! these are now all allowable references to the parent aggregation
+stat fcst[d=12]
+ 
+             FIELD + FCST_ERROR
+             LONGITUDE: 139.5E to 160.5E
+             LATITUDE: 19.5N to 40.5N
+             Z:  N/A
+             MODEL ELAPSED TIME (day): 0 to 729.39
+             E:  N/A
+             FORECAST: 16-NOV-1949 09:36 to 15-AUG-1952 14:24
+             DATA SET: my_fmrc
+ 
+ Total # of data points: 116424 (21*21*1*24*1*11)
+ # flagged as bad  data: 0
+ Minimum value: -1.0038
+ Maximum value: 1.4046
+ Mean    value: 0.13342 (unweighted average)
+ Standard deviation: 0.55306
+stat/br fcst[d=12.]
+ 
+ Total # of data points: 116424 (21*21*1*24*1*11)
+ # flagged as bad  data: 0
+ Minimum value: -1.0038
+ Maximum value: 1.4046
+ Mean    value: 0.13342 (unweighted average)
+stat/br fcst[d=12.0]
+ 
+ Total # of data points: 116424 (21*21*1*24*1*11)
+ # flagged as bad  data: 0
+ Minimum value: -1.0038
+ Maximum value: 1.4046
+ Mean    value: 0.13342 (unweighted average)
+ 
+! reference a member
+stat fcst[d=12.3]
+ 
+             FIELD + FCST_ERROR
+             L=7:30
+             LONGITUDE: 139.5E to 160.5E
+             LATITUDE: 19.5N to 40.5N
+             Z:  N/A
+             TIME: 01-JUL-1950 00:00 to 01-JUL-1952 00:00
+             E:  N/A
+             F:  N/A
+             DATA SET: tmp/fcst_3.nc
+ 
+ Total # of data points: 10584 (21*21*1*24*1*1)
+ # flagged as bad  data: 0
+ Minimum value: -0.9973
+ Maximum value: 1.4046
+ Mean    value: 0.1338 (unweighted average)
+ Standard deviation: 0.54369
+stat fcst[d=12.3] - fcst[d=5]   ! v-v=0
+ 
+             FCST[D=fcst_3.nc] - FCST[D=fcst_3.nc]
+             LONGITUDE: 139.5E to 160.5E
+             LATITUDE: 19.5N to 40.5N
+             Z:  N/A
+             TIME: 01-JUL-1950 00:00 to 01-JUL-1952 00:00
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 10584 (21*21*1*24*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ Standard deviation: 0
+ 
+! note that FMRC members have distinct time axes. Specify "L=1"
+stat fcst[d=12.3,l=1] - fcst[d=12.1,l=1]
+ 
+             FCST[D=fcst_3.nc,L=1] - FCST[D=fcst_1.nc,L=1]
+             LONGITUDE: 139.5E to 160.5E
+             LATITUDE: 19.5N to 40.5N
+             Z:  N/A
+             TIME: 16-JUL-1950 12:00
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 441 (21*21*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: -0.12028
+ Maximum value: 0.12005
+ Mean    value: -0.007033 (unweighted average)
+ Standard deviation: 0.07443
+ 
+! deliberate errors
+set mode ignore
+ 
+stat/br fcst[d=5.3]       ! d=5 is not an aggregation
+stat/br fcst[d=12.30]     ! not this many members
+stat/br fcst[d=12.300000]
+ 
+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
+ 
+          time-dependent data files:
+31-DEC-2009 23:59 -> 31-DEC-2009 23:59    bn_agg_member_syntax.jnl
+ 
+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
+sh data/members my_ens
+     currently SET data sets:
+    5> my_ens  (default)  Ensemble aggregation
+ name     title                             I         J         K         L         M         N
+ SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
+ 
+          Member datasets:
+      5.1: ./ens1.nc
+      5.2: ./ens2.nc
+      5.3: ./ens3.nc
+      5.4: ./ens4.nc
+ 
+show data 5.3
+     currently SET data sets:
+    3> ./ens3.nc
+ name     title                             I         J         K         L
+ SST      SST_IN                           1:10      1:9       ...       1:12
+ 
+stat sst[d=5]
+ 
+             SST_IN
+             LONGITUDE: 110W to 90W
+             LATITUDE: 12N to 30N
+             Z:  N/A
+             TIME: 01-JAN 00:45 to 31-DEC 06:34
+             E (realization): 0.5 to 4.5 (ens1.nc)
+             F:  N/A
+             DATA SET: my_ens
+ 
+ Total # of data points: 4320 (10*9*1*12*4*1)
+ # flagged as bad  data: 1156
+ Minimum value: 16.844
+ Maximum value: 123.32
+ Mean    value: 67.406 (unweighted average)
+ Standard deviation: 30.975
+stat sst[d=5.2]
+ 
+             SST_IN
+             LONGITUDE: 110W to 90W
+             LATITUDE: 12N to 30N
+             Z:  N/A
+             TIME: 01-JAN 00:45 to 31-DEC 06:34
+             E:  N/A
+             F:  N/A
+             DATA SET: ./ens2.nc
+ 
+ Total # of data points: 1080 (10*9*1*12*1*1)
+ # flagged as bad  data: 289
+ Minimum value: 33.688
+ Maximum value: 61.66
+ Mean    value: 53.925 (unweighted average)
+ Standard deviation: 5.1904
+ 
+can data my_ens
+ 
+! do them in another order
+ENSEMBLE fourfiles = ens1, ens3, ens2, ens4
+ 
+! not this is dataset 2
+show data 5.3
+     currently SET data sets:
+    3> ./ens2.nc
+ name     title                             I         J         K         L
+ SST      SST_IN                           1:10      1:9       ...       1:12
+ 
+ 
+stat sst[d=5] - sst[d=5.3]   ! ensemble minus member #3
+ 
+             SST[D=fourfiles] - SST[D=ens2]
+             LONGITUDE: 110W to 90W
+             LATITUDE: 12N to 30N
+             Z:  N/A
+             TIME: 01-JAN 00:45 to 31-DEC 06:34
+             E (realization): 0.5 to 4.5
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 4320 (10*9*1*12*4*1)
+ # flagged as bad  data: 1156
+ Minimum value: -30.83
+ Maximum value: 61.66
+ Mean    value: 13.481 (unweighted average)
+ Standard deviation: 30.317
+ 
+ 
+! deliberate errors
+set mode ignore
+ 
+stat/br sst[d=4.1]     ! not an ensemble
+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
+! examples defining axes with /DEFINE AXIS/MONTHLY
+!
+! When a true monthly axis is found in a dataset, store it as a TRUEMONTH axis
+! When writing a TRUEMONTH axis, write the correct coordinates using the original
+! units if it came from a dataset, or using units of days if it's user-defined.
+ 
+! See known error conditions below
+ 
+ 
+! For comparison, define regularly-spaced monthly axis of the sort we've always defined
+ 
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2000/units=month/edges t_reg_month
+sh axis/t t_reg_month
+ name       axis              # pts   start                end
+ T_REG_MONTH TIME              19 r   16-JAN-2010 05:14    18-JUL-2011 01:58
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (MONTH)
+       1>  16-JAN-2010 05:14:33  1          01-JAN-2010 00:00:00   120.5189
+       2>  15-FEB-2010 15:43:39  1          31-JAN-2010 10:29:06   121.5189
+       3>  18-MAR-2010 02:12:45  1          02-MAR-2010 20:58:12   122.5189
+       4>  17-APR-2010 12:41:51  1          02-APR-2010 07:27:18   123.5189
+       5>  17-MAY-2010 23:10:57  1          02-MAY-2010 17:56:24   124.5189
+       6>  17-JUN-2010 09:40:03  1          02-JUN-2010 04:25:30   125.5189
+       7>  17-JUL-2010 20:09:09  1          02-JUL-2010 14:54:36   126.5189
+       8>  17-AUG-2010 06:38:15  1          02-AUG-2010 01:23:42   127.5189
+       9>  16-SEP-2010 17:07:21  1          01-SEP-2010 11:52:48   128.5189
+      10>  17-OCT-2010 03:36:27  1          01-OCT-2010 22:21:54   129.5189
+      11>  16-NOV-2010 14:05:33  1          01-NOV-2010 08:51:00   130.5189
+      12>  17-DEC-2010 00:34:39  1          01-DEC-2010 19:20:06   131.5189
+      13>  16-JAN-2011 11:03:45  1          01-JAN-2011 05:49:12   132.5189
+      14>  15-FEB-2011 21:32:51  1          31-JAN-2011 16:18:18   133.5189
+      15>  18-MAR-2011 08:01:57  1          03-MAR-2011 02:47:24   134.5189
+      16>  17-APR-2011 18:31:03  1          02-APR-2011 13:16:30   135.5189
+      17>  18-MAY-2011 05:00:09  1          02-MAY-2011 23:45:36   136.5189
+      18>  17-JUN-2011 15:29:15  1          02-JUN-2011 10:14:42   137.5189
+      19>  18-JUL-2011 01:58:21  1          02-JUL-2011 20:43:48   138.5189
+ 
+! true-monthly axes, t0 at start of axis
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2010/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2010             JUL-2011 (True Monthly)
+T0 = 1-JAN-2010
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2010              31         01-JAN-2010           0
+       2>  FEB-2010              28         01-FEB-2010           1
+       3>  MAR-2010              31         01-MAR-2010           2
+       4>  APR-2010              30         01-APR-2010           3
+       5>  MAY-2010              31         01-MAY-2010           4
+       6>  JUN-2010              30         01-JUN-2010           5
+       7>  JUL-2010              31         01-JUL-2010           6
+       8>  AUG-2010              31         01-AUG-2010           7
+       9>  SEP-2010              30         01-SEP-2010           8
+      10>  OCT-2010              31         01-OCT-2010           9
+      11>  NOV-2010              30         01-NOV-2010           10
+      12>  DEC-2010              31         01-DEC-2010           11
+      13>  JAN-2011              31         01-JAN-2011           12
+      14>  FEB-2011              28         01-FEB-2011           13
+      15>  MAR-2011              31         01-MAR-2011           14
+      16>  APR-2011              30         01-APR-2011           15
+      17>  MAY-2011              31         01-MAY-2011           16
+      18>  JUN-2011              30         01-JUN-2011           17
+      19>  JUL-2011              31         01-JUL-2011           18
+ 
+! t0 before start of axis
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2010             JUL-2011 (True Monthly)
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2010              31         01-JAN-2010           120
+       2>  FEB-2010              28         01-FEB-2010           121
+       3>  MAR-2010              31         01-MAR-2010           122
+       4>  APR-2010              30         01-APR-2010           123
+       5>  MAY-2010              31         01-MAY-2010           124
+       6>  JUN-2010              30         01-JUN-2010           125
+       7>  JUL-2010              31         01-JUL-2010           126
+       8>  AUG-2010              31         01-AUG-2010           127
+       9>  SEP-2010              30         01-SEP-2010           128
+      10>  OCT-2010              31         01-OCT-2010           129
+      11>  NOV-2010              30         01-NOV-2010           130
+      12>  DEC-2010              31         01-DEC-2010           131
+      13>  JAN-2011              31         01-JAN-2011           132
+      14>  FEB-2011              28         01-FEB-2011           133
+      15>  MAR-2011              31         01-MAR-2011           134
+      16>  APR-2011              30         01-APR-2011           135
+      17>  MAY-2011              31         01-MAY-2011           136
+      18>  JUN-2011              30         01-JUN-2011           137
+      19>  JUL-2011              31         01-JUL-2011           138
+ 
+! default time origin is start of month of first month
+define axis/t=1-jul-2010:1-jan-2012:1/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JUL-2010             JAN-2012 (True Monthly)
+T0 = 01-JAN-2010
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JUL-2010              31         01-JUL-2010           6
+       2>  AUG-2010              31         01-AUG-2010           7
+       3>  SEP-2010              30         01-SEP-2010           8
+       4>  OCT-2010              31         01-OCT-2010           9
+       5>  NOV-2010              30         01-NOV-2010           10
+       6>  DEC-2010              31         01-DEC-2010           11
+       7>  JAN-2011              31         01-JAN-2011           12
+       8>  FEB-2011              28         01-FEB-2011           13
+       9>  MAR-2011              31         01-MAR-2011           14
+      10>  APR-2011              30         01-APR-2011           15
+      11>  MAY-2011              31         01-MAY-2011           16
+      12>  JUN-2011              30         01-JUN-2011           17
+      13>  JUL-2011              31         01-JUL-2011           18
+      14>  AUG-2011              31         01-AUG-2011           19
+      15>  SEP-2011              30         01-SEP-2011           20
+      16>  OCT-2011              31         01-OCT-2011           21
+      17>  NOV-2011              30         01-NOV-2011           22
+      18>  DEC-2011              31         01-DEC-2011           23
+      19>  JAN-2012              31         01-JAN-2012           24
+ 
+! Cell edges at mid-month
+define axis/t=15-mar-2010:15-dec-2011:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                22 i   MAR-2010             DEC-2011 (True Monthly)
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 22
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2010              31         01-MAR-2010           122
+       2>  APR-2010              30         01-APR-2010           123
+       3>  MAY-2010              31         01-MAY-2010           124
+       4>  JUN-2010              30         01-JUN-2010           125
+       5>  JUL-2010              31         01-JUL-2010           126
+       6>  AUG-2010              31         01-AUG-2010           127
+       7>  SEP-2010              30         01-SEP-2010           128
+       8>  OCT-2010              31         01-OCT-2010           129
+       9>  NOV-2010              30         01-NOV-2010           130
+      10>  DEC-2010              31         01-DEC-2010           131
+      11>  JAN-2011              31         01-JAN-2011           132
+      12>  FEB-2011              28         01-FEB-2011           133
+      13>  MAR-2011              31         01-MAR-2011           134
+      14>  APR-2011              30         01-APR-2011           135
+      15>  MAY-2011              31         01-MAY-2011           136
+      16>  JUN-2011              30         01-JUN-2011           137
+      17>  JUL-2011              31         01-JUL-2011           138
+      18>  AUG-2011              31         01-AUG-2011           139
+      19>  SEP-2011              30         01-SEP-2011           140
+      20>  OCT-2011              31         01-OCT-2011           141
+      21>  NOV-2011              30         01-NOV-2011           142
+      22>  DEC-2011              31         01-DEC-2011           143
+ 
+! other calendars JULIAN
+define axis/cal=julian/t=1-jan-2011:31-jul-2012:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2011             JUL-2012 (True Monthly)
+T0 = 1-JAN-2000
+CALENDAR = JULIAN
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2011              31         01-JAN-2011           132
+       2>  FEB-2011              28         01-FEB-2011           133
+       3>  MAR-2011              31         01-MAR-2011           134
+       4>  APR-2011              30         01-APR-2011           135
+       5>  MAY-2011              31         01-MAY-2011           136
+       6>  JUN-2011              30         01-JUN-2011           137
+       7>  JUL-2011              31         01-JUL-2011           138
+       8>  AUG-2011              31         01-AUG-2011           139
+       9>  SEP-2011              30         01-SEP-2011           140
+      10>  OCT-2011              31         01-OCT-2011           141
+      11>  NOV-2011              30         01-NOV-2011           142
+      12>  DEC-2011              31         01-DEC-2011           143
+      13>  JAN-2012              31         01-JAN-2012           144
+      14>  FEB-2012              29         01-FEB-2012           145
+      15>  MAR-2012              31         01-MAR-2012           146
+      16>  APR-2012              30         01-APR-2012           147
+      17>  MAY-2012              31         01-MAY-2012           148
+      18>  JUN-2012              30         01-JUN-2012           149
+      19>  JUL-2012              31         01-JUL-2012           150
+ 
+! default time origin
+define axis/cal=julian/t=15-mar-2010:15-dec-2011:1/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                22 i   MAR-2010             DEC-2011 (True Monthly)
+T0 = 01-JAN-2010
+CALENDAR = JULIAN
+   Axis span (to cell edges) = 22
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2010              31         01-MAR-2010           2
+       2>  APR-2010              30         01-APR-2010           3
+       3>  MAY-2010              31         01-MAY-2010           4
+       4>  JUN-2010              30         01-JUN-2010           5
+       5>  JUL-2010              31         01-JUL-2010           6
+       6>  AUG-2010              31         01-AUG-2010           7
+       7>  SEP-2010              30         01-SEP-2010           8
+       8>  OCT-2010              31         01-OCT-2010           9
+       9>  NOV-2010              30         01-NOV-2010           10
+      10>  DEC-2010              31         01-DEC-2010           11
+      11>  JAN-2011              31         01-JAN-2011           12
+      12>  FEB-2011              28         01-FEB-2011           13
+      13>  MAR-2011              31         01-MAR-2011           14
+      14>  APR-2011              30         01-APR-2011           15
+      15>  MAY-2011              31         01-MAY-2011           16
+      16>  JUN-2011              30         01-JUN-2011           17
+      17>  JUL-2011              31         01-JUL-2011           18
+      18>  AUG-2011              31         01-AUG-2011           19
+      19>  SEP-2011              30         01-SEP-2011           20
+      20>  OCT-2011              31         01-OCT-2011           21
+      21>  NOV-2011              30         01-NOV-2011           22
+      22>  DEC-2011              31         01-DEC-2011           23
+ 
+! other calendars NOLEAP
+define axis/cal=noleap/t=1-jan-2011:31-jul-2012:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2011             JUL-2012 (True Monthly)
+T0 = 1-JAN-2000
+CALENDAR = NOLEAP
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2011              31         01-JAN-2011           132
+       2>  FEB-2011              28         01-FEB-2011           133
+       3>  MAR-2011              31         01-MAR-2011           134
+       4>  APR-2011              30         01-APR-2011           135
+       5>  MAY-2011              31         01-MAY-2011           136
+       6>  JUN-2011              30         01-JUN-2011           137
+       7>  JUL-2011              31         01-JUL-2011           138
+       8>  AUG-2011              31         01-AUG-2011           139
+       9>  SEP-2011              30         01-SEP-2011           140
+      10>  OCT-2011              31         01-OCT-2011           141
+      11>  NOV-2011              30         01-NOV-2011           142
+      12>  DEC-2011              31         01-DEC-2011           143
+      13>  JAN-2012              31         01-JAN-2012           144
+      14>  FEB-2012              28         01-FEB-2012           145
+      15>  MAR-2012              31         01-MAR-2012           146
+      16>  APR-2012              30         01-APR-2012           147
+      17>  MAY-2012              31         01-MAY-2012           148
+      18>  JUN-2012              30         01-JUN-2012           149
+      19>  JUL-2012              31         01-JUL-2012           150
+ 
+! not at first of month
+define axis/cal=julian/t=15-mar-2010:15-dec-2011:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                22 i   MAR-2010             DEC-2011 (True Monthly)
+T0 = 1-JAN-2000
+CALENDAR = JULIAN
+   Axis span (to cell edges) = 22
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2010              31         01-MAR-2010           122
+       2>  APR-2010              30         01-APR-2010           123
+       3>  MAY-2010              31         01-MAY-2010           124
+       4>  JUN-2010              30         01-JUN-2010           125
+       5>  JUL-2010              31         01-JUL-2010           126
+       6>  AUG-2010              31         01-AUG-2010           127
+       7>  SEP-2010              30         01-SEP-2010           128
+       8>  OCT-2010              31         01-OCT-2010           129
+       9>  NOV-2010              30         01-NOV-2010           130
+      10>  DEC-2010              31         01-DEC-2010           131
+      11>  JAN-2011              31         01-JAN-2011           132
+      12>  FEB-2011              28         01-FEB-2011           133
+      13>  MAR-2011              31         01-MAR-2011           134
+      14>  APR-2011              30         01-APR-2011           135
+      15>  MAY-2011              31         01-MAY-2011           136
+      16>  JUN-2011              30         01-JUN-2011           137
+      17>  JUL-2011              31         01-JUL-2011           138
+      18>  AUG-2011              31         01-AUG-2011           139
+      19>  SEP-2011              30         01-SEP-2011           140
+      20>  OCT-2011              31         01-OCT-2011           141
+      21>  NOV-2011              30         01-NOV-2011           142
+      22>  DEC-2011              31         01-DEC-2011           143
+ 
+! other calendars 360_day
+define axis/cal=360_day/t=1-jan-2010:30-jul-2011:1/t0=1-jan-2000/monthly taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 r   JAN-2010             JUL-2011 (True Monthly)
+T0 = 1-JAN-2000
+CALENDAR = 360_DAY
+   Axis span (to cell edges) = 19
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2010              30         01-JAN-2010           120
+       2>  FEB-2010              30         01-FEB-2010           121
+       3>  MAR-2010              30         01-MAR-2010           122
+       4>  APR-2010              30         01-APR-2010           123
+       5>  MAY-2010              30         01-MAY-2010           124
+       6>  JUN-2010              30         01-JUN-2010           125
+       7>  JUL-2010              30         01-JUL-2010           126
+       8>  AUG-2010              30         01-AUG-2010           127
+       9>  SEP-2010              30         01-SEP-2010           128
+      10>  OCT-2010              30         01-OCT-2010           129
+      11>  NOV-2010              30         01-NOV-2010           130
+      12>  DEC-2010              30         01-DEC-2010           131
+      13>  JAN-2011              30         01-JAN-2011           132
+      14>  FEB-2011              30         01-FEB-2011           133
+      15>  MAR-2011              30         01-MAR-2011           134
+      16>  APR-2011              30         01-APR-2011           135
+      17>  MAY-2011              30         01-MAY-2011           136
+      18>  JUN-2011              30         01-JUN-2011           137
+      19>  JUL-2011              30         01-JUL-2011           138
+ 
+! Writing data, including a leap year
+ 
+define axis/t=3-mar-2011:3-jan-2013:1/monthly/t0=1-jan-2010 taxis
+def var tt = t[gt=taxis]
+save/clobber/file=a.nc tt
+ 
+can var/all
+use a
+sh dat/att
+     currently SET data sets:
+    1> ./a.nc  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+                                 Conventions     CHAR        6    F       CF-1.6
+  
+(TAXIS1)               DOUBLE    axis            CHAR        1    T       T
+                                 bounds          CHAR        10   T       TAXIS_bnds
+                                 time_origin     CHAR        10   T       1-JAN-2010
+                                 units           CHAR        30   T       days since 2010-01-01 00:00:00
+                                 standard_name   CHAR        4    F       time
+                                 orig_file_axname
+                                                 CHAR        5    F       TAXIS
+  
+ TAXIS_bnds            DOUBLE
+  
+ TT                    DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
+                                 _FillValue      DOUBLE      1    T       -1.E+34
+                                 long_name       CHAR        11   T       T[GT=TAXIS]
+  
+sh grid tt
+    GRID GSI1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TAXIS1    TIME                23 i   16-MAR-2011 12:00    16-JAN-2013 12:00   full
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                23 i   MAR-2011             JAN-2013 (True Monthly)
+T0 = 1-JAN-2010
+   Axis span (to cell edges) = 23
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2011              31         01-MAR-2011           14
+       2>  APR-2011              30         01-APR-2011           15
+       3>  MAY-2011              31         01-MAY-2011           16
+       4>  JUN-2011              30         01-JUN-2011           17
+       5>  JUL-2011              31         01-JUL-2011           18
+       6>  AUG-2011              31         01-AUG-2011           19
+       7>  SEP-2011              30         01-SEP-2011           20
+       8>  OCT-2011              31         01-OCT-2011           21
+       9>  NOV-2011              30         01-NOV-2011           22
+      10>  DEC-2011              31         01-DEC-2011           23
+      11>  JAN-2012              31         01-JAN-2012           24
+      12>  FEB-2012              29         01-FEB-2012           25
+      13>  MAR-2012              31         01-MAR-2012           26
+      14>  APR-2012              30         01-APR-2012           27
+      15>  MAY-2012              31         01-MAY-2012           28
+      16>  JUN-2012              30         01-JUN-2012           29
+      17>  JUL-2012              31         01-JUL-2012           30
+      18>  AUG-2012              31         01-AUG-2012           31
+      19>  SEP-2012              30         01-SEP-2012           32
+      20>  OCT-2012              31         01-OCT-2012           33
+      21>  NOV-2012              30         01-NOV-2012           34
+      22>  DEC-2012              31         01-DEC-2012           35
+      23>  JAN-2013              31         01-JAN-2013           36
+ 
+can dat/all
+ 
+define axis/t=3-mar-2011:3-jan-2013:1/monthly/t0=1-jan-2010/calendar=julian taxis
+def var tt = t[gt=taxis]
+save/clobber/file=a.nc tt
+ 
+can var/all
+use a
+sh dat/att
+     currently SET data sets:
+    1> ./a.nc  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+                                 Conventions     CHAR        6    F       CF-1.6
+  
+(TAXIS1)               DOUBLE    axis            CHAR        1    T       T
+                                 bounds          CHAR        10   T       TAXIS_bnds
+                                 time_origin     CHAR        10   T       1-JAN-2010
+                                 calendar        CHAR        6    T       JULIAN
+                                 units           CHAR        30   T       days since 2010-01-01 00:00:00
+                                 standard_name   CHAR        4    F       time
+                                 orig_file_axname
+                                                 CHAR        5    F       TAXIS
+  
+ TAXIS_bnds            DOUBLE
+  
+ TT                    DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
+                                 _FillValue      DOUBLE      1    T       -1.E+34
+                                 long_name       CHAR        11   T       T[GT=TAXIS]
+  
+sh grid tt
+    GRID GSI1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TAXIS1    TIME                23 i   16-MAR-2011 12:00    16-JAN-2013 12:00   full
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                23 i   MAR-2011             JAN-2013 (True Monthly)
+T0 = 1-JAN-2010
+CALENDAR = JULIAN
+   Axis span (to cell edges) = 23
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2011              31         01-MAR-2011           14
+       2>  APR-2011              30         01-APR-2011           15
+       3>  MAY-2011              31         01-MAY-2011           16
+       4>  JUN-2011              30         01-JUN-2011           17
+       5>  JUL-2011              31         01-JUL-2011           18
+       6>  AUG-2011              31         01-AUG-2011           19
+       7>  SEP-2011              30         01-SEP-2011           20
+       8>  OCT-2011              31         01-OCT-2011           21
+       9>  NOV-2011              30         01-NOV-2011           22
+      10>  DEC-2011              31         01-DEC-2011           23
+      11>  JAN-2012              31         01-JAN-2012           24
+      12>  FEB-2012              29         01-FEB-2012           25
+      13>  MAR-2012              31         01-MAR-2012           26
+      14>  APR-2012              30         01-APR-2012           27
+      15>  MAY-2012              31         01-MAY-2012           28
+      16>  JUN-2012              30         01-JUN-2012           29
+      17>  JUL-2012              31         01-JUL-2012           30
+      18>  AUG-2012              31         01-AUG-2012           31
+      19>  SEP-2012              30         01-SEP-2012           32
+      20>  OCT-2012              31         01-OCT-2012           33
+      21>  NOV-2012              30         01-NOV-2012           34
+      22>  DEC-2012              31         01-DEC-2012           35
+      23>  JAN-2013              31         01-JAN-2013           36
+ 
+can dat/all
+ 
+define axis/t=3-mar-2011:3-jan-2013:1/monthly/t0=1-jan-2010/calendar=360_day taxis
+def var tt = t[gt=taxis]
+save/clobber/file=a.nc tt
+ 
+can var/all
+use a
+sh dat/att
+     currently SET data sets:
+    1> ./a.nc  (default)
+ Variable    VarType(in dset)    AttributeName   AttType     Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+  
+ .                               history         CHAR        36   T       PyFerret V7.1 (beta/debug) 18-Apr-17
+                                 Conventions     CHAR        6    F       CF-1.6
+  
+(TAXIS1)               DOUBLE    axis            CHAR        1    T       T
+                                 bounds          CHAR        10   T       TAXIS_bnds
+                                 time_origin     CHAR        10   T       1-JAN-2010
+                                 calendar        CHAR        7    T       360_DAY
+                                 units           CHAR        30   T       days since 2010-01-01 00:00:00
+                                 standard_name   CHAR        4    F       time
+                                 orig_file_axname
+                                                 CHAR        5    F       TAXIS
+  
+ TAXIS_bnds            DOUBLE
+  
+ TT                    DOUBLE    missing_value   DOUBLE      1    T       -1.E+34
+                                 _FillValue      DOUBLE      1    T       -1.E+34
+                                 long_name       CHAR        11   T       T[GT=TAXIS]
+  
+sh grid tt
+    GRID GSI1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ TAXIS1    TIME                22 r   16-MAR-2011 00:00    16-DEC-2012 00:00   full
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                22 r   MAR-2011             DEC-2012 (True Monthly)
+T0 = 1-JAN-2010
+CALENDAR = 360_DAY
+   Axis span (to cell edges) = 22
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  MAR-2011              30         01-MAR-2011           14
+       2>  APR-2011              30         01-APR-2011           15
+       3>  MAY-2011              30         01-MAY-2011           16
+       4>  JUN-2011              30         01-JUN-2011           17
+       5>  JUL-2011              30         01-JUL-2011           18
+       6>  AUG-2011              30         01-AUG-2011           19
+       7>  SEP-2011              30         01-SEP-2011           20
+       8>  OCT-2011              30         01-OCT-2011           21
+       9>  NOV-2011              30         01-NOV-2011           22
+      10>  DEC-2011              30         01-DEC-2011           23
+      11>  JAN-2012              30         01-JAN-2012           24
+      12>  FEB-2012              30         01-FEB-2012           25
+      13>  MAR-2012              30         01-MAR-2012           26
+      14>  APR-2012              30         01-APR-2012           27
+      15>  MAY-2012              30         01-MAY-2012           28
+      16>  JUN-2012              30         01-JUN-2012           29
+      17>  JUL-2012              30         01-JUL-2012           30
+      18>  AUG-2012              30         01-AUG-2012           31
+      19>  SEP-2012              30         01-SEP-2012           32
+      20>  OCT-2012              30         01-OCT-2012           33
+      21>  NOV-2012              30         01-NOV-2012           34
+      22>  DEC-2012              30         01-DEC-2012           35
+ 
+! Without date range spec,
+def axis/monthly/t0=1-jan-0000/t=1:24:1 taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                24 i   JAN-0000             DEC-0001 (True Monthly)
+T0 = 1-JAN-0000
+   Axis span (to cell edges) = 24
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-0000              31         01-JAN-0000           0
+       2>  FEB-0000              29         01-FEB-0000           1
+       3>  MAR-0000              31         01-MAR-0000           2
+       4>  APR-0000              30         01-APR-0000           3
+       5>  MAY-0000              31         01-MAY-0000           4
+       6>  JUN-0000              30         01-JUN-0000           5
+       7>  JUL-0000              31         01-JUL-0000           6
+       8>  AUG-0000              31         01-AUG-0000           7
+       9>  SEP-0000              30         01-SEP-0000           8
+      10>  OCT-0000              31         01-OCT-0000           9
+      11>  NOV-0000              30         01-NOV-0000           10
+      12>  DEC-0000              31         01-DEC-0000           11
+      13>  JAN-0001              31         01-JAN-0001           12
+      14>  FEB-0001              28         01-FEB-0001           13
+      15>  MAR-0001              31         01-MAR-0001           14
+      16>  APR-0001              30         01-APR-0001           15
+      17>  MAY-0001              31         01-MAY-0001           16
+      18>  JUN-0001              30         01-JUN-0001           17
+      19>  JUL-0001              31         01-JUL-0001           18
+      20>  AUG-0001              31         01-AUG-0001           19
+      21>  SEP-0001              30         01-SEP-0001           20
+      22>  OCT-0001              31         01-OCT-0001           21
+      23>  NOV-0001              30         01-NOV-0001           22
+      24>  DEC-0001              31         01-DEC-0001           23
+ 
+! With T0 later than year 0
+def axis/monthly/t0=1-jan-2000/t=1:24:1 taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                24 i   JAN-2000             DEC-2001 (True Monthly)
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 24
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-2000              31         01-JAN-2000           0
+       2>  FEB-2000              29         01-FEB-2000           1
+       3>  MAR-2000              31         01-MAR-2000           2
+       4>  APR-2000              30         01-APR-2000           3
+       5>  MAY-2000              31         01-MAY-2000           4
+       6>  JUN-2000              30         01-JUN-2000           5
+       7>  JUL-2000              31         01-JUL-2000           6
+       8>  AUG-2000              31         01-AUG-2000           7
+       9>  SEP-2000              30         01-SEP-2000           8
+      10>  OCT-2000              31         01-OCT-2000           9
+      11>  NOV-2000              30         01-NOV-2000           10
+      12>  DEC-2000              31         01-DEC-2000           11
+      13>  JAN-2001              31         01-JAN-2001           12
+      14>  FEB-2001              28         01-FEB-2001           13
+      15>  MAR-2001              31         01-MAR-2001           14
+      16>  APR-2001              30         01-APR-2001           15
+      17>  MAY-2001              31         01-MAY-2001           16
+      18>  JUN-2001              30         01-JUN-2001           17
+      19>  JUL-2001              31         01-JUL-2001           18
+      20>  AUG-2001              31         01-AUG-2001           19
+      21>  SEP-2001              30         01-SEP-2001           20
+      22>  OCT-2001              31         01-OCT-2001           21
+      23>  NOV-2001              30         01-NOV-2001           22
+      24>  DEC-2001              31         01-DEC-2001           23
+ 
+! Default T0, non-calendar t def
+define axis/monthly/t=1:36:1 taxis
+sh axis/t taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                36 i   JAN-0000             DEC-0002 (True Monthly)
+T0 = 01-JAN-0000
+   Axis span (to cell edges) = 36
+ 
+       L     T                   TBOX      TBOXLO                TSTEP (TRUMONTH)
+       1>  JAN-0000              31         01-JAN-0000           0
+       2>  FEB-0000              29         01-FEB-0000           1
+       3>  MAR-0000              31         01-MAR-0000           2
+       4>  APR-0000              30         01-APR-0000           3
+       5>  MAY-0000              31         01-MAY-0000           4
+       6>  JUN-0000              30         01-JUN-0000           5
+       7>  JUL-0000              31         01-JUL-0000           6
+       8>  AUG-0000              31         01-AUG-0000           7
+       9>  SEP-0000              30         01-SEP-0000           8
+      10>  OCT-0000              31         01-OCT-0000           9
+      11>  NOV-0000              30         01-NOV-0000           10
+      12>  DEC-0000              31         01-DEC-0000           11
+      13>  JAN-0001              31         01-JAN-0001           12
+      14>  FEB-0001              28         01-FEB-0001           13
+      15>  MAR-0001              31         01-MAR-0001           14
+      16>  APR-0001              30         01-APR-0001           15
+      17>  MAY-0001              31         01-MAY-0001           16
+      18>  JUN-0001              30         01-JUN-0001           17
+      19>  JUL-0001              31         01-JUL-0001           18
+      20>  AUG-0001              31         01-AUG-0001           19
+      21>  SEP-0001              30         01-SEP-0001           20
+      22>  OCT-0001              31         01-OCT-0001           21
+      23>  NOV-0001              30         01-NOV-0001           22
+      24>  DEC-0001              31         01-DEC-0001           23
+      25>  JAN-0002              31         01-JAN-0002           24
+      26>  FEB-0002              28         01-FEB-0002           25
+      27>  MAR-0002              31         01-MAR-0002           26
+      28>  APR-0002              30         01-APR-0002           27
+      29>  MAY-0002              31         01-MAY-0002           28
+      30>  JUN-0002              30         01-JUN-0002           29
+      31>  JUL-0002              31         01-JUL-0002           30
+      32>  AUG-0002              31         01-AUG-0002           31
+      33>  SEP-0002              30         31-AUG-0002           32
+      34>  OCT-0002              31         01-OCT-0002           33
+      35>  NOV-0002              30         01-NOV-0002           34
+      36>  DEC-0002              31         01-DEC-0002           35
+ 
+! modulo
+define axis/t=1-jan-2010:31-dec-2010:1/t0=1-jan-2000/monthly/modulo taxis
+ 
+let var = {1,2,3,4,5,6,7,8,9,10,11,12}
+let tvar = reshape(var,t[gt=taxis])
+list/L=1:23 tvar
+             VARIABLE : RESHAPE(VAR,T[GT=TAXIS])
+             SUBSET   : 12 points (TIME)
+ 16-JAN-2010 12 /  1:   1.00
+ 15-FEB-2010 00 /  2:   2.00
+ 16-MAR-2010 12 /  3:   3.00
+ 16-APR-2010 00 /  4:   4.00
+ 16-MAY-2010 12 /  5:   5.00
+ 16-JUN-2010 00 /  6:   6.00
+ 16-JUL-2010 12 /  7:   7.00
+ 16-AUG-2010 12 /  8:   8.00
+ 16-SEP-2010 00 /  9:   9.00
+ 16-OCT-2010 12 / 10:  10.00
+ 16-NOV-2010 00 / 11:  11.00
+ 16-DEC-2010 12 / 12:  12.00
+! *sh* 3/17:  a possible alternative syntax:
+!  let var = TSEQUENCE({1,2,3,4,5,6,7,8,9,10,11,12})
+!  let tvar = var[gt=taxis at asn]
+! Since this is a fairly common need -- creating a line along some axis
+! should we offer a new function AXSEQUENCE(array, axis)  ?
+ 
+! Striding on a monthly axis
+ 
+def axis/monthly/t0=1-jan-2000/t=1-jan-2000:31-dec-2004:1/unit=monthly taxis
+!sh axis/t/l=1:14 taxis
+let tt = t[gt=taxis]
+list tt[l=1:6:2]
+             VARIABLE : T[GT=TAXIS]
+                        regrid: 2 tmon_gregori on T
+             SUBSET   : 3 points (TIME)
+ 16-JAN-2000 / 1:   15.5
+ 16-MAR-2000 / 2:   75.5
+ 16-MAY-2000 / 3:  136.5
+ 
+list/prec=6 tt[l=1:60:12]
+             VARIABLE : T[GT=TAXIS]
+                        regrid: 12 tmon_gregori on T
+             SUBSET   : 5 points (TIME)
+ 16-JAN-2000 / 1:    15.50
+ 16-JAN-2001 / 2:   381.50
+ 16-JAN-2002 / 3:   746.50
+ 16-JAN-2003 / 4:  1111.50
+ 16-JAN-2004 / 5:  1476.50
+ 
+! From a file
+save/file=a.nc/clobber tt
+can dat/all; can var/all
+use a
+list/prec=6 tt[l=1:60:12]
+             VARIABLE : T[GT=TAXIS]
+                        regrid: on T
+             FILENAME : a.nc
+             SUBSET   : 5 points (TIME)
+ APR-2001 / 1:    15.50
+ OCT-2031 / 2:   381.50
+ MAR-2062 / 3:   746.50
+ AUG-2092 / 4:  1111.50
+ JAN-2123 / 5:  1476.50
+ 
+! DEFINE AXIS/MONTHLY warnings and error conditions:
+ 
+! Not an error - /EDGES is ignored, as it's the default
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2000/monthly/edges taxis
+sh axis taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2010             JUL-2011 (True Monthly)
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 19
+ 
+! Not an error - /UNITS=month is the default
+define axis/t=1-jan-2010:31-jul-2011:1/t0=1-jan-2000/monthly/units=months taxis
+sh axis taxis
+ name       axis              # pts   start                end
+ TAXIS     TIME                19 i   JAN-2010             JUL-2011 (True Monthly)
+T0 = 1-JAN-2000
+   Axis span (to cell edges) = 19
+ 
+set mode ignore
+! not all months have day 30, cannot start at day 30
+define axis/t=30-mar-2010:30-dec-2011:1/monthly taxis
+ 
+! Units of other than months is an error
+define axis/t=1-jan-2010:31-jul-2011:30/t0=1-jan-2000/monthly/units=days taxis
+ 
+! /NPOINTS, /BOUNDS, /FROMDATA are not allowed. Errors in start:end:del
+define axis/t=1-jan-2010:31-dec-2012:1/t0=1-jan-2000/monthly/npoints=13 taxis
+ 
+! missing delta-t
+define axis/t=1-jan-2010:31-dec-2012/t0=1-jan-2000/monthly taxis
+ 
+! delta-t must be 1
+define axis/t=1-jan-2010:31-dec-2012:2/t0=1-jan-2000/monthly taxis
+ 
+! irregular or from-data
+define axis/t/t0=1-jan-2000/monthly taxis = {123,124,126}
+ 
+define axis/from/t/t0=1-jan-2001/monthly/edges taxis = {5,6,6,6,7}
+ 
+! bounds
+def axis/t/t0=1-jan-2000/monthly/bounds tax={1.2, 2, 3.2, 5, 7, 8.4, 9}, {0.5,1.5, 1.5,2.5, 2.5,3.5, 3.5,6.5, 6.5,7.5, 7.5,8.5, 8.5,9.5}
+ 
+! Must be T direction (do we need /F=?)
+define axis/x=1:5:1/monthly aaxis
+ 
+cancel mode ignore
+*** Running ferret script: bn720_bug_fixes.jnl
+[?1034h! bn720_bug_fixes.jnl
+! test various fixes that went into version 7.2
+! 2/17 *acm*
+!
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_uvar_strides
+! err710_uvar_strides
+! see ticket 2511: crash when doing strides on the user-variable
+ 
+ 
+use coads_climatology
+ 
+! this is ok using a file variable
+let y_vec = x[gx=sst,x=0:360:30]
+list y_vec
+             VARIABLE : X[GX=SST,X=0:360:30]
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 13 points (LONGITUDE)
+ 0E     /  1:    0.0
+ 30E    /  2:   30.0
+ 60E    /  3:   60.0
+ 90E    /  4:   90.0
+ 120E   /  5:  120.0
+ 150E   /  6:  150.0
+ 180E   /  7:  180.0
+ 150W   /  8:  210.0
+ 120W   /  9:  240.0
+ 90W    / 10:  270.0
+ 60W    / 11:  300.0
+ 30W    / 12:  330.0
+ 0E     / 13:  360.0
+ 
+! but this gave a crash on loading the variable.
+let s = sst
+let y_vec = x[gx=s,x=0:360:30]
+list y_vec
+             VARIABLE : X[GX=S,X=0:360:30]
+             FILENAME : coads_climatology.cdf
+             SUBSET   : 13 points (X)
+ 0     /  1:    0.0
+ 30    /  2:   30.0
+ 60    /  3:   60.0
+ 90    /  4:   90.0
+ 120   /  5:  120.0
+ 150   /  6:  150.0
+ 180   /  7:  180.0
+ 210   /  8:  210.0
+ 240   /  9:  240.0
+ 270   / 10:  270.0
+ 300   / 11:  300.0
+ 330   / 12:  330.0
+ 360   / 13:  360.0
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_prec_return
+! err71_prec_return.jnl
+! Ticket 2510, `prec=hh` doesn't work when the data is very
+! near an integer.
+ 
+ 
+let a=1+1e-12
+ 
+! This should show the 001 at the end
+list/nohead/norow/prec=13 `a,prec=13`
+ !-> list/nohead/norow/prec=13 1.000000000001
+   1.000000000001
+ 
+! This does not have the 001 at the end
+list/nohead/norow/prec=13 `a,prec=12`
+ !-> list/nohead/norow/prec=13 1
+   1.000000000000
+ 
+! The example from the ticket, with one more.
+list/nohead/norow/prec=12 {`1 + 0.1`, `1 + 1e-7`, `1 + 1e-8`, `1 + 1e-10`} - 1
+ !-> list/nohead/norow/prec=12 {1.1, 1.0000001, 1.00000001, 1.0000000001} - 1
+   0.100000000000
+   0.000000100000
+   0.000000010000
+   0.000000000100
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_save_rigid
+! err71_save_rigid.jnl
+! Ticket 2513: SAVE/RIGID with irregular axis wrote a bad file.
+ 
+! Define a variable on an irregular axis.
+ 
+let var = {123, 234, 345, 456, 567, 678, 789}
+define axis/t/t0=1-jan-2015/units=day tax = \
+{ 312.1, 312.7, 313.4, 314.2, 314.7, 315.4, 316.1}
+ 
+let vart = reshape(var, t[gt=tax])
+ 
+! Save with /RIGID. Previously this wrote a file with
+! both bounds and edges attributes on the time axis.
+! It wrote the edges variable, not the bounds.
+ 
+! Starting with this version, write bounds if needed when
+! writing with /RIGID. Only write edges if they said /EDGES.
+ 
+save/clobber/rigid/file=a.nc vart
+sp ncdump a.nc
+netcdf a {
+dimensions:
+	TAX = 7 ;
+	bnds = 2 ;
+variables:
+	double TAX(TAX) ;
+		TAX:units = "day since 2015-01-01 00:00:00" ;
+		TAX:point_spacing = "uneven" ;
+		TAX:axis = "T" ;
+		TAX:bounds = "TAX_bnds" ;
+		TAX:time_origin = "1-JAN-2015" ;
+		TAX:standard_name = "time" ;
+	double TAX_bnds(TAX, bnds) ;
+	double VART(TAX) ;
+		VART:missing_value = -1.e+34 ;
+		VART:_FillValue = -1.e+34 ;
+		VART:long_name = "RESHAPE(VAR, T[GT=TAX])" ;
+
+// global attributes:
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		:Conventions = "CF-1.6" ;
+data:
+
+ TAX = 312.1, 312.7, 313.4, 314.2, 314.7, 315.4, 316.1 ;
+
+ TAX_bnds =
+  311.8, 312.4,
+  312.4, 313.05,
+  313.05, 313.8,
+  313.8, 314.45,
+  314.45, 315.05,
+  315.05, 315.75,
+  315.75, 316.45 ;
+
+ VART = 123, 234, 345, 456, 567, 678, 789 ;
+}
+ 
+cancel var/all
+ 
+! The grid was messed up - this gave an error
+use a
+show grid vart
+    GRID GSI1
+ name       axis              # pts   start                end                 subset
+ normal    X
+ normal    Y
+ normal    Z
+ 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
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_set_redirect
+! err71_set_redirect.jnl
+! 3/2017 ACM
+! redirect results to a file with a path.
+! See ticket 2521, the path was previously rejected if it contains dashes
+ 
+spawn "mkdir -p sub-dir"
+!
+! Previously this resulted in an error.
+set redirect /tee /file="./sub-dir/redirect_stdout.txt" /clobber  stderr stdout
+ 
+! write to the file and look at the results
+ 
+show symbol ferret_precision, ferret_memory
+FERRET_PRECISION = "double"
+FERRET_MEMORY = "25.6"
+cancel redirect
+let contents = { spawn:"cat ./sub-dir/redirect_stdout.txt" }
+list contents
+             VARIABLE : { SPAWN:"cat ./sub-dir/redirect_stdout.txt" }
+             SUBSET   : 7 points (X)
+ 1   / 1:" "                                          
+ 2   / 2:"! write to the file and look at the results"
+ 3   / 3:" "                                          
+ 4   / 4:"show symbol ferret_precision, ferret_memory"
+ 5   / 5:"FERRET_PRECISION = "double""                
+ 6   / 6:"FERRET_MEMORY = "25.6""                     
+ 7   / 7:"cancel redirect"                            
+cancel var contents
+ 
+sp rm -rf sub-dir
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_set_redirect
+! err71_set_redirect.jnl
+! 3/2017 ACM
+! redirect results to a file with a path.
+! See ticket 2521, the path was previously rejected if it contains dashes
+ 
+spawn "mkdir -p sub-dir"
+!
+! Previously this resulted in an error.
+set redirect /tee /file="./sub-dir/redirect_stdout.txt" /clobber  stderr stdout
+ 
+! write to the file and look at the results
+ 
+show symbol ferret_precision, ferret_memory
+FERRET_PRECISION = "double"
+FERRET_MEMORY = "25.6"
+cancel redirect
+let contents = { spawn:"cat ./sub-dir/redirect_stdout.txt" }
+list contents
+             VARIABLE : { SPAWN:"cat ./sub-dir/redirect_stdout.txt" }
+             SUBSET   : 7 points (X)
+ 1   / 1:" "                                          
+ 2   / 2:"! write to the file and look at the results"
+ 3   / 3:" "                                          
+ 4   / 4:"show symbol ferret_precision, ferret_memory"
+ 5   / 5:"FERRET_PRECISION = "double""                
+ 6   / 6:"FERRET_MEMORY = "25.6""                     
+ 7   / 7:"cancel redirect"                            
+cancel var contents
+ 
+sp rm -rf sub-dir
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_err_attrib_overrun
+! err71_err_attrib_overrun.jnl
+! See ticket 2523
+ 
+! this ends with a segment fault sensitive to any changes
+! presumably a buffer over-run
+ 
+! the crash is occuring because of a buffer over-run
+! in IS_ATTRIB_VAL we call CREATE_TEMP_MEM_VAR to create an mr of size=1
+! later we call INIT_C_STRING_ARRAY and tell it to initialize this mr array
+! using a length nvdims=3  ==> OVERRUN
+ 
+! This bug never reared its head in the pre-dynamic memory Ferret, because
+! the buffers couldn't really be over-run, since they were part of a huge
+! static memory block
+ 
+! other INIT_* calls in IS_ATTRIB_VAL may have a similar issue
+ 
+ 
+set mode diag
+ 
+use ocean_atlas_temp
+use gt4d011
+use levitus_climatology
+ 
+use coads_climatology
+ 
+let lnames = ..dimnames[d=2]
+ 
+CANCEL DATA/ALL
+ canceling dset ./ocean_atlas_temp.cdf
+ canceling dset ./gt4d011.cdf
+ canceling dset ./levitus_climatology.cdf
+ canceling dset ./coads_climatology.cdf
+ 
+! this line seems to be essential making the crash happen
+PPL TICS .125,.25,.125,.25 !reset tics to default
+ 
+use coads_climatology
+ 
+let a = sst[d=1].dimnames
+show mem/diag   ! looks like no dynamic memory actions have occured
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 500
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 25.6 megawords
+    Peak demand: 0 words
+    Current cache: 0 words
+ 
+! resulted in a seg fault (on 32-bit stout)
+list a[i=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
+ 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
+             VARIABLE : SST[D=coads_climatology].DIMNAMES
+             FILENAME : coads_climatology.cdf
+             X        : 2
+        "COADSY"
+ 
+ 
+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
+ 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
+ canceling dset ./coads_climatology.cdf
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_user_var_attrib
+! err71_user_var_attrib.jnl
+! See ticket 2132
+ 
+! command was trying to list dataset information for a user variable
+!
+ 
+let a = 1
+define att a.myAttr = "whatever"
+show att a.myAttr
+ a.myAttr = whatever 
+ 
+ 
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err71_save_bounds
+! err71_save_bounds
+! Ticket 2524. The SAVE command previously gave an error
+ 
+define axis/t time = {1,2,4}
+use write_int_att.nc
+ 
+! Tell Ferret to use the axis names from the file, and write data
+cancel mode upcase
+save/file=a.nc/clobber mhchla
+ 
+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}
+*** Running ferret script: bn_compressed_gather.jnl
+[?1034h! bn_compressed_gather.jnl
+! 11/2016 (for trac #2428 enhancement)
+! updated 3/17 for dynamic memory and using SHOW MEM/DIAG
+ 
+! force a split/gather operation due to a T=@ave
+ 
+! in previous versions of Ferret the split could not occur on the transformed
+! axis, so the X axis would have been used.  Here the T=@ave axis will be used
+ 
+! Give us something to look at while we run these tests which dont make plots
+plot/noax/nolab/vlim=0:1/i=4:5 i
+annotate/norm/x=0/y=0.5 "@AC... running bn_compressed_gather"
+ 
+! ******* tests of  T=@DIN and T=@ave ******
+define axis/x=1:1001:1 xax
+define axis/y=1:10:1 yax
+define axis/T=1:1000:1 tax
+ 
+let xt = (x[gx=xax]-501) + 0*y[gy=yax] + T[gt=tax]
+ 
+* note: SUM of integers 1 to 1000 = N(N+1)/2 ==> 500500
+*       stat average of (x[gx=xax]-501) is zero
+*       so the full 2D stat mean should be 500500
+ 
+! there are 10*1000*1001 points in the full grid => ~10M
+! given the necessary cautions (see IS_STRIP and MODE FRUGAL),
+! a size of 12 for sure requires a gather operation
+! confirm gathering is occuring by looking at the diagnostic output
+ 
+!set mode desperate: 400000
+SET MEMORY/SIZE=12
+ 
+stat xt[l=@din]
+ 
+             (X[GX=XAX]-501) + 0*Y[GY=YAX] + T[GT=TAX]
+             X: 0.5 to 1001.5
+             Y: 0.5 to 10.5
+             Z:  N/A
+             T: 0.5 to 1000.5 (integrated)
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 1000500
+ Mean    value: 500500 (unweighted average)
+ Standard deviation: 288978
+SHOW MEMORY/DIAGNOSTIC   ! look at peak memory usage
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        XT             T     DIN       209           1
+    Total table slots: 500
+    Free table slots: 494
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+ 
+! many variations on this test
+! note that in the first case peak memory will show as ZERO.
+! The first SET MEMORY command resets the peak memory to zero, and
+! then the expression "xt[l=@din]" gets found without re-computation
+! having been computed just above
+GO bn_compressed_gather.sub xt[l=@din] 40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 1000500
+ Mean    value: 500500 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 20020 words
+    Current cache: 10.03002 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 1000500
+ Mean    value: 500500 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[l=@din]
+ 
+! altered limits syntax
+GO bn_compressed_gather.sub xt[l=1:1000 at din] 40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 1000500
+ Mean    value: 500500 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 20020 words
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 1000500
+ Mean    value: 500500 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[l=1:1000 at din]
+ 
+! test T=@AVE
+GO bn_compressed_gather.sub xt[l=@ave]  40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[l=@ave]
+ 
+! various partial grid points at end
+GO bn_compressed_gather.sub xt[T=@ave]  40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[T=@ave]
+GO bn_compressed_gather.sub xt[T=0.5:1000.5 at ave]  40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[T=0.5:1000.5 at ave]
+GO bn_compressed_gather.sub xt[T=0.6:1000.4 at ave]  40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[T=0.6:1000.4 at ave]
+GO bn_compressed_gather.sub xt[T=1:1000 at ave]  40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[T=1:1000 at ave]
+GO bn_compressed_gather.sub xt[T=1.2:999.8 at ave] 40 12
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.007 megawords
+    Current cache: 10.030021 megawords
+ 
+ Total # of data points: 10010 (1001*10*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0.5
+ Maximum value: 1000.5
+ Mean    value: 500.5 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.122329 megawords
+    Current cache: 10.03002 megawords
+COMPRESSED GATHER success on expression xt[T=1.2:999.8 at ave]
+ 
+! *********************************************************
+! ******* tests of "4D" @DIN and @ave ******
+define axis/x=1:200:1 xax
+define axis/y=1:200:1 yax
+define axis/z=1:200:1 zax
+define axis/T=1:2:1  tax
+let xyz  = 0*X[gx=xax] + 0*Y[gy=yax] + Z[gz=zax]
+let xyzt = 0*X[gx=xax] + 0*Y[gy=yax] + Z[gz=zax] + 0*T[gt=tax]
+ 
+* note: SUM of Z is N*(N+1)/2 = 20100
+* area integral in XY is 200*200=40,000
+* total integral is 804,000,000 (8.04*E8)
+ 
+* 3D XYZ test
+* 2d slice size = 200*200 = 40,000
+* 3d full size is 8,000,000  - so 10,000,000 is bigger
+ 
+! confirm gathering is occuring by looking at the diagnostic output
+cancel memory/all
+!set mode desp: 2000000
+set memory/size = 2  ! 2M v 8M: requires split/gather
+! will split into 4 pieces (1/4 of 8,000,000 fits into 2,000,000)
+! so z=1:50; then =51:100, Z=101:150, Z=151:200
+stat xyz[x=@din,y=@din,z=@din]
+ 
+             0*X[GX=XAX] + 0*Y[GY=YAX] + Z[GZ=ZAX]
+             X: 0.5 to 200.5 (XYZ integ.)
+             Y: 0.5 to 200.5 (XYZ integ.)
+             Z: 0.5 to 200.5 (XYZ integ.)
+             T:  N/A
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.04E+08
+ Maximum value: 8.04E+08
+ Mean    value: 8.04E+08 (unweighted average)
+SHOW MEMORY/DIAGNOSTIC   ! look at peak memory usage
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        XYZ            Z     IN4         8           1
+    Total table slots: 500
+    Free table slots: 493
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 360010 words
+    Current cache: 1.920002 megawords
+ 
+! the clean version of same test
+GO bn_compressed_gather.sub xyz[x=@din,y=@din,z=@din] 20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.04E+08
+ Maximum value: 8.04E+08
+ Mean    value: 8.04E+08 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 2 words
+    Current cache: 1.920002 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.04E+08
+ Maximum value: 8.04E+08
+ Mean    value: 8.04E+08 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 360010 words
+    Current cache: 1.920002 megawords
+COMPRESSED GATHER success on expression xyz[x=@din,y=@din,z=@din]
+ 
+! also do the average, which will provide a comparison result for the test
+! that follows
+! average along Z is 100.5
+GO bn_compressed_gather.sub xyz[x=@ave,y=@ave,z=@ave] 20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 100.5
+ Maximum value: 100.5
+ Mean    value: 100.5 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 3.520089 megawords
+    Current cache: 8.000003 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 100.5
+ Maximum value: 100.5
+ Mean    value: 100.5 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 360010 words
+    Current cache: 1.920002 megawords
+COMPRESSED GATHER success on expression xyz[x=@ave,y=@ave,z=@ave]
+ 
+! Since the T axis has only 2 points, the arithmetic above shows that the
+! chunks to be gathered will still be too large after splitting on T, which
+! in theory would trigger further splitting along Z.  However, there is only
+! one opportunity to process compressed axis splitting -- in IS_STRIP
+! at the time that it is stripping off the compressed transformation.  But
+! a "4D" transform is stripped in a single operation. We choose an axis that
+! is long enough to break into sufficiently small fragments
+set memory/size = 6  ! 16M points in grid, 8M in each T-chunk
+stat xyzt[x=@ave,y=@ave,z=@ave,t=@ave]
+ 
+             0*X[GX=XAX] + 0*Y[GY=YAX] + Z[GZ=ZAX] + 0*T[GT=TAX]
+             X: 0.5 to 200.5 (XYZT ave)
+             Y: 0.5 to 200.5 (XYZT ave)
+             Z: 0.5 to 200.5 (XYZT ave)
+             T: 0.5 to 2.5 (XYZT ave)
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 100.5
+ Maximum value: 100.5
+ Mean    value: 100.5 (unweighted average)
+show mem/diagnostic
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        XYZT           Z     AV4        13           1
+    Total table slots: 500
+    Free table slots: 493
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 6 megawords
+    Peak demand: 1.560004 megawords
+    Current cache: 5.600002 megawords
+ 
+! test splitting along 2 axes in succession by making T=@AVE into a separate
+! averaging operation
+CANCEL MEMORY/ALL
+LET xyzave = xyzt[x=@ave,y=@ave,z=@ave]
+!set mode desp: 2000000
+set memory/size = 6  ! 2M v 8M: requires split/gather
+stat xyzave[t=@ave]
+ 
+             XYZT[X=@AVE,Y=@AVE,Z=@AVE]
+             X: 0.5 to 200.5
+             Y: 0.5 to 200.5
+             Z: 0.5 to 200.5
+             T: 0.5 to 2.5 (averaged)
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 100.5
+ Maximum value: 100.5
+ Mean    value: 100.5 (unweighted average)
+SHOW MEMORY/DIAGNOSTIC   ! look at peak memory usage
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        XYZAVE         T     AVE         1           1
+        XYZT           Z     AV4        26           2
+    Total table slots: 500
+    Free table slots: 492
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 6 megawords
+    Peak demand: 2.080005 megawords
+    Current cache: 4.880005 megawords
+ 
+! *********************************************************
+! ******* tests of T= @var and @std ******
+! the @var and @std transformation had to be switched to
+! a single pass algorithm in order to implement split/gather
+define axis/x=1:10000:1 xax
+define axis/T=1:1001:1 tax
+ 
+let xt = 0*x[gx=xax] + T[gt=tax]
+let constant = 0*X[gx=xax] + 0*T[gt=tax] + 1234
+let xt_zero_mean = 0*X[gx=xax] + (T[gt=tax]-501) + 1234
+ 
+* note: sum of a sequence 1 to N of square integers is [N*(N+1)*(2N+1)]/6
+* T-501 is 2 sequences: -500 to 1 and 1 to 500, therefore sum is
+* 2 * [500*501*1001]/6 = 83583500
+* mean of this sequence is 83583500/1001 = 83500
+* ==> look for this as the correct answer to variance
+ 
+! confirm gathering is occuring by looking at the diagnostic output
+!set mode desperate: 400000
+set memory/size= 12
+stat constant[l=@var]
+ 
+             Variance of 0*X[GX=XAX] + 0*T[GT=TAX] + 1234
+             X: 0.5 to 10000.5
+             Y:  N/A
+             Z:  N/A
+             T: 0.5 to 1001.5 (variance)
+             E:  N/A
+             F:  N/A
+             DATA SET: N/A
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+ Standard deviation: 0
+SHOW MEMORY/DIAGNOSTIC   ! look at peak memory usage
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        CONSTANT       T     VAR       209           1
+    Total table slots: 500
+    Free table slots: 494
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 4.210001 megawords
+    Current cache: 10.04 megawords
+ 
+! clean test
+cancel memory/all
+GO bn_compressed_gather.sub constant[l=@var] 40 12
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 13.980001 megawords
+    Current cache: 10.04 megawords
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 4.210001 megawords
+    Current cache: 10.04 megawords
+COMPRESSED GATHER success on expression constant[l=@var]
+ 
+! known result
+GO bn_compressed_gather.sub xt_zero_mean[l=@var] 40 12
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 83500
+ Maximum value: 83500
+ Mean    value: 83500 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 13.980001 megawords
+    Current cache: 10.040001 megawords
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 83500
+ Maximum value: 83500
+ Mean    value: 83500 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 4.210001 megawords
+    Current cache: 10.04 megawords
+COMPRESSED GATHER success on expression xt_zero_mean[l=@var]
+ 
+! adding a constant doesn't effect the variance
+GO bn_compressed_gather.sub xt[l=@var] 40 12
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 83500
+ Maximum value: 83500
+ Mean    value: 83500 (unweighted average)
+    SET MEMORY/SIZE: 40 megawords
+    Peak demand: 7.02 megawords
+    Current cache: 10.040001 megawords
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 83500
+ Maximum value: 83500
+ Mean    value: 83500 (unweighted average)
+    SET MEMORY/SIZE: 12 megawords
+    Peak demand: 2.130209 megawords
+    Current cache: 10.04 megawords
+COMPRESSED GATHER success on expression xt[l=@var]
+ 
+! same test, but  on @std (only one line of code difference so limited test)
+* square root of 83500 is 288.96366553599779.
+* Note: previous Ferret versions gave a consistent value
+*  Minimum value: 288.9636655359978
+*  Maximum value: 288.9636655359978
+*  Mean    value: 288.9636655359978
+* Now (11/16) we are getting slight variations in the 16th decimal (see"6")
+*  Minimum value: 288.9636655359978
+*  Maximum value: 288.9636655359978
+*  Mean    value: 288.9636655359976
+* *sh* @std differs from @var only by taking a SQRT() in the finalization step.
+*      I suspect this is an artifact of the compiler optimization level
+GO bn_compressed_gather.sub xt[l=@std] 4000000 400000
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 288.9636655359978
+ Maximum value: 288.9636655359978
+ Mean    value: 288.9636655360099 (unweighted average)
+    SET MEMORY/SIZE: 4000000 megawords
+    Peak demand: 10.04 megawords
+    Current cache: 10.040001 megawords
+ 
+ Total # of data points: 10000 (10000*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 288.9636655359978
+ Maximum value: 288.9636655359978
+ Mean    value: 288.9636655360099 (unweighted average)
+    SET MEMORY/SIZE: 400000 megawords
+    Peak demand: 10.04 megawords
+    Current cache: 10.04 megawords
+COMPRESSED GATHER success on expression xt[l=@std]
+ 
+ 
+! *********************************************************
+! ******* tests of "4D" @var and @std ******
+! the @var and @srd transformation had to be switched to
+! a single pass algorithm in order to implement split/gather
+define axis/x=1:200:1 xax
+define axis/y=1:200:1 yax
+define axis/z=1:201:1 zax
+define axis/T=1:200:1 tax
+! adding a constant doesn't effect variance
+let constant = 0*X[gx=xax] + 0*Y[gy=yax] + 0*Z[gz=zax] + 1234
+let xyz = 0*X[gx=xax] + 0*Y[gy=yax] + Z[gz=zax] + 1
+let xyz_zero_mean = 0*X[gx=xax] + 0*Y[gy=yax] + (Z[gz=zax]-101)
+ 
+* note: sum of a sequence 1 to N of square integers is [N*(N+1)*(2N+1)]/6
+* Z-101 is 2 sequences: -100 to -1 and 1 to 100, therefore sum is
+* 2 * [100*101*201]/6 = 676700
+* so the average is 676700/201 = 3366.666666 ...
+* At every XY point we have the identical sequence in Z, so the variance is
+* the same as the single Z sequence
+ 
+* 3D XYZ test
+* 2d slice size = 200*200 = 40,000
+* 3d full size is 8,000,000  - so 10,000,000 is bigger
+cancel memory/all
+!set mode desp: 2000000
+set memory/size = 2  ! 2M v 8M: requires split/gather
+! will split into 4 pieces (1/4 of 8,000,000 fits into 2,000,000)
+! so z=1:50; then =51:100, Z=101:150, Z=151:200
+LIST/PREC=12 constant[x=@var,y=@var,z=@var]
+             VARIABLE : 0*X[GX=XAX] + 0*Y[GY=YAX] + 0*Z[GZ=ZAX] + 1234
+             X        : 0.5 to 200.5 (XYZ variance)
+             Y        : 0.5 to 200.5 (XYZ variance)
+             Z        : 0.5 to 201.5 (XYZ variance)
+          0.000000000000
+ 
+! variance of a constant is zero
+GO bn_compressed_gather.sub constant[x=@var,y=@var,z=@var] 20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 3 words
+    Current cache: 1.640003 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 0
+ Maximum value: 0
+ Mean    value: 0 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 640004 words
+    Current cache: 1.640003 megawords
+COMPRESSED GATHER success on expression constant[x=@var,y=@var,z=@var]
+ 
+! confirm that we get the result computed above
+GO bn_compressed_gather.sub xyz_zero_mean[x=@var,y=@var,z=@var]  20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 3366.7
+ Maximum value: 3366.7
+ Mean    value: 3366.7 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 3.52009 megawords
+    Current cache: 8.040004 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 3366.7
+ Maximum value: 3366.7
+ Mean    value: 3366.7 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 360011 words
+    Current cache: 1.640003 megawords
+COMPRESSED GATHER success on expression xyz_zero_mean[x=@var,y=@var,z=@var]
+LIST/PREC=12 xyz_zero_mean[x=@var,y=@var,z=@var]
+             VARIABLE : 0*X[GX=XAX] + 0*Y[GY=YAX] + (Z[GZ=ZAX]-101)
+             X        : 0.5 to 200.5 (XYZ variance)
+             Y        : 0.5 to 200.5 (XYZ variance)
+             Z        : 0.5 to 201.5 (XYZ variance)
+          3366.66666667
+ 
+! confirm that adding a constant does not change the result
+GO bn_compressed_gather.sub xyz[x=@var,y=@var,z=@var]  20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 3366.7
+ Maximum value: 3366.7
+ Mean    value: 3366.7 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 6.960004 megawords
+    Current cache: 9.680006 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 3366.7
+ Maximum value: 3366.7
+ Mean    value: 3366.7 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 640004 words
+    Current cache: 1.640003 megawords
+COMPRESSED GATHER success on expression xyz[x=@var,y=@var,z=@var]
+LIST/PREC=12 xyz[x=@var,y=@var,z=@var]
+             VARIABLE : 0*X[GX=XAX] + 0*Y[GY=YAX] + Z[GZ=ZAX] + 1
+             X        : 0.5 to 200.5 (XYZ variance)
+             Y        : 0.5 to 200.5 (XYZ variance)
+             Z        : 0.5 to 201.5 (XYZ variance)
+          3366.66666667
+ 
+CANCEL MEMORY/ALL  ! IF PRESENT THIS PREVENTS THE MEMORY CORRUPTION
+! confirm the @std gives the square root of the variance
+! SQRT(676700/201) = 58.022983951764034269074805569046
+GO bn_compressed_gather.sub xyz[x=@std,y=@std,z=@std]  20 2
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 58.023
+ Maximum value: 58.023
+ Mean    value: 58.023 (unweighted average)
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 6.960004 megawords
+    Current cache: 8.040003 megawords
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 58.023
+ Maximum value: 58.023
+ Mean    value: 58.023 (unweighted average)
+    SET MEMORY/SIZE: 2 megawords
+    Peak demand: 640004 words
+    Current cache: 1.640003 megawords
+COMPRESSED GATHER success on expression xyz[x=@std,y=@std,z=@std]
+LIST/PREC=12 xyz[x=@std,y=@std,z=@std]
+             VARIABLE : 0*X[GX=XAX] + 0*Y[GY=YAX] + Z[GZ=ZAX] + 1
+             X        : 0.5 to 200.5 (XYZ stddev)
+             Y        : 0.5 to 200.5 (XYZ stddev)
+             Z        : 0.5 to 201.5 (XYZ stddev)
+          58.0229839518
+ 
+ 
+! add more tests here
+! the highest liklihood of problem is in the formulation of "the next chunk"
+! when IS_TRANS requests the next piece to be gathered
+! ... variations on inner and outer limits
+!     (i.e. averaging an expression with limits embedded inside of it
+!      where the averaging limits may or may not match the inner limits)
+! ... file variable, vs user variables
+! ... embedded functions, especially grid-changing functions
+!
+! ... test irregular axes (unequal weighting) and see how significant are
+!     the changes in results from old Ferret (particularly on @var)
+ 
+*** Running ferret script: bn_dynamic_gather.jnl
+[?1034h! bn_dynamic_gather.jnl
+! *sh* 3/2017
+ 
+! There's not really anything "dynamic" about this benchmark, except that it
+! excercises the split/gather improvements that were implemented together with
+! dynamic memory management
+ 
+ 
+ 
+ 
+! Give us something to look at while we run these tests which dont make plots
+plot/noax/nolab/vlim=0:1/i=4:5 i
+annotate/norm/x=0/y=0.5 "@AC... running bn_dynamic_gather"
+ 
+ 
+! **************************************
+! create the test data
+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 0 THEN
+ELSE
+  define symbol saved_memory_size = ($FERRET_MEMORY)
+ !-> define symbol saved_memory_size = 25.6
+  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=25.6
+ENDIF
+ 
+! ************************************
+ 
+use tmp/test_dyn_mem.nc
+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
+ 
+ 
+! excercise under the least strict memory management
+CANCEL MODE FRUGAL
+GO bn_dynamic_gather.sub
+! bn_dynamic_gather.sub
+ 
+! this subroutine to get called repeatedly for different values of MODE FRUGAL
+ 
+!**************
+! remember to test:
+! - MODE FRUGAL
+! done - case of no single axis long enough
+! done - case of transformed axis not long enough, but another is
+! 2-axis split including compressed
+! 2-axis split not including
+! 3-axis splits
+!    -- with slowest axis GT 5 in length
+!    -- with slowest axis LT 5 and second slowest GT 50
+! - modulo regrid examples
+! 2d and 3d @AVE
+! mixed @AVE and @DIN
+!*************
+ 
+! **************************************************
+! test memory that is too small to accommodate the result
+! this request will fail trying to get the third argument
+set mode ignore
+set memory/siz=1.99
+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]
+    At the moment that the memory limit was reached
+    argument 3 was being evaluated: V[L=1:10 at AVE]
+    memory was committed as follows:
+        - to arguments 1-2: 40000 (2%)
+        - to objects used in computation: : 0 (0%)
+    The size of the requested object was: : 2000000 (101%)
+cancel mode ignore
+ 
+! **************************************************
+! if memory size is large enough to accommodate the result data plus
+! its accumulation buffer(s) when split along the compressed axis (4M)
+! then it can choose to use the compressed axis.
+! The smallest chunk along that axis is 1000x1000x2x1 ==> 2M
+set memory/siz=6
+stat/brief v[l=1:10 at ave]
+ 
+ Total # of data points: 2000000 (1000*1000*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 2007.5
+ Mean    value: 1008 (unweighted average)
+show memory/diagnostic   ! T axis split, chunk size = 1, peak mem=6
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              T     AVE         1           1
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 6 megawords
+    Peak demand: 6 megawords
+    Current cache: 6 megawords
+show memory/all          ! in memory following the last chunk
+    SET MEMORY/SIZE: 6 megawords
+    Peak demand: 6 megawords
+    Current cache: 6 megawords
+all data in memory:
+ V[D=test_dyn_mem]                 XYZ   mr:6 size:4000000
+         1/0.5                 1/0.5                 1/0.5              ... /0.5
+      1000/1000.5           1000/1000.5              2/2.5              ... /10.5
+                                                              AVE
+ V[D=test_dyn_mem]                 XYZ   mr:4 size:2000000
+         1/0.5                 1/0.5                 1/0.5                10/9.5
+      1000/1000.5           1000/1000.5              2/2.5                10/10.5
+ 
+cancel memory/all
+ 
+! **************************************************
+! Since @VAR requires two buffers - the total size of the result is 2M+2*2M=6M
+! if we were to split along T the size of a chunk would be 1000x1000x2x1 = 2M
+! So the total memory needed would be 6M+2M=8M to split along T
+set memory/size=8
+stat/brief v[l=1:10 at var]
+ 
+ Total # of data points: 2000000 (1000*1000*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.25
+ Maximum value: 8.25
+ Mean    value: 8.25 (unweighted average)
+show memory/diagnostic   ! T axis split, chunk size = 1, peak mem=8
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              T     VAR         1           1
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 8 megawords
+    Peak demand: 8 megawords
+    Current cache: 8 megawords
+cancel memory/all
+ 
+! **************************************************
+! if memory size is NOT large enough to accommodate the result data plus
+! its accumulation buffer(s) then it cannot split along T
+set memory/siz=5.9
+stat/brief v[l=1:10 at ave]
+ 
+ Total # of data points: 2000000 (1000*1000*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 2007.5
+ Mean    value: 1008 (unweighted average)
+show memory/diagnostic   ! Y axis split, big chunk size = 1
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Y     AVE       162           1
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 5.9 megawords
+    Peak demand: 5.888 megawords
+    Current cache: 3.32 megawords
+cancel memory/all
+ 
+! **************************************************
+! memory barely large enough to accommodate the result (2M), and the
+! smallest achievable chunk
+! splitting along the Y axis, the smallest chunk size is 1000x1x2x10 ==> 20000
+! and the average of a single chunk (incl buffer) is 1000x1x2x1*2 ==> 4000
+set memory/siz=2.024
+stat/brief v[l=1:10 at ave]
+ 
+ Total # of data points: 2000000 (1000*1000*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 2007.5
+ Mean    value: 1008 (unweighted average)
+show memory/diagnostic ! Y axis split, chunk size=1, peak mem=2.024
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Y     AVE         1           1
+    Total table slots: 500
+    Free table slots: 497
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 2.024 megawords
+    Peak demand: 2.024 megawords
+    Current cache: 2.024 megawords
+show memory/all        ! in memory following the last chunk
+    SET MEMORY/SIZE: 2.024 megawords
+    Peak demand: 2.024 megawords
+    Current cache: 2.024 megawords
+all data in memory:
+ V[D=test_dyn_mem]                 XYZ   mr:4 size:2000000
+         1/0.5                 1/0.5                 1/0.5              ... /0.5
+      1000/1000.5           1000/1000.5              2/2.5              ... /10.5
+                                                              AVE
+ V[D=test_dyn_mem]                 XZ    mr:5 size:4000
+         1/0.5              1000/999.5               1/0.5              ... /0.5
+      1000/1000.5           1000/1000.5              2/2.5              ... /10.5
+                                                              AVE
+ V[D=test_dyn_mem]                 XZT   mr:6 size:20000
+         1/0.5              1000/999.5               1/0.5                 1/0.5
+      1000/1000.5           1000/1000.5              2/2.5                10/10.5
+ 
+cancel memory/all
+ 
+! **************************************************
+! Since @VAR requires two buffers - the total size of the result is 2M+2*2M=6M
+! if we were to split along T the size of a chunk would be 1000x1000x2x1 = 2M
+! So the total memory needed would be 6M+2M=8M.  So the current SET MEMORY=6
+! is not enuf mem to split along the T axis
+set memory/siz=6
+stat/brief v[l=1:10 at var]
+ 
+ Total # of data points: 2000000 (1000*1000*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.25
+ Maximum value: 8.25
+ Mean    value: 8.25 (unweighted average)
+show memory/diagnostic   ! Y axis split
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Y     VAR       153           1
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 6 megawords
+    Peak demand: 5.978 megawords
+    Current cache: 5.05 megawords
+cancel memory/all
+ 
+! **************************************************
+! 3D averaging  v[x=@ave,y=@ave,z=@ave,L=1]
+! result size will be 1x1x1x1*2 = 2
+! chunk size if split along Z will be 1000x1000x1x1 = 1M
+! chunk size if split along Y will be 1000x1x2x1    = 2K
+ 
+! this request can succeed by splitting along Z
+set memory/siz=1.001
+stat/brief v[x=@ave,y=@ave,z=@ave,L=1]
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 1003.5
+ Maximum value: 1003.5
+ Mean    value: 1003.5 (unweighted average)
+show memory/diagnostic     ! Z axis split
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Z     AV4         1           1
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 1.001 megawords
+    Peak demand: 1.000002 megawords
+    Current cache: 1.000002 megawords
+cancel memory/all
+ 
+! **************************************************
+! but if memory is so small that the Z axis of 2 points does not provide
+! enough size reduction, then we choose to split along Y
+set memory/siz=.99
+stat/brief v[x=@ave,y=@ave,z=@ave,L=1]
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 1003.5
+ Maximum value: 1003.5
+ Mean    value: 1003.5 (unweighted average)
+show memory/diagnostic     ! Y axis split
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Y     AV4       494           1
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 990000 words
+    Peak demand: 988002 words
+    Current cache: 24002 words
+cancel memory/all
+ 
+! **************************************************
+! multiple transformations on a single expression
+! Use of these expressions **is a bad idea in Ferret**
+! he "potential size" of the source data is 1000x1000x20x10=20M
+! we just get aggressive about memory saving: choose the longest axis
+! preferring an uncompressed axis if available
+! Here we see a triple level strip: Z-T-Y
+! (SHOW MEM/DIAG repeats on each of the 2 K values)
+set memory/siz=.99
+stat/brief v[x=@ave,y=@ave,L=@SUM]
+ 
+ Total # of data points: 2 (1*1*2*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 10075
+ Maximum value: 10085
+ Mean    value: 10080 (unweighted average)
+show memory/diagnostic        !  split on Z-(T-Y,T-Y)
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Z     SUM         1           1
+        V              T     SUM         1           1
+        V              Y     AV4       989          10
+        V              T     SUM         1           1
+        V              Y     AV4       989          10
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 990000 words
+    Peak demand: 989006 words
+    Current cache: 11006 words
+cancel memory/all
+ 
+! **************************************************
+! now the same situation, but where Z is compressed as well
+! Z is not stripped off because other axes are longer
+set memory/siz=.99
+stat/brief v[x=@ave,y=@ave,z=@ave,L=@SUM]
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 10080
+ Maximum value: 10080
+ Mean    value: 10080 (unweighted average)
+show memory/diagnostic       ! split on T-Y
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              T     SUM         1           1
+        V              Y     AV4       494          10
+    Total table slots: 500
+    Free table slots: 497
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 990000 words
+    Peak demand: 988004 words
+    Current cache: 24004 words
+cancel memory/all
+ 
+! **************************************************
+! multiple transformation again
+! first strip YZT at AVE. Split the long Y axis, no further split needed
+set memory/siz=.99
+stat/brief v[x=@SUM,y=@ave,z=@ave,L=@ave]
+ 
+ Total # of data points: 1 (1*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 1008000
+ Maximum value: 1008000
+ Mean    value: 1008000 (unweighted average)
+show memory/diagnostic      ! split on Y
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              Y     AV4        24           1
+    Total table slots: 500
+    Free table slots: 494
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 990000 words
+    Peak demand: 480962 words
+    Current cache: 802562 words
+cancel memory/all
+ 
+! **************************************************
+! MODULO REGRID
+ 
+! v1000 is 10x100x4x1000
+! for gt=@mod the full result size is 10x100x4x12 ==>  48,000
+ 
+define axis/mod/t=1:12:1 t12mod
+ 
+!**************************************************
+set mem/size=10   ! bigger than needed
+stat/brief v1000[gt=t12mod at mod]
+ 
+ Total # of data points: 48000 (10*100*4*12*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 618
+ Mean    value: 559 (unweighted average)
+show mem/diag     ! note peak size demand a bit over 4
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 10 megawords
+    Peak demand: 4.144 megawords
+    Current cache: 4.048 megawords
+canc mem/all
+ 
+!**************************************************
+set mem/size=4
+stat/brief v1000[gt=t12mod at mod]
+ 
+ Total # of data points: 48000 (10*100*4*12*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 618
+ Mean    value: 559 (unweighted average)
+show mem/diag              ! big z chunks (3 on ax of len 4)
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V1000          Z                 3           1
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 4 megawords
+    Peak demand: 3.108 megawords
+    Current cache: 1.096 megawords
+canc mem/all
+ 
+!**************************************************
+set mem/size=1
+stat/brief v1000[gt=t12mod at mod]
+ 
+ Total # of data points: 48000 (10*100*4*12*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 618
+ Mean    value: 559 (unweighted average)
+show mem/diag              !  big y chunks (22 on ax of len 100)
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V1000          Y                22           1
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 1000000 words
+    Peak demand: 959680 words
+    Current cache: 544320 words
+canc mem/all
+ 
+!**************************************************
+! if the chunk size is 1, then each chunk src is 10x1x4x1000 ==> 40000
+! and requires a result plus 2 buffers:          10x1x4x12*3 ==>  1440
+! plus the full result size in IS_GATHER                     ==> 48000
+!                                                      total ==> 89440
+set mem/size=.09
+stat/brief v1000[gt=t12mod at mod]
+ 
+ Total # of data points: 48000 (10*100*4*12*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 500
+ Maximum value: 618
+ Mean    value: 559 (unweighted average)
+show mem/diag              !  y chunk size = 1
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V1000          Y                 1           1
+    Total table slots: 500
+    Free table slots: 496
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 90000 words
+    Peak demand: 89440 words
+    Current cache: 88960 words
+canc mem/all
+ 
+ 
+! ************** USER VARIABLES ********************
+let a = v[k=1]
+let b = v[k=2]
+let c = a + b
+let d = a + c
+ 
+! for comparison: memory management to average a simple file variable
+set memory/siz=3
+stat/brief v[l=1:10 at ave,k=1]
+ 
+ Total # of data points: 1000000 (1000*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 2006.5
+ Mean    value: 1007.5 (unweighted average)
+show memory/diagnostic   ! T axis split, chunk size = 1, peak mem=6
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        V              T     AVE         1           1
+    Total table slots: 500
+    Free table slots: 498
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 3 megawords
+    Peak demand: 3 megawords
+    Current cache: 3 megawords
+cancel memory/all
+ 
+! compare to memory management averaging user variables
+! not split on T because more memory is needed for components of calculation
+set memory/siz=3
+ 
+stat/brief a[l=1:10 at ave]
+ 
+ Total # of data points: 1000000 (1000*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 2006.5
+ Mean    value: 1007.5 (unweighted average)
+show memory/diagnostic   ! X axis split, chunk size = 1, peak mem=1.82
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        A              Y     AVE        47           1
+    Total table slots: 500
+    Free table slots: 491
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 3 megawords
+    Peak demand: 1.94 megawords
+    Current cache: 2.884 megawords
+cancel memory/all
+ 
+stat/brief d[l=1:10 at ave]
+ 
+ Total # of data points: 1000000 (1000*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 26.5
+ Maximum value: 6020.5
+ Mean    value: 3023.5 (unweighted average)
+show memory/diagnostic   ! X axis split, chunk size = 1, peak mem=2.23
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        D              Y     AVE        47           1
+    Total table slots: 500
+    Free table slots: 489
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 3 megawords
+    Peak demand: 2.41 megawords
+    Current cache: 2.84 megawords
+cancel memory/all
+ 
+! progressively more frugal mem mgmt is needed as multiple results accumulate
+stat/brief a[i=1:500,l=1:10 at ave], b[i=1:500,l=1:10 at ave], c[i=1:500,l=1:10 at ave], d[i=1:500,l=1:10 at ave]
+ 
+ Total # of data points: 500000 (500*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 8.5
+ Maximum value: 1506.5
+ Mean    value: 757.5 (unweighted average)
+ 
+ Total # of data points: 500000 (500*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 9.5
+ Maximum value: 1507.5
+ Mean    value: 758.5 (unweighted average)
+ 
+ Total # of data points: 500000 (500*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 18
+ Maximum value: 3014
+ Mean    value: 1516 (unweighted average)
+ 
+ Total # of data points: 500000 (500*1000*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 26.5
+ Maximum value: 4520.5
+ Mean    value: 2273.5 (unweighted average)
+show memory/diagnostic   ! X axis split, chunk size = 1, peak mem=2.23
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        A              T     AVE         1           1
+        B              Y     AVE        71           1
+        C              Y     AVE        47           1
+        D              Y     AVE        23           1
+    Total table slots: 500
+    Free table slots: 487
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 3 megawords
+    Peak demand: 2.845 megawords
+    Current cache: 2.979 megawords
+cancel memory/all
+ 
+! if the initial arguments take up too much memory we cannot succeed
+set mode ignore
+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]
+    At the moment that the memory limit was reached
+    argument 3 was being evaluated: C[L=1:10 at AVE]
+    memory was committed as follows:
+        - to arguments 1-2: 2000000 (67%)
+        - to objects used in computation: : 0 (0%)
+    The size of the requested object was: : 1000000 (33%)
+show memory/diagnostic   ! X axis split, chunk size = 1, peak mem=2.23
+    Last gather
+        Variable    Axis   Xform     Chunk    Repeated
+        A              Y     AVE        47           1
+        B              Y     AVE        23           1
+    Total table slots: 500
+    Free table slots: 491
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 3 megawords
+    Peak demand: 2.46 megawords
+    Current cache: 2.794 megawords
+cancel mode ignore
+cancel memory/all
+ 
+ 
+! now run the same tests under 3 different FRUGAL levels
+! save the outputs so they can be compared
+ 
+! excercise under the least strict memory management
+CANCEL REDIRECT
+SET REDIRECT/CLOBBER/FILE=bn_dynamic_gather_0.out
+SET REDIRECT/CLOBBER/FILE=bn_dynamic_gather_30.out
+SET REDIRECT/CLOBBER/FILE=bn_dynamic_gather_60.out
+ 
+! now compare the three output logs:
+! differences in *how* the results are computed are fine
+! differences in what the results are would be problems
+SAY **************************************************
+**************************************************
+SAY ************* DIFF FRUGAL 0 TO 30 ****************
+************* DIFF FRUGAL 0 TO 30 ****************
+SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_30.out
+1c1
+< CANCEL MODE FRUGAL
+---
+> SET MODE FRUGAL    ! 30%
+4c4
+<       FRUGAL        CANCELED            30
+---
+>       FRUGAL           SET              30
+56c56
+<         V              T     AVE         1           1
+---
+>         V              Y     AVE        91           1
+58c58
+<     Free table slots: 498
+---
+>     Free table slots: 496
+61,62c61,62
+<     Peak demand: 6 megawords
+<     Current cache: 6 megawords
+---
+>     Peak demand: 4.184 megawords
+>     Current cache: 4.524 megawords
+65,66c65,66
+<     Peak demand: 6 megawords
+<     Current cache: 6 megawords
+---
+>     Peak demand: 4.184 megawords
+>     Current cache: 4.524 megawords
+68c68
+<  V[D=test_dyn_mem]                 XYZ   mr:7 size:4000000
+---
+>  V[D=test_dyn_mem]                 XYZ   mr:4 size:2000000
+72,73c72,77
+<  V[D=test_dyn_mem]                 XYZ   mr:13 size:2000000
+<          1/0.5                 1/0.5                 1/0.5                10/9.5
+---
+>  V[D=test_dyn_mem]                 XYZ   mr:7 size:360000
+>          1/0.5               911/910.5               1/0.5              ... /0.5
+>       1000/1000.5           1000/1000.5              2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:12 size:1800000
+>          1/0.5               911/910.5               1/0.5                 1/0.5
+75a80,83
+>  V[D=test_dyn_mem]                 XYZ   mr:8 size:364000
+>          1/0.5               820/819.5               1/0.5              ... /0.5
+>       1000/1000.5            910/910.5               2/2.5              ... /10.5
+>                                                               AVE
+93c101
+<         V              T     VAR         1           1
+---
+>         V              Y     VAR       138           1
+95c103
+<     Free table slots: 498
+---
+>     Free table slots: 494
+98,99c106,107
+<     Peak demand: 8 megawords
+<     Current cache: 8 megawords
+---
+>     Peak demand: 5.588 megawords
+>     Current cache: 7.3 megawords
+116c124
+<         V              Y     AVE       162           1
+---
+>         V              Y     AVE        88           1
+118c126
+<     Free table slots: 496
+---
+>     Free table slots: 494
+121,122c129,130
+<     Peak demand: 5.888 megawords
+<     Current cache: 3.32 megawords
+---
+>     Peak demand: 4.112 megawords
+>     Current cache: 5.232 megawords
+141a150
+>         V              T     AVE         6         999
+143c152
+<     Free table slots: 497
+---
+>     Free table slots: 496
+146c155
+<     Peak demand: 2.024 megawords
+---
+>     Peak demand: 2.016 megawords
+150c159
+<     Peak demand: 2.024 megawords
+---
+>     Peak demand: 2.016 megawords
+157c166
+<  V[D=test_dyn_mem]                 XZ    mr:11 size:4000
+---
+>  V[D=test_dyn_mem]                 XZ    mr:10 size:4000
+161,162c170,171
+<  V[D=test_dyn_mem]                 XZT   mr:13 size:20000
+<          1/0.5              1000/999.5               1/0.5                 1/0.5
+---
+>  V[D=test_dyn_mem]                 XZT   mr:4 size:8000
+>          1/0.5              1000/999.5               1/0.5                 7/6.5
+164a174,177
+>  V[D=test_dyn_mem]                 XZT   mr:12 size:12000
+>          1/0.5              1000/999.5               1/0.5                 1/0.5
+>       1000/1000.5           1000/1000.5              2/2.5                 6/6.5
+>  
+183c196
+<         V              Y     VAR       153           1
+---
+>         V              Y     VAR        84           1
+188,189c201,202
+<     Peak demand: 5.978 megawords
+<     Current cache: 5.05 megawords
+---
+>     Peak demand: 4.184 megawords
+>     Current cache: 4.48 megawords
+210c223
+<         V              Z     AV4         1           1
+---
+>         V              Y     AV4       350           1
+215,216c228,229
+<     Peak demand: 1.000002 megawords
+<     Current cache: 1.000002 megawords
+---
+>     Peak demand: 700002 words
+>     Current cache: 600002 words
+233c246
+<         V              Y     AV4       494           1
+---
+>         V              Y     AV4       346           1
+238,239c251,252
+<     Peak demand: 988002 words
+<     Current cache: 24002 words
+---
+>     Peak demand: 692002 words
+>     Current cache: 616002 words
+263c276
+<         V              Y     AV4       989          10
+---
+>         V              Y     AV4       692          10
+265c278
+<         V              Y     AV4       989          10
+---
+>         V              Y     AV4       692          10
+270,271c283,284
+<     Peak demand: 989006 words
+<     Current cache: 11006 words
+---
+>     Peak demand: 692006 words
+>     Current cache: 308006 words
+289c302
+<         V              Y     AV4       494          10
+---
+>         V              Y     AV4       346          10
+294,295c307,308
+<     Peak demand: 988004 words
+<     Current cache: 24004 words
+---
+>     Peak demand: 692004 words
+>     Current cache: 616004 words
+312c325
+<         V              Y     AV4        24           1
+---
+>         V              Y     AV4        17           1
+314c327
+<     Free table slots: 494
+---
+>     Free table slots: 492
+317,318c330,331
+<     Peak demand: 480962 words
+<     Current cache: 802562 words
+---
+>     Peak demand: 340682 words
+>     Current cache: 962602 words
+360c373
+<         V1000          Z                 3           1
+---
+>         V1000          Z                 2           1
+365,366c378,379
+<     Peak demand: 3.108 megawords
+<     Current cache: 1.096 megawords
+---
+>     Peak demand: 2.12 megawords
+>     Current cache: 2.096 megawords
+381c394
+<         V1000          Y                22           1
+---
+>         V1000          Y                15           1
+386,387c399,400
+<     Peak demand: 959680 words
+<     Current cache: 544320 words
+---
+>     Peak demand: 669600 words
+>     Current cache: 460000 words
+406a420
+>         V1000          Z                 2          99
+408c422
+<     Free table slots: 496
+---
+>     Free table slots: 493
+411,412c425,426
+<     Peak demand: 89440 words
+<     Current cache: 88960 words
+---
+>     Peak demand: 69200 words
+>     Current cache: 89440 words
+434c448
+<         V              T     AVE         1           1
+---
+>         V              Y     AVE        91           1
+436c450
+<     Free table slots: 498
+---
+>     Free table slots: 496
+439,440c453,454
+<     Peak demand: 3 megawords
+<     Current cache: 3 megawords
+---
+>     Peak demand: 2.092 megawords
+>     Current cache: 2.262 megawords
+457c471
+<         A              Y     AVE        47           1
+---
+>         A              Y     AVE        26           1
+459c473
+<     Free table slots: 491
+---
+>     Free table slots: 487
+462,463c476,477
+<     Peak demand: 1.94 megawords
+<     Current cache: 2.884 megawords
+---
+>     Peak demand: 1.52 megawords
+>     Current cache: 2.98 megawords
+476c490
+<         D              Y     AVE        47           1
+---
+>         D              Y     AVE        26           1
+478c492
+<     Free table slots: 489
+---
+>     Free table slots: 487
+481,482c495,496
+<     Peak demand: 2.41 megawords
+<     Current cache: 2.84 megawords
+---
+>     Peak demand: 1.78 megawords
+>     Current cache: 2.836 megawords
+514,517c528,531
+<         A              T     AVE         1           1
+<         B              Y     AVE        71           1
+<         C              Y     AVE        47           1
+<         D              Y     AVE        23           1
+---
+>         A              Y     AVE        76           1
+>         B              Y     AVE        59           1
+>         C              Y     AVE        42           1
+>         D              Y     AVE        26           1
+519c533
+<     Free table slots: 487
+---
+>     Free table slots: 484
+522,523c536,537
+<     Peak demand: 2.845 megawords
+<     Current cache: 2.979 megawords
+---
+>     Peak demand: 2.39 megawords
+>     Current cache: 2.918 megawords
+538,539c552,553
+<         A              Y     AVE        47           1
+<         B              Y     AVE        23           1
+---
+>         A              Y     AVE        26           1
+>         B              Y     AVE         9           1
+541c555
+<     Free table slots: 491
+---
+>     Free table slots: 481
+544,545c558,559
+<     Peak demand: 2.46 megawords
+<     Current cache: 2.794 megawords
+---
+>     Peak demand: 2.18 megawords
+>     Current cache: 2.922 megawords
+551c565
+< ! excercise under the default memory management
+---
+> ! excercise under pretty strict memory management
+ 
+SAY **************************************************
+**************************************************
+SAY ************* DIFF FRUGAL 0 TO 60 ****************
+************* DIFF FRUGAL 0 TO 60 ****************
+SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
+1c1
+< CANCEL MODE FRUGAL
+---
+> SET MODE FRUGAL:60
+4c4
+<       FRUGAL        CANCELED            30
+---
+>       FRUGAL           SET              60
+56c56
+<         V              T     AVE         1           1
+---
+>         V              Y     AVE        16           1
+58c58
+<     Free table slots: 498
+---
+>     Free table slots: 478
+61,62c61,62
+<     Peak demand: 6 megawords
+<     Current cache: 6 megawords
+---
+>     Peak demand: 2.384 megawords
+>     Current cache: 5.712 megawords
+65,66c65,66
+<     Peak demand: 6 megawords
+<     Current cache: 6 megawords
+---
+>     Peak demand: 2.384 megawords
+>     Current cache: 5.712 megawords
+68c68
+<  V[D=test_dyn_mem]                 XYZ   mr:7 size:4000000
+---
+>  V[D=test_dyn_mem]                 XYZ   mr:13 size:2000000
+72,73c72,77
+<  V[D=test_dyn_mem]                 XYZ   mr:13 size:2000000
+<          1/0.5                 1/0.5                 1/0.5                10/9.5
+---
+>  V[D=test_dyn_mem]                 XYZ   mr:21 size:32000
+>          1/0.5               993/992.5               1/0.5              ... /0.5
+>       1000/1000.5           1000/1000.5              2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:1 size:160000
+>          1/0.5               993/992.5               1/0.5                 1/0.5
+75a80,155
+>  V[D=test_dyn_mem]                 XYZ   mr:20 size:64000
+>          1/0.5               977/976.5               1/0.5              ... /0.5
+>       1000/1000.5            992/992.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:3 size:320000
+>          1/0.5               977/976.5               1/0.5                 1/0.5
+>       1000/1000.5            992/992.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:2 size:64000
+>          1/0.5               961/960.5               1/0.5              ... /0.5
+>       1000/1000.5            976/976.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:5 size:320000
+>          1/0.5               961/960.5               1/0.5                 1/0.5
+>       1000/1000.5            976/976.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:4 size:64000
+>          1/0.5               945/944.5               1/0.5              ... /0.5
+>       1000/1000.5            960/960.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:7 size:320000
+>          1/0.5               945/944.5               1/0.5                 1/0.5
+>       1000/1000.5            960/960.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:6 size:64000
+>          1/0.5               929/928.5               1/0.5              ... /0.5
+>       1000/1000.5            944/944.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:9 size:320000
+>          1/0.5               929/928.5               1/0.5                 1/0.5
+>       1000/1000.5            944/944.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:8 size:64000
+>          1/0.5               913/912.5               1/0.5              ... /0.5
+>       1000/1000.5            928/928.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:11 size:320000
+>          1/0.5               913/912.5               1/0.5                 1/0.5
+>       1000/1000.5            928/928.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:10 size:64000
+>          1/0.5               897/896.5               1/0.5              ... /0.5
+>       1000/1000.5            912/912.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:14 size:320000
+>          1/0.5               897/896.5               1/0.5                 1/0.5
+>       1000/1000.5            912/912.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:12 size:64000
+>          1/0.5               881/880.5               1/0.5              ... /0.5
+>       1000/1000.5            896/896.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:18 size:320000
+>          1/0.5               881/880.5               1/0.5                 1/0.5
+>       1000/1000.5            896/896.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:15 size:64000
+>          1/0.5               865/864.5               1/0.5              ... /0.5
+>       1000/1000.5            880/880.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:25 size:320000
+>          1/0.5               865/864.5               1/0.5                 1/0.5
+>       1000/1000.5            880/880.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:19 size:64000
+>          1/0.5               849/848.5               1/0.5              ... /0.5
+>       1000/1000.5            864/864.5               2/2.5              ... /10.5
+>                                                               AVE
+>  V[D=test_dyn_mem]                 XYZT  mr:24 size:320000
+>          1/0.5               849/848.5               1/0.5                 1/0.5
+>       1000/1000.5            864/864.5               2/2.5                10/10.5
+>  
+>  V[D=test_dyn_mem]                 XYZ   mr:23 size:64000
+>          1/0.5               833/832.5               1/0.5              ... /0.5
+>       1000/1000.5            848/848.5               2/2.5              ... /10.5
+>                                                               AVE
+93c173
+<         V              T     VAR         1           1
+---
+>         V              Y     VAR        46           1
+95c175
+<     Free table slots: 498
+---
+>     Free table slots: 488
+98,99c178,179
+<     Peak demand: 8 megawords
+<     Current cache: 8 megawords
+---
+>     Peak demand: 3.196 megawords
+>     Current cache: 7.944 megawords
+116c196
+<         V              Y     AVE       162           1
+---
+>         V              Y     AVE        14           1
+118c198
+<     Free table slots: 496
+---
+>     Free table slots: 474
+121,122c201,202
+<     Peak demand: 5.888 megawords
+<     Current cache: 3.32 megawords
+---
+>     Peak demand: 2.336 megawords
+>     Current cache: 5.896 megawords
+141a222
+>         V              T     AVE         2         999
+143c224
+<     Free table slots: 497
+---
+>     Free table slots: 493
+146c227
+<     Peak demand: 2.024 megawords
+---
+>     Peak demand: 2.008 megawords
+150c231
+<     Peak demand: 2.024 megawords
+---
+>     Peak demand: 2.008 megawords
+153c234
+<  V[D=test_dyn_mem]                 XYZ   mr:8 size:2000000
+---
+>  V[D=test_dyn_mem]                 XYZ   mr:24 size:2000000
+157c238
+<  V[D=test_dyn_mem]                 XZ    mr:11 size:4000
+---
+>  V[D=test_dyn_mem]                 XZ    mr:25 size:4000
+161,162c242,243
+<  V[D=test_dyn_mem]                 XZT   mr:13 size:20000
+<          1/0.5              1000/999.5               1/0.5                 1/0.5
+---
+>  V[D=test_dyn_mem]                 XZT   mr:19 size:4000
+>          1/0.5              1000/999.5               1/0.5                 9/8.5
+164a246,261
+>  V[D=test_dyn_mem]                 XZT   mr:20 size:4000
+>          1/0.5              1000/999.5               1/0.5                 7/6.5
+>       1000/1000.5           1000/1000.5              2/2.5                 8/8.5
+>  
+>  V[D=test_dyn_mem]                 XZT   mr:21 size:4000
+>          1/0.5              1000/999.5               1/0.5                 5/4.5
+>       1000/1000.5           1000/1000.5              2/2.5                 6/6.5
+>  
+>  V[D=test_dyn_mem]                 XZT   mr:22 size:4000
+>          1/0.5              1000/999.5               1/0.5                 3/2.5
+>       1000/1000.5           1000/1000.5              2/2.5                 4/4.5
+>  
+>  V[D=test_dyn_mem]                 XZT   mr:26 size:4000
+>          1/0.5              1000/999.5               1/0.5                 1/0.5
+>       1000/1000.5           1000/1000.5              2/2.5                 2/2.5
+>  
+183c280
+<         V              Y     VAR       153           1
+---
+>         V              Y     VAR        15           1
+185c282
+<     Free table slots: 496
+---
+>     Free table slots: 478
+188,189c285,286
+<     Peak demand: 5.978 megawords
+<     Current cache: 5.05 megawords
+---
+>     Peak demand: 2.39 megawords
+>     Current cache: 5.86 megawords
+210c307
+<         V              Z     AV4         1           1
+---
+>         V              Y     AV4       200           1
+212c309
+<     Free table slots: 498
+---
+>     Free table slots: 497
+215,216c312,313
+<     Peak demand: 1.000002 megawords
+<     Current cache: 1.000002 megawords
+---
+>     Peak demand: 400002 words
+>     Current cache: 800002 words
+233c330
+<         V              Y     AV4       494           1
+---
+>         V              Y     AV4       197           1
+235c332
+<     Free table slots: 498
+---
+>     Free table slots: 496
+238,239c335,336
+<     Peak demand: 988002 words
+<     Current cache: 24002 words
+---
+>     Peak demand: 394002 words
+>     Current cache: 818002 words
+263c360
+<         V              Y     AV4       989          10
+---
+>         V              Y     AV4       395          10
+265c362
+<         V              Y     AV4       989          10
+---
+>         V              Y     AV4       395          10
+267c364
+<     Free table slots: 496
+---
+>     Free table slots: 495
+270,271c367,368
+<     Peak demand: 989006 words
+<     Current cache: 11006 words
+---
+>     Peak demand: 395006 words
+>     Current cache: 605006 words
+289c386
+<         V              Y     AV4       494          10
+---
+>         V              Y     AV4       197          10
+291c388
+<     Free table slots: 497
+---
+>     Free table slots: 495
+294,295c391,392
+<     Peak demand: 988004 words
+<     Current cache: 24004 words
+---
+>     Peak demand: 394004 words
+>     Current cache: 818004 words
+312c409
+<         V              Y     AV4        24           1
+---
+>         V              Y     AV4         9           1
+314c411
+<     Free table slots: 494
+---
+>     Free table slots: 486
+317,318c414,415
+<     Peak demand: 480962 words
+<     Current cache: 802562 words
+---
+>     Peak demand: 180362 words
+>     Current cache: 922202 words
+339c436,438
+<     No split/gather occurred in the last evaluation
+---
+>     Last gather
+>         Variable    Axis   Xform     Chunk    Repeated
+>         V1000          Z                 3           1
+341c440
+<     Free table slots: 498
+---
+>     Free table slots: 495
+344,345c443,444
+<     Peak demand: 4.144 megawords
+<     Current cache: 4.048 megawords
+---
+>     Peak demand: 3.108 megawords
+>     Current cache: 4.096 megawords
+360c459
+<         V1000          Z                 3           1
+---
+>         V1000          Z                 1           1
+362c461
+<     Free table slots: 496
+---
+>     Free table slots: 492
+365,366c464,465
+<     Peak demand: 3.108 megawords
+<     Current cache: 1.096 megawords
+---
+>     Peak demand: 1.084 megawords
+>     Current cache: 3.096 megawords
+381c480
+<         V1000          Y                22           1
+---
+>         V1000          Y                 8           1
+383c482
+<     Free table slots: 496
+---
+>     Free table slots: 492
+386,387c485,486
+<     Peak demand: 959680 words
+<     Current cache: 544320 words
+---
+>     Peak demand: 379520 words
+>     Current cache: 861440 words
+406a506
+>         V1000          Z                 3         100
+408c508
+<     Free table slots: 496
+---
+>     Free table slots: 488
+411,412c511,512
+<     Peak demand: 89440 words
+<     Current cache: 88960 words
+---
+>     Peak demand: 58840 words
+>     Current cache: 89560 words
+434c534
+<         V              T     AVE         1           1
+---
+>         V              Y     AVE        16           1
+436c536
+<     Free table slots: 498
+---
+>     Free table slots: 478
+439,440c539,540
+<     Peak demand: 3 megawords
+<     Current cache: 3 megawords
+---
+>     Peak demand: 1.192 megawords
+>     Current cache: 2.856 megawords
+457c557
+<         A              Y     AVE        47           1
+---
+>         A              Y     AVE         4           1
+459c559
+<     Free table slots: 491
+---
+>     Free table slots: 431
+462,463c562,563
+<     Peak demand: 1.94 megawords
+<     Current cache: 2.884 megawords
+---
+>     Peak demand: 1.08 megawords
+>     Current cache: 2.984 megawords
+476c576
+<         D              Y     AVE        47           1
+---
+>         D              Y     AVE         4           1
+478c578
+<     Free table slots: 489
+---
+>     Free table slots: 442
+481,482c581,582
+<     Peak demand: 2.41 megawords
+<     Current cache: 2.84 megawords
+---
+>     Peak demand: 1.12 megawords
+>     Current cache: 2.992 megawords
+514,517c614,617
+<         A              T     AVE         1           1
+<         B              Y     AVE        71           1
+<         C              Y     AVE        47           1
+<         D              Y     AVE        23           1
+---
+>         A              Y     AVE        33           1
+>         B              Y     AVE        23           1
+>         C              Y     AVE        14           1
+>         D              Y     AVE         4           1
+519c619
+<     Free table slots: 487
+---
+>     Free table slots: 439
+522,523c622,623
+<     Peak demand: 2.845 megawords
+<     Current cache: 2.979 megawords
+---
+>     Peak demand: 2.06 megawords
+>     Current cache: 2.996 megawords
+538,539c638,639
+<         A              Y     AVE        47           1
+<         B              Y     AVE        23           1
+---
+>         A              Y     AVE         4           1
+>         B              Y     AVE         9           1
+541c641
+<     Free table slots: 491
+---
+>     Free table slots: 481
+544,545c644,645
+<     Peak demand: 2.46 megawords
+<     Current cache: 2.794 megawords
+---
+>     Peak demand: 2.18 megawords
+>     Current cache: 2.922 megawords
+551d650
+< ! excercise under the default memory management
+ 
+ 
+! deliberate error
+SET MODE IGNORE
+SET MODE FRUGAL:95
+SET MODE/LAST IGNORE
+ 
+*** Running ferret script: bn_stat_precision.jnl
+[?1034h! bn_stat_precision.jnl
+! 3/2017 *acm* Ticket 2512
+ 
+! The stat command self-adjusts precision to make the
+! min and max listed distinct
+ 
+let var = {1907.1,1907.05,1907.11}
+stat/br var
+ 
+ Total # of data points: 3 (3*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 1907.05
+ Maximum value: 1907.11
+ Mean    value: 1907.08667 (unweighted average)
+ 
+let var = {1907.001,1907.0005,1907.0011}
+stat/br var
+ 
+ Total # of data points: 3 (3*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 1907.0005
+ Maximum value: 1907.0011
+ Mean    value: 1907.00087 (unweighted average)
+ 
+let var = {221907.001,221907.0005,221907.0011}
+stat/br var
+ 
+ Total # of data points: 3 (3*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 221907.0005
+ Maximum value: 221907.0011
+ Mean    value: 221907.0008666667 (unweighted average)
+ 
+ 
+! STAT/PREC controls the precision, writing more or less digits
+ 
+stat/br/prec=5 var
+ 
+ Total # of data points: 3 (3*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 221907
+ Maximum value: 221907
+ Mean    value: 221907 (unweighted average)
+stat/br/prec=12 var
+ 
+ Total # of data points: 3 (3*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 221907.0005
+ Maximum value: 221907.0011
+ Mean    value: 221907.000867 (unweighted average)
+ 
+! some more examples
+let var = 30*randu(1+i[i=1:10])
+stat/br var
+ 
+ Total # of data points: 10 (10*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 2.7871
+ Maximum value: 27.002
+ Mean    value: 15.77 (unweighted average)
+stat/br/prec=3 var
+ 
+ Total # of data points: 10 (10*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 2.79
+ Maximum value: 27
+ Mean    value: 15.8 (unweighted average)
+stat/br/prec=7 var
+ 
+ Total # of data points: 10 (10*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 2.787087
+ Maximum value: 27.00225
+ Mean    value: 15.76991 (unweighted average)
+stat/br/prec=12 var
+ 
+ Total # of data points: 10 (10*1*1*1*1*1)
+ # flagged as bad  data: 0
+ Minimum value: 2.78708674143
+ 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
+! See ticket 2246
+! 3/27/2017 *ACM*
+ 
+! PLOT/VS plots automatically draw a formatted time axis
+! when one of the variables has calendar units and time origin
+ 
+! (Currently allow just one axis to be time formatted)
+ 
+can mode logo
+ 
+! Date units syntax days since 1982-01-01 is valid
+ 
+define axis/t=1:500:10/units=days/t0="01-jan-1982" tax
+let/units="days since 1982-01-01" mytime2 = t[gt=tax]
+ 
+let myvar2 = RANDU(mytime2)
+plot/vs/line mytime2, myvar2
+plot/vs/over/sym/color=red mytime2[L=1:50:2], myvar2[L=1:50:2]
+ 
+! time axis on the vertical
+ 
+! Date syntax days since 01-jan-1982 is also valid.
+define axis/t=1:500:10/units=days/t0="01-jan-1982" tax
+let/units="days since 01-jan-1982" mytime2 = t[gt=tax]
+ 
+plot/vs/line myvar2, mytime2
+plot/vs/over/sym/color=red/line  myvar2[L=1:50:2],  mytime2[L=1:50:2]
+ 
+! LAS style plots:
+! Dataset with pressure,temperature on ZT grid. Define a time variable
+! send it to PLOT/VS to draw plots with time-formatted axis, plain
+! 2-variable plots and plot/vs plots.
+! Define variables as if gridded T-Z data in spurs dataset
+ 
+define axis/t="25-JAN-2017:23:00":"02-FEB-2017 10:00":12/units=hours/t0=1-jan-2017 time
+define axis/z=1:50:4/units=m/depth zaxis
+let/title=pressure/units=m pres=z[gz=zaxis] + 0.3*randu(t[gt=time])
+let/title=temperature/units="Deg C" temp = 20 - z[gz=zaxis] + 10*randu(t[gt=time])
+ 
+! Define a time variable
+let/units="`pres,return=tunits` since `pres,return=t0`" ttvar = t[gt=temp] + 0*temp
+ !-> DEFINE VARIABLE/units="HOURS since 1-JAN-2017" ttvar = t[gt=temp] + 0*temp
+ 
+! time on horizontal axis
+set v ul; plot/vs/ribbon/sym=17/thick/vlim=50:0  ttvar, pres, temp
+ 
+! time on vertical axis
+set v ur; plot/vs/ribbon/sym=17/thick/hlim=50:0  pres, ttvar, temp
+ 
+! More time axis styles
+ 
+define axis/t=1-jan-2016:1-jan-2017:45/units=days/t0=1-jan-1970 time
+let/title=pressure/units=m pres=z[gz=zaxis] + 0.3*randu(t[gt=time])
+let/title=temperature/units="Deg C" temp = 20 - z[gz=zaxis] + 10*randu(t[gt=time])
+let/units="`pres,return=tunits` since `pres,return=t0`" ttvar = t[gt=temp] + 0*temp
+ !-> DEFINE VARIABLE/units="DAYS since 1-JAN-1970" ttvar = t[gt=temp] + 0*temp
+ 
+set v ll; plot/vs/ribbon/sym=17/thick/vlim=50:0  ttvar, pres, temp
+ 
+define axis/t=1-jan-2001:1-jan-2012:181/units=days/t0=1-jan-1970 time
+let/title=pressure/units=m pres=z[gz=zaxis] + 0.3*randu(t[gt=time])
+let/title=temperature/units="Deg C" temp = 20 - z[gz=zaxis] + 10*randu(t[gt=time])
+let/units="`pres,return=tunits` since `pres,return=t0`" ttvar = t[gt=temp] + 0*temp
+ !-> DEFINE VARIABLE/units="DAYS since 1-JAN-1970" ttvar = t[gt=temp] + 0*temp
+ 
+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
+ 
+ 
+sh func innerproduct*
+INNERPRODUCT(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
+    VAR1: Variable 1
+    VAR2: Variable 2
+INNERPRODUCT_Y(VAR1,VAR2)
+    Compute the inner product of two variables along Y-axis
+    VAR1: Variable 1
+    VAR2: Variable 2
+INNERPRODUCT_Z(VAR1,VAR2)
+    Compute the inner product of two variables along Z-axis
+    VAR1: Variable 1
+    VAR2: Variable 2
+INNERPRODUCT_T(VAR1,VAR2)
+    Compute the inner product of two variables along T-axis
+    VAR1: Variable 1
+    VAR2: Variable 2
+INNERPRODUCT_E(VAR1,VAR2)
+    Compute the inner product of two variables along E-axis
+    VAR1: Variable 1
+    VAR2: Variable 2
+INNERPRODUCT_F(VAR1,VAR2)
+    Compute the inner product of two variables along F-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
+! 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  innerproduct(var1, var2, 1)
+             VARIABLE : INNERPRODUCT(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)
+          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  innerproduct(var1, var2, 2)
+             VARIABLE : INNERPRODUCT(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  innerproduct(var1, var2, 3)
+             VARIABLE : INNERPRODUCT(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  innerproduct(var1, var2, 4)
+             VARIABLE : INNERPRODUCT(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  innerproduct(var1, var2, 5)
+             VARIABLE : INNERPRODUCT(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  innerproduct(var1, var2, 6)
+             VARIABLE : INNERPRODUCT(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 innerproduct(axy, bxz, 1)
+             VARIABLE : INNERPRODUCT(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 innerproduct(axy, byz, 2)
+             VARIABLE : INNERPRODUCT(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_inner = innerproduct(axyt, byz, 2)
+save/file=a.nc/clobber multi_inner
+ 
+can var multi_inner
+use a.nc
+!  This should be the same as innerproduct(axy, byz, 2)
+list/l=1 multi_inner
+             VARIABLE : INNERPRODUCT(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
+ 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 innerproduct(axz, bzt, 3)
+             VARIABLE : INNERPRODUCT(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 innerproduct(ayt, bzt, 4)
+             VARIABLE : INNERPRODUCT(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_inner = innerproduct(axyt, bzt, 4)
+save/file=a.nc/clobber multi_inner
+ 
+can var multi_inner
+use a.nc
+!  This should be the same as innerproduct(ayt, bzt, 4)
+list/i=1 multi_inner
+             VARIABLE : INNERPRODUCT(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 innerproduct(ayf, bfe, 6)
+             VARIABLE : INNERPRODUCT(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 innerproduct(aze, bfe, 5)
+             VARIABLE : INNERPRODUCT(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_inner = innerproduct(azex, bfe, 5)
+save/file=a.nc/clobber multi_inner
+ 
+can var multi_inner
+use a.nc
+!  This should be the same as innerproduct(azex, bfe, 5)
+list/i=1 multi_inner
+             VARIABLE : INNERPRODUCT(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
+*** Running ferret script: bn_cache_management.jnl
+[?1034h! 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)
+ 
+! 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.
+! It is supposed to chose the cached result that has not been used for the
+! longest time, AND that is not being "protected" because it is needed in a
+! pending calculation.  This script is intended to exercise that behavior.
+ 
+! Memory footprint needed:
+! Each dataset contains 7 variables of 1 Mword each
+! VTREE reveals that the "result" variable requires 78 intermediate variables
+! of size 1Mword (plus 7 small ones)
+! Of these only 12 variables needed in the top level "result" sum calculation
+! Each of the top level variables in turn requires ?25? component variables
+! But the top level variables need these components only in sequence.
+! So if no split-gather is performed, Ferret requires ~12+25=37 Mwords
+ 
+DEFINE SYMBOL saved_memory_size = ($FERRET_MEMORY)
+ !-> DEFINE SYMBOL saved_memory_size = 25.6
+ 
+SET MEMORY/SIZE=20
+CANCEL MEMORY/ALL
+ 
+DEFINE SYMBOL nsets = 20
+ 
+define axis/x=1:1000000:1 xmillion
+ 
+! aside: to demonstrate lmitations of ferret memory management prior to
+! dynamic memory, use
+!     yes? set memory/size=37
+!     yes? GO test_auto_cache_delete 0 20
+ 
+! see if the test files already exist
+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 0 THEN
+ELSE
+ say creating test files
+creating test files
+ cancel mode verify
+ENDIF
+ 
+! open the many input datasets
+REPEAT/k=1:($nsets)  USE tmp/test_auto_cache_`k`.nc
+ !-> REPEAT/k=1:20  USE tmp/test_auto_cache_`k`.nc
+!-> REPEAT: K=1
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_1.nc
+!-> REPEAT: K=2
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_2.nc
+!-> REPEAT: K=3
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_3.nc
+!-> REPEAT: K=4
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_4.nc
+!-> REPEAT: K=5
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_5.nc
+!-> REPEAT: K=6
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_6.nc
+!-> REPEAT: K=7
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_7.nc
+!-> REPEAT: K=8
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_8.nc
+!-> REPEAT: K=9
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_9.nc
+!-> REPEAT: K=10
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_10.nc
+!-> REPEAT: K=11
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_11.nc
+!-> REPEAT: K=12
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_12.nc
+!-> REPEAT: K=13
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_13.nc
+!-> REPEAT: K=14
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_14.nc
+!-> REPEAT: K=15
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_15.nc
+!-> REPEAT: K=16
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_16.nc
+!-> REPEAT: K=17
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_17.nc
+!-> REPEAT: K=18
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_18.nc
+!-> REPEAT: K=19
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_19.nc
+!-> REPEAT: K=20
+ !-> SET DAT/FORM=CDF tmp/test_auto_cache_20.nc
+ 
+! define a huge tree of variables
+let  r_one      = RESHAPE(one,X[gx=xmillion])
+let  r_ten      = RESHAPE(ten,X[gx=xmillion])
+let  r_hundred  = RESHAPE(hundred,X[gx=xmillion])
+let  r_thousand = RESHAPE(thousand,X[gx=xmillion])
+let  r_tenthou  = RESHAPE(tenthou,X[gx=xmillion])
+let  r_hundthou = RESHAPE(hundthou,X[gx=xmillion])
+let  r_million  = RESHAPE(million,X[gx=xmillion])
+ 
+let a_one     = r_one[X=@ave]
+let a_ten     = r_ten[X=@ave]
+let a_hundred = r_hundred[X=@ave]
+let a_thousand= r_thousand[X=@ave]
+let a_tenthou = r_tenthou[X=@ave]
+let a_hundthou= r_hundthou[X=@ave]
+let a_million = r_million[X=@ave]
+ 
+let one_2      = a_one
+let ten_2      = a_ten
+let hundred_2  = a_hundred
+let thousand_2 = a_thousand
+let tenthou_2  = a_tenthou
+let hundthou_2 = a_hundthou
+let million_2  = a_million
+ 
+let one_3      = a_one
+let ten_3      = a_ten
+let hundred_3  = a_hundred
+let thousand_3 = a_thousand
+let tenthou_3  = a_tenthou
+let hundthou_3 = a_hundthou
+let million_3  = a_million
+ 
+let result_31 = \
+one_3 + ten_3 + hundred_3 + thousand_3 + tenthou_3 + hundthou_3 + million_3
+ 
+let result_21 = \
+one_2 + ten_2 + hundred_2 + thousand_2 + tenthou_2 + hundthou_2 + million_2
+ 
+let result_32 = \
+one_3 + ten_3 + hundred_3 + thousand_3 + tenthou_3 + hundthou_3 + million_3
+ 
+let result_22 = \
+one_2 + ten_2 + hundred_2 + thousand_2 + tenthou_2 + hundthou_2 + million_2
+ 
+let result = result_31 + result_21 + result_32 + result_22 + \
+a_one + a_ten + a_hundred + a_thousand + a_tenthou + a_hundthou + a_million
+ 
+! process all of the datasets in turn
+! ==> WATCH HOW THE NUMBER OF FREE SLOTS IS PROGRESSIVELY EXHAUSTED
+! This proves that we are exercising the limits of table space
+sp rm -f test_auto_cache.out
+REPEAT/k=1:($nsets)  \
+(list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_`k`.nc];\
+SHOW MEMORY/DIAG)
+ !-> REPEAT/k=1:20  (list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_`k`.nc];SHOW MEMORY/DIAG)
+!-> REPEAT: K=1
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_1.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 432
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 14.21004 megawords
+!-> REPEAT: K=2
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_2.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 385
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 7.42008 megawords
+!-> REPEAT: K=3
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_3.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 331
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 7.63012 megawords
+!-> REPEAT: K=4
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_4.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 277
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 7.84016 megawords
+!-> REPEAT: K=5
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_5.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 223
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.0502 megawords
+!-> REPEAT: K=6
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_6.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 169
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.26024 megawords
+!-> REPEAT: K=7
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_7.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 115
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.47028 megawords
+!-> REPEAT: K=8
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_8.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 61
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.68032 megawords
+!-> REPEAT: K=9
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_9.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 7
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.89036 megawords
+!-> REPEAT: K=10
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_10.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=11
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_11.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=12
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_12.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=13
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_13.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=14
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_14.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=15
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_15.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=16
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_16.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=17
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_17.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=18
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_18.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=19
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_19.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+!-> REPEAT: K=20
+ !-> list/nohead/file=test_auto_cache.out/append result[d=test_auto_cache_20.nc]
+    No split/gather occurred in the last evaluation
+    Total table slots: 500
+    Free table slots: 1
+    Un-cached variables: 0
+    SET MEMORY/SIZE: 20 megawords
+    Peak demand: 8.020001 megawords
+    Current cache: 8.890366 megawords
+ 
+! success
+vtree result
+   in default dataset test_auto_cache_20
+   RESULT = RESULT_31 + RESULT_21 + RESULT_32 + RESULT_22 + A_ONE + A_TEN + A_HUNDRED + A_THOUSAND + A_TENTHOU + A_HUNDTHOU + A_MILLION
+     RESULT_31 = ONE_3 + TEN_3 + HUNDRED_3 + THOUSAND_3 + TENTHOU_3 + HUNDTHOU_3 + MILLION_3
+       ONE_3 = A_ONE
+         A_ONE = R_ONE[X=@AVE]
+           R_ONE = RESHAPE(ONE,X[GX=XMILLION])
+             (C001,V002) = RESHAPE(ONE,X[GX=XMILLION])
+               (C013,V002) = X[GX=XMILLION]
+       TEN_3 = A_TEN
+         A_TEN = R_TEN[X=@AVE]
+           R_TEN = RESHAPE(TEN,X[GX=XMILLION])
+             (C001,V005) = RESHAPE(TEN,X[GX=XMILLION])
+               (C013,V005) = X[GX=XMILLION]
+       HUNDRED_3 = A_HUNDRED
+         A_HUNDRED = R_HUNDRED[X=@AVE]
+           R_HUNDRED = RESHAPE(HUNDRED,X[GX=XMILLION])
+             (C001,V008) = RESHAPE(HUNDRED,X[GX=XMILLION])
+               (C017,V008) = X[GX=XMILLION]
+       THOUSAND_3 = A_THOUSAND
+         A_THOUSAND = R_THOUSAND[X=@AVE]
+           R_THOUSAND = RESHAPE(THOUSAND,X[GX=XMILLION])
+             (C001,V011) = RESHAPE(THOUSAND,X[GX=XMILLION])
+               (C018,V011) = X[GX=XMILLION]
+       TENTHOU_3 = A_TENTHOU
+         A_TENTHOU = R_TENTHOU[X=@AVE]
+           R_TENTHOU = RESHAPE(TENTHOU,X[GX=XMILLION])
+             (C001,V014) = RESHAPE(TENTHOU,X[GX=XMILLION])
+               (C017,V014) = X[GX=XMILLION]
+       HUNDTHOU_3 = A_HUNDTHOU
+         A_HUNDTHOU = R_HUNDTHOU[X=@AVE]
+           R_HUNDTHOU = RESHAPE(HUNDTHOU,X[GX=XMILLION])
+             (C001,V017) = RESHAPE(HUNDTHOU,X[GX=XMILLION])
+               (C018,V017) = X[GX=XMILLION]
+       MILLION_3 = A_MILLION
+         A_MILLION = R_MILLION[X=@AVE]
+           R_MILLION = RESHAPE(MILLION,X[GX=XMILLION])
+             (C001,V020) = RESHAPE(MILLION,X[GX=XMILLION])
+               (C017,V020) = X[GX=XMILLION]
+     RESULT_21 = ONE_2 + TEN_2 + HUNDRED_2 + THOUSAND_2 + TENTHOU_2 + HUNDTHOU_2 + MILLION_2
+       ONE_2 = A_ONE
+         A_ONE =  (defined above)
+       TEN_2 = A_TEN
+         A_TEN =  (defined above)
+       HUNDRED_2 = A_HUNDRED
+         A_HUNDRED =  (defined above)
+       THOUSAND_2 = A_THOUSAND
+         A_THOUSAND =  (defined above)
+       TENTHOU_2 = A_TENTHOU
+         A_TENTHOU =  (defined above)
+       HUNDTHOU_2 = A_HUNDTHOU
+         A_HUNDTHOU =  (defined above)
+       MILLION_2 = A_MILLION
+         A_MILLION =  (defined above)
+     RESULT_32 = ONE_3 + TEN_3 + HUNDRED_3 + THOUSAND_3 + TENTHOU_3 + HUNDTHOU_3 + MILLION_3
+       ONE_3 =  (defined above)
+       TEN_3 =  (defined above)
+       HUNDRED_3 =  (defined above)
+       THOUSAND_3 =  (defined above)
+       TENTHOU_3 =  (defined above)
+       HUNDTHOU_3 =  (defined above)
+       MILLION_3 =  (defined above)
+     RESULT_22 = ONE_2 + TEN_2 + HUNDRED_2 + THOUSAND_2 + TENTHOU_2 + HUNDTHOU_2 + MILLION_2
+       ONE_2 =  (defined above)
+       TEN_2 =  (defined above)
+       HUNDRED_2 =  (defined above)
+       THOUSAND_2 =  (defined above)
+       TENTHOU_2 =  (defined above)
+       HUNDTHOU_2 =  (defined above)
+       MILLION_2 =  (defined above)
+     A_ONE =  (defined above)
+     A_TEN =  (defined above)
+     A_HUNDRED =  (defined above)
+     A_THOUSAND =  (defined above)
+     A_TENTHOU =  (defined above)
+     A_HUNDTHOU =  (defined above)
+     A_MILLION =  (defined above)
+! show that the calculation result never varied
+spawn cat test_auto_cache.out
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+          5555555.
+ 
+! clean up
+SET MEMORY/SIZE=($saved_memory_size)
+ !-> SET MEMORY/SIZE=25.6
+*** Running ferret script: bn_transp_choose.jnl
+[?1034h! 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
+ 
+*** Running ferret script: bn_gif.jnl
+[?1034h! 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*
+ 
+ 
+! NOTE the plots in bnplot_2.gif are different in PyFerret and Ferret,
+! because of different treatment of /TEXT= for viewport definitions.
+ 
+can mode logo
+ 
+! define a 6 viewport window (modified definitions 11/92)
+def view/xlim=0,.333/ylim=0,.5    ll6
+def view/xlim=0,.333/ylim=.5,1    ul6
+def view/xlim=.333,.666/ylim=0,.5 lm6
+def view/xlim=.333,.666/ylim=.5,1 um6
+def view/xlim=.666,1/ylim=0,.5    lr6
+def view/xlim=.666,1/ylim=.5,1    ur6
+show view
+ 
+ name             text    xlimits     ylimits    mode
+ 
+ UPPER            1.00   0.00,1.00   0.50,1.00   edges
+ LOWER            1.00   0.00,1.00   0.00,0.50   edges
+ RIGHT            1.00   0.50,1.00   0.00,1.00   edges
+ LEFT             1.00   0.00,0.50   0.00,1.00   edges
+ LL               0.50   0.00,0.50   0.00,0.50   edges
+ LR               0.50   0.50,1.00   0.00,0.50   edges
+ UL               0.50   0.00,0.50   0.50,1.00   edges
+ UR               0.50   0.50,1.00   0.50,1.00   edges
+ FULL             1.00   0.00,1.00   0.00,1.00   edges
+ LL6              0.41   0.00,0.33   0.00,0.50   edges
+ UL6              0.41   0.00,0.33   0.50,1.00   edges
+ LM6              0.41   0.33,0.67   0.00,0.50   edges
+ UM6              0.41   0.33,0.67   0.50,1.00   edges
+ LR6              0.41   0.67,1.00   0.00,0.50   edges
+ UR6              0.41   0.67,1.00   0.50,1.00   edges
+   current viewport is NONE
+ 
+! some variables for plotting
+let a = 0.8*sin(l/10)
+let b = 0.6*cos(l/10)
+let c = sin(100/(l+k))
+let d = l/50
+let e = k-(l/25)
+let f = -.5+(l/125)
+let g = (l-25)/(k*35)
+let h = 0.1
+let m = 0.2
+ 
+! illegal plot commands
+set mode ignore
+plot/i=1:10/j=1:20/nolabel i+j			! not a line
+plot/i=1:10/j=1:20/nolabel i,i+j		! not a line
+plot/i=1:10/j=1:20/nolabel i+j,i		! not a line
+plot/i=1:10/j=1:20/nolabel j,i			! differing axes
+plot/i=1:10/j=1:20/vs/line/nolabel j,i		! unequal lengths
+contour/i=1:10/j=1:20/nolabel i			! only 1 D
+contour/i=1:10/j=1:20/nolabel i/j,j/i		! multiple fields
+vector/i=1:10/j=1:20/nolabel i/j		! only 1 field
+vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j	! 3 fields
+set mode/last ignore
+ 
+! notice the default window size is 10.2,width x 8.8,height
+ppl list plot
+         WIDTH=   10.20  HEIGHT=    8.80  TKTYPE=    0  BAUD=  110
+         WINDOW= ON   BOX= OFF  CROSS= 0  PLTYPE=  3
+         PLOT MODE=   A
+         PLOT FILE= ferret.png                                                                                                                                                                                                                                                                                                                                                                                                                                                                               [...]
+ 
+! enlarge it to accomodate an additional 50% width
+! ppl size 15.3,8.8
+! in PyFerret must use SET WINDOW
+set win /xinch=15.3 /yinch=8.8
+ 
+! turn on metafile (enabled 10/29/91)
+! commented out 9/97 - instead set in bn450_all.jnl
+! set mode metafile
+ 
+! draw a plot into a viewport - to be deleted (check hard copy)
+set view ll6
+contour/i=1:50/j=1:50/nolabel i/(j+20)
+ 
+! 4 frames testing PLOT output
+set view ul6
+plot/l=1:50/k=1/trans/nolabel a,b,c
+plot/l=1:50/k=1/trans/over/line=6/nolabel d
+plot/l=1:50/k=1/trans/over/symbol=88/nolabel e
+plot/l=1:50/k=1/trans/over/symbol=47/line/nolabel f
+def view/xlim=.333,1/ylim=0,.5 lm6   ! redefine longer in x (11/92)
+set view lm6
+!ppl axlen 16
+set region/k=1
+plot/l=1:50/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
+def view/xlim=.333,1/ylim=.5,1 um6    ! redefine it longer in x (11/92)
+set view um6
+!ppl axlen 17,5
+plot/l=1:50/nolabel sin(100/(l+5))
+plot/l=1:50/over/nolabel a,b,c,d,e,f,g[k=1],g[k=2],a+h,b+h,c+h,d+h,e+h,f+h,g[k=1]+h,g[k=2]+h,a+m,b+m,c+m
+set view ll6
+!ppl axlen 8,6
+plot/l=1:99000/nolabel sin(200000/(l+10000))
+ 
+! reset to normal axis lengths and prepare for a new piccie
+!ppl axlen 8
+frame/file=bnplot_1.gif
+set wind/clear
+ 
+! draw six frames
+set view ll6
+contour/i=1:50/j=1:50/levels=(0,2.5,.25)/nolabel i/(j+20)
+plot/over/nolab/vs/line/i=1:50/j=1:50/nolabel 6*i/j,5*j/i
+set view ul6
+vector/i=1:50/j=1:50/length=50/aspect/nolabel sin(i/20)*10+j-20,-1*cos(j/10)*10+i-20
+def view/xlim=.333,.666/ylim=0,.5 lm6  ! redefine it (11/92)
+set view lm6
+shade/i=1:50/j=1:50/nolabel i/(j+20)
+set view lr6
+ppl lev () (0,2.5,.1)
+shade/i=1:50/j=1:50/line/level/nolabel i/(j+20)
+set view ur6
+let icomp = (sin(i/20)*10+j-20)
+let jcomp = (-1*cos(j/10)*10+i-20)
+contour/i=1:50/j=1:50/nolabel icomp^2+jcomp^2
+contour/i=1:50/j=1:50/over/level/nolabel icomp^2+(-1*cos(i/10)*80)^2
+! note: "i-i" and "j-j" are needed to create 2D structures
+vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
+vector/i=1:50/j=1:50/overlay/length/nolabel i-20+(j-j),40-j+(i-i)
+def view/xlim=.333,.666/ylim=.5,1 um6    ! redefine it (11/92)
+set view um6
+shade/i=1:50/j=1:50/nolabel i/(j+20)
+contour/i=1:50/j=1:50/over/nolabel (sin(i/20)+j-20)^2+(-1*cos(j/10)+i-20)^2
+vector/i=1:50/j=1:50/overlay/nolabel j-20+(i-i),i-20+(j-j)
+frame/file=bnplot_2.gif
+! additions for version 3.01 "/TITLE=" controls
+cancel viewports
+set view ul6
+plot/title="My Custom Title"/i=1:100/nolabel sin(i/6)
+plot/title="My Custom Key"/i=1:100/over/nolabel sin(i/5)
+set view um6
+plot/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9)
+plot/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
+set view ur6
+plot/vs/line/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9)
+plot/vs/line/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
+set view ll6
+plot/vs/line/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
+plot/vs/line/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
+set view lm6
+contour/i=1:20/j=1:20/title="My Contour Title"/nolabel sin(i/3)*cos(j/4)
+contour/over/i=5:30/j=5:30/title="My Contour Overlay"/nolabel sin(i/2)*cos(j/3)
+set view lr6
+wire/view=0,0,2/i=1:20/j=1:20/title="My Egg Carton"/nolabel sin(i/3)*cos(j/4)
+ 
+! addition for 3.20 showing changed default behavior of plot/vs
+! return to window and redraw with symbols
+set view ll6
+plot/vs/title="My Custom Title"/i=1:100/nolabel sin(i/6),sin(i/9),sin(i/12)
+plot/vs/title="My Custom Key"/i=1:100/over/nolabel sin(i/7),sin(i/10)
+frame/file=bnplot_3.gif
+ 
+! Prior to v5.8 could not get the window size in pixels when in gif mode
+show symbol ppl$xpixel
+PPL$XPIXEL = "1469"
+show symbol ppl$ypixel
+PPL$YPIXEL = "845"
+ 
+! V6.13
+! transparency with FRAME/TRANS
+!!
+! These gif images have the background color white or black
+! replaced by transparent color. This can be tested by putting
+! them into an HTML document with a colored background.
+! e.g. a file called test_transparent.html containing only this line:
+! <html> <body bgcolor="orange"> <img src="testfile.gif"/> </body> </html>
+ 
+can view
+use coads_climatology
+shade/nokey/lev=50 sst[L=1]
+frame/trans/file=testbackground.gif
+ 
+! moved here from bn500_bug_fixes.jnl. The frame/  command it contains
+! has trouble when running the benchmarks from remote desktop
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+go err491_long_gif_name
+! err491_long_gif_name.jnl
+! *sh* 4/99 - test 175 character gif name
+ 
+! name length extended with changes to save_frame.F and xeq_frame.F
+ 
+set wind/siz=0.03
+go ptest
+! Description: create a simple test line plot
+ 
+! spirograph picture ...
+PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
+ 
+ 
+sp rm -f abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy*
+ 
+frame/file="abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.gif"
+ 
+spawn ls abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy*
+abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.png
+ 
+ 
+! The fix for bug 1396
+set v ul; plot/dash x[gx=0:20:.5]
+set v ur; plot/dash x[gx=0:20:.1]
+set v ll; plot/dash x[gx=0:20:.05]
+set v lr; plot/dash x[gx=0:20:.01]
+frame/file=gif_dashbug.gif
+ 
+! Restore size
+set win/siz=1/asp=1
+ 
+! New benchmark gif outputs in v6.97
+go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO bn_hovmuller_overlays
+! bn_hovmuller_overlays.jnl
+! Previously a time series plot overlaid oon a Hovmuller plot did not
+! work unless the time axis of the original data had units of hours.
+! See ticket 2344
+ 
+! 1/6/2016 ACM
+! acm* 3/17 check the URL with TEST_OPENDAP befor trying to open it.
+ 
+! run this in the gif benchmarks.
+ 
+ 
+def view/xlim=0,.333/ylim=.5,1    ul6
+def view/xlim=.333,.666/ylim=.5,1 um6
+def view/xlim=.666,1/ylim=.5,1    ur6
+def view/xlim=0,.333/ylim=0,.5    ll6
+def view/xlim=.333,1/ylim=0,.5    lr6
+ 
+! The example from the FAQ, "Overlaying a time series on a 2D plot"
+set view ul6
+ 
+! Define a 2D field in YT with a time axis in units of DAYS
+DEFINE AXIS/T="1-JAN-1980":"1-JAN-1990":5/UNITS=DAYS tdays
+DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
+ 
+LET/TITLE=XY my_var = 10*cos(T[gt=tdays]/2000)*EXP((-1)*y[gy=yax]/20)
+ 
+! make a Hovmoller plot
+ 
+SHADE my_var
+ 
+! This did not work previously.  Needed to re-define the axis in units of hours
+PLOT/OVER my_var[Y=@loc:-4]
+ 
+ 
+! XT variable
+set view um6
+ 
+DEFINE AXIS/X=0:40E:1/UNITS=DEGREES xax
+LET/TITLE="XT" my_var = 10*cos(T[gt=tdays]/20)*EXP((-1)*x[gx=xax]/20)
+SHADE/t=1-jan-1987:1-jan-1989 my_var
+PLOT/OVER/TRANS/THICK my_var[x=@loc:-4]
+ 
+ 
+! Irregular time axis
+set view ur6
+ 
+DEFINE AXIS/T0=1-jan-2001/UNITS=DAYS tdays = {1,2,4,5,6,8,9,10,12,30,35,41,42,44,45,46,48,49,50,58}
+DEFINE AXIS/Y=0:40N:2/UNITS=DEGREES yax
+LET my_var = 10*cos(T[gt=tdays])*EXP((-1)*y[gy=yax]/8)
+ 
+FILL/title="irregular t" my_var
+PLOT/OVER/thick/y=8 my_var+10
+ 
+ 
+! Like the dataset example from the FAQ
+set view ll6
+ 
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf") EQ 0` THEN
+ !-> IF 1 THEN
+   use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_sst.cdf"
+   set region/x=40w/y=10n:60n/t=15-jan-1982:15-dec-1983
+   shade sst
+   plot/over/thick/TITLE="at 20"  sst[y=@LOC:20]
+ENDIF
+ 
+can data/all
+can region
+ 
+! vector plots with a time series
+set view lr6
+ 
+IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf") EQ 0 AND\
+ test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf") EQ 0` THEN
+ !-> IF 1 THEN
+   use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_uwnd.cdf"
+   use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS/coads_vwnd.cdf"
+   vec/x=0/y=-10:10/t=1-jan-1980:1-jan-1990 uwnd[d=1], vwnd[d=2]
+   let wspd = (uwnd[d=1]*uwnd[d=1] + vwnd[d=2]*vwnd[d=2])^0.5
+   plot/over/color=red/thick/x=0/t=1-jan-1980:1-jan-1990 wspd[y=-10:10 at ave]
+   FRAME/FILE=bn_hovmuller_overlays.gif
+ENDIF
+ 
+Go bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO bn_labels_on_taxis
+! bn_labels_on_taxis.jnl
+! tests of labels and overlays on time axes
+ 
+ 
+set v ul
+DEFINE AXIS/T=1-JAN-1980:31-JAN-1985:30/T0=1-jan-1980/UNIT=days tax
+LET tt = t[gt=tax]
+LET tvar = cos(tt/200)
+plot tvar
  
 LET xsqr = {-1,1,1,-1}                ! coordinates of a unit square
 LET ysqr = {-1,-1,1,1}
@@ -94181,9 +102433,9 @@ PLOT/VS/NOLAB/LINE/COLOR=RED/OVER {`datelabelpos`,`datelabelpos`},{-20,20}
 !----------------------------------
 ! Now lets locate and label the maximum of the variable
 LET vmax = `tvar[T=@MAX]`
- !-> DEFINE VARIABLE vmax = 12.72093
+ !-> DEFINE VARIABLE vmax = 12.72093076292341
 LET t_at_max = tvar[T=01-JAN-1980:31-DEC-1985 at LOC:`vmax`]
- !-> DEFINE VARIABLE t_at_max = tvar[T=01-JAN-1980:31-DEC-1985 at LOC:12.72093]
+ !-> DEFINE VARIABLE t_at_max = tvar[T=01-JAN-1980:31-DEC-1985 at LOC:12.72093076292341]
  
 ! This will define $PPL$XFIRST1 and also make a mark at the maximum location
 PLOT/VS/OVER/NOLAB/SYM=17/COLOR=red t_at_max, vmax
@@ -94192,7 +102444,7 @@ PLOT/VS/OVER/NOLAB/SYM=17/COLOR=red t_at_max, vmax
 ! 1.02*vmax moves the label up a bit.
 ! LABEL xpos, ypos, justify, rotate, height "text"
 LABEL ($PPL$XFIRST1),`1.02*vmax`,0,0,0.12, at AC MAX = `vmax,prec=3`
- !-> PPL %LABEL 40081.00,12.97535,0,0,0.12, at AC MAX = 12.7
+ !-> PPL %LABEL 40081.00,12.97534937818188,0,0,0.12, at AC MAX = 12.7
  
 set v lr
  
@@ -94217,28 +102469,29 @@ REPEAT/L=5:60:10 (DEFINE SYMBOL tlab = "`TAX_DATESTRING(tt,tt,"day")`"; \
  !-> REPEAT/L=5:60:10 (DEFINE SYMBOL tlab = "`TAX_DATESTRING(tt,tt,"day")`";  LABEL `xpos` `ypos` 1 0 0.09 ($tlab) )
 !-> REPEAT: L=5
  !-> DEFINE SYMBOL tlab = "30-APR-1980"
- !-> PPL %LABEL 208.7339 39.51271 1 0 0.09 "30-APR-1980"
+ !-> PPL %LABEL 208.7339387413628 39.51271135265888 1 0 0.09 "30-APR-1980"
 !-> REPEAT: L=15
  !-> DEFINE SYMBOL tlab = "24-FEB-1981"
- !-> PPL %LABEL 188.4897 35.68535 1 0 0.09 "24-FEB-1981"
+ !-> PPL %LABEL 188.4897123753973 35.68534797467977 1 0 0.09 "24-FEB-1981"
 !-> REPEAT: L=25
  !-> DEFINE SYMBOL tlab = "21-DEC-1981"
- !-> PPL %LABEL 174.6446 28.40136 1 0 0.09 "21-DEC-1981"
+ !-> PPL %LABEL 174.6445516747008 28.40135534264319 1 0 0.09 "21-DEC-1981"
 !-> REPEAT: L=35
  !-> DEFINE SYMBOL tlab = "17-OCT-1982"
- !-> PPL %LABEL 170.0101 18.36629 1 0 0.09 "17-OCT-1982"
+ !-> PPL %LABEL 170.0101127410977 18.36629087569217 1 0 0.09 "17-OCT-1982"
 !-> REPEAT: L=45
  !-> DEFINE SYMBOL tlab = "13-AUG-1983"
- !-> PPL %LABEL 175.5276 6.552192 1 0 0.09 "13-AUG-1983"
+ !-> PPL %LABEL 175.527551028677 6.552192101033334 1 0 0.09 "13-AUG-1983"
 !-> REPEAT: L=55
  !-> DEFINE SYMBOL tlab = "08-JUN-1984"
- !-> PPL %LABEL 190.0764 -5.896579 1 0 0.09 "08-JUN-1984"
+ !-> PPL %LABEL 190.0763927948022 -5.896578890096701 1 0 0.09 "08-JUN-1984"
  
 FRAME/FILE=bn_labels_on_taxis.pdf
  
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_contour_conset
 ! err696_contour_conset.jnl
 ! Ticket 2351. The PPL CONSET command had stopped working to set
@@ -94299,6 +102552,7 @@ frame/file=bn_contour_conset.gif
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO err696_subspan_mod_strides
 ! err696_subspan_mod_strides
 ! See ticket 513. Axis is subspan modulo, and strides
@@ -94426,6 +102680,7 @@ plot/l=1:99000/nolabel sin(200000/(l+10000))
  
 frame/file=bnplot_4.pdf   ! Not an error in PyFerret
 frame/file=bnplot_4.ps    ! Not an error in PyFerret
+frame/file=bnplot_4.eps   ! Not an error in PyFerret
  
  
  
@@ -94433,10 +102688,11 @@ frame/file=bnplot_4.ps    ! Not an error in PyFerret
 [?1034hSET 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
  
 GO bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 GO bn_ef_external_functions.jnl
 ! Tests of external functions that are distributed as shared object files.
  
@@ -94571,21 +102827,21 @@ list a - sst[l=@ave]
              TIME     : 01-JAN 00:45 to 01-APR 08:12
                   1S      
                   45
- 151E   / 66:  0.000E+00
- 153E   / 67: -3.553E-15
- 155E   / 68:  0.000E+00
+ 151E   / 66: -3.553E-15
+ 153E   / 67:  0.000E+00
+ 155E   / 68: -3.553E-15
  157E   / 69:  0.000E+00
- 159E   / 70:  3.553E-15
- 161E   / 71:  7.105E-15
- 163E   / 72:  3.553E-15
- 165E   / 73:  0.000E+00
- 167E   / 74:  0.000E+00
- 169E   / 75:  3.553E-15
+ 159E   / 70: -3.553E-15
+ 161E   / 71:  0.000E+00
+ 163E   / 72: -3.553E-15
+ 165E   / 73: -3.553E-15
+ 167E   / 74: -3.553E-15
+ 169E   / 75: -3.553E-15
  171E   / 76:  0.000E+00
- 173E   / 77:  3.553E-15
- 175E   / 78:  0.000E+00
- 177E   / 79:  3.553E-15
- 179E   / 80:  3.553E-15
+ 173E   / 77: -3.553E-15
+ 175E   / 78:  3.553E-15
+ 177E   / 79:  0.000E+00
+ 179E   / 80:  0.000E+00
  
 can region
 let a = x[i=1:9,k=1:5] + t[l=1:5]
@@ -95209,48 +103465,11 @@ set mode/last ignore_errors
 !
 !!!!!!!!!!!!!!!!!!!!!!
  
-! Ansley's benchmarks
-! move bench tests that test internal external functions to their
-! own .jnl file  bn_internal_external_functions
-!
-! 4/2006 all efs distributed with Ferret except writev5d and the
-!        examples tested in bench_examples.jnl are now internally linked.
- 
-GO bn_reset
-cancel mode verify
-go bench_v5d
-! benchmark for Vis5D external function
-! 5/99 ACM
- 
- 
-!  Write data to a Vis5D file.  The first argument to the
-!  GO script is the file, arguments 2 through 9 are variable names to be written.
-! 7/2007 Funtion doesnt want to write a variable that doesnt have a vertical variation.
-!        To get a basic test of the function, make some data on a regularly-spaced xy grid.
- 
-can region
- set mode ignore_error
- 
-use gt4d011.cdf
-def axis/y=1:100:1/units=degrees yax
-let tr = temp[gy=yax at asn]
-go vis5d_write " " tr
-To view the file with Vis5D say:   GO vis5d_start vis5d_out.v5d
- 
-set mode/last ignore_error
- 
- 
-GO bn_reset
-cancel mode verify
-GO bn_ef_v5d_strings.jnl
-! bn_ef_v5d_strings.jnl
-! Taken out of bn_strings, because it calls so file writev5d.
-! testing string argument to external function.
-! 5/4/05 acm
-exit/script ! I dont have writev5d on this machine.
+! 12/16 No other external functions are distributed. Remove further references.
  
 go bn_reset
 cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
 go bn_fcn_calls.jnl
 ! Simple tests of external functions
 ! these are not otherwise tested in the benchmarkd
@@ -95262,24 +103481,28 @@ exit
  
 exit/command
 *** Running ferret script: bn_startupfile.jnl
-[?1034h Current size of FERRET memory cache: 31 MegaWords  (1 word = 8 bytes)
-PPL$XPIXEL = "979"
-PPL$YPIXEL = "844"
+[?1034h    SET MEMORY/SIZE: 31 megawords
+    Peak demand: 0 words
+    Current cache: 0 words
+PPL$XPIXEL = "819"
+PPL$YPIXEL = "707"
 BYTEORDER = "LITTLE"
-FERRET_VERSION = "7"
-FERRET_PLATFORM = "Linux 2.6.32-642.1.1.el6.x86_64"
+FERRET_VERSION = "7.1"
+FERRET_PLATFORM = "Linux 2.6.32-696.1.1.el6.x86_64"
 FERRET_PRECISION = "double"
 NETCDF_VERSION = "4.4.0 of Feb  4 2016 19:21:00 $"
 FERRET_MEMORY = "31"
-SESSION_DATE = "17-Jun-16"
-SESSION_TIME = "15:19"
-SESSION_PID = "5549"
-DELTA_CPU = "0.208968"
-CLOCK_SECS = "0.105"
-CURRENT_DATE = "17-Jun-16"
-CURRENT_TIME = "15:19:11"
+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"
 N_OPEN_DSETS = "0"
 PROGRAM_NAME = "PyFerret"
+PEAK_MEMORY = "0"
+SPAWN_STATUS = "1"
 GO_FILE = "./bn_startupfile.jnl"
 LAST_GO_FILE = "./bn_startupfile.jnl"
 PPL$FORMAT = "(3F10.2)"
@@ -95303,7 +103526,7 @@ PPL$COMMAND_FILE = "$$MEMBUF$$"
 VP_WIDTH = "10.2"
 VP_HEIGHT = "8.8"
 PPL$SCALE = "1.0000"
-WIN_TITLE = "17-Jun-16_15:19"
+WIN_TITLE = "18-Apr-17_17:19"
 VP_SCALE = "1"
 VP_RT_MARGIN = "1"
 VP_TOP_MARGIN = "1.4"
@@ -95312,50 +103535,2115 @@ VP_XHI = "1"
 VP_YLO = "0"
 VP_YHI = "1"
       MODE            STATE        ARGUMENT
-      DIAGNOSTIC    CANCELLED           99
-      VERIFY        CANCELLED      DEFAULT
-      INTERPOLATE   CANCELLED
-      IGNORE_ERROR  CANCELLED
-      STUPID        CANCELLED
+      DIAGNOSTIC    CANCELED            99
+      VERIFY        CANCELED       DEFAULT
+      INTERPOLATE   CANCELED
+      IGNORE_ERROR  CANCELED
+      STUPID        CANCELED
       JOURNAL          SET         startup_tests.jnl
       LONG_LABEL       SET               1
-      LATIT_LABEL   CANCELLED            1
+      LATIT_LABEL   CANCELED             1
       DEPTH_LABEL      SET              -4
       CALENDAR         SET         minutes
       E_LABEL          SET               1
       F_LABEL          SET         minutes
       ASCII_FONT       SET
       SEGMENT          SET
-      WAIT          CANCELLED
-      DESPERATE     CANCELLED      3100000
+      WAIT          CANCELED
+      DESPERATE     CANCELED       2560000
       GKS              SET
       REFRESH          SET
-      METAFILE      CANCELLED      ferret.png
-      PPLLIST       CANCELLED      ppllist.out
-      GUI           CANCELLED
-      LOGO          CANCELLED
+      METAFILE      CANCELED       ferret.png
+      PPLLIST       CANCELED       ppllist.out
+      GUI           CANCELED
+      LOGO          CANCELED
       LABELS           SET
       GRATICULE        SET
       LINECOLORS       SET               7
       UPCASE_OUTPU     SET
       NLEVELS          SET             100
       NODATA_LAB       SET
-      SHRINK_YLAB   CANCELLED
-      CURVILINEAR   CANCELLED
-      LAYERZ        CANCELLED
+      SHRINK_YLAB   CANCELED
+      CURVILINEAR   CANCELED
+      LAYERZ        CANCELED
       6D_LAB           SET
+      FRUGAL           SET              30
      currently SET data sets:
     1> ./gtbc011.cdf  (default)
- name     title                             I         J         K         L         M         N
- TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3       ...       ...
- SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3       ...       ...
- U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3       ...       ...
- V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3       ...       ...
- W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3       ...       ...
- TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3       ...       ...
- TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3       ...       ...
- PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ TEMP     TEMPERATURE                     70:72      1:100     1:27      1:3
+ SALT     (SALINITY(ppt) - 35) /1000      70:71      1:100     1:27      1:3
+ U        ZONAL VELOCITY                  69:72      1:100     1:27      1:3
+ V        MERIDIONAL VELOCITY             69:72      1:100     1:27      1:3
+ W        VERTICAL VELOCITY               70:71      1:100     1:27      1:3
+ TAUX     ZONAL WIND STRESS               69:71      1:100     ...       1:3
+ TAUY     MERIDIONAL WIND STRESS          69:71      1:100     ...       1:3
+ PSI      STREAM FUNCTION                 69:73      1:100     ...       1:3
+ 
+*** Running ferret script: err700_decimate.jnl
+[?1034h! err700_decimate.jnl
+! test decimation of SOCAT full-data DSG files
+!
+ 
+! Make sure the decimated file does not exist
+sp rm -f 492C19881104_dec.nc
+! Run the socat decimation script on a full-data DSG file
+go ddsg_socat3 492C19881104.nc 492C19881104_dec.nc
+! ddsg_socat3.jnl
+! ACM 5/16/2014
+ 
+! Compute and apply sampling for a single-trajectory dsg file
+! using piecewise linear interpolation
+ 
+! Uses the external function piecewise3.so
+! This script contains a list of the variables in the input
+! files. This allows us to create the decimated dsg file
+! with the exact same names as in the input files.
+!
+! WOCE flags are not used in the decimated datasets, as they may change in the
+! full data. Keep them in the file for a consistent set of variables, but mark
+! them with the unused flag "M".
+ 
+! arguments:
+!  input_file single dsg file
+!  output_file to write
+!
+ 
+DEFINE SYMBOL infile = ($1)
+ !-> DEFINE SYMBOL infile = 492C19881104.nc
+DEFINE SYMBOL outfile = ($2)
+ !-> DEFINE SYMBOL outfile = 492C19881104_dec.nc
+ 
+! Set the tolerances and control parameter
+ 
+DEFINE SYMBOL tol_lon = 1
+DEFINE SYMBOL tol_lat = 1
+DEFINE SYMBOL tol_var = 4
+ 
+LET tol1 = ($tol_lon)
+ !-> DEFINE VARIABLE tol1 = 1
+LET tol2 = ($tol_lat)
+ !-> DEFINE VARIABLE tol2 = 1
+let tol3 = ($tol_var)
+ !-> DEFINE VARIABLE tol3 = 4
+ 
+LET control = 2
+ 
+USE "($infile)"
+ !-> SET DAT/FORM=CDF "492C19881104.nc"
+ 
+! The names in the input and output file must match.
+! To accomplish that we will rename the variables in the input file.
+! varnames_list is a stable list of the original names. Check that it
+! matches what's in the file, and rename the file variables.
+ 
+LET varnames =  ..varnames
+LET nvars =  ..nvars
+ 
+! Will also add nobs_deci.
+ 
+LET varnames_traj = {\
+"num_obs","expocode","dataset_name","vessel_name","organization",\
+"geospatial_lon_min","geospatial_lon_max","geospatial_lat_min",\
+"geospatial_lat_max","time_coverage_start","time_converage_end",\
+"investigators","socat_version","all_region_ids","socat_doi",\
+"qc_flag","nobs_full"}
+ 
+! The text is too long for one Ferret command. Define two variables and concatenate them.
+ 
+LET varnames_list1 = {\
+"sample_number","year","month","day","hour","minute","second",\
+"longitude","latitude","sample_depth","sal","Temperature_equi",\
+"temp","Temperature_atm","Pressure_equi","Pressure_atm",\
+"xCO2_water_equi_temp_dry_ppm","xCO2_water_sst_dry_ppm",\
+"xCO2_water_equi_temp_wet_ppm","xCO2_water_sst_wet_ppm",\
+"pCO2_water_equi_temp","pCO2_water_sst_100humidity_uatm",\
+"fCO2_water_equi_uatm","fCO2_water_sst_100humidity_uatm",\
+"xCO2_atm_dry_actual","xCO2_atm_dry_interp",\
+"pCO2_atm_wet_actual","pCO2_atm_wet_interp",\
+"fCO2_atm_wet_actual","fCO2_atm_wet_interp",\
+"delta_xCO2","delta_pCO2","delta_fCO2",\
+"xH2O_equi","relative_humidity","specific_humidity",\
+"ship_speed","ship_dir","wind_speed_true","wind_speed_rel",\
+"wind_dir_true","wind_dir_rel","WOCE_CO2_water","WOCE_CO2_atm"\
+}
+LET varnames_list2 = {\
+"woa_sss","pressure_ncep_slp",\
+"fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm",\
+"fCO2_insitu_from_xCO2_water_sst_dry_ppm",\
+"fCO2_from_pCO2_water_water_equi_temp",\
+"fCO2_from_pCO2_water_sst_100humidity_uatm",\
+"fCO2_insitu_from_fCO2_water_equi_uatm",\
+"fCO2_insitu_from_fCO2_water_sst_100humidty_uatm",\
+"fCO2_from_pCO2_water_water_equi_temp_ncep",\
+"fCO2_from_pCO2_water_sst_100humidity_uatm_ncep",\
+"fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa",\
+"fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa",\
+"fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep",\
+"fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep",\
+"fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa",\
+"fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa",\
+"fCO2_recommended","fCO2_source","delta_temp","region_id",\
+"calc_speed","etopo2","gvCO2","dist_to_land",\
+"day_of_year","time","lon360","tmonth"\
+}
+ 
+LET varnames_list = XCAT(varnames_list1, varnames_list2)
+ 
+LET ntraj = `varnames_traj,return=isize`
+ !-> DEFINE VARIABLE ntraj = 17
+LET nlist = `varnames_list,return=isize`
+ !-> DEFINE VARIABLE nlist = 72
+ 
+!IF `nvars NE (ntraj+nlist)` THEN
+!   say **ERROR List of variables in the script does not match list in the dataset
+!   say **ERROR "($infile)" has `nvars` variables, script list has `nlist`
+!   exit/script
+!ENDIF
+ 
+! Check that the variable names in the lists are in the file.
+! If so rename the variables in the input file to varname_in
+ 
+ 
+SET VAR/NAME=nobs_deci_in nobs_deci
+ 
+LET vdiff = 0
+REPEAT/range=1:`ntraj`/name=v (DEFINE SYMBOL  vv = `v`;\
+ DEFINE SYMBOL vname = `varnames_traj[i=($vv)]`;\
+ IF `IS_ELEMENT_OF_STR_N(varnames, "($vname)") EQ 0` THEN LET vdiff = `v`;\
+ IF `vdiff GT 0` THEN EXIT/LOOP;\
+ SET VAR/NAME=($vname)_in ($vname))
+ !-> REPEAT/range=1:17/name=v (DEFINE SYMBOL  vv = `v`; DEFINE SYMBOL vname = `varnames_traj[i=($vv)]`; IF `IS_ELEMENT_OF_STR_N(varnames, "($vname)") EQ 0` THEN LET vdiff = `v`; IF `vdiff GT 0` THEN EXIT/LOOP; SET VAR/NAME=($vname)_in ($vname))
+!-> REPEAT: V:1
+ !-> DEFINE SYMBOL  vv = 1
+ !-> DEFINE SYMBOL vname = num_obs
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=num_obs_in num_obs
+!-> REPEAT: V:2
+ !-> DEFINE SYMBOL  vv = 2
+ !-> DEFINE SYMBOL vname = expocode
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=expocode_in expocode
+!-> REPEAT: V:3
+ !-> DEFINE SYMBOL  vv = 3
+ !-> DEFINE SYMBOL vname = dataset_name
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=dataset_name_in dataset_name
+!-> REPEAT: V:4
+ !-> DEFINE SYMBOL  vv = 4
+ !-> DEFINE SYMBOL vname = vessel_name
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=vessel_name_in vessel_name
+!-> REPEAT: V:5
+ !-> DEFINE SYMBOL  vv = 5
+ !-> DEFINE SYMBOL vname = organization
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=organization_in organization
+!-> REPEAT: V:6
+ !-> DEFINE SYMBOL  vv = 6
+ !-> DEFINE SYMBOL vname = geospatial_lon_min
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=geospatial_lon_min_in geospatial_lon_min
+!-> REPEAT: V:7
+ !-> DEFINE SYMBOL  vv = 7
+ !-> DEFINE SYMBOL vname = geospatial_lon_max
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=geospatial_lon_max_in geospatial_lon_max
+!-> REPEAT: V:8
+ !-> DEFINE SYMBOL  vv = 8
+ !-> DEFINE SYMBOL vname = geospatial_lat_min
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=geospatial_lat_min_in geospatial_lat_min
+!-> REPEAT: V:9
+ !-> DEFINE SYMBOL  vv = 9
+ !-> DEFINE SYMBOL vname = geospatial_lat_max
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=geospatial_lat_max_in geospatial_lat_max
+!-> REPEAT: V:10
+ !-> DEFINE SYMBOL  vv = 10
+ !-> DEFINE SYMBOL vname = time_coverage_start
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=time_coverage_start_in time_coverage_start
+!-> REPEAT: V:11
+ !-> DEFINE SYMBOL  vv = 11
+ !-> DEFINE SYMBOL vname = time_converage_end
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=time_converage_end_in time_converage_end
+!-> REPEAT: V:12
+ !-> DEFINE SYMBOL  vv = 12
+ !-> DEFINE SYMBOL vname = investigators
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=investigators_in investigators
+!-> REPEAT: V:13
+ !-> DEFINE SYMBOL  vv = 13
+ !-> DEFINE SYMBOL vname = socat_version
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=socat_version_in socat_version
+!-> REPEAT: V:14
+ !-> DEFINE SYMBOL  vv = 14
+ !-> DEFINE SYMBOL vname = all_region_ids
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=all_region_ids_in all_region_ids
+!-> REPEAT: V:15
+ !-> DEFINE SYMBOL  vv = 15
+ !-> DEFINE SYMBOL vname = socat_doi
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=socat_doi_in socat_doi
+!-> REPEAT: V:16
+ !-> DEFINE SYMBOL  vv = 16
+ !-> DEFINE SYMBOL vname = qc_flag
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=qc_flag_in qc_flag
+!-> REPEAT: V:17
+ !-> DEFINE SYMBOL  vv = 17
+ !-> DEFINE SYMBOL vname = nobs_full
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=nobs_full_in nobs_full
+ 
+LET vdiff = 0
+REPEAT/range=1:`nlist`/name=v (DEFINE SYMBOL  vv = `v`;\
+ DEFINE SYMBOL vname = `varnames_list[i=($vv)]`;\
+ IF `IS_ELEMENT_OF_STR_N(varnames, "($vname)") EQ 0` THEN LET vdiff = `v`;\
+ IF `vdiff GT 0` THEN EXIT/LOOP;\
+ SET VAR/NAME=($vname)_in ($vname))
+ !-> REPEAT/range=1:72/name=v (DEFINE SYMBOL  vv = `v`; DEFINE SYMBOL vname = `varnames_list[i=($vv)]`; IF `IS_ELEMENT_OF_STR_N(varnames, "($vname)") EQ 0` THEN LET vdiff = `v`; IF `vdiff GT 0` THEN EXIT/LOOP; SET VAR/NAME=($vname)_in ($vname))
+!-> REPEAT: V:1
+ !-> DEFINE SYMBOL  vv = 1
+ !-> DEFINE SYMBOL vname = sample_number
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=sample_number_in sample_number
+!-> REPEAT: V:2
+ !-> DEFINE SYMBOL  vv = 2
+ !-> DEFINE SYMBOL vname = year
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=year_in year
+!-> REPEAT: V:3
+ !-> DEFINE SYMBOL  vv = 3
+ !-> DEFINE SYMBOL vname = month
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=month_in month
+!-> REPEAT: V:4
+ !-> DEFINE SYMBOL  vv = 4
+ !-> DEFINE SYMBOL vname = day
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=day_in day
+!-> REPEAT: V:5
+ !-> DEFINE SYMBOL  vv = 5
+ !-> DEFINE SYMBOL vname = hour
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=hour_in hour
+!-> REPEAT: V:6
+ !-> DEFINE SYMBOL  vv = 6
+ !-> DEFINE SYMBOL vname = minute
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=minute_in minute
+!-> REPEAT: V:7
+ !-> DEFINE SYMBOL  vv = 7
+ !-> DEFINE SYMBOL vname = second
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=second_in second
+!-> REPEAT: V:8
+ !-> DEFINE SYMBOL  vv = 8
+ !-> DEFINE SYMBOL vname = longitude
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=longitude_in longitude
+!-> REPEAT: V:9
+ !-> DEFINE SYMBOL  vv = 9
+ !-> DEFINE SYMBOL vname = latitude
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=latitude_in latitude
+!-> REPEAT: V:10
+ !-> DEFINE SYMBOL  vv = 10
+ !-> DEFINE SYMBOL vname = sample_depth
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=sample_depth_in sample_depth
+!-> REPEAT: V:11
+ !-> DEFINE SYMBOL  vv = 11
+ !-> DEFINE SYMBOL vname = sal
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=sal_in sal
+!-> REPEAT: V:12
+ !-> DEFINE SYMBOL  vv = 12
+ !-> DEFINE SYMBOL vname = Temperature_equi
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=Temperature_equi_in Temperature_equi
+!-> REPEAT: V:13
+ !-> DEFINE SYMBOL  vv = 13
+ !-> DEFINE SYMBOL vname = temp
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=temp_in temp
+!-> REPEAT: V:14
+ !-> DEFINE SYMBOL  vv = 14
+ !-> DEFINE SYMBOL vname = Temperature_atm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=Temperature_atm_in Temperature_atm
+!-> REPEAT: V:15
+ !-> DEFINE SYMBOL  vv = 15
+ !-> DEFINE SYMBOL vname = Pressure_equi
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=Pressure_equi_in Pressure_equi
+!-> REPEAT: V:16
+ !-> DEFINE SYMBOL  vv = 16
+ !-> DEFINE SYMBOL vname = Pressure_atm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=Pressure_atm_in Pressure_atm
+!-> REPEAT: V:17
+ !-> DEFINE SYMBOL  vv = 17
+ !-> DEFINE SYMBOL vname = xCO2_water_equi_temp_dry_ppm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=xCO2_water_equi_temp_dry_ppm_in xCO2_water_equi_temp_dry_ppm
+!-> REPEAT: V:18
+ !-> DEFINE SYMBOL  vv = 18
+ !-> DEFINE SYMBOL vname = xCO2_water_sst_dry_ppm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=xCO2_water_sst_dry_ppm_in xCO2_water_sst_dry_ppm
+!-> REPEAT: V:19
+ !-> DEFINE SYMBOL  vv = 19
+ !-> DEFINE SYMBOL vname = xCO2_water_equi_temp_wet_ppm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=xCO2_water_equi_temp_wet_ppm_in xCO2_water_equi_temp_wet_ppm
+!-> REPEAT: V:20
+ !-> DEFINE SYMBOL  vv = 20
+ !-> DEFINE SYMBOL vname = xCO2_water_sst_wet_ppm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=xCO2_water_sst_wet_ppm_in xCO2_water_sst_wet_ppm
+!-> REPEAT: V:21
+ !-> DEFINE SYMBOL  vv = 21
+ !-> DEFINE SYMBOL vname = pCO2_water_equi_temp
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=pCO2_water_equi_temp_in pCO2_water_equi_temp
+!-> REPEAT: V:22
+ !-> DEFINE SYMBOL  vv = 22
+ !-> DEFINE SYMBOL vname = pCO2_water_sst_100humidity_uatm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=pCO2_water_sst_100humidity_uatm_in pCO2_water_sst_100humidity_uatm
+!-> REPEAT: V:23
+ !-> DEFINE SYMBOL  vv = 23
+ !-> DEFINE SYMBOL vname = fCO2_water_equi_uatm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_water_equi_uatm_in fCO2_water_equi_uatm
+!-> REPEAT: V:24
+ !-> DEFINE SYMBOL  vv = 24
+ !-> DEFINE SYMBOL vname = fCO2_water_sst_100humidity_uatm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_water_sst_100humidity_uatm_in fCO2_water_sst_100humidity_uatm
+!-> REPEAT: V:25
+ !-> DEFINE SYMBOL  vv = 25
+ !-> DEFINE SYMBOL vname = xCO2_atm_dry_actual
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=xCO2_atm_dry_actual_in xCO2_atm_dry_actual
+!-> REPEAT: V:26
+ !-> DEFINE SYMBOL  vv = 26
+ !-> DEFINE SYMBOL vname = xCO2_atm_dry_interp
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=xCO2_atm_dry_interp_in xCO2_atm_dry_interp
+!-> REPEAT: V:27
+ !-> DEFINE SYMBOL  vv = 27
+ !-> DEFINE SYMBOL vname = pCO2_atm_wet_actual
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=pCO2_atm_wet_actual_in pCO2_atm_wet_actual
+!-> REPEAT: V:28
+ !-> DEFINE SYMBOL  vv = 28
+ !-> DEFINE SYMBOL vname = pCO2_atm_wet_interp
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=pCO2_atm_wet_interp_in pCO2_atm_wet_interp
+!-> REPEAT: V:29
+ !-> DEFINE SYMBOL  vv = 29
+ !-> DEFINE SYMBOL vname = fCO2_atm_wet_actual
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_atm_wet_actual_in fCO2_atm_wet_actual
+!-> REPEAT: V:30
+ !-> DEFINE SYMBOL  vv = 30
+ !-> DEFINE SYMBOL vname = fCO2_atm_wet_interp
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_atm_wet_interp_in fCO2_atm_wet_interp
+!-> REPEAT: V:31
+ !-> DEFINE SYMBOL  vv = 31
+ !-> DEFINE SYMBOL vname = delta_xCO2
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=delta_xCO2_in delta_xCO2
+!-> REPEAT: V:32
+ !-> DEFINE SYMBOL  vv = 32
+ !-> DEFINE SYMBOL vname = delta_pCO2
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=delta_pCO2_in delta_pCO2
+!-> REPEAT: V:33
+ !-> DEFINE SYMBOL  vv = 33
+ !-> DEFINE SYMBOL vname = delta_fCO2
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=delta_fCO2_in delta_fCO2
+!-> REPEAT: V:34
+ !-> DEFINE SYMBOL  vv = 34
+ !-> DEFINE SYMBOL vname = xH2O_equi
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=xH2O_equi_in xH2O_equi
+!-> REPEAT: V:35
+ !-> DEFINE SYMBOL  vv = 35
+ !-> DEFINE SYMBOL vname = relative_humidity
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=relative_humidity_in relative_humidity
+!-> REPEAT: V:36
+ !-> DEFINE SYMBOL  vv = 36
+ !-> DEFINE SYMBOL vname = specific_humidity
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=specific_humidity_in specific_humidity
+!-> REPEAT: V:37
+ !-> DEFINE SYMBOL  vv = 37
+ !-> DEFINE SYMBOL vname = ship_speed
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=ship_speed_in ship_speed
+!-> REPEAT: V:38
+ !-> DEFINE SYMBOL  vv = 38
+ !-> DEFINE SYMBOL vname = ship_dir
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=ship_dir_in ship_dir
+!-> REPEAT: V:39
+ !-> DEFINE SYMBOL  vv = 39
+ !-> DEFINE SYMBOL vname = wind_speed_true
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=wind_speed_true_in wind_speed_true
+!-> REPEAT: V:40
+ !-> DEFINE SYMBOL  vv = 40
+ !-> DEFINE SYMBOL vname = wind_speed_rel
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=wind_speed_rel_in wind_speed_rel
+!-> REPEAT: V:41
+ !-> DEFINE SYMBOL  vv = 41
+ !-> DEFINE SYMBOL vname = wind_dir_true
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=wind_dir_true_in wind_dir_true
+!-> REPEAT: V:42
+ !-> DEFINE SYMBOL  vv = 42
+ !-> DEFINE SYMBOL vname = wind_dir_rel
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=wind_dir_rel_in wind_dir_rel
+!-> REPEAT: V:43
+ !-> DEFINE SYMBOL  vv = 43
+ !-> DEFINE SYMBOL vname = WOCE_CO2_water
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=WOCE_CO2_water_in WOCE_CO2_water
+!-> REPEAT: V:44
+ !-> DEFINE SYMBOL  vv = 44
+ !-> DEFINE SYMBOL vname = WOCE_CO2_atm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=WOCE_CO2_atm_in WOCE_CO2_atm
+!-> REPEAT: V:45
+ !-> DEFINE SYMBOL  vv = 45
+ !-> DEFINE SYMBOL vname = woa_sss
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=woa_sss_in woa_sss
+!-> REPEAT: V:46
+ !-> DEFINE SYMBOL  vv = 46
+ !-> DEFINE SYMBOL vname = pressure_ncep_slp
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=pressure_ncep_slp_in pressure_ncep_slp
+!-> REPEAT: V:47
+ !-> DEFINE SYMBOL  vv = 47
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_in fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm
+!-> REPEAT: V:48
+ !-> DEFINE SYMBOL  vv = 48
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_insitu_from_xCO2_water_sst_dry_ppm_in fCO2_insitu_from_xCO2_water_sst_dry_ppm
+!-> REPEAT: V:49
+ !-> DEFINE SYMBOL  vv = 49
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_water_equi_temp
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_from_pCO2_water_water_equi_temp_in fCO2_from_pCO2_water_water_equi_temp
+!-> REPEAT: V:50
+ !-> DEFINE SYMBOL  vv = 50
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_sst_100humidity_uatm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_from_pCO2_water_sst_100humidity_uatm_in fCO2_from_pCO2_water_sst_100humidity_uatm
+!-> REPEAT: V:51
+ !-> DEFINE SYMBOL  vv = 51
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_fCO2_water_equi_uatm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_insitu_from_fCO2_water_equi_uatm_in fCO2_insitu_from_fCO2_water_equi_uatm
+!-> REPEAT: V:52
+ !-> DEFINE SYMBOL  vv = 52
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_fCO2_water_sst_100humidty_uatm
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_insitu_from_fCO2_water_sst_100humidty_uatm_in fCO2_insitu_from_fCO2_water_sst_100humidty_uatm
+!-> REPEAT: V:53
+ !-> DEFINE SYMBOL  vv = 53
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_water_equi_temp_ncep
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_from_pCO2_water_water_equi_temp_ncep_in fCO2_from_pCO2_water_water_equi_temp_ncep
+!-> REPEAT: V:54
+ !-> DEFINE SYMBOL  vv = 54
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_sst_100humidity_uatm_ncep
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_from_pCO2_water_sst_100humidity_uatm_ncep_in fCO2_from_pCO2_water_sst_100humidity_uatm_ncep
+!-> REPEAT: V:55
+ !-> DEFINE SYMBOL  vv = 55
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa_in fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa
+!-> REPEAT: V:56
+ !-> DEFINE SYMBOL  vv = 56
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa_in fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa
+!-> REPEAT: V:57
+ !-> DEFINE SYMBOL  vv = 57
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_in fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep
+!-> REPEAT: V:58
+ !-> DEFINE SYMBOL  vv = 58
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_in fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep
+!-> REPEAT: V:59
+ !-> DEFINE SYMBOL  vv = 59
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa_in fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa
+!-> REPEAT: V:60
+ !-> DEFINE SYMBOL  vv = 60
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa_in fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa
+!-> REPEAT: V:61
+ !-> DEFINE SYMBOL  vv = 61
+ !-> DEFINE SYMBOL vname = fCO2_recommended
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_recommended_in fCO2_recommended
+!-> REPEAT: V:62
+ !-> DEFINE SYMBOL  vv = 62
+ !-> DEFINE SYMBOL vname = fCO2_source
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=fCO2_source_in fCO2_source
+!-> REPEAT: V:63
+ !-> DEFINE SYMBOL  vv = 63
+ !-> DEFINE SYMBOL vname = delta_temp
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=delta_temp_in delta_temp
+!-> REPEAT: V:64
+ !-> DEFINE SYMBOL  vv = 64
+ !-> DEFINE SYMBOL vname = region_id
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=region_id_in region_id
+!-> REPEAT: V:65
+ !-> DEFINE SYMBOL  vv = 65
+ !-> DEFINE SYMBOL vname = calc_speed
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=calc_speed_in calc_speed
+!-> REPEAT: V:66
+ !-> DEFINE SYMBOL  vv = 66
+ !-> DEFINE SYMBOL vname = etopo2
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=etopo2_in etopo2
+!-> REPEAT: V:67
+ !-> DEFINE SYMBOL  vv = 67
+ !-> DEFINE SYMBOL vname = gvCO2
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=gvCO2_in gvCO2
+!-> REPEAT: V:68
+ !-> DEFINE SYMBOL  vv = 68
+ !-> DEFINE SYMBOL vname = dist_to_land
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=dist_to_land_in dist_to_land
+!-> REPEAT: V:69
+ !-> DEFINE SYMBOL  vv = 69
+ !-> DEFINE SYMBOL vname = day_of_year
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=day_of_year_in day_of_year
+!-> REPEAT: V:70
+ !-> DEFINE SYMBOL  vv = 70
+ !-> DEFINE SYMBOL vname = time
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=time_in time
+!-> REPEAT: V:71
+ !-> DEFINE SYMBOL  vv = 71
+ !-> DEFINE SYMBOL vname = lon360
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=lon360_in lon360
+!-> REPEAT: V:72
+ !-> DEFINE SYMBOL  vv = 72
+ !-> DEFINE SYMBOL vname = tmonth
+ !-> IF 0 THEN LET vdiff = `v`
+ !-> IF 0 THEN EXIT/LOOP
+ !-> SET VAR/NAME=tmonth_in tmonth
+ 
+IF `vdiff GT 0` THEN
+ !-> IF 0 THEN
+ENDIF
+ 
  
+! Which longitude to use for decimating: lon360 or longitude
+ 
+let dlon = minmax(longitude_in[i=@ddf])
+let dlon360 = minmax(lon360_in[i=@ddf])
+ 
+IF `abs(dlon[i=@max]) LT abs(dlon360[i=@max])` THEN
+ !-> IF 0 THEN
+ELSE
+   DEFINE SYMBOL lonvar = lon360_in
+ENDIF
+ 
+LET sample_pts= piecewise3(($lonvar), latitude_in, fCO2_recommended_in, `control`, `tol1`, `tol2`, `tol3`)
+ !-> DEFINE VARIABLE sample_pts= piecewise3(lon360_in, latitude_in, fCO2_recommended_in, 2, 1, 1, 4)
+LOAD sample_pts
+ 
+DEFINE SYMBOL output_filename = ($outfile)
+ !-> DEFINE SYMBOL output_filename = 492C19881104_dec.nc
+ 
+! File will get all the global attributes
+ 
+set att/out=all .
+can mode upcase
+ 
+! Single-point axis for instance direction
+! The set axis/name is to make sure Ferret uses lowercase
+ 
+SET AXIS/NAME=traj_in `num_obs_in,RETURN=eaxis`
+ !-> SET AXIS/NAME=traj_in trajectory
+DEF AXIS/E=1:1:1 traj_def
+SET AXIS/NAME=traj traj_def
+LET ee = _e[ge=traj]
+ 
+! obs axis for sampled observation variables
+ 
+SET AXIS/NAME=obj_in `longitude_in,RETURN=xaxis`
+ !-> SET AXIS/NAME=obj_in obs
+LET nsample = `sample_pts[i=@ngd]`
+ !-> DEFINE VARIABLE nsample = 23
+DEFINE AXIS/x=1:`nsample`:1 obs_def
+ !-> DEFINE AXIS/x=1:23:1 obs_def
+SET AXIS/NAME=obs obs_def
+LET samplevar = sample_pts[gx=obs at asn]
+ 
+! New num_obs variable with number of sampled data
+! Make sure it has the right sample_dimension attribute
+ 
+LET/BAD=-99 num_obs = reshape(nsample,ee)
+SET ATT/LIKE=num_obs_in num_obs
+DEFINE ATT/QUIET/OUTPUT num_obs.sample_dimension = "`num_obs_in.sample_dimension`"
+ !-> DEFINE ATT/QUIET/OUTPUT num_obs.sample_dimension = "obs"
+SET ATT/OUTPUT=all num_obs
+DEFINE SYMBOL num_obs_sampled = `nsample`
+ !-> DEFINE SYMBOL num_obs_sampled = 23
+ 
+! write a global attribute with the decimation parameters.
+DEFINE ATT/QUIET/OUTPUT ..decimation =  \
+"`nobs_full_in` original number of obs. Piecewise decimated to ($num_obs_sampled) obs using tolerances: lon ($tol_lon), lat ($tol_lon), fco2_rec ($tol_var) ($comment)"
+ !-> DEFINE ATT/QUIET/OUTPUT ..decimation =  "218 original number of obs. Piecewise decimated to 23 obs using tolerances: lon 1, lat 1, fco2_rec 4  "
+ 
+SAVE/QUIET/FILE="($outfile)"/OUTTYPE=INT/CLOBBER num_obs
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/OUTTYPE=INT/CLOBBER num_obs
+ 
+ 
+! Write the traj variables
+ 
+REPEAT/RANGE=2:`ntraj`/NAME=q (DEFINE SYMBOL qq = `q`;\
+DEFINE SYMBOL vname = `varnames_traj[i=($qq)]`;\
+DEFINE SYMBOL vtype = `($vname)_in,RETURN=dtype`;\
+DEFINE SYMBOL qual = /OUTTYPE=($vtype);\
+IF ($vtype"0|CHAR>1|*>0") THEN CAN SYM qual;\
+LET ($vname) = ($vname)_in[ge=traj at asn];\
+SET ATT/LIKE=($vname)_in ($vname);\
+SET ATT/OUTPUT=all ($vname);\
+if `strindex("($vtype)", "INT") gt 0` THEN set var/bad=`($vname)_in,return=bad` ($vname);\
+SAVE/QUIET/FILE="($outfile)"/APPEND($qual) ($vname))
+ !-> REPEAT/RANGE=2:17/NAME=q (DEFINE SYMBOL qq = `q`;DEFINE SYMBOL vname = `varnames_traj[i=($qq)]`;DEFINE SYMBOL vtype = `($vname)_in,RETURN=dtype`;DEFINE SYMBOL qual = /OUTTYPE=($vtype);IF ($vtype"0|CHAR>1|*>0") THEN CAN SYM qual;LET ($vname) = ($vname)_in[ge=traj at asn];SET ATT/LIKE=($vname)_in ($vname);SET ATT/OUTPUT=all ($vname);if `strindex("($vtype)", "INT") gt 0` THEN set var/bad=`($vname)_in,return=bad` ($vname);SAVE/QUIET/FILE="($outfile)"/APPEND($qual) ($vname))
+!-> REPEAT: Q:2
+ !-> DEFINE SYMBOL qq = 2
+ !-> DEFINE SYMBOL vname = expocode
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> DEFINE SYMBOL qual = /OUTTYPE=CHAR
+ !-> IF 1 THEN CAN SYM qual
+ !-> DEFINE VARIABLE expocode = expocode_in[ge=traj at asn]
+ !-> SET ATT/LIKE=expocode_in expocode
+ !-> SET ATT/OUTPUT=all expocode
+ !-> if 0 THEN set var/bad=`expocode_in,return=bad` expocode
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND  expocode
+!-> REPEAT: Q:3
+ !-> DEFINE SYMBOL qq = 3
+ !-> DEFINE SYMBOL vname = dataset_name
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> DEFINE SYMBOL qual = /OUTTYPE=CHAR
+ !-> IF 1 THEN CAN SYM qual
+ !-> DEFINE VARIABLE dataset_name = dataset_name_in[ge=traj at asn]
+ !-> SET ATT/LIKE=dataset_name_in dataset_name
+ !-> SET ATT/OUTPUT=all dataset_name
+ !-> if 0 THEN set var/bad=`dataset_name_in,return=bad` dataset_name
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND  dataset_name
+!-> REPEAT: Q:4
+ !-> DEFINE SYMBOL qq = 4
+ !-> DEFINE SYMBOL vname = vessel_name
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> DEFINE SYMBOL qual = /OUTTYPE=CHAR
+ !-> IF 1 THEN CAN SYM qual
+ !-> DEFINE VARIABLE vessel_name = vessel_name_in[ge=traj at asn]
+ !-> SET ATT/LIKE=vessel_name_in vessel_name
+ !-> SET ATT/OUTPUT=all vessel_name
+ !-> if 0 THEN set var/bad=`vessel_name_in,return=bad` vessel_name
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND  vessel_name
+!-> REPEAT: Q:5
+ !-> DEFINE SYMBOL qq = 5
+ !-> DEFINE SYMBOL vname = organization
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> DEFINE SYMBOL qual = /OUTTYPE=CHAR
+ !-> IF 1 THEN CAN SYM qual
+ !-> DEFINE VARIABLE organization = organization_in[ge=traj at asn]
+ !-> SET ATT/LIKE=organization_in organization
+ !-> SET ATT/OUTPUT=all organization
+ !-> if 0 THEN set var/bad=`organization_in,return=bad` organization
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND  organization
+!-> REPEAT: Q:6
+ !-> DEFINE SYMBOL qq = 6
+ !-> DEFINE SYMBOL vname = geospatial_lon_min
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> DEFINE SYMBOL qual = /OUTTYPE=DOUBLE
+ !-> IF 0 THEN CAN SYM qual
+ !-> DEFINE VARIABLE geospatial_lon_min = geospatial_lon_min_in[ge=traj at asn]
+ !-> SET ATT/LIKE=geospatial_lon_min_in geospatial_lon_min
+ !-> SET ATT/OUTPUT=all geospatial_lon_min
+ !-> if 0 THEN set var/bad=`geospatial_lon_min_in,return=bad` geospatial_lon_min
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND/OUTTYPE=DOUBLE geospatial_lon_min
+!-> REPEAT: Q:7
+ !-> DEFINE SYMBOL qq = 7
+ !-> DEFINE SYMBOL vname = geospatial_lon_max
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> DEFINE SYMBOL qual = /OUTTYPE=DOUBLE
+ !-> IF 0 THEN CAN SYM qual
+ !-> DEFINE VARIABLE geospatial_lon_max = geospatial_lon_max_in[ge=traj at asn]
+ !-> SET ATT/LIKE=geospatial_lon_max_in geospatial_lon_max
+ !-> SET ATT/OUTPUT=all geospatial_lon_max
+ !-> if 0 THEN set var/bad=`geospatial_lon_max_in,return=bad` geospatial_lon_max
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND/OUTTYPE=DOUBLE geospatial_lon_max
+!-> REPEAT: Q:8
+ !-> DEFINE SYMBOL qq = 8
+ !-> DEFINE SYMBOL vname = geospatial_lat_min
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> DEFINE SYMBOL qual = /OUTTYPE=DOUBLE
+ !-> IF 0 THEN CAN SYM qual
+ !-> DEFINE VARIABLE geospatial_lat_min = geospatial_lat_min_in[ge=traj at asn]
+ !-> SET ATT/LIKE=geospatial_lat_min_in geospatial_lat_min
+ !-> SET ATT/OUTPUT=all geospatial_lat_min
+ !-> if 0 THEN set var/bad=`geospatial_lat_min_in,return=bad` geospatial_lat_min
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND/OUTTYPE=DOUBLE geospatial_lat_min
+!-> REPEAT: Q:9
+ !-> DEFINE SYMBOL qq = 9
+ !-> DEFINE SYMBOL vname = geospatial_lat_max
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> DEFINE SYMBOL qual = /OUTTYPE=DOUBLE
+ !-> IF 0 THEN CAN SYM qual
+ !-> DEFINE VARIABLE geospatial_lat_max = geospatial_lat_max_in[ge=traj at asn]
+ !-> SET ATT/LIKE=geospatial_lat_max_in geospatial_lat_max
+ !-> SET ATT/OUTPUT=all geospatial_lat_max
+ !-> if 0 THEN set var/bad=`geospatial_lat_max_in,return=bad` geospatial_lat_max
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND/OUTTYPE=DOUBLE geospatial_lat_max
+!-> REPEAT: Q:10
+ !-> DEFINE SYMBOL qq = 10
+ !-> DEFINE SYMBOL vname = time_coverage_start
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> DEFINE SYMBOL qual = /OUTTYPE=DOUBLE
+ !-> IF 0 THEN CAN SYM qual
+ !-> DEFINE VARIABLE time_coverage_start = time_coverage_start_in[ge=traj at asn]
+ !-> SET ATT/LIKE=time_coverage_start_in time_coverage_start
+ !-> SET ATT/OUTPUT=all time_coverage_start
+ !-> if 0 THEN set var/bad=`time_coverage_start_in,return=bad` time_coverage_start
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND/OUTTYPE=DOUBLE time_coverage_start
+!-> REPEAT: Q:11
+ !-> DEFINE SYMBOL qq = 11
+ !-> DEFINE SYMBOL vname = time_converage_end
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> DEFINE SYMBOL qual = /OUTTYPE=DOUBLE
+ !-> IF 0 THEN CAN SYM qual
+ !-> DEFINE VARIABLE time_converage_end = time_converage_end_in[ge=traj at asn]
+ !-> SET ATT/LIKE=time_converage_end_in time_converage_end
+ !-> SET ATT/OUTPUT=all time_converage_end
+ !-> if 0 THEN set var/bad=`time_converage_end_in,return=bad` time_converage_end
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND/OUTTYPE=DOUBLE time_converage_end
+!-> REPEAT: Q:12
+ !-> DEFINE SYMBOL qq = 12
+ !-> DEFINE SYMBOL vname = investigators
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> DEFINE SYMBOL qual = /OUTTYPE=CHAR
+ !-> IF 1 THEN CAN SYM qual
+ !-> DEFINE VARIABLE investigators = investigators_in[ge=traj at asn]
+ !-> SET ATT/LIKE=investigators_in investigators
+ !-> SET ATT/OUTPUT=all investigators
+ !-> if 0 THEN set var/bad=`investigators_in,return=bad` investigators
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND  investigators
+!-> REPEAT: Q:13
+ !-> DEFINE SYMBOL qq = 13
+ !-> DEFINE SYMBOL vname = socat_version
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> DEFINE SYMBOL qual = /OUTTYPE=CHAR
+ !-> IF 1 THEN CAN SYM qual
+ !-> DEFINE VARIABLE socat_version = socat_version_in[ge=traj at asn]
+ !-> SET ATT/LIKE=socat_version_in socat_version
+ !-> SET ATT/OUTPUT=all socat_version
+ !-> if 0 THEN set var/bad=`socat_version_in,return=bad` socat_version
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND  socat_version
+!-> REPEAT: Q:14
+ !-> DEFINE SYMBOL qq = 14
+ !-> DEFINE SYMBOL vname = all_region_ids
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> DEFINE SYMBOL qual = /OUTTYPE=CHAR
+ !-> IF 1 THEN CAN SYM qual
+ !-> DEFINE VARIABLE all_region_ids = all_region_ids_in[ge=traj at asn]
+ !-> SET ATT/LIKE=all_region_ids_in all_region_ids
+ !-> SET ATT/OUTPUT=all all_region_ids
+ !-> if 0 THEN set var/bad=`all_region_ids_in,return=bad` all_region_ids
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND  all_region_ids
+!-> REPEAT: Q:15
+ !-> DEFINE SYMBOL qq = 15
+ !-> DEFINE SYMBOL vname = socat_doi
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> DEFINE SYMBOL qual = /OUTTYPE=CHAR
+ !-> IF 1 THEN CAN SYM qual
+ !-> DEFINE VARIABLE socat_doi = socat_doi_in[ge=traj at asn]
+ !-> SET ATT/LIKE=socat_doi_in socat_doi
+ !-> SET ATT/OUTPUT=all socat_doi
+ !-> if 0 THEN set var/bad=`socat_doi_in,return=bad` socat_doi
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND  socat_doi
+!-> REPEAT: Q:16
+ !-> DEFINE SYMBOL qq = 16
+ !-> DEFINE SYMBOL vname = qc_flag
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> DEFINE SYMBOL qual = /OUTTYPE=CHAR
+ !-> IF 1 THEN CAN SYM qual
+ !-> DEFINE VARIABLE qc_flag = qc_flag_in[ge=traj at asn]
+ !-> SET ATT/LIKE=qc_flag_in qc_flag
+ !-> SET ATT/OUTPUT=all qc_flag
+ !-> if 0 THEN set var/bad=`qc_flag_in,return=bad` qc_flag
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND  qc_flag
+!-> REPEAT: Q:17
+ !-> DEFINE SYMBOL qq = 17
+ !-> DEFINE SYMBOL vname = nobs_full
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> DEFINE SYMBOL qual = /OUTTYPE=INT4
+ !-> IF 0 THEN CAN SYM qual
+ !-> DEFINE VARIABLE nobs_full = nobs_full_in[ge=traj at asn]
+ !-> SET ATT/LIKE=nobs_full_in nobs_full
+ !-> SET ATT/OUTPUT=all nobs_full
+ !-> if 1 THEN set var/bad=`nobs_full_in,return=bad` nobs_full
+ !-> set var/bad=-99 nobs_full
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND/OUTTYPE=INT4 nobs_full
+ 
+! add nobs_deci on the same axis
+LET/TITLE="`nobs_deci_in,RETURN=title`"/BAD=-99 nobs_deci = ($num_obs_sampled) + 0* nobs_full
+ !-> DEFINE VARIABLE/TITLE="Count in decimated trajectory"/BAD=-99 nobs_deci = 23 + 0* nobs_full
+DEFINE ATTRIBUTE/OUTPUT/OUTPUT nobs_deci.note = "Piecewise decimated"
+SAVE/QUIET/FILE="($outfile)"/APPEND/OUTTYPE=int nobs_deci
+ !-> LIST/FORMAT=CDF/QUIET/FILE="492C19881104_dec.nc"/APPEND/OUTTYPE=int nobs_deci
+ 
+! Sample the obs variables. Keep attributes, make missing-data flags match.
+ 
+! Numeric variables
+REPEAT/RANGE=1:`nlist`/NAME=q (DEFINE SYMBOL qq = `q`;\
+DEFINE SYMBOL vname = `varnames_list[i=($qq)]`;\
+IF ($vname"0|sample_number>1|*>0") THEN EXIT/CYCLE;\
+DEFINE SYMBOL vtype = `($vname)_in,RETURN=dtype`;\
+IF ($vtype"0|CHAR>1|*>0") THEN EXIT/CYCLE;\
+LET/BAD=`($vname)_in,RETURN=bad,PREC=9` ($vname) = SAMPLE_FAST_I(($vname)_in, samplevar);\
+SET ATT/LIKE=($vname)_in ($vname);\
+SET ATT/OUTPUT=all ($vname);\
+SAVE/QUIET/APPEND/OUTTYPE=($vtype)/FILE="($outfile)" ($vname);\
+)
+ !-> REPEAT/RANGE=1:72/NAME=q (DEFINE SYMBOL qq = `q`;DEFINE SYMBOL vname = `varnames_list[i=($qq)]`;IF ($vname"0|sample_number>1|*>0") THEN EXIT/CYCLE;DEFINE SYMBOL vtype = `($vname)_in,RETURN=dtype`;IF ($vtype"0|CHAR>1|*>0") THEN EXIT/CYCLE;LET/BAD=`($vname)_in,RETURN=bad,PREC=9` ($vname) = SAMPLE_FAST_I(($vname)_in, samplevar);SET ATT/LIKE=($vname)_in ($vname);SET ATT/OUTPUT=all ($vname);SAVE/QUIET/APPEND/OUTTYPE=($vtype)/FILE="($outfile)" ($vname);)
+!-> REPEAT: Q:1
+ !-> DEFINE SYMBOL qq = 1
+ !-> DEFINE SYMBOL vname = sample_number
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:2
+ !-> DEFINE SYMBOL qq = 2
+ !-> DEFINE SYMBOL vname = year
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1 year = SAMPLE_FAST_I(year_in, samplevar)
+ !-> SET ATT/LIKE=year_in year
+ !-> SET ATT/OUTPUT=all year
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=INT4/FILE="492C19881104_dec.nc" year
+!-> REPEAT: Q:3
+ !-> DEFINE SYMBOL qq = 3
+ !-> DEFINE SYMBOL vname = month
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1 month = SAMPLE_FAST_I(month_in, samplevar)
+ !-> SET ATT/LIKE=month_in month
+ !-> SET ATT/OUTPUT=all month
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=INT4/FILE="492C19881104_dec.nc" month
+!-> REPEAT: Q:4
+ !-> DEFINE SYMBOL qq = 4
+ !-> DEFINE SYMBOL vname = day
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1 day = SAMPLE_FAST_I(day_in, samplevar)
+ !-> SET ATT/LIKE=day_in day
+ !-> SET ATT/OUTPUT=all day
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=INT4/FILE="492C19881104_dec.nc" day
+!-> REPEAT: Q:5
+ !-> DEFINE SYMBOL qq = 5
+ !-> DEFINE SYMBOL vname = hour
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1 hour = SAMPLE_FAST_I(hour_in, samplevar)
+ !-> SET ATT/LIKE=hour_in hour
+ !-> SET ATT/OUTPUT=all hour
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=INT4/FILE="492C19881104_dec.nc" hour
+!-> REPEAT: Q:6
+ !-> DEFINE SYMBOL qq = 6
+ !-> DEFINE SYMBOL vname = minute
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1 minute = SAMPLE_FAST_I(minute_in, samplevar)
+ !-> SET ATT/LIKE=minute_in minute
+ !-> SET ATT/OUTPUT=all minute
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=INT4/FILE="492C19881104_dec.nc" minute
+!-> REPEAT: Q:7
+ !-> DEFINE SYMBOL qq = 7
+ !-> DEFINE SYMBOL vname = second
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 second = SAMPLE_FAST_I(second_in, samplevar)
+ !-> SET ATT/LIKE=second_in second
+ !-> SET ATT/OUTPUT=all second
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" second
+!-> REPEAT: Q:8
+ !-> DEFINE SYMBOL qq = 8
+ !-> DEFINE SYMBOL vname = longitude
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 longitude = SAMPLE_FAST_I(longitude_in, samplevar)
+ !-> SET ATT/LIKE=longitude_in longitude
+ !-> SET ATT/OUTPUT=all longitude
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" longitude
+!-> REPEAT: Q:9
+ !-> DEFINE SYMBOL qq = 9
+ !-> DEFINE SYMBOL vname = latitude
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 latitude = SAMPLE_FAST_I(latitude_in, samplevar)
+ !-> SET ATT/LIKE=latitude_in latitude
+ !-> SET ATT/OUTPUT=all latitude
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" latitude
+!-> REPEAT: Q:10
+ !-> DEFINE SYMBOL qq = 10
+ !-> DEFINE SYMBOL vname = sample_depth
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 sample_depth = SAMPLE_FAST_I(sample_depth_in, samplevar)
+ !-> SET ATT/LIKE=sample_depth_in sample_depth
+ !-> SET ATT/OUTPUT=all sample_depth
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" sample_depth
+!-> REPEAT: Q:11
+ !-> DEFINE SYMBOL qq = 11
+ !-> DEFINE SYMBOL vname = sal
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 sal = SAMPLE_FAST_I(sal_in, samplevar)
+ !-> SET ATT/LIKE=sal_in sal
+ !-> SET ATT/OUTPUT=all sal
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" sal
+!-> REPEAT: Q:12
+ !-> DEFINE SYMBOL qq = 12
+ !-> DEFINE SYMBOL vname = Temperature_equi
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 Temperature_equi = SAMPLE_FAST_I(Temperature_equi_in, samplevar)
+ !-> SET ATT/LIKE=Temperature_equi_in Temperature_equi
+ !-> SET ATT/OUTPUT=all Temperature_equi
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" Temperature_equi
+!-> REPEAT: Q:13
+ !-> DEFINE SYMBOL qq = 13
+ !-> DEFINE SYMBOL vname = temp
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 temp = SAMPLE_FAST_I(temp_in, samplevar)
+ !-> SET ATT/LIKE=temp_in temp
+ !-> SET ATT/OUTPUT=all temp
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" temp
+!-> REPEAT: Q:14
+ !-> DEFINE SYMBOL qq = 14
+ !-> DEFINE SYMBOL vname = Temperature_atm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 Temperature_atm = SAMPLE_FAST_I(Temperature_atm_in, samplevar)
+ !-> SET ATT/LIKE=Temperature_atm_in Temperature_atm
+ !-> SET ATT/OUTPUT=all Temperature_atm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" Temperature_atm
+!-> REPEAT: Q:15
+ !-> DEFINE SYMBOL qq = 15
+ !-> DEFINE SYMBOL vname = Pressure_equi
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 Pressure_equi = SAMPLE_FAST_I(Pressure_equi_in, samplevar)
+ !-> SET ATT/LIKE=Pressure_equi_in Pressure_equi
+ !-> SET ATT/OUTPUT=all Pressure_equi
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" Pressure_equi
+!-> REPEAT: Q:16
+ !-> DEFINE SYMBOL qq = 16
+ !-> DEFINE SYMBOL vname = Pressure_atm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 Pressure_atm = SAMPLE_FAST_I(Pressure_atm_in, samplevar)
+ !-> SET ATT/LIKE=Pressure_atm_in Pressure_atm
+ !-> SET ATT/OUTPUT=all Pressure_atm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" Pressure_atm
+!-> REPEAT: Q:17
+ !-> DEFINE SYMBOL qq = 17
+ !-> DEFINE SYMBOL vname = xCO2_water_equi_temp_dry_ppm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 xCO2_water_equi_temp_dry_ppm = SAMPLE_FAST_I(xCO2_water_equi_temp_dry_ppm_in, samplevar)
+ !-> SET ATT/LIKE=xCO2_water_equi_temp_dry_ppm_in xCO2_water_equi_temp_dry_ppm
+ !-> SET ATT/OUTPUT=all xCO2_water_equi_temp_dry_ppm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" xCO2_water_equi_temp_dry_ppm
+!-> REPEAT: Q:18
+ !-> DEFINE SYMBOL qq = 18
+ !-> DEFINE SYMBOL vname = xCO2_water_sst_dry_ppm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 xCO2_water_sst_dry_ppm = SAMPLE_FAST_I(xCO2_water_sst_dry_ppm_in, samplevar)
+ !-> SET ATT/LIKE=xCO2_water_sst_dry_ppm_in xCO2_water_sst_dry_ppm
+ !-> SET ATT/OUTPUT=all xCO2_water_sst_dry_ppm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" xCO2_water_sst_dry_ppm
+!-> REPEAT: Q:19
+ !-> DEFINE SYMBOL qq = 19
+ !-> DEFINE SYMBOL vname = xCO2_water_equi_temp_wet_ppm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 xCO2_water_equi_temp_wet_ppm = SAMPLE_FAST_I(xCO2_water_equi_temp_wet_ppm_in, samplevar)
+ !-> SET ATT/LIKE=xCO2_water_equi_temp_wet_ppm_in xCO2_water_equi_temp_wet_ppm
+ !-> SET ATT/OUTPUT=all xCO2_water_equi_temp_wet_ppm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" xCO2_water_equi_temp_wet_ppm
+!-> REPEAT: Q:20
+ !-> DEFINE SYMBOL qq = 20
+ !-> DEFINE SYMBOL vname = xCO2_water_sst_wet_ppm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 xCO2_water_sst_wet_ppm = SAMPLE_FAST_I(xCO2_water_sst_wet_ppm_in, samplevar)
+ !-> SET ATT/LIKE=xCO2_water_sst_wet_ppm_in xCO2_water_sst_wet_ppm
+ !-> SET ATT/OUTPUT=all xCO2_water_sst_wet_ppm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" xCO2_water_sst_wet_ppm
+!-> REPEAT: Q:21
+ !-> DEFINE SYMBOL qq = 21
+ !-> DEFINE SYMBOL vname = pCO2_water_equi_temp
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 pCO2_water_equi_temp = SAMPLE_FAST_I(pCO2_water_equi_temp_in, samplevar)
+ !-> SET ATT/LIKE=pCO2_water_equi_temp_in pCO2_water_equi_temp
+ !-> SET ATT/OUTPUT=all pCO2_water_equi_temp
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" pCO2_water_equi_temp
+!-> REPEAT: Q:22
+ !-> DEFINE SYMBOL qq = 22
+ !-> DEFINE SYMBOL vname = pCO2_water_sst_100humidity_uatm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 pCO2_water_sst_100humidity_uatm = SAMPLE_FAST_I(pCO2_water_sst_100humidity_uatm_in, samplevar)
+ !-> SET ATT/LIKE=pCO2_water_sst_100humidity_uatm_in pCO2_water_sst_100humidity_uatm
+ !-> SET ATT/OUTPUT=all pCO2_water_sst_100humidity_uatm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" pCO2_water_sst_100humidity_uatm
+!-> REPEAT: Q:23
+ !-> DEFINE SYMBOL qq = 23
+ !-> DEFINE SYMBOL vname = fCO2_water_equi_uatm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_water_equi_uatm = SAMPLE_FAST_I(fCO2_water_equi_uatm_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_water_equi_uatm_in fCO2_water_equi_uatm
+ !-> SET ATT/OUTPUT=all fCO2_water_equi_uatm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_water_equi_uatm
+!-> REPEAT: Q:24
+ !-> DEFINE SYMBOL qq = 24
+ !-> DEFINE SYMBOL vname = fCO2_water_sst_100humidity_uatm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_water_sst_100humidity_uatm = SAMPLE_FAST_I(fCO2_water_sst_100humidity_uatm_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_water_sst_100humidity_uatm_in fCO2_water_sst_100humidity_uatm
+ !-> SET ATT/OUTPUT=all fCO2_water_sst_100humidity_uatm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_water_sst_100humidity_uatm
+!-> REPEAT: Q:25
+ !-> DEFINE SYMBOL qq = 25
+ !-> DEFINE SYMBOL vname = xCO2_atm_dry_actual
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 xCO2_atm_dry_actual = SAMPLE_FAST_I(xCO2_atm_dry_actual_in, samplevar)
+ !-> SET ATT/LIKE=xCO2_atm_dry_actual_in xCO2_atm_dry_actual
+ !-> SET ATT/OUTPUT=all xCO2_atm_dry_actual
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" xCO2_atm_dry_actual
+!-> REPEAT: Q:26
+ !-> DEFINE SYMBOL qq = 26
+ !-> DEFINE SYMBOL vname = xCO2_atm_dry_interp
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 xCO2_atm_dry_interp = SAMPLE_FAST_I(xCO2_atm_dry_interp_in, samplevar)
+ !-> SET ATT/LIKE=xCO2_atm_dry_interp_in xCO2_atm_dry_interp
+ !-> SET ATT/OUTPUT=all xCO2_atm_dry_interp
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" xCO2_atm_dry_interp
+!-> REPEAT: Q:27
+ !-> DEFINE SYMBOL qq = 27
+ !-> DEFINE SYMBOL vname = pCO2_atm_wet_actual
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 pCO2_atm_wet_actual = SAMPLE_FAST_I(pCO2_atm_wet_actual_in, samplevar)
+ !-> SET ATT/LIKE=pCO2_atm_wet_actual_in pCO2_atm_wet_actual
+ !-> SET ATT/OUTPUT=all pCO2_atm_wet_actual
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" pCO2_atm_wet_actual
+!-> REPEAT: Q:28
+ !-> DEFINE SYMBOL qq = 28
+ !-> DEFINE SYMBOL vname = pCO2_atm_wet_interp
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 pCO2_atm_wet_interp = SAMPLE_FAST_I(pCO2_atm_wet_interp_in, samplevar)
+ !-> SET ATT/LIKE=pCO2_atm_wet_interp_in pCO2_atm_wet_interp
+ !-> SET ATT/OUTPUT=all pCO2_atm_wet_interp
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" pCO2_atm_wet_interp
+!-> REPEAT: Q:29
+ !-> DEFINE SYMBOL qq = 29
+ !-> DEFINE SYMBOL vname = fCO2_atm_wet_actual
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_atm_wet_actual = SAMPLE_FAST_I(fCO2_atm_wet_actual_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_atm_wet_actual_in fCO2_atm_wet_actual
+ !-> SET ATT/OUTPUT=all fCO2_atm_wet_actual
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_atm_wet_actual
+!-> REPEAT: Q:30
+ !-> DEFINE SYMBOL qq = 30
+ !-> DEFINE SYMBOL vname = fCO2_atm_wet_interp
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_atm_wet_interp = SAMPLE_FAST_I(fCO2_atm_wet_interp_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_atm_wet_interp_in fCO2_atm_wet_interp
+ !-> SET ATT/OUTPUT=all fCO2_atm_wet_interp
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_atm_wet_interp
+!-> REPEAT: Q:31
+ !-> DEFINE SYMBOL qq = 31
+ !-> DEFINE SYMBOL vname = delta_xCO2
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 delta_xCO2 = SAMPLE_FAST_I(delta_xCO2_in, samplevar)
+ !-> SET ATT/LIKE=delta_xCO2_in delta_xCO2
+ !-> SET ATT/OUTPUT=all delta_xCO2
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" delta_xCO2
+!-> REPEAT: Q:32
+ !-> DEFINE SYMBOL qq = 32
+ !-> DEFINE SYMBOL vname = delta_pCO2
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 delta_pCO2 = SAMPLE_FAST_I(delta_pCO2_in, samplevar)
+ !-> SET ATT/LIKE=delta_pCO2_in delta_pCO2
+ !-> SET ATT/OUTPUT=all delta_pCO2
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" delta_pCO2
+!-> REPEAT: Q:33
+ !-> DEFINE SYMBOL qq = 33
+ !-> DEFINE SYMBOL vname = delta_fCO2
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 delta_fCO2 = SAMPLE_FAST_I(delta_fCO2_in, samplevar)
+ !-> SET ATT/LIKE=delta_fCO2_in delta_fCO2
+ !-> SET ATT/OUTPUT=all delta_fCO2
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" delta_fCO2
+!-> REPEAT: Q:34
+ !-> DEFINE SYMBOL qq = 34
+ !-> DEFINE SYMBOL vname = xH2O_equi
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 xH2O_equi = SAMPLE_FAST_I(xH2O_equi_in, samplevar)
+ !-> SET ATT/LIKE=xH2O_equi_in xH2O_equi
+ !-> SET ATT/OUTPUT=all xH2O_equi
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" xH2O_equi
+!-> REPEAT: Q:35
+ !-> DEFINE SYMBOL qq = 35
+ !-> DEFINE SYMBOL vname = relative_humidity
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 relative_humidity = SAMPLE_FAST_I(relative_humidity_in, samplevar)
+ !-> SET ATT/LIKE=relative_humidity_in relative_humidity
+ !-> SET ATT/OUTPUT=all relative_humidity
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" relative_humidity
+!-> REPEAT: Q:36
+ !-> DEFINE SYMBOL qq = 36
+ !-> DEFINE SYMBOL vname = specific_humidity
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 specific_humidity = SAMPLE_FAST_I(specific_humidity_in, samplevar)
+ !-> SET ATT/LIKE=specific_humidity_in specific_humidity
+ !-> SET ATT/OUTPUT=all specific_humidity
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" specific_humidity
+!-> REPEAT: Q:37
+ !-> DEFINE SYMBOL qq = 37
+ !-> DEFINE SYMBOL vname = ship_speed
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 ship_speed = SAMPLE_FAST_I(ship_speed_in, samplevar)
+ !-> SET ATT/LIKE=ship_speed_in ship_speed
+ !-> SET ATT/OUTPUT=all ship_speed
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" ship_speed
+!-> REPEAT: Q:38
+ !-> DEFINE SYMBOL qq = 38
+ !-> DEFINE SYMBOL vname = ship_dir
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 ship_dir = SAMPLE_FAST_I(ship_dir_in, samplevar)
+ !-> SET ATT/LIKE=ship_dir_in ship_dir
+ !-> SET ATT/OUTPUT=all ship_dir
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" ship_dir
+!-> REPEAT: Q:39
+ !-> DEFINE SYMBOL qq = 39
+ !-> DEFINE SYMBOL vname = wind_speed_true
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 wind_speed_true = SAMPLE_FAST_I(wind_speed_true_in, samplevar)
+ !-> SET ATT/LIKE=wind_speed_true_in wind_speed_true
+ !-> SET ATT/OUTPUT=all wind_speed_true
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" wind_speed_true
+!-> REPEAT: Q:40
+ !-> DEFINE SYMBOL qq = 40
+ !-> DEFINE SYMBOL vname = wind_speed_rel
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 wind_speed_rel = SAMPLE_FAST_I(wind_speed_rel_in, samplevar)
+ !-> SET ATT/LIKE=wind_speed_rel_in wind_speed_rel
+ !-> SET ATT/OUTPUT=all wind_speed_rel
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" wind_speed_rel
+!-> REPEAT: Q:41
+ !-> DEFINE SYMBOL qq = 41
+ !-> DEFINE SYMBOL vname = wind_dir_true
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 wind_dir_true = SAMPLE_FAST_I(wind_dir_true_in, samplevar)
+ !-> SET ATT/LIKE=wind_dir_true_in wind_dir_true
+ !-> SET ATT/OUTPUT=all wind_dir_true
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" wind_dir_true
+!-> REPEAT: Q:42
+ !-> DEFINE SYMBOL qq = 42
+ !-> DEFINE SYMBOL vname = wind_dir_rel
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 wind_dir_rel = SAMPLE_FAST_I(wind_dir_rel_in, samplevar)
+ !-> SET ATT/LIKE=wind_dir_rel_in wind_dir_rel
+ !-> SET ATT/OUTPUT=all wind_dir_rel
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" wind_dir_rel
+!-> REPEAT: Q:43
+ !-> DEFINE SYMBOL qq = 43
+ !-> DEFINE SYMBOL vname = WOCE_CO2_water
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:44
+ !-> DEFINE SYMBOL qq = 44
+ !-> DEFINE SYMBOL vname = WOCE_CO2_atm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:45
+ !-> DEFINE SYMBOL qq = 45
+ !-> DEFINE SYMBOL vname = woa_sss
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 woa_sss = SAMPLE_FAST_I(woa_sss_in, samplevar)
+ !-> SET ATT/LIKE=woa_sss_in woa_sss
+ !-> SET ATT/OUTPUT=all woa_sss
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" woa_sss
+!-> REPEAT: Q:46
+ !-> DEFINE SYMBOL qq = 46
+ !-> DEFINE SYMBOL vname = pressure_ncep_slp
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 pressure_ncep_slp = SAMPLE_FAST_I(pressure_ncep_slp_in, samplevar)
+ !-> SET ATT/LIKE=pressure_ncep_slp_in pressure_ncep_slp
+ !-> SET ATT/OUTPUT=all pressure_ncep_slp
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" pressure_ncep_slp
+!-> REPEAT: Q:47
+ !-> DEFINE SYMBOL qq = 47
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm = SAMPLE_FAST_I(fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_in fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm
+ !-> SET ATT/OUTPUT=all fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm
+!-> REPEAT: Q:48
+ !-> DEFINE SYMBOL qq = 48
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_insitu_from_xCO2_water_sst_dry_ppm = SAMPLE_FAST_I(fCO2_insitu_from_xCO2_water_sst_dry_ppm_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_insitu_from_xCO2_water_sst_dry_ppm_in fCO2_insitu_from_xCO2_water_sst_dry_ppm
+ !-> SET ATT/OUTPUT=all fCO2_insitu_from_xCO2_water_sst_dry_ppm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_insitu_from_xCO2_water_sst_dry_ppm
+!-> REPEAT: Q:49
+ !-> DEFINE SYMBOL qq = 49
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_water_equi_temp
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_from_pCO2_water_water_equi_temp = SAMPLE_FAST_I(fCO2_from_pCO2_water_water_equi_temp_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_from_pCO2_water_water_equi_temp_in fCO2_from_pCO2_water_water_equi_temp
+ !-> SET ATT/OUTPUT=all fCO2_from_pCO2_water_water_equi_temp
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_from_pCO2_water_water_equi_temp
+!-> REPEAT: Q:50
+ !-> DEFINE SYMBOL qq = 50
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_sst_100humidity_uatm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_from_pCO2_water_sst_100humidity_uatm = SAMPLE_FAST_I(fCO2_from_pCO2_water_sst_100humidity_uatm_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_from_pCO2_water_sst_100humidity_uatm_in fCO2_from_pCO2_water_sst_100humidity_uatm
+ !-> SET ATT/OUTPUT=all fCO2_from_pCO2_water_sst_100humidity_uatm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_from_pCO2_water_sst_100humidity_uatm
+!-> REPEAT: Q:51
+ !-> DEFINE SYMBOL qq = 51
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_fCO2_water_equi_uatm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_insitu_from_fCO2_water_equi_uatm = SAMPLE_FAST_I(fCO2_insitu_from_fCO2_water_equi_uatm_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_insitu_from_fCO2_water_equi_uatm_in fCO2_insitu_from_fCO2_water_equi_uatm
+ !-> SET ATT/OUTPUT=all fCO2_insitu_from_fCO2_water_equi_uatm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_insitu_from_fCO2_water_equi_uatm
+!-> REPEAT: Q:52
+ !-> DEFINE SYMBOL qq = 52
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_fCO2_water_sst_100humidty_uatm
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_insitu_from_fCO2_water_sst_100humidty_uatm = SAMPLE_FAST_I(fCO2_insitu_from_fCO2_water_sst_100humidty_uatm_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_insitu_from_fCO2_water_sst_100humidty_uatm_in fCO2_insitu_from_fCO2_water_sst_100humidty_uatm
+ !-> SET ATT/OUTPUT=all fCO2_insitu_from_fCO2_water_sst_100humidty_uatm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_insitu_from_fCO2_water_sst_100humidty_uatm
+!-> REPEAT: Q:53
+ !-> DEFINE SYMBOL qq = 53
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_water_equi_temp_ncep
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_from_pCO2_water_water_equi_temp_ncep = SAMPLE_FAST_I(fCO2_from_pCO2_water_water_equi_temp_ncep_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_from_pCO2_water_water_equi_temp_ncep_in fCO2_from_pCO2_water_water_equi_temp_ncep
+ !-> SET ATT/OUTPUT=all fCO2_from_pCO2_water_water_equi_temp_ncep
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_from_pCO2_water_water_equi_temp_ncep
+!-> REPEAT: Q:54
+ !-> DEFINE SYMBOL qq = 54
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_sst_100humidity_uatm_ncep
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_from_pCO2_water_sst_100humidity_uatm_ncep = SAMPLE_FAST_I(fCO2_from_pCO2_water_sst_100humidity_uatm_ncep_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_from_pCO2_water_sst_100humidity_uatm_ncep_in fCO2_from_pCO2_water_sst_100humidity_uatm_ncep
+ !-> SET ATT/OUTPUT=all fCO2_from_pCO2_water_sst_100humidity_uatm_ncep
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_from_pCO2_water_sst_100humidity_uatm_ncep
+!-> REPEAT: Q:55
+ !-> DEFINE SYMBOL qq = 55
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa = SAMPLE_FAST_I(fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa_in fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa
+ !-> SET ATT/OUTPUT=all fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa
+!-> REPEAT: Q:56
+ !-> DEFINE SYMBOL qq = 56
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa = SAMPLE_FAST_I(fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa_in fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa
+ !-> SET ATT/OUTPUT=all fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa
+!-> REPEAT: Q:57
+ !-> DEFINE SYMBOL qq = 57
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep = SAMPLE_FAST_I(fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_in fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep
+ !-> SET ATT/OUTPUT=all fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep
+!-> REPEAT: Q:58
+ !-> DEFINE SYMBOL qq = 58
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep = SAMPLE_FAST_I(fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_in fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep
+ !-> SET ATT/OUTPUT=all fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep
+!-> REPEAT: Q:59
+ !-> DEFINE SYMBOL qq = 59
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa = SAMPLE_FAST_I(fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa_in fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa
+ !-> SET ATT/OUTPUT=all fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa
+!-> REPEAT: Q:60
+ !-> DEFINE SYMBOL qq = 60
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa = SAMPLE_FAST_I(fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa_in fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa
+ !-> SET ATT/OUTPUT=all fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa
+!-> REPEAT: Q:61
+ !-> DEFINE SYMBOL qq = 61
+ !-> DEFINE SYMBOL vname = fCO2_recommended
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 fCO2_recommended = SAMPLE_FAST_I(fCO2_recommended_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_recommended_in fCO2_recommended
+ !-> SET ATT/OUTPUT=all fCO2_recommended
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" fCO2_recommended
+!-> REPEAT: Q:62
+ !-> DEFINE SYMBOL qq = 62
+ !-> DEFINE SYMBOL vname = fCO2_source
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1 fCO2_source = SAMPLE_FAST_I(fCO2_source_in, samplevar)
+ !-> SET ATT/LIKE=fCO2_source_in fCO2_source
+ !-> SET ATT/OUTPUT=all fCO2_source
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=INT4/FILE="492C19881104_dec.nc" fCO2_source
+!-> REPEAT: Q:63
+ !-> DEFINE SYMBOL qq = 63
+ !-> DEFINE SYMBOL vname = delta_temp
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 delta_temp = SAMPLE_FAST_I(delta_temp_in, samplevar)
+ !-> SET ATT/LIKE=delta_temp_in delta_temp
+ !-> SET ATT/OUTPUT=all delta_temp
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" delta_temp
+!-> REPEAT: Q:64
+ !-> DEFINE SYMBOL qq = 64
+ !-> DEFINE SYMBOL vname = region_id
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:65
+ !-> DEFINE SYMBOL qq = 65
+ !-> DEFINE SYMBOL vname = calc_speed
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 calc_speed = SAMPLE_FAST_I(calc_speed_in, samplevar)
+ !-> SET ATT/LIKE=calc_speed_in calc_speed
+ !-> SET ATT/OUTPUT=all calc_speed
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" calc_speed
+!-> REPEAT: Q:66
+ !-> DEFINE SYMBOL qq = 66
+ !-> DEFINE SYMBOL vname = etopo2
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 etopo2 = SAMPLE_FAST_I(etopo2_in, samplevar)
+ !-> SET ATT/LIKE=etopo2_in etopo2
+ !-> SET ATT/OUTPUT=all etopo2
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" etopo2
+!-> REPEAT: Q:67
+ !-> DEFINE SYMBOL qq = 67
+ !-> DEFINE SYMBOL vname = gvCO2
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 gvCO2 = SAMPLE_FAST_I(gvCO2_in, samplevar)
+ !-> SET ATT/LIKE=gvCO2_in gvCO2
+ !-> SET ATT/OUTPUT=all gvCO2
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" gvCO2
+!-> REPEAT: Q:68
+ !-> DEFINE SYMBOL qq = 68
+ !-> DEFINE SYMBOL vname = dist_to_land
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 dist_to_land = SAMPLE_FAST_I(dist_to_land_in, samplevar)
+ !-> SET ATT/LIKE=dist_to_land_in dist_to_land
+ !-> SET ATT/OUTPUT=all dist_to_land
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" dist_to_land
+!-> REPEAT: Q:69
+ !-> DEFINE SYMBOL qq = 69
+ !-> DEFINE SYMBOL vname = day_of_year
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 day_of_year = SAMPLE_FAST_I(day_of_year_in, samplevar)
+ !-> SET ATT/LIKE=day_of_year_in day_of_year
+ !-> SET ATT/OUTPUT=all day_of_year
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" day_of_year
+!-> REPEAT: Q:70
+ !-> DEFINE SYMBOL qq = 70
+ !-> DEFINE SYMBOL vname = time
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 time = SAMPLE_FAST_I(time_in, samplevar)
+ !-> SET ATT/LIKE=time_in time
+ !-> SET ATT/OUTPUT=all time
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" time
+!-> REPEAT: Q:71
+ !-> DEFINE SYMBOL qq = 71
+ !-> DEFINE SYMBOL vname = lon360
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE/BAD=-1.E+34 lon360 = SAMPLE_FAST_I(lon360_in, samplevar)
+ !-> SET ATT/LIKE=lon360_in lon360
+ !-> SET ATT/OUTPUT=all lon360
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=DOUBLE/FILE="492C19881104_dec.nc" lon360
+!-> REPEAT: Q:72
+ !-> DEFINE SYMBOL qq = 72
+ !-> DEFINE SYMBOL vname = tmonth
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> IF 1 THEN EXIT/CYCLE
+ 
+! sample_number will be the sequence number within the decimated data
+! We can use this to pick up the pen when drawing lines where the constraints
+! (on the decimated set) have skipped data
+ 
+LET/BAD=-1/TITLE="sequence number for decimated dataset" sample_number = i[gx=latitude]
+SAVE/QUIET/APPEND/OUTTYPE=INT/FILE="($outfile)" sample_number
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/OUTTYPE=INT/FILE="492C19881104_dec.nc" sample_number
+ 
+! Character variables
+ 
+REPEAT/RANGE=1:`nlist`/NAME=q (DEFINE SYMBOL qq = `q`;\
+DEFINE SYMBOL vname = `varnames_list[i=($qq)]`;\
+DEFINE SYMBOL vtype = `($vname)_in,RETURN=dtype`;\
+IF `($vtype"0|CHAR>1|*>0") EQ 0` THEN EXIT/CYCLE;\
+LET ($vname)_s = SAMPLEI(($vname)_in, samplevar);\
+LET ($vname) = RESHAPE(($vname)_s, x[gx=obs]);\
+SET ATT/LIKE=($vname)_in ($vname);\
+SET ATT/OUTPUT=all ($vname);\
+SAVE/QUIET/APPEND/FILE="($outfile)" ($vname) )
+ !-> REPEAT/RANGE=1:72/NAME=q (DEFINE SYMBOL qq = `q`;DEFINE SYMBOL vname = `varnames_list[i=($qq)]`;DEFINE SYMBOL vtype = `($vname)_in,RETURN=dtype`;IF `($vtype"0|CHAR>1|*>0") EQ 0` THEN EXIT/CYCLE;LET ($vname)_s = SAMPLEI(($vname)_in, samplevar);LET ($vname) = RESHAPE(($vname)_s, x[gx=obs]);SET ATT/LIKE=($vname)_in ($vname);SET ATT/OUTPUT=all ($vname);SAVE/QUIET/APPEND/FILE="($outfile)" ($vname) )
+!-> REPEAT: Q:1
+ !-> DEFINE SYMBOL qq = 1
+ !-> DEFINE SYMBOL vname = sample_number
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:2
+ !-> DEFINE SYMBOL qq = 2
+ !-> DEFINE SYMBOL vname = year
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:3
+ !-> DEFINE SYMBOL qq = 3
+ !-> DEFINE SYMBOL vname = month
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:4
+ !-> DEFINE SYMBOL qq = 4
+ !-> DEFINE SYMBOL vname = day
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:5
+ !-> DEFINE SYMBOL qq = 5
+ !-> DEFINE SYMBOL vname = hour
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:6
+ !-> DEFINE SYMBOL qq = 6
+ !-> DEFINE SYMBOL vname = minute
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:7
+ !-> DEFINE SYMBOL qq = 7
+ !-> DEFINE SYMBOL vname = second
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:8
+ !-> DEFINE SYMBOL qq = 8
+ !-> DEFINE SYMBOL vname = longitude
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:9
+ !-> DEFINE SYMBOL qq = 9
+ !-> DEFINE SYMBOL vname = latitude
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:10
+ !-> DEFINE SYMBOL qq = 10
+ !-> DEFINE SYMBOL vname = sample_depth
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:11
+ !-> DEFINE SYMBOL qq = 11
+ !-> DEFINE SYMBOL vname = sal
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:12
+ !-> DEFINE SYMBOL qq = 12
+ !-> DEFINE SYMBOL vname = Temperature_equi
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:13
+ !-> DEFINE SYMBOL qq = 13
+ !-> DEFINE SYMBOL vname = temp
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:14
+ !-> DEFINE SYMBOL qq = 14
+ !-> DEFINE SYMBOL vname = Temperature_atm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:15
+ !-> DEFINE SYMBOL qq = 15
+ !-> DEFINE SYMBOL vname = Pressure_equi
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:16
+ !-> DEFINE SYMBOL qq = 16
+ !-> DEFINE SYMBOL vname = Pressure_atm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:17
+ !-> DEFINE SYMBOL qq = 17
+ !-> DEFINE SYMBOL vname = xCO2_water_equi_temp_dry_ppm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:18
+ !-> DEFINE SYMBOL qq = 18
+ !-> DEFINE SYMBOL vname = xCO2_water_sst_dry_ppm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:19
+ !-> DEFINE SYMBOL qq = 19
+ !-> DEFINE SYMBOL vname = xCO2_water_equi_temp_wet_ppm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:20
+ !-> DEFINE SYMBOL qq = 20
+ !-> DEFINE SYMBOL vname = xCO2_water_sst_wet_ppm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:21
+ !-> DEFINE SYMBOL qq = 21
+ !-> DEFINE SYMBOL vname = pCO2_water_equi_temp
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:22
+ !-> DEFINE SYMBOL qq = 22
+ !-> DEFINE SYMBOL vname = pCO2_water_sst_100humidity_uatm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:23
+ !-> DEFINE SYMBOL qq = 23
+ !-> DEFINE SYMBOL vname = fCO2_water_equi_uatm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:24
+ !-> DEFINE SYMBOL qq = 24
+ !-> DEFINE SYMBOL vname = fCO2_water_sst_100humidity_uatm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:25
+ !-> DEFINE SYMBOL qq = 25
+ !-> DEFINE SYMBOL vname = xCO2_atm_dry_actual
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:26
+ !-> DEFINE SYMBOL qq = 26
+ !-> DEFINE SYMBOL vname = xCO2_atm_dry_interp
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:27
+ !-> DEFINE SYMBOL qq = 27
+ !-> DEFINE SYMBOL vname = pCO2_atm_wet_actual
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:28
+ !-> DEFINE SYMBOL qq = 28
+ !-> DEFINE SYMBOL vname = pCO2_atm_wet_interp
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:29
+ !-> DEFINE SYMBOL qq = 29
+ !-> DEFINE SYMBOL vname = fCO2_atm_wet_actual
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:30
+ !-> DEFINE SYMBOL qq = 30
+ !-> DEFINE SYMBOL vname = fCO2_atm_wet_interp
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:31
+ !-> DEFINE SYMBOL qq = 31
+ !-> DEFINE SYMBOL vname = delta_xCO2
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:32
+ !-> DEFINE SYMBOL qq = 32
+ !-> DEFINE SYMBOL vname = delta_pCO2
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:33
+ !-> DEFINE SYMBOL qq = 33
+ !-> DEFINE SYMBOL vname = delta_fCO2
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:34
+ !-> DEFINE SYMBOL qq = 34
+ !-> DEFINE SYMBOL vname = xH2O_equi
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:35
+ !-> DEFINE SYMBOL qq = 35
+ !-> DEFINE SYMBOL vname = relative_humidity
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:36
+ !-> DEFINE SYMBOL qq = 36
+ !-> DEFINE SYMBOL vname = specific_humidity
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:37
+ !-> DEFINE SYMBOL qq = 37
+ !-> DEFINE SYMBOL vname = ship_speed
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:38
+ !-> DEFINE SYMBOL qq = 38
+ !-> DEFINE SYMBOL vname = ship_dir
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:39
+ !-> DEFINE SYMBOL qq = 39
+ !-> DEFINE SYMBOL vname = wind_speed_true
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:40
+ !-> DEFINE SYMBOL qq = 40
+ !-> DEFINE SYMBOL vname = wind_speed_rel
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:41
+ !-> DEFINE SYMBOL qq = 41
+ !-> DEFINE SYMBOL vname = wind_dir_true
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:42
+ !-> DEFINE SYMBOL qq = 42
+ !-> DEFINE SYMBOL vname = wind_dir_rel
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:43
+ !-> DEFINE SYMBOL qq = 43
+ !-> DEFINE SYMBOL vname = WOCE_CO2_water
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE WOCE_CO2_water_s = SAMPLEI(WOCE_CO2_water_in, samplevar)
+ !-> DEFINE VARIABLE WOCE_CO2_water = RESHAPE(WOCE_CO2_water_s, x[gx=obs])
+ !-> SET ATT/LIKE=WOCE_CO2_water_in WOCE_CO2_water
+ !-> SET ATT/OUTPUT=all WOCE_CO2_water
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/FILE="492C19881104_dec.nc" WOCE_CO2_water
+!-> REPEAT: Q:44
+ !-> DEFINE SYMBOL qq = 44
+ !-> DEFINE SYMBOL vname = WOCE_CO2_atm
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE WOCE_CO2_atm_s = SAMPLEI(WOCE_CO2_atm_in, samplevar)
+ !-> DEFINE VARIABLE WOCE_CO2_atm = RESHAPE(WOCE_CO2_atm_s, x[gx=obs])
+ !-> SET ATT/LIKE=WOCE_CO2_atm_in WOCE_CO2_atm
+ !-> SET ATT/OUTPUT=all WOCE_CO2_atm
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/FILE="492C19881104_dec.nc" WOCE_CO2_atm
+!-> REPEAT: Q:45
+ !-> DEFINE SYMBOL qq = 45
+ !-> DEFINE SYMBOL vname = woa_sss
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:46
+ !-> DEFINE SYMBOL qq = 46
+ !-> DEFINE SYMBOL vname = pressure_ncep_slp
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:47
+ !-> DEFINE SYMBOL qq = 47
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:48
+ !-> DEFINE SYMBOL qq = 48
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:49
+ !-> DEFINE SYMBOL qq = 49
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_water_equi_temp
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:50
+ !-> DEFINE SYMBOL qq = 50
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_sst_100humidity_uatm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:51
+ !-> DEFINE SYMBOL qq = 51
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_fCO2_water_equi_uatm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:52
+ !-> DEFINE SYMBOL qq = 52
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_fCO2_water_sst_100humidty_uatm
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:53
+ !-> DEFINE SYMBOL qq = 53
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_water_equi_temp_ncep
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:54
+ !-> DEFINE SYMBOL qq = 54
+ !-> DEFINE SYMBOL vname = fCO2_from_pCO2_water_sst_100humidity_uatm_ncep
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:55
+ !-> DEFINE SYMBOL qq = 55
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:56
+ !-> DEFINE SYMBOL qq = 56
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:57
+ !-> DEFINE SYMBOL qq = 57
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:58
+ !-> DEFINE SYMBOL qq = 58
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:59
+ !-> DEFINE SYMBOL qq = 59
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:60
+ !-> DEFINE SYMBOL qq = 60
+ !-> DEFINE SYMBOL vname = fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:61
+ !-> DEFINE SYMBOL qq = 61
+ !-> DEFINE SYMBOL vname = fCO2_recommended
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:62
+ !-> DEFINE SYMBOL qq = 62
+ !-> DEFINE SYMBOL vname = fCO2_source
+ !-> DEFINE SYMBOL vtype = INT4
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:63
+ !-> DEFINE SYMBOL qq = 63
+ !-> DEFINE SYMBOL vname = delta_temp
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:64
+ !-> DEFINE SYMBOL qq = 64
+ !-> DEFINE SYMBOL vname = region_id
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE region_id_s = SAMPLEI(region_id_in, samplevar)
+ !-> DEFINE VARIABLE region_id = RESHAPE(region_id_s, x[gx=obs])
+ !-> SET ATT/LIKE=region_id_in region_id
+ !-> SET ATT/OUTPUT=all region_id
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/FILE="492C19881104_dec.nc" region_id
+!-> REPEAT: Q:65
+ !-> DEFINE SYMBOL qq = 65
+ !-> DEFINE SYMBOL vname = calc_speed
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:66
+ !-> DEFINE SYMBOL qq = 66
+ !-> DEFINE SYMBOL vname = etopo2
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:67
+ !-> DEFINE SYMBOL qq = 67
+ !-> DEFINE SYMBOL vname = gvCO2
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:68
+ !-> DEFINE SYMBOL qq = 68
+ !-> DEFINE SYMBOL vname = dist_to_land
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:69
+ !-> DEFINE SYMBOL qq = 69
+ !-> DEFINE SYMBOL vname = day_of_year
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:70
+ !-> DEFINE SYMBOL qq = 70
+ !-> DEFINE SYMBOL vname = time
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:71
+ !-> DEFINE SYMBOL qq = 71
+ !-> DEFINE SYMBOL vname = lon360
+ !-> DEFINE SYMBOL vtype = DOUBLE
+ !-> IF 1 THEN EXIT/CYCLE
+!-> REPEAT: Q:72
+ !-> DEFINE SYMBOL qq = 72
+ !-> DEFINE SYMBOL vname = tmonth
+ !-> DEFINE SYMBOL vtype = CHAR
+ !-> IF 0 THEN EXIT/CYCLE
+ !-> DEFINE VARIABLE tmonth_s = SAMPLEI(tmonth_in, samplevar)
+ !-> DEFINE VARIABLE tmonth = RESHAPE(tmonth_s, x[gx=obs])
+ !-> SET ATT/LIKE=tmonth_in tmonth
+ !-> SET ATT/OUTPUT=all tmonth
+ !-> LIST/FORMAT=CDF/QUIET/APPEND/FILE="492C19881104_dec.nc" tmonth
+ 
+can data/all
+can var/all
+can sym/all
+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_outline_poly.jnl
 [?1034hset win /xinch=8 /thick=1 /asp=1 /outline=5 1
 let v = 2*3.14159*x[gx=0:1:.01]
@@ -95365,11 +105653,23 @@ frame /file=outline_poly.pdf
 [?1034hset 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=tahoma
-contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/color=green/title="CONTOUR TAHOMA GREEN"  10*sin(i/3)*cos(j/4)
+set text /font=lucida
+contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/color=green/title="CONTOUR LUCIDA GREEN"  10*sin(i/3)*cos(j/4)
 frame /file=contourcolor_green.pdf
-contour/i=1:20/j=1:20/lev=(0)(-10,10,2.125)/color=(60,20,30)/title="CONTOUR TAHOMA (60,20,30)"  10*sin(i/3)*cos(j/4)
+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
+*** Running ferret script: bn_inf2missing.jnl
+[?1034h! 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
+!
+! The value returned by this function is -infinity at zero and +infinity at one.
+! If left as infinity, no plot produced; if converted to the missing value, one
+! sees a normal plot with the line stopping before reaching zero or one.
+ 
+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"}')
@@ -95402,12 +105702,8 @@ axis_coords:
 >>> strdata = strdict['data']
 >>> repr(strdata.squeeze())
 "array(['one', 'two', 'three', 'four', 'five', 'six'], \n      dtype='|S6')"
->>> del strdata
->>> del strdict
->>> strdict = pyferret.getstrdata('strarr')
 >>> 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    [...]
->>> del strdict
 *** Running python script: testferregion.py
 [?1034h
 >>> emptyregion = pyferret.FerRegion()
@@ -95435,32 +105731,32 @@ Error caught: X and I cannot both be given
 [?1034h
 >>> coads = pyferret.FerDSet('coads_climatology.cdf')
 >>> str(coads)
-"FerDSet('coads_climatology.cdf') using dataset name 'coads_climatology.cdf' and variables ['SST']"
+"FerDSet('coads_climatology.cdf') with variables ['SST']"
 >>> dir(coads)
 ['SST', '__class__', '__delattr__', '__doc__', '__format__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__self_class__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__thisclass__', 'sst']
 >>> coads.show()
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
 >>> coads_uw  = pyferret.FerDSet('coads_uw.nc')
 >>> str(coads_uw)
-"FerDSet('coads_uw.nc') using dataset name 'coads_uw.nc' and variables ['SPEH', 'UWND', 'VWND']"
+"FerDSet('coads_uw.nc') with variables ['SPEH', 'UWND', 'VWND']"
 >>> dir(coads_uw)
 ['SPEH', 'UWND', 'VWND', '__class__', '__delattr__', '__doc__', '__format__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__self_class__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__thisclass__', 'speh', 'uwnd', 'vwnd']
 >>> coads_uw.show(brief=False)
      currently SET data sets:
     2> ./coads_uw.nc  (default)
  
- name     title                             I         J         K         L         M         N
- UWND     ZONAL WIND                       1:30      1:30      ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12
              M/S on grid GFQ1 with -1.E+34 for missing data
              X=60W:0E(360)  Y=0:60N  
- VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      ...       ...
+ VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12
              M/S on grid GFQ1 with -1.E+34 for missing data
              X=60W:0E(360)  Y=0:60N  
- SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12      ...       ...
+ SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12
              G/KG on grid GFQ1 with -1.E+34 for missing data
              X=60W:0E(360)  Y=0:60N  
  
@@ -95481,8 +105777,8 @@ ValueError caught with message: pyferret.anondset should be used for the anonymo
      currently SET data sets:
     1> ./coads_climatology.cdf
  
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
              Deg C on grid GSQ1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -95490,14 +105786,14 @@ ValueError caught with message: pyferret.anondset should be used for the anonymo
  
     2> ./coads_uw.nc  (default)
  
- name     title                             I         J         K         L         M         N
- UWND     ZONAL WIND                       1:30      1:30      ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12
              M/S on grid GFQ1 with -1.E+34 for missing data
              X=60W:0E(360)  Y=0:60N  
- VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      ...       ...
+ VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12
              M/S on grid GFQ1 with -1.E+34 for missing data
              X=60W:0E(360)  Y=0:60N  
- SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12      ...       ...
+ SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12
              G/KG on grid GFQ1 with -1.E+34 for missing data
              X=60W:0E(360)  Y=0:60N  
  
@@ -95507,15 +105803,8 @@ ValueError caught with message: pyferret.anondset should be used for the anonymo
 >>> pyferret.showdata()
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
- 
->>> del coads_uw
->>> pyferret.showdata()
-     currently SET data sets:
-    1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
 >>> coads.close()
 >>> pyferret.showdata()
@@ -95523,9 +105812,6 @@ ValueError caught with message: pyferret.anondset should be used for the anonymo
 >>> coads.close()
 >>> pyferret.showdata()
      currently SET data sets:
->>> del coads
->>> pyferret.showdata()
-     currently SET data sets:
 >>> dir(pyferret.anondset)
 ['SSTCOPY', '__class__', '__delattr__', '__doc__', '__format__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__self_class__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__thisclass__', 'sstcopy']
 >>> pyferret.anondset.show()
@@ -95549,8 +105835,6 @@ FerVar(varname='SST', dsetname='coads_climatology.cdf', title = '', defn='SST[d=
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        full
- normal    E
- normal    F
 None
 >>> del coads.sst
 >>> coads_uw  = pyferret.FerDSet('coads_uw.nc')
@@ -95561,8 +105845,6 @@ None
  COADSY46_75 LATITUDE          30 r   1N                   59N                 full
  normal    Z
  TIME1     TIME                12mr   16-JAN 06:00         16-DEC 01:20        full
- normal    E
- normal    F
 >>> coads_uw.mywnd = (coads_uw.uwnd**2 + coads_uw.vwnd**2)**0.5
 >>> dir(coads_uw)
 ['MYWND', 'SPEH', 'UWND', 'VWND', '__class__', '__delattr__', '__doc__', '__format__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__self_class__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__thisclass__', 'mywnd', 'speh', 'uwnd', 'vwnd']
@@ -95575,8 +105857,6 @@ FerVar(varname='mywnd', dsetname='coads_uw.nc', title = '', defn='mywnd[d=coads_
  COADSY46_75 LATITUDE          30 r   1N                   59N                 full
  normal    Z
  TIME1     TIME                12mr   16-JAN 06:00         16-DEC 01:20        full
- normal    E
- normal    F
 >>> print repr(coads_uw.mywnd.data)
 array([[[[[[ -1.00000000e+34]],
 
@@ -96151,7 +106431,7 @@ FerGrid(axes=[
        [16, 12,  0,  1, 20,  5]], dtype=int32), axtype=4, unit='CALTYPE_GREGORIAN', name='TIME1'),
     FerAxis(coords=None, axtype=7, unit='', name=''),
     FerAxis(coords=None, axtype=7, unit='', name=''),
-    name='mywnd[d=coads_uw.nc]'])
+], name='mywnd[d=coads_uw.nc]')
 >>> coads_uw.mywnd.load()
 >>> coads_uw.mywnd.data.shape
 (30, 30, 1, 12, 1, 1)
@@ -96183,22 +106463,22 @@ FerGrid(axes=[
        [16, 12,  0,  1, 20,  5]], dtype=int32), axtype=4, unit='CALTYPE_GREGORIAN', name='TIME1'),
     FerAxis(coords=None, axtype=7, unit='', name=''),
     FerAxis(coords=None, axtype=7, unit='', name=''),
-    name='mywnd[d=coads_uw.nc]'])
+], name='mywnd[d=coads_uw.nc]')
 >>> coads_uw.mywnd.unload()
 >>> coads.sstregrid = coads.sst.regrid(coads_uw.mywnd, pyferret.REGRID_AVERAGE)
 >>> pyferret.showdata()
      currently SET data sets:
     1> ./coads_climatology.cdf
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
  SSTREGRID[D=coads_climatology] = SST[D=COADS_CLIMATOLOGY.CDF,G=MYWND[D=COADS_UW.NC]@AVE]
  
     2> ./coads_uw.nc  (default)
- name     title                             I         J         K         L         M         N
- UWND     ZONAL WIND                       1:30      1:30      ...       1:12      ...       ...
- VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      ...       ...
- SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12
+ VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12
+ SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12
  ------------------------------
  MYWND[D=coads_uw] = (((UWND[D=COADS_UW.NC]) ^ 2) + ((VWND[D=COADS_UW.NC]) ^ 2)) ^ 0.5
  
@@ -96209,8 +106489,6 @@ FerGrid(axes=[
  COADSY46_75 LATITUDE          30 r   1N                   59N                 full
  normal    Z
  TIME1     TIME                12mr   16-JAN 06:00         16-DEC 01:20        full
- normal    E
- normal    F
 >>> coads.sstregrid.load()
 >>> coads.sstregrid.data.shape
 (30, 30, 1, 12, 1, 1)
@@ -96232,10 +106510,10 @@ pyferret.run('LIST /X=55W:51W /Y=5N:9N /L=1 SST[d=coads_climatology]')
 >>> coads_uw.show()
      currently SET data sets:
     2> ./coads_uw.nc  (default)
- name     title                             I         J         K         L         M         N
- UWND     ZONAL WIND                       1:30      1:30      ...       1:12      ...       ...
- VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      ...       ...
- SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12
+ VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12
+ SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12
  ------------------------------
  MYWND[D=coads_uw] = (((UWND[D=COADS_UW.NC]) ^ 2) + ((VWND[D=COADS_UW.NC]) ^ 2)) ^ 0.5
  
@@ -96243,10 +106521,10 @@ pyferret.run('LIST /X=55W:51W /Y=5N:9N /L=1 SST[d=coads_climatology]')
 >>> coads_uw.show()
      currently SET data sets:
     2> ./coads_uw.nc  (default)
- name     title                             I         J         K         L         M         N
- UWND     ZONAL WIND                       1:30      1:30      ...       1:12      ...       ...
- VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      ...       ...
- SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12
+ VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12
+ SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12
  
 >>> pyferret.anondset.sstcopy = coads.sst
 >>> pyferret.anondset.show()
@@ -96278,8 +106556,6 @@ set(['SST'])
  COADSY    LATITUDE            90 r   89S                  89N                 full
  normal    Z
  TIME      TIME                 3mr   16-JAN 06:00         17-MAR 02:58        1 pt
- normal    E
- normal    F
 >>> coads.sst2.load()
 >>> coads.sst2.data.shape
 (180, 90, 1, 1, 1, 1)
@@ -96305,8 +106581,8 @@ FerVar(varname='sst2', dsetname='coads_climatology.cdf', title = '', defn='sst2[
      currently SET data sets:
     1> ./coads_climatology.cdf
  
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
              Deg C on grid GSQ1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -96326,8 +106602,8 @@ array([[ 12.18707085,  18.32330322,  19.59271812],
      currently SET data sets:
     1> ./coads_climatology.cdf
  
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
              Deg C on grid GSQ1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -96338,38 +106614,95 @@ array([[ 12.18707085,  18.32330322,  19.59271812],
  
     2> ./coads_uw.nc  (default)
  
- name     title                             I         J         K         L         M         N
- UWND     ZONAL WIND                       1:30      1:30      ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12
              M/S on grid GFQ1 with -1.E+34 for missing data
              X=60W:0E(360)  Y=0:60N  
- VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      ...       ...
+ VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12
              M/S on grid GFQ1 with -1.E+34 for missing data
              X=60W:0E(360)  Y=0:60N  
- SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12      ...       ...
+ SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12
              G/KG on grid GFQ1 with -1.E+34 for missing data
              X=60W:0E(360)  Y=0:60N  
  
   time range: 16-JAN 06:00 to 16-DEC 01:20
  
 >>> coads_uw.close()
->>> del coads_uw
 >>> pyferret.showdata()
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  ------------------------------
  SST2[D=coads_climatology] = SST[D=COADS_CLIMATOLOGY.CDF,X=25E:29E,Y=43S:39S,L=2]
  SSTREGRID[D=coads_climatology] = SST[D=COADS_CLIMATOLOGY.CDF,G=MYWND[D=COADS_UW.NC]@AVE]
  
 >>> coads.close()
->>> del coads
 >>> 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()
+     currently SET data sets:
+    1> ./ens4.nc
+ name     title                             I         J         K         L
+ SST      SST_IN                           1:10      1:9       ...       1:12
+ 
+    2> onefileagg  (default)  Ensemble aggregation
+ name     title                             I         J         K         L         M         N
+ SST      SST_IN                           1:10      1:9       ...       1:12      1:1       ...
+ 
+>>> print str(onefileagg)
+FerAggDSet(name='onefileagg', dsets=['./ens4.nc'], along='E', hide=False) with variables ['SST']
+>>> onefileagg.close()
+>>> pyferret.showdata()
+     currently SET data sets:
+    1> ./ens4.nc  (default)
+ name     title                             I         J         K         L
+ SST      SST_IN                           1:10      1:9       ...       1:12
+ 
+>>> print str(onefileagg)
+FerAggDSet(name='', dsets=['./ens4.nc'], along='E', hide=False) with variables []
+>>> twofileagg = pyferret.FerAggDSet(name='twofileagg', dsets=dsetnames[-2:], along='E', hide=True)
+>>> pyferret.showdata()
+     currently SET data sets:
+    3> twofileagg  (default)  Ensemble aggregation
+ name     title                             I         J         K         L         M         N
+ SST      SST_IN                           1:10      1:9       ...       1:12      1:2       ...
+ 
+>>> print str(twofileagg)
+FerAggDSet(name='twofileagg', dsets=['./ens3.nc', './ens4.nc'], along='E', hide=True) with variables ['SST']
+>>> twofileagg.close()
+>>> pyferret.showdata()
+     currently SET data sets:
+>>> print str(twofileagg)
+FerAggDSet(name='', dsets=[], along='E', hide=True) with variables []
 >>> fourfiles = pyferret.FerAggDSet(name='fourfiles', dsets=dsetnames, along='E')
+>>> pyferret.showdata()
+     currently SET data sets:
+    1> ./ens1.nc
+ name     title                             I         J         K         L
+ SST      SST_IN                           1:10      1:9       ...       1:12
+ AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12
+ 
+    2> ./ens2.nc
+ name     title                             I         J         K         L
+ SST      SST_IN                           1:10      1:9       ...       1:12
+ 
+    3> ./ens3.nc
+ name     title                             I         J         K         L
+ SST      SST_IN                           1:10      1:9       ...       1:12
+ 
+    4> ./ens4.nc
+ name     title                             I         J         K         L
+ SST      SST_IN                           1:10      1:9       ...       1:12
+ 
+    5> fourfiles  (default)  Ensemble aggregation
+ name     title                             I         J         K         L         M         N
+ SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
+ 
 >>> fourfiles.show()
      currently SET data sets:
     5> fourfiles  (default)  Ensemble aggregation
@@ -96377,13 +106710,11 @@ array([[ 12.18707085,  18.32330322,  19.59271812],
  SST      SST_IN                           1:10      1:9       ...       1:12      1:4       ...
  
 >>> print str(fourfiles)
-FerAggDSet(name='fourfiles', dsets=['ens1.nc', 'ens2.nc', 'ens3.nc', 'ens4.nc']) with variables ['SST']
->>> dir(fourfiles)
-['SST', '__class__', '__delattr__', '__doc__', '__format__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__self_class__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__thisclass__', 'sst']
+FerAggDSet(name='fourfiles', dsets=['./ens1.nc', './ens2.nc', './ens3.nc', './ens4.nc'], along='E', hide=False) with variables ['SST']
 >>> fourfiles.getdsetnames()
-['ens1.nc', 'ens2.nc', 'ens3.nc', 'ens4.nc']
+['./ens1.nc', './ens2.nc', './ens3.nc', './ens4.nc']
 >>> fourfiles.getdsets()
-[FerDSet('./ens1.nc') using dataset name 'ens1.nc' and variables ['AIRT', 'SST'], FerDSet('./ens2.nc') using dataset name 'ens2.nc' and variables ['SST'], FerDSet('./ens3.nc') using dataset name 'ens3.nc' and variables ['SST'], FerDSet('./ens4.nc') using dataset name 'ens4.nc' and variables ['SST']]
+[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
  name       axis              # pts   start                end                 subset
@@ -96395,14 +106726,30 @@ FerAggDSet(name='fourfiles', dsets=['ens1.nc', 'ens2.nc', 'ens3.nc', 'ens4.nc'])
  normal    F
 >>> fourfiles.close()
 >>> print str(fourfiles)
-FerAggDSet(name='', dsets=[]) with variables []
->>> dir(fourfiles)
-['__class__', '__delattr__', '__doc__', '__format__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__self_class__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__thisclass__']
+FerAggDSet(name='', dsets=['./ens1.nc', './ens2.nc', './ens3.nc', './ens4.nc'], along='E', hide=False) with variables []
 >>> fourfiles.getdsetnames()
-[]
+['./ens1.nc', './ens2.nc', './ens3.nc', './ens4.nc']
 >>> fourfiles.getdsets()
-[]
->>> del fourfiles
+[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']]
+>>> pyferret.showdata()
+     currently SET data sets:
+    1> ./ens1.nc
+ name     title                             I         J         K         L
+ SST      SST_IN                           1:10      1:9       ...       1:12
+ AIRT     AIR TEMPERATURE                  1:10      1:9       ...       1:12
+ 
+    2> ./ens2.nc
+ name     title                             I         J         K         L
+ SST      SST_IN                           1:10      1:9       ...       1:12
+ 
+    3> ./ens3.nc
+ name     title                             I         J         K         L
+ SST      SST_IN                           1:10      1:9       ...       1:12
+ 
+    4> ./ens4.nc
+ name     title                             I         J         K         L
+ SST      SST_IN                           1:10      1:9       ...       1:12
+ 
 *** Running python script: testferaxis.py
 [?1034h
 >>> normax = pyferret.FerAxis()
@@ -96602,7 +106949,7 @@ FerGrid(axes=[
     FerAxis(coords=None, axtype=7, unit='', name=''),
     FerAxis(coords=None, axtype=7, unit='', name=''),
     FerAxis(coords=None, axtype=7, unit='', name=''),
-    name=''])
+], name='')
 >>> dir(nogrid)
 ['__class__', '__delattr__', '__doc__', '__format__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__self_class__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__thisclass__', 'axes', 'name']
 >>> coads = pyferret.FerDSet('coads_climatology')
@@ -96645,7 +106992,7 @@ FerGrid(axes=[
        [17,  3,  0,  2, 58, 12]], dtype=int32), axtype=4, unit='CALTYPE_GREGORIAN', name='TIME'),
     FerAxis(coords=None, axtype=7, unit='', name=''),
     FerAxis(coords=None, axtype=7, unit='', name=''),
-    name='SST[d=coads_climatology]'])
+], name='SST[d=coads_climatology]')
 >>> nogrid == coadsgrid
 False
 >>> nogrid != coadsgrid
@@ -96722,7 +107069,7 @@ FerGrid(axes=[
          5.5,   6. ,   6.5,   7. ,   7.5,   8. ,   8.5,   9. ,   9.5,
         10. ,  10.5,  11. ,  11.5,  12. ,  12.5]), axtype=5, unit='freqnum', name='frequencies'),
     FerAxis(coords=None, axtype=7, unit='', name=''),
-    name='freqgrid'])
+], name='freqgrid')
 >>> freqgrid.axes[0] == coadsgrid.axes[0]
 True
 >>> freqgrid.axes[1] == coadsgrid.axes[1]
@@ -96742,8 +107089,8 @@ True
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
              Deg C on grid GSQ1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -96757,8 +107104,8 @@ True
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
  
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
              Deg C on grid GSQ1 with -1.E+34 for missing data
              X=20E:20E(380)  Y=90S:90N  
  
@@ -96769,18 +107116,17 @@ True
              X=20E:20E(380)  Y=90S:90N  
  
 >>> pyferret.setwindow(1, axisasp=0.5, logo=False)
->>> pyferret.setdefaulttext(font='Arial')
+>>> pyferret.setdefaulttext(font='lucida')
 >>> pyferret.shadeplot(coads.sstcopy['40S':'40N','100E':'100W','16-FEB'])
 >>> pyferret.saveplot('testferpyvar.pdf')
 >>> del coads.sstcopy
 >>> pyferret.showdata()
      currently SET data sets:
     1> ./coads_climatology.cdf  (default)
- name     title                             I         J         K         L         M         N
- SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3       ...       ...
+ name     title                             I         J         K         L
+ SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:3
  
 >>> coads.close()
->>> del coads
 >>> pyferret.showdata()
      currently SET data sets:
 *** Running python script: testfermethods.py
@@ -96791,14 +107137,14 @@ True
      currently SET data sets:
     1> ./coads_uw.nc  (default)
  
- name     title                             I         J         K         L         M         N
- UWND     ZONAL WIND                       1:30      1:30      ...       1:12      ...       ...
+ name     title                             I         J         K         L
+ UWND     ZONAL WIND                       1:30      1:30      ...       1:12
              M/S on grid GFQ1 with -1.E+34 for missing data
              X=60W:0E(360)  Y=0:60N  
- VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12      ...       ...
+ VWND     MERIDIONAL WIND                  1:30      1:30      ...       1:12
              M/S on grid GFQ1 with -1.E+34 for missing data
              X=60W:0E(360)  Y=0:60N  
- SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12      ...       ...
+ SPEH     SPECIFIC HUMIDITY                1:30      1:30      ...       1:12
              G/KG on grid GFQ1 with -1.E+34 for missing data
              X=60W:0E(360)  Y=0:60N  
  
@@ -96807,7 +107153,7 @@ True
  MYWND[D=coads_uw] = (((UWND[D=COADS_UW.NC]) ^ 2) + ((VWND[D=COADS_UW.NC]) ^ 2)) ^ 0.5
  
 >>> pyferret.setwindow(1, axisasp=0.75, color=(100,90,90), thick=0.75, logo=False)
->>> pyferret.settextstyle(font='arial', color='blue', bold=True, italic=True)
+>>> pyferret.settextstyle(font='lucida', color='blue', bold=True, italic=True)
 >>> febreg = pyferret.FerRegion(T='15-FEB')
 >>> pyferret.contourplot(coads_uw.mywnd, region=febreg)
 >>> pyferret.saveplot('testfermethods_contour.pdf')
@@ -96820,7 +107166,7 @@ True
 >>> pyferret.saveplot('testfermethods_pointplot.pdf')
 >>> pyferret.lineplot(coads_uw.uwnd, vs=coads_uw.vwnd, color=coads_uw.mywnd, region=febeqreg)
 >>> pyferret.saveplot('testfermethods_lineplot.pdf')
->>> del coads_uw
+>>> coads_uw.close()
 >>> pyferret.showdata()
      currently SET data sets:
-Ended at Fri Jun 17 15:19:14 PDT 2016
+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 fa2f9aa..d1dbac8 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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -75,7 +75,7 @@ variables:
 		MY_VAR:long_name = "T[GT=T5]" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -112,7 +112,7 @@ variables:
 		B:long_name = "\"one line of text\"" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -151,7 +151,7 @@ variables:
 		D:history = "From test_string" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -256,7 +256,7 @@ variables:
 		V:long_name = "T[GT=MONTH_IRREG]" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -313,7 +313,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -370,7 +370,7 @@ variables:
 		V:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -425,7 +425,7 @@ variables:
 		T2:long_name = "Z[GZ=ZIRR]" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -473,7 +473,7 @@ variables:
 		V:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -567,7 +567,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -637,7 +637,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -779,7 +779,7 @@ variables:
 		A:long_name = "T[GT=TIME]" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -806,7 +806,7 @@ variables:
 		X_:long_name_mod = "axis ABSTRACT" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-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:
@@ -857,14 +857,14 @@ variables:
 		A:history = "From t0_cdc" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 *** 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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -973,7 +973,7 @@ variables:
 		VAR_B:long_name = "my strings" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1017,7 +1017,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1059,7 +1059,7 @@ variables:
 		SST:units = "Deg C" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1167,7 +1167,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1257,7 +1257,7 @@ variables:
 		BB:another_attr = 6.f ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1277,7 +1277,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1298,7 +1298,7 @@ variables:
 		BB:long_name = "{3,4.5,6,7,4}" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1341,7 +1341,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 bn_attributes.jnl --- 14 attributes of data from ez data.
@@ -1433,22 +1433,22 @@ variables:
 	float A1(AX002) ;
 		A1:missing_value = -1.e+34f ;
 		A1:_FillValue = -1.e+34f ;
-		A1:long_name = "A1" ;
+		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 ;
-		A2:long_name = "A2" ;
+		A2:long_name = "a2" ;
 		A2:history = "From EZ.DAT" ;
 	float A3(AX002) ;
 		A3:missing_value = -1.e+34f ;
 		A3:_FillValue = -1.e+34f ;
-		A3:long_name = "A3" ;
+		A3:long_name = "a3" ;
 		A3:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1481,7 +1481,7 @@ variables:
 		V4:history = "From EZ.DAT" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1507,7 +1507,7 @@ variables:
 		A:four = "theory" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1553,7 +1553,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 		:dt_internal = 15. ;
 }
@@ -1702,7 +1702,7 @@ variables:
 		ELEV:history = "From err491_attval" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1785,7 +1785,7 @@ variables:
 		RIGUE:history = "From test0" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1822,7 +1822,7 @@ variables:
 		B:long_name = "hello" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1862,7 +1862,7 @@ variables:
 		VWND:units = "M/S" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1913,7 +1913,7 @@ variables:
 		T2:history = "From coads_vwnd" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -1972,7 +1972,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2017,7 +2017,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2060,7 +2060,7 @@ variables:
 		T2:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2095,7 +2095,7 @@ variables:
 		TEMP:units = "DEG C" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2129,7 +2129,7 @@ variables:
 		TWO:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2294,7 +2294,7 @@ variables:
 		FAREN:history = "From gt4d011" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2365,7 +2365,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2395,7 +2395,7 @@ variables:
 		A:long_name = "X[GX=XAX]" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2448,7 +2448,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2490,7 +2490,7 @@ variables:
 		TEMP:units = "Deg C" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2508,7 +2508,7 @@ variables:
 		V:long_name = "Y[GY=YAXIS]" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_no_valid_on_plot.jnl
@@ -2530,7 +2530,7 @@ variables:
 		MY_ASC:history = "From dat.dat" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -2548,7 +2548,7 @@ variables:
 		MY_UNF:history = "From unf.dat" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -2650,14 +2650,14 @@ variables:
 		time1478:point_spacing = "even" ;
 		time1478:standard_name = "time" ;
 	double newvar(time1478, zt, lat1_5, lon1_5) ;
-		newvar:missing_value = -999. ;
-		newvar:_FillValue = -999. ;
+		newvar:missing_value = -1.e+34 ;
+		newvar:_FillValue = -1.e+34 ;
 		newvar:long_name = "outgoing longwave radiation" ;
 		newvar:units = "watts/m2" ;
 		newvar:history = "From a" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		: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 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 data:
 
@@ -3050,7 +3050,7 @@ variables:
 		MYVAR:history = "From coads_climatology" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 netcdf a {
@@ -3064,7 +3064,7 @@ variables:
 		MYVAR:history = "From levitus_climatology" ;
 
 // global attributes:
-		:history = "PyFERRET V7 (beta/dbg) 17-Jun-16" ;
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
 		:Conventions = "CF-1.6" ;
 }
 *** Running ferret script: bn_list_clim_axes.jnl
@@ -3074,12 +3074,688 @@ variables:
 *** Running ferret script: bn_plot_decimate.jnl
 *** Running ferret script: bn_auto_tprec.jnl
 *** Running ferret script: bn_coordvars_atts.jnl
+*** Running ferret script: bn710_bug_fixes.jnl
+*** Running ferret script: bn_delim_datetime.jnl
+*** Running ferret script: bn_aggregate_u.jnl
+*** Running ferret script: bn_ez_noupcase.jnl
+*** Running ferret script: bn_spawn_fail.jnl
+*** Running ferret script: bn_ave_of_ave.jnl
+*** Running ferret script: bn_agg_member_syntax.jnl
+*** Running ferret script: bn_true_monthly.jnl
+*** Running ferret script: bn720_bug_fixes.jnl
+*** Running ferret script: bn_compressed_gather.jnl
+*** 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_cache_management.jnl
+*** Running ferret script: bn_transp_choose.jnl
 *** Running ferret script: bn_gif.jnl
 *** Running ferret script: bn_ps.jnl
 *** Running ferret script: bn_all_ef.jnl
 *** Running ferret script: bn_startupfile.jnl
+*** Running ferret script: err700_decimate.jnl
+netcdf \492C19881104_dec {
+dimensions:
+	traj = 1 ;
+	STRING1_12 = 12 ;
+	STRING1_1 = 1 ;
+	STRING1_10 = 10 ;
+	STRING1_9 = 9 ;
+	STRING1_4 = 4 ;
+	STRING1_3 = 3 ;
+	obs = 23 ;
+variables:
+	double traj(traj) ;
+		traj:point_spacing = "even" ;
+		traj:axis = "E" ;
+	int num_obs(traj) ;
+		num_obs:missing_value = -99 ;
+		num_obs:_FillValue = -99 ;
+		num_obs:sample_dimension = "obs" ;
+		num_obs:long_name = "Number of Observations" ;
+	char expocode(traj, STRING1_12) ;
+		expocode:long_name = "expocode" ;
+		expocode:cf_role = "trajectory_id" ;
+		expocode:ioos_category = "Identifier" ;
+		expocode:history = "From 492C19881104" ;
+	char dataset_name(traj, STRING1_1) ;
+		dataset_name:long_name = "dataset name" ;
+		dataset_name:ioos_category = "Identifier" ;
+		dataset_name:history = "From 492C19881104" ;
+	char vessel_name(traj, STRING1_10) ;
+		vessel_name:long_name = "vessel name" ;
+		vessel_name:standard_name = "platform_name" ;
+		vessel_name:ioos_category = "Identifier" ;
+		vessel_name:history = "From 492C19881104" ;
+	char organization(traj, STRING1_1) ;
+		organization:long_name = "organization" ;
+		organization:ioos_category = "Identifier" ;
+		organization:history = "From 492C19881104" ;
+	double geospatial_lon_min(traj) ;
+		geospatial_lon_min:missing_value = -1.e+34 ;
+		geospatial_lon_min:_FillValue = -1.e+34 ;
+		geospatial_lon_min:units = "degrees_east" ;
+		geospatial_lon_min:long_name = "westernmost longitude" ;
+		geospatial_lon_min:standard_name = "geospatial_lon_min" ;
+		geospatial_lon_min:ioos_category = "Location" ;
+		geospatial_lon_min:history = "From 492C19881104" ;
+	double geospatial_lon_max(traj) ;
+		geospatial_lon_max:missing_value = -1.e+34 ;
+		geospatial_lon_max:_FillValue = -1.e+34 ;
+		geospatial_lon_max:units = "degrees_east" ;
+		geospatial_lon_max:long_name = "easternmost longitude" ;
+		geospatial_lon_max:standard_name = "geospatial_lon_max" ;
+		geospatial_lon_max:ioos_category = "Location" ;
+		geospatial_lon_max:history = "From 492C19881104" ;
+	double geospatial_lat_min(traj) ;
+		geospatial_lat_min:missing_value = -1.e+34 ;
+		geospatial_lat_min:_FillValue = -1.e+34 ;
+		geospatial_lat_min:units = "degrees_north" ;
+		geospatial_lat_min:long_name = "southernmost latitude" ;
+		geospatial_lat_min:standard_name = "geospatial_lat_min" ;
+		geospatial_lat_min:ioos_category = "Location" ;
+		geospatial_lat_min:history = "From 492C19881104" ;
+	double geospatial_lat_max(traj) ;
+		geospatial_lat_max:missing_value = -1.e+34 ;
+		geospatial_lat_max:_FillValue = -1.e+34 ;
+		geospatial_lat_max:units = "degrees_north" ;
+		geospatial_lat_max:long_name = "northernmost latitude" ;
+		geospatial_lat_max:standard_name = "geospatial_lat_max" ;
+		geospatial_lat_max:ioos_category = "Location" ;
+		geospatial_lat_max:history = "From 492C19881104" ;
+	double time_coverage_start(traj) ;
+		time_coverage_start:missing_value = -1.e+34 ;
+		time_coverage_start:_FillValue = -1.e+34 ;
+		time_coverage_start:units = "seconds since 1970-01-01T00:00:00Z" ;
+		time_coverage_start:long_name = "beginning time" ;
+		time_coverage_start:standard_name = "time_coverage_start" ;
+		time_coverage_start:ioos_category = "Time" ;
+		time_coverage_start:history = "From 492C19881104" ;
+	double time_converage_end(traj) ;
+		time_converage_end:missing_value = -1.e+34 ;
+		time_converage_end:_FillValue = -1.e+34 ;
+		time_converage_end:units = "seconds since 1970-01-01T00:00:00Z" ;
+		time_converage_end:long_name = "ending time" ;
+		time_converage_end:standard_name = "time_converage_end" ;
+		time_converage_end:ioos_category = "Time" ;
+		time_converage_end:history = "From 492C19881104" ;
+	char investigators(traj, STRING1_9) ;
+		investigators:long_name = "investigators" ;
+		investigators:ioos_category = "Identifier" ;
+		investigators:history = "From 492C19881104" ;
+	char socat_version(traj, STRING1_4) ;
+		socat_version:long_name = "SOCAT version" ;
+		socat_version:ioos_category = "Identifier" ;
+		socat_version:history = "From 492C19881104" ;
+	char all_region_ids(traj, STRING1_3) ;
+		all_region_ids:long_name = "alphabetical list of all unique region IDs" ;
+		all_region_ids:ioos_category = "Identifier" ;
+		all_region_ids:history = "From 492C19881104" ;
+	char socat_doi(traj, STRING1_1) ;
+		socat_doi:long_name = "SOCAT DOI of this dataset" ;
+		socat_doi:ioos_category = "Identifier" ;
+		socat_doi:history = "From 492C19881104" ;
+	char qc_flag(traj, STRING1_1) ;
+		qc_flag:long_name = "QC flag" ;
+		qc_flag:ioos_category = "Quality" ;
+		qc_flag:history = "From 492C19881104" ;
+	int nobs_full(traj) ;
+		nobs_full:missing_value = -99 ;
+		nobs_full:_FillValue = -99 ;
+		nobs_full:long_name = "Count in original trajectory" ;
+		nobs_full:history = "From /home/data/socat/socatV3/492C/492C19881104.nc" ;
+	int nobs_deci(traj) ;
+		nobs_deci:missing_value = -99 ;
+		nobs_deci:_FillValue = -99 ;
+		nobs_deci:long_name = "Count in decimated trajectory" ;
+		nobs_deci:note = "Piecewise decimated" ;
+		nobs_deci:history = "From 492C19881104" ;
+	double obs(obs) ;
+		obs:point_spacing = "even" ;
+		obs:axis = "X" ;
+	int year(obs) ;
+		year:missing_value = -1 ;
+		year:_FillValue = -1 ;
+		year:long_name = "year" ;
+		year:ioos_category = "Time" ;
+		year:history = "From 492C19881104" ;
+	int month(obs) ;
+		month:missing_value = -1 ;
+		month:_FillValue = -1 ;
+		month:long_name = "month of year" ;
+		month:ioos_category = "Time" ;
+		month:history = "From 492C19881104" ;
+	int day(obs) ;
+		day:missing_value = -1 ;
+		day:_FillValue = -1 ;
+		day:long_name = "day of month" ;
+		day:ioos_category = "Time" ;
+		day:history = "From 492C19881104" ;
+	int hour(obs) ;
+		hour:missing_value = -1 ;
+		hour:_FillValue = -1 ;
+		hour:long_name = "hour of day" ;
+		hour:ioos_category = "Time" ;
+		hour:history = "From 492C19881104" ;
+	int minute(obs) ;
+		minute:missing_value = -1 ;
+		minute:_FillValue = -1 ;
+		minute:long_name = "minute of hour" ;
+		minute:ioos_category = "Time" ;
+		minute:history = "From 492C19881104" ;
+	double second(obs) ;
+		second:missing_value = -1.e+34 ;
+		second:_FillValue = -1.e+34 ;
+		second:long_name = "second of minute" ;
+		second:ioos_category = "Time" ;
+		second:history = "From 492C19881104" ;
+	double longitude(obs) ;
+		longitude:missing_value = -1.e+34 ;
+		longitude:_FillValue = -1.e+34 ;
+		longitude:units = "degrees_east" ;
+		longitude:long_name = "longitude" ;
+		longitude:standard_name = "longitude" ;
+		longitude:ioos_category = "Location" ;
+		longitude:history = "From 492C19881104" ;
+	double latitude(obs) ;
+		latitude:missing_value = -1.e+34 ;
+		latitude:_FillValue = -1.e+34 ;
+		latitude:units = "degrees_north" ;
+		latitude:long_name = "latitude" ;
+		latitude:standard_name = "latitude" ;
+		latitude:ioos_category = "Location" ;
+		latitude:history = "From 492C19881104" ;
+	double sample_depth(obs) ;
+		sample_depth:missing_value = -1.e+34 ;
+		sample_depth:_FillValue = -1.e+34 ;
+		sample_depth:units = "meters" ;
+		sample_depth:long_name = "sample depth" ;
+		sample_depth:positive = "down" ;
+		sample_depth:standard_name = "depth" ;
+		sample_depth:ioos_category = "Bathymetry" ;
+		sample_depth:history = "From 492C19881104" ;
+	double sal(obs) ;
+		sal:missing_value = -1.e+34 ;
+		sal:_FillValue = -1.e+34 ;
+		sal:units = "PSU" ;
+		sal:long_name = "salinity" ;
+		sal:standard_name = "sea_surface_salinity" ;
+		sal:ioos_category = "Salinity" ;
+		sal:history = "From 492C19881104" ;
+	double Temperature_equi(obs) ;
+		Temperature_equi:missing_value = -1.e+34 ;
+		Temperature_equi:_FillValue = -1.e+34 ;
+		Temperature_equi:units = "degrees C" ;
+		Temperature_equi:long_name = "equilibrator chamber temperature" ;
+		Temperature_equi:ioos_category = "Temperature" ;
+		Temperature_equi:history = "From 492C19881104" ;
+	double temp(obs) ;
+		temp:missing_value = -1.e+34 ;
+		temp:_FillValue = -1.e+34 ;
+		temp:units = "degrees C" ;
+		temp:long_name = "sea surface temperature" ;
+		temp:standard_name = "sea_surface_temperature" ;
+		temp:ioos_category = "Temperature" ;
+		temp:history = "From 492C19881104" ;
+	double Temperature_atm(obs) ;
+		Temperature_atm:missing_value = -1.e+34 ;
+		Temperature_atm:_FillValue = -1.e+34 ;
+		Temperature_atm:units = "degrees C" ;
+		Temperature_atm:long_name = "sea-level air temperature" ;
+		Temperature_atm:standard_name = "air_temperature_at_sea_level" ;
+		Temperature_atm:ioos_category = "Temperature" ;
+		Temperature_atm:history = "From 492C19881104" ;
+	double Pressure_equi(obs) ;
+		Pressure_equi:missing_value = -1.e+34 ;
+		Pressure_equi:_FillValue = -1.e+34 ;
+		Pressure_equi:units = "hPa" ;
+		Pressure_equi:long_name = "equilibrator chamber pressure" ;
+		Pressure_equi:ioos_category = "Pressure" ;
+		Pressure_equi:history = "From 492C19881104" ;
+	double Pressure_atm(obs) ;
+		Pressure_atm:missing_value = -1.e+34 ;
+		Pressure_atm:_FillValue = -1.e+34 ;
+		Pressure_atm:units = "hPa" ;
+		Pressure_atm:long_name = "sea-level air pressure" ;
+		Pressure_atm:standard_name = "air_pressure_at_sea_level" ;
+		Pressure_atm:ioos_category = "Pressure" ;
+		Pressure_atm:history = "From 492C19881104" ;
+	double xCO2_water_equi_temp_dry_ppm(obs) ;
+		xCO2_water_equi_temp_dry_ppm:missing_value = -1.e+34 ;
+		xCO2_water_equi_temp_dry_ppm:_FillValue = -1.e+34 ;
+		xCO2_water_equi_temp_dry_ppm:units = "umol/mol" ;
+		xCO2_water_equi_temp_dry_ppm:long_name = "water xCO2 dry using equi temp" ;
+		xCO2_water_equi_temp_dry_ppm:standard_name = "mole_fraction_of_carbon_dioxide_in_sea_water" ;
+		xCO2_water_equi_temp_dry_ppm:ioos_category = "CO2" ;
+		xCO2_water_equi_temp_dry_ppm:history = "From 492C19881104" ;
+	double xCO2_water_sst_dry_ppm(obs) ;
+		xCO2_water_sst_dry_ppm:missing_value = -1.e+34 ;
+		xCO2_water_sst_dry_ppm:_FillValue = -1.e+34 ;
+		xCO2_water_sst_dry_ppm:units = "umol/mol" ;
+		xCO2_water_sst_dry_ppm:long_name = "water xCO2 dry using sst" ;
+		xCO2_water_sst_dry_ppm:standard_name = "mole_fraction_of_carbon_dioxide_in_sea_water" ;
+		xCO2_water_sst_dry_ppm:ioos_category = "CO2" ;
+		xCO2_water_sst_dry_ppm:history = "From 492C19881104" ;
+	double xCO2_water_equi_temp_wet_ppm(obs) ;
+		xCO2_water_equi_temp_wet_ppm:missing_value = -1.e+34 ;
+		xCO2_water_equi_temp_wet_ppm:_FillValue = -1.e+34 ;
+		xCO2_water_equi_temp_wet_ppm:units = "umol/mol" ;
+		xCO2_water_equi_temp_wet_ppm:long_name = "water xCO2 wet using equi temp" ;
+		xCO2_water_equi_temp_wet_ppm:standard_name = "mole_fraction_of_carbon_dioxide_in_sea_water" ;
+		xCO2_water_equi_temp_wet_ppm:ioos_category = "CO2" ;
+		xCO2_water_equi_temp_wet_ppm:history = "From 492C19881104" ;
+	double xCO2_water_sst_wet_ppm(obs) ;
+		xCO2_water_sst_wet_ppm:missing_value = -1.e+34 ;
+		xCO2_water_sst_wet_ppm:_FillValue = -1.e+34 ;
+		xCO2_water_sst_wet_ppm:units = "umol/mol" ;
+		xCO2_water_sst_wet_ppm:long_name = "water xCO2 wet using sst" ;
+		xCO2_water_sst_wet_ppm:standard_name = "mole_fraction_of_carbon_dioxide_in_sea_water" ;
+		xCO2_water_sst_wet_ppm:ioos_category = "CO2" ;
+		xCO2_water_sst_wet_ppm:history = "From 492C19881104" ;
+	double pCO2_water_equi_temp(obs) ;
+		pCO2_water_equi_temp:missing_value = -1.e+34 ;
+		pCO2_water_equi_temp:_FillValue = -1.e+34 ;
+		pCO2_water_equi_temp:units = "uatm" ;
+		pCO2_water_equi_temp:long_name = "water pCO2 wet using equi temp" ;
+		pCO2_water_equi_temp:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		pCO2_water_equi_temp:ioos_category = "CO2" ;
+		pCO2_water_equi_temp:history = "From 492C19881104" ;
+	double pCO2_water_sst_100humidity_uatm(obs) ;
+		pCO2_water_sst_100humidity_uatm:missing_value = -1.e+34 ;
+		pCO2_water_sst_100humidity_uatm:_FillValue = -1.e+34 ;
+		pCO2_water_sst_100humidity_uatm:units = "uatm" ;
+		pCO2_water_sst_100humidity_uatm:long_name = "water pCO2 wet using sst" ;
+		pCO2_water_sst_100humidity_uatm:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		pCO2_water_sst_100humidity_uatm:ioos_category = "CO2" ;
+		pCO2_water_sst_100humidity_uatm:history = "From 492C19881104" ;
+	double fCO2_water_equi_uatm(obs) ;
+		fCO2_water_equi_uatm:missing_value = -1.e+34 ;
+		fCO2_water_equi_uatm:_FillValue = -1.e+34 ;
+		fCO2_water_equi_uatm:units = "uatm" ;
+		fCO2_water_equi_uatm:long_name = "water fCO2 wet using equi temp" ;
+		fCO2_water_equi_uatm:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_water_equi_uatm:ioos_category = "CO2" ;
+		fCO2_water_equi_uatm:history = "From 492C19881104" ;
+	double fCO2_water_sst_100humidity_uatm(obs) ;
+		fCO2_water_sst_100humidity_uatm:missing_value = -1.e+34 ;
+		fCO2_water_sst_100humidity_uatm:_FillValue = -1.e+34 ;
+		fCO2_water_sst_100humidity_uatm:units = "uatm" ;
+		fCO2_water_sst_100humidity_uatm:long_name = "water fCO2 wet using sst" ;
+		fCO2_water_sst_100humidity_uatm:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_water_sst_100humidity_uatm:ioos_category = "CO2" ;
+		fCO2_water_sst_100humidity_uatm:history = "From 492C19881104" ;
+	double xCO2_atm_dry_actual(obs) ;
+		xCO2_atm_dry_actual:missing_value = -1.e+34 ;
+		xCO2_atm_dry_actual:_FillValue = -1.e+34 ;
+		xCO2_atm_dry_actual:units = "umol/mol" ;
+		xCO2_atm_dry_actual:long_name = "actual air xCO2 dry" ;
+		xCO2_atm_dry_actual:standard_name = "mole_fraction_of_carbon_dioxide_in_air" ;
+		xCO2_atm_dry_actual:ioos_category = "CO2" ;
+		xCO2_atm_dry_actual:history = "From 492C19881104" ;
+	double xCO2_atm_dry_interp(obs) ;
+		xCO2_atm_dry_interp:missing_value = -1.e+34 ;
+		xCO2_atm_dry_interp:_FillValue = -1.e+34 ;
+		xCO2_atm_dry_interp:units = "umol/mol" ;
+		xCO2_atm_dry_interp:long_name = "interpolated air xCO2 dry" ;
+		xCO2_atm_dry_interp:standard_name = "mole_fraction_of_carbon_dioxide_in_air" ;
+		xCO2_atm_dry_interp:ioos_category = "CO2" ;
+		xCO2_atm_dry_interp:history = "From 492C19881104" ;
+	double pCO2_atm_wet_actual(obs) ;
+		pCO2_atm_wet_actual:missing_value = -1.e+34 ;
+		pCO2_atm_wet_actual:_FillValue = -1.e+34 ;
+		pCO2_atm_wet_actual:units = "uatm" ;
+		pCO2_atm_wet_actual:long_name = "actual air pCO2 wet" ;
+		pCO2_atm_wet_actual:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_air" ;
+		pCO2_atm_wet_actual:ioos_category = "CO2" ;
+		pCO2_atm_wet_actual:history = "From 492C19881104" ;
+	double pCO2_atm_wet_interp(obs) ;
+		pCO2_atm_wet_interp:missing_value = -1.e+34 ;
+		pCO2_atm_wet_interp:_FillValue = -1.e+34 ;
+		pCO2_atm_wet_interp:units = "uatm" ;
+		pCO2_atm_wet_interp:long_name = "interpolated air pCO2 wet" ;
+		pCO2_atm_wet_interp:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_air" ;
+		pCO2_atm_wet_interp:ioos_category = "CO2" ;
+		pCO2_atm_wet_interp:history = "From 492C19881104" ;
+	double fCO2_atm_wet_actual(obs) ;
+		fCO2_atm_wet_actual:missing_value = -1.e+34 ;
+		fCO2_atm_wet_actual:_FillValue = -1.e+34 ;
+		fCO2_atm_wet_actual:units = "uatm" ;
+		fCO2_atm_wet_actual:long_name = "actual air fCO2 wet" ;
+		fCO2_atm_wet_actual:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_air" ;
+		fCO2_atm_wet_actual:ioos_category = "CO2" ;
+		fCO2_atm_wet_actual:history = "From 492C19881104" ;
+	double fCO2_atm_wet_interp(obs) ;
+		fCO2_atm_wet_interp:missing_value = -1.e+34 ;
+		fCO2_atm_wet_interp:_FillValue = -1.e+34 ;
+		fCO2_atm_wet_interp:units = "uatm" ;
+		fCO2_atm_wet_interp:long_name = "interpolated air fCO2 wet" ;
+		fCO2_atm_wet_interp:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_air" ;
+		fCO2_atm_wet_interp:ioos_category = "CO2" ;
+		fCO2_atm_wet_interp:history = "From 492C19881104" ;
+	double delta_xCO2(obs) ;
+		delta_xCO2:missing_value = -1.e+34 ;
+		delta_xCO2:_FillValue = -1.e+34 ;
+		delta_xCO2:units = "umol/mol" ;
+		delta_xCO2:long_name = "water xCO2 minus atmospheric xCO2" ;
+		delta_xCO2:ioos_category = "CO2" ;
+		delta_xCO2:history = "From 492C19881104" ;
+	double delta_pCO2(obs) ;
+		delta_pCO2:missing_value = -1.e+34 ;
+		delta_pCO2:_FillValue = -1.e+34 ;
+		delta_pCO2:units = "uatm" ;
+		delta_pCO2:long_name = "water pCO2 minus atmospheric pCO2" ;
+		delta_pCO2:ioos_category = "CO2" ;
+		delta_pCO2:history = "From 492C19881104" ;
+	double delta_fCO2(obs) ;
+		delta_fCO2:missing_value = -1.e+34 ;
+		delta_fCO2:_FillValue = -1.e+34 ;
+		delta_fCO2:units = "uatm" ;
+		delta_fCO2:long_name = "water fCO2 minus atmospheric fCO2" ;
+		delta_fCO2:ioos_category = "CO2" ;
+		delta_fCO2:history = "From 492C19881104" ;
+	double xH2O_equi(obs) ;
+		xH2O_equi:missing_value = -1.e+34 ;
+		xH2O_equi:_FillValue = -1.e+34 ;
+		xH2O_equi:units = "mmol/mol" ;
+		xH2O_equi:long_name = "xH2O in equil air sample" ;
+		xH2O_equi:standard_name = "mole_fraction_of_water_in_air" ;
+		xH2O_equi:ioos_category = "Humidity" ;
+		xH2O_equi:history = "From 492C19881104" ;
+	double relative_humidity(obs) ;
+		relative_humidity:missing_value = -1.e+34 ;
+		relative_humidity:_FillValue = -1.e+34 ;
+		relative_humidity:long_name = "relative humidity" ;
+		relative_humidity:standard_name = "relative_humidity" ;
+		relative_humidity:ioos_category = "Humidity" ;
+		relative_humidity:history = "From 492C19881104" ;
+	double specific_humidity(obs) ;
+		specific_humidity:missing_value = -1.e+34 ;
+		specific_humidity:_FillValue = -1.e+34 ;
+		specific_humidity:long_name = "specific humidity" ;
+		specific_humidity:standard_name = "specific_humidity" ;
+		specific_humidity:ioos_category = "Humidity" ;
+		specific_humidity:history = "From 492C19881104" ;
+	double ship_speed(obs) ;
+		ship_speed:missing_value = -1.e+34 ;
+		ship_speed:_FillValue = -1.e+34 ;
+		ship_speed:units = "knots" ;
+		ship_speed:long_name = "measured ship speed" ;
+		ship_speed:standard_name = "platform_speed_wrt_ground" ;
+		ship_speed:history = "From 492C19881104" ;
+	double ship_dir(obs) ;
+		ship_dir:missing_value = -1.e+34 ;
+		ship_dir:_FillValue = -1.e+34 ;
+		ship_dir:units = "degrees" ;
+		ship_dir:long_name = "ship direction" ;
+		ship_dir:standard_name = "platform_course" ;
+		ship_dir:history = "From 492C19881104" ;
+	double wind_speed_true(obs) ;
+		wind_speed_true:missing_value = -1.e+34 ;
+		wind_speed_true:_FillValue = -1.e+34 ;
+		wind_speed_true:units = "m/s" ;
+		wind_speed_true:long_name = "true wind speed" ;
+		wind_speed_true:standard_name = "wind_speed" ;
+		wind_speed_true:ioos_category = "Wind" ;
+		wind_speed_true:history = "From 492C19881104" ;
+	double wind_speed_rel(obs) ;
+		wind_speed_rel:missing_value = -1.e+34 ;
+		wind_speed_rel:_FillValue = -1.e+34 ;
+		wind_speed_rel:units = "m/s" ;
+		wind_speed_rel:long_name = "relative wind speed" ;
+		wind_speed_rel:standard_name = "wind_speed" ;
+		wind_speed_rel:ioos_category = "Wind" ;
+		wind_speed_rel:history = "From 492C19881104" ;
+	double wind_dir_true(obs) ;
+		wind_dir_true:missing_value = -1.e+34 ;
+		wind_dir_true:_FillValue = -1.e+34 ;
+		wind_dir_true:units = "degrees" ;
+		wind_dir_true:long_name = "true wind direction" ;
+		wind_dir_true:standard_name = "wind_from_direction" ;
+		wind_dir_true:ioos_category = "Wind" ;
+		wind_dir_true:history = "From 492C19881104" ;
+	double wind_dir_rel(obs) ;
+		wind_dir_rel:missing_value = -1.e+34 ;
+		wind_dir_rel:_FillValue = -1.e+34 ;
+		wind_dir_rel:units = "degrees" ;
+		wind_dir_rel:long_name = "relative wind direction" ;
+		wind_dir_rel:standard_name = "wind_from_direction" ;
+		wind_dir_rel:ioos_category = "Wind" ;
+		wind_dir_rel:history = "From 492C19881104" ;
+	double woa_sss(obs) ;
+		woa_sss:missing_value = -1.e+34 ;
+		woa_sss:_FillValue = -1.e+34 ;
+		woa_sss:units = "PSU" ;
+		woa_sss:long_name = "salinity from World Ocean Atlas 2005" ;
+		woa_sss:standard_name = "sea_surface_salinity" ;
+		woa_sss:ioos_category = "Salinity" ;
+		woa_sss:history = "From 492C19881104" ;
+	double pressure_ncep_slp(obs) ;
+		pressure_ncep_slp:missing_value = -1.e+34 ;
+		pressure_ncep_slp:_FillValue = -1.e+34 ;
+		pressure_ncep_slp:units = "hPa" ;
+		pressure_ncep_slp:long_name = "sea level air pressure from NCEP/NCAR reanalysis" ;
+		pressure_ncep_slp:standard_name = "air_pressure_at_sea_level" ;
+		pressure_ncep_slp:ioos_category = "Pressure" ;
+		pressure_ncep_slp:history = "From 492C19881104" ;
+	double fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm(obs) ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm:missing_value = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm:_FillValue = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm:units = "uatm" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm:long_name = "fCO2 from xCO2_water_equi_temp_dry_ppm, Pressure_equi, sal" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm:ioos_category = "CO2" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm:history = "From 492C19881104" ;
+	double fCO2_insitu_from_xCO2_water_sst_dry_ppm(obs) ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm:missing_value = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm:_FillValue = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm:units = "uatm" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm:long_name = "fCO2 from xCO2_water_sst_dry_ppm, Pressure_equi, sal" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm:ioos_category = "CO2" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm:history = "From 492C19881104" ;
+	double fCO2_from_pCO2_water_water_equi_temp(obs) ;
+		fCO2_from_pCO2_water_water_equi_temp:missing_value = -1.e+34 ;
+		fCO2_from_pCO2_water_water_equi_temp:_FillValue = -1.e+34 ;
+		fCO2_from_pCO2_water_water_equi_temp:units = "uatm" ;
+		fCO2_from_pCO2_water_water_equi_temp:long_name = "fCO2 from pCO2_water_equi_temp, Pressure_equi, sal" ;
+		fCO2_from_pCO2_water_water_equi_temp:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_from_pCO2_water_water_equi_temp:ioos_category = "CO2" ;
+		fCO2_from_pCO2_water_water_equi_temp:history = "From 492C19881104" ;
+	double fCO2_from_pCO2_water_sst_100humidity_uatm(obs) ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm:missing_value = -1.e+34 ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm:_FillValue = -1.e+34 ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm:units = "uatm" ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm:long_name = "fCO2 from pCO2_water_sst_100humidity_uatm, Pressure_equi, sal" ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm:ioos_category = "CO2" ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm:history = "From 492C19881104" ;
+	double fCO2_insitu_from_fCO2_water_equi_uatm(obs) ;
+		fCO2_insitu_from_fCO2_water_equi_uatm:missing_value = -1.e+34 ;
+		fCO2_insitu_from_fCO2_water_equi_uatm:_FillValue = -1.e+34 ;
+		fCO2_insitu_from_fCO2_water_equi_uatm:units = "uatm" ;
+		fCO2_insitu_from_fCO2_water_equi_uatm:long_name = "fCO2 from fCO2_water_equi_temp, Pressure_equi, sal" ;
+		fCO2_insitu_from_fCO2_water_equi_uatm:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_insitu_from_fCO2_water_equi_uatm:ioos_category = "CO2" ;
+		fCO2_insitu_from_fCO2_water_equi_uatm:history = "From 492C19881104" ;
+	double fCO2_insitu_from_fCO2_water_sst_100humidty_uatm(obs) ;
+		fCO2_insitu_from_fCO2_water_sst_100humidty_uatm:missing_value = -1.e+34 ;
+		fCO2_insitu_from_fCO2_water_sst_100humidty_uatm:_FillValue = -1.e+34 ;
+		fCO2_insitu_from_fCO2_water_sst_100humidty_uatm:units = "uatm" ;
+		fCO2_insitu_from_fCO2_water_sst_100humidty_uatm:long_name = "fCO2 from fCO2_water_sst_100humidity_uatm, Pressure_equi, sal" ;
+		fCO2_insitu_from_fCO2_water_sst_100humidty_uatm:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_insitu_from_fCO2_water_sst_100humidty_uatm:ioos_category = "CO2" ;
+		fCO2_insitu_from_fCO2_water_sst_100humidty_uatm:history = "From 492C19881104" ;
+	double fCO2_from_pCO2_water_water_equi_temp_ncep(obs) ;
+		fCO2_from_pCO2_water_water_equi_temp_ncep:missing_value = -1.e+34 ;
+		fCO2_from_pCO2_water_water_equi_temp_ncep:_FillValue = -1.e+34 ;
+		fCO2_from_pCO2_water_water_equi_temp_ncep:units = "uatm" ;
+		fCO2_from_pCO2_water_water_equi_temp_ncep:long_name = "fCO2 from pCO2_water_equi_temp, NCEP SLP, sal" ;
+		fCO2_from_pCO2_water_water_equi_temp_ncep:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_from_pCO2_water_water_equi_temp_ncep:ioos_category = "CO2" ;
+		fCO2_from_pCO2_water_water_equi_temp_ncep:history = "From 492C19881104" ;
+	double fCO2_from_pCO2_water_sst_100humidity_uatm_ncep(obs) ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm_ncep:missing_value = -1.e+34 ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm_ncep:_FillValue = -1.e+34 ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm_ncep:units = "uatm" ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm_ncep:long_name = "fCO2 from pCO2_water_sst_100humidity_uatm, NCEP SLP, sal" ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm_ncep:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm_ncep:ioos_category = "CO2" ;
+		fCO2_from_pCO2_water_sst_100humidity_uatm_ncep:history = "From 492C19881104" ;
+	double fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa(obs) ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa:missing_value = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa:_FillValue = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa:units = "uatm" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa:long_name = "fCO2 from xCO2_water_equi_temp_dry_ppm, Pressure_equi, WOA SSS" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa:ioos_category = "CO2" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_woa:history = "From 492C19881104" ;
+	double fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa(obs) ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa:missing_value = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa:_FillValue = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa:units = "uatm" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa:long_name = "fCO2 from xCO2_water_sst_dry_ppm, Pressure_equi, WOA SSS" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa:ioos_category = "CO2" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_woa:history = "From 492C19881104" ;
+	double fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep(obs) ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep:missing_value = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep:_FillValue = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep:units = "uatm" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep:long_name = "fCO2 from xCO2_water_equi_temp_dry_ppm, NCEP SLP, sal" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep:ioos_category = "CO2" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep:history = "From 492C19881104" ;
+	double fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep(obs) ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep:missing_value = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep:_FillValue = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep:units = "uatm" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep:long_name = "fCO2 from xCO2_water_sst_dry_ppm, NCEP SLP, sal" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep:ioos_category = "CO2" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep:history = "From 492C19881104" ;
+	double fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa(obs) ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa:missing_value = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa:_FillValue = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa:units = "uatm" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa:long_name = "fCO2 from xCO2_water_equi_temp_dry_ppm, NCEP SLP, WOA SSS" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa:ioos_category = "CO2" ;
+		fCO2_insitu_from_xCO2_water_equi_temp_dry_ppm_ncep_woa:history = "From 492C19881104" ;
+	double fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa(obs) ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa:missing_value = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa:_FillValue = -1.e+34 ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa:units = "uatm" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa:long_name = "fCO2 from xCO2_water_sst_dry_ppm, NCEP SLP, WOA SSS" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa:ioos_category = "CO2" ;
+		fCO2_insitu_from_xCO2_water_sst_dry_ppm_ncep_woa:history = "From 492C19881104" ;
+	double fCO2_recommended(obs) ;
+		fCO2_recommended:missing_value = -1.e+34 ;
+		fCO2_recommended:_FillValue = -1.e+34 ;
+		fCO2_recommended:units = "uatm" ;
+		fCO2_recommended:long_name = "fCO2 recommended" ;
+		fCO2_recommended:standard_name = "surface_partial_pressure_of_carbon_dioxide_in_sea_water" ;
+		fCO2_recommended:ioos_category = "CO2" ;
+		fCO2_recommended:history = "From 492C19881104" ;
+	int fCO2_source(obs) ;
+		fCO2_source:missing_value = -1 ;
+		fCO2_source:_FillValue = -1 ;
+		fCO2_source:long_name = "Algorithm number for recommended fCO2" ;
+		fCO2_source:ioos_category = "Identifier" ;
+		fCO2_source:history = "From 492C19881104" ;
+	double delta_temp(obs) ;
+		delta_temp:missing_value = -1.e+34 ;
+		delta_temp:_FillValue = -1.e+34 ;
+		delta_temp:units = "degrees C" ;
+		delta_temp:long_name = "Equilibrator Temp - SST" ;
+		delta_temp:ioos_category = "Temperature" ;
+		delta_temp:history = "From 492C19881104" ;
+	double calc_speed(obs) ;
+		calc_speed:missing_value = -1.e+34 ;
+		calc_speed:_FillValue = -1.e+34 ;
+		calc_speed:units = "knots" ;
+		calc_speed:long_name = "calculated ship speed" ;
+		calc_speed:standard_name = "platform_speed_wrt_ground" ;
+		calc_speed:history = "From 492C19881104" ;
+	double etopo2(obs) ;
+		etopo2:missing_value = -1.e+34 ;
+		etopo2:_FillValue = -1.e+34 ;
+		etopo2:units = "meters" ;
+		etopo2:long_name = "bathymetry from ETOPO2" ;
+		etopo2:positive = "down" ;
+		etopo2:standard_name = "sea_floor_depth" ;
+		etopo2:ioos_category = "Bathymetry" ;
+		etopo2:history = "From 492C19881104" ;
+	double gvCO2(obs) ;
+		gvCO2:missing_value = -1.e+34 ;
+		gvCO2:_FillValue = -1.e+34 ;
+		gvCO2:units = "umol/mol" ;
+		gvCO2:long_name = "GlobalView xCO2" ;
+		gvCO2:standard_name = "mole_fraction_of_carbon_dioxide_in_air" ;
+		gvCO2:ioos_category = "CO2" ;
+		gvCO2:history = "From 492C19881104" ;
+	double dist_to_land(obs) ;
+		dist_to_land:missing_value = -1.e+34 ;
+		dist_to_land:_FillValue = -1.e+34 ;
+		dist_to_land:units = "km" ;
+		dist_to_land:long_name = "distance to land" ;
+		dist_to_land:ioos_category = "Location" ;
+		dist_to_land:history = "From 492C19881104" ;
+	double day_of_year(obs) ;
+		day_of_year:missing_value = -1.e+34 ;
+		day_of_year:_FillValue = -1.e+34 ;
+		day_of_year:units = "days" ;
+		day_of_year:long_name = "day of the year" ;
+		day_of_year:ioos_category = "Time" ;
+		day_of_year:history = "From 492C19881104" ;
+	double time(obs) ;
+		time:missing_value = -1.e+34 ;
+		time:_FillValue = -1.e+34 ;
+		time:units = "seconds since 1970-01-01T00:00:00Z" ;
+		time:long_name = "time" ;
+		time:standard_name = "time" ;
+		time:ioos_category = "Time" ;
+		time:time_origin = "01-JAN-1970 00:00:00" ;
+		time:history = "From 492C19881104" ;
+	double lon360(obs) ;
+		lon360:missing_value = -1.e+34 ;
+		lon360:_FillValue = -1.e+34 ;
+		lon360:long_name = "longitude" ;
+		lon360:units = "degrees_east" ;
+		lon360:ioos_category = "Location" ;
+		lon360:standard_name = "Longitude" ;
+		lon360:history = "added to /home/data/socat/socatV3/492C/492C19881104.nc" ;
+	int sample_number(obs) ;
+		sample_number:missing_value = -1 ;
+		sample_number:_FillValue = -1 ;
+		sample_number:long_name = "sequence number for decimated dataset" ;
+		sample_number:history = "From 492C19881104" ;
+	char WOCE_CO2_water(obs, STRING1_1) ;
+		WOCE_CO2_water:long_name = "WOCE flag for water CO2" ;
+		WOCE_CO2_water:ioos_category = "Quality" ;
+		WOCE_CO2_water:history = "From 492C19881104" ;
+	char WOCE_CO2_atm(obs, STRING1_1) ;
+		WOCE_CO2_atm:long_name = "WOCE flag for air CO2" ;
+		WOCE_CO2_atm:ioos_category = "Quality" ;
+		WOCE_CO2_atm:history = "From 492C19881104" ;
+	char region_id(obs, STRING1_1) ;
+		region_id:long_name = "SOCAT region ID" ;
+		region_id:ioos_category = "Identifier" ;
+		region_id:history = "From 492C19881104" ;
+	char tmonth(obs, STRING1_3) ;
+		tmonth:long_name = "month of year" ;
+		tmonth:history = "added to /home/data/socat/socatV3/492C/492C19881104.nc" ;
+
+// global attributes:
+		:history = "PyFerret V7.1 (beta/debug) 18-Apr-17" ;
+		: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_outline_poly.jnl
 *** Running ferret script: bn_contourcolor.jnl
+*** Running ferret script: bn_inf2missing.jnl
 *** Running python script: testgetstrdata.py
 *** Running python script: testferregion.py
 *** Running python script: testferdset.py
diff --git a/bench/test_results/startup_tests2.pdf b/bench/test_results/startup_tests2.pdf
index 7251524..89f3378 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 c3eb7c1..cb2bb8c 100644
Binary files a/bench/test_results/testbackground.gif and b/bench/test_results/testbackground.gif differ
diff --git a/bench/test_results/testbackground.png b/bench/test_results/testbackground.png
index 97e1cd1..6e9c719 100644
Binary files a/bench/test_results/testbackground.png and b/bench/test_results/testbackground.png differ
diff --git a/bench/test_results/testfermethods_contour.pdf b/bench/test_results/testfermethods_contour.pdf
index dc610dd..9991ad3 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 a23cc4c..8554d98 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 5c6a21e..6040f97 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 240b4c7..738e956 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 69394fa..7a296c4 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 82d24a7..ed22f7b 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 f5857a4..b116afb 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 37f5902..51cba2e 100644
Binary files a/bench/test_results/timetics2.pdf and b/bench/test_results/timetics2.pdf differ
diff --git a/bench/test_results/vec_curv2.pdf b/bench/test_results/vec_curv2.pdf
index e68c087..1394ad8 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 14c1c0e..9145517 100644
Binary files a/bench/test_results/viewaxes.pdf and b/bench/test_results/viewaxes.pdf differ
diff --git a/bench/testferaggdset.py b/bench/testferaggdset.py
index 07ba108..5b560b8 100644
--- a/bench/testferaggdset.py
+++ b/bench/testferaggdset.py
@@ -1,38 +1,64 @@
 # To be run in python after importing and starting pyferret
 # such as from running "pyferret -python"
 
+from __future__ import print_function
+
 import sys ; sys.ps1 = '' ; sys.ps2 = ''
-print
+print()
 
-print ">>> dsetnames = ['./ens1.nc', './ens2.nc', './ens3.nc', './ens4.nc']"
+print(">>> dsetnames = ['./ens1.nc', './ens2.nc', './ens3.nc', './ens4.nc']")
 dsetnames = ['./ens1.nc', './ens2.nc', './ens3.nc', './ens4.nc']
-print ">>> fourfiles = pyferret.FerAggDSet(name='fourfiles', dsets=dsetnames, along='E')"
+
+print(">>> onefileagg = pyferret.FerAggDSet(name='onefileagg', dsets=dsetnames[-1:], along='E')")
+onefileagg = pyferret.FerAggDSet(name='onefileagg', dsets=dsetnames[-1:], along='E')
+print(">>> pyferret.showdata()")
+pyferret.showdata()
+print(">>> print str(onefileagg)")
+print(str(onefileagg))
+print(">>> onefileagg.close()")
+onefileagg.close()
+print(">>> pyferret.showdata()")
+pyferret.showdata()
+print(">>> print str(onefileagg)")
+print(str(onefileagg))
+
+print(">>> twofileagg = pyferret.FerAggDSet(name='twofileagg', dsets=dsetnames[-2:], along='E', hide=True)")
+twofileagg = pyferret.FerAggDSet(name='twofileagg', dsets=dsetnames[-2:], along='E', hide=True)
+print(">>> pyferret.showdata()")
+pyferret.showdata()
+print(">>> print str(twofileagg)")
+print(str(twofileagg))
+print(">>> twofileagg.close()")
+twofileagg.close()
+print(">>> pyferret.showdata()")
+pyferret.showdata()
+print(">>> print str(twofileagg)")
+print(str(twofileagg))
+
+print(">>> fourfiles = pyferret.FerAggDSet(name='fourfiles', dsets=dsetnames, along='E')")
 fourfiles = pyferret.FerAggDSet(name='fourfiles', dsets=dsetnames, along='E')
-print ">>> fourfiles.show()"
+print(">>> pyferret.showdata()")
+pyferret.showdata()
+print(">>> fourfiles.show()")
 fourfiles.show()
-print ">>> print str(fourfiles)"
-print str(fourfiles)
-print ">>> dir(fourfiles)"
-dir(fourfiles)
-print ">>> fourfiles.getdsetnames()"
+print(">>> print str(fourfiles)")
+print(str(fourfiles))
+print(">>> fourfiles.getdsetnames()")
 fourfiles.getdsetnames()
-print ">>> fourfiles.getdsets()"
+print(">>> fourfiles.getdsets()")
 fourfiles.getdsets()
 
-print ">>> fourfiles.SST.showgrid()"
+print(">>> fourfiles.SST.showgrid()")
 fourfiles.SST.showgrid()
 
-print ">>> fourfiles.close()"
+print(">>> fourfiles.close()")
 fourfiles.close()
-print ">>> print str(fourfiles)"
-print str(fourfiles)
-print ">>> dir(fourfiles)"
-dir(fourfiles)
-print ">>> fourfiles.getdsetnames()"
+print(">>> print str(fourfiles)")
+print(str(fourfiles))
+print(">>> fourfiles.getdsetnames()")
 fourfiles.getdsetnames()
-print ">>> fourfiles.getdsets()"
+print(">>> fourfiles.getdsets()")
 fourfiles.getdsets()
-
-print ">>> del fourfiles"
-del fourfiles
+print(">>> pyferret.showdata()")
+pyferret.showdata()
 
diff --git a/bench/testferaxis.py b/bench/testferaxis.py
index 4d47377..1e4e8a8 100644
--- a/bench/testferaxis.py
+++ b/bench/testferaxis.py
@@ -1,152 +1,155 @@
 # To be run in python after importing and starting pyferret
 # such as from running "pyferret -python"
 
+from __future__ import print_function
+
 import numpy
+
 import sys ; sys.ps1 = '' ; sys.ps2 = ''
-print
+print()
 
-print ">>> normax = pyferret.FerAxis()"
+print(">>> normax = pyferret.FerAxis()")
 normax = pyferret.FerAxis()
-print ">>> print repr(normax)"
-print repr(normax)
-print ">>> dir(normax)"
+print(">>> print repr(normax)")
+print(repr(normax))
+print(">>> dir(normax)")
 dir(normax)
 
-print ">>> coads = pyferret.FerDSet('coads_climatology')"
+print(">>> coads = pyferret.FerDSet('coads_climatology')")
 coads = pyferret.FerDSet('coads_climatology')
-print ">>> coads.sst.load()"
+print(">>> coads.sst.load()")
 coads.sst.load()
-print ">>> sstaxes = coads.sst.grid.axes"
+print(">>> sstaxes = coads.sst.grid.axes")
 sstaxes = coads.sst.grid.axes
-print ">>> print repr(sstaxes)"
-print repr(sstaxes)
-print ">>> normax == sstaxes[0]"
+print(">>> print repr(sstaxes)")
+print(repr(sstaxes))
+print(">>> normax == sstaxes[0]")
 normax == sstaxes[0]
-print ">>> normax != sstaxes[1]"
+print(">>> normax != sstaxes[1]")
 normax != sstaxes[1]
-print ">>> normax == sstaxes[2]"
+print(">>> normax == sstaxes[2]")
 normax == sstaxes[2]
-print ">>> normax != sstaxes[3]"
+print(">>> normax != sstaxes[3]")
 normax != sstaxes[3]
 
-print ">>> print repr(sstaxes[0].axtype)"
-print repr(sstaxes[0].axtype)
-print ">>> print repr(sstaxes[0].coords)"
-print repr(sstaxes[0].coords)
-print ">>> print repr(sstaxes[0].unit)"
-print repr(sstaxes[0].unit)
-print ">>> print repr(sstaxes[0].name)"
-print repr(sstaxes[0].name)
+print(">>> print repr(sstaxes[0].axtype)")
+print(repr(sstaxes[0].axtype))
+print(">>> print repr(sstaxes[0].coords)")
+print(repr(sstaxes[0].coords))
+print(">>> print repr(sstaxes[0].unit)")
+print(repr(sstaxes[0].unit))
+print(">>> print repr(sstaxes[0].name)")
+print(repr(sstaxes[0].name))
 
-print ">>> print repr(sstaxes[1].axtype)"
-print repr(sstaxes[1].axtype)
-print ">>> print repr(sstaxes[1].coords)"
-print repr(sstaxes[1].coords)
-print ">>> print repr(sstaxes[1].unit)"
-print repr(sstaxes[1].unit)
-print ">>> print repr(sstaxes[1].name)"
-print repr(sstaxes[1].name)
+print(">>> print repr(sstaxes[1].axtype)")
+print(repr(sstaxes[1].axtype))
+print(">>> print repr(sstaxes[1].coords)")
+print(repr(sstaxes[1].coords))
+print(">>> print repr(sstaxes[1].unit)")
+print(repr(sstaxes[1].unit))
+print(">>> print repr(sstaxes[1].name)")
+print(repr(sstaxes[1].name))
 
-print ">>> print repr(sstaxes[2].axtype)"
-print repr(sstaxes[2].axtype)
-print ">>> print repr(sstaxes[2].coords)"
-print repr(sstaxes[2].coords)
-print ">>> print repr(sstaxes[2].unit)"
-print repr(sstaxes[2].unit)
-print ">>> print repr(sstaxes[2].name)"
-print repr(sstaxes[2].name)
+print(">>> print repr(sstaxes[2].axtype)")
+print(repr(sstaxes[2].axtype))
+print(">>> print repr(sstaxes[2].coords)")
+print(repr(sstaxes[2].coords))
+print(">>> print repr(sstaxes[2].unit)")
+print(repr(sstaxes[2].unit))
+print(">>> print repr(sstaxes[2].name)")
+print(repr(sstaxes[2].name))
 
-print ">>> print repr(sstaxes[3].axtype)"
-print repr(sstaxes[3].axtype)
-print ">>> print repr(sstaxes[3].coords)"
-print repr(sstaxes[3].coords)
-print ">>> print repr(sstaxes[3].unit)"
-print repr(sstaxes[3].unit)
-print ">>> print repr(sstaxes[3].name)"
-print repr(sstaxes[3].name)
+print(">>> print repr(sstaxes[3].axtype)")
+print(repr(sstaxes[3].axtype))
+print(">>> print repr(sstaxes[3].coords)")
+print(repr(sstaxes[3].coords))
+print(">>> print repr(sstaxes[3].unit)")
+print(repr(sstaxes[3].unit))
+print(">>> print repr(sstaxes[3].name)")
+print(repr(sstaxes[3].name))
 
-print ">>> dupaxis = sstaxes[0].copy()"
+print(">>> dupaxis = sstaxes[0].copy()")
 dupaxis = sstaxes[0].copy()
-print ">>> dupaxis is sstaxes[0]"
+print(">>> dupaxis is sstaxes[0]")
 dupaxis is sstaxes[0]
-print ">>> dupaxis == sstaxes[0]"
+print(">>> dupaxis == sstaxes[0]")
 dupaxis == sstaxes[0]
-print ">>> dupaxis.coords is sstaxes[0].coords"
+print(">>> dupaxis.coords is sstaxes[0].coords")
 dupaxis.coords is sstaxes[0].coords
-print ">>> numpy.allclose(dupaxis.coords, sstaxes[0].coords)"
+print(">>> numpy.allclose(dupaxis.coords, sstaxes[0].coords)")
 numpy.allclose(dupaxis.coords, sstaxes[0].coords)
 
-print ">>> dupaxis = sstaxes[3].copy()"
+print(">>> dupaxis = sstaxes[3].copy()")
 dupaxis = sstaxes[3].copy()
-print ">>> dupaxis is sstaxes[3]"
+print(">>> dupaxis is sstaxes[3]")
 dupaxis is sstaxes[3]
-print ">>> dupaxis == sstaxes[3]"
+print(">>> dupaxis == sstaxes[3]")
 dupaxis == sstaxes[3]
-print ">>> dupaxis.coords is sstaxes[3].coords"
+print(">>> dupaxis.coords is sstaxes[3].coords")
 dupaxis.coords is sstaxes[3].coords
-print ">>> numpy.allclose(dupaxis.coords, sstaxes[3].coords)"
+print(">>> numpy.allclose(dupaxis.coords, sstaxes[3].coords)")
 numpy.allclose(dupaxis.coords, sstaxes[3].coords)
 
-print ">>> print repr(pyferret.FerAxis._parsegeoval(None))"
-print repr(pyferret.FerAxis._parsegeoval(None))
-print ">>> print repr(pyferret.FerAxis._parsegeoval(0))"
-print repr(pyferret.FerAxis._parsegeoval(0))
-print ">>> print repr(pyferret.FerAxis._parsegeoval(0.0))"
-print repr(pyferret.FerAxis._parsegeoval(0.0))
-print ">>> print repr(pyferret.FerAxis._parsegeoval('0'))"
-print repr(pyferret.FerAxis._parsegeoval('0'))
-print ">>> print repr(pyferret.FerAxis._parsegeoval('5E'))"
-print repr(pyferret.FerAxis._parsegeoval('5E'))
-print ">>> print repr(pyferret.FerAxis._parsegeoval('6W'))"
-print repr(pyferret.FerAxis._parsegeoval('6W'))
-print ">>> print repr(pyferret.FerAxis._parsegeoval('7N'))"
-print repr(pyferret.FerAxis._parsegeoval('7N'))
-print ">>> print repr(pyferret.FerAxis._parsegeoval('8S'))"
-print repr(pyferret.FerAxis._parsegeoval('8S'))
-print ">>> print repr(pyferret.FerAxis._parsegeoval('9m'))"
-print repr(pyferret.FerAxis._parsegeoval('9m'))
-print ">>> print repr(pyferret.FerAxis._parsegeoval('03-APR-2005 06:07:08'))"
-print repr(pyferret.FerAxis._parsegeoval('03-APR-2005 06:07:08'))
-print ">>> print repr(pyferret.FerAxis._parsegeoval('03-APR-2005 06:07'))"
-print repr(pyferret.FerAxis._parsegeoval('03-APR-2005 06:07'))
-print ">>> print repr(pyferret.FerAxis._parsegeoval('03-APR-2005'))"
-print repr(pyferret.FerAxis._parsegeoval('03-APR-2005'))
-print ">>> print repr(pyferret.FerAxis._parsegeoval('2003-04-05T06:07:08'))"
-print repr(pyferret.FerAxis._parsegeoval('2003-04-05T06:07:08'))
-print ">>> print repr(pyferret.FerAxis._parsegeoval('2003-04-05T06:07'))"
-print repr(pyferret.FerAxis._parsegeoval('2003-04-05T06:07'))
-print ">>> print repr(pyferret.FerAxis._parsegeoval('2003-04-05 06:07:08'))"
-print repr(pyferret.FerAxis._parsegeoval('2003-04-05 06:07:08'))
-print ">>> print repr(pyferret.FerAxis._parsegeoval('2003-04-05 06:07'))"
-print repr(pyferret.FerAxis._parsegeoval('2003-04-05 06:07'))
-print ">>> print repr(pyferret.FerAxis._parsegeoval('2003-04-05'))"
-print repr(pyferret.FerAxis._parsegeoval('2003-04-05'))
-print ">>> print repr(pyferret.FerAxis._parsegeoval('4y', istimestep=True))"
-print repr(pyferret.FerAxis._parsegeoval('4y', istimestep=True))
-print ">>> print repr(pyferret.FerAxis._parsegeoval('6d', istimestep=True))"
-print repr(pyferret.FerAxis._parsegeoval('6d', istimestep=True))
-print ">>> print repr(pyferret.FerAxis._parsegeoval('7h', istimestep=True))"
-print repr(pyferret.FerAxis._parsegeoval('7h', istimestep=True))
-print ">>> print repr(pyferret.FerAxis._parsegeoval('8m', istimestep=True))"
-print repr(pyferret.FerAxis._parsegeoval('8m', istimestep=True))
-print ">>> print repr(pyferret.FerAxis._parsegeoval('9s', istimestep=True))"
-print repr(pyferret.FerAxis._parsegeoval('9s', istimestep=True))
-print ">>> print repr(pyferret.FerAxis._parsegeoval('1', istimestep=True))"
-print repr(pyferret.FerAxis._parsegeoval('1', istimestep=True))
+print(">>> print repr(pyferret.FerAxis._parsegeoval(None))")
+print(repr(pyferret.FerAxis._parsegeoval(None)))
+print(">>> print repr(pyferret.FerAxis._parsegeoval(0))")
+print(repr(pyferret.FerAxis._parsegeoval(0)))
+print(">>> print repr(pyferret.FerAxis._parsegeoval(0.0))")
+print(repr(pyferret.FerAxis._parsegeoval(0.0)))
+print(">>> print repr(pyferret.FerAxis._parsegeoval('0'))")
+print(repr(pyferret.FerAxis._parsegeoval('0')))
+print(">>> print repr(pyferret.FerAxis._parsegeoval('5E'))")
+print(repr(pyferret.FerAxis._parsegeoval('5E')))
+print(">>> print repr(pyferret.FerAxis._parsegeoval('6W'))")
+print(repr(pyferret.FerAxis._parsegeoval('6W')))
+print(">>> print repr(pyferret.FerAxis._parsegeoval('7N'))")
+print(repr(pyferret.FerAxis._parsegeoval('7N')))
+print(">>> print repr(pyferret.FerAxis._parsegeoval('8S'))")
+print(repr(pyferret.FerAxis._parsegeoval('8S')))
+print(">>> print repr(pyferret.FerAxis._parsegeoval('9m'))")
+print(repr(pyferret.FerAxis._parsegeoval('9m')))
+print(">>> print repr(pyferret.FerAxis._parsegeoval('03-APR-2005 06:07:08'))")
+print(repr(pyferret.FerAxis._parsegeoval('03-APR-2005 06:07:08')))
+print(">>> print repr(pyferret.FerAxis._parsegeoval('03-APR-2005 06:07'))")
+print(repr(pyferret.FerAxis._parsegeoval('03-APR-2005 06:07')))
+print(">>> print repr(pyferret.FerAxis._parsegeoval('03-APR-2005'))")
+print(repr(pyferret.FerAxis._parsegeoval('03-APR-2005')))
+print(">>> print repr(pyferret.FerAxis._parsegeoval('2003-04-05T06:07:08'))")
+print(repr(pyferret.FerAxis._parsegeoval('2003-04-05T06:07:08')))
+print(">>> print repr(pyferret.FerAxis._parsegeoval('2003-04-05T06:07'))")
+print(repr(pyferret.FerAxis._parsegeoval('2003-04-05T06:07')))
+print(">>> print repr(pyferret.FerAxis._parsegeoval('2003-04-05 06:07:08'))")
+print(repr(pyferret.FerAxis._parsegeoval('2003-04-05 06:07:08')))
+print(">>> print repr(pyferret.FerAxis._parsegeoval('2003-04-05 06:07'))")
+print(repr(pyferret.FerAxis._parsegeoval('2003-04-05 06:07')))
+print(">>> print repr(pyferret.FerAxis._parsegeoval('2003-04-05'))")
+print(repr(pyferret.FerAxis._parsegeoval('2003-04-05')))
+print(">>> print repr(pyferret.FerAxis._parsegeoval('4y', istimestep=True))")
+print(repr(pyferret.FerAxis._parsegeoval('4y', istimestep=True)))
+print(">>> print repr(pyferret.FerAxis._parsegeoval('6d', istimestep=True))")
+print(repr(pyferret.FerAxis._parsegeoval('6d', istimestep=True)))
+print(">>> print repr(pyferret.FerAxis._parsegeoval('7h', istimestep=True))")
+print(repr(pyferret.FerAxis._parsegeoval('7h', istimestep=True)))
+print(">>> print repr(pyferret.FerAxis._parsegeoval('8m', istimestep=True))")
+print(repr(pyferret.FerAxis._parsegeoval('8m', istimestep=True)))
+print(">>> print repr(pyferret.FerAxis._parsegeoval('9s', istimestep=True))")
+print(repr(pyferret.FerAxis._parsegeoval('9s', istimestep=True)))
+print(">>> print repr(pyferret.FerAxis._parsegeoval('1', istimestep=True))")
+print(repr(pyferret.FerAxis._parsegeoval('1', istimestep=True)))
 
 
-print ">>> print repr(pyferret.FerAxis._parsegeoslice( slice(5,23,2) ))"
-print repr(pyferret.FerAxis._parsegeoslice( slice(5,23,2) ))
-print ">>> print repr(pyferret.FerAxis._parsegeoslice( slice(-5.0,15.0,4.0) ))"
-print repr(pyferret.FerAxis._parsegeoslice( slice(-5.0,15.0,4.0) ))
-print ">>> print repr(pyferret.FerAxis._parsegeoslice( slice('-6','11','5') ))"
-print repr(pyferret.FerAxis._parsegeoslice( slice('-6','11','5') ))
-print ">>> print repr(pyferret.FerAxis._parsegeoslice( slice('25W','35E',5) ))"
-print repr(pyferret.FerAxis._parsegeoslice( slice('25W','35E',5) ))
-print ">>> print repr(pyferret.FerAxis._parsegeoslice( slice('15S','30N',3) ))"
-print repr(pyferret.FerAxis._parsegeoslice( slice('15S','30N',3) ))
-print ">>> print repr(pyferret.FerAxis._parsegeoslice( slice('-900m','-100m','50m') ))"
-print repr(pyferret.FerAxis._parsegeoslice( slice('-900m','-100m','50m') ))
-print ">>> print repr(pyferret.FerAxis._parsegeoslice( slice('03-APR-2005 11:30','23-JUL-2006 23:30','12h') ))"
-print repr(pyferret.FerAxis._parsegeoslice( slice('03-APR-2005 11:30','23-JUL-2006 23:30','12h') ))
+print(">>> print repr(pyferret.FerAxis._parsegeoslice( slice(5,23,2) ))")
+print(repr(pyferret.FerAxis._parsegeoslice( slice(5,23,2) )))
+print(">>> print repr(pyferret.FerAxis._parsegeoslice( slice(-5.0,15.0,4.0) ))")
+print(repr(pyferret.FerAxis._parsegeoslice( slice(-5.0,15.0,4.0) )))
+print(">>> print repr(pyferret.FerAxis._parsegeoslice( slice('-6','11','5') ))")
+print(repr(pyferret.FerAxis._parsegeoslice( slice('-6','11','5') )))
+print(">>> print repr(pyferret.FerAxis._parsegeoslice( slice('25W','35E',5) ))")
+print(repr(pyferret.FerAxis._parsegeoslice( slice('25W','35E',5) )))
+print(">>> print repr(pyferret.FerAxis._parsegeoslice( slice('15S','30N',3) ))")
+print(repr(pyferret.FerAxis._parsegeoslice( slice('15S','30N',3) )))
+print(">>> print repr(pyferret.FerAxis._parsegeoslice( slice('-900m','-100m','50m') ))")
+print(repr(pyferret.FerAxis._parsegeoslice( slice('-900m','-100m','50m') )))
+print(">>> print repr(pyferret.FerAxis._parsegeoslice( slice('03-APR-2005 11:30','23-JUL-2006 23:30','12h') ))")
+print(repr(pyferret.FerAxis._parsegeoslice( slice('03-APR-2005 11:30','23-JUL-2006 23:30','12h') )))
 
diff --git a/bench/testferdset.py b/bench/testferdset.py
index 69856b0..48a3da1 100644
--- a/bench/testferdset.py
+++ b/bench/testferdset.py
@@ -1,74 +1,68 @@
 # To be run in python after importing and starting pyferret
 # such as from running "pyferret -python"
 
+from __future__ import print_function
+
 import sys ; sys.ps1 = '' ; sys.ps2 = ''
-print
+print()
 
-print ">>> coads = pyferret.FerDSet('coads_climatology.cdf')"
+print(">>> coads = pyferret.FerDSet('coads_climatology.cdf')")
 coads = pyferret.FerDSet('coads_climatology.cdf')
-print ">>> str(coads)"
+print(">>> str(coads)")
 str(coads)
-print ">>> dir(coads)"
+print(">>> dir(coads)")
 dir(coads)
-print ">>> coads.show()"
+print(">>> coads.show()")
 coads.show()
 
-print ">>> coads_uw  = pyferret.FerDSet('coads_uw.nc')"
+print(">>> coads_uw  = pyferret.FerDSet('coads_uw.nc')")
 coads_uw  = pyferret.FerDSet('coads_uw.nc')
-print ">>> str(coads_uw)"
+print(">>> str(coads_uw)")
 str(coads_uw)
-print ">>> dir(coads_uw)"
+print(">>> dir(coads_uw)")
 dir(coads_uw)
-print ">>> coads_uw.show(brief=False)"
+print(">>> coads_uw.show(brief=False)")
 coads_uw.show(brief=False)
 
-print ">>> try:"
-print "...     pyferret.FerDSet(None)"
-print "...     print 'No error found'"
-print "... except ValueError as ex:"
-print "...     print 'ValueError caught with message ' + str(ex)"
+print(">>> try:")
+print("...     pyferret.FerDSet(None)")
+print("...     print 'No error found'")
+print("... except ValueError as ex:")
+print("...     print 'ValueError caught with message ' + str(ex)")
 try:
     pyferret.FerDSet(None)
-    print 'No error found'
+    print('No error found')
 except ValueError as ex:
-    print 'ValueError caught with message: ' + str(ex)
+    print('ValueError caught with message: ' + str(ex))
 
-print ">>> pyferret.anondset.sstcopy = coads.sst"
+print(">>> pyferret.anondset.sstcopy = coads.sst")
 pyferret.anondset.sstcopy = coads.sst
-print ">>> pyferret.anondset.show()"
+print(">>> pyferret.anondset.show()")
 pyferret.anondset.show()
 
-print ">>> pyferret.showdata(brief=False)"
+print(">>> pyferret.showdata(brief=False)")
 pyferret.showdata(brief=False)
-print ">>> coads_uw.close()"
+print(">>> coads_uw.close()")
 coads_uw.close()
-print ">>> pyferret.showdata()"
-pyferret.showdata()
-print ">>> del coads_uw"
-del coads_uw
-print ">>> pyferret.showdata()"
+print(">>> pyferret.showdata()")
 pyferret.showdata()
-print ">>> coads.close()"
+print(">>> coads.close()")
 coads.close()
-print ">>> pyferret.showdata()"
+print(">>> pyferret.showdata()")
 pyferret.showdata()
-print ">>> coads.close()"
+print(">>> coads.close()")
 coads.close()
-print ">>> pyferret.showdata()"
-pyferret.showdata()
-print ">>> del coads"
-del coads
-print ">>> pyferret.showdata()"
+print(">>> pyferret.showdata()")
 pyferret.showdata()
 
-print ">>> dir(pyferret.anondset)"
+print(">>> dir(pyferret.anondset)")
 dir(pyferret.anondset)
-print ">>> pyferret.anondset.show()"
+print(">>> pyferret.anondset.show()")
 pyferret.anondset.show()
-print ">>> pyferret.anondset.close()"
+print(">>> pyferret.anondset.close()")
 pyferret.anondset.close()
-print ">>> dir(pyferret.anondset)"
+print(">>> dir(pyferret.anondset)")
 dir(pyferret.anondset)
-print ">>> pyferret.anondset.show()"
+print(">>> pyferret.anondset.show()")
 pyferret.anondset.show()
 
diff --git a/bench/testfergrid.py b/bench/testfergrid.py
index 7627d34..a0e0b7d 100644
--- a/bench/testfergrid.py
+++ b/bench/testfergrid.py
@@ -1,79 +1,82 @@
 # To be run in python after importing and starting pyferret
 # such as from running "pyferret -python"
 
+from __future__ import print_function
+
 import numpy
+
 import sys ; sys.ps1 = '' ; sys.ps2 = ''
-print
+print()
 
-print ">>> nogrid = pyferret.FerGrid()"
+print(">>> nogrid = pyferret.FerGrid()")
 nogrid = pyferret.FerGrid()
-print ">>> print repr(nogrid)"
-print repr(nogrid)
-print ">>> dir(nogrid)"
+print(">>> print repr(nogrid)")
+print(repr(nogrid))
+print(">>> dir(nogrid)")
 dir(nogrid)
 
-print ">>> coads = pyferret.FerDSet('coads_climatology')"
+print(">>> coads = pyferret.FerDSet('coads_climatology')")
 coads = pyferret.FerDSet('coads_climatology')
-print ">>> coads.sst.load()"
+print(">>> coads.sst.load()")
 coads.sst.load()
-print ">>> coadsgrid = coads.sst.grid"
+print(">>> coadsgrid = coads.sst.grid")
 coadsgrid = coads.sst.grid
-print ">>> print repr(coadsgrid)"
-print repr(coadsgrid)
-print ">>> nogrid == coadsgrid"
+print(">>> print repr(coadsgrid)")
+print(repr(coadsgrid))
+print(">>> nogrid == coadsgrid")
 nogrid == coadsgrid
-print ">>> nogrid != coadsgrid"
+print(">>> nogrid != coadsgrid")
 nogrid != coadsgrid
 
-print ">>> dupgrid = coadsgrid.copy()"
+print(">>> dupgrid = coadsgrid.copy()")
 dupgrid = coadsgrid.copy()
-print ">>> dupgrid is coadsgrid"
+print(">>> dupgrid is coadsgrid")
 dupgrid is coadsgrid
-print ">>> dupgrid == coadsgrid"
+print(">>> dupgrid == coadsgrid")
 dupgrid == coadsgrid
-print ">>> dupgrid.axes[0] is coadsgrid.axes[0]"
+print(">>> dupgrid.axes[0] is coadsgrid.axes[0]")
 dupgrid.axes[0] is coadsgrid.axes[0]
-print ">>> dupgrid.axes[0] == coadsgrid.axes[0]"
+print(">>> dupgrid.axes[0] == coadsgrid.axes[0]")
 dupgrid.axes[0] == coadsgrid.axes[0]
-print ">>> dupgrid.axes[1] is coadsgrid.axes[1]"
+print(">>> dupgrid.axes[1] is coadsgrid.axes[1]")
 dupgrid.axes[1] is coadsgrid.axes[1]
-print ">>> dupgrid.axes[1] == coadsgrid.axes[1]"
+print(">>> dupgrid.axes[1] == coadsgrid.axes[1]")
 dupgrid.axes[1] == coadsgrid.axes[1]
-print ">>> dupgrid.axes[2] is coadsgrid.axes[2]"
+print(">>> dupgrid.axes[2] is coadsgrid.axes[2]")
 dupgrid.axes[2] is coadsgrid.axes[2]
-print ">>> dupgrid.axes[2] == coadsgrid.axes[2]"
+print(">>> dupgrid.axes[2] == coadsgrid.axes[2]")
 dupgrid.axes[2] == coadsgrid.axes[2]
-print ">>> dupgrid.axes[3] is coadsgrid.axes[3]"
+print(">>> dupgrid.axes[3] is coadsgrid.axes[3]")
 dupgrid.axes[0] is coadsgrid.axes[0]
-print ">>> dupgrid.axes[3] == coadsgrid.axes[3]"
+print(">>> dupgrid.axes[3] == coadsgrid.axes[3]")
 dupgrid.axes[3] == coadsgrid.axes[3]
-print ">>> dupgrid.axes[4] is coadsgrid.axes[4]"
+print(">>> dupgrid.axes[4] is coadsgrid.axes[4]")
 dupgrid.axes[4] is coadsgrid.axes[4]
-print ">>> dupgrid.axes[4] == coadsgrid.axes[4]"
+print(">>> dupgrid.axes[4] == coadsgrid.axes[4]")
 dupgrid.axes[4] == coadsgrid.axes[4]
-print ">>> dupgrid.axes[5] is coadsgrid.axes[5]"
+print(">>> dupgrid.axes[5] is coadsgrid.axes[5]")
 dupgrid.axes[0] is coadsgrid.axes[0]
-print ">>> dupgrid.axes[5] == coadsgrid.axes[5]"
+print(">>> dupgrid.axes[5] == coadsgrid.axes[5]")
 dupgrid.axes[5] == coadsgrid.axes[5]
 
-print ">>> freqax = pyferret.FerAxis(axtype=pyferret.AXISTYPE_CUSTOM,coords=numpy.arange(1,13,0.5),unit='freqnum',name='frequencies')"
+print(">>> freqax = pyferret.FerAxis(axtype=pyferret.AXISTYPE_CUSTOM,coords=numpy.arange(1,13,0.5),unit='freqnum',name='frequencies')")
 freqax = pyferret.FerAxis(axtype=pyferret.AXISTYPE_CUSTOM,coords=numpy.arange(1,13,0.5),unit='freqnum',name='frequencies')
-print ">>> print repr(freqax)"
-print repr(freqax)
-print ">>> freqgrid = coadsgrid.copy(ax=pyferret.T_AXIS,newax=None).copy(name='freqgrid',ax=pyferret.E_AXIS,newax=freqax)"
+print(">>> print repr(freqax)")
+print(repr(freqax))
+print(">>> freqgrid = coadsgrid.copy(ax=pyferret.T_AXIS,newax=None).copy(name='freqgrid',ax=pyferret.E_AXIS,newax=freqax)")
 freqgrid = coadsgrid.copy(ax=pyferret.T_AXIS,newax=None).copy(name='freqgrid',ax=pyferret.E_AXIS,newax=freqax)
-print ">>> print repr(freqgrid)"
-print repr(freqgrid)
-print ">>> freqgrid.axes[0] == coadsgrid.axes[0]"
+print(">>> print repr(freqgrid)")
+print(repr(freqgrid))
+print(">>> freqgrid.axes[0] == coadsgrid.axes[0]")
 freqgrid.axes[0] == coadsgrid.axes[0]
-print ">>> freqgrid.axes[1] == coadsgrid.axes[1]"
+print(">>> freqgrid.axes[1] == coadsgrid.axes[1]")
 freqgrid.axes[1] == coadsgrid.axes[1]
-print ">>> freqgrid.axes[2] == coadsgrid.axes[2]"
+print(">>> freqgrid.axes[2] == coadsgrid.axes[2]")
 freqgrid.axes[2] == coadsgrid.axes[2]
-print ">>> freqgrid.axes[3] == coadsgrid.axes[3]"
+print(">>> freqgrid.axes[3] == coadsgrid.axes[3]")
 freqgrid.axes[3] == coadsgrid.axes[3]
-print ">>> freqgrid.axes[4] == coadsgrid.axes[4]"
+print(">>> freqgrid.axes[4] == coadsgrid.axes[4]")
 freqgrid.axes[4] == coadsgrid.axes[4]
-print ">>> freqgrid.axes[5] == coadsgrid.axes[5]"
+print(">>> freqgrid.axes[5] == coadsgrid.axes[5]")
 freqgrid.axes[5] == coadsgrid.axes[5]
 
diff --git a/bench/testfermethods.py b/bench/testfermethods.py
index ef438cd..4fbae84 100644
--- a/bench/testfermethods.py
+++ b/bench/testfermethods.py
@@ -1,47 +1,49 @@
 # To be run in python after importing and starting pyferret
 # such as from running "pyferret -python"
 
+from __future__ import print_function
+
 import sys ; sys.ps1 = '' ; sys.ps2 = ''
-print
+print()
 
-print ">>> coads_uw  = pyferret.FerDSet('coads_uw.nc')"
+print(">>> coads_uw  = pyferret.FerDSet('coads_uw.nc')")
 coads_uw  = pyferret.FerDSet('coads_uw.nc')
-print ">>> coads_uw.mywnd = (coads_uw.uwnd**2 + coads_uw.vwnd**2)**0.5"
+print(">>> coads_uw.mywnd = (coads_uw.uwnd**2 + coads_uw.vwnd**2)**0.5")
 coads_uw.mywnd = (coads_uw.uwnd**2 + coads_uw.vwnd**2)**0.5
-print ">>> pyferret.showdata(brief=False)"
+print(">>> pyferret.showdata(brief=False)")
 pyferret.showdata(brief=False)
 
-print ">>> pyferret.setwindow(1, axisasp=0.75, color=(100,90,90), thick=0.75, logo=False)"
+print(">>> pyferret.setwindow(1, axisasp=0.75, color=(100,90,90), thick=0.75, logo=False)")
 pyferret.setwindow(1, axisasp=0.75, color=(100,90,90), thick=0.75, logo=False)
-print ">>> pyferret.settextstyle(font='arial', color='blue', bold=True, italic=True)"
-pyferret.settextstyle(font='arial', color='blue', bold=True, italic=True)
-print ">>> febreg = pyferret.FerRegion(T='15-FEB')"
+print(">>> pyferret.settextstyle(font='lucida', color='blue', bold=True, italic=True)")
+pyferret.settextstyle(font='lucida', color='blue', bold=True, italic=True)
+print(">>> febreg = pyferret.FerRegion(T='15-FEB')")
 febreg = pyferret.FerRegion(T='15-FEB')
-print ">>> pyferret.contourplot(coads_uw.mywnd, region=febreg)"
+print(">>> pyferret.contourplot(coads_uw.mywnd, region=febreg)")
 pyferret.contourplot(coads_uw.mywnd, region=febreg)
-print ">>> pyferret.saveplot('testfermethods_contour.pdf')"
+print(">>> pyferret.saveplot('testfermethods_contour.pdf')")
 pyferret.saveplot('testfermethods_contour.pdf')
-print ">>> pyferret.fillplot(coads_uw.mywnd, line=True, region=febreg)"
+print(">>> pyferret.fillplot(coads_uw.mywnd, line=True, region=febreg)")
 pyferret.fillplot(coads_uw.mywnd, line=True, region=febreg)
-print ">>> pyferret.saveplot('testfermethods_fill.pdf')"
+print(">>> pyferret.saveplot('testfermethods_fill.pdf')")
 pyferret.saveplot('testfermethods_fill.pdf')
-print ">>> pyferret.shadeplot(coads_uw.mywnd, region=febreg)"
+print(">>> pyferret.shadeplot(coads_uw.mywnd, region=febreg)")
 pyferret.shadeplot(coads_uw.mywnd, region=febreg)
-print ">>> pyferret.saveplot('testfermethods_shade.pdf')"
+print(">>> pyferret.saveplot('testfermethods_shade.pdf')")
 pyferret.saveplot('testfermethods_shade.pdf')
-print ">>> febeqreg = pyferret.FerRegion(Y=0,T='15-FEB')"
+print(">>> febeqreg = pyferret.FerRegion(Y=0,T='15-FEB')")
 febeqreg = pyferret.FerRegion(Y=0,T='15-FEB')
-print ">>> pyferret.pointplot(coads_uw.uwnd, vs=coads_uw.vwnd, color=coads_uw.mywnd, sym=18, symsize=0.1, line=True, region=febeqreg)"
+print(">>> pyferret.pointplot(coads_uw.uwnd, vs=coads_uw.vwnd, color=coads_uw.mywnd, sym=18, symsize=0.1, line=True, region=febeqreg)")
 pyferret.pointplot(coads_uw.uwnd, vs=coads_uw.vwnd, color=coads_uw.mywnd, sym=18, symsize=0.1, line=True, region=febeqreg)
-print ">>> pyferret.saveplot('testfermethods_pointplot.pdf')"
+print(">>> pyferret.saveplot('testfermethods_pointplot.pdf')")
 pyferret.saveplot('testfermethods_pointplot.pdf')
-print ">>> pyferret.lineplot(coads_uw.uwnd, vs=coads_uw.vwnd, color=coads_uw.mywnd, region=febeqreg)"
+print(">>> pyferret.lineplot(coads_uw.uwnd, vs=coads_uw.vwnd, color=coads_uw.mywnd, region=febeqreg)")
 pyferret.lineplot(coads_uw.uwnd, vs=coads_uw.vwnd, color=coads_uw.mywnd, region=febeqreg)
-print ">>> pyferret.saveplot('testfermethods_lineplot.pdf')"
+print(">>> pyferret.saveplot('testfermethods_lineplot.pdf')")
 pyferret.saveplot('testfermethods_lineplot.pdf')
 
-print ">>> del coads_uw"
-del coads_uw
-print ">>> pyferret.showdata()"
+print(">>> coads_uw.close()")
+coads_uw.close()
+print(">>> pyferret.showdata()")
 pyferret.showdata()
 
diff --git a/bench/testferpyvar.py b/bench/testferpyvar.py
index dcde1a0..fcbbd97 100644
--- a/bench/testferpyvar.py
+++ b/bench/testferpyvar.py
@@ -1,31 +1,33 @@
 # To be run in python after importing and starting pyferret
 # such as from running "pyferret -python"
 
+from __future__ import print_function
+
 import sys ; sys.ps1 = '' ; sys.ps2 = ''
-print
+print()
 
-print ">>> coads = pyferret.FerDSet('coads_climatology.cdf')"
+print(">>> coads = pyferret.FerDSet('coads_climatology.cdf')")
 coads = pyferret.FerDSet('coads_climatology.cdf')
-print ">>> pyferret.showdata(brief=False)"
+print(">>> pyferret.showdata(brief=False)")
 pyferret.showdata(brief=False)
 
-print ">>> coads.sst.load()"
+print(">>> coads.sst.load()")
 coads.sst.load()
-print ">>> datacopy = coads.sst.data"
+print(">>> datacopy = coads.sst.data")
 datacopy = coads.sst.data
-print ">>> datacopy[87:93,43:47,0,:,0,0] = -5.0"
+print(">>> datacopy[87:93,43:47,0,:,0,0] = -5.0")
 datacopy[87:93,43:47,0,:,0,0] = -5.0
-print ">>> coads.sstcopy = pyferret.FerPyVar(grid=coads.sst.grid, data=datacopy, missval=coads.sst.missval, unit=coads.sst.unit, title='modified copy of SST')"
+print(">>> coads.sstcopy = pyferret.FerPyVar(grid=coads.sst.grid, data=datacopy, missval=coads.sst.missval, unit=coads.sst.unit, title='modified copy of SST')")
 coads.sstcopy = pyferret.FerPyVar(grid=coads.sst.grid, data=datacopy, missval=coads.sst.missval, unit=coads.sst.unit, title='modified copy of SST')
-print ">>> pyferret.showdata(brief=False)"
+print(">>> pyferret.showdata(brief=False)")
 pyferret.showdata(brief=False)
-print ">>> pyferret.setwindow(1, axisasp=0.5, logo=False)"
+print(">>> pyferret.setwindow(1, axisasp=0.5, logo=False)")
 pyferret.setwindow(1,axisasp=0.5,logo=False)
-print ">>> pyferret.setdefaulttext(font='Arial')"
-pyferret.settextstyle(font='Arial')
-print ">>> pyferret.shadeplot(coads.sstcopy['40S':'40N','100E':'100W','16-FEB'])"
+print(">>> pyferret.setdefaulttext(font='lucida')")
+pyferret.settextstyle(font='lucida')
+print(">>> pyferret.shadeplot(coads.sstcopy['40S':'40N','100E':'100W','16-FEB'])")
 pyferret.shadeplot(coads.sstcopy['40S':'40N','100E':'100W','16-FEB'])
-print ">>> pyferret.saveplot('testferpyvar.pdf')"
+print(">>> pyferret.saveplot('testferpyvar.pdf')")
 pyferret.saveplot('testferpyvar.pdf')
 
 # print ">>> pyferret.run('let sstdiff = sst - sstcopy')"
@@ -33,14 +35,12 @@ pyferret.saveplot('testferpyvar.pdf')
 # print ">>> pyferret.run('vtree sstdiff')"
 # pyferret.run('vtree sstdiff')
 
-print ">>> del coads.sstcopy"
+print(">>> del coads.sstcopy")
 del coads.sstcopy
-print ">>> pyferret.showdata()"
+print(">>> pyferret.showdata()")
 pyferret.showdata()
-print ">>> coads.close()"
+print(">>> coads.close()")
 coads.close()
-print ">>> del coads"
-del coads
-print ">>> pyferret.showdata()"
+print(">>> pyferret.showdata()")
 pyferret.showdata()
 
diff --git a/bench/testferregion.py b/bench/testferregion.py
index 5566c63..4c1148e 100644
--- a/bench/testferregion.py
+++ b/bench/testferregion.py
@@ -1,39 +1,42 @@
 # To be run in python after importing and starting pyferret
 # such as from running "pyferret -python"
 
+from __future__ import print_function
+
 import numpy
+
 import sys ; sys.ps1 = '' ; sys.ps2 = ''
-print
+print()
 
-print ">>> emptyregion = pyferret.FerRegion()"
+print(">>> emptyregion = pyferret.FerRegion()")
 emptyregion = pyferret.FerRegion()
-print ">>> print repr(emptyregion)"
-print repr(emptyregion)
-print ">>> emptyregion._ferretqualifierstr()"
+print(">>> print repr(emptyregion)")
+print(repr(emptyregion))
+print(">>> emptyregion._ferretqualifierstr()")
 emptyregion._ferretqualifierstr()
 
-print ">>> coordregion = pyferret.FerRegion(X=slice(-70,20),Y=slice('20N','60N'),Z=-100,T='15-DEC-2015',E=0,F='1')"
+print(">>> coordregion = pyferret.FerRegion(X=slice(-70,20),Y=slice('20N','60N'),Z=-100,T='15-DEC-2015',E=0,F='1')")
 coordregion = pyferret.FerRegion(X=slice(-70,20),Y=slice('20N','60N'),Z=-100,T='15-DEC-2015',E=0,F='1')
-print ">>> print repr(coordregion)"
-print repr(coordregion)
-print ">>> coordregion._ferretqualifierstr()"
+print(">>> print repr(coordregion)")
+print(repr(coordregion))
+print(">>> coordregion._ferretqualifierstr()")
 coordregion._ferretqualifierstr()
 
-print ">>> indexregion = pyferret.FerRegion(I=slice(0,20),J=slice('1','60'),K=10,L='5',M=0,N='1')"
+print(">>> indexregion = pyferret.FerRegion(I=slice(0,20),J=slice('1','60'),K=10,L='5',M=0,N='1')")
 indexregion = pyferret.FerRegion(I=slice(0,20),J=slice('1','60'),K=10,L='5',M=0,N='1')
-print ">>> print repr(indexregion)"
-print repr(indexregion)
-print ">>> indexregion._ferretqualifierstr()"
+print(">>> print repr(indexregion)")
+print(repr(indexregion))
+print(">>> indexregion._ferretqualifierstr()")
 indexregion._ferretqualifierstr()
 
-print ">>> try:"
-print "...     badregion = pyferret.FerRegion(X='70W:20E',I=slice(0,20))"
-print "...     print 'Error not caught'"
-print "... except ValueError as ex:"
-print "...     print 'Error caught: %s' % str(ex)"
+print(">>> try:")
+print("...     badregion = pyferret.FerRegion(X='70W:20E',I=slice(0,20))")
+print("...     print 'Error not caught'")
+print("... except ValueError as ex:")
+print("...     print 'Error caught: %s' % str(ex)")
 try:
     badregion = pyferret.FerRegion(X='70W:20E',I=slice(0,20))
-    print 'Error not caught'
+    print('Error not caught')
 except ValueError as ex:
-    print 'Error caught: %s' % str(ex)
+    print('Error caught: %s' % str(ex))
 
diff --git a/bench/testfervar.py b/bench/testfervar.py
index 67e48b5..63f5d66 100644
--- a/bench/testfervar.py
+++ b/bench/testfervar.py
@@ -1,129 +1,127 @@
 # To be run in python after importing and starting pyferret
 # such as from running "pyferret -python"
 
+from __future__ import print_function
+
 import sys ; sys.ps1 = '' ; sys.ps2 = ''
-print
+print()
 
-print ">>> coads = pyferret.FerDSet('coads_climatology.cdf')"
+print(">>> coads = pyferret.FerDSet('coads_climatology.cdf')")
 coads = pyferret.FerDSet('coads_climatology.cdf')
-print ">>> str(coads.sst)"
-print str(coads.sst)
-print ">>> coads.sst.showgrid()"
-print coads.sst.showgrid()
-print ">>> del coads.sst"
+print(">>> str(coads.sst)")
+print(str(coads.sst))
+print(">>> coads.sst.showgrid()")
+print(coads.sst.showgrid())
+print(">>> del coads.sst")
 del coads.sst
 
-print ">>> coads_uw  = pyferret.FerDSet('coads_uw.nc')"
+print(">>> coads_uw  = pyferret.FerDSet('coads_uw.nc')")
 coads_uw  = pyferret.FerDSet('coads_uw.nc')
-print ">>> coads_uw.uwnd.showgrid()"
+print(">>> coads_uw.uwnd.showgrid()")
 coads_uw.uwnd.showgrid()
 
-print ">>> coads_uw.mywnd = (coads_uw.uwnd**2 + coads_uw.vwnd**2)**0.5"
+print(">>> coads_uw.mywnd = (coads_uw.uwnd**2 + coads_uw.vwnd**2)**0.5")
 coads_uw.mywnd = (coads_uw.uwnd**2 + coads_uw.vwnd**2)**0.5
-print ">>> dir(coads_uw)"
+print(">>> dir(coads_uw)")
 dir(coads_uw)
-print ">>> print repr(coads_uw.mywnd)"
-print repr(coads_uw.mywnd)
-print ">>> coads_uw.mywnd.showgrid()"
+print(">>> print repr(coads_uw.mywnd)")
+print(repr(coads_uw.mywnd))
+print(">>> coads_uw.mywnd.showgrid()")
 coads_uw.mywnd.showgrid()
 
-print ">>> print repr(coads_uw.mywnd.data)"
-print repr(coads_uw.mywnd.data)
-print ">>> print repr(coads_uw.mywnd.grid)"
-print repr(coads_uw.mywnd.grid)
-print ">>> coads_uw.mywnd.load()"
+print(">>> print repr(coads_uw.mywnd.data)")
+print(repr(coads_uw.mywnd.data))
+print(">>> print repr(coads_uw.mywnd.grid)")
+print(repr(coads_uw.mywnd.grid))
+print(">>> coads_uw.mywnd.load()")
 coads_uw.mywnd.load()
-print ">>> coads_uw.mywnd.data.shape"
+print(">>> coads_uw.mywnd.data.shape")
 coads_uw.mywnd.data.shape
-print ">>> print repr(coads_uw.mywnd.data[2:5,2:5,0,0,0,0])"
-print repr(coads_uw.mywnd.data[2:5,2:5,0,0,0,0])
-print ">>> print repr(coads_uw.mywnd.grid)"
-print repr(coads_uw.mywnd.grid)
-print ">>> coads_uw.mywnd.unload()"
+print(">>> print repr(coads_uw.mywnd.data[2:5,2:5,0,0,0,0])")
+print(repr(coads_uw.mywnd.data[2:5,2:5,0,0,0,0]))
+print(">>> print repr(coads_uw.mywnd.grid)")
+print(repr(coads_uw.mywnd.grid))
+print(">>> coads_uw.mywnd.unload()")
 coads_uw.mywnd.unload()
 
-print ">>> coads.sstregrid = coads.sst.regrid(coads_uw.mywnd, pyferret.REGRID_AVERAGE)"
+print(">>> coads.sstregrid = coads.sst.regrid(coads_uw.mywnd, pyferret.REGRID_AVERAGE)")
 coads.sstregrid = coads.sst.regrid(coads_uw.mywnd, pyferret.REGRID_AVERAGE)
-print ">>> pyferret.showdata()"
+print(">>> pyferret.showdata()")
 pyferret.showdata()
-print ">>> coads.sstregrid.showgrid()"
+print(">>> coads.sstregrid.showgrid()")
 coads.sstregrid.showgrid()
-print ">>> coads.sstregrid.load()"
+print(">>> coads.sstregrid.load()")
 coads.sstregrid.load()
-print ">>> coads.sstregrid.data.shape"
+print(">>> coads.sstregrid.data.shape")
 coads.sstregrid.data.shape
-print ">>> print repr(coads.sstregrid.data[2:5,2:5,0,0,0,0])"
-print repr(coads.sstregrid.data[2:5,2:5,0,0,0,0])
-print "pyferret.run('LIST /X=55W:51W /Y=5N:9N /L=1 SST[d=coads_climatology]')"
+print(">>> print repr(coads.sstregrid.data[2:5,2:5,0,0,0,0])")
+print(repr(coads.sstregrid.data[2:5,2:5,0,0,0,0]))
+print("pyferret.run('LIST /X=55W:51W /Y=5N:9N /L=1 SST[d=coads_climatology]')")
 pyferret.run('LIST /X=55W:51W /Y=5N:9N /L=1 SST[d=coads_climatology]')
 
-print ">>> coads_uw.show()"
+print(">>> coads_uw.show()")
 coads_uw.show()
-print ">>> del coads_uw.mywnd"
+print(">>> del coads_uw.mywnd")
 del coads_uw.mywnd
-print ">>> coads_uw.show()"
+print(">>> coads_uw.show()")
 coads_uw.show()
 
-print ">>> pyferret.anondset.sstcopy = coads.sst"
+print(">>> pyferret.anondset.sstcopy = coads.sst")
 pyferret.anondset.sstcopy = coads.sst
-print ">>> pyferret.anondset.show()"
+print(">>> pyferret.anondset.show()")
 pyferret.anondset.show()
-print ">>> print repr(pyferret.anondset.sstcopy)"
-print repr(pyferret.anondset.sstcopy)
-print ">>> print repr(pyferret.anondset.sstcopy._isfilevar)"
-print repr(pyferret.anondset.sstcopy._isfilevar)
-print ">>> print repr(pyferret.anondset.sstcopy._requires)"
-print repr(pyferret.anondset.sstcopy._requires)
-print ">>> print repr(coads.sst)"
-print repr(coads.sst)
-print ">>> print repr(coads.sst._isfilevar)"
-print repr(coads.sst._isfilevar)
-print ">>> print repr(coads.sst._requires)"
-print repr(coads.sst._requires)
-print ">>> pyferret.anondset.close()"
+print(">>> print repr(pyferret.anondset.sstcopy)")
+print(repr(pyferret.anondset.sstcopy))
+print(">>> print repr(pyferret.anondset.sstcopy._isfilevar)")
+print(repr(pyferret.anondset.sstcopy._isfilevar))
+print(">>> print repr(pyferret.anondset.sstcopy._requires)")
+print(repr(pyferret.anondset.sstcopy._requires))
+print(">>> print repr(coads.sst)")
+print(repr(coads.sst))
+print(">>> print repr(coads.sst._isfilevar)")
+print(repr(coads.sst._isfilevar))
+print(">>> print repr(coads.sst._requires)")
+print(repr(coads.sst._requires))
+print(">>> pyferret.anondset.close()")
 pyferret.anondset.close()
-print ">>> pyferret.anondset.show()"
+print(">>> pyferret.anondset.show()")
 pyferret.anondset.show()
 
-print ">>> coads.sst2 = coads.sst['15-FEB']"
+print(">>> coads.sst2 = coads.sst['15-FEB']")
 coads.sst2 = coads.sst['15-FEB']
-print ">>> coads.sst2.showgrid()"
+print(">>> coads.sst2.showgrid()")
 coads.sst2.showgrid()
-print ">>> coads.sst2.load()"
+print(">>> coads.sst2.load()")
 coads.sst2.load()
-print ">>> coads.sst2.data.shape"
+print(">>> coads.sst2.data.shape")
 coads.sst2.data.shape
-print ">>> print repr(coads.sst2.data[2:5,23:26,0,0,0,0])"
-print repr(coads.sst2.data[2:5,23:26,0,0,0,0])
-print "pyferret.run('LIST /X=25E:29E /Y=43S:39S /L=2 SST[d=coads_climatology]')"
+print(">>> print repr(coads.sst2.data[2:5,23:26,0,0,0,0])")
+print(repr(coads.sst2.data[2:5,23:26,0,0,0,0]))
+print("pyferret.run('LIST /X=25E:29E /Y=43S:39S /L=2 SST[d=coads_climatology]')")
 pyferret.run('LIST /X=25E:29E /Y=43S:39S /L=2 SST[d=coads_climatology]')
 
-print ">>> coads.sst2 = coads.sst['43S':'39S','25E':'29E',:,1]"
+print(">>> coads.sst2 = coads.sst['43S':'39S','25E':'29E',:,1]")
 coads.sst2 = coads.sst['43S':'39S','25E':'29E',:,1]
-print ">>> print repr(coads.sst2)"
-print repr(coads.sst2)
-print ">>> coads.show(brief=False)"
+print(">>> print repr(coads.sst2)")
+print(repr(coads.sst2))
+print(">>> coads.show(brief=False)")
 coads.show(brief=False)
-print ">>> coads.sst2.load()"
+print(">>> coads.sst2.load()")
 coads.sst2.load()
-print ">>> coads.sst2.data.shape"
+print(">>> coads.sst2.data.shape")
 coads.sst2.data.shape
-print ">>> print repr(coads.sst2.data[:,:,0,0,0,0])"
-print repr(coads.sst2.data[:,:,0,0,0,0])
+print(">>> print repr(coads.sst2.data[:,:,0,0,0,0])")
+print(repr(coads.sst2.data[:,:,0,0,0,0]))
 
 
-print ">>> pyferret.showdata(brief=False)"
+print(">>> pyferret.showdata(brief=False)")
 pyferret.showdata(brief=False)
-print ">>> coads_uw.close()"
+print(">>> coads_uw.close()")
 coads_uw.close()
-print ">>> del coads_uw"
-del coads_uw
-print ">>> pyferret.showdata()"
+print(">>> pyferret.showdata()")
 pyferret.showdata()
-print ">>> coads.close()"
+print(">>> coads.close()")
 coads.close()
-print ">>> del coads"
-del coads
-print ">>> pyferret.showdata()"
+print(">>> pyferret.showdata()")
 pyferret.showdata()
 
diff --git a/bench/testgetstrdata.py b/bench/testgetstrdata.py
index fbdcd74..482f9a1 100644
--- a/bench/testgetstrdata.py
+++ b/bench/testgetstrdata.py
@@ -1,29 +1,23 @@
 # To be run in python after importing and starting pyferret
 # such as from running "pyferret -python"
 
+from __future__ import print_function
+
 import sys ; sys.ps1 = '' ; sys.ps2 = ''
-print
+print()
 
-print '>>> pyferret.run(\'let strarr = {"one", "two", "three", "four", "five", "six"}\')'
+print('>>> pyferret.run(\'let strarr = {"one", "two", "three", "four", "five", "six"}\')')
 pyferret.run('let strarr = {"one", "two", "three", "four", "five", "six"}')
-print ">>> pyferret.run('list strarr')"
+print(">>> pyferret.run('list strarr')")
 pyferret.run('list strarr')
-print ">>> strdict = pyferret.getstrdata('strarr')"
+print(">>> strdict = pyferret.getstrdata('strarr')")
 strdict = pyferret.getstrdata('strarr')
-print ">>> print pyferret.metastr(strdict)"
-print pyferret.metastr(strdict)
-print ">>> strdata = strdict['data']"
+print(">>> print pyferret.metastr(strdict)")
+print(pyferret.metastr(strdict))
+print(">>> strdata = strdict['data']")
 strdata = strdict['data']
-print ">>> repr(strdata.squeeze())"
+print(">>> repr(strdata.squeeze())")
 repr(strdata.squeeze())
-print ">>> del strdata"
-del strdata
-print ">>> del strdict"
-del strdict
-print ">>> strdict = pyferret.getstrdata('strarr')"
-strdict = pyferret.getstrdata('strarr')
-print ">>> repr(strdict)"
+print(">>> repr(strdict)")
 repr(strdict)
-print ">>> del strdict"
-del strdict
 
diff --git a/bench/unclosed_if.sub b/bench/unclosed_if.sub
new file mode 100644
index 0000000..bc6d160
--- /dev/null
+++ b/bench/unclosed_if.sub
@@ -0,0 +1,7 @@
+
+let a = 1
+if `a eq 1` THEN
+SAY YES
+
+let b = 1
+
diff --git a/bin/Finstall b/bin/Finstall
index 5b5f808..b13b454 100755
--- a/bin/Finstall
+++ b/bin/Finstall
@@ -11,24 +11,28 @@
 ### Assign $fer_dir, the desired FER_DIR value
 get_fer_dir() {
     if [ -n "${FER_DIR}" ]; then
-        fer_dir="${FER_DIR}"
-        echo " "
-        echo " The environment variable FER_DIR is currently defined as "
-        echo " '${FER_DIR}' "
-        echo " This is the directory where the 'fer_environment.tar.gz' "
-        echo " file was installed/extracted. "
-        echo " "
-        read -p " Is that correct and acceptable (y/n) [y] " ans
-        if [ -z "${ans}" ] || [ "${ans}" = "Y" ] || [ "${ans}" = "y" ]; then
-            return 0
+        if [ -d "${FER_DIR}/ext_func/pylibs" ]; then
+            fer_dir="${FER_DIR}"
+            echo " "
+            echo " The environment variable FER_DIR is currently defined as "
+            echo "     '${FER_DIR}' "
+            echo " This should be the directory created from extracting the PyFerret "
+            echo " tar.gz file.  It contains subdirectories bin, contrib, examples, "
+            echo " ext_func, go, lib, and ppl. "
+            read -p " Is that correct and acceptable (y/n) [y] " ans
+            if [ -z "${ans}" ] || [ "${ans}" = "Y" ] || [ "${ans}" = "y" ]; then
+                return 0
+            fi
         fi
     fi
 
     until [ 0 = 1 ]; do
         echo " "
-        echo " Enter the name of the directory where the 'fer_environment.tar.gz' "
-        echo " file was installed/extracted (FER_DIR).  The location recommended "
-        echo " in the Ferret installation guide was '/usr/local/ferret'. "
+        echo " Enter the name of the PyFerret installation directory (FER_DIR). "
+        echo " This should be the directory created from extracting the PyFerret "
+        echo " tar.gz file.  It contains subdirectories bin, contrib, examples, "
+        echo " ext_func, go, lib, and ppl. "
+        echo " A relative path name can be given (such a '.') "
         echo " "
         read -p " FER_DIR --> " fer_dir
         if [ ! -d "${fer_dir}" ]; then
@@ -36,9 +40,9 @@ get_fer_dir() {
         else
 #           resolve relative pathnames
             fer_dir=`cd "${fer_dir}" ; pwd`
-            if [ ! -x "${fer_dir}/bin/Fenv" ]; then
-                echo " The Ferret environment files are not in "
-                echo " '${fer_dir}' "
+            if [ ! -d "${fer_dir}/ext_func/pylibs" ]; then
+                echo " The PyFerret files are not in "
+                echo "     '${fer_dir}' "
             else
                 return 0
             fi
@@ -52,23 +56,28 @@ get_fer_dir() {
 ### Assign $fer_dsets, the desired FER_DSETS value
 get_fer_dsets() {
     if [ -n "${FER_DSETS}" ]; then
-        fer_dsets="${FER_DSETS}"
-        echo " "
-        echo " The environment variable FER_DSETS is currently defined as "
-        echo " '${FER_DSETS}' "
-        echo " This is the directory where the 'fer_dsets.tar.gz' file was "
-        echo " installed/extracted."
-        echo " "
-        read -p " Is that correct and acceptable (y/n) [y] " ans
-        if [ -z "${ans}" ] || [ "${ans}" = "Y" ] || [ "${ans}" = "y" ]; then
-            return 0
+        if [ -f "${FER_DSETS}/data/coads_climatology.cdf" ]; then
+            fer_dsets="${FER_DSETS}"
+            echo " "
+            echo " The environment variable FER_DSETS is currently defined as "
+            echo "     '${FER_DSETS}' "
+            echo " This is the directory containing the default Ferret datasets. "
+            echo " It contains subdirectories data, descr, and grids, including "
+            echo " the data file data/coads_climatology.cdf "
+            echo " "
+            read -p " Is that correct and acceptable (y/n) [y] " ans
+            if [ -z "${ans}" ] || [ "${ans}" = "Y" ] || [ "${ans}" = "y" ]; then
+                return 0
+            fi
         fi
     fi
 
     until [ 0 = 1 ]; do
         echo " "
-        echo " Enter the name of the directory where the 'fer_dsets.tar.gz' "
-        echo " file was installed/extracted (FER_DSETS)."
+        echo " Enter the name of the directory containing the default Ferret "
+        echo " data sets (FER_DSETS).  It contains subdirectories data, descr, "
+        echo " and grids, including the data file data/coads_climatology.cdf "
+        echo " A relative path name can be given (such a '../FerretDatasets') "
         echo " "
         read -p " FER_DSETS --> " fer_dsets
         if [ ! -d "${fer_dsets}" ]; then
@@ -77,8 +86,8 @@ get_fer_dsets() {
 #           resolve relative pathnames
             fer_dsets=`cd "${fer_dsets}" ; pwd`
             if [ ! -f "${fer_dsets}/data/coads_climatology.cdf" ]; then
-                echo " The Ferret demonstration data files are not in "
-                echo " '${fer_dsets}' "
+                echo " The Ferret default data files are not in "
+                echo "     '${fer_dsets}' "
             else
                 return 0
             fi
@@ -95,7 +104,8 @@ get_ferpaths_dir() {
         echo " "
         echo " Enter the name of the directory where you want to place "
         echo " the newly created 'ferret_paths.csh', 'ferret_path.sh', "
-        echo " pyferret files; for example, '/usr/local/bin'."
+        echo " and pyferret scripts."
+        echo " A relative path name can be given (such a '.') "
         echo " "
         read -p " desired ferret_paths location --> " ferpaths_dir
         if [ ! -d "${ferpaths_dir}" ]; then
@@ -187,13 +197,15 @@ get_python_vars() {
         fi
 #       expand to the full path name, just to be safe (may not be necessary)
         python_executable=`which "$ans"`
-#       assign python_subdirectory as 'python2.6' or 'python2.7' using the version
+#       assign python_subdirectory as 'pythonx.x' using the version
 #       number reported by the python executable (which validates the python executable)
-        python_subdirectory=`${ans} -c "import sys; print 'python%i.%i' % sys.version_info[:2]"`
+        python_subdirectory=`${ans} -c "from __future__ import print_function; import sys; print('python%i.%i' % sys.version_info[:2])"`
         if echo "${python_subdirectory}" | grep -q '^python2\.[67]$'; then
             return 0
+        elif echo "${python_subdirectory}" | grep -q '^python3'; then
+            return 0
         elif echo "${python_subdirectory}" | grep -q '^python'; then
-            echo " ${ans} appears to be ${python_subdirectory}; only python2.6 or python2.7 supported "
+            echo " ${ans} appears to be ${python_subdirectory}; only python2.6 or later is supported "
         else
             echo " ${ans} does not appear to be a valid python executable "
         fi
@@ -350,6 +362,8 @@ python_subdir=\"${python_subdirectory}\"" \
 python_exe=\"${python_executable}\"" \
            -e "/python_subdir=/c\\
 python_subdir=\"${python_subdirectory}\"" \
+           -e "/. FERRET_PATHS_SH_SCRIPT/c\\
+. \"${ferpaths_dir}/ferret_paths.sh\"" \
            "${fer_dir}/bin/pyferret_template" \
            > "${fer_dir}/bin/pyferret" ; then
         chmod +x "${fer_dir}/bin/pyferret"
@@ -369,16 +383,18 @@ python_subdir=\"${python_subdirectory}\"" \
 echo " "
 echo " This script creates the  'ferret_paths.csh' and 'ferret_paths.sh' in a directory "
 echo " you choose using values of FER_DIR (Ferret software directory at your site) and "
-echo " FER_DSETS (Ferret demonstration data at your site).  Furthermore, the link "
-echo " (shortcut) 'ferret_paths' can be created which refers to either 'ferret_paths.csh' "
-echo " or 'ferret_paths.sh'.  Finally, the executable shell script 'pyferret' is created. "
+echo " FER_DSETS (Ferret default data at your site).  Furthermore, the link (shortcut) "
+echo " 'ferret_paths' can be created which refers to either 'ferret_paths.csh' or "
+echo " 'ferret_paths.sh'.  Finally, the executable shell script 'pyferret' is created. "
 echo " "
 echo " Sourcing one of these 'ferret_paths' files ('source ferret_paths.csh' for csh or "
 echo " tcsh, '. ferret_paths.sh' for bash, sh ksh, or dash) will set up a user's "
-echo " environment for running ferret. "
+echo " environment for running pyferret.  The pyferret script will automatically source "
+echo " the ferret_paths script created here if it detects the ferret environment has "
+echo " not already been set up. "
 echo " "
-echo " You will want to run this script if you are installing Ferret for the first time "
-echo " or if you relocated where Ferret is installed. "
+echo " You will want to run this script if you are installing PyFerret for the first time "
+echo " or if you relocated where PyFerret is installed. "
 echo " "
 read -p " Proceed? (y/n) [y] " ans
 if [ -n "${ans}" ] && [ "${ans}" != "Y" ] && [ "${ans}" != "y" ]; then
diff --git a/bin/ferret_paths_template.csh b/bin/ferret_paths_template.csh
index f1a6f69..6fa87d1 100644
--- a/bin/ferret_paths_template.csh
+++ b/bin/ferret_paths_template.csh
@@ -101,7 +101,7 @@ set pysite = "${FER_LIBS}/${python_subdir}/site-packages"
 if ( ! $?PYTHONPATH ) then
     setenv PYTHONPATH "${pysite}"
 else
-    if ( "${PYTHONPATH}" !~ "*${pysite}*" ) then
+    if ( "${PYTHONPATH}" !~ "${pysite}*" ) then
         setenv PYTHONPATH "${pysite}:${PYTHONPATH}"
     endif
 endif
@@ -111,7 +111,7 @@ endif
 if ( ! $?LD_LIBRARY_PATH ) then
     setenv LD_LIBRARY_PATH "${pysite}/pyferret"
 else
-    if ( "${LD_LIBRARY_PATH}" !~ "*${pysite}/pyferret*" ) then
+    if ( "${LD_LIBRARY_PATH}" !~ "${pysite}/pyferret*" ) then
         setenv LD_LIBRARY_PATH "${pysite}/pyferret:${LD_LIBRARY_PATH}"
     endif
 endif
diff --git a/bin/ferret_paths_template.sh b/bin/ferret_paths_template.sh
index ff41307..396ec65 100644
--- a/bin/ferret_paths_template.sh
+++ b/bin/ferret_paths_template.sh
@@ -103,7 +103,7 @@ pysite="${FER_LIBS}/${python_subdir}/site-packages"
 if [ -z "${PYTHONPATH}" ]; then
     export PYTHONPATH="${pysite}"
 else
-    if ! echo "${PYTHONPATH}" | grep -q "${pysite}"; then
+    if ! echo "${PYTHONPATH}" | grep -q "^${pysite}"; then
         export PYTHONPATH="${pysite}:${PYTHONPATH}"
     fi
 fi
@@ -113,7 +113,7 @@ fi
 if [ -z "${LD_LIBRARY_PATH}" ]; then
     export LD_LIBRARY_PATH="${pysite}/pyferret"
 else
-    if ! echo "${LD_LIBRARY_PATH}" | grep -q "${pysite}/pyferret"; then
+    if ! echo "${LD_LIBRARY_PATH}" | grep -q "^${pysite}/pyferret"; then
         export LD_LIBRARY_PATH="${pysite}/pyferret:${LD_LIBRARY_PATH}"
     fi
 fi
diff --git a/bin/make_dist_tar b/bin/make_dist_tar
index 1b7cdad..64357ed 100755
--- a/bin/make_dist_tar
+++ b/bin/make_dist_tar
@@ -69,7 +69,11 @@ ctar_name="pyferret-${version}-${platform}"
 ctar_file="${target_dir}/${ctar_name}.tar.gz"
 
 # Make a clean temporary directory for the tar file contents
-parent_temp_dir="/var/tmp/pyferret_$$"
+if [ "$TMPDIR" != "" ]; then
+   parent_temp_dir="${TMPDIR}/pyferret_$$"
+else
+   parent_temp_dir="/tmp/pyferret_$$"
+fi
 echo "Creating temporary directory ${parent_temp_dir}"
 rm -fr ${parent_temp_dir}
 temp_dir="${parent_temp_dir}/${ctar_name}"
diff --git a/bin/make_source_tar b/bin/make_source_tar
index b6ff523..48ca9e1 100755
--- a/bin/make_source_tar
+++ b/bin/make_source_tar
@@ -39,7 +39,11 @@ else
 fi
 
 # Make a clean temporary directory for the tar file contents
-temp_dir="/var/tmp/fer_src_$$"
+if [ "$TMPDIR" != "" ]; then
+   temp_dir="${TMPDIR}/fer_src_$$"
+else
+   temp_dir="/tmp/fer_src_$$"
+fi
 rm -fr ${temp_dir}
 mkdir ${temp_dir}
 cd ${temp_dir}
diff --git a/bin/pyferret_template b/bin/pyferret_template
index 1c42b2c..f2e9b3c 100644
--- a/bin/pyferret_template
+++ b/bin/pyferret_template
@@ -9,10 +9,10 @@ python_exe=PYTHON_EXECUTABLE
 ## Make sure the FER_* environment variables are assigned
 if [ -z "${FER_LIBS}" ]; then
 ## Either source the ferret_paths script to assign the environment variables
-#    . "/my/path/to/ferret_paths.sh"
+. FERRET_PATHS_SH_SCRIPT
 ## or just throw an error if they should have already been defined
-    echo "**ERROR: Ferret environment variables are not defined"
-    exit 1
+#    echo "**ERROR: Ferret environment variables are not defined"
+#    exit 1
 ##
 fi
 
@@ -34,5 +34,5 @@ if echo "$@" | grep -q -- "-linebuffer"; then
 else
     python_flags="-i"
 fi
-${python_exe} ${python_flags} -c "import sys; import pyferret; (errval, errmsg) = pyferret.init(sys.argv[1:], True)" "$@"
+exec ${python_exe} ${python_flags} -c "import sys; import pyferret; (errval, errmsg) = pyferret.init(sys.argv[1:], True)" "$@"
 
diff --git a/external_functions/ef_utility/site_specific.mk b/external_functions/ef_utility/site_specific.mk
index 4de1bcb..f436540 100644
--- a/external_functions/ef_utility/site_specific.mk
+++ b/external_functions/ef_utility/site_specific.mk
@@ -1,6 +1,7 @@
 ## Site-dependent definitions included in external function 
 ## Makefiles in an installed PyFerret directory.
 
+## =========================
 ## Machine type for which to build Ferret/PyFerret
 ##   x86_64-linux      for 64-bit RHEL
 ##   x86_64-linux-gnu  for 64-bit Ubuntu and many "free" Linux systems
@@ -9,6 +10,7 @@
 ##   intel-mac         for Max OSX
 ## This value is used to determine which platform_specific.mk
 ## file to include in the Makefiles.
+## =========================
 BUILDTYPE = $(HOSTTYPE)
 # BUILDTYPE = x86_64-linux
 # BUILDTYPE = x86_64-linux-gnu
@@ -16,24 +18,32 @@ BUILDTYPE = $(HOSTTYPE)
 # BUILDTYPE = i386-linux-gnu
 # BUILDTYPE = intel-mac
 
+## =========================
 ## INSTALL_FER_DIR and PYTHON_EXE are only used to construct
 ## the location of pyferret library.  The library should be
 ## (for either 32-bit or 64-bit Linux)
 ## $(INSTALL_FER_DIR)/lib/$(PYTHON_EXE)/site-package/pyferret/libpyferret.so
 ## or possibly (for 64-bit Linux only)
 ## $(INSTALL_FER_DIR)/lib64/$(PYTHON_EXE)/site-package/pyferret/libpyferret.so
-
+##
 ## PyFerret installation directory, usually just $(FER_DIR)
+## =========================
+# INSTALL_FER_DIR = $(HOME)/PyFerret
 INSTALL_FER_DIR = $(FER_DIR)
 
-## Python version used by PyFerret, either python2.6 or python2.7
+## =========================
+## Python version used by PyFerret
+## =========================
 PYTHON_EXE = python2.6
 # PYTHON_EXE = python2.7
+# PYTHON_EXE = python3.6
 
+## =========================
 ## FER_LOCAL_EXTFCNS is the directory in which to install
 ## the Ferret Fortran external functions.  The example
 ## functions that come with the PyFerret installation are
 ## installed in $(INSTALL_FER_DIR)/ext_func/pylibs
+## =========================
 FER_LOCAL_EXTFCNS = $(INSTALL_FER_DIR)/ext_func/pylibs
 
 ##
diff --git a/external_functions/pyef/template.py b/external_functions/pyef/template.py
index 24203b3..0070e3d 100644
--- a/external_functions/pyef/template.py
+++ b/external_functions/pyef/template.py
@@ -6,9 +6,8 @@ default, PyFerret uses the name of the module as the function name.
 Copy this file using a name that you would like to be the function
 name, then modify the contents of these functions and comments as
 desired. 
-
- at author: 
 '''
+
 import numpy
 
 
diff --git a/fer/Makefile b/fer/Makefile
index fb3e000..edaadb7 100644
--- a/fer/Makefile
+++ b/fer/Makefile
@@ -36,26 +36,45 @@ all: optimized
 
 .PHONY : optimized
 optimized:
-	$(MAKE) "CFLAGS = $(CFLAGS) -O -DNDEBUG" \
-		"FFLAGS = $(FFLAGS) -O -DNDEBUG" \
-		"VERSION_INFO = (opt)" \
-		"PPLUS_FFLAGS = $(PPLUS_FFLAGS) -O -DNDEBUG" \
+	$(MAKE) "CFLAGS = $(CFLAGS) $(OPT_FLAGS)" \
+		"FFLAGS = $(FFLAGS) $(OPT_FLAGS)" \
+		"PPLUS_FFLAGS = $(PPLUS_FFLAGS) $(PPLUS_OPT_FLAGS)" \
+		"VERSION_INFO = (optimized)" \
 		build
 
 .PHONY : beta
 beta:
-	$(MAKE) "CFLAGS = $(CFLAGS) -O -DNDEBUG" \
-		"FFLAGS = $(FFLAGS) -O -DNDEBUG" \
-		"VERSION_INFO = (beta/opt)" \
-		"PPLUS_FFLAGS = $(PPLUS_FFLAGS) -O -DNDEBUG" \
+	$(MAKE) "CFLAGS = $(CFLAGS) $(OPT_FLAGS)" \
+		"FFLAGS = $(FFLAGS) $(OPT_FLAGS)" \
+		"PPLUS_FFLAGS = $(PPLUS_FFLAGS) $(PPLUS_OPT_FLAGS)" \
+		"VERSION_INFO = (beta/optim)" \
 		build
 
 .PHONY : debug
 debug:
-	$(MAKE) "CFLAGS = $(CFLAGS) -O0 -g" \
-		"FFLAGS = $(FFLAGS) -O0 -g -fbounds-check" \
-		"VERSION_INFO = (beta/dbg)" \
-		"PPLUS_FFLAGS = $(PPLUS_FFLAGS) -O0 -g" \
+	$(MAKE) "CFLAGS = $(CFLAGS) $(DBG_FLAGS)"  \
+		"FFLAGS = $(FFLAGS) $(DBG_FLAGS) -fbounds-check" \
+		"PPLUS_FFLAGS = $(PPLUS_FFLAGS) $(DBG_FLAGS)" \
+		"VERSION_INFO = (beta/debug)" \
+		build
+
+## The definition of VERBOSEDEBUG is observed by fer/grdel, which causes it
+## to create a pyferretdebug.log file with all the graphics commands issued
+.PHONY : verbosedebug
+verbosedebug:
+	$(MAKE) "CFLAGS = $(CFLAGS) $(DBG_FLAGS) -DVERBOSEDEBUG"  \
+		"FFLAGS = $(FFLAGS) $(DBG_FLAGS) -fbounds-check" \
+		"PPLUS_FFLAGS = $(PPLUS_FFLAGS) $(DBG_FLAGS)" \
+		"VERSION_INFO = (beta/debug)" \
+		build
+
+.PHONY: profiling
+profiling:
+	$(MAKE) "CFLAGS = $(CFLAGS) $(PROF_FLAGS) "  \
+		"FFLAGS = $(FFLAGS) $(PROF_FLAGS) -fbounds-check" \
+		"PPLUS_FFLAGS = $(PPLUS_FFLAGS) $(PROF_FLAGS)" \
+		"LDFLAGS = $(LDFLAGS) $(PROF_FLAGS)" \
+		"VERSION_INFO = (profiling)" \
 		build
 
 .PHONY : build
diff --git a/fer/ccr/EF_InternalUtil.c b/fer/ccr/EF_InternalUtil.c
index 3813b33..d4f8642 100644
--- a/fer/ccr/EF_InternalUtil.c
+++ b/fer/ccr/EF_InternalUtil.c
@@ -93,6 +93,8 @@
 *      *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
+* V702 *sh*   1/17 added support for FORTRAN90 dynamic memory management
+*                  removing "memory" pointer in favor of individual arg ptrs
 */
 
 
@@ -116,20 +118,25 @@
 
 /* ................ Global Variables ................ */
 /*
- * The memory_ptr, mr_list_ptr and cx_list_ptr are obtained from Ferret
+ * The mr_list_ptr and cx_list_ptr are obtained from Ferret
  * and cached whenever they are passed into one of the "efcn_" functions.
  * These pointers can be accessed by the utility functions in efn_ext/.
  * This way the EF writer does not need to see these pointers.
  *
+ * 1/17 - c argument pointers (GLOBAL_arg_ptrs) and the result pointer
+ *        (GLOBAL_res_ptr)are obtained from FORTRAN later on demand
+ *
  * This is the instantiation of these values.
  */
 
-DFTYPE *GLOBAL_memory_ptr;
 int    *GLOBAL_mr_list_ptr;
 int    *GLOBAL_cx_list_ptr;
 int    *GLOBAL_mres_ptr;
 DFTYPE *GLOBAL_bad_flag_ptr;
 
+DFTYPE *GLOBAL_arg_ptrs[EF_MAX_ARGS];
+DFTYPE *GLOBAL_res_ptr;
+
 static LIST *STATIC_ExternalFunctionList;
 
 /*
@@ -169,8 +176,8 @@ void FORTRAN(create_pyefcn)(char fname[], int *lenfname, char pymod[], int *lenp
 
 int  FORTRAN(efcn_gather_info)( int * );
 void FORTRAN(efcn_get_custom_axes)( int *, int *, int * );
-void FORTRAN(efcn_get_result_limits)( int *, DFTYPE *, int *, int *, int * );
-void FORTRAN(efcn_compute)( int *, int *, int *, int *, int *, DFTYPE *, int *, DFTYPE *, int * );
+void FORTRAN(efcn_get_result_limits)( int *, int *, int *, int * );
+void FORTRAN(efcn_compute)( int *, int *, int *, int *, int *, DFTYPE *, int * );
 
 
 void FORTRAN(efcn_get_custom_axis_sub)( int *, int *, double *, double *, double *, char *, int * );
@@ -197,6 +204,9 @@ 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_pass_arg_ptr)(int *, DFTYPE *);
+void FORTRAN(efcn_pass_res_ptr)(DFTYPE *);
 
 
 /* .... Functions called internally .... */
@@ -218,7 +228,7 @@ int EF_Util_ressig();
 
 void FORTRAN(ef_err_bail_out)(int *, char *);
 
-void EF_store_globals(DFTYPE *, int *, int *, int *, DFTYPE *);
+void EF_store_globals(int *, int *, int *, DFTYPE *);
 
 ExternalFunction *ef_ptr_from_id_ptr(int *);
 
@@ -802,6 +812,26 @@ void FORTRAN(scat2grid_t_init)(int *);
 void FORTRAN(scat2grid_t_work_size)(int *);
 void FORTRAN(scat2grid_t_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
 
+void FORTRAN(transpose_ef_init)(int *);
+void FORTRAN(transpose_ef_result_limits)(int *);
+void FORTRAN(transpose_ef_compute)(int *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(transpose_te_init)(int *);
+void FORTRAN(transpose_te_result_limits)(int *);
+void FORTRAN(transpose_te_compute)(int *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(transpose_tf_init)(int *);
+void FORTRAN(transpose_tf_result_limits)(int *);
+void FORTRAN(transpose_tf_compute)(int *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(transpose_xe_init)(int *);
+void FORTRAN(transpose_xe_result_limits)(int *);
+void FORTRAN(transpose_xe_compute)(int *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(transpose_xf_init)(int *);
+void FORTRAN(transpose_xf_result_limits)(int *);
+void FORTRAN(transpose_xf_compute)(int *, DFTYPE *, DFTYPE *);
+
 void FORTRAN(transpose_xt_init)(int *);
 void FORTRAN(transpose_xt_result_limits)(int *);
 void FORTRAN(transpose_xt_compute)(int *, DFTYPE *, DFTYPE *);
@@ -814,6 +844,14 @@ void FORTRAN(transpose_xz_init)(int *);
 void FORTRAN(transpose_xz_result_limits)(int *);
 void FORTRAN(transpose_xz_compute)(int *, DFTYPE *, DFTYPE *);
 
+void FORTRAN(transpose_ye_init)(int *);
+void FORTRAN(transpose_ye_result_limits)(int *);
+void FORTRAN(transpose_ye_compute)(int *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(transpose_yf_init)(int *);
+void FORTRAN(transpose_yf_result_limits)(int *);
+void FORTRAN(transpose_yf_compute)(int *, DFTYPE *, DFTYPE *);
+
 void FORTRAN(transpose_yt_init)(int *);
 void FORTRAN(transpose_yt_result_limits)(int *);
 void FORTRAN(transpose_yt_compute)(int *, DFTYPE *, DFTYPE *);
@@ -822,6 +860,14 @@ void FORTRAN(transpose_yz_init)(int *);
 void FORTRAN(transpose_yz_result_limits)(int *);
 void FORTRAN(transpose_yz_compute)(int *, DFTYPE *, DFTYPE *);
 
+void FORTRAN(transpose_ze_init)(int *);
+void FORTRAN(transpose_ze_result_limits)(int *);
+void FORTRAN(transpose_ze_compute)(int *, DFTYPE *, DFTYPE *);
+
+void FORTRAN(transpose_zf_init)(int *);
+void FORTRAN(transpose_zf_result_limits)(int *);
+void FORTRAN(transpose_zf_compute)(int *, DFTYPE *, DFTYPE *);
+
 void FORTRAN(transpose_zt_init)(int *);
 void FORTRAN(transpose_zt_result_limits)(int *);
 void FORTRAN(transpose_zt_compute)(int *, DFTYPE *, DFTYPE *);
@@ -1089,6 +1135,35 @@ 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 *);
+
+void FORTRAN(str_replace_init)(int *);
+void FORTRAN(str_replace_compute)(int *, char *, char *, char *, char *);
+
+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 *);
+
 /*
  *  End of declarations for internally linked external functions
  *  ------------------------------------ */
@@ -1130,7 +1205,7 @@ int FORTRAN(efcn_scan)( int *gfcn_num_internal )
  *  int_dlsym.pl.  Check that N_INTEF is correctly defined below.
  */
 
-#define N_INTEF 180
+#define N_INTEF 198
 
 struct {
   char funcname[EF_MAX_NAME_LENGTH];
@@ -1268,54 +1343,72 @@ struct {
    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_xt");
-   strcpy(I_EFnames[133].funcname, "transpose_xy");
-   strcpy(I_EFnames[134].funcname, "transpose_xz");
-   strcpy(I_EFnames[135].funcname, "transpose_yt");
-   strcpy(I_EFnames[136].funcname, "transpose_yz");
-   strcpy(I_EFnames[137].funcname, "transpose_zt");
-   strcpy(I_EFnames[138].funcname, "treverse");
-   strcpy(I_EFnames[139].funcname, "unique_str2int");
-   strcpy(I_EFnames[140].funcname, "write_webrow");
-   strcpy(I_EFnames[141].funcname, "xauto_cor");
-   strcpy(I_EFnames[142].funcname, "xcat");
-   strcpy(I_EFnames[143].funcname, "xcat_str");
-   strcpy(I_EFnames[144].funcname, "xreverse");
-   strcpy(I_EFnames[145].funcname, "ycat");
-   strcpy(I_EFnames[146].funcname, "ycat_str");
-   strcpy(I_EFnames[147].funcname, "yreverse");
-   strcpy(I_EFnames[148].funcname, "zaxreplace_avg");
-   strcpy(I_EFnames[149].funcname, "zaxreplace_bin");
-   strcpy(I_EFnames[150].funcname, "zaxreplace_rev");
-   strcpy(I_EFnames[151].funcname, "zaxreplace_zlev");
-   strcpy(I_EFnames[152].funcname, "zcat");
-   strcpy(I_EFnames[153].funcname, "zcat_str");
-   strcpy(I_EFnames[154].funcname, "zreverse");
-   strcpy(I_EFnames[155].funcname, "eofsvd_space");
-   strcpy(I_EFnames[156].funcname, "eofsvd_stat");
-   strcpy(I_EFnames[157].funcname, "eofsvd_tfunc");
-   strcpy(I_EFnames[158].funcname, "expnd_by_len");
-   strcpy(I_EFnames[159].funcname, "expnd_by_len_str");
-   strcpy(I_EFnames[160].funcname, "fc_isubset");
-   strcpy(I_EFnames[161].funcname, "expndi_by_z_counts");
-   strcpy(I_EFnames[162].funcname, "expndi_id_by_z_counts");
-   strcpy(I_EFnames[163].funcname, "expndi_by_m_counts");
-   strcpy(I_EFnames[164].funcname, "str_mask");
-   strcpy(I_EFnames[165].funcname, "samplexyt_nrst");
-   strcpy(I_EFnames[166].funcname, "separate");
-   strcpy(I_EFnames[167].funcname, "time_reformat");
-   strcpy(I_EFnames[168].funcname, "ft_to_orthogonal");
-   strcpy(I_EFnames[169].funcname, "curv_to_rect_fsu");
-   strcpy(I_EFnames[170].funcname, "piecewise3");
-   strcpy(I_EFnames[171].funcname, "sample_fast_i");
-   strcpy(I_EFnames[172].funcname, "sample_fast_i_str");
-   strcpy(I_EFnames[173].funcname, "separate_str");
-   strcpy(I_EFnames[174].funcname, "write_webrow_gwt");
-   strcpy(I_EFnames[175].funcname, "bxcat");
-   strcpy(I_EFnames[176].funcname, "bxsequence");
-   strcpy(I_EFnames[177].funcname, "bxsequence_str");
-   strcpy(I_EFnames[178].funcname, "bcompressi");
-   strcpy(I_EFnames[179].funcname, "scat2grid_bin_xyzt");
+   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");
 
 /*    
  *  ------------------------------------ 
@@ -1545,24 +1638,24 @@ void FORTRAN(create_pyefcn)(char fname[], int *lenfname, char pymod[], int *lenp
      */   
     if ( EF_Util_setsig("create_pyefcn")) {
         list_remove_rear(STATIC_ExternalFunctionList);
-        free(ef_ptr->internals_ptr);
-        free(ef_ptr);
+        PyMem_Free(ef_ptr->internals_ptr);
+        PyMem_Free(ef_ptr);
         strcpy(errstring, "Unable to set signal handlers in create_pyefcn");
         *lenerrstring = strlen(errstring);
         return;
     }
     if (sigsetjmp(sigjumpbuffer, 1) != 0) {
         list_remove_rear(STATIC_ExternalFunctionList);
-        free(ef_ptr->internals_ptr);
-        free(ef_ptr);
+        PyMem_Free(ef_ptr->internals_ptr);
+        PyMem_Free(ef_ptr);
         strcpy(errstring, "Signal caught in create_pyefcn");
         *lenerrstring = strlen(errstring);
         return;
     }
     if (setjmp(jumpbuffer) != 0) {
         list_remove_rear(STATIC_ExternalFunctionList);
-        free(ef_ptr->internals_ptr);
-        free(ef_ptr);
+        PyMem_Free(ef_ptr->internals_ptr);
+        PyMem_Free(ef_ptr);
         strcpy(errstring, "ef_bail_out called in create_pyefcn");
         *lenerrstring = strlen(errstring);
         return;
@@ -1577,8 +1670,8 @@ void FORTRAN(create_pyefcn)(char fname[], int *lenfname, char pymod[], int *lenp
     *lenerrstring = strlen(errstring);
     if ( *lenerrstring > 0 ) {
         list_remove_rear(STATIC_ExternalFunctionList);
-        free(ef_ptr->internals_ptr);
-        free(ef_ptr);
+        PyMem_Free(ef_ptr->internals_ptr);
+        PyMem_Free(ef_ptr);
     }
     return;
 }
@@ -1723,7 +1816,7 @@ void FORTRAN(efcn_get_custom_axes)( int *id_ptr, int *cx_list_ptr, int *status )
   /*
    * Store the context list globally.
    */
-  EF_store_globals(NULL, NULL, cx_list_ptr, NULL, NULL);
+  EF_store_globals(NULL, cx_list_ptr, NULL, NULL);
 
   /*
    * Find the external function.
@@ -1833,8 +1926,10 @@ void FORTRAN(efcn_get_custom_axes)( int *id_ptr, int *cx_list_ptr, int *status )
  * 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
+ *           It was never used by the routine, anyway.
  */
-void FORTRAN(efcn_get_result_limits)( int *id_ptr, DFTYPE *memory, int *mr_list_ptr, int *cx_list_ptr, int *status )
+void FORTRAN(efcn_get_result_limits)( int *id_ptr, int *mr_list_ptr, int *cx_list_ptr, int *status )
 {
   ExternalFunction *ef_ptr=NULL;
   char tempText[EF_MAX_NAME_LENGTH]="";
@@ -1850,7 +1945,7 @@ void FORTRAN(efcn_get_result_limits)( int *id_ptr, DFTYPE *memory, int *mr_list_
   /*
    * Store the memory pointer and various lists globally.
    */
-  EF_store_globals(memory, mr_list_ptr, cx_list_ptr, NULL, NULL);
+  EF_store_globals(mr_list_ptr, cx_list_ptr, NULL, NULL);
 
   /*
    * Find the external function.
@@ -1966,13 +2061,14 @@ void FORTRAN(efcn_get_result_limits)( int *id_ptr, DFTYPE *memory, int *mr_list_
  * the function to calculate the result.
  */
 void FORTRAN(efcn_compute)( int *id_ptr, int *narg_ptr, int *cx_list_ptr, int *mr_list_ptr, int *mres_ptr,
-	DFTYPE *bad_flag_ptr, int *mr_arg_offset_ptr, DFTYPE *memory, int *status )
+	DFTYPE *bad_flag_ptr, int *status )
 {
   ExternalFunction *ef_ptr=NULL;
   ExternalFunctionInternals *i_ptr=NULL;
   DFTYPE *arg_ptr[EF_MAX_COMPUTE_ARGS];
   int xyzt=0, i=0, j=0;
   int size=0;
+  int nargs=0;
   char tempText[EF_MAX_NAME_LENGTH]="";
   int internally_linked = FALSE;
 
@@ -2030,7 +2126,7 @@ void FORTRAN(efcn_compute)( int *id_ptr, int *narg_ptr, int *cx_list_ptr, int *m
    * Store the memory pointer and various lists globally.
    */
   FORTRAN(efcn_copy_array_dims)();
-  EF_store_globals(memory, mr_list_ptr, cx_list_ptr, mres_ptr, bad_flag_ptr);
+  EF_store_globals(mr_list_ptr, cx_list_ptr, mres_ptr, bad_flag_ptr);
 
   /*
    * Find the external function.
@@ -2044,20 +2140,27 @@ 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;
+  FORTRAN(efcn_rqst_mr_ptrs)(&nargs, mr_list_ptr, mres_ptr);
+
   if ( i_ptr->language == EF_F ) {
     /*
      * Begin assigning the arg_ptrs.
      */
 
+
     /* First come the arguments to the function. */
 
      for (i=0; i<i_ptr->num_reqd_args; i++) {
-       arg_ptr[i] = memory + mr_arg_offset_ptr[i];
+       arg_ptr[i] = GLOBAL_arg_ptrs[i];
      }
 
     /* Now for the result */
 
-     arg_ptr[i++] = memory + mr_arg_offset_ptr[EF_MAX_ARGS];
+     arg_ptr[i++] = GLOBAL_res_ptr;
 
     /* Now for the work arrays */
 
@@ -2129,7 +2232,7 @@ void FORTRAN(efcn_compute)( int *id_ptr, int *narg_ptr, int *cx_list_ptr, int *m
         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 *)malloc(size);
+        arg_ptr[i] = (DFTYPE *)PyMem_Malloc(size);
         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", 
@@ -2481,7 +2584,7 @@ void FORTRAN(efcn_compute)( int *id_ptr, int *narg_ptr, int *cx_list_ptr, int *m
      * we should begin freeing up memory at arg_ptr[num_reqd_args+1].
      */
     for (i=i_ptr->num_reqd_args+1; i<i_ptr->num_reqd_args+1+i_ptr->num_work_arrays; i++) {
-      free(arg_ptr[i]);
+      PyMem_Free(arg_ptr[i]);
     }
 
     /* Success for EF_F */
@@ -2493,10 +2596,11 @@ void FORTRAN(efcn_compute)( int *id_ptr, int *narg_ptr, int *cx_list_ptr, int *m
       DFTYPE badflags[EF_MAX_COMPUTE_ARGS];
       char  errstring[2048];
 
+
       /* First the results grid array, then the argument grid arrays */
-      arg_ptr[0] = memory + mr_arg_offset_ptr[EF_MAX_ARGS];
+      arg_ptr[0] = GLOBAL_res_ptr; // 1/17 *sh*
       for (i = 0; i < i_ptr->num_reqd_args; i++) {
-          arg_ptr[i+1] = memory + mr_arg_offset_ptr[i];
+          arg_ptr[i+1] = GLOBAL_arg_ptrs[i];
       }
 
       /* Assign the memory limits, step values, and bad-data-flag values - first result, then arguments */
@@ -3130,7 +3234,7 @@ int EF_New( ExternalFunction *this )
    * If the allocation failed, print a warning message and return.
    */
 
-  this->internals_ptr = malloc(sizeof(ExternalFunctionInternals));
+  this->internals_ptr = PyMem_Malloc(sizeof(ExternalFunctionInternals));
   i_ptr = this->internals_ptr;
 
   if ( i_ptr == NULL ) {
@@ -3188,18 +3292,28 @@ int EF_New( ExternalFunction *this )
  * Store the global values which will be needed by utility routines
  * in EF_ExternalUtil.c
  */
-void EF_store_globals(DFTYPE *memory_ptr, 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;
 
-  GLOBAL_memory_ptr = memory_ptr;
   GLOBAL_mr_list_ptr = mr_list_ptr;
   GLOBAL_cx_list_ptr = cx_list_ptr;
   GLOBAL_mres_ptr = mres_ptr;
   GLOBAL_bad_flag_ptr = bad_flag_ptr;
 
 }
+void FORTRAN(efcn_pass_arg_ptr)(int *iarg, DFTYPE *arg_ptr)
+{
+  int iarg_c = *iarg-1;   // FORTRAN index to c index
+
+  GLOBAL_arg_ptrs[iarg_c] = arg_ptr;
+}
+
+void FORTRAN(efcn_pass_res_ptr)(DFTYPE *res_ptr)
+{
+  GLOBAL_res_ptr = res_ptr;
+}
 
 
 /*
@@ -4022,6 +4136,31 @@ else if ( !strcmp(name,"scat2ddups_init_") ) return (void *)FORTRAN(scat2ddups_i
 else if ( !strcmp(name,"scat2ddups_result_limits_") ) return (void *)FORTRAN(scat2ddups_result_limits);
 else if ( !strcmp(name,"scat2ddups_compute_") ) return (void *)FORTRAN(scat2ddups_compute);
 
+/* transpose_ef.F */
+else if ( !strcmp(name,"transpose_ef_init_") ) return (void *)FORTRAN(transpose_ef_init);
+else if ( !strcmp(name,"transpose_ef_result_limits_") ) return (void *)FORTRAN(transpose_ef_result_limits);
+else if ( !strcmp(name,"transpose_ef_compute_") ) return (void *)FORTRAN(transpose_ef_compute);
+
+/* transpose_te.F */
+else if ( !strcmp(name,"transpose_te_init_") ) return (void *)FORTRAN(transpose_te_init);
+else if ( !strcmp(name,"transpose_te_result_limits_") ) return (void *)FORTRAN(transpose_te_result_limits);
+else if ( !strcmp(name,"transpose_te_compute_") ) return (void *)FORTRAN(transpose_te_compute);
+
+/* transpose_tf.F */
+else if ( !strcmp(name,"transpose_tf_init_") ) return (void *)FORTRAN(transpose_tf_init);
+else if ( !strcmp(name,"transpose_tf_result_limits_") ) return (void *)FORTRAN(transpose_tf_result_limits);
+else if ( !strcmp(name,"transpose_tf_compute_") ) return (void *)FORTRAN(transpose_tf_compute);
+
+/* transpose_xe.F */
+else if ( !strcmp(name,"transpose_xe_init_") ) return (void *)FORTRAN(transpose_xe_init);
+else if ( !strcmp(name,"transpose_xe_result_limits_") ) return (void *)FORTRAN(transpose_xe_result_limits);
+else if ( !strcmp(name,"transpose_xe_compute_") ) return (void *)FORTRAN(transpose_xe_compute);
+
+/* transpose_xf.F */
+else if ( !strcmp(name,"transpose_xf_init_") ) return (void *)FORTRAN(transpose_xf_init);
+else if ( !strcmp(name,"transpose_xf_result_limits_") ) return (void *)FORTRAN(transpose_xf_result_limits);
+else if ( !strcmp(name,"transpose_xf_compute_") ) return (void *)FORTRAN(transpose_xf_compute);
+
 /* transpose_xt.F */
 else if ( !strcmp(name,"transpose_xt_init_") ) return (void *)FORTRAN(transpose_xt_init);
 else if ( !strcmp(name,"transpose_xt_result_limits_") ) return (void *)FORTRAN(transpose_xt_result_limits);
@@ -4037,6 +4176,16 @@ else if ( !strcmp(name,"transpose_xz_init_") ) return (void *)FORTRAN(transpose_
 else if ( !strcmp(name,"transpose_xz_result_limits_") ) return (void *)FORTRAN(transpose_xz_result_limits);
 else if ( !strcmp(name,"transpose_xz_compute_") ) return (void *)FORTRAN(transpose_xz_compute);
 
+/* transpose_ye.F */
+else if ( !strcmp(name,"transpose_ye_init_") ) return (void *)FORTRAN(transpose_ye_init);
+else if ( !strcmp(name,"transpose_ye_result_limits_") ) return (void *)FORTRAN(transpose_ye_result_limits);
+else if ( !strcmp(name,"transpose_ye_compute_") ) return (void *)FORTRAN(transpose_ye_compute);
+
+/* transpose_yf.F */
+else if ( !strcmp(name,"transpose_yf_init_") ) return (void *)FORTRAN(transpose_yf_init);
+else if ( !strcmp(name,"transpose_yf_result_limits_") ) return (void *)FORTRAN(transpose_yf_result_limits);
+else if ( !strcmp(name,"transpose_yf_compute_") ) return (void *)FORTRAN(transpose_yf_compute);
+
 /* transpose_yt.F */
 else if ( !strcmp(name,"transpose_yt_init_") ) return (void *)FORTRAN(transpose_yt_init);
 else if ( !strcmp(name,"transpose_yt_result_limits_") ) return (void *)FORTRAN(transpose_yt_result_limits);
@@ -4047,6 +4196,16 @@ else if ( !strcmp(name,"transpose_yz_init_") ) return (void *)FORTRAN(transpose_
 else if ( !strcmp(name,"transpose_yz_result_limits_") ) return (void *)FORTRAN(transpose_yz_result_limits);
 else if ( !strcmp(name,"transpose_yz_compute_") ) return (void *)FORTRAN(transpose_yz_compute);
 
+/* transpose_ze.F */
+else if ( !strcmp(name,"transpose_ze_init_") ) return (void *)FORTRAN(transpose_ze_init);
+else if ( !strcmp(name,"transpose_ze_result_limits_") ) return (void *)FORTRAN(transpose_ze_result_limits);
+else if ( !strcmp(name,"transpose_ze_compute_") ) return (void *)FORTRAN(transpose_ze_compute);
+
+/* transpose_zf.F */
+else if ( !strcmp(name,"transpose_zf_init_") ) return (void *)FORTRAN(transpose_zf_init);
+else if ( !strcmp(name,"transpose_zf_result_limits_") ) return (void *)FORTRAN(transpose_zf_result_limits);
+else if ( !strcmp(name,"transpose_zf_compute_") ) return (void *)FORTRAN(transpose_zf_compute);
+
 /* transpose_zt.F */
 else if ( !strcmp(name,"transpose_zt_init_") ) return (void *)FORTRAN(transpose_zt_init);
 else if ( !strcmp(name,"transpose_zt_result_limits_") ) return (void *)FORTRAN(transpose_zt_result_limits);
@@ -4296,6 +4455,38 @@ else if ( !strcmp(name,"bcompressi_init_") ) return (void *)FORTRAN(bcompressi_i
 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);
+
+/* str_replace.F */
+else if ( !strcmp(name,"str_replace_init_") ) return (void *)FORTRAN(str_replace_init);
+else if ( !strcmp(name,"str_replace_compute_") ) return (void *)FORTRAN(str_replace_compute);
+
+/* expndi_to_et.F */
+else if ( !strcmp(name,"expndi_to_et_init_") ) return (void *)FORTRAN(expndi_to_et_init);
+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);
+
+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,"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,"innerproduct_t_init_") ) return (void *)FORTRAN(innerproduct_t_init);
+else if ( !strcmp(name,"innerproduct_t_compute_") ) return (void *)FORTRAN(innerproduct_t_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);
+
+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);
+
+
 return NULL;
  }
 /*  End of function pointer list for internally-linked External Functions
diff --git a/fer/ccr/SOURCE_FILES b/fer/ccr/SOURCE_FILES
index b8334f6..9978645 100644
--- a/fer/ccr/SOURCE_FILES
+++ b/fer/ccr/SOURCE_FILES
@@ -1,5 +1,4 @@
 SRCS_C = \
-add_c_pointer.c\
 batch_graphics.c\
 binaryRead.c\
 c_strcmp.c\
@@ -16,22 +15,27 @@ check_nan_data_sub.c\
 compare_c_strings.c\
 copy_c_string.c\
 create_utf8_string.c\
-perl_read.c\
+dynmemUtil.c\
 EF_InternalUtil.c\
 ferret_dispatch_c.c\
-ferret_query.c\
 free_cached_full_array.c\
 free_c_pointer.c\
 free_c_string_array.c\
+free_dyn_mem.c\
+get_c_pointer.c\
 get_c_string.c\
 get_c_string_len.c\
 get_max_c_string_len.c\
+get_mr_mem.c\
+get_ws_mem.c\
 get_offset_c_string.c\
 get_offset_c_string_len.c\
 get_sys_cmnd.c\
 init_c_string_array.c\
 linux_routines_c.c\
 list.c\
+nullify_mr.c\
+nullify_ws.c\
 recover_cached_2d_array_point.c\
 recover_cached_full_array.c\
 replaceable_bad_flags.c \
@@ -42,7 +46,6 @@ save_c_string.c\
 set_nan.c\
 set_null_c_string.c\
 set_null_c_string_array.c\
-sizeof_pointer.c\
 text_to_utf8.c\
 write_dods.c\
 xfer_c_ptrs.c
diff --git a/fer/ccr/add_c_pointer.c b/fer/ccr/add_c_pointer.c
deleted file mode 100644
index f09a858..0000000
--- a/fer/ccr/add_c_pointer.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-*
-*  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.  
-*/
-
-
-/* 
- * Add integer offset to the given pointer.
- * Pointer may be spaced "naturally" (del=0) or at 8 byte intervals (del=1).
- *
- */
-
-#include <Python.h> /* make sure Python.h is first */
-#include <stdlib.h>
-
-double add_c_pointer_(ptr, del, offset)
-     char*** ptr;
-     int* del;
-     int* offset;
-{
-
-  int delta = *del ? 8/sizeof(char**) : 1;
-  union ptr_or_doub
-  {
-    double d;
-    char** ptr;
-  };
-  union ptr_or_doub new_ptr;
-
-  new_ptr.ptr = *ptr + (*offset * delta) ;
-
-  return new_ptr.d;
-
-}
diff --git a/fer/ccr/batch_graphics.c b/fer/ccr/batch_graphics.c
index b44e7ca..c8e8c7f 100644
--- a/fer/ccr/batch_graphics.c
+++ b/fer/ccr/batch_graphics.c
@@ -37,20 +37,13 @@
 #include <Python.h> /* make sure Python.h is first */
 #include <assert.h>
 #include <string.h>
+#include "ferret.h"
 #include "grdel.h"
 
-#ifdef NO_ENTRY_NAME_UNDERSCORES
-#define FORTRAN(a) a
-#else
-#define FORTRAN(a) a##_
-#endif
-
 /* set_batch_graphics */
-void FORTRAN(set_batch_graphics)(char *outfile)
+void set_batch_graphics(char *outfile, int *pngonly)
 {
   int length;
-  int status;
-  int aaint;
 
   assert( outfile != NULL );
   length = strlen(outfile);
@@ -65,11 +58,13 @@ void FORTRAN(set_batch_graphics)(char *outfile)
   }
 
   /* 
-   * GKS metafile format no longer supported. The "-batch",
-   * "-gif", and "-unmapped" options do not change the workflow.
+   * GKS metafile format no longer supported. The "-batch"
+   * and "-unmapped" options do not change the workflow.
    * If one of these option is given, however, windows are not
    * made visible.  This allows the use of a faster graphics engine.
+   * -gif or -png sets the Cairo surface to an image surface
+   *  allowing even faster processing, but with limitations.
    */
-  FORTRAN(fgd_set_unmapped_default)();
+  FORTRAN(fgd_set_unmapped_default)(pngonly);
 }
 
diff --git a/fer/ccr/binaryRead.c b/fer/ccr/binaryRead.c
index 75d0698..fb013d4 100644
--- a/fer/ccr/binaryRead.c
+++ b/fer/ccr/binaryRead.c
@@ -21,6 +21,7 @@
 #include <string.h>
 #include <stdio.h>
 #include <unistd.h>
+#include "ferret.h"
 #include "binaryRead.h"
 
                                 /* FORTRAN interface variables */
@@ -126,15 +127,16 @@ static void freeMemory(FileInfo *file) {
 
 static FileInfo *createBinaryReader(char *name, int lengths[MAXDIMS],
                              int permutes[MAXDIMS], int skip, int swap){
-  FileInfo *fi = (FileInfo *)calloc(1, sizeof(FileInfo));
   int i;
+  FileInfo *fi = (FileInfo *)PyMem_Malloc(sizeof(FileInfo));
+  memset(fi, 0, sizeof(FileInfo));
                                 /* Open file */
   if (!checkMem(fi)){
     return 0;
   }
   Errbuf[0] = '\0';
   fi->pageSize = getpagesize();
-  fi->name = (char *)malloc(strlen(name)+1);
+  fi->name = (char *)PyMem_Malloc(strlen(name)+1);
   fi->doSwap = swap;
   if (!checkMem(fi->name)){
     return 0;
@@ -178,14 +180,14 @@ static FileInfo *createBinaryReader(char *name, int lengths[MAXDIMS],
 }
 
 static void deleteVar(VarInfo *theVar) {
-  free(theVar);
+  PyMem_Free(theVar);
 }
 
 static void deleteBinaryReader(FileInfo *fi){
-  free(fi->vars);
+  PyMem_Free(fi->vars);
   tidyUp(fi);
-  free(fi->name);
-  free(fi);
+  PyMem_Free(fi->name);
+  PyMem_Free(fi);
 }
 
 static int addVar(FileInfo *fi, DFTYPE *data, int type, int doRead){
@@ -193,9 +195,9 @@ static int addVar(FileInfo *fi, DFTYPE *data, int type, int doRead){
   int i;
 
   if (fi->vars == (VarInfo *)0){
-    fi->vars = malloc(sizeof(VarInfo));
+    fi->vars = PyMem_Malloc(sizeof(VarInfo));
   } else {
-    fi->vars = (VarInfo *)realloc(fi->vars, sizeof(VarInfo)*(fi->nvars+1));
+    fi->vars = (VarInfo *)PyMem_Realloc(fi->vars, sizeof(VarInfo)*(fi->nvars+1));
   }
   if (!checkMem(fi->vars)){
     return 0;
diff --git a/fer/ccr/binaryRead.h b/fer/ccr/binaryRead.h
index 6079dd8..c5f713a 100644
--- a/fer/ccr/binaryRead.h
+++ b/fer/ccr/binaryRead.h
@@ -15,14 +15,6 @@
 #define MEM_INFO_BLOCKSIZE      1048576	/* Max mem chunk size */
 #define MEM_INFO_MINTHRESH      1024 /* No closer to mmap boundary than this! */
 
-/* Easier way of handling single/double floating-point declarations */
-#ifdef double_p
-#define DFTYPE double
-#else
-#define DFTYPE float
-#endif
-
-
 typedef struct _MemInfo {
   char *data;			/* Memory mapped file contents */
   int relPos;			/* Position relative to mem block start */
@@ -61,8 +53,4 @@ typedef struct _FileInfo {
   int doSwap;			/* Swap bytes */
 } FileInfo;
 
-#ifndef FORTRAN
-#define FORTRAN(a) a##_
-#endif
-
 #endif
diff --git a/fer/ccr/c_dncase.c b/fer/ccr/c_dncase.c
index bb33088..4e7adff 100644
--- a/fer/ccr/c_dncase.c
+++ b/fer/ccr/c_dncase.c
@@ -44,23 +44,22 @@
 #include <ctype.h>
 #include <stdlib.h>
 #include <string.h>
+#include "ferret.h"
 
-void c_dncase_(in_ptr, out_ptr)
-     char** in_ptr;
-     char** out_ptr;
+void FORTRAN(c_dncase)(char **in_ptr, char **out_ptr)
 {
    char* tmp;
    char* tmp2;
 
    if ( *out_ptr != NULL )
-      free(*out_ptr);
+      PyMem_Free(*out_ptr);
    if ( *in_ptr == NULL ) {
       /* undefined string given, so return an undefined string */
       *out_ptr = NULL;
       return;
    }
   
-   *out_ptr = (char *) malloc(sizeof(char) * (strlen(*in_ptr)+1));
+   *out_ptr = (char *) PyMem_Malloc(sizeof(char) * (strlen(*in_ptr)+1));
    if ( *out_ptr == NULL )
       abort();
 
diff --git a/fer/ccr/c_strcat.c b/fer/ccr/c_strcat.c
index 576985b..b8a0704 100644
--- a/fer/ccr/c_strcat.c
+++ b/fer/ccr/c_strcat.c
@@ -43,11 +43,9 @@
 #include <Python.h> /* make sure Python.h is first */
 #include <stdlib.h>
 #include <string.h>
+#include "ferret.h"
 
-void c_strcat_(in_ptr1, in_ptr2, out_ptr)  
-     char** in_ptr1;
-     char** in_ptr2;
-     char** out_ptr;
+void FORTRAN(c_strcat)(char **in_ptr1, char **in_ptr2, char **out_ptr)  
 {
    char* tmp1; 
    char* tmp2;
@@ -55,7 +53,7 @@ void c_strcat_(in_ptr1, in_ptr2, out_ptr)
    int len2;
 
    if ( *out_ptr != NULL )
-      free(*out_ptr);
+      PyMem_Free(*out_ptr);
 
    /* this treats an undefined string the same as an empty string */
    if ( *in_ptr1 == NULL )
@@ -67,7 +65,7 @@ void c_strcat_(in_ptr1, in_ptr2, out_ptr)
    else
       len2 = strlen(*in_ptr2);
 
-   *out_ptr = (char *) malloc(sizeof(char) * (len1 + len2 + 1));
+   *out_ptr = (char *) PyMem_Malloc(sizeof(char) * (len1 + len2 + 1));
    if ( *out_ptr == NULL )
       abort();
 
diff --git a/fer/ccr/c_strcmp.c b/fer/ccr/c_strcmp.c
index 21e8aaf..508e9e8 100644
--- a/fer/ccr/c_strcmp.c
+++ b/fer/ccr/c_strcmp.c
@@ -40,11 +40,9 @@
 
 #include <Python.h> /* make sure Python.h is first */
 #include <string.h>
+#include "ferret.h"
 
-void c_strcmp_(in_ptr1, in_ptr2, out_ptr)
-     char** in_ptr1;
-     char** in_ptr2;
-     int* out_ptr;
+void FORTRAN(c_strcmp)(char **in_ptr1, char **in_ptr2, int *out_ptr)
 {
    char *str1;
    char *str2;
diff --git a/fer/ccr/c_strfloat.c b/fer/ccr/c_strfloat.c
index 59e9b06..0ba9c1d 100644
--- a/fer/ccr/c_strfloat.c
+++ b/fer/ccr/c_strfloat.c
@@ -48,10 +48,7 @@
 #include <stdlib.h>
 #include "ferret.h"
 
-void c_strfloat_(in_ptr, out_ptr, bad_ptr)
-     char** in_ptr;
-     DFTYPE* out_ptr;
-     DFTYPE* bad_ptr;
+void FORTRAN(c_strfloat)(char **in_ptr, DFTYPE *out_ptr, DFTYPE *bad_ptr)
 {
    double dval;
    char  *endptr;
diff --git a/fer/ccr/c_strindex.c b/fer/ccr/c_strindex.c
index 8c0b534..7eab77d 100644
--- a/fer/ccr/c_strindex.c
+++ b/fer/ccr/c_strindex.c
@@ -43,11 +43,9 @@
 
 #include <Python.h> /* make sure Python.h is first */
 #include <string.h>
+#include "ferret.h"
 
-void c_strindex_(in_ptr1, in_ptr2, out_ptr)
-     char** in_ptr1;
-     char** in_ptr2;
-     int* out_ptr;
+void FORTRAN(c_strindex)(char **in_ptr1, char **in_ptr2, int *out_ptr)
 {
    char * result;
 
diff --git a/fer/ccr/c_strlen.c b/fer/ccr/c_strlen.c
index c9ca8f4..a8e0f72 100644
--- a/fer/ccr/c_strlen.c
+++ b/fer/ccr/c_strlen.c
@@ -43,10 +43,9 @@
 
 #include <Python.h> /* make sure Python.h is first */
 #include <string.h>
+#include "ferret.h"
 
-void c_strlen_(in_ptr, out_ptr)
-     char** in_ptr;
-     int* out_ptr;
+void FORTRAN(c_strlen)(char **in_ptr, int *out_ptr)
 {
    /* this treats an undefined string the same as an empty string */
    if ( *in_ptr == NULL )
diff --git a/fer/ccr/c_strrindex.c b/fer/ccr/c_strrindex.c
index 48874b0..749384d 100644
--- a/fer/ccr/c_strrindex.c
+++ b/fer/ccr/c_strrindex.c
@@ -44,11 +44,9 @@
 
 #include <Python.h> /* make sure Python.h is first */
 #include <string.h>
+#include "ferret.h"
 
-void c_strrindex_(in_ptr1, in_ptr2, out_ptr)
-     char** in_ptr1;
-     char** in_ptr2;
-     int* out_ptr;
+void FORTRAN(c_strrindex)(char **in_ptr1, char **in_ptr2, int *out_ptr)
 {
    char *result;
    char *tmp;
diff --git a/fer/ccr/c_substr.c b/fer/ccr/c_substr.c
index fe4abf3..beb22c4 100644
--- a/fer/ccr/c_substr.c
+++ b/fer/ccr/c_substr.c
@@ -48,29 +48,26 @@
 
 #include <Python.h> /* make sure Python.h is first */
 #include <stdlib.h>
+#include "ferret.h"
 
-void c_substr_(in_ptr, offset, length, out_ptr)
-     char** in_ptr;
-     int* offset;
-     int* length;
-     char** out_ptr;     
+void FORTRAN(c_substr)(char **in_ptr, int *offset, int *length, char **out_ptr)
 {
    char* tmp;
    char* tmp2;
    int i, int_length, int_offset;
 
    if ( *out_ptr != NULL )
-      free(*out_ptr);
+      PyMem_Free(*out_ptr);
    if ( *in_ptr == NULL ) {
       /* undefined string given, so return an undefined string */
       *out_ptr = NULL;
       return;
    }
 
-   int_length = (int)(*length + 0.5);
-   int_offset = (int)(*offset + 0.5) - 1;
+   int_length = *length;
+   int_offset = *offset - 1;
 
-   *out_ptr = (char *) malloc(sizeof(char) * (int_length + 1));
+   *out_ptr = (char *) PyMem_Malloc(sizeof(char) * (int_length + 1));
    if ( *out_ptr == NULL )
       abort();
 
diff --git a/fer/ccr/c_upcase.c b/fer/ccr/c_upcase.c
index 5455cc0..f45bf66 100644
--- a/fer/ccr/c_upcase.c
+++ b/fer/ccr/c_upcase.c
@@ -44,23 +44,22 @@
 #include <ctype.h>
 #include <stdlib.h>
 #include <string.h>
+#include "ferret.h"
 
-void c_upcase_(in_ptr, out_ptr)
-     char** out_ptr;
-     char** in_ptr;
+void FORTRAN(c_upcase)(char **in_ptr, char **out_ptr)
 {
    char* tmp;
    char* tmp2;
 
    if ( *out_ptr != NULL )
-      free(*out_ptr);
+      PyMem_Free(*out_ptr);
    if ( *in_ptr == NULL ) {
       /* undefined string given, so return an undefined string */
       *out_ptr = NULL;
       return;
    }
 
-   *out_ptr = (char *) malloc(sizeof(char) * (strlen(*in_ptr) + 1));
+   *out_ptr = (char *) PyMem_Malloc(sizeof(char) * (strlen(*in_ptr) + 1));
    if ( *out_ptr == NULL )
       abort();
 
diff --git a/fer/ccr/cache_full_array.c b/fer/ccr/cache_full_array.c
index f1a3c30..df77f50 100644
--- a/fer/ccr/cache_full_array.c
+++ b/fer/ccr/cache_full_array.c
@@ -50,22 +50,19 @@
  */
 
 #include <Python.h> /* make sure Python.h is first */
-#include <stdlib.h>
 #include "ferret.h"
  
-void FORTRAN(cache_full_array)( double *array, int *alen, double **pointer_val )
-
 /*
   input  - array and alen (array length)
   output - pointer to array
       note the "lie" here": FORTRAN actually passes the 
 */
-
+void FORTRAN(cache_full_array)( double *array, int *alen, double **pointer_val )
 {
   double *ptr;
   int i;
 
-  ptr = (double *) malloc(sizeof(double) * (*alen));
+  ptr = (double *) PyMem_Malloc(sizeof(double) * (*alen));
 
   for (i=0; i < *alen; i++) {
     ptr[i] = array[i];
diff --git a/fer/ccr/check_nan_data_sub.c b/fer/ccr/check_nan_data_sub.c
index 7e2adbe..8839ac9 100644
--- a/fer/ccr/check_nan_data_sub.c
+++ b/fer/ccr/check_nan_data_sub.c
@@ -45,12 +45,10 @@
  */
 
 #include <Python.h> /* make sure Python.h is first */
-#include <float.h>
+#include <math.h>
 #include "ferret.h"
 
-void check_nan_data_sub_ ( DFTYPE *src, 
-			   int *size, DFTYPE *data_bad )
-
+void FORTRAN(check_nan_data_sub)(DFTYPE *src, int *size, DFTYPE *data_bad)
 {
   int i;
 
diff --git a/fer/ccr/compare_c_strings.c b/fer/ccr/compare_c_strings.c
index 8880277..3673c96 100644
--- a/fer/ccr/compare_c_strings.c
+++ b/fer/ccr/compare_c_strings.c
@@ -39,10 +39,9 @@
 
 #include <Python.h> /* make sure Python.h is first */
 #include <string.h>
+#include "ferret.h"
 
-int compare_c_strings_(ptr_1, ptr_2)
-     char** ptr_2;
-     char** ptr_1;
+int FORTRAN(compare_c_strings)(char **ptr_1, char **ptr_2)
 {
    char *str1;
    char *str2;
diff --git a/fer/ccr/copy_c_string.c b/fer/ccr/copy_c_string.c
index 46f2c90..2b6a310 100644
--- a/fer/ccr/copy_c_string.c
+++ b/fer/ccr/copy_c_string.c
@@ -44,19 +44,18 @@
 #include <Python.h> /* make sure Python.h is first */
 #include <stdlib.h>
 #include <string.h>
+#include "ferret.h"
 
-void copy_c_string_(in_ptr, out_ptr)
-     char** out_ptr;
-     char** in_ptr;
+void FORTRAN(copy_c_string)(char **in_ptr, char **out_ptr)
 {
    if ( *out_ptr != NULL )
-      free(*out_ptr);
+      PyMem_Free(*out_ptr);
    if ( *in_ptr == NULL ) {
      *out_ptr = NULL;
      return;
    }
 
-   *out_ptr = (char *) malloc(sizeof(char) * (strlen(*in_ptr) + 1));
+   *out_ptr = (char *) PyMem_Malloc(sizeof(char) * (strlen(*in_ptr) + 1));
    if ( *out_ptr == NULL )
       abort();
 
diff --git a/fer/ccr/create_utf8_string.c b/fer/ccr/create_utf8_string.c
index 07e8523..7e14da5 100644
--- a/fer/ccr/create_utf8_string.c
+++ b/fer/ccr/create_utf8_string.c
@@ -33,7 +33,7 @@
  */
 
 #include <Python.h> /* make sure Python.h is first */
-#include "utf8str.h"
+#include "ferret.h"
 
 /*
  * Assigns a character string with the values for a UTF-8 character
@@ -47,7 +47,7 @@
  *                  representation of the UTF-8 characters, 
  *                  or zero if the codepoint is invalid for UTF-8
  */
-void create_utf8_str_(const int *codepoint, char *utf8str, int *utf8strlen) 
+void FORTRAN(create_utf8_str)(const int *codepoint, char *utf8str, int *utf8strlen) 
 {
     int codept = *codepoint;
 
diff --git a/fer/ccr/set_nan.c b/fer/ccr/dynmemUtil.c
similarity index 61%
copy from fer/ccr/set_nan.c
copy to fer/ccr/dynmemUtil.c
index b29b1af..96c4fe5 100644
--- a/fer/ccr/set_nan.c
+++ b/fer/ccr/dynmemUtil.c
@@ -1,12 +1,11 @@
 /*
-*
 *  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
+*  obligations and understandings on the user. The user is granteHd 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
@@ -30,48 +29,73 @@
 *  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.  
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
 *
 */
 
-/*
- * set_nan.c:
+/* dynmemUtil.c
  *
- *  set a float (or double) value to NaN - needed for the command
- *      set variable/bad=nan var_name
+ * Steve Hankin
+ * Jan. 2017
  *
- *  kob - 05/03
- * v600  4/06 *acm* - Change set_nan from a float function to void, passing
- *                    back the result as an argument. Needed for port to 64-bit 
- * *acm*  1/12 - Ferret 6.8 ifdef double_p for double-precision ferret,
- *               see the definition of macro DFTYPE in ferret.h 
- */
+ * This file contains the utility functions which Ferret
+ * needs in order to pass an array of dynamic memory pointers (mr_list)
+ * to c.  It bypasses the difficulties of passing the FORTRAN derived type
+ * of pointers directly as an array
+ *
+ * V702 *sh*   1/17 
+*/
 
-#include <Python.h> /* make sure Python.h is first */
-#include <signal.h>
-#include <stdio.h>
-#include <math.h>
+#include <Python.h>
 #include "ferret.h"
+#include "EF_Util.h"
 
-void FORTRAN(set_nan) (DFTYPE *val)
+/*
+ * Create a pointer array in c.  Pass the pointer back as an long int value.
+ */
+void FORTRAN(dynmem_make_ptr_array)(int* n, long* mr_ptrs_val, int* status)
 {
-  sigset_t block_fpe;
+  int size;
+  DFTYPE** mr_ptrs;
+  *status = FERR_OK;  // default
+
+  size = sizeof(DFTYPE*) * *n;
+  mr_ptrs = (DFTYPE**)PyMem_Malloc(size);
 
-  /* initialize the signal mask */
-  sigemptyset(&block_fpe);
-  sigaddset(&block_fpe, SIGFPE); 
+  if ( mr_ptrs == NULL ) { 
+    fprintf(stderr, "**ERROR in dynmem_make_ptr_array");
+    *status = FERR_EF_ERROR;
+    return;
+  }
 
-  /* block SIGFPE so we don't have problems generating NaN */
-  sigprocmask(SIG_BLOCK, &block_fpe, NULL); 
 
-  /* calculating the inverse hyperbolic cosine of a value less
-     than 1 will result in NaN - seems better than doing a divide
-     by 0 */
-  *val = acosh(.2);  
-  /*val = 1./0.; */
+  *mr_ptrs_val = (long)mr_ptrs; 
+}
 
-  /* unblock SIGFPE */
-  sigprocmask(SIG_UNBLOCK, &block_fpe, NULL); 
+/*
+ * Insert one pointer (from FORTRAN) into the c pointer array
+ */
+void FORTRAN(dynmem_pass_1_ptr)(int* iarg, DFTYPE* arg_ptr, long* mr_ptrs_val)
+{
+  int iarg_c = *iarg-1;   // FORTRAN index to c index
+  DFTYPE**  mr_ptrs;
 
-  return;
+  mr_ptrs = (DFTYPE**) *mr_ptrs_val;
+
+  mr_ptrs[iarg_c]  = arg_ptr;
 }
+
+
+/*
+ * Free the pointer array
+ */
+void FORTRAN(dynmem_free_ptr_array)(long* mr_ptrs_val)
+{
+  DFTYPE** mr_ptrs;
+
+  mr_ptrs = (DFTYPE**) *mr_ptrs_val;
+
+  PyMem_Free(mr_ptrs);
+}
+
+
diff --git a/fer/ccr/ferret_dispatch_c.c b/fer/ccr/ferret_dispatch_c.c
index d584adb..d946c8f 100644
--- a/fer/ccr/ferret_dispatch_c.c
+++ b/fer/ccr/ferret_dispatch_c.c
@@ -54,42 +54,16 @@
 *   *js* 6.99 Set line buffering if in server mode
 *  *acm* 1/12 - Ferret 6.8 ifdef double_p for double-precision ferret, see the
 *              definition of macro DFTYPE in ferret.h 
+*  *sh* 1/17 - trac enhancement #2369 -- dynamic memory management 
 */
 
 #include <Python.h> /* make sure Python.h is first */
 #include <unistd.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <ferret.h>
-#include "ferret_shared_buffer.h"
+#include "ferret.h"
 
-/* function prototype for FORTRAN routine */
-/* added ifdef for necessity of trailing underscores *kob* */
-
-#ifdef NO_ENTRY_NAME_UNDERSCORES
-#   ifdef _NO_PROTO
-void ferret_dispatch_( );
-#   else
-void ferret_dispatch( DFTYPE *memory, char *init_command, int *rtn_flags,
-		       int *nflags, char *rtn_chars, int *nchars, int *nerrlines );
-#   endif
-#else                     /*NO_ENTRY_NAME_UNDERSCORES*/
-#   ifdef _NO_PROTO
-void ferret_dispatch_( );
-#   else
-void ferret_dispatch_( DFTYPE *memory, char *init_command, int *rtn_flags,
-		       int *nflags, char *rtn_chars, int *nchars, int *nerrlines );
-#   endif
-#endif                    /*NO_ENTRY_NAME_UNDERSCORES*/
-
-#ifdef _NO_PROTO
-void ferret_dispatch_c( memory, init_command, sBuffer )
-DFTYPE *memory;
-char *init_command;
-smPtr sBuffer;
-#else
-void ferret_dispatch_c( DFTYPE *memory, char *init_command, smPtr sBuffer )
-#endif
+void ferret_dispatch_c( char *init_command, smPtr sBuffer )
 {
   int flag_buff_size  = NUMFLAGS;
   int TEXTLENGTH_size  = TEXTLENGTH;
@@ -98,13 +72,10 @@ void ferret_dispatch_c( DFTYPE *memory, char *init_command, smPtr sBuffer )
 /* call the FORTRAN program that actually does the FERRET command */
 /* all arguments must be pointers for FORTRAN */
 /*ifdef check added 5/95 *kob* */
+/* 1/17 *sh* removed the "memory" argument -- replaced by dynamic allocation
+   of hyperslab memory using FORTRAN90 pointers and c (or python) */
 
-#ifdef NO_ENTRY_NAME_UNDERSCORES
-  ferret_dispatch
-#else
-  ferret_dispatch_
-#endif
-                  ( memory, init_command, sBuffer->flags, &flag_buff_size,
+  FORTRAN(ferret_dispatch)( init_command, sBuffer->flags, &flag_buff_size,
 		    sBuffer->text, &TEXTLENGTH_size, &(sBuffer->numStrings) );
 
   return;
@@ -123,6 +94,7 @@ void set_secure() {
 int FORTRAN(is_secure)() {
   return SecureFlag;
 }
+
 /*
  * Routines for setting/getting server settings
  */
diff --git a/fer/ccr/ferret_query.c b/fer/ccr/ferret_query.c
deleted file mode 100644
index 8a8b19b..0000000
--- a/fer/ccr/ferret_query.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
-*
-*  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.  
-*
-*/
-
-
-
-/*
-*	ferret_query - C routine to query state information from FERRET 
-*
-* TMAP interactive data analysis program
-*
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-*/
-
-/*
-* revision history:
-*   11/16/94 - updated to use macro declarations from ferret_shared_buffer.h
-*   
-*   05/25/95 - added ifdef check for trailing underscores not needed on HP *kob*
-*
-*/
-
-#include <Python.h> /* make sure Python.h is first */
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include "ferret_shared_buffer.h"
-
-/* function prototype for FORTRAN routine */
-/* added ifdef for necessity of trailing underscores *kob* */
-
-#ifdef NO_ENTRY_NAME_UNDERSCORES
-#    ifdef _NO_PROTO
-void ferret_query_f( );
-#    else
-void ferret_query_f( int *query, int *flags, int *nflags,
-		      char *text, int *ntext,
-		      int *numStrings, int *numNumbers,
-		      double *nums, int *ncoord,
-		      char *arg1, char *arg2, char *arg3,
-		      char *arg4, char *arg5,
-		      int *status );
-#    endif
-#else                              /*NO_ENTRY_NAME_UNDERSCORES*/
-#    ifdef _NO_PROTO
-void ferret_query_f_( );
-#    else
-void ferret_query_f_( int *query, int *flags, int *nflags,
-		      char *text, int *ntext,
-		      int *numStrings, int *numNumbers,
-		      double *nums, int *ncoord,
-		      char *arg1, char *arg2, char *arg3,
-		      char *arg4, char *arg5,
-		      int *status );
-#    endif
-#endif                             /*NO_ENTRY_NAME_UNDERSCORES*/
-
-#ifdef _NO_PROTO
-int ferret_query(query, sBuffer, arg1, arg2, arg3, arg4, arg5 )
-int query;
-smPtr sBuffer;
-char *arg1, *arg2, *arg3, *arg4, *arg5;
-
-#else
-int ferret_query(int query, smPtr sBuffer,
-		 char *arg1, char *arg2, char *arg3, char *arg4, char *arg5 )
-#endif
-{
-  int flag_buff_size  = NUMFLAGS;
-  int TEXTLENGTH_size  = TEXTLENGTH;
-  int NUMDOUBLES_size = NUMDOUBLES;
-
-  int status, i;
-
-/* diagnostic code */
-#ifdef QUERY_DEBUG
-  printf("Query number %d\n",query);
-  if ( arg1[0] ) printf("Arg 1 = %s\n",arg1);
-  if ( arg2[0] ) printf("Arg 2 = %s\n",arg2);
-  if ( arg3[0] ) printf("Arg 3 = %s\n",arg3);
-  if ( arg4[0] ) printf("Arg 4 = %s\n",arg4);
-  if ( arg5[0] ) printf("Arg 5 = %s\n",arg4);
-  *(sBuffer->text) = 'Q';
-#endif
-
-/* call the FORTRAN program that actually does the query */
-/* all arguments must be pointers for FORTRAN */
-
-#ifdef NO_ENTRY_NAME_UNDERSCORES
-  ferret_query_f
-#else
-  ferret_query_f_
-#endif
-                 ( &query, sBuffer->flags, &flag_buff_size,
-		   sBuffer->text, &TEXTLENGTH_size,
-		   &(sBuffer->numStrings), &(sBuffer->numNumbers),
-		   &(sBuffer->nums[0]), &NUMDOUBLES_size,
-		   arg1, arg2, arg3, arg4, arg5, &status );
-
-
-/* diagnostic code */
-#ifdef QUERY_DEBUG
-  for (i=0; i<NUMFLAGS; i++) printf("Flag %d is %d\n",i,sBuffer->flags[i]);
-  {
-    char *ptext = sBuffer->text;
-    while (*ptext) {
-      putchar((int) *ptext);
-      if (13 == (int) *ptext ) putchar('\n');
-      ptext++;
-    }
-  }
-/*  printf("Returned text:%s\n",sBuffer->text); */
-  printf("numStrings: %d\n",sBuffer->numStrings);
-  printf("numNumbers: %d\n",sBuffer->numNumbers);
-  for (i=0; i<sBuffer->numNumbers; i++) printf("Object %d is %g\n",i,
-					      sBuffer->nums[i]);
-#endif
-
-  return( status );
-}
-
diff --git a/fer/ccr/free_c_pointer.c b/fer/ccr/free_c_pointer.c
index 0587c6a..43d279e 100644
--- a/fer/ccr/free_c_pointer.c
+++ b/fer/ccr/free_c_pointer.c
@@ -40,11 +40,10 @@
  */
 
 #include <Python.h> /* make sure Python.h is first */
-#include <stdlib.h>
+#include "ferret.h"
 
-void free_c_pointer_(fer_ptr)
-     char*** fer_ptr;
+void FORTRAN(free_c_pointer)(char **fer_ptr)
 {
-   free(*fer_ptr);
+   PyMem_Free(*fer_ptr);
    *fer_ptr = NULL;
 }
diff --git a/fer/ccr/free_c_string_array.c b/fer/ccr/free_c_string_array.c
index 46a1830..911f522 100644
--- a/fer/ccr/free_c_string_array.c
+++ b/fer/ccr/free_c_string_array.c
@@ -44,10 +44,9 @@
 
 #include <Python.h> /* make sure Python.h is first */
 #include <stdlib.h>
+#include "ferret.h"
 
-void free_c_string_array_(fer_ptr, length)
-     char*** fer_ptr;
-     int* length;
+void FORTRAN(free_c_string_array)(char ***fer_ptr, int *length)
 {
    char** each_str_ptr = *fer_ptr;
    int i;
@@ -55,7 +54,7 @@ void free_c_string_array_(fer_ptr, length)
    /* free the individual strings */
    for (i=0; i<*length; i++) {
       if ( *each_str_ptr != NULL ) {
-         free(*each_str_ptr);
+         PyMem_Free(*each_str_ptr);
          *each_str_ptr = NULL;
       }
       each_str_ptr += 8/sizeof(char**);
diff --git a/fer/ccr/free_cached_full_array.c b/fer/ccr/free_cached_full_array.c
index 6a2b681..a71f8e2 100644
--- a/fer/ccr/free_cached_full_array.c
+++ b/fer/ccr/free_cached_full_array.c
@@ -50,23 +50,20 @@
 
 #include <Python.h> /* make sure Python.h is first */
 #include <stdlib.h>
-#include <assert.h>
 #include "ferret.h"
 
  
-void FORTRAN(free_cached_full_array)( double **pointer_val )
-
 /*
   see complementary routines recover_cached_full_array and cache_full_array.c
 */
-
+void FORTRAN(free_cached_full_array)( double **pointer_val )
 {
   double *ptr;
 
   ptr = *pointer_val;
 
   if (ptr) {
-	  free(ptr);  // could do assert on ptr==0
+	  PyMem_Free(ptr);
 	  *pointer_val=0;
   }
 
diff --git a/fer/ccr/free_dyn_mem.c b/fer/ccr/free_dyn_mem.c
new file mode 100644
index 0000000..80c896a
--- /dev/null
+++ b/fer/ccr/free_dyn_mem.c
@@ -0,0 +1,19 @@
+/*
+ * free c heap storage that was used by a Ferret mvar
+ *
+ * V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management
+ */
+
+#include <Python.h> /* make sure Python.h is first */
+#include "ferret.h"
+
+/*
+  input  - mvar: pointer to memory allocated to Ferret variable, "mvar"
+*/
+void FORTRAN(free_dyn_mem) ( double *mvar )
+{
+
+  PyMem_Free(mvar);
+
+  return;
+}
diff --git a/fer/ccr/free_c_pointer.c b/fer/ccr/get_c_pointer.c
similarity index 88%
copy from fer/ccr/free_c_pointer.c
copy to fer/ccr/get_c_pointer.c
index 0587c6a..c90bf1c 100644
--- a/fer/ccr/free_c_pointer.c
+++ b/fer/ccr/get_c_pointer.c
@@ -34,17 +34,22 @@
 */
 
 
-/* 
- *   Free the memory associated with the passed pointer.
- *   Pointer is passed by reference -- as per a FORTRAN subroutine call.
- */
-
 #include <Python.h> /* make sure Python.h is first */
-#include <stdlib.h>
+#include "ferret.h"
 
-void free_c_pointer_(fer_ptr)
-     char*** fer_ptr;
+double FORTRAN(get_c_pointer)(char** mr_ptr, char** mr_ptr_val)
 {
-   free(*fer_ptr);
-   *fer_ptr = NULL;
+
+  union ptr_or_val
+  {
+    char*  val;
+    char** ptr;
+  };
+  union ptr_or_val my_conversion;
+
+  my_conversion.ptr = mr_ptr;
+  *mr_ptr_val = my_conversion.val;
+
+  return;
+
 }
diff --git a/fer/ccr/get_c_string.c b/fer/ccr/get_c_string.c
index e1946de..53974fe 100644
--- a/fer/ccr/get_c_string.c
+++ b/fer/ccr/get_c_string.c
@@ -40,11 +40,9 @@
 
 #include <Python.h> /* make sure Python.h is first */
 #include <string.h>
+#include "ferret.h"
 
-void get_c_string_(ptr_ptr, outstring, maxlen)
-     char** ptr_ptr;
-     char* outstring;
-     int* maxlen;
+void FORTRAN(get_c_string)(char **ptr_ptr, char *outstring, int *maxlen)
 {
     char *str1;
 
diff --git a/fer/ccr/get_c_string_len.c b/fer/ccr/get_c_string_len.c
index e033d9b..589a4db 100644
--- a/fer/ccr/get_c_string_len.c
+++ b/fer/ccr/get_c_string_len.c
@@ -40,9 +40,9 @@
 
 #include <Python.h> /* make sure Python.h is first */
 #include <string.h>
+#include "ferret.h"
 
-int get_c_string_len_(ptr_ptr)
-     char** ptr_ptr;
+int FORTRAN(get_c_string_len)(char **ptr_ptr)
 {
    /* treats an undefined string the same as an empty string */
    if ( *ptr_ptr == NULL )
diff --git a/fer/ccr/get_max_c_string_len.c b/fer/ccr/get_max_c_string_len.c
index 6b2259d..39b6eff 100644
--- a/fer/ccr/get_max_c_string_len.c
+++ b/fer/ccr/get_max_c_string_len.c
@@ -41,10 +41,9 @@
 
 #include <Python.h> /* make sure Python.h is first */
 #include <string.h>
+#include "ferret.h"
 
-int get_max_c_string_len_(fer_ptr, nstr)
-     char*** fer_ptr;
-     int* nstr;
+int FORTRAN(get_max_c_string_len)(char ***fer_ptr, int *nstr)
 {
    char** each_str_ptr;
    int max=0;
diff --git a/fer/ccr/get_mr_mem.c b/fer/ccr/get_mr_mem.c
new file mode 100644
index 0000000..80e85bc
--- /dev/null
+++ b/fer/ccr/get_mr_mem.c
@@ -0,0 +1,39 @@
+/*
+ *
+ * Allocate c heap storage needed for the storage of Ferret mrs
+ * and pass the pointer to it to an FORTRAN 90
+ * routine that will save it in COMMON
+ *
+ * V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management
+ *
+ */
+
+/* F90 pointers are not true pointers.  Instead they are simply names that 
+ serve as aliases for normal FORTRAN variables.  The only way I could think
+ of to pass the c-malloc'ed pointer into the F90 pointer was to disguise
+ it as a normal FORTRAN variable by passing it as a subroutine argument.
+*/
+
+#include <Python.h> /* make sure Python.h is first */
+#include "ferret.h"
+
+/*
+  input  - index:  Ferret mr index at which to store the array pointer
+  input  - alen:   array length
+*/
+void FORTRAN(get_mr_mem)( double *index, int *alen, int *status )
+{
+  double *pointer;
+
+  pointer = (double *) PyMem_Malloc(sizeof(double) * (*alen));
+
+  if (pointer)
+    {
+      FORTRAN(store_mr_ptr) (index, alen, pointer);
+      *status = 3;
+    }
+  else
+    *status = 0;
+
+  return;
+}
diff --git a/fer/ccr/get_offset_c_string.c b/fer/ccr/get_offset_c_string.c
index c57c6f3..1f9a31b 100644
--- a/fer/ccr/get_offset_c_string.c
+++ b/fer/ccr/get_offset_c_string.c
@@ -39,12 +39,9 @@
  */
 
 #include <Python.h> /* make sure Python.h is first */
+#include "ferret.h"
 
-void get_offset_c_string_(fer_ptr, offset, outstring, maxlen)
-     char*** fer_ptr;
-     int* offset;
-     char* outstring;
-     int* maxlen;
+void FORTRAN(get_offset_c_string)(char ***fer_ptr, int *offset, char *outstring, int *maxlen)
 {
    char** each_str_ptr;
    char* str_ptr;
diff --git a/fer/ccr/get_offset_c_string_len.c b/fer/ccr/get_offset_c_string_len.c
index 4f9904e..691e7f4 100644
--- a/fer/ccr/get_offset_c_string_len.c
+++ b/fer/ccr/get_offset_c_string_len.c
@@ -40,10 +40,9 @@
 
 #include <Python.h> /* make sure Python.h is first */
 #include <string.h>
+#include "ferret.h"
 
-int get_offset_c_string_len_(fer_ptr, offset)
-     char*** fer_ptr;
-     int* offset;
+int FORTRAN(get_offset_c_string_len)(char ***fer_ptr, int *offset)
 {
    char** each_str_ptr;
 
diff --git a/fer/ccr/get_sys_cmnd.c b/fer/ccr/get_sys_cmnd.c
index 93e12f0..5f287f2 100644
--- a/fer/ccr/get_sys_cmnd.c
+++ b/fer/ccr/get_sys_cmnd.c
@@ -44,12 +44,15 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
+#include "ferret.h"
 
-void get_sys_cmnd_(fer_ptr, nlines, cmd, stat)
-     char*** fer_ptr; /* output: char** pointer to strings */
-     int* nlines; /* output: number of strings read */
-     char* cmd; /* input: the shell command to execute */
+/*
+     char*** fer_ptr;  output: char** pointer to strings
+     int* nlines; output: number of strings read
+     char* cmd; input: the shell command to execute
      int* stat;
+ */
+void FORTRAN(get_sys_cmnd)(char ***fer_ptr, int *nlines, char *cmd, int *stat)
 {
     char** sarray;
     int linebufsize =  BUFSIZ;  /* initial size of input line buffer */
@@ -61,26 +64,24 @@ void get_sys_cmnd_(fer_ptr, nlines, cmd, stat)
     int nincr  = 0;  /* lines read in in this increment of the sarray */
     int i, slen;
     int incomplete;  /* if buffer is too small for some input line */
-    int increment = BUFSIZ;  /* extend length of char** ptr next by this */
+    int increment = 128;  /* initial length of char** ptr array */
     int last_increment = increment;
 
     /* initialize */
     *nlines = 0;
     *stat = 0;
 
-    /*
-     * Use calloc for sarray to initialize everything to NULL pointers
-     * for Ferret's string arrays.
-     */
-    sarray = (char **) calloc(BUFSIZ, sizeof(char *));
+    sarray = (char **) PyMem_Malloc(increment * sizeof(char *));
     if ( sarray == NULL ) {
        *stat = 1;
        return;
     }
+    for (i = 0; i < increment; i++)
+       sarray[i] = NULL;
 
-    buf = (char *) malloc(sizeof(char) * linebufsize);
+    buf = (char *) PyMem_Malloc(sizeof(char) * linebufsize);
     if ( buf == NULL ) {
-       free(sarray);
+       PyMem_Free(sarray);
        *stat = 1;
        return;
     }
@@ -96,12 +97,12 @@ void get_sys_cmnd_(fer_ptr, nlines, cmd, stat)
              /* line buffer wasn't large enough --> allocate more */
              while (incomplete) {
                 linebufsize += BUFSIZ;
-                newbuf = (char *) realloc(buf, sizeof(char) * linebufsize);
+                newbuf = (char *) PyMem_Realloc(buf, sizeof(char) * linebufsize);
                 if ( newbuf == NULL ) {
-                   free(buf);
+                   PyMem_Free(buf);
                    for (i = 0; i < *nlines; i++)
-                      free(sarray[i]);
-                   free(sarray);
+                      PyMem_Free(sarray[i]);
+                   PyMem_Free(sarray);
                    *stat = 1;
                    return;
                 }
@@ -118,12 +119,12 @@ void get_sys_cmnd_(fer_ptr, nlines, cmd, stat)
 
           /* make and save a permanent copy of the input line */
           /* BUG FIX *kob* v552 - need to add one to string length for null */
-          pmnt = (char *) malloc(sizeof(char) * (int)(strlen(buf)+1));
+          pmnt = (char *) PyMem_Malloc(sizeof(char) * (int)(strlen(buf)+1));
           if ( pmnt == NULL ) {
-             free(buf);
+             PyMem_Free(buf);
              for (i = 0; i < *nlines; i++)
-                free(sarray[i]);
-             free(sarray);
+                PyMem_Free(sarray[i]);
+             PyMem_Free(sarray);
              *stat = 1;
              return;
           }
@@ -132,13 +133,13 @@ void get_sys_cmnd_(fer_ptr, nlines, cmd, stat)
              /* double the length of the string pointer array */
              last_increment = increment;
              increment *= 2;
-             newsarray = (char **) realloc(sarray, sizeof(char *) * increment);
+             newsarray = (char **) PyMem_Realloc(sarray, sizeof(char *) * increment);
              if ( newsarray == NULL ) {
-                free(buf);
+                PyMem_Free(buf);
                 for (i = 0; i < *nlines; i++)
-                   free(sarray[i]);
-                free(sarray);
-                free(pmnt);
+                   PyMem_Free(sarray[i]);
+                PyMem_Free(sarray);
+                PyMem_Free(pmnt);
                 *stat = 1;
                 return;
              }
@@ -157,14 +158,14 @@ void get_sys_cmnd_(fer_ptr, nlines, cmd, stat)
     }
 
     /* buf no longer needed */
-    free(buf);
+    PyMem_Free(buf);
 
     /* always return at least one string (avoid FORTRAN probs) */
     /* *kob* v552 - bug fix - still need to allocate space for the null string */
     if (*nlines == 0 ) {
-       pmnt = (char *) malloc(sizeof(char));
+       pmnt = (char *) PyMem_Malloc(sizeof(char));
        if ( pmnt == NULL ) {
-          free(sarray);
+          PyMem_Free(sarray);
           *stat = 1;
           return;
        }
diff --git a/fer/ccr/get_ws_mem.c b/fer/ccr/get_ws_mem.c
new file mode 100644
index 0000000..fd0efa7
--- /dev/null
+++ b/fer/ccr/get_ws_mem.c
@@ -0,0 +1,39 @@
+/*
+ *
+ * Allocate c heap storage needed for the storage of Ferret work storage
+ * and pass the pointer to it to an FORTRAN 90
+ * routine that will save it in COMMON
+ *
+ * V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management
+ *
+ */
+
+/* F90 pointers are not true pointers.  Instead they are simply names that 
+ serve as aliases for normal FORTRAN variables.  The only way I could think
+ of to pass the c-malloc'ed pointer into the F90 pointer was to disguise
+ it as a normal FORTRAN variable by passing it as a subroutine argument.
+*/
+
+#include <Python.h> /* make sure Python.h is first */
+#include "ferret.h"
+
+/*
+  input  - index:  Ferret ws index at which to store the array pointer
+  input  - alen:   array length
+*/
+void FORTRAN(get_ws_mem)( int *index, long *alen, int *status )
+{
+  double *pointer;
+
+  pointer = (double *) PyMem_Malloc(sizeof(double) * (*alen));
+
+  if (pointer)
+    {
+      FORTRAN(store_ws_ptr) (index, alen, pointer);
+      *status = 3;
+    }
+  else
+    *status = 0;
+
+  return;
+}
diff --git a/fer/ccr/init_c_string_array.c b/fer/ccr/init_c_string_array.c
index 826cded..a27a44b 100644
--- a/fer/ccr/init_c_string_array.c
+++ b/fer/ccr/init_c_string_array.c
@@ -39,12 +39,9 @@
  */
 
 #include <Python.h> /* make sure Python.h is first */
-#include <stdlib.h>
+#include "ferret.h"
 
-void init_c_string_array_(length, mr_blk1, fer_ptr)
-     int* length;
-     char** mr_blk1;
-     char*** fer_ptr;
+void FORTRAN(init_c_string_array)(int *length, char **mr_blk1, char ***fer_ptr)
 {
    int i;
    char** ptr;
diff --git a/fer/ccr/linux_routines_c.c b/fer/ccr/linux_routines_c.c
index 6e0c36f..b04bd9f 100644
--- a/fer/ccr/linux_routines_c.c
+++ b/fer/ccr/linux_routines_c.c
@@ -36,6 +36,7 @@
 
 #include <Python.h> /* make sure Python.h is first */
 #include <stdio.h>
+#include "ferret.h"
 
 /*
  * Routine needed only for linux.  nag F90 didn't have a perror routine,
@@ -44,7 +45,7 @@
  * kob 3/97
  */
          
-void linux_perror_(char *string)
+void FORTRAN(linux_perror)(char *string)
 {
   perror(string);
 }
diff --git a/fer/ccr/list.c b/fer/ccr/list.c
index 3c8eebe..aa09a28 100644
--- a/fer/ccr/list.c
+++ b/fer/ccr/list.c
@@ -54,12 +54,11 @@
  *       char *data;
  */
 
-static char brag[] = "$$Version: list-2.1 Copyright (C) 1992 Bradley C. Spatz";
-
 #include <Python.h> /* make sure Python.h is first */
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
+#include "ferret.h"
 #include "list.h"
 
 
@@ -68,7 +67,7 @@ LIST *list_init(void)
    LIST *list;
 
    /* Allocate, initialize, and return a new list. */
-   list = (LIST *) malloc(sizeof(LIST));
+   list = (LIST *) PyMem_Malloc(sizeof(LIST));
    list->size = 0;
    list->front = NULL;;
    list->rear = NULL;;
@@ -126,7 +125,7 @@ LIST *list_mvfront(LIST *list)
 
 LIST *list_mvrear(LIST *list)
 {
-   /* Move to the front of the list.*/
+   /* Move to the rear of the list.*/
    list->curr = list->rear;
    return(list);
 }
@@ -173,7 +172,7 @@ static LIST_ELEMENT *list_create_element(char *data, int bytes)
    /* Allocate storage for the new node and its data.  Return NULL if
     * unable to allocate.
     */
-   new = (LIST_ELEMENT *) malloc(sizeof(LIST_ELEMENT));
+   new = (LIST_ELEMENT *) PyMem_Malloc(sizeof(LIST_ELEMENT));
    if (new == NULL) {
       return(NULL);
    }
@@ -182,7 +181,7 @@ static LIST_ELEMENT *list_create_element(char *data, int bytes)
     * Then either copy the data or just the reference into the node.
     */
    if (bytes > 0) {
-      new->data = (char *) malloc(bytes);
+      new->data = (char *) PyMem_Malloc(bytes);
       if (new->data == NULL) {
 	 return(NULL);
       }
@@ -284,7 +283,7 @@ static char *list_remove_single(LIST *list)
 
    /* The list has one element.  Easy. */
    data = list->curr->data;
-   free(list->curr);
+   PyMem_Free(list->curr);
    list->front = list->rear = list->curr = NULL;
    list->size--;
    return (data);
@@ -317,7 +316,7 @@ char *list_remove_front(LIST *list)
       list->front = temp->next;
       if (list->curr == temp)
 	 list->curr = temp->next;
-      free(temp);
+      PyMem_Free(temp);
       list->size--;
    }
 
@@ -351,7 +350,7 @@ char *list_remove_rear(LIST *list)
       list->rear = temp->prev;
       if (list->curr == temp)
 	 list->curr = temp->prev;
-      free(temp);
+      PyMem_Free(temp);
       list->size--;
    }
 
@@ -392,7 +391,7 @@ char *list_remove_curr(LIST *list)
       temp->next->prev = temp->prev;
       temp->prev->next = temp->next;
       list->curr = temp->next;
-      free(temp);
+      PyMem_Free(temp);
       list->size--;
    }
 
@@ -473,7 +472,7 @@ void list_free(LIST *list, void (*dealloc)(char *))
        */
       if ( dealloc != LIST_NODEALLOC ) {
 	 if ( dealloc == LIST_DEALLOC ) {
-	    free(data);
+	    PyMem_Free(data);
 	 }
 	 else {
 	    (*dealloc)(data);
@@ -481,5 +480,5 @@ void list_free(LIST *list, void (*dealloc)(char *))
       }
    }
 
-   free(list);
+   PyMem_Free(list);
 }
diff --git a/fer/ccr/nullify_mr.c b/fer/ccr/nullify_mr.c
new file mode 100644
index 0000000..fa72ef0
--- /dev/null
+++ b/fer/ccr/nullify_mr.c
@@ -0,0 +1,26 @@
+/*
+ * use gcc -c nullify_mr.c
+ *
+ * set the F90 array pointer to null
+ *
+ * V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management
+ *
+ */
+
+
+#include <Python.h> /* make sure Python.h is first */
+#include "ferret.h"
+
+/*
+  input  - mr:  Ferret mr index at which to store the array pointer
+*/
+void FORTRAN(nullify_mr)( int *mr )
+{
+  double *nul_ptr;
+
+  nul_ptr = (double *) NULL;
+
+  FORTRAN(store_nul_mr_ptr) (mr, nul_ptr);
+
+  return;
+}
diff --git a/fer/ccr/nullify_ws.c b/fer/ccr/nullify_ws.c
new file mode 100644
index 0000000..1120ad4
--- /dev/null
+++ b/fer/ccr/nullify_ws.c
@@ -0,0 +1,25 @@
+/*
+ * use gcc -c nullify_ws.c
+ *
+ * set the F90 array pointer to null
+ *
+ * V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management
+ *
+ */
+
+#include <Python.h> /* make sure Python.h is first */
+#include "ferret.h"
+
+/*
+  input  - ws:  Ferret ws index at which to store the array pointer
+*/
+void FORTRAN(nullify_ws)( int *ws )
+{
+  double *nul_ptr;
+
+  nul_ptr = (double *) NULL;
+
+  FORTRAN(store_nul_ws_ptr) (ws, nul_ptr);
+
+  return;
+}
diff --git a/fer/ccr/perl_read.c b/fer/ccr/perl_read.c
deleted file mode 100644
index 52952ff..0000000
--- a/fer/ccr/perl_read.c
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <Python.h> /* make sure Python.h is first */
-#include <stdio.h>
-#include <stdlib.h>
-#include "ferret.h"
-#include "binaryRead.h"
-
-int FORTRAN(pl_read_var)(DFTYPE *mem, int *lengths){
-  return 0;
-}
-
-void FORTRAN(pl_get_error)(char *buf) {
-}
-
-int FORTRAN(pl_open)(char *script_name) {
-  fprintf(stderr, "Attempt to use pl_open with Perl disabled\n");
-  exit(1);
-  return -1;
-}
-
-int FORTRAN(pl_close)() {
-  return -1;
-}
-
diff --git a/fer/ccr/recover_cached_2d_array_point.c b/fer/ccr/recover_cached_2d_array_point.c
index 87739a4..b9d121a 100644
--- a/fer/ccr/recover_cached_2d_array_point.c
+++ b/fer/ccr/recover_cached_2d_array_point.c
@@ -49,19 +49,15 @@
  */
 
 #include <Python.h> /* make sure Python.h is first */
-#include <stdlib.h>
 #include "ferret.h"
  
-void FORTRAN(recover_cached_2d_array_point)(
-					 double *array, int *dim1, int *dim2, 
-                                         int *i, int *j,
-					 double **pointer_val )
-
 /*
   see related routine recover_cached_full_array.c
   FORTRAN subscripting reversed from C, and indexed to 1 instead of 0
 */
-
+void FORTRAN(recover_cached_2d_array_point)( double *array, int *dim1, int *dim2, 
+                                             int *i, int *j,
+					     double **pointer_val )
 {
   double *ptr;
   int index;
diff --git a/fer/ccr/recover_cached_full_array.c b/fer/ccr/recover_cached_full_array.c
index 3a2b190..2d07785 100644
--- a/fer/ccr/recover_cached_full_array.c
+++ b/fer/ccr/recover_cached_full_array.c
@@ -48,15 +48,12 @@
  */
 
 #include <Python.h> /* make sure Python.h is first */
-#include <stdlib.h>
 #include "ferret.h"
  
-void FORTRAN(recover_cached_full_array)( double *array, int *alen, double **pointer_val )
-
 /*
   see complementary routine cache_full_array.c
 */
-
+void FORTRAN(recover_cached_full_array)( double *array, int *alen, double **pointer_val )
 {
   double *ptr;
   int i;
diff --git a/fer/ccr/replace_bad_data_sub.c b/fer/ccr/replace_bad_data_sub.c
index 4743bdc..7ad98da 100644
--- a/fer/ccr/replace_bad_data_sub.c
+++ b/fer/ccr/replace_bad_data_sub.c
@@ -52,8 +52,7 @@
 #include "ferret.h"
 
 void FORTRAN(replace_bad_data_sub)( DFTYPE *old_bad, DFTYPE *src, 
-			   int *size, DFTYPE *new_bad )
-
+			            int *size, DFTYPE *new_bad )
 {
   int i;
   double tmp;
diff --git a/fer/ccr/replaceable_bad_flags.c b/fer/ccr/replaceable_bad_flags.c
index 1abc411..4f6d810 100644
--- a/fer/ccr/replaceable_bad_flags.c
+++ b/fer/ccr/replaceable_bad_flags.c
@@ -49,9 +49,7 @@
 #include <math.h>
 #include "ferret.h"
 
-int FORTRAN(replaceable_bad_flags)(bad1, bad2)
-     DFTYPE *bad1, *bad2;
-
+int FORTRAN(replaceable_bad_flags)(DFTYPE *bad1, DFTYPE *bad2)
 {
   if (isnan(*bad1) || isnan(*bad2))
     return 1; 
@@ -59,5 +57,4 @@ int FORTRAN(replaceable_bad_flags)(bad1, bad2)
     return 1;
   else
     return 0;
-
 }
diff --git a/fer/ccr/run_thredds_browser.c b/fer/ccr/run_thredds_browser.c
index 34b2c49..a44c00c 100644
--- a/fer/ccr/run_thredds_browser.c
+++ b/fer/ccr/run_thredds_browser.c
@@ -41,8 +41,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
-
-#include "run_thredds_browser.h"
+#include "ferret.h"
 
 /*
  * Interface to the FORTRAN function:
@@ -54,10 +53,10 @@
  * to this function.  Does not do bounds checking.
  *
  * Assumes Holerith strings are passed as a char array with a max string 
- * length appended to the end of the argument list.  Also assumes the C 
- * name is the single underscore appended to the lower-cased FORTRAN name.
+ * length appended to the end of the argument list.
  */
-int run_thredds_browser_(char dataset_name[], char err_warn_msg[], int max_len_dataset_name, int max_len_err_warn_msg) {
+int FORTRAN(run_thredds_browser)(char dataset_name[], char err_warn_msg[], 
+                                 int max_len_dataset_name, int max_len_err_warn_msg) {
     int len_dataset_name;
 
     /* Run the browser */
diff --git a/fer/ccr/run_thredds_browser.h b/fer/ccr/run_thredds_browser.h
deleted file mode 100644
index 9eac361..0000000
--- a/fer/ccr/run_thredds_browser.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef RUNTHREDDSBROWSER_H_
-#define RUNTHREDDSBROWSER_H_
-
-#include <Python.h> /* make sure Python.h is alway first */
-#include <sys/types.h>
-#include <stdio.h>
-
-/* 
- * Interface to the FORTRAN function:
- * INTEGER FUNCTION RUN_THREDDS_BROWSER(DATASET_NAME, ERR_WARN_MSG)
- *         CHARACTER*(*) DATASET_NAME, ERR_WARN_MSG
- */
-extern int run_thredds_browser_(char dataset_name[], char err_warn_msg[], 
-                                int max_len_data_set, int max_len_err_warn_msg);
-
-/* Standard C functions */
-extern int   runThreddsBrowser(char datasetName[], char errWarn[]);
-extern int   getJavaVersion(char javaExeName[], char errMsg[]);
-extern FILE *executableOutput(char *exeArgv[], pid_t *childPidPtr, char errMsg[]);
-
-#endif /* RUNTHREDDSBROWSER_H_ */
diff --git a/fer/ccr/save_c_string.c b/fer/ccr/save_c_string.c
index 49e7050..4b9294d 100644
--- a/fer/ccr/save_c_string.c
+++ b/fer/ccr/save_c_string.c
@@ -39,20 +39,15 @@
  */
 
 #include <Python.h> /* make sure Python.h is first */
-#include <stdlib.h>
+#include "ferret.h"
 
-void save_c_string_(string, inlen, fer_ptr, offset, stat)
-     char* string;
-     int* inlen;
-     char*** fer_ptr;
-     int* offset;
-     int* stat;
+void FORTRAN(save_c_string)(char *string, int *inlen, char ***fer_ptr, int *offset, int *stat)
 {
    int i;
    char* ptr;
    char** each_str_ptr;
 
-   ptr = (char *) malloc(sizeof(char) * (*inlen + 1));
+   ptr = (char *) PyMem_Malloc(sizeof(char) * (*inlen + 1));
    if ( ptr != NULL ) {
       for (i=0; i<*inlen; i++)
          ptr[i] = string[i];
@@ -62,7 +57,7 @@ void save_c_string_(string, inlen, fer_ptr, offset, stat)
       each_str_ptr = *fer_ptr;   /* holds pointer to the first string */
       each_str_ptr += *offset * 8/sizeof(char**); /* point to the desired string */ 
       if ( *each_str_ptr != NULL )
-         free( *each_str_ptr );
+         PyMem_Free( *each_str_ptr );
       *each_str_ptr = ptr;
 
       *stat = 0;
diff --git a/fer/ccr/set_nan.c b/fer/ccr/set_nan.c
index b29b1af..148adcd 100644
--- a/fer/ccr/set_nan.c
+++ b/fer/ccr/set_nan.c
@@ -45,33 +45,21 @@
  *                    back the result as an argument. Needed for port to 64-bit 
  * *acm*  1/12 - Ferret 6.8 ifdef double_p for double-precision ferret,
  *               see the definition of macro DFTYPE in ferret.h 
+ * *kms*  4/17 - Change to using strtod() and strtof()
  */
 
 #include <Python.h> /* make sure Python.h is first */
-#include <signal.h>
-#include <stdio.h>
-#include <math.h>
+#include <stdlib.h>
 #include "ferret.h"
 
-void FORTRAN(set_nan) (DFTYPE *val)
+void FORTRAN(set_nan)(DFTYPE *val)
 {
-  sigset_t block_fpe;
-
-  /* initialize the signal mask */
-  sigemptyset(&block_fpe);
-  sigaddset(&block_fpe, SIGFPE); 
-
-  /* block SIGFPE so we don't have problems generating NaN */
-  sigprocmask(SIG_BLOCK, &block_fpe, NULL); 
-
-  /* calculating the inverse hyperbolic cosine of a value less
-     than 1 will result in NaN - seems better than doing a divide
-     by 0 */
-  *val = acosh(.2);  
-  /*val = 1./0.; */
-
-  /* unblock SIGFPE */
-  sigprocmask(SIG_UNBLOCK, &block_fpe, NULL); 
-
+#ifdef double_p
+  /* DFTYPE is double */
+  *val = strtod("NAN", NULL);
+#else
+  /* DFTYPE is float */
+  *val = strtof("NAN", NULL);
+#endif
   return;
 }
diff --git a/fer/ccr/set_null_c_string.c b/fer/ccr/set_null_c_string.c
index c7ee430..43740c2 100644
--- a/fer/ccr/set_null_c_string.c
+++ b/fer/ccr/set_null_c_string.c
@@ -41,14 +41,14 @@
 
 #include <Python.h> /* make sure Python.h is first */
 #include <stdlib.h>
+#include "ferret.h"
 
-void set_null_c_string_(out_ptr)
-     char** out_ptr;
+void FORTRAN(set_null_c_string)(char **out_ptr)
 {
    if ( *out_ptr != NULL )
-      free(*out_ptr);
+      PyMem_Free(*out_ptr);
 
-   *out_ptr = (char *) malloc(sizeof(char));
+   *out_ptr = (char *) PyMem_Malloc(sizeof(char));
    if ( *out_ptr == NULL )
       abort();
    **out_ptr = '\0';
diff --git a/fer/ccr/set_null_c_string_array.c b/fer/ccr/set_null_c_string_array.c
index 035a17c..e6ebb7d 100644
--- a/fer/ccr/set_null_c_string_array.c
+++ b/fer/ccr/set_null_c_string_array.c
@@ -40,10 +40,9 @@
 
 #include <Python.h> /* make sure Python.h is first */
 #include <stdlib.h>
+#include "ferret.h"
 
-void set_null_c_string_array_(fer_ptr, nstr)
-     char*** fer_ptr;
-     int* nstr;
+void FORTRAN(set_null_c_string_array)(char ***fer_ptr, int *nstr)
 {
    char** each_str_ptr;
    int i;
@@ -52,8 +51,8 @@ void set_null_c_string_array_(fer_ptr, nstr)
 
    for (i=0; i<*nstr; i++) {
       if ( *each_str_ptr != NULL )
-         free(*each_str_ptr);
-      *each_str_ptr = (char *) malloc(sizeof(char));
+         PyMem_Free(*each_str_ptr);
+      *each_str_ptr = (char *) PyMem_Malloc(sizeof(char));
       if ( *each_str_ptr == NULL )
          abort();
       **each_str_ptr = '\0';
diff --git a/fer/ccr/text_to_utf8.c b/fer/ccr/text_to_utf8.c
index 072135e..6cceb99 100644
--- a/fer/ccr/text_to_utf8.c
+++ b/fer/ccr/text_to_utf8.c
@@ -33,7 +33,7 @@
  */
 
 #include <Python.h> /* make sure Python.h is first */
-#include "utf8str.h"
+#include "ferret.h"
 
 /*
  * Translates an extended-character string into a UTF-8 string.
@@ -48,7 +48,7 @@
  *               has minimum length 2*textlen + 1)
  *     utf8strlen - length of the UTF-8 string created
  */
-void text_to_utf8_(const char *text, const int *textlen, char *utf8str, int *utf8strlen)
+void FORTRAN(text_to_utf8)(const char *text, const int *textlen, char *utf8str, int *utf8strlen)
 {
     int codept;
     char utf8chars[4];
@@ -57,7 +57,7 @@ void text_to_utf8_(const char *text, const int *textlen, char *utf8str, int *utf
 
     for (j = 0, k = 0; j < *textlen; j++) {
         codept = (unsigned char) (text[j]);
-        create_utf8_str_(&codept, utf8chars, &numutf8chars);
+        FORTRAN(create_utf8_str)(&codept, utf8chars, &numutf8chars);
         for (q = 0; q < numutf8chars; q++, k++)
            utf8str[k] = utf8chars[q];
     }
diff --git a/fer/ccr/utf8str.h b/fer/ccr/utf8str.h
deleted file mode 100644
index eebdd24..0000000
--- a/fer/ccr/utf8str.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <Python.h> /* make sure Python.h is first */
-
-void create_utf8_str_(const int *codepoint, char *utf8str, int *utf8strlen);
-void text_to_utf8_(const char *text, const int *textlen, char *utf8str, int *utf8strlen);
-
diff --git a/fer/ccr/write_dods.c b/fer/ccr/write_dods.c
index 35738cc..587f6bf 100644
--- a/fer/ccr/write_dods.c
+++ b/fer/ccr/write_dods.c
@@ -5,6 +5,7 @@
 #include <errno.h>
 #include <netinet/in.h> /* for htonl; header probably varies by platform */
 #include <assert.h>
+#include "ferret.h"
 
 /*
  * if clobber == 0, open filename for overwriting.
@@ -37,14 +38,8 @@
  *                          fine as long as length is less than 2e31.
  */
 
-#ifdef NO_ENTRY_NAME_UNDERSCORES
-#define FORTRAN(a) a
-#else
-#define FORTRAN(a) a##_
-#endif
-
-int write_dods_(char*filename, int* slen, int *clobber, int *swap, 
-                int *length, float *data) 
+int FORTRAN(write_dods)(char*filename, int* slen, int *clobber, int *swap, 
+                        int *length, float *data) 
 {
   FILE *f;
   int i, length_n, result = 0;
@@ -61,7 +56,7 @@ int write_dods_(char*filename, int* slen, int *clobber, int *swap,
 
   /* allocate memory and save the filename to null-terminated string */
 
-  if ( fileptr = (char *) malloc(sizeof(char) * (*slen + 1) ) ) {
+  if ( fileptr = (char *) PyMem_Malloc(sizeof(char) * (*slen + 1) ) ) {
     strncpy (fileptr, filename, *slen);
     fileptr[*slen] = 0;    /* null-terminate the stored string */
   } else goto cleanup;
@@ -91,7 +86,7 @@ int write_dods_(char*filename, int* slen, int *clobber, int *swap,
   }
 
 cleanup:
-  if (fileptr) free(fileptr);
+  if (fileptr) PyMem_Free(fileptr);
   result = errno;
   if (f) {
     if (errno) {             /* preserve original error even if close fails */
@@ -105,8 +100,8 @@ cleanup:
 }
 
 
-int write_dods_double_(char*filename, int* slen, int *clobber, int *swap, 
-                       int *length, double *data) 
+int FORTRAN(write_dods_double)(char*filename, int* slen, int *clobber, int *swap, 
+                               int *length, double *data) 
 {
   FILE *f;
   int i, length_n, result = 0;
@@ -123,7 +118,7 @@ int write_dods_double_(char*filename, int* slen, int *clobber, int *swap,
 
   /* allocate memory and save the filename to null-terminated string */
 
-  if ( fileptr = (char *) malloc(sizeof(char) * (*slen + 1) ) ) {
+  if ( fileptr = (char *) PyMem_Malloc(sizeof(char) * (*slen + 1) ) ) {
     strncpy (fileptr, filename, *slen);
     fileptr[*slen] = 0;    /* null-terminate the stored string */
   } else goto cleanup;
@@ -156,7 +151,7 @@ int write_dods_double_(char*filename, int* slen, int *clobber, int *swap,
   }
 
 cleanup:
-  if (fileptr) free(fileptr);
+  if (fileptr) PyMem_Free(fileptr);
   result = errno;
   if (f) {
     if (errno) {             /* preserve original error even if close fails */
diff --git a/fer/ccr/xfer_c_ptrs.c b/fer/ccr/xfer_c_ptrs.c
index b378804..8f8dea8 100644
--- a/fer/ccr/xfer_c_ptrs.c
+++ b/fer/ccr/xfer_c_ptrs.c
@@ -40,17 +40,10 @@
  */
 
 #include <Python.h> /* make sure Python.h is first */
-#include <stdlib.h>
+#include "ferret.h"
 
-void xfer_c_ptrs_(src_ptr, src_del, src_offset,
-		  dst_ptr, dst_del, dst_offset, nptr)
-     char*** src_ptr;
-     int* src_del;
-     int* src_offset;
-     char*** dst_ptr;
-     int* dst_del;
-     int* dst_offset;
-     int* nptr;
+void FORTRAN(xfer_c_ptrs)(char ***src_ptr, int *src_del, int *src_offset,
+		          char ***dst_ptr, int *dst_del, int *dst_offset, int *nptr)
 {
    int src_delta = *src_del ? 8/sizeof(char**) : 1;
    int dst_delta = *dst_del ? 8/sizeof(char**) : 1;
@@ -60,7 +53,7 @@ void xfer_c_ptrs_(src_ptr, src_del, src_offset,
 
    for (i=0; i<*nptr; i++) {
       if ( *dst != NULL )
-         free(*dst);
+         PyMem_Free(*dst);
       *dst = *src;
       src += src_delta;
       dst += dst_delta;
diff --git a/fer/cferbind/Makefile b/fer/cferbind/Makefile
index f564b85..146b0b0 100644
--- a/fer/cferbind/Makefile
+++ b/fer/cferbind/Makefile
@@ -6,22 +6,15 @@ include ../../site_specific.mk
 include ../../platform_specific.mk.$(BUILDTYPE)
 
 LIBNAME = ../../lib/libcferbind.a
-CHDRS = $(wildcard *.h) ../grdel/grdel.h ../ccr/utf8str.h
+CHDRS = $(wildcard *.h) ../common/ferret.h ../grdel/grdel.h 
 CSRCS = $(wildcard *.c)
 COBJS = $(CSRCS:.c=.o)
 
+# CFLAGS already modified to include debug or optimization flags
+# Just add the additional warning flags to CFLAGS
 .PHONY : all
-all : optimized
-
-# The -I$(CAIRO_DIR)/include/cairo is only needed for older cairo's (1.2) own include files
-
-.PHONY : optimized
-optimized :
-	$(MAKE) "CFLAGS = $(CFLAGS) -I$(CAIRO_DIR)/include/cairo -Wall -Wno-pointer-to-int-cast -Werror -DNDEBUG -O" $(LIBNAME)
-
-.PHONY : debug
-debug :
-	$(MAKE) "CFLAGS = $(CFLAGS) -I$(CAIRO_DIR)/include/cairo -Wall -Wno-pointer-to-int-cast -Werror -O0 -g" $(LIBNAME)
+all :
+	$(MAKE) "CFLAGS = $(CFLAGS) -Wall -Wno-pointer-to-int-cast -Werror" $(LIBNAME)
 
 $(LIBNAME) : $(COBJS)
 	$(AR) $(ARFLAGS) $(LIBNAME) $(COBJS)
diff --git a/fer/cferbind/cairoCFerBind_createWindow.c b/fer/cferbind/cairoCFerBind_createWindow.c
index b848f3c..e846c05 100644
--- a/fer/cferbind/cairoCFerBind_createWindow.c
+++ b/fer/cferbind/cairoCFerBind_createWindow.c
@@ -13,7 +13,7 @@
  * successful.  If an error occurs, grdelerrmsg is assigned
  * an appropriate error message and NULL is returned.
  */
-CFerBind *cairoCFerBind_createWindow(int noalpha)
+CFerBind *cairoCFerBind_createWindow(int noalpha, int rasteronly)
 {
     CFerBind *bindings;
     CairoCFerBindData *instdata;
@@ -84,7 +84,10 @@ CFerBind *cairoCFerBind_createWindow(int noalpha)
     /* Set non-zero default values */
     instdata = (CairoCFerBindData *) bindings->instancedata;
     /* Default Cairo surface type */
-    instdata->imageformat = CCFBIF_REC;
+    if ( rasteronly != 0 )
+        instdata->imageformat = CCFBIF_PNG;
+    else
+        instdata->imageformat = CCFBIF_REC;
     /* default DPI, image size, line width scaling factor, and minimum allowed value */
     instdata->pixelsperinch = 96;
     instdata->imagewidth = (int) (10.2 * instdata->pixelsperinch);
diff --git a/fer/cferbind/cairoCFerBind_drawText.c b/fer/cferbind/cairoCFerBind_drawText.c
index bcec48b..67b5791 100644
--- a/fer/cferbind/cairoCFerBind_drawText.c
+++ b/fer/cferbind/cairoCFerBind_drawText.c
@@ -1,10 +1,10 @@
 /* Python.h should always be first */
 #include <Python.h>
 #include <string.h>
+#include "ferret.h"
 #include "grdel.h"
 #include "cferbind.h"
 #include "cairoCFerBind.h"
-#include "utf8str.h"
 
 /*
  * Draw text to this "Window".  Text is a UTF-8 encoding of the desired text, 
diff --git a/fer/cferbind/cairoCFerBind_saveWindow.c b/fer/cferbind/cairoCFerBind_saveWindow.c
index 06ec36e..c294563 100644
--- a/fer/cferbind/cairoCFerBind_saveWindow.c
+++ b/fer/cferbind/cairoCFerBind_saveWindow.c
@@ -359,6 +359,19 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
         /* Never use the alpha channel */
         noalpha = 1;
     }
+    else if ( strcmp(fmtext, "EPS") == 0 ) {
+        /* Surface size is given in (floating-point) points */
+        savewidth = xinches * 72.0;
+        saveheight = yinches * 72.0;
+        scalefactor  = savewidth / instdata->imagewidth;
+        scalefactor += saveheight / instdata->imageheight;
+        /* recording surface is actually in points value of imagewidth, imageheight */
+        scalefactor *= instdata->pixelsperinch / 144.0;
+        saveheight += scalefactor * layoutheight;
+        savesurface = cairo_ps_surface_create(savename, savewidth, saveheight);
+        /* Never use the alpha channel */
+        noalpha = 1;
+    }
     else if ( strcmp(fmtext, "PS") == 0 ) {
         /* Surface size is given in (floating-point) points */
         savewidth = xinches * 72.0;
@@ -447,6 +460,9 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
                                          "%%PageOrientation: Portrait");
         }
     }
+    else if ( strcmp(fmtext, "EPS") == 0 ) {
+        cairo_ps_surface_set_eps(savesurface, 1);
+    }
 
     /* 
      * If not a transparent background, or if the alpha channel 
diff --git a/fer/cferbind/cairoCFerBind_textSize.c b/fer/cferbind/cairoCFerBind_textSize.c
index c46c012..524dbd8 100644
--- a/fer/cferbind/cairoCFerBind_textSize.c
+++ b/fer/cferbind/cairoCFerBind_textSize.c
@@ -1,10 +1,10 @@
 /* Python.h should always be first */
 #include <Python.h>
 #include <string.h>
+#include "ferret.h"
 #include "grdel.h"
 #include "cferbind.h"
 #include "cairoCFerBind.h"
-#include "utf8str.h"
 
 /*
  * Return the size of the text if drawn to this "Window" using the given font.
diff --git a/fer/cferbind/cferbind.h b/fer/cferbind/cferbind.h
index 8d2bca8..a2f869b 100644
--- a/fer/cferbind/cferbind.h
+++ b/fer/cferbind/cferbind.h
@@ -97,10 +97,10 @@ typedef struct CFerBind_struct {
  */
 CFerBind *cferbind_createWindow(const char *enginename, int engnamelen,
                                 const char *windowname, int winnamelen, 
-                                int visible, int noalpha);
+                                int visible, int noalpha, int rasteronly);
 
 /* The createWindow function for the Cairo engine */
-CFerBind *cairoCFerBind_createWindow(int noalpha);
+CFerBind *cairoCFerBind_createWindow(int noalpha, int rasteronly);
 /* The createWindow function for the PyQtCairo engine */
 CFerBind *pyqtcairoCFerBind_createWindow(const char *windowname, int windnamelen,
                                          int visible, int noalpha);
diff --git a/fer/cferbind/cferbind_createWindow.c b/fer/cferbind/cferbind_createWindow.c
index 9b2a3f1..783746e 100644
--- a/fer/cferbind/cferbind_createWindow.c
+++ b/fer/cferbind/cferbind_createWindow.c
@@ -21,6 +21,7 @@ const int lenPyQtCairoCFerBindName = 11;
  *
  * For the "Cairo" engine, the windowname, winnamelen, and
  * visible arguments are ignored as they is not applicable.
+ * For the "PipedImager" engine, rasteronly is ignored.
  *
  * Returns a pointer to the bindings instance if successful.
  * If an error occurs, grdelerrmsg is assigned an appropriate
@@ -28,7 +29,7 @@ const int lenPyQtCairoCFerBindName = 11;
  */
 CFerBind *cferbind_createWindow(const char *enginename, int engnamelen,
                                 const char *windowname, int winnamelen, 
-                                int visible, int noalpha)
+                                int visible, int noalpha, int rasteronly)
 {
     CFerBind *bindings;
     int k;
@@ -37,7 +38,7 @@ CFerBind *cferbind_createWindow(const char *enginename, int engnamelen,
     if ( (engnamelen == lenCairoCFerBindName) &&
          (strncmp(enginename, CairoCFerBindName, lenCairoCFerBindName) == 0) ) {
         /* Create a bindings instance for a Cairo engine */
-        bindings = cairoCFerBind_createWindow(noalpha);
+        bindings = cairoCFerBind_createWindow(noalpha, rasteronly);
         return bindings;
     }
 
diff --git a/fer/cferbind/pyqtcairoCFerBind_createWindow.c b/fer/cferbind/pyqtcairoCFerBind_createWindow.c
index 8f284ac..51b8442 100644
--- a/fer/cferbind/pyqtcairoCFerBind_createWindow.c
+++ b/fer/cferbind/pyqtcairoCFerBind_createWindow.c
@@ -113,7 +113,7 @@ CFerBind *pyqtcairoCFerBind_createWindow(const char *windowname, int windnamelen
      * PipedImager methods interacting with the viewer.
      */
     instdata->viewer = grdelWindowCreate("PipedImagerPQ", 13, windowname,
-                                         windnamelen, visible, noalpha);
+                                         windnamelen, visible, noalpha, 1);
     if ( instdata->viewer == NULL ) {
         /* grdelerrmsg already assigned */
         PyMem_Free(bindings->instancedata);
diff --git a/fer/common/EF_Util.h b/fer/common/EF_Util.h
index a176623..66da429 100644
--- a/fer/common/EF_Util.h
+++ b/fer/common/EF_Util.h
@@ -15,6 +15,7 @@
 *                  Ferret will run XCAT_STR
 * V664  9/10 *kms* Add EF_PYTHON
 *       3/12 *kms* Add E and F dimensions; use NFERDIMS
+* V702  1/17 *sh* prototype of ef_get_one_val_sub altered
 */
 
 
@@ -85,6 +86,7 @@ typedef struct {
   DFTYPE version;
   char description[EF_MAX_DESCRIPTION_LENGTH];
   char alt_fcn_name[EF_MAX_NAME_LENGTH];
+  char alt_base_fcn_name[EF_MAX_NAME_LENGTH];
   int  language;
   int  num_reqd_args, has_vari_args;
   int  num_work_arrays;
@@ -94,6 +96,7 @@ typedef struct {
   int  axis_reduction[NFERDIMS];
   int  piecemeal_ok[NFERDIMS];
   int  return_type;
+  int  direction_args[NFERDIMS];
   Axis axis[NFERDIMS];
 
   /* Information specific to each argument of the function */
@@ -143,8 +146,7 @@ extern void FORTRAN(ef_get_box_limits)(int *id, int *arg, int *axis, int *lo, in
                                        double lo_lims[], double hi_lims[]);
 /* the modlen argument in ef_get_axis_modulo_len is explicitly real*8 */
 extern void FORTRAN(ef_get_axis_modulo_len)(int *id, int *arg, int *axis, double *modlen);
-extern void FORTRAN(ef_get_one_val_sub)(int *id_ptr, DFTYPE *mem_ptr,
-                                        int *arg_ptr, DFTYPE *val_ptr);
+extern void FORTRAN(ef_get_one_val_sub)(int *id_ptr, int *arg_ptr, DFTYPE *val_ptr);
 
 /* these are called by the 4D function definitions */
 extern void FORTRAN(ef_set_axis_influence_6d)(int *id_ptr, int *arg,
diff --git a/fer/common/dsimple.h b/fer/common/dsimple.h
deleted file mode 100644
index a95f8ce..0000000
--- a/fer/common/dsimple.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* $XConsortium: dsimple.h,v 1.3 90/04/28 12:07:00 rws Exp $ */
-/*
- * Just_display.h: This file contains the definitions needed to use the
- *                 functions in just_display.c.  It also declares the global
- *                 variables dpy, screen, and program_name which are needed to
- *                 use just_display.c.
- *
- * Written by Mark Lillibridge.   Last updated 7/1/87
- *
- * Send bugs, etc. to chariot at athena.mit.edu.
- */
-
-    /* Global variables used by routines in just_display.c */
-
-char *program_name = "unknown_program";       /* Name of this program */
-Display *dpy;                                 /* The current display */
-int screen;                                   /* The current screen */
-
-#define INIT_NAME program_name=argv[0]        /* use this in main to setup
-                                                 program_name */
-
-    /* Declaritions for functions in just_display.c */
-
-void Fatal_Error();
-char *Malloc();
-char *Realloc();
-char *Get_Display_Name();
-Display *Open_Display();
-void Setup_Display_And_Screen();
-XFontStruct *Open_Font();
-void Beep();
-Pixmap ReadBitmapFile();
-void WriteBitmapFile();
-Window Select_Window_Args();
-
-#define X_USAGE "[host:display]"              /* X arguments handled by
-						 Get_Display_Name */
-#define SELECT_USAGE "[-root|-id <id>|-name <name>]"
-
-/*
- * Other_stuff.h: Definitions of routines in other_stuff.
- *
- * Written by Mark Lillibridge.   Last updated 7/1/87
- *
- * Send bugs, etc. to chariot at athena.mit.edu.
- */
-
-unsigned long Resolve_Color();
-Pixmap Bitmap_To_Pixmap();
-Window Select_Window();
-void out();
-void blip();
-Window Window_With_Name();
diff --git a/fer/common/errmsg.parm b/fer/common/errmsg.parm
index cdc6e0a..05dbe9e 100644
--- a/fer/common/errmsg.parm
+++ b/fer/common/errmsg.parm
@@ -86,7 +86,8 @@
      .			ferr_aggregate_error,
      .			ferr_remotevar_error,
      .			ferr_file_not_found,
-     .			ferr_unknown_auxvar
+     .			ferr_unknown_auxvar,
+     .			ferr_sys_return
 	PARAMETER     ( ferr_insuff_memory	= greport		+ 1,
      .			ferr_too_many_vars	= ferr_insuff_memory	+ 1,
      .			ferr_perm_var		= ferr_too_many_vars	+ 1,
@@ -132,5 +133,6 @@
      .                  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)
-	PARAMETER     ( gnum_report	= 45 )
+     .			ferr_unknown_auxvar	= ferr_file_not_found   + 1,
+     .			ferr_sys_return		= ferr_unknown_auxvar   + 1)
+	PARAMETER     ( gnum_report	= 46 )
diff --git a/fer/common/ferret.h b/fer/common/ferret.h
index dd42e10..5afbfaa 100644
--- a/fer/common/ferret.h
+++ b/fer/common/ferret.h
@@ -1,114 +1,33 @@
 #ifndef _FERRET_H 
 #define _FERRET_H
 
+#include <sys/types.h>
+#include <stdio.h>
 
-/* non-ANSI function prototypes */
-#ifdef NO_ENTRY_NAME_UNDERSCORES      /*added ifdef for HP port *kob* 6.95*/
-
-void ctrlc_ast();   /* pointer to ^C interrupt routine */
-void initialize();
-void set_ctrl_c(); /* void set_ctrl_c_( void (*CTRLC_AST_)() ); */ 
-void help_text();
-void init_journal( );
-void no_journal( );
-void proclaim_c( );
-void init_memory( );
-void ferret_dispatch( );
-void save_ppl_memory_size( );
-void get_ppl_memory_size( );
-void reallo_ppl_memory();
-void ferret_dispatch_c();
-void WindowMapping();
-void mode_gui_on();
-void secs_to_date_c();
-double tm_secs_from_bc();
-void xgks_x_events();
-void gescinqxattr();
-void set_batch_graphics();
-void set_secure();
-void set_server();
-int  is_secure();
+#include "ferret_shared_buffer.h"
 
+/* Easier way of handling FORTRAN calls with underscore/no underscore */
+#ifndef FORTRAN
+#ifdef NO_ENTRY_NAME_UNDERSCORES
+#define FORTRAN(a) a
 #else
-
-void ctrlc_ast_();   /* pointer to ^C interrupt routine */
-void initialize_();
-void set_ctrl_c_(); /* void set_ctrl_c_( void (*CTRLC_AST_)() ); */ 
-void help_text();
-void init_journal_( );
-void no_journal_( );
-void proclaim_c_( );
-void init_memory_( );
-void ferret_dispatch_( );
-void save_ppl_memory_size_( );
-void get_ppl_memory_size_( );
-void ferret_dispatch_c();
-void WindowMapping();
-void mode_gui_on();
-void secs_to_date_c();
-double tm_secs_from_bc_();
-void xgks_x_events();
-void gescinqxattr();
-void set_batch_graphics_();
-void set_secure();
-void set_server();
-int  is_secure_();
-
+#define FORTRAN(a) a##_
+#endif
 #endif
 
 #define NFERDIMS 6
 
-/* memory configuration defaults */
-/* NOTE!! PMEM_BLK_SIZE must match pmem_blk_size in xvariables.cmn */
-/* * V62  2/09 *acm*  increase initial memory by 4. */
-#define PMEM_BLK_SIZE 2*(160*100*4/10)  /*  2* 9/01 *sh* */
-#define PMAX_MEM_BLKS 2000
-
-/* from XPROG_STATE COMMON */
 #define TTOUT_LUN 6
 
-/* these parameters describe the first few integers of the buffer
- returned by FERRET to its GUI*/
 #define FRTN_CONTROL  0    /* 1 in FORTRAN */
-#define FRTN_STATUS   1    /* 2 in FORTRAN */
 #define FRTN_ACTION   2    /* 3 in FORTRAN */
 #define FRTN_IDATA1   5    /* 6 in FORTRAN */
 #define FRTN_IDATA2   6    /* 7 in FORTRAN */
-#define FRTN_IDATA3   7    /* 8 in FORTRAN */
 
-/* who is in control according to return_buff(frtn_control) ?
-when the GUI is running FERRET control may return to the GUI at times
-other than at the completion of a command - for example, when FERRET
-is requesting that a warning message be displayed or that memory be
-reconfigured.  These codes indicate why FERRET has returned.
-FERRET will reset the control variable to "ctrl_not_finished" if
-the given command was really multiple commands and they are not yet complete*/
-#define FCTRL_BACK_TO_GUI  1
 #define FCTRL_IN_FERRET    2
 
-/* what special action has FERRET requested in return_buff(frtn_action) ? */
-#define FACTN_NO_ACTION        0
 #define FACTN_MEM_RECONFIGURE  1
 #define FACTN_EXIT             2
-#define FACTN_DISPLAY_WARNING  3
-#define FACTN_DISPLAY_ERROR    4
-#define FACTN_DISPLAY_TEXT     5
-#define FACTN_SYNCH_SET_DATA   6  /* added 11/1/94 */
-#define FACTN_SYNCH_LET        7
-#define FACTN_SYNCH_WINDOW     8
-#define FACTN_PAUSE           10
-
-/* Easier way of handling FORTRAN calls with underscore/no underscore */
-#ifndef FORTRAN
-#ifdef NO_ENTRY_NAME_UNDERSCORES
-#define FORTRAN(a) a
-#else
-#define FORTRAN(a) a##_
-#endif
-#endif
-
-/* *acm*  1/12 - Ferret 6.8 double-precision ferret */
-/* Easier way of handling single/double floating-point declarations */
 
 #ifdef double_p
 #define DFTYPE double
@@ -116,5 +35,31 @@ the given command was really multiple commands and they are not yet complete*/
 #define DFTYPE float
 #endif
 
+/* Prototypes for C functions */
+FILE *executableOutput(char *exeArgv[], pid_t *childPidPtr, char errMsg[]);
+void ferret_dispatch_c( char *init_command, smPtr sBuffer );
+int  getJavaVersion(char javaExeName[], char errMsg[]);
+int  runThreddsBrowser(char datasetName[], char errWarn[]);
+void set_batch_graphics( char *outfile, int *pngonly );
+void set_secure( void );
+void set_server( void );
+
+void FORTRAN(create_utf8_str)(const int *codepoint, char *utf8str, int *utf8strlen);
+void FORTRAN(dynmem_free_ptr_array)( long* mr_ptrs_val );
+void FORTRAN(dynmem_make_ptr_array)( int* n, long* mr_ptrs_val, int* status );
+void FORTRAN(dynmem_pass_1_ptr)( int* iarg, DFTYPE* arg_ptr, long* mr_ptrs_val );
+void FORTRAN(free_dyn_mem) ( double *mvar );
+void FORTRAN(get_mr_mem)( double *index, int *alen, int *status );
+int  FORTRAN(is_secure)( void );
+int  FORTRAN(is_server)( void );
+int  FORTRAN(run_thredds_browser)(char dataset_name[], char err_warn_msg[], 
+                                  int max_len_data_set, int max_len_err_warn_msg);
+void FORTRAN(text_to_utf8)(const char *text, const int *textlen, char *utf8str, int *utf8strlen);
+
+/* Prototypes for Fortran functions called by C functions */
+void FORTRAN(ferret_dispatch)( char *init_command, int *rtn_flags, int *nflags, 
+		               char *rtn_chars, int *nchars, int *nerrlines );
+
+
 #endif /* _FERRET_H */
 
diff --git a/fer/common/ferret.parm b/fer/common/ferret.parm
index d4e70f1..5aadd33 100644
--- a/fer/common/ferret.parm
+++ b/fer/common/ferret.parm
@@ -52,11 +52,16 @@
 *                 and is also consistent with Matlab
 * V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
 *                  variables, pre-defined axes and grids, cat_calc_var.
-* V698  3/16 *sh* expanded max_gfdl_dsets for EF agg needs
+* V698  3/16 *sh* expanded max_gfdl_dsets for EF agg needs+
+* V7   *acm*  6/12 Add Union aggregations: DEFINE DATA/AGG/U
+* V710 *acm* 10/16 Ticket 2422: variables uvar_grid, uvar_data_type, uvar_aux_cat, 
+*                  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
 
 * this should always match maxdsets in TMAP_FORMAT:
 	INTEGER		max_gfdl_dsets
-	PARAMETER     (	max_gfdl_dsets	  = 400 ) ! =maxdsets in tmap_dims.parm
+	PARAMETER     (	max_gfdl_dsets	  = 5000 ) ! =maxdsets in tmap_dims.parm
 
 * numerical constants
 	REAL		deg2rad, radius, deg2km, deg2m, m_radius
@@ -155,9 +160,9 @@
      .			cat_constant, cat_file_rev,
      .			cat_const_var,   cat_string,
      .			cat_counter_var, cat_attrib_val,
+     .			cat_pystat_var,
      .			cat_agg_e_var, cat_agg_f_var,
-     .			cat_ef_time2d,
-     .			cat_pystat_var
+     .			cat_ef_time2d, cat_agg_u_var
 	PARAMETER     ( cat_work_mr  = -9,
      .			cat_file_var = 1,
      .			cat_user_var = 3,
@@ -172,10 +177,11 @@
      .			cat_string     = 12,
      .			cat_counter_var= 13,
      .			cat_attrib_val = 14,
-     .			cat_agg_e_var  = 15,
-     .			cat_agg_f_var  = 16,
-     .			cat_ef_time2d  = 17,
-     .			cat_pystat_var = 18 )
+     .			cat_pystat_var = 15,
+     .			cat_agg_e_var  = 16,
+     .			cat_agg_f_var  = 17,
+     .			cat_ef_time2d  = 18,
+     .			cat_agg_u_var  = 19 )
 
 * codes referring to the user-defined variables
 	INTEGER		uvar_deleted,
@@ -473,6 +479,7 @@
      .			alg_operand,
      .			alg_if_marker,
      .			alg_then_marker,
+     .			alg_dir_chg_fcn,
      .			alg_grid_chg_fcn,
      .			alg_child_var,
      .			alg_const_var,
@@ -494,6 +501,7 @@
      .			alg_operand    = 11,
      .			alg_if_marker    = 21,
      .			alg_then_marker  = 22,
+     .			alg_dir_chg_fcn  = 12,
      .			alg_grid_chg_fcn = 13,
      .			alg_child_var    = 14,
      .			alg_const_var    = 15,
@@ -501,7 +509,7 @@
      .                  alg_counter_var  = 17,
      .                  alg_attrib_val   = 18,
      .                  alg_log_vstruct  = 19,
-     .                  alg_agg_var	 = 20 )
+     .                  alg_agg_var	 = 20)
 
 * codes to distinguish between context choices
 * (contexts describe space/time/variable/transformation/data_set,etc.)
diff --git a/fer/common/ferret_query.parm b/fer/common/ferret_query.parm
deleted file mode 100644
index e994a84..0000000
--- a/fer/common/ferret_query.parm
+++ /dev/null
@@ -1,17 +0,0 @@
-* status codes returned by ferret_query_F
-* negative codes are FERRET status codes ferr_xxx...
-
-	INTEGER
-     .       QSTAT_OK,
-     .       QSTAT_UNKNOWN_QUERY,
-     .       QSTAT_BUFF_OVFLOW,
-     .       QSTAT_INVALID_ARG,
-     .       QSTAT_INTERNAL_ERROR
-
-	PARAMETER (
-     .       QSTAT_OK = 0,
-     .       QSTAT_UNKNOWN_QUERY = 1,
-     .       QSTAT_BUFF_OVFLOW = 2,
-     .       QSTAT_INVALID_ARG = 3,
-     .       QSTAT_INTERNAL_ERROR = 4 )
-
diff --git a/fer/common/ferret_shared_buffer.h b/fer/common/ferret_shared_buffer.h
index 339893a..a2d8989 100644
--- a/fer/common/ferret_shared_buffer.h
+++ b/fer/common/ferret_shared_buffer.h
@@ -10,6 +10,7 @@
  *
  * 	  if ( sBuffer->flags[FRTN_CONTROL] == FCTRL_IN_FERRET ) 
  *
+ * V702 *sh* 2/2017 - eliminated global "memory" - using individual mallocs now
  */
 
 #ifndef _FERRET_SHARED_BUFFER_H 
@@ -20,8 +21,6 @@
 #define TEXTLENGTH 500
 #define NUMDOUBLES 2048
 
-#include "ferret.h"
-
 typedef struct sharedStruct {
 	int flags[NUMFLAGS];
 	char text[TEXTLENGTH];
@@ -32,24 +31,9 @@ typedef struct sharedStruct {
 
 typedef sharedMem *smPtr;
 
-/*
- * Exactly one module must define __globalDefs.
- * All others will reference sBuffer as "extern".
- */
-
-#ifdef __globalDefs
-#define __global
-#else
-#define __global extern
-#endif
-
-__global smPtr sBuffer;
-
-__global DFTYPE *memory;
-__global float *ppl_memory;
-
+extern smPtr sBuffer;
 
-#undef __global
+extern float *ppl_memory;
 
 
 #endif /* _FERRET_SHARED_BUFFER_H */
diff --git a/fer/common/fgrdel.cmn b/fer/common/fgrdel.cmn
index 0de789b..8a0c265 100644
--- a/fer/common/fgrdel.cmn
+++ b/fer/common/fgrdel.cmn
@@ -128,6 +128,10 @@
 * Only reset by command-line options.
         CHARACTER*64 defaultenginename
 
+* Raster-only option - primarily for Cairo default engine
+* Only reset by command-line options.
+        LOGICAL rasteronly
+
 * Transparent background for save-on-exit (-batch)?
 * Should not change after start-up.
 * Only reset by the "-transparent" command-line option.
@@ -160,7 +164,7 @@
      .         lastbstylen, brushcolor, pencolor, symbolcolor, 
      .
      .         cliptoview, somethingdrawn, savetransparent, 
-     .         antialias, 
+     .         antialias, rasteronly, 
      .
      .         lastbrushstyle, defaultenginename, enginename, 
      .         windowtitle
diff --git a/fer/common/grid_chg_fcns.parm b/fer/common/grid_chg_fcns.parm
index db0b33d..10a7a86 100644
--- a/fer/common/grid_chg_fcns.parm
+++ b/fer/common/grid_chg_fcns.parm
@@ -27,6 +27,8 @@
 *  V6.0 *acm*  5/06 string results for external functions
 *                make pfcn_rtn_float = 1, pfcn_rtn_string  = 2, so they
 *                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
 
 
 	INTEGER		p_xunravel, p_times2, p_reshape, p_zlayer,
@@ -36,7 +38,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_substring, p_strfloat, p_innerprod, p_transpose
 
 	PARAMETER     ( p_xunravel = 1,
      .			p_times2      = p_xunravel  + 1,
@@ -62,7 +64,9 @@
      .                  p_dncase      = p_strrindex + 1,
      .                  p_strcat      = p_dncase    + 1,
      .                  p_substring   = p_strcat    + 1,
-     .                  p_strfloat    = p_substring + 1 )
+     .                  p_strfloat    = p_substring + 1,
+     .                  p_innerprod   = p_strfloat  + 1,
+     .                  p_transpose   = p_innerprod + 1 )
 
 * parameters to control the passing of context information
 	INTEGER		pset_to_unspec, ppass_along
diff --git a/fer/common/interp_stack.parm b/fer/common/interp_stack.parm
index b2615a2..33d6982 100644
--- a/fer/common/interp_stack.parm
+++ b/fer/common/interp_stack.parm
@@ -9,6 +9,9 @@
 * V695 *acm* 10/15 Fix #2319: @STD as a multi-D transform
 * V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
 *                  variables, pre-defined axes and grids, cat_calc_var.
+* V7   *acm*  6/12 Add Union aggregations: DEFINE DATA/AGG/U
+* V702 *sh* 11/16 added gathering on compressed axes using 
+*	          phases for computation of the compressing transform
 
 * minimum working space provided to transformations
 	INTEGER		iswksiz
@@ -25,7 +28,9 @@
      .			isact_class_sample,
      .			isact_class_subspan_fill,
      .			isact_class_aggregate_gather,
-     .			isact_class_aux_plot_vars
+     .			isact_class_aux_plot_vars,
+     .			isact_class_union_member,
+     .			isact_class_cmp_gather_dummy
 	PARAMETER     ( isact_class_trans    = 1,
      .			isact_class_regrid   = 2,
      .			isact_class_gather   = 3,
@@ -36,7 +41,9 @@
      .			isact_class_sample   = 8,
      .			isact_class_subspan_fill = 9,
      .			isact_class_aggregate_gather = 10,
-     .			isact_class_aux_plot_vars = 11 )
+     .			isact_class_aux_plot_vars = 11,
+     .			isact_class_union_member = 12,
+     .			isact_class_cmp_gather_dummy = 123456 )
 
 * to help in defining classes of activity codes ...
 	INTEGER		isact_trans_code
@@ -65,7 +72,8 @@
      .			isact_auxvar_regrid,
      .			isact_var_ready,
      .			isact_auxvar_ready,
-     .			isact_aux_plot_vars
+     .			isact_aux_plot_vars,
+     .			isact_get_union_member
 	PARAMETER     ( isact_request		= 1,
      .			isact_algebra		= 2,
      .			isact_rotate		= 3,
@@ -88,6 +96,7 @@
      .			isact_var_ready         = 22,
      .			isact_auxvar_ready      = 23,
      .			isact_aux_plot_vars     = 24,
+     .			isact_get_union_member  = 25,
      .          	isact_reduce = 16 ) ! never used: GC fcns perform axis reduction
 
 * transformations (which are also stack activities)
@@ -206,11 +215,17 @@
      .			isphase_2,
      .			isphase_get_aux_var,
      .			isphase_get_source_var,
-     .			isphase_do_aux_regrid
+     .			isphase_do_aux_regrid,
+     .			isphase_initialize_transform,
+     .			isphase_accumulate_transform,
+     .			isphase_completed_transform
 	PARAMETER     ( isphase_allatonce      = 1000,
      .			isphase_1	       = 1,
      .			isphase_2	       = 2,
      .			isphase_get_aux_var    = 1,
      .			isphase_get_source_var = 2,
-     .			isphase_do_aux_regrid  = 3 )
+     .			isphase_do_aux_regrid  = 3,
+     .			isphase_initialize_transform = 1111,
+     .			isphase_accumulate_transform = 2222,
+     .			isphase_completed_transform  = 3333 )
 
diff --git a/fer/common/slash.parm b/fer/common/slash.parm
index ca53adf..5e04f8a 100644
--- a/fer/common/slash.parm
+++ b/fer/common/slash.parm
@@ -74,6 +74,7 @@
 * V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
 *                  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=
 
 
 * command qualifier states
@@ -381,6 +382,7 @@
      .			slash_frame_annotate,
      .
      .			slash_stat_brief,
+     .			slash_stat_precision,
      .
      .			slash_levels,
      .			slash_length,
@@ -703,6 +705,7 @@
      .			slash_frame_annotate	= 7 + 1,
      .
      .			slash_stat_brief	= 0 + 1,
+     .			slash_stat_precision 	= 0 + 2,
 
      .			slash_levels		= 1+20,
      .			slash_length		= 1+20,
diff --git a/fer/common/xcommand.cmn b/fer/common/xcommand.cmn
index c066768..1cbe01d 100644
--- a/fer/common/xcommand.cmn
+++ b/fer/common/xcommand.cmn
@@ -59,6 +59,7 @@
 * V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
 *                  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
+* V7   *acm*  6/12 Add Union aggregations: DEFINE DATA/AGG/U
 
 
 * PARAMETERS are used to store numbers of subcommands and qualifiers for use
@@ -310,7 +311,7 @@
      .			nqual10h = 2, nqual_at10i = nqual_at10h + nqual10h,!SYMB
      .			nqual10i = 4, nqual_at10j = nqual_at10i + nqual10i,!ATTR
      .			nqual10j = 2, nqual_at10k = nqual_at10j + nqual10j,!PYFUNC
-     .			nqual10k =10, nqual_at10l = nqual_at10k + nqual10k, !DATA
+     .			nqual10k =14, nqual_at10l = nqual_at10k + nqual10k,!DATA
      .			nqual10l =10, nqual_at11a = nqual_at10l + nqual10l !ANNOTATION
      .		      )
 * EXIT		 - commmand # 11
@@ -444,7 +445,7 @@
      .			total_num_commands	= 30,
      .			total_num_subcommands	= nsub_at31 - 1,
      .			total_num_qualifiers	= nqual_at31a - 1,
-     .	                num_predefined_alias    = 25,
+     .	                num_predefined_alias    = 26,
      .			max_queries		= 50 )
 
 * declarations
diff --git a/fer/common/xgrid_chg_fcns.cmn b/fer/common/xgrid_chg_fcns.cmn
index 9dedb9b..1845293 100644
--- a/fer/common/xgrid_chg_fcns.cmn
+++ b/fer/common/xgrid_chg_fcns.cmn
@@ -25,8 +25,10 @@
      .				gfcn_piecemeal_ok, 
      .				gfcn_axis_implied_from, 
      .				gfcn_arg_extend_lo, 
-     .				gfcn_arg_extend_hi, 
+     .				gfcn_arg_extend_hi,
+     .				gfcn_dir_args, 
      .				gfcn_name,
+     .				gfcn_alt_name_base,
      .				gfcn_descr,
      .				gfcn_arg_name,
      .				gfcn_arg_units,
@@ -47,6 +49,8 @@
 * name of grid changing function
 	CHARACTER*40	gfcn_name	      ( pmax_grid_chg_fcns )
 
+	CHARACTER*40	gfcn_alt_name_base    ( pmax_grid_chg_fcns )
+
 * text description of grid changing function
 	CHARACTER*128	 gfcn_descr	      ( pmax_grid_chg_fcns )
 
@@ -72,6 +76,9 @@
 * pointer from function to array of information about arguments
 	INTEGER		gfcn_arg_ptr       ( pmax_grid_chg_fcns )
 
+* does Ferret need to find the right function to run based on arguments
+	INTEGER		gfcn_dir_args ( nferdims, pmax_grid_chg_fcns )
+
 * for each argument: what is its required data type
 	INTEGER		gfcn_arg_type	   ( pmax_gfcn_args )
 
diff --git a/fer/common/xplot_setup.cmn b/fer/common/xplot_setup.cmn
index a17cef9..011fc34 100644
--- a/fer/common/xplot_setup.cmn
+++ b/fer/common/xplot_setup.cmn
@@ -31,6 +31,8 @@
 *                  possible textscale.
 * V685+ *acm* 12/13 For 6D Ferret, key_doc longer for extra dimensions
 * V698 *sh* 3/16 added parameter max_line_on_plot, max_key_entries
+* V710  *acm* 11/16 Ticket 2483: Fix the axis-end symbols that are defined 
+*                   for time axis plots. New flag adjust_time
 
 	INTEGER max_line_on_plot, max_key_entries
 	PARAMETER (max_line_on_plot = 200)
@@ -46,7 +48,8 @@
      .		first_frame,
      .		need_std,
      .		need_histo,
-     .		ribbon_plot
+     .		ribbon_plot,
+     .		adjust_time
 	INTEGER	nvect_on,
      .		ncont_on,
      .		nlabs_on,
@@ -87,6 +90,7 @@
      .		need_std,
      .		need_histo,
      .		ribbon_plot,
+     .		adjust_time,
      .          active_win_id,
      .          sym_so_far,
      .		key_doc,
diff --git a/fer/common/xprog_state.cmn b/fer/common/xprog_state.cmn
index 1677528..f477bcf 100644
--- a/fer/common/xprog_state.cmn
+++ b/fer/common/xprog_state.cmn
@@ -54,6 +54,7 @@
 * V697 12/15 *acm* Ticket 2337 Increase length of cmnd buffer to 20480
 *		  - 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
 
 	INTEGER		cmnd_buff_len, max_qual_list, max_arg_list,
      .			max_item_list, max_modes, mode_stack_size,
@@ -81,7 +82,8 @@
      .			pmode_ppllist, pmode_gui, pmode_logo, pmode_labels,
      .                  pmode_grat, pmode_linecolors, pmode_upcase_output,
      .                  pmode_nlevels, pmode_nodata_lab, pmode_shrink_ylab,
-     .                  pmode_curvilinear, pmode_layerz, pmode_6d_lab
+     .                  pmode_curvilinear, pmode_layerz, pmode_6d_lab,
+     .			pmode_frugal
 
 	PARAMETER     ( pmode_diagnostic	= 1,
      .			pmode_verify		= 2,
@@ -117,7 +119,8 @@
      .                  pmode_shrink_ylab       = 31,
      .			pmode_curvilinear	= 32,
      .			pmode_layerz		= 33,
-     .			pmode_6d_lab		= 34 )
+     .			pmode_6d_lab		= 34,
+     .			pmode_frugal		= 35 )
 
 	CHARACTER	pmode_unused*10
 	PARAMETER     ( pmode_unused = '%% unused %%' )
@@ -175,7 +178,6 @@
      .		if_cs(max_ifstk), if_doing(max_ifstk),
      .          num_linecolors
 
-
 	LOGICAL
      .		list_format_given, list_unformatted, list_dsf, list_redirected,
      .		list_heading, list_append, list_tmap,
@@ -195,8 +197,7 @@
      .          one_cmnd_mode,
      .		mode_auto_curvi, mode_auto_curvi_last,
      .		mode_auto_layerz, mode_auto_layerz_last,
-     .		its_pyferret
-
+     .		its_pyferret, spawn_status
 
 ! Note: available_char_var is unused
 	CHARACTER
@@ -254,6 +255,7 @@
      .		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,
diff --git a/fer/common/xvariables.cmn b/fer/common/xvariables.cmn
index 8d55052..4246995 100644
--- a/fer/common/xvariables.cmn
+++ b/fer/common/xvariables.cmn
@@ -63,30 +63,26 @@
 *		   added space at the top of the isp stack for nferdims auxvars
 * V695+ *sh* 5/15  added uvar_c_cache_ptr for c-malloc caching of aux vars
 * V698+ *sh* 6/15  changed is_sum from REAL to INTEGER
+* V701 *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 
+* V702 *sh* 1/17   implement malloc-based dynamic memory management
+*                  remove block-managed "memory" array
+* V720: 4/17 *acm* Add direction-changing functions as a subset of grid-changing ones
 
 * Terminology:
 *	"mr"	- "memory resident"
 *	("mv")	  table of information about variables currently stored in
 *		  memory
-*	"mblk"	- related to management of array "memory" where bulk data is
-*		  stored
 *	"uvar"	- information about user-defined variables (and implicit user-
 *		  defined variables given as command arguments)
 *	"is"	- pertaining to the "interpretation stack" on which user 
 *		  variables are evaluated, axis transformations are executed
 *		  and grids in awkward planes are assembled
 
-* BULK MEMORY MANAGEMENT:
-*  The free bulk memory list is organized as follows:
-*     o Each contiguous region of free memory is identified by its starting
-*	block number in from array "memory" - usually "mblk"
-*     o Each contiguous region of free memory contains its size (mblk_size)
-*	and link pointers to the surrounding free regions (mblk_&link)
-*     o The linked list is ordered by increasing mblk value
-*  Bulk memory in use is removed from the free list.  Its starting block #
-*   is found in "mr_blk1" (of the memory resident table) of the variable
-*   using this memory.  Its size is redundantly stored (an historical artifact)
-*   in both "mr_nblks" and mblk_size( start_block )
+* BULK FERRET VARIABLE MEMORY MANAGEMENT:
+*  Each line number in the memory variable table is the index into a FORTRAN 90
+*  array of memory pointers.  under the hood those pointers are actually
+*  created by calls to malloc in c (or equivalent in python)
 
 * MEMORY RESIDENT TABLE MANAGEMENT:
 *  The slots of the memory variable table are organized as a number of doubly
@@ -106,24 +102,34 @@
 *   removed from the list if they are in-progress or in-use.  See mr_protected.
 
 * explanation of selected variables:
-*	mr_blk1     - First memory block of contiguous storage for this var.
-*	mr_nblks    -	Number of contiguous storage blocks for this variable
+*	memry	  - array of F90 pointers for memory resident (mr) vars
+*	workmem   - array of temporary "work" memory pointers
+*                   (index 1 is managed specially -- plegacy_work_buffer)
+*	total_mem - total amount of mr memory currently in use
+*	peak_mem  - peak amount of mr memory used since last SET MEM/SIZE
+*	permanent_mem - amount of mr memory memory used by LOAD/PERMANENT
+*	essential_mem - amount of mr memory essential to current command
+*                       i.e. mr_protected flagged as mr_temporary,
+*                            mr_in_progress or in use (> mr_not_protected)
+*       completed_args_mem - amount of mr memory tied up by command arg already
+*	               computed (also included in the essential_mem total)
+*	mr_size	  - memory size occupied by each mr
+*	ws_size   - memory size occupied by each work buffer
+*	max_mem_allowed - size as specified by SET MEMORY/SIZE=
+*
+*       mr_size	    - number of words of storage allocated for this variable
 *			See further documemtation in GET_MEMORY
-*	mr_trans    - designates what mathematical transformations have been
+*	mr_trans    -   designates what mathematical transformations have been
 *			applied to the data along each axis (see FERRET.PARM)
 *	mv_flink      - forward and backwards links into the memory variable
 *	mv_blink	table.  Stored variables are hashed into pmv_npiles
 *			piles with start pointers stored in the negative
 *			subscripts of these arrays
-*	mblk_flink    - sizes and links of free contiguous regions
-*	mblk_size	available in array "memory"
-*	mblk_blink
 *
 *	mr_del_flink  -	forward and backwards links for the chain of variables
 *	mr_del_blink	that are available to be deleted if memory space runs
 *			short
-*	mr_del_last_mblk - memory region freed by the last deletion
-*	mr_del_last_size - size of that memory region
+*	mr_del_last_size - size of memory region freed by the last deletion
 *
 *	mr_protected  - flags variables as "deleted", "in_progress",
 *			"perm_protrcted" or "not_protected".  Variables which
@@ -148,8 +154,8 @@
 *	uvar_item_type	- coded (see alg_ in GFDLPROGRAM.PARM) item types
 *	uvar_item_start	- positions in text for starts of item text substrings
 *	uvar_item_end	- positions in text for ends   of item text substrings
-*	uvar_grid	- defining grid for the expression
-*	uvar_data_type	- data type for the expression
+*	uvar_grid	- defining grid for the expression   xxx removed Ferret v7.02
+*	uvar_data_type	- data type for the expression       xxx removed Ferret v7.02
 *	uvar_aux_var	- points to the curvi aux coord var for each axis
 *	uvar_aux_cat	- points to the curvi aux coord var for each axis
 *	uvar_aux_stat	- tells if aux axis has been regridded or remains free
@@ -163,6 +169,8 @@
 *	uvar_bad_data	- missing value flag to be used for this variable
 *	uvar_c_cache_ptr- pointer to c-cahce of full range variable
 *	has_uvar_gc	- variable is a grid-changing variable
+*	has_uvar_dc	- a grid-changing variable where the function changes based 
+*			  on argument(s) which tell which dimension(s) to operateon
 *	is_uvar_const	- variable is a constant-array variable
 
 *	isp	 	- interpretation stack pointer
@@ -189,24 +197,30 @@
 * memory storage capacity
 	INTEGER		max_mrs,
      .			max_mr_avail,
-     .			pmem_blk_size,
-     .			pmax_mem_blks,
+     .			pmax_mem_default,
+     .			pint_size_test,
+     .			max_ws,
+     .			plegacy_work_buffer,
      .			pmv_npiles,
      .			pmv_nocache_pile,
      .			pmv_work_var_pile,
      .			pmv_adjoint_var_pile,
      .			pmv_lowest_head,
-     .			dummy_mr
+     .			dummy_mr,
+     .			max_splits
 	PARAMETER     ( max_mrs   = 501,
      .			dummy_mr  = max_mrs,
+     .			max_ws    = 8,
+     .			plegacy_work_buffer = 1,
      .			max_mr_avail = max_mrs - 1,
-     .			pmem_blk_size = 2*(160*100*4/10), !2* 9/01 see ferret.h
-     .			pmax_mem_blks   = 2000,
+     .			pmax_mem_default = 25600000,  !25.6 megawords
+     .			pint_size_test = -999,   ! if needed use c __WORDSIZE
      .			pmv_npiles     = 299,	! prime # of hash piles
      .			pmv_nocache_pile = -pmv_npiles - 1,
      .			pmv_work_var_pile = -pmv_npiles - 2,
      .			pmv_adjoint_var_pile = -pmv_npiles - 3,
-     .			pmv_lowest_head = -pmv_npiles - 5)  ! -4, -5 unused
+     .			pmv_lowest_head = -pmv_npiles - 5,  ! -4, -5 unused
+     .			max_splits = 10 )
 ! pmv_adjoint_pile reserved for future EF's returning multiple results
 
 	INTEGER		max_uvar,
@@ -222,10 +236,48 @@
 
 ********************************************************************************
 ******				COMMON DECLARATION			  ******
+* ******* added 1/17
+* dynamic memory pointer areas
+* 2 tables: mr, ws (work storage), (possible 3rd future cs - coordinate store)
+* ... an array of pointers to 1D arrays in F90
+        TYPE mem_table_slot
+           SEQUENCE     ! force data elements to be memory-contiguous
+           REAL(8), POINTER :: ptr(:)
+        END TYPE
+        TYPE(mem_table_slot) :: memry(max_mrs)
+        TYPE(mem_table_slot) :: workmem(max_ws)
+        INTEGER*8 total_mem, peak_mem, permanent_mem, essential_mem,
+     .		  peak_essential_mem, completed_args_mem, max_mem_allowed
+	INTEGER mr_size, ws_size
+	LOGICAL need_memlim_warning
+        COMMON / XDYN_MEM /  
+     .          memry,
+     .		workmem,
+     .          total_mem,
+     .		peak_mem,
+     .		permanent_mem,
+     .	        essential_mem,
+     .		peak_essential_mem,
+     .		completed_args_mem,
+     .		max_mem_allowed,
+     .		mr_size(max_mrs),
+     .		ws_size(max_ws),
+     .		need_memlim_warning
+
+* *******
 
-	COMMON / XMEM_DESCR /
-     .		mem_blk_size,
-     .		max_mem_blks
+	INTEGER nsplits, split_var, split_cat, split_axis, split_frag,
+     .			 split_trans, split_repeats
+	INTEGER*8 deferred_committed_mem
+        COMMON / XSPLIT_GATHER /  
+     .		deferred_committed_mem,
+     .		nsplits,
+     .		split_var  (max_splits),
+     .		split_cat  (max_splits),
+     .		split_axis (max_splits),
+     .		split_trans(max_splits),
+     .		split_frag (max_splits),
+     .		split_repeats(max_splits)
 
 * Reordered as REAL*8, REAL (which may be REAL*8 or REAL*4), INTEGER, LOGICAL,
 * CHARACTER to eliminate padding requirements from the compiler.
@@ -242,6 +294,7 @@
      .          uvar_name_code_padding,
      .          uvar_num_items_head,
      .          uvar_num_items_padding,
+     .		uvar_c_cache_ptr ( max_uvar ),
      .
      .		mr_trans_arg	( nferdims, max_mrs ),
      .		mr_bad_data   	( max_mrs ),
@@ -253,8 +306,6 @@
      .		mr_lo_ss	( max_mrs, nferdims ),
      .		mr_hi_ss	( max_mrs, nferdims ),
      .		mr_protected	( max_mrs ),
-     .		mr_blk1		( max_mrs ),
-     .		mr_nblks	( max_mrs ),
      .		mr_data_set	( max_mrs ),
      .		mr_category	( max_mrs ),
      .		mr_variable	( max_mrs ),
@@ -263,24 +314,17 @@
      .		mr_naux   	( max_mrs ),
      .		mr_aux_var	( nferdims, max_mrs ),
      .		mr_aux_cat	( nferdims, max_mrs ),
-     .		mblk_flink      ( 0:pmax_mem_blks ),
-     .		mblk_blink      ( 0:pmax_mem_blks ),
-     .		mblk_size       ( 0:pmax_mem_blks ),
      .		mv_flink        ( pmv_lowest_head:max_mrs ),
      .		mv_blink        ( pmv_lowest_head:max_mrs ),
      .		mr_del_flink    ( 0:max_mrs ),
      .		mr_del_blink    ( 0:max_mrs ),
-     .		mr_del_last_mblk,
      .		mr_del_last_size,
      .		num_uvars_in_cmnd,
+     .		current_cmnd_uvar,
      .		uvar_lo_ss	 ( max_uvar, nferdims ),
      .		uvar_hi_ss	 ( max_uvar, nferdims ),
      .		uvar_num_items   ( max_uvar ),
      .		uvar_parent	 ( max_uvar ),
-     .		uvar_grid	 ( max_uvar, 0:max_gfdl_dsets ),
-     .		uvar_data_type	 ( max_uvar, 0:max_gfdl_dsets ),
-     .		uvar_aux_var	 ( max_uvar, nferdims, 0:max_gfdl_dsets ),
-     .		uvar_aux_cat	 ( max_uvar, nferdims, 0:max_gfdl_dsets ),
      .		uvar_aux_stat	 ( max_uvar, nferdims ),
      .		uvar_item_start	 ( max_uvar_items, max_uvar ),
      .		uvar_item_end	 ( max_uvar_items, max_uvar ),
@@ -305,6 +349,7 @@
      .		is_uvar 	( max_intrp ),
      .		is_mr		( max_intrp ),
      .		is_aux_ptr 	( max_intrp ),
+     .		is_deferred_mem ( max_intrp ),
      .
      .		mr_unstand_grid	 ( max_mrs ),
      .		uvar_by_ss	 ( nferdims, max_uvar ),
@@ -312,8 +357,8 @@
      .		uvar_ifv	 ( max_uvar ),
      .		uvar_title_w_text( max_uvar ),
      .		uvar_need_dset	 ( max_uvar ),
-     .		uvar_c_cache_ptr ( max_uvar ),
      .		has_uvar_gc,
+     .		has_uvar_dc,
      .		is_uvar_const,
      .
      .		uvar_text	 ( max_uvar ),
@@ -324,21 +369,14 @@
 ********************************************************************************
 ******			COMMON VARIABLE TYPE DECLARATIONS		  ******
 
-	INTEGER	mem_blk_size,
-     .		max_mem_blks
-
-	INTEGER	mblk_flink,
-     .		mblk_blink,
-     .		mblk_size
-
 	INTEGER	mv_flink,
      .		mv_blink,
      .		mr_del_flink,
      .		mr_del_blink,
-     .		mr_del_last_mblk,
      .		mr_del_last_size
 
-	INTEGER		num_uvars_in_cmnd
+	INTEGER		num_uvars_in_cmnd,
+     .		        current_cmnd_uvar
 
 	LOGICAL		mr_unstand_grid
 
@@ -362,8 +400,6 @@
      .			mr_category	,
      .			mr_variable	,
      .			mr_protected	,
-     .			mr_blk1		,
-     .			mr_nblks	,
      .			mr_grid 	,
      .			mr_type 	,
      .			mr_naux		,
@@ -379,6 +415,7 @@
      .			uvar_mod_pseudo,
      .			uvar_by_ss,
      .			has_uvar_gc,
+     .			has_uvar_dc,
      .			is_uvar_const,
      .			uvar_ifv,
      .			uvar_remote,
@@ -390,10 +427,6 @@
      .			uvar_c_cache_ptr
 
         INTEGER		uvar_num_items  ,
-     .			uvar_grid	,
-     .			uvar_data_type	,
-     .			uvar_aux_var	,
-     .			uvar_aux_cat	,
      .			uvar_aux_stat	,
      .			uvar_item_start	,
      .			uvar_item_end	,
@@ -422,6 +455,8 @@
      .			is_aux_ptr,
      .			is_sum
 
+	INTEGER*8	is_deferred_mem
+
 * equivalences to assist with declaration statements
 	INTEGER mr_lo_s1( max_mrs ),
      .		mr_lo_s2( max_mrs ),
diff --git a/fer/ctx/SOURCE_FILES b/fer/ctx/SOURCE_FILES
index 17674f5..5e92c4b 100644
--- a/fer/ctx/SOURCE_FILES
+++ b/fer/ctx/SOURCE_FILES
@@ -7,7 +7,9 @@ apply_delta_context.F\
 aux_axis_from_arg.F\
 cgrid_axis.F\
 cgrid_size.F\
+cgrid_size8.F\
 cgrid_size_max.F\
+cgrid_uvar_size.F\
 complete_missing_limits.F\
 confine_context.F\
 create_new_context.F\
diff --git a/fer/stk/explicit_uvar.F b/fer/ctx/cgrid_size8.F
similarity index 82%
copy from fer/stk/explicit_uvar.F
copy to fer/ctx/cgrid_size8.F
index 7e481f2..89945db 100644
--- a/fer/stk/explicit_uvar.F
+++ b/fer/ctx/cgrid_size8.F
@@ -1,4 +1,4 @@
-	LOGICAL FUNCTION EXPLICIT_UVAR( uvar )
+	INTEGER*8 FUNCTION CGRID_SIZE8 ( cx )
 
 *
 *
@@ -35,26 +35,31 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* determine if the given "user-defined" variable was explicitly created (with
-* DEFINE VARIABLE) or implicitly (e.g. with LIST U*V)
-
+* determine the number of values in the given context
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 * written for VAX computer under VMS operating system
 *
-* V200:   8/8/89
-*       *acm* 3/12 cleanup ifdefs and unnecessary include files
-*       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V701: *sh* 2/2017
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
-	include 'xvariables.cmn'
+	include 'xcontext.cmn'
+
+* calling argument declarations
+	INTEGER	cx
+
+* internal variable declarations
+	INTEGER	CX_DIM_LEN, idim
+	INTEGER*8 size
 
-* calling argument declarations:
-	INTEGER	uvar
+	size = 1
+	DO idim = 1, nferdims
+	   size = size * CX_DIM_LEN( idim, cx )
+	ENDDO
 
-	EXPLICIT_UVAR = INDEX( uvar_name_code(uvar), '#' ) .EQ. 0
+	CGRID_SIZE8 = size
 
 	RETURN
 	END
diff --git a/fer/stk/explicit_uvar.F b/fer/ctx/cgrid_uvar_size.F
similarity index 71%
copy from fer/stk/explicit_uvar.F
copy to fer/ctx/cgrid_uvar_size.F
index 7e481f2..9a6a24d 100644
--- a/fer/stk/explicit_uvar.F
+++ b/fer/ctx/cgrid_uvar_size.F
@@ -1,4 +1,4 @@
-	LOGICAL FUNCTION EXPLICIT_UVAR( uvar )
+	INTEGER FUNCTION CGRID_UVAR_SIZE ( cx )
 
 *
 *
@@ -35,26 +35,39 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* determine if the given "user-defined" variable was explicitly created (with
-* DEFINE VARIABLE) or implicitly (e.g. with LIST U*V)
+* determine the number of values in the given cx, recognizing that if it is
+* a uvar, then in its pyramid of definitions there may be compressing
+* transformations.
 
+* For example in LET Vave = V[x=@ave]
+* even though the X limits of the context may X=1:1000, the X size of Vave
+* is only 1
 
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* V200:   8/8/89
-*       *acm* 3/12 cleanup ifdefs and unnecessary include files
-*       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V702: *sh* 3/17
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
+	include 'xcontext.cmn'
 	include 'xvariables.cmn'
 
-* calling argument declarations:
-	INTEGER	uvar
+	INTEGER	CGRID_SIZE, CX_DIM_LEN, cx, uvar, idim, isize, dimsize
+
 
-	EXPLICIT_UVAR = INDEX( uvar_name_code(uvar), '#' ) .EQ. 0
+	IF ( cx_category(cx) .EQ. cat_user_var ) THEN
+	   uvar = cx_variable(cx)
+	   isize = 1
+	   DO idim = 1, nferdims
+	      IF (uvar_given(idim, uvar) .EQ. uvlim_need_xact) THEN
+	         dimsize = 1
+	      ELSE
+	         dimsize = CX_DIM_LEN( idim, cx )
+	      ENDIF
+	      isize = isize * dimsize
+	   ENDDO
+	   CGRID_UVAR_SIZE = isize
+	ELSE
+	   CGRID_UVAR_SIZE = CGRID_SIZE(cx)
+	ENDIF
 
 	RETURN
 	END
diff --git a/fer/ctx/get_auto_aux_vars.F b/fer/ctx/get_auto_aux_vars.F
index f2b02f0..24a5668 100644
--- a/fer/ctx/get_auto_aux_vars.F
+++ b/fer/ctx/get_auto_aux_vars.F
@@ -49,6 +49,8 @@
 * *sh* 12/13
 * V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
 * V7    5/16 *acm* See ticket 2352. For LET/D variables look for info under that dataset
+* 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 
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -66,7 +68,8 @@
 	LOGICAL	  NC_GET_ATTRIB, got_it
 	INTEGER	  TM_LENSTR1, 
      .		  idim, dset, attlen, attoutflag, maxlen, varid, slen,
-     .		  status, aux_var, aux_cat
+     .		  vcat, vvar, status
+	INTEGER   aux_cat(nferdims), aux_var(nferdims)  !From GET_SAVED_UVAR_AUX_INFO 
 	REAL	  attvals(10)   ! only if __LayerzRef_ mis-defined as numeric!
 	CHARACTER VAR_CODE*128, refvarname*128, varname*128,
      .		  dsetname*128
@@ -84,14 +87,19 @@
 
 * user-defined variables may be associated with inherited auxiliary variables
 	IF (cat .EQ. cat_user_var) THEN
-	   DO idim = 1, nferdims
-	      IF (uvar_aux_stat(var,idim) .EQ. paux_stat_passed
-     .	     .OR. uvar_aux_stat(var,idim) .EQ. paux_stat_needed ) THEN
-	         curv_vars(idim) = uvar_aux_var(var, idim, dataset)
-	         curv_cats(idim) = uvar_aux_cat(var, idim, dataset)
-	      ENDIF
-	   ENDDO
-	ENDIF
+	
+	   CALL GET_SAVED_UVAR_AUX_INFO(var, dataset, aux_cat, aux_var, status)
+	   IF (status .EQ. ferr_ok) THEN
+	      DO idim = 1, nferdims
+	         IF (uvar_aux_stat(var,idim) .EQ. paux_stat_passed
+     .	        .OR. uvar_aux_stat(var,idim) .EQ. paux_stat_needed ) THEN
+	            curv_vars(idim) = aux_var(idim)
+	            curv_cats(idim) = aux_cat(idim)
+	         ENDIF
+	      ENDDO
+	   ENDIF  ! status from GET_SAVED_UVAR_AUX_INFO
+
+	ENDIF  ! user_var
 
 * get the variable ID in the linked list  (user vars stored under dset=pdset_uvars)
 	IF (cat .EQ. cat_user_var) THEN
@@ -121,8 +129,8 @@
 * NOTE:  wired to do only a Z axis  at this time  XXXXXXXXXXX
         CALL FIND_VAR_NAME( dataset,
      .			    refvarname,
-     .			    aux_cat, aux_var )
-	IF (aux_var .EQ. munknown_var_name) THEN
+     .			    vcat, vvar )
+	IF (vvar .EQ. munknown_var_name) THEN
 * .... "Variable TEMP associated with non-existent layerz variable DEPTH"
 *      "in levitus_climatology"
 	   CALL GET_SHORT_DSET_NAME(dataset, dsetname, slen )
@@ -131,8 +139,8 @@
      .		refvarname(:TM_LENSTR1(refvarname)) // pCR //
      .		'           in ' //dsetname(:slen) )
 	ELSE
-	   curv_vars(z_dim) = aux_var
-	   curv_cats(z_dim) = aux_cat
+	   curv_vars(z_dim) = vvar
+	   curv_cats(z_dim) = vcat
 	ENDIF
 
  5000	RETURN
diff --git a/fer/ctx/known_data_type.F b/fer/ctx/known_data_type.F
index 43705ce..4a4c1c7 100644
--- a/fer/ctx/known_data_type.F
+++ b/fer/ctx/known_data_type.F
@@ -46,6 +46,8 @@
 * V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
 *                  variables, pre-defined axes and grids, cat_calc_var.
 * V698 3/16 *sh* added logic for cat_ef_time2d (ACTS_LIKE_FVAR)
+* 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 
 
 	include	'tmap_dims.parm'
 	include	'xdset_info.cmn_text'
@@ -60,7 +62,7 @@
 
 * internal variable declarations:
 	LOGICAL ACTS_LIKE_FVAR
-	INTEGER	dset, data_set, category, variable, idim, trans
+	INTEGER	dset, data_set, category, variable, idim, trans, itype
 
 * initialize
 	category = cx_category(cx)
@@ -85,7 +87,9 @@
 	   ELSE
 	      dset = data_set
 	   ENDIF
-	   cx_type(cx) = uvar_data_type( variable, dset )
+	   
+	   CALL GET_SAVED_UVAR_DTYPE(variable, dset, itype)
+	   cx_type(cx) = itype
 
 	ELSEIF ( category .EQ. cat_temp_var ) THEN
 !! here, variable may be up to 2000, mr_type is dimension 151
diff --git a/fer/ctx/parse_var_name.F b/fer/ctx/parse_var_name.F
index df10be6..f3d0ea4 100644
--- a/fer/ctx/parse_var_name.F
+++ b/fer/ctx/parse_var_name.F
@@ -77,6 +77,7 @@
 * V698  3/16 *sh* added logic for cat_ef_time2d (ACTS_LIKE_FVAR)
 * v698 5/16  *acm* ticket 2413: New attribute keywords ncoordvars, coordnames
 *                  return info about coordinate-variables in datasets
+* V710 9/16  *acm* ticket 2465: Parsing expressions including attribute references.
 
 	include	'tmap_dims.parm'
 	include	'ferret.parm'
@@ -265,7 +266,7 @@
      .                              attname, varid, do_err, status )
 
            IF (status .NE. ferr_ok) GOTO 5100
-           IF (varid .GT. 0) THEN
+           IF (varid .GE. 0) THEN
               CALL CD_GET_VAR_ATT_ID (dset, varid, attname, attid,
      .               status)
               IF (attid .GT. 0) CALL CD_GET_VAR_ATT_INFO (dset, varid, 
@@ -275,11 +276,15 @@
 * Is it a pseudo-attribute for the variable?
 
                  IF (STR_SAME(attname, 'attnames') .EQ. 0 .OR. 
-     .               STR_SAME(attname, 'dimnames') .EQ. 0 ) THEN
+     .               STR_SAME(attname, 'dimnames') .EQ. 0 .OR. 
+     .               STR_SAME(attname, 'varnames') .EQ. 0 .OR. 
+     .               STR_SAME(attname, 'coordnames') .EQ. 0 ) THEN
                     cx_type(var_cx) = ptype_string
                  ELSEIF (STR_SAME(attname, 'ndims') .EQ. 0 .OR. 
      .                   STR_SAME(attname, 'type')  .EQ. 0 .OR. 
-     .                   STR_SAME(attname, 'nattrs') .EQ. 0) THEN
+     .                   STR_SAME(attname, 'nvars') .EQ. 0 .OR. 
+     .                   STR_SAME(attname, 'nattrs') .EQ. 0 .OR. 
+     .                   STR_SAME(attname, 'ncoordvars') .EQ. 0) THEN
                     cx_type(var_cx) = ptype_float
                  ELSE
                     GOTO 5100
@@ -294,10 +299,14 @@
 
 * Is it a pseudo-attribute at the dataset level?
               cx_type(var_cx) = ptype_float
-              IF (STR_SAME (attname, 'varnames')  .EQ. 0 .OR.
-     .            STR_SAME (attname, 'dimnames')  .EQ. 0 .OR.
-     .            STR_SAME (attname, 'coordnames')  .EQ. 0 .OR.
-     .            STR_SAME (attname, 'attnames')  .EQ. 0 )
+              IF (STR_SAME (attname, 'varnames')   .EQ. 0 .OR.
+     .            STR_SAME (attname, 'dimnames')   .EQ. 0 .OR.
+     .            STR_SAME (attname, 'coordnames') .EQ. 0 .OR.
+     .            STR_SAME (attname, 'attnames')   .EQ. 0 .OR.
+     .            STR_SAME (attname, 'nvars')      .EQ. 0 .OR.
+     .            STR_SAME (attname, 'nattrs')     .EQ. 0 .OR.
+     .            STR_SAME (attname, 'ncoordvars') .EQ. 0 .OR. 
+     .               STR_SAME(attname, 'coordnames') .EQ. 0 )
      .         cx_type(var_cx) = ptype_string
            ENDIF
 	ELSE
diff --git a/fer/ctx/pseudo_var_context.F b/fer/ctx/pseudo_var_context.F
index de7b958..2d88710 100644
--- a/fer/ctx/pseudo_var_context.F
+++ b/fer/ctx/pseudo_var_context.F
@@ -71,6 +71,7 @@
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 *       *acm* 4/12 Add new MODE FOURDEE to allow E,F,M,N,etc as user-vars
 * V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
+* V720  *acm* 2/17 ticket 2511 Dynamic grids on user-defined variables
 
 	include	'ferret.parm'
 	include	'errmsg.parm'
@@ -174,7 +175,12 @@
 *	4 and probably a crash.  This is side-stepped by using cx_grid(mods_cx)
 *	but with the result that the grid is not inherited.  To  work around
 *	the user must use "temp[x=lo:hi:del]+X[g=temp,x=lo:hi:del]"
-	   IF ( cx_grid(mods_cx) .NE. unspecified_int4 ) THEN
+
+*   ticket 2511: the grid number may be a large negative number due to the hack 
+*   in get_context_mods.F which encodes the start/end limits of the uvar name 
+*   into the grid. When that is the case we do not want to use that as base_grid.
+
+	   IF ( cx_grid(mods_cx) .GT. unspecified_int4 ) THEN
 	      base_grid = cx_grid(mods_cx)
 	   ELSE
 ! 2/22/99 addition
diff --git a/fer/dat/xcommand_data.F b/fer/dat/xcommand_data.F
index e1c681d..32ba215 100644
--- a/fer/dat/xcommand_data.F
+++ b/fer/dat/xcommand_data.F
@@ -249,7 +249,12 @@
 *                  /HALFSPAC adds a half space between the degree sign and E/W or N/S
 * V7    6/16 *kms* Add reserved slots for PyFerret commands and qualifiers
 *                  to simplify future merges of Ferret into PyFerret
-
+* V7   10/16 *kms* New SET WINDOW /SCALE=
+* V710 *acm*  3/16 Added DEFINE AXIS /LIKE=
+* V710 *acm*  3/16 Ticket 2158: Add DEFINE AXIS /MONTHLY 
+* V702 *sh*   1/17 Removed the USER command
+*	      3/17 Added SHOW MEMORY/DIAGNOSTIC
+* V720 *acm*  3/17 Ticket 2512: Add STAT/PRECISION=
 *
 * !!!!!!!!!!
 * Use caution when defining new commands, qualifiers, or changing these data structures:
@@ -303,7 +308,7 @@
 		DATA qualifiers  (nqual_at1b+16)/ 'YINCHES'	/
 		DATA qualifiers  (nqual_at1b+17)/ 'TEXTPROM'	/
 		DATA qualifiers  (nqual_at1b+18)/ 'OUTLINE'	/
-		DATA qualifiers  (nqual_at1b+19)/ '****'	/
+		DATA qualifiers  (nqual_at1b+19)/ 'SCALE'	/
 * SET REGION
 	   DATA subcommands      (nsub_at1 + 2)	/ 'REGION'	/
 	   DATA num_qualifs      (nsub_at1 + 2)	/ nqual1c	/
@@ -594,14 +599,14 @@
 		DATA qualifiers  (nqual_at2g+1)	/ 'BRIEF'	/
 		DATA qualifiers  (nqual_at2g+2)	/ 'FULL'	/
 		DATA qualifiers  (nqual_at2g+3)	/ 'VARIABLE'	/
-		DATA qualifiers  (nqual_at2g+4)	/ 'FILES'	/
+		DATA qualifiers  (nqual_at2g+4)	/ 'FILES'	/ ! deprecated
 		DATA qualifiers  (nqual_at2g+5)	/ 'XML'		/
 		DATA qualifiers  (nqual_at2g+6)	/ 'ATTR'	/
 		DATA qualifiers  (nqual_at2g+7)	/ 'OUTFILE'	/
 		DATA qualifiers  (nqual_at2g+8)	/ 'APPEND'	/
 		DATA qualifiers  (nqual_at2g+9)	/ 'CLOBBER'	/
 		DATA qualifiers  (nqual_at2g+10)/ 'HIDDEN'	/
-		DATA qualifiers  (nqual_at2g+11)/ '****'	/
+		DATA qualifiers  (nqual_at2g+11)/ 'MEMBERS'	/
 		DATA qualifiers  (nqual_at2g+12)/ '****'	/
 		DATA qualifiers  (nqual_at2g+13)/ '****'	/
 		DATA qualifiers  (nqual_at2g+14)/ '****'	/
@@ -649,7 +654,7 @@
 	   DATA qualifier_pointer(nsub_at2 +11)	/ nqual_at2l	/
 * SHOW MEMORY /ALL /TEMP /PERM /FREE
 		DATA qualifiers  (nqual_at2l+0)	/ 'ALL '	/
-		DATA qualifiers  (nqual_at2l+1)	/ '****'	/
+		DATA qualifiers  (nqual_at2l+1)	/ 'DIAGNOSTIC'	/
 		DATA qualifiers  (nqual_at2l+2)	/ 'TEMPORY'	/
 		DATA qualifiers  (nqual_at2l+3)	/ 'PERMANT'	/
 		DATA qualifiers  (nqual_at2l+4)	/ 'FREE'	/
@@ -1229,7 +1234,7 @@
 	   DATA subcommands      (nsub_at10 + 4)/ 'AXIS'	/
 	   DATA num_qualifs      (nsub_at10 + 4)/ nqual10e	/
 	   DATA qualifier_pointer(nsub_at10 + 4)/ nqual_at10e	/
-* DEFINE AXIS /X/Y/Z/T/E/F /FILE /UNITS /QUIET /LIKE ...
+* DEFINE AXIS /X/Y/Z/T/E/F /FILE /UNITS /QUIET /MONTHLY /LIKE ...
 		DATA qualifiers  (nqual_at10e+ 0)/ 'X'	  /
 		DATA qualifiers  (nqual_at10e+ 1)/ 'Y'	  /
 		DATA qualifiers  (nqual_at10e+ 2)/ 'Z'	  /
@@ -1248,7 +1253,7 @@
 		DATA qualifiers  (nqual_at10e+ 15)/ 'CALENDAR' /
 		DATA qualifiers  (nqual_at10e+ 16)/ 'BOUNDS' /
 		DATA qualifiers  (nqual_at10e+ 17)/ 'QUIET' /
-		DATA qualifiers  (nqual_at10e+ 18)/ '****' /
+		DATA qualifiers  (nqual_at10e+ 18)/ 'MONTHLY' /
 		DATA qualifiers  (nqual_at10e+ 19)/ 'LIKE' /
 * DEFINE VIEW
 	   DATA subcommands      (nsub_at10 + 5)/ 'VIEWPORT'	/
@@ -1307,7 +1312,11 @@
 		DATA qualifiers  (nqual_at10k+ 6)/ 'F'    / ! f
 		DATA qualifiers  (nqual_at10k+ 7)/ 'TITLE' /
 		DATA qualifiers  (nqual_at10k+ 8)/ 'QUIET' /
-		DATA qualifiers  (nqual_at10k+ 9)/ 'HIDE' /	
+		DATA qualifiers  (nqual_at10k+ 9)/ 'HIDE' /
+		DATA qualifiers  (nqual_at10k+ 10)/ 'U' /	
+		DATA qualifiers  (nqual_at10k+ 11)/ '****' /	
+		DATA qualifiers  (nqual_at10k+ 12)/ '****' /	
+		DATA qualifiers  (nqual_at10k+ 13)/ '****' /		
 * DEFINE ANNOTATION
 	   DATA subcommands      (nsub_at10 + 11)/ 'ANNOTATION'	/
 	   DATA num_qualifs      (nsub_at10 + 11)/ nqual10l	/
@@ -1487,9 +1496,9 @@
 	   DATA subcommands      (nsub_at17 + 0)	/ '    '	/
 	   DATA num_qualifs      (nsub_at17 + 0)	/ nqual17a	/
 	   DATA qualifier_pointer(nsub_at17 + 0)	/ nqual_at17a	/
-* STAT /I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/G
+* STAT /BRIEF/PRECISION/I/J/K/L/M/N/X/Y/Z/T/E/F/DATASET/G
 		DATA qualifiers  (nqual_at17a+0)	/ 'BRIEF'/
-		DATA qualifiers  (nqual_at17a+1)	/ '****'/
+		DATA qualifiers  (nqual_at17a+1)	/ 'PRECISION'/
 		DATA qualifiers  (nqual_at17a+2)	/ 'I'	/
 		DATA qualifiers  (nqual_at17a+3)	/ 'J'	/
 		DATA qualifiers  (nqual_at17a+4)	/ 'K'	/
@@ -1565,8 +1574,8 @@
 	   DATA num_qualifs      (nsub_at19 + 0)	/ nqual19a	/
 	   DATA qualifier_pointer(nsub_at19 + 0)	/ nqual_at19a	/
 
-* USER - command # 20
-	DATA commands(20)			/ 'USER'	/
+* **** formerly USER - command # 20
+	DATA commands(20)			/ '****'	/
         DATA its_action_command(20)             / .TRUE.        /
 	DATA num_subcommands(20)		/ nsub20	/
 	DATA subcommand_pointer(20)		/ nsub_at20	/
@@ -1874,13 +1883,16 @@
      .		alias_name(25)	/ 'TSERIES' /,
      .		alias_len(25)	/ 22 /,
      .		alias(25)	/ 'DEFINE DATA/AGGREGAT/T' /
+     .		alias_name(26)	/ 'UNION' /,
+     .		alias_len(26)	/ 22 /,
+     .		alias(26)	/ 'DEFINE DATA/AGGREGAT/U' /
 
         DATA
      .		(alias_name(i),i=num_predefined_alias+1,150)
-     .                   / 125*unspecified_name4 /,
-     .		(alias_len(i),i=num_predefined_alias+1,150) / 125*4 /,
+     .                   / 124*unspecified_name4 /,
+     .		(alias_len(i),i=num_predefined_alias+1,150) / 124*4 /,
      .		(alias(i),i=num_predefined_alias+1,150)
-     .                   / 125*unspecified_name4 /
+     .                   / 124*unspecified_name4 /
 
 
 	DATA queries(1) / 'STATUS' /,
diff --git a/fer/dat/xgfdl_error_text_data.F b/fer/dat/xgfdl_error_text_data.F
index 473fd45..15a9e2e 100644
--- a/fer/dat/xgfdl_error_text_data.F
+++ b/fer/dat/xgfdl_error_text_data.F
@@ -300,6 +300,9 @@
 	DATA err_text( ferr_unknown_auxvar - greport )
      .		/ 'auxiliary variable unknown or not in data set' /
 
+	DATA err_text( ferr_sys_return - greport )
+     .		/ 'Shell command returned failure flag' /
+
 	DATA err_text( ferr_nomessge - greport )
      .		/ ' '/
 
diff --git a/fer/dat/xgrid_chg_fcns_data.F b/fer/dat/xgrid_chg_fcns_data.F
index 296a60c..89a97f8 100644
--- a/fer/dat/xgrid_chg_fcns_data.F
+++ b/fer/dat/xgrid_chg_fcns_data.F
@@ -54,6 +54,8 @@
 *                    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
+*                  which call specific funcions depenging on direction arguments
 
 * the addition (or major modification) of an internal grid-changing function
 * requires changes to these routines:
@@ -83,6 +85,7 @@
 	DATA gfcn_descr        (p_xunravel) / 'unravel grid to a line in X' /
 	DATA gfcn_rtn_type     (p_xunravel) /pfcn_rtn_arg1_type /
 	DATA gfcn_num_reqd_args(p_xunravel) /p_xunravel_num_args/
+	DATA (gfcn_dir_args(i,p_xunravel),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_xunravel) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_xunravel),i=1,nferdims)/
      .						pgc_axis_is_abstract,
@@ -123,6 +126,7 @@
      .			/ 'echo passed string (test routine)' /
 	DATA gfcn_rtn_type     (p_times2) / pfcn_rtn_float /
 	DATA gfcn_num_reqd_args(p_times2) /p_times2_num_args/
+	DATA (gfcn_dir_args(i,p_times2),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_times2) /.FALSE./
 
 	DATA (gfcn_axis_will_be(i,p_times2),i=1,nferdims)/
@@ -174,6 +178,7 @@
 	DATA gfcn_descr        (p_reshape) / 'reshape A to grid of B' /
 	DATA gfcn_rtn_type     (p_reshape) /pfcn_rtn_arg1_type /
 	DATA gfcn_num_reqd_args(p_reshape) /p_reshape_num_args/
+	DATA (gfcn_dir_args(i,p_reshape),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_reshape) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_reshape),i=1,nferdims)/
      .						pgc_axis_supplied_herein,
@@ -228,6 +233,7 @@
 
 	DATA gfcn_rtn_type     (p_zlayer) / pfcn_rtn_float /
 	DATA gfcn_num_reqd_args(p_zlayer) /p_zlayer_num_args/
+	DATA (gfcn_dir_args(i,p_zlayer),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_zlayer) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_zlayer),i=1,nferdims)/
      .						pgc_axis_implied_by_args,
@@ -281,6 +287,7 @@
 	DATA gfcn_descr        (p_yunravel) / 'unravel grid to a line in Y' /
 	DATA gfcn_rtn_type     (p_yunravel) /pfcn_rtn_arg1_type /
 	DATA gfcn_num_reqd_args(p_yunravel) /p_yunravel_num_args/
+	DATA (gfcn_dir_args(i,p_yunravel),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_yunravel) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_yunravel),i=1,nferdims)/
      .						pgc_axis_is_normal,
@@ -317,6 +324,7 @@
 	DATA gfcn_descr        (p_zunravel) / 'unravel grid to a line in Z' /
 	DATA gfcn_rtn_type     (p_zunravel) /pfcn_rtn_arg1_type /
 	DATA gfcn_num_reqd_args(p_zunravel) /p_zunravel_num_args/
+	DATA (gfcn_dir_args(i,p_zunravel),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_zunravel) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_zunravel),i=1,nferdims)/
      .						pgc_axis_is_normal,
@@ -353,6 +361,7 @@
 	DATA gfcn_descr        (p_tunravel) / 'unravel grid to a line in T' /
 	DATA gfcn_rtn_type     (p_tunravel) /pfcn_rtn_arg1_type /
 	DATA gfcn_num_reqd_args(p_tunravel) /p_tunravel_num_args/
+	DATA (gfcn_dir_args(i,p_tunravel),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_tunravel) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_tunravel),i=1,nferdims)/
      .						pgc_axis_is_normal,
@@ -388,6 +397,7 @@
 	DATA gfcn_descr        (p_eunravel) / 'unravel grid to a line in E' /
 	DATA gfcn_rtn_type     (p_eunravel) /pfcn_rtn_arg1_type /
 	DATA gfcn_num_reqd_args(p_eunravel) /p_eunravel_num_args/
+	DATA (gfcn_dir_args(i,p_eunravel),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_eunravel) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_eunravel),i=1,nferdims)/
      .						pgc_axis_is_normal,
@@ -424,6 +434,7 @@
 	DATA gfcn_descr        (p_funravel) / 'unravel grid to a line in F' /
 	DATA gfcn_rtn_type     (p_funravel) /pfcn_rtn_arg1_type /
 	DATA gfcn_num_reqd_args(p_funravel) /p_funravel_num_args/
+	DATA (gfcn_dir_args(i,p_funravel),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_funravel) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_funravel),i=1,nferdims)/
      .						pgc_axis_is_normal,
@@ -461,6 +472,7 @@
      .		/ 'sample a field at a list of X indices' /
 	DATA gfcn_rtn_type     (p_samplei) /pfcn_rtn_arg1_type /
 	DATA gfcn_num_reqd_args(p_samplei) /p_samplei_num_args/
+	DATA (gfcn_dir_args(i,p_samplei),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_samplei) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_samplei),i=1,nferdims)/
      .					pgc_axis_is_abstract,
@@ -512,6 +524,7 @@
      .		/ 'sample a field at a list of Y indices' /
 	DATA gfcn_rtn_type     (p_samplej) /pfcn_rtn_arg1_type /
 	DATA gfcn_num_reqd_args(p_samplej) /p_samplej_num_args/
+	DATA (gfcn_dir_args(i,p_samplej),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_samplej) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_samplej),i=1,nferdims)/
      .					pgc_axis_implied_by_args,
@@ -563,6 +576,7 @@
      .		/ 'sample a field at a list of Z indices' /
 	DATA gfcn_rtn_type     (p_samplek) /pfcn_rtn_arg1_type /
 	DATA gfcn_num_reqd_args(p_samplek) /p_samplek_num_args/
+	DATA (gfcn_dir_args(i,p_samplek),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_samplek) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_samplek),i=1,nferdims)/
      .					pgc_axis_implied_by_args,
@@ -614,6 +628,7 @@
      .		/ 'sample a field at a list of T indices' /
 	DATA gfcn_rtn_type     (p_samplel) /pfcn_rtn_arg1_type /
 	DATA gfcn_num_reqd_args(p_samplel) /p_samplel_num_args/
+	DATA (gfcn_dir_args(i,p_samplel),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_samplel) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_samplel),i=1,nferdims)/
      .					pgc_axis_implied_by_args,
@@ -665,6 +680,7 @@
      .		/ 'sample a field at a list of E indices' /
 	DATA gfcn_rtn_type     (p_samplem) /pfcn_rtn_arg1_type /
 	DATA gfcn_num_reqd_args(p_samplem) /p_samplem_num_args/
+	DATA (gfcn_dir_args(i,p_samplem),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_samplem) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_samplem),i=1,nferdims)/
      .					pgc_axis_implied_by_args,
@@ -716,6 +732,7 @@
      .		/ 'sample a field at a list of F indices' /
 	DATA gfcn_rtn_type     (p_samplen) /pfcn_rtn_arg1_type /
 	DATA gfcn_num_reqd_args(p_samplen) /p_samplen_num_args/
+	DATA (gfcn_dir_args(i,p_samplen),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_samplen) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_samplen),i=1,nferdims)/
      .					pgc_axis_implied_by_args,
@@ -766,6 +783,7 @@
 	DATA gfcn_descr        (p_spawn) / 'execute a system command' /
 	DATA gfcn_rtn_type     (p_spawn) /pfcn_rtn_string /
 	DATA gfcn_num_reqd_args(p_spawn) /p_spawn_num_args/
+	DATA (gfcn_dir_args(i,p_spawn),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_spawn) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_spawn),i=1,nferdims)/
      .						pgc_axis_is_abstract,
@@ -802,6 +820,7 @@
      .	'compare strings: +, 0, or - for str1 >, =, or < str2 rspctvly' /
 	DATA gfcn_rtn_type     (p_strcmp) /pfcn_rtn_float /
 	DATA gfcn_num_reqd_args(p_strcmp) /p_strcmp_num_args/
+	DATA (gfcn_dir_args(i,p_strcmp),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_strcmp) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_strcmp),i=1,nferdims)/
      .					pgc_axis_implied_by_args,
@@ -852,6 +871,7 @@
      .	'determine string length' /
 	DATA gfcn_rtn_type     (p_strlen) /pfcn_rtn_float /
 	DATA gfcn_num_reqd_args(p_strlen) /p_strlen_num_args/
+	DATA (gfcn_dir_args(i,p_strlen),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_strlen) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_strlen),i=1,nferdims)/
      .					pgc_axis_implied_by_args,
@@ -889,6 +909,7 @@
      .	'upper case entire string' /
 	DATA gfcn_rtn_type     (p_upcase) /pfcn_rtn_string /
 	DATA gfcn_num_reqd_args(p_upcase) /p_upcase_num_args/
+	DATA (gfcn_dir_args(i,p_upcase),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_upcase) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_upcase),i=1,nferdims)/
      .					pgc_axis_implied_by_args,
@@ -927,6 +948,7 @@
      .	'Return start character position of substring in string' /
 	DATA gfcn_rtn_type     (p_strindex) /pfcn_rtn_float /
 	DATA gfcn_num_reqd_args(p_strindex) /p_strindex_num_args/
+	DATA (gfcn_dir_args(i,p_strindex),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_strindex) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_strindex),i=1,nferdims)/
      .					pgc_axis_implied_by_args,
@@ -978,6 +1000,7 @@
      .	'Return last character position of substring in string' /
 	DATA gfcn_rtn_type     (p_strrindex) /pfcn_rtn_float /
 	DATA gfcn_num_reqd_args(p_strrindex) /p_strrindex_num_args/
+	DATA (gfcn_dir_args(i,p_strrindex),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_strrindex) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_strrindex),i=1,nferdims)/
      .					pgc_axis_implied_by_args,
@@ -1029,6 +1052,7 @@
      .	'make entire string lower case' /
 	DATA gfcn_rtn_type     (p_dncase) /pfcn_rtn_string /
 	DATA gfcn_num_reqd_args(p_dncase) /p_dncase_num_args/
+	DATA (gfcn_dir_args(i,p_dncase),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_dncase) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_dncase),i=1,nferdims)/
      .					pgc_axis_implied_by_args,
@@ -1066,6 +1090,7 @@
      .	'concatenate two strings' /
 	DATA gfcn_rtn_type     (p_strcat) /pfcn_rtn_string /
 	DATA gfcn_num_reqd_args(p_strcat) /p_strcat_num_args/
+	DATA (gfcn_dir_args(i,p_strcat),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_strcat) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_strcat),i=1,nferdims)/
      .					pgc_axis_implied_by_args,
@@ -1117,6 +1142,7 @@
      .	         'Return a substring ' /
 	DATA gfcn_rtn_type     (p_substring) /pfcn_rtn_string /
 	DATA gfcn_num_reqd_args(p_substring) /p_substring_num_args/
+	DATA (gfcn_dir_args(i,p_substring),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_substring) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_substring),i=1,nferdims)/
      .					pgc_axis_implied_by_args,
@@ -1181,6 +1207,7 @@
      .	'Return float value from character string' /
 	DATA gfcn_rtn_type     (p_strfloat) /pfcn_rtn_float /
 	DATA gfcn_num_reqd_args(p_strfloat) /p_strfloat_num_args/
+	DATA (gfcn_dir_args(i,p_strfloat),i=1,nferdims) /nferdims*0/
 	DATA gfcn_has_vari_args(p_strfloat) /.FALSE./
 	DATA (gfcn_axis_will_be(i,p_strfloat),i=1,nferdims)/
      .					pgc_axis_implied_by_args,
@@ -1207,17 +1234,149 @@
      .    / .TRUE., .TRUE., .TRUE., .TRUE., .TRUE., .TRUE. /
 
 
+* INNERPRODUCT(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 +
+     .					    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) /
+     .	'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)/
+     .					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)
+     .      / .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE. /
+	DATA gfcn_arg_ptr(p_innerprod) /p_innerprod_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)
+     .    / 0, 0, 0, 0, 0, 0 /
+	DATA (gfcn_arg_extend_hi (i,p_innerprod_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)
+     .    / .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)
+     .    / 0, 0, 0, 0, 0, 0 /
+	DATA (gfcn_arg_extend_hi (i,p_innerprod_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)
+     .    / .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)
+     .    / 0, 0, 0, 0, 0, 0 /
+	DATA (gfcn_arg_extend_hi (i,p_innerprod_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)
+     .    / .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,
+     .			p_transpose_num_args  = 3 )
+	DATA gfcn_name         (p_transpose) /'TRANSPOSE'/
+	DATA gfcn_alt_name_base (p_transpose) /'TRANSPOSE_%%'/
+	DATA gfcn_version      (p_transpose) / 1.0 /
+	DATA gfcn_descr        (p_transpose) /
+     .	'Compute the transpose along two given dimensions' /
+	DATA gfcn_rtn_type     (p_transpose) /pfcn_rtn_float /
+	DATA gfcn_num_reqd_args(p_transpose) /p_transpose_num_args/
+	DATA (gfcn_dir_args(i,p_transpose),i=1,nferdims)/2,3,0,0,0,0/
+	DATA gfcn_has_vari_args(p_transpose) /.FALSE./
+	DATA (gfcn_axis_will_be(i,p_transpose),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_transpose),i=1,nferdims)
+     .      / .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE. /
+	DATA gfcn_arg_ptr(p_transpose) /p_transpose_arg_start/
+
+* ... description of argument 1
+	DATA gfcn_arg_name(p_transpose_arg_start+0)/'VAR'/
+	DATA gfcn_arg_type(p_transpose_arg_start+0)/parg_type_float/
+	DATA gfcn_arg_units(p_transpose_arg_start+0)/' '/
+	DATA gfcn_arg_descr(p_transpose_arg_start+0)/'Variable to transpose'/
+	DATA (gfcn_arg_extend_lo (i,p_transpose_arg_start+0),i=1,nferdims)
+     .    / 0, 0, 0, 0, 0, 0 /
+	DATA (gfcn_arg_extend_hi (i,p_transpose_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_transpose_arg_start+0),i=1,nferdims)
+     .    / .TRUE., .TRUE., .TRUE., .TRUE., .TRUE., .TRUE. /
+
+* ... description of argument 2
+	DATA gfcn_arg_name(p_transpose_arg_start+1)/'DIM1'/
+	DATA gfcn_arg_type(p_transpose_arg_start+1)/parg_type_float/
+	DATA gfcn_arg_units(p_transpose_arg_start+1)/' '/
+	DATA gfcn_arg_descr(p_transpose_arg_start+1)/'Dimension 1 for transpose (1,2,...)'/
+	DATA (gfcn_arg_extend_lo (i,p_transpose_arg_start+1),i=1,nferdims)
+     .    / 0, 0, 0, 0, 0, 0 /
+	DATA (gfcn_arg_extend_hi (i,p_transpose_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_transpose_arg_start+1),i=1,nferdims)
+     .    / .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE. /
+
+* ... description of argument 3
+	DATA gfcn_arg_name(p_transpose_arg_start+2)/'DIM2'/
+	DATA gfcn_arg_type(p_transpose_arg_start+2)/parg_type_float/
+	DATA gfcn_arg_units(p_transpose_arg_start+2)/' '/
+	DATA gfcn_arg_descr(p_transpose_arg_start+2)/'Dimension 2 for transpose (1,2,...)'/
+	DATA (gfcn_arg_extend_lo (i,p_transpose_arg_start+2),i=1,nferdims)
+     .    / 0, 0, 0, 0, 0, 0 /
+	DATA (gfcn_arg_extend_hi (i,p_transpose_arg_start+2),i=1,nferdims)
+     .    / 0, 0, 0, 0, 0, 0 /
+* ... merge the axes implied by argument 3 ?
+	DATA (gfcn_axis_implied_from(i, p_transpose_arg_start+2),i=1,nferdims)
+     .    / .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE. /
 
 
 * internal parameters helpful for initialization
-	DATA gfcn_num_internal/p_strfloat/
+	DATA gfcn_num_internal/p_transpose/
+
+c-------------
+
 
 * template for next function ...
 	INTEGER		p_next, p_next_arg_start, p_next_num_args 
-	PARAMETER     ( p_next = p_strfloat + 1,
-     .			p_next_arg_start = p_strfloat_arg_start +
-     .					   p_strfloat_num_args,
+	PARAMETER     ( p_next = p_transpose + 1,
+     .			p_next_arg_start = p_transpose_arg_start +
+     .					   p_transpose_num_args,
      .			p_next_num_args  = 1 )
 
 	END
diff --git a/fer/dat/xprog_state_data.F b/fer/dat/xprog_state_data.F
index f71beba..c89f7bc 100644
--- a/fer/dat/xprog_state_data.F
+++ b/fer/dat/xprog_state_data.F
@@ -122,6 +122,8 @@
 *                    ax_dec_pt(MODE_6D_LAB still turns on and off the listing of all 
 *                    6 dimensions on SHOW commands.)
 * 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
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -228,6 +230,8 @@
      .					/ mode_stack_size*.FALSE.   /
      .		(mode_state( pmode_6d_lab,i), i=1,mode_stack_size)
      .					/ mode_stack_size*.TRUE.   /
+     .		(mode_state( pmode_frugal,i), i=1,mode_stack_size)
+     .					/ mode_stack_size*.TRUE.   /
 
 	DATA	mode_name ( pmode_diagnostic  )	/ 'DIAGNOSTIC  ' /,
      .		mode_name ( pmode_verify      )	/ 'VERIFY      ' /,
@@ -263,7 +267,7 @@
      .		mode_name ( pmode_curvilinear ) / 'CURVILINEAR'  /,
      .		mode_name ( pmode_layerz      ) / 'LAYERZ'       /,
      .		mode_name ( pmode_6d_lab      ) / '6D_LAB'       /,
-     .		mode_name ( 35     ) / pmode_unused /,
+     .		mode_name ( pmode_frugal      ) / 'FRUGAL'	 /,
      .		mode_name ( 36     ) / pmode_unused /,
      .		mode_name ( 37     ) / pmode_unused /,
      .		mode_name ( 38     ) / pmode_unused /,
@@ -338,6 +342,8 @@
      .				/ mode_stack_size*unspecified_int4 /
      .		(mode_arg  ( pmode_6d_lab,i), i=1,mode_stack_size)
      .				/ mode_stack_size*unspecified_int4 /
+     .		(mode_arg  ( pmode_frugal,i), i=1,mode_stack_size)
+     .				/ mode_stack_size*30 /
 
 * If the value of nlevels is changed, also change NLEV in plot/ppldata.F
 
@@ -391,5 +397,6 @@
         DATA    grat_on                 / .FALSE. /
         DATA    num_linecolors          / 6 /
         DATA    its_pyferret            / .TRUE. /
+        DATA    spawn_status            / .TRUE. /  ! =last cmnd was successful
 
 	END
diff --git a/fer/dat/xrevision_data.F b/fer/dat/xrevision_data.F
index d73d48b..e579e01 100644
--- a/fer/dat/xrevision_data.F
+++ b/fer/dat/xrevision_data.F
@@ -131,12 +131,16 @@
 * v6.963   To GFDL in a PyFerret update, install on our servers
 * v6.97 (working version)
 * v7.0     7/2016
+* v7.02    8/2016 Fixes graticules on time axes # 2466
+* 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
 
         IMPLICIT NONE
 	include	'xrevision.cmn'
 
-	DATA program_name	/ 'PyFERRET' /
+	DATA program_name	/ 'PyFerret' /
 	DATA len_program_name	/  8       /
-	DATA revision_level	/  7.0    /
+	DATA revision_level	/  7.11   /
 
 	END
diff --git a/fer/dat/xvariables_data.F b/fer/dat/xvariables_data.F
index d2db40c..f72cb4f 100644
--- a/fer/dat/xvariables_data.F
+++ b/fer/dat/xvariables_data.F
@@ -61,6 +61,7 @@
 *       2/12 *kms* Add E and F dimensions (set to nferdims in tmap_dims.parm)
 * V685+: 3/14 *sh* - initialize max_usable_intrp
 * V695+: 5/15 *sh* - initialize uvar_c_cache_ptr
+* V702:  2/17 *sh* - remove old block memory management variables
 
         IMPLICIT NONE
 #include "tmap_dset.parm"
@@ -77,8 +78,7 @@
 
 * dummy stored memory variable
 	DATA mr_protected	( dummy_mr ) / mr_perm_protected /
-	DATA mr_blk1		( dummy_mr ) / 1		/
-	DATA mr_nblks		( dummy_mr ) / 0		/
+	DATA mr_size		( dummy_mr ) / 0		/
 	DATA mr_data_set	( dummy_mr ) / unspecified_int4	/
 	DATA mr_category	( dummy_mr ) / cat_dummy_var	/
 	DATA mr_variable	( dummy_mr ) / unspecified_int4	/
@@ -96,14 +96,6 @@
 * interp stack pointer movable top
 	DATA max_usable_intrp / max_intrp /
 
-* bulk storage initialization
-	DATA (mblk_flink(i),i=1,pmax_mem_blks)
-     .			/ pmax_mem_blks*unspecified_int4 /
-	DATA (mblk_blink(i),i=1,pmax_mem_blks)
-     .			/ pmax_mem_blks*unspecified_int4 /
-	DATA (mblk_size (i),i=1,pmax_mem_blks)
-     .			/ pmax_mem_blks*unspecified_int4 /
-
 * memory variable table and delete priority chain initialization
 * (1/92 - made initialization limits explicit for Sun port)
 	DATA (mr_protected(i),i=1,max_mrm1)
diff --git a/fer/doo/SOURCE_FILES b/fer/doo/SOURCE_FILES
index 93ff770..1a514b0 100644
--- a/fer/doo/SOURCE_FILES
+++ b/fer/doo/SOURCE_FILES
@@ -51,7 +51,9 @@ do_interpolate.F\
 do_lin_regrid.F\
 do_locate.F\
 do_max.F\
+do_max_sub.F\
 do_min.F\
+do_min_sub.F\
 do_nbad.F\
 do_nearest.F\
 do_nearest_dist_above.F\
@@ -77,6 +79,7 @@ do_stddev.F\
 do_string_goodbad.F\
 do_string_shift.F\
 do_sum.F\
+do_sum_sub.F\
 do_var_sub.F\
 do_variance.F\
 do_wgt.F\
@@ -84,6 +87,9 @@ do_window_regrid.F\
 do_xact_regrid.F\
 do_xyave_regrid.F\
 do_xylin_regrid.F\
+finalize_ave_int.F\
+finalize_sums_counts.F\
+finalize_variance.F\
 geog_cos_factor.F\
 get_linear_coef.F\
 hanng_wt.F\
@@ -99,6 +105,7 @@ parzn_wt.F\
 regrid_comments.F\
 rho_unesco.F\
 theta_foff.F\
+trans_finalize.F\
 welch_wt.F\
 window_regrid_1_axis.F\
 xact_ptr_regrid_1_axis.F\
diff --git a/fer/doo/days_from_day0.F b/fer/doo/days_from_day0.F
index 7519f2d..86c7683 100644
--- a/fer/doo/days_from_day0.F
+++ b/fer/doo/days_from_day0.F
@@ -1,5 +1,5 @@
 	REAL FUNCTION DAYS_FROM_DAY0( date0_days, year, month, day,
-     .       rdum)
+     .       rdum, status)
 
 
 *
@@ -47,12 +47,15 @@
 *		based on tm_secs_from_bc by Mark Verschell
 * V530 12/00 *sh* - bug fix: avoid crash if month is not in [1,12]
 * V600 4/06  *acm*  return the result in rdum as well, for 64-bit build
-* V68  *acm* 1/12  ifdef double_p for double-precision ferret.
+* V68  *acm* 1/12  ifdef double_p for double-precision ferret
+* V701 *acm* 7/16  ticket 2449: report incorrect choice of date/ eurodate as an error
+
+        include 'errmsg.parm'
 
 * calling argument declarations:
-        IMPLICIT NONE
+
 	REAL*8 date0_days
-	INTEGER year, month, day
+	INTEGER year, month, day, status
         REAL rdum
 
 * Local Definition
@@ -71,8 +74,10 @@
 * to avoid crash for out of bounds month
 	IF (month .GT. 12) THEN
 	   mnth = 12
+	   status = ferr_out_of_range 
 	ELSEIF (month .LT. 1) THEN
 	   mnth = 1
+	   status = ferr_out_of_range 
 	ELSE
 	   mnth = month
 	ENDIF
diff --git a/fer/doo/dd1step.F b/fer/doo/dd1step.F
index 47a5580..58858e9 100644
--- a/fer/doo/dd1step.F
+++ b/fer/doo/dd1step.F
@@ -50,6 +50,7 @@
 * V230: 5/6/92 - COS correction checks that J location is defined
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
 *       2/12 *kms* Include E and F dimensions (use nferdims in tmap_dims.parm)
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -72,7 +73,7 @@
      .               m2lot:m2hit,m2loe:m2hie,m2lof:m2hif )
 
 * internal variable declarations:
-	LOGICAL	GEOG_COS_FACTOR, need_cos
+	LOGICAL	GEOG_COS_FACTOR, ITSA_TRUEMONTH_AXIS, need_cos
 	INTEGER i, j, k, l, m, n, ii, grid,
      .          lo_sub(nferdims), hi_sub(nferdims), axis
 	REAL	bad_com, bad_res, lo_com, hi_com, unit, cos_factor,
@@ -113,6 +114,8 @@
 
 * perform differentiation in standard units if possible
 	unit = un_convert( line_unit_code(axis) )
+	IF (ITSA_TRUEMONTH_AXIS(axis)) unit = un_convert(pun_day)
+
 	DO 30 ii = lo_sub(idim), hi_sub(idim)
  30	box(ii) = box(ii) * unit
 
diff --git a/fer/doo/dd2step.F b/fer/doo/dd2step.F
index 0257838..fb98c32 100644
--- a/fer/doo/dd2step.F
+++ b/fer/doo/dd2step.F
@@ -48,6 +48,7 @@
 * V230: 5/6/92 - COS correction checks that J location is defined         
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
 *       2/12 *kms* Include E and F dimensions (use nferdims in tmap_dims.parm)
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -73,7 +74,7 @@
      .               m2lot:m2hit,m2loe:m2hie,m2lof:m2hif )
 
 * internal variable declarations:
-	LOGICAL	GEOG_COS_FACTOR, need_cos
+	LOGICAL	GEOG_COS_FACTOR, ITSA_TRUEMONTH_AXIS, need_cos
 	INTEGER i, j, k, l, m, n, ii, grid,
      .          lo_sub(nferdims), hi_sub(nferdims), axis
 	REAL	bad_com, bad_res, lo_com, hi_com, unit, cos_factor,
@@ -117,6 +118,7 @@
 
 * perform differentiation in standard units if possible
 	unit = un_convert( line_unit_code(axis) )
+	IF (ITSA_TRUEMONTH_AXIS(axis)) unit = un_convert(pun_day)
 	DO 30 ii = lo_sub(idim), hi_sub(idim)
  30	box(ii) = box(ii) * unit
 
diff --git a/fer/doo/diag_op.F b/fer/doo/diag_op.F
index dcf69f6..76994e9 100644
--- a/fer/doo/diag_op.F
+++ b/fer/doo/diag_op.F
@@ -61,6 +61,13 @@
 *                 output will not list info for E,F dimensions.
 * V690  1/14 *sh* report 3-argument var-getting operation
 *		  allow for "false 1 point" regridding
+* V7    acm  6/16 Ticket 2437: Deprecating mode_6d_lab. 
+*		  Adjust output to 6-D or 4-D grids
+* V701  acm  7/16 Avoid writing nulls when changing from 6-D to 4-D output
+* V702 *sh* 11/16 report gathering on compressed axis
+* V702  sh   1/17 Output total_mem along with gather diagnostics
+*                 Increase field sizes for long axes
+
 
 * calling argument declarations:
         IMPLICIT NONE
@@ -68,7 +75,10 @@
 	CHARACTER*(*) doing
 
 * internal variable declarations:
-	INTEGER	  TM_LENSTR1, slen, clen, ii, i, listdims
+	LOGICAL	FOUR_D_GRID
+	INTEGER	TM_LENSTR1, CGRID_SIZE,
+     .		slen, clen, ii, i, listdims, chunk_size
+	INTEGER*8 available_mem
 	CHARACTER*3   ALG_TRANS_CODE
 	CHARACTER*128 VAR_CODE,  var
 	CHARACTER*150 VAR_TRANS, out_buff
@@ -78,15 +88,13 @@
 	external xgt_grid_data
 	include	'ferret.parm'
 	include	'interp_stack.parm'
+	include	'xvariables.cmn'
 	include	'xcontext.cmn'
 	include	'xprog_state.cmn'
 	include	'xtext_info.cmn'
         include 'xalgebra.cmn'
 	include 'xrisc.cmn'		! 12/94 SPLIT_LIST buffer
 
-* If mode 6d_lab has been cancelled, we will list info only for 
-* the first 4 dimensions.
-
 	listdims = nferdims
 	IF ( .NOT. mode_6d_lab) listdims = 4
 
@@ -124,12 +132,28 @@
 
 * SPLITTING/GATHERING
 	ELSEIF( act_class .EQ. isact_class_gather ) THEN
+	   chunk_size = CGRID_SIZE(cx)
+	   available_mem = max_mem_allowed-(permanent_mem+essential_mem)
 	   WRITE ( risc_buff, 3030 ) doing, var(1:slen),
      .                  ww_dim_name( idim ),
      .			cx_lo_ss(cx,idim), cx_hi_ss(cx,idim),
-     .			cx_data_set(cx)
+     .			cx_data_set(cx), chunk_size, available_mem
  3030	   FORMAT
-     . (1X,A5,' gathering ',A,' on ',A1,' axis:',2I6,' dset:',I4)
+     . (1X,A5,' gathering ',A,' on ',A1,' axis:',2I9,' dset:',I4, 
+     .  I14,'=request', I14, '=availableMem')
+	   CALL SPLIT_LIST(pttmode_ops, ttout_lun, risc_buff, 0 )
+
+* COMPRESSED AXIS SPLITTING/GATHERING
+	ELSEIF( act_class .EQ. isact_class_cmp_gather_dummy ) THEN
+	   chunk_size = CGRID_SIZE(cx)
+	   available_mem = max_mem_allowed-(permanent_mem+essential_mem)
+	   WRITE ( risc_buff, 3031 ) doing, var(1:slen),
+     .                  ww_dim_name( idim ),
+     .			cx_lo_ss(cx,idim), cx_hi_ss(cx,idim),
+     .			cx_data_set(cx), chunk_size, available_mem
+ 3031	   FORMAT
+     . (1X,A5,' gather/compress ',A,' on ',A1,' axis:',2I9,' dset:',I4, 
+     .  I14,'=request', I14, '=availableMem')
 	   CALL SPLIT_LIST(pttmode_ops, ttout_lun, risc_buff, 0 )
 
 * SAMPLING (SAMPLE* functions)
@@ -139,7 +163,7 @@
      .			cx_lo_ss(cx,idim), cx_hi_ss(cx,idim),
      .			cx_data_set(cx)
  3035	   FORMAT
-     . (1X,A5,' sampling ',A,' on ',A1,' axis:',2I6,' dset:',I4)
+     . (1X,A5,' sampling ',A,' on ',A1,' axis:',2I9,' dset:',I4)
 	   CALL SPLIT_LIST(pttmode_ops, ttout_lun, risc_buff, 0 )
 
 * ASSEMBLING MODULO COMPONENTS
@@ -149,7 +173,7 @@
      .			cx_lo_ss(cx,idim), cx_hi_ss(cx,idim),
      .			cx_data_set(cx)
  3040	   FORMAT 
-     . (1X,A5,' moduloing ',A,' on ',A1,' axis:',2I6,' dset:',I4)
+     . (1X,A5,' moduloing ',A,' on ',A1,' axis:',2I9,' dset:',I4)
 	   CALL SPLIT_LIST(pttmode_ops, ttout_lun, risc_buff, 0 )
 
 * reversed axis reads
@@ -159,12 +183,14 @@
      .			cx_lo_ss(cx,idim), cx_hi_ss(cx,idim),
      .			cx_data_set(cx)
  3050	   FORMAT
-     . (1X,A5,' reversing ',A,' on ',A1,' axis:',2I6,' dset:',I4)
+     . (1X,A5,' reversing ',A,' on ',A1,' axis:',2I9,' dset:',I4)
 	   CALL SPLIT_LIST(pttmode_ops, ttout_lun, risc_buff, 0 )
 
 * implicit grid allocation/deallocation
 	ELSEIF( act_class .EQ. isact_class_impl_grid ) THEN
 * ... special case: "cx" is actually the grid number !!!
+
+	   IF ( FOUR_D_GRID(cx) ) listdims = 4
 	   DO 500 ii = 1, listdims
 	      i = grid_line(ii,cx)
 	      IF ( i .GT. 0 ) THEN
@@ -175,8 +201,14 @@
 	         out_buff((ii-1)*10+1:ii*10) = '(invalid) '
 	      ENDIF
  500	   CONTINUE
-	   WRITE ( risc_buff, 3060 ) doing, grid_name(cx)(:16), 
+
+	   IF (listdims .EQ. 6)
+     .	     WRITE ( risc_buff, 3060 ) doing, grid_name(cx)(:16), 
      .	           out_buff(:60)
+	   IF (listdims .EQ. 4)
+     .	     WRITE ( risc_buff, 3060 ) doing, grid_name(cx)(:16), 
+     .	           out_buff(:40)
+
  3060	   FORMAT (1X,A,' dynamic grid ',2A)
 	   CALL SPLIT_LIST(pttmode_ops, ttout_lun, risc_buff, 0 )
 
@@ -201,7 +233,7 @@
      .			cx_lo_ss(cx,idim), cx_hi_ss(cx,idim),
      .			cx_data_set(cx)
  3080	   FORMAT 
-     . (1X,A5,' modulo-void-filling ',A,' on ',A1,' axis:',2I6,' dset:',I4)
+     . (1X,A5,' modulo-void-filling ',A,' on ',A1,' axis:',2I9,' dset:',I4)
 	   CALL SPLIT_LIST(pttmode_ops, ttout_lun, risc_buff, 0 )
 
 
@@ -212,7 +244,7 @@
      .			cx_lo_ss(cx,idim), cx_hi_ss(cx,idim),
      .			cx_data_set(cx)
  3090	   FORMAT
-     . (1X,A5,' aggregate gathering ',A,' on ',A1,' axis:',2I6,' dset:',I4)
+     . (1X,A5,' aggregate gathering ',A,' on ',A1,' axis:',2I9,' dset:',I4)
 	   CALL SPLIT_LIST(pttmode_ops, ttout_lun, risc_buff, 0 )
 
 * getting arguments needed for curvilinear plotting
@@ -222,7 +254,7 @@
      .			cx_lo_ss(cx,idim), cx_hi_ss(cx,idim),
      .			cx_data_set(cx)
  3100	   FORMAT
-     . (1X,A5,' getting aux vars ',A,' on ',A1,' axis:',2I6,' dset:',I4)
+     . (1X,A5,' getting aux vars ',A,' on ',A1,' axis:',2I9,' dset:',I4)
 	   CALL SPLIT_LIST(pttmode_ops, ttout_lun, risc_buff, 0 )
 
 	ELSE
diff --git a/fer/doo/do_4d_ave.F b/fer/doo/do_4d_ave.F
index 4e20f2e..4c20a12 100644
--- a/fer/doo/do_4d_ave.F
+++ b/fer/doo/do_4d_ave.F
@@ -45,6 +45,8 @@
 
 * V430: 7/96
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 *sh* 11/16 mods for trac #2428 - calculation in gathered fragments
+*                 pass address of buffer area, where weights are accumulated
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -58,17 +60,21 @@
 	REAL	arg, com(*), res(*), boxes(*)
 
 * internal variable declarations:
-	INTEGER	CX_DIM_LEN
+	INTEGER	CGRID_SIZE, size
 
 * diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
 	IF ( mode_diagnostic ) 	CALL DIAG_OP
      .				( 'doing', isact_class_trans, res_cx, idim )
 
+* get size of result array to locate buffer area just beyond
+	size = CGRID_SIZE(res_cx)
+
 * pass the transform to be performed
 	CALL DO_4D_TRANS(   trans_4d_ave,
      .			    com, com_mr, com_cx,
      .			    res, res_mr, res_cx,
-     .			    boxes )
+     .			    boxes,
+     .			    res(size+1), res(size+1) )
 
 	DO_4D_AVE = ferr_ok
 
diff --git a/fer/doo/do_4d_int_def.F b/fer/doo/do_4d_int_def.F
index 0b5f782..f5f878d 100644
--- a/fer/doo/do_4d_int_def.F
+++ b/fer/doo/do_4d_int_def.F
@@ -45,6 +45,8 @@
 
 * V430: 7/96
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 *sh* 11/16 mods for trac #2428 - calculation in gathered fragments
+*                 pass address of buffer area, where weights are accumulated
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -58,17 +60,22 @@
 	REAL	arg, com(*), res(*), boxes(*)
 
 * internal variable declarations:
-	INTEGER	CX_DIM_LEN
+	INTEGER	CGRID_SIZE, size
 
 * diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
 	IF ( mode_diagnostic ) 	CALL DIAG_OP
      .				( 'doing', isact_class_trans, res_cx, idim )
 
+* get size of result array to locate buffer area just beyond
+	size = CGRID_SIZE(res_cx)
+
+
 * pass the transform to be performed
 	CALL DO_4D_TRANS(   trans_4d_int_def,
      .			    com, com_mr, com_cx,
      .			    res, res_mr, res_cx,
-     .			    boxes )
+     .			    boxes,
+     .			    res(size+1), res(size+1) )
 
 	DO_4D_INT_DEF = ferr_ok
 
diff --git a/fer/doo/do_4d_std.F b/fer/doo/do_4d_std.F
index 9e44565..b22748c 100644
--- a/fer/doo/do_4d_std.F
+++ b/fer/doo/do_4d_std.F
@@ -42,8 +42,11 @@
 
 * programmer - Ansley Manke
 * NOAA/PMEL, Seattle, WA - TMAP
-* V695 *acm* 10/15 Fix #2319: @STD as a multi-D transform
 
+* V695 *acm* 10/15 Fix #2319: @STD as a multi-D transform
+* V702 *sh* 11/16 mods for trac #2428 - calculation in gathered fragments
+*                 pass address of buffer area, where the components needed to
+*                 finalize the 1-pass weighted variance calculation are accumulated 
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -57,17 +60,21 @@
 	REAL	arg, com(*), res(*), boxes(*)
 
 * internal variable declarations:
-	INTEGER	CX_DIM_LEN
+	INTEGER	CGRID_SIZE, size
 
 * diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
 	IF ( mode_diagnostic ) 	CALL DIAG_OP
      .				( 'doing', isact_class_trans, res_cx, idim )
 
+* get size of result array to locate buffer area just beyond
+	size = CGRID_SIZE(res_cx)
+
 * pass the transform to be performed
 	CALL DO_4D_TRANS(   trans_4d_std,
      .			    com, com_mr, com_cx,
      .			    res, res_mr, res_cx,
-     .			    boxes )
+     .			    boxes,
+     .			    res(size+1), res(2*size+1) )
 
 	DO_4D_STD = ferr_ok
 
diff --git a/fer/doo/do_4d_sum.F b/fer/doo/do_4d_sum.F
index 3b2c6d2..24081a4 100644
--- a/fer/doo/do_4d_sum.F
+++ b/fer/doo/do_4d_sum.F
@@ -58,17 +58,21 @@
 	REAL	arg, com(*), res(*), boxes(*)
 
 * internal variable declarations:
-	INTEGER	CX_DIM_LEN
+	INTEGER	CX_DIM_LEN, CGRID_SIZE, size
 
 * diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
 	IF ( mode_diagnostic ) 	CALL DIAG_OP
      .				( 'doing', isact_class_trans, res_cx, idim )
 
+* get size of result array to locate buffer area just beyond
+	size = CGRID_SIZE(res_cx)
+
 * pass the transform to be performed
 	CALL DO_4D_TRANS(   trans_4d_sum,
      .			    com, com_mr, com_cx,
      .			    res, res_mr, res_cx,
-     .			    boxes )
+     .			    boxes,
+     .			    res(size+1), res(size+1) )
 
 	DO_4D_SUM = ferr_ok
 
diff --git a/fer/doo/do_4d_trans.F b/fer/doo/do_4d_trans.F
index 286dba4..98b6ef3 100644
--- a/fer/doo/do_4d_trans.F
+++ b/fer/doo/do_4d_trans.F
@@ -1,7 +1,8 @@
 	SUBROUTINE DO_4D_TRANS( action,
      .				com, com_mr, com_cx,
      .				res, res_mr, res_cx,
-     .				boxes )
+     .				boxes,
+     .			        weights, s_var )
 
 *
 *
@@ -48,6 +49,9 @@
 * first axis equally, despite the fact that they represented different
 * numbers of data points.
 
+* for a discussion of the 1-pass variance and standard deviation calculations
+* see DO_VAR_SUB
+
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 *
@@ -73,6 +77,8 @@
 * V685 *acm* 7/13  Fix ticket 2083: single-y and multi-D transform
 * V685+*acm* 12/13 Bug in y boxes; only when y axis in the transf.
 * 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
 
 	IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -87,23 +93,29 @@
 	external xgt_grid_data
 
 * internal variable declarations:
-	LOGICAL GEOG_COS_FACTOR, point, yes_ax(nferdims), no_ax(nferdims),
+	LOGICAL GEOG_COS_FACTOR, ITSA_TRUEMONTH_AXIS,
+     .		point, yes_ax(nferdims), no_ax(nferdims),
      .		at_ave, at_var, at_din, at_nbd, at_ngd, at_sum, at_std, 
-     .		short_comp,need_cos, one_y
+     .		short_comp,need_cos, one_y, its_var_or_std, its_ave_or_din
 	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,
-     .		yc, yh, yh_2, bb, ybxlo, ybxhi
-	REAL*8	TM_WORLD, dsum, bsum
+     .		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
 
 * calling argument declarations:
 	INTEGER	action, com_mr, com_cx, res_mr, res_cx
-	REAL    com ( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
-     .                m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
-     .          res ( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
-     .                m2lot:m2hit,m2loe:m2hie,m2lof:m2hif ),
+	REAL    com     ( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+     .                    m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
+     .          res     ( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
+     .                    m2lot:m2hit,m2loe:m2hie,m2lof:m2hif ),
+     .          weights ( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
+     .                    m2lot:m2hit,m2loe:m2hie,m2lof:m2hif ),
+     .          s_var   ( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
+     .                    m2lot:m2hit,m2loe:m2hie,m2lof:m2hif ),
      .		boxes(*)
 
 * equivalences
@@ -165,6 +177,8 @@
 	at_sum = action .EQ. trans_4d_sum
 	at_std = action .EQ. trans_4d_std
 	short_comp = at_ngd .OR. at_nbd	.OR. at_sum	! for speed, only
+	its_ave_or_din = at_ave .OR. at_din
+	its_var_or_std = at_var .OR. at_std
 
 * determine the axes to be transformed
 	DO 10 idim = 1, nferdims
@@ -197,26 +211,31 @@
 	  ind_hi = cx_hi_ss(com_cx,idim)
 	  offset = box_offset(idim)
 	  IF (yes_ax(idim)) THEN
-            IF ( ind_lo .EQ. ind_hi ) THEN    ! 8/92
-              boxes(ind_lo+offset) = cx_hi_ww(idim,res_cx)
-     .				 - cx_lo_ww(idim,res_cx)
-              point = point  .OR.   boxes(ind_lo+offset) .EQ. 0.0
-            ELSE
-* ... partial box at lower end
-	      boxes(ind_lo+offset) = TM_WORLD(ind_lo, grid, idim, box_hi_lim)
-     .				 - cx_lo_ww(idim,res_cx)
-
-* ... complete boxes mid-axis
-	      DO 40 i = ind_lo+1, ind_hi-1
- 40	      boxes(i+offset)  = BOX_SIZE( i, grid, idim )
-* ... partial box at upper end
-	      boxes(ind_hi+offset) = cx_hi_ww(idim,res_cx)
-     .		   - TM_WORLD(ind_hi, grid, idim, box_lo_lim)
-            ENDIF
+* ... complete boxes mid-axis (incl. default full boxes at endpoints)
+	   DO i = ind_lo, ind_hi
+	      boxes(i+offset)  = BOX_SIZE( i, grid, idim )
+	   ENDDO
+* 11/16 re-engineered the 8/92 fix - that axis region may lie in a single box
+	   lo_box_lo = cx_lo_ww(idim,com_cx)
+	   hi_box_hi = cx_hi_ww(idim,com_cx)
+! ... the preceding is a more efficient way to obtain
+!	   lo_box_lo = TM_WORLD(ind_lo, grid, idim, box_lo_lim)
+!	   hi_box_hi = TM_WORLD(ind_hi, grid, idim, box_hi_lim)
+* ... trim if partial box at lower end
+	   IF ( lo_box_lo .LT. cx_lo_ww(idim,res_cx) ) boxes(ind_lo+offset) =
+     .         boxes(ind_lo+offset) - 
+     .			( cx_lo_ww(idim,res_cx) - lo_box_lo )
+* ... trim if partial box at upper end
+	   IF ( hi_box_hi .GT. cx_hi_ww(idim,res_cx) ) boxes(ind_hi+offset) = 
+     .            boxes(ind_hi+offset) - 
+     .			( hi_box_hi - cx_hi_ww(idim,res_cx) )
+	   point = point .OR. boxes(ind_lo+offset).EQ.0.0
 * ... perform integrations on standard units if possible
             unit = 1.
 	    IF ( at_din ) THEN
 	      unit = un_convert( line_unit_code(grid_line(idim,grid)) )
+	      IF (ITSA_TRUEMONTH_AXIS(grid_line(idim,grid))) 
+     .		  unit = un_convert(pun_day)
 	      DO 50 i = ind_lo, ind_hi
  	      boxes(i+offset) = boxes(i+offset) * unit
  50           continue
@@ -375,10 +394,19 @@ C (Unless there is just one grid cell in the y direction.)
           ENDIF
 
 * initialize the inner loop accumulators
-	  dsum = 0.0D0	! data
-	  bsum = 0.0D0	! boxes
-	  ngd  = 0
-	  nbd  = 0
+	  IF (its_var_or_std) THEN
+* ... initializations were done from IS_TRANS
+* ... start from the last accumulated value to support split/gather
+	    wsum_chunk = weights(ir,jr,kr,lr,mr,nr)
+	    mean_chunk = res    (ir,jr,kr,lr,mr,nr)
+	    s_chunk    = s_var  (ir,jr,kr,lr,mr,nr)
+	  ELSE
+	    dsum = 0.0D0	! data
+	    bsum = 0.0D0	! boxes
+	    ok	 = 0.0D0	! count valid
+	    ngd  = 0
+	    nbd  = 0
+	  ENDIF
 
 * now loop over the component data accumulating results along relevant axes
 * ... two separate loops for efficiency, only -- keep @ngd and @nbd fast
@@ -397,7 +425,10 @@ C (Unless there is just one grid cell in the y direction.)
 	        nbd = nbd + 1
 	      ELSE
 	        ngd = ngd + 1
-		IF (at_sum) dsum = dsum + com(ic,jc,kc,lc,mc,nc)
+	        IF (at_sum) THEN
+	           dsum = dsum + com(ic,jc,kc,lc,mc,nc)
+	           ok = ok + 1
+	        ENDIF
 	      ENDIF
 
  210	    CONTINUE
@@ -420,62 +451,50 @@ C (Unless there is just one grid cell in the y direction.)
 	      IF ( com(ic,jc,kc,lc,mc,nc) .NE. bad_com ) THEN
 	        box = xbox * ybox * zbox * tbox * ebox * fbox
 	        IF (need_cos) box = box * boxes(jc+cos_offset)
-	        bsum = bsum + box
-	        dsum = dsum + box*com(ic,jc,kc,lc,mc,nc)
+	      	IF (its_var_or_std) THEN
+	          v = com(ic,jc,kc,lc,mc,nc)
+	          w = box
+	          wsum_chunk = wsum_chunk + w
+	          mean_old = mean_chunk
+	          mean_chunk = mean_old + (w/wsum_chunk)*(v-mean_old)
+	          s_chunk = s_chunk + w * (v-mean_old)*(v-mean_chunk)
+	        ELSE
+	          bsum = bsum + box
+	          dsum = dsum + box*com(ic,jc,kc,lc,mc,nc)
+	        ENDIF
 	      ENDIF
 
  220	    CONTINUE
 
-! for variance or std calculation, only: a 2nd pass ...
-	    IF ( at_var .OR. at_std) THEN
-	      IF (bsum .NE. 0.0D0) THEN
-	        mean = dsum / bsum
-	        dsum = 0.0D0
-	        DO 230 nc = n_lo, n_hi
-	        IF (yes_fax) fbox = boxes(nc+noffset)
-	        DO 230 mc = m_lo, m_hi
-	        IF (yes_eax) ebox = boxes(mc+moffset)
-	        DO 230 lc = l_lo, l_hi
-	        IF (yes_tax) tbox = boxes(lc+loffset)
-	        DO 230 kc = k_lo, k_hi
-	        IF (yes_zax) zbox = boxes(kc+koffset)
-	        DO 230 jc = j_lo, j_hi
-	        IF (yes_yax) ybox = boxes(jc+joffset)
-	        DO 230 ic = i_lo, i_hi
-	        IF (yes_xax) xbox = boxes(ic+ioffset)
-
-	          IF ( com(ic,jc,kc,lc,mc,nc) .NE. bad_com ) THEN
-	            box = xbox * ybox * zbox * tbox * ebox * fbox
-	            IF (need_cos) box = box * boxes(jc+cos_offset)
-	            diff = com(ic,jc,kc,lc,mc,nc) - mean
-	            dsum = dsum + box*diff*diff
-	          ENDIF
-
- 230	        CONTINUE
-	      ENDIF
-	    ENDIF
-
 	  ENDIF
 
-* compute result from accumulators
+* *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?
+
 	  IF (at_ngd) THEN
-	     res(ir,jr,kr,lr,mr,nr) = ngd
+	     res(ir,jr,kr,lr,mr,nr) = ngd  
 	  ELSEIF (at_nbd) THEN
-	     res(ir,jr,kr,lr,mr,nr) = nbd
+	     res(ir,jr,kr,lr,mr,nr) = nbd  
 	  ELSEIF (at_sum .AND. ngd.GT.0) THEN
 	     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
-	  ELSEIF (at_din) THEN
-	     res(ir,jr,kr,lr,mr,nr) = dsum
 	  ELSE
 	  
-	     IF (at_std) THEN
-	        res(ir,jr,kr,lr,mr,nr) = SQRT( dsum/bsum )
-	     ELSE
-	        res(ir,jr,kr,lr,mr,nr) = dsum/bsum	! average or variance
-	     ENDIF
-
+	     CONTINUE
 	  ENDIF
 
  300	CONTINUE
diff --git a/fer/doo/do_4d_var.F b/fer/doo/do_4d_var.F
index 8a6059f..62b6bbd 100644
--- a/fer/doo/do_4d_var.F
+++ b/fer/doo/do_4d_var.F
@@ -45,6 +45,9 @@
 
 * V430: 7/96
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 *sh* 11/16 mods for trac #2428 - calculation in gathered fragments
+*                 pass address of buffer area, where the components needed to
+*                 finalize the 1-pass weighted variance calculation are accumulated 
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -58,17 +61,21 @@
 	REAL	arg, com(*), res(*), boxes(*)
 
 * internal variable declarations:
-	INTEGER	CX_DIM_LEN
+	INTEGER	CGRID_SIZE, size
 
 * diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
 	IF ( mode_diagnostic ) 	CALL DIAG_OP
      .				( 'doing', isact_class_trans, res_cx, idim )
 
+* get size of result array to locate buffer area just beyond
+	size = CGRID_SIZE(res_cx)
+
 * pass the transform to be performed
 	CALL DO_4D_TRANS(   trans_4d_var,
      .			    com, com_mr, com_cx,
      .			    res, res_mr, res_cx,
-     .			    boxes )
+     .			    boxes,
+     .			    res(size+1), res(2*size+1) )
 
 	DO_4D_VAR = ferr_ok
 
diff --git a/fer/doo/do_4d_wgt.F b/fer/doo/do_4d_wgt.F
index d1badc2..0f6a2ec 100644
--- a/fer/doo/do_4d_wgt.F
+++ b/fer/doo/do_4d_wgt.F
@@ -55,6 +55,7 @@
 * 7/2014
 
 * V692 7/14 *acm* new transform @WGT, ticket 2180
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
 	IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -69,8 +70,8 @@
 	external xgt_grid_data
 
 * internal variable declarations:
-	LOGICAL GEOG_COS_FACTOR, point, yes_ax(nferdims), no_ax(nferdims),
-     .		need_cos, one_y
+	LOGICAL GEOG_COS_FACTOR, ITSA_TRUEMONTH_AXIS,
+     .		point, yes_ax(nferdims), no_ax(nferdims),need_cos, one_y
 	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
@@ -187,6 +188,8 @@
 * ... perform integrations on standard units if possible
             unit = 1.
 	    unit = un_convert( line_unit_code(grid_line(idim,grid)) )
+	    IF (ITSA_TRUEMONTH_AXIS(grid_line(idim,grid))) 
+     .		  unit = un_convert(pun_day)
 
 	    DO 50 i = ind_lo, ind_hi
  	      boxes(i+offset) = boxes(i+offset) * unit
diff --git a/fer/doo/do_aux_var_regrid.F b/fer/doo/do_aux_var_regrid.F
index ceeeac5..aef4a88 100644
--- a/fer/doo/do_aux_var_regrid.F
+++ b/fer/doo/do_aux_var_regrid.F
@@ -1,4 +1,4 @@
-	SUBROUTINE DO_AUX_VAR_REGRID( memory, axis_list, naxis, aux_has_cell_pts,
+	SUBROUTINE DO_AUX_VAR_REGRID(  axis_list, naxis, aux_has_cell_pts,
      .				      src,  msrc,  src_cx,
      .				      dst,  mdst,  dst_cx,
      .				      aux1, maux1, aux1_cx,
@@ -61,7 +61,6 @@
 	INTEGER	naxis, axis_list(naxis), status,
      .		msrc, mdst, maux1, maux2, maux3,
      .		src_cx, dst_cx, aux1_cx, aux2_cx, aux3_cx
-	REAL	memory( mem_blk_size, max_mem_blks )
         REAL    src(*), dst(*), aux1(*), aux2(*), aux3(*)
 
 * internal variable declarations
diff --git a/fer/doo/do_aux_var_regrid_1d.F b/fer/doo/do_aux_var_regrid_1d.F
index 67bc5ac..b257f83 100644
--- a/fer/doo/do_aux_var_regrid_1d.F
+++ b/fer/doo/do_aux_var_regrid_1d.F
@@ -41,7 +41,7 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* perform a 1D Z axis regrid guided by an auxiliary variable
+* perform a 1D axis regrid (not just Z axis) guided by an auxiliary variable
 * containing coord positions
 * allow for the usual Ferret promotion of point axes to match span axes
 * where either the source data or the position field may have degenerate axes
@@ -51,13 +51,19 @@
 *      dst == res
 *      src == com1
 *      pos == com2
+* Note that "k" that is found in the name of some variables is a meaningless
+* hold-over from the original K-only version of this routine
 
 
 * v690 11/13-4/14 *sh*
 * V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
 * v695+ 3/15 *sh*  change to call name to accommodate T axis regridding
 * v698+ 5/15 *sh* linear regrid allows monotonic, but averaging doesnt
-*       6/15 *sh* bug fix in determination of ascending affects false_1pt_regrid [gz(aux)=pt]
+*       6/15 *sh* bug fix in determination of ascending affects
+*                 false_1pt_regrid [gz(aux)=pt]
+* V700 11/16 *sh* fixed bug in koffset_false lingering from K-only regrid
+*                 days of this routine
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -129,8 +135,10 @@
 	kdmax = kmax_dst
 	false_1pt_regrid = cx_aux_stat(axis,dst_cx)
      .		      .EQ. paux_stat_false_1pt_regrid
-*   koofset_false fixes ss of -999 used as a valid position in the dest axis.
-	koffset_false = kmin_dst - m5loz
+*   koffset_false fixes ss of -999 used as a valid position in the dest axis
+* ==> "k" in names is a misleading relic of the Z-only origins of this routine
+!	koffset_false = kmin_dst - m5loz   ! old Z-axis specific logic
+	koffset_false = kmin_dst - lo_ss(5,axis)
 	trans = cx_regrid_trans(axis,dst_cx)
 
 * flag(s) for bad or missing values
@@ -358,7 +366,7 @@
  1000	CONTINUE
 
 * successful completion.  Clean up.
-        CALL RELEASE_WORK_SPC
+        CALL RELEASE_DYN_WORK_SPACE
         RETURN
 
 * error exit
diff --git a/fer/doo/do_aux_var_regrid_1d_t.F b/fer/doo/do_aux_var_regrid_1d_t.F
index 3a5ac1b..2e02a76 100644
--- a/fer/doo/do_aux_var_regrid_1d_t.F
+++ b/fer/doo/do_aux_var_regrid_1d_t.F
@@ -48,6 +48,7 @@
 * This code copied/modified from do_aux_var_regrid_1d_z.F
 
 * V695+ 3/15 *sh*
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -80,7 +81,7 @@
         INTEGER nmin, nmax, dgrid, status,
      .		lsrc_min, lsrc_max, lsrc_start, lsrc_end, ldst_start, ldst_end
         REAL    tsrc_min, tsrc_max
-        REAL*8  TM_WORLD
+        REAL*8  TM_WORLD, depsilon
 * internally declared work arrays
 	REAL*8	tdst(ldst_min:ldst_max)
 
@@ -168,30 +169,33 @@
 * are there time steps to be copied at this forecast index
 	   tsrc_min = tsrc(ip,jp,kp,lsrc_min,mp,n) ! min time at this F
 	   tsrc_max = tsrc(ip,jp,kp,lsrc_max,mp,n) ! max time at this F
-	   IF (tdst(ldst_min) .GT. tsrc_max
-     .    .OR. tdst(ldst_max) .LT. tsrc_min) CYCLE  ! nothing to copy
+* tolerance in time matching (would be better if it was consistent for all F)
+           depsilon = 1.0D-12 *
+     .             ABS( (tsrc_max-tsrc_min) / (lsrc_max-lsrc_min+1.0) )
+        IF ( ((tdst(ldst_min) - tsrc_max) .GT. depsilon)
+     .  .OR. ((tsrc_min - tdst(ldst_max)) .GT. depsilon) ) CYCLE  ! nothing to copy
 
 * locate the index at which the block of times to be copied begins in source and dest
-	   IF (tdst(ldst_min) .LT. tsrc_min ) THEN
+           IF ( (tsrc_min - tdst(ldst_min)) .GT. depsilon ) THEN
 	      lsrc_start = lsrc_min
 	      DO ldst_start = ldst_min, ldst_max
-	         IF (tdst(ldst_start) .EQ. tsrc_min) EXIT
+                  IF ( ABS(tdst(ldst_start) - tsrc_min) .LT. depsilon ) EXIT
 	      ENDDO
 	   ELSE
 	      ldst_start = ldst_min
 	      DO lsrc_start = lsrc_min, lsrc_max
-	         IF (tsrc(ip,jp,kp,lsrc_start,mp,n)
-     .	        .EQ. tdst(ldst_min)            ) EXIT
+                 IF ( ABS(tsrc(ip,jp,kp,lsrc_start,mp,n) -
+     .                    tdst(ldst_min)) .LT. depsilon ) EXIT
 	      ENDDO
 	   ENDIF
 
 * locate the index at which the block of times to be copied ends
-	   IF (tdst(ldst_max) .GT. tsrc_max ) THEN
+	   IF ( (tdst(ldst_max) - tsrc_max) .GT. depsilon ) THEN
 	      lsrc_end = lsrc_max
 	   ELSE
 	      DO lsrc_end = lsrc_max, lsrc_min, -1
-	         IF (tsrc(ip,jp,kp,lsrc_end,mp,n)
-     .	        .EQ. tdst(ldst_max)            ) EXIT
+                 IF ( ABS(tsrc(ip,jp,kp,lsrc_end,mp,n) -
+     .                    tdst(ldst_max)) .LT. depsilon ) EXIT
 	      ENDDO
 	   ENDIF
 	   ldst_end = ldst_start + (lsrc_end-lsrc_start)
@@ -225,7 +229,7 @@
 	ENDDO
 
 * successful completion.  Clean up.
-        CALL RELEASE_WORK_SPC    ! ?? needed ??
+        CALL RELEASE_DYN_WORK_SPACE   ! ?? needed ??
         RETURN
 
 * error exit
diff --git a/fer/doo/do_aux_var_regrid_2d_tf.F b/fer/doo/do_aux_var_regrid_2d_tf.F
index dd9e86e..fd756ff 100644
--- a/fer/doo/do_aux_var_regrid_2d_tf.F
+++ b/fer/doo/do_aux_var_regrid_2d_tf.F
@@ -50,6 +50,7 @@
 * V695+ 3/15 *sh*
 * V698  3/16 *sh* - compute f_delta from the time2d field rather than F axis
 *                   allowing the F axis to be redefined
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -85,7 +86,7 @@
      .		lsrc_min, lsrc_max, lsrc_start, lsrc_end, ldst_start, ldst_end,
      .		nsrc_min, nsrc_max, nsrc0, lsrc0, f_axis, l_per_n, ldst0
         REAL    tsrc_min, tsrc_max, t_target, f_delta, t_delta
-        REAL*8  TM_WORLD
+        REAL*8  TM_WORLD, depsilon
 * internally declared work arrays
 	REAL*8	tdst(ldst_min:ldst_max)
 
@@ -130,14 +131,17 @@
      .	         - tsrc(ip,jp,kp,m1lot,mp,m1lof))
      .		                   / (m1hif-m1lof+1)
 
+* max insignificant time difference
+        depsilon = 1.0D-12 * ABS(f_delta)
+
 * extract the time step values of the destination
 	DO l = ldst_min, ldst_max
 	   tdst(l) = TM_WORLD(l, dgrid, t_dim, box_middle)
 	ENDDO
 
 * no source data overlapping with requested dest times?  Then quit here
-	IF (tdst(ldst_min) .GT. tsrc(ip,jp,kp,lsrc_max,mp,nsrc_max)
-     . .OR. tdst(ldst_max) .LT. tsrc(ip,jp,kp,lsrc_min,mp,nsrc_min) )
+       IF ( (tdst(ldst_min) - tsrc(ip,jp,kp,lsrc_max,mp,nsrc_max)) .GT. depsilon
+     . .OR. (tsrc(ip,jp,kp,lsrc_min,mp,nsrc_min) - tdst(ldst_max)) .GT. depsilon )
      .								RETURN
 * number of time steps before the start of the next forecast
 	t_delta = (tsrc(ip,jp,kp,m1hit,mp,m1lof)
@@ -202,9 +206,9 @@
 	DO ldst0 = ldst_min, ldst_max
 	   t_target = tdst(ldst0)
 	   DO nsrc0 = cx_hi_ss(tsrc_cx,f_dim),cx_lo_ss(tsrc_cx,f_dim), -1
-	      IF (t_target .GE. tsrc(ip,jp,kp,lsrc_min,mp,nsrc0)) THEN
+              IF ( (tsrc(ip,jp,kp,lsrc_min,mp,nsrc0) - t_target) .LE. depsilon ) THEN
 	         DO lsrc0 = lsrc_min,lsrc_max
-	            IF  (tsrc(ip,jp,kp,lsrc0,mp,nsrc0) .EQ. t_target) THEN
+                    IF ( ABS(tsrc(ip,jp,kp,lsrc0,mp,nsrc0) - t_target) .LE. depsilon ) THEN
 	               GOTO 50
 	            ELSEIF  (tsrc(ip,jp,kp,lsrc0,mp,nsrc0) .GT. t_target) THEN
 	               CALL WARN('1D time axis of FMRC contains time'//
@@ -279,7 +283,7 @@
 	ENDDO     ! L loop
 
 * successful completion.  Clean up.
-        CALL RELEASE_WORK_SPC    ! ?? needed ??
+        CALL RELEASE_DYN_WORK_SPACE    ! ?? needed ??
         RETURN
 
 * error exit
diff --git a/fer/doo/do_ave_int.F b/fer/doo/do_ave_int.F
index a1c9740..243db89 100644
--- a/fer/doo/do_ave_int.F
+++ b/fer/doo/do_ave_int.F
@@ -1,7 +1,7 @@
 	SUBROUTINE DO_AVE_INT(	action, idim, com_lo, com_hi,
      .				com, com_mr, com_cx,
      .				res, res_mr, res_cx,
-     .				box )
+     .				box, weights )
 
 *
 *
@@ -38,12 +38,11 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* perform both averaging and integrating (definite) - since they differ only
-* by a multiplying factor
+* perform both accumulation of values needed for both averaging and integrating
+* (definite) - since they differ only by a multiplying factor
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
 *
 * V200: ????
 *      10/11/89 - modified array declarations using XMEM_SUBSC.CMN
@@ -52,6 +51,10 @@
 *                 added "IF (point)" logic
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* 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
+
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -66,7 +69,8 @@
 	external xgt_grid_data
 
 * internal variable declarations:
-	LOGICAL	GEOG_COS_FACTOR, need_cos, integrate, point
+	LOGICAL	GEOG_COS_FACTOR, ITSA_TRUEMONTH_AXIS,
+     .          need_cos, integrate, point
 	INTEGER i, j, k, l, m, n, grid, pt, lo, hi, axis
 	REAL	BOX_SIZE, unit, bad_com, bad_res, cos_factor,
      .          ybxlo, ybxhi, bx
@@ -74,10 +78,12 @@
 
 * calling argument declarations:
 	INTEGER	action, idim, com_lo, com_hi, com_mr, com_cx, res_mr, res_cx
-	REAL    com( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
-     .               m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
-     .          res( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
-     .               m2lot:m2hit,m2loe:m2hie,m2lof:m2hif ),
+	REAL    com     ( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+     .                    m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
+     .          res     ( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
+     .                    m2lot:m2hit,m2loe:m2hie,m2lof:m2hif ),
+     .          weights ( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
+     .                    m2lot:m2hit,m2loe:m2hie,m2lof:m2hif ),
      .		box( com_lo:com_hi )
 
 * --- end of introductory code ---
@@ -94,22 +100,27 @@
         point = .FALSE.
 
 * get and save grid box sizes (weights) just once for efficiency
-* (end boxes may be only partially weighted)
         IF ( lo .EQ. hi ) THEN    ! 8/92
            box(lo) = cx_hi_ww(idim,res_cx) - cx_lo_ww(idim,res_cx)
            point = box(lo) .EQ. 0.0
         ELSE
-	   box(lo) = TM_WORLD(lo, grid, idim, box_hi_lim)
-     .		   - cx_lo_ww(idim,res_cx)
-	   DO 100 i = lo+1, hi-1
+	   DO 100 i = lo, hi
  100	   box(i)  = BOX_SIZE( i, grid, idim )
-	   box(hi) = cx_hi_ww(idim,res_cx)
-     .		   - TM_WORLD(hi, grid, idim, box_lo_lim)
+* 11/16 ... end boxes may be only partial cells
+	   IF (TM_WORLD(lo, grid, idim, box_lo_lim)
+     .    .LT. cx_lo_ww(idim,res_cx)                ) box(lo) = 
+     .			TM_WORLD(lo, grid, idim, box_hi_lim)
+     .		      - cx_lo_ww(idim,res_cx)
+	   IF (TM_WORLD(hi, grid, idim, box_hi_lim)
+     .    .GT. cx_hi_ww(idim,res_cx)                ) box(hi) =
+     .			cx_hi_ww(idim,res_cx)
+     .		      - TM_WORLD(hi, grid, idim, box_lo_lim)
         ENDIF
 
 * perform integrations on standard units if possible
 	IF ( integrate ) THEN
 	   unit = un_convert( line_unit_code(axis) )
+	   IF (ITSA_TRUEMONTH_AXIS(axis)) unit = un_convert(pun_day)
 	   DO 110 i = lo, hi
  110	   box(i) = box(i) * unit
 	ENDIF
@@ -122,7 +133,8 @@
 	   need_cos = GEOG_COS_FACTOR( idim, grid )
      .                .AND. cx_lo_s2(com_cx).NE.unspecified_int4
 	   DO 210 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	   IF ( need_cos ) THEN
+	   cos_factor = 1.
+	   IF ( need_cos .AND. integrate ) THEN
 #ifdef double_p
 	      cos_factor = COS( deg2rad *       
      .             TM_WORLD(j, grid, y_dim, box_middle) ) 
@@ -162,17 +174,9 @@
 	         bsum = bsum + box(i)
 	         dsum = dsum + box(i)*com(i,j,k,l,m,n)
  200	      CONTINUE
-	      IF ( bsum .EQ. 0.0D0 ) THEN
-	         res(pt,j,k,l,m,n) = bad_res
-	      ELSEIF (integrate) THEN
-	         IF ( need_cos ) THEN
-	            res(pt,j,k,l,m,n) = dsum * cos_factor
-	         ELSE
-	            res(pt,j,k,l,m,n) = dsum
-	         ENDIF
-	      ELSE
-	         res(pt,j,k,l,m,n) = dsum/bsum
-	      ENDIF
+	      res(pt,j,k,l,m,n) = res(pt,j,k,l,m,n) + dsum* cos_factor
+	      weights(pt,j,k,l,m,n) = weights(pt,j,k,l,m,n) + bsum
+
  210	   CONTINUE
 
 * ALONG Y AXIS
@@ -199,13 +203,8 @@
 	         bsum = bsum + box(j)
 	         dsum = dsum + box(j)*com(i,j,k,l,m,n)
  300	      CONTINUE
-	      IF ( bsum .EQ. 0.0D0 ) THEN
-	         res(i,pt,k,l,m,n) = bad_res
-	      ELSEIF (integrate) THEN
-	         res(i,pt,k,l,m,n) = dsum
-	      ELSE
-	         res(i,pt,k,l,m,n) = dsum/bsum
-	      ENDIF
+	      res(i,pt,k,l,m,n) = res(i,pt,k,l,m,n) + dsum
+	      weights(i,pt,k,l,m,n) = weights(i,pt,k,l,m,n) + bsum
  310	   CONTINUE
 
 * ALONG Z AXIS
@@ -232,13 +231,8 @@
 	         bsum = bsum + box(k)
 	         dsum = dsum + box(k)*com(i,j,k,l,m,n)
  400	      CONTINUE
-              IF ( bsum .EQ. 0.0D0 ) THEN
-	         res(i,j,pt,l,m,n) = bad_res
-	      ELSEIF (integrate) THEN
-	         res(i,j,pt,l,m,n) = dsum
-	      ELSE
-	         res(i,j,pt,l,m,n) = dsum/bsum
-	      ENDIF
+              res(i,j,pt,l,m,n) = res(i,j,pt,l,m,n) + dsum
+              weights(i,j,pt,l,m,n) = weights(i,j,pt,l,m,n) + bsum
  410	   CONTINUE
 
 * ALONG T AXIS
@@ -265,13 +259,9 @@
 	         bsum = bsum + box(l)
 	         dsum = dsum + box(l)*com(i,j,k,l,m,n)
  500	      CONTINUE
-	      IF ( bsum .EQ. 0.0D0 ) THEN
-	         res(i,j,k,pt,m,n) = bad_res
-	      ELSEIF (integrate) THEN
-	         res(i,j,k,pt,m,n) = dsum
-	      ELSE
-	         res(i,j,k,pt,m,n) = dsum/bsum
-	      ENDIF
+* ... accumulate weighted values and weights
+	      weights(i,j,k,pt,m,n) = weights(i,j,k,pt,m,n) + bsum
+	      res    (i,j,k,pt,m,n) = res    (i,j,k,pt,m,n) + dsum
  510	   CONTINUE
 
 
@@ -299,13 +289,8 @@
 	         bsum = bsum + box(m)
 	         dsum = dsum + box(m)*com(i,j,k,l,m,n)
  600	      CONTINUE
-	      IF ( bsum .EQ. 0.0D0 ) THEN
-	         res(i,j,k,l,pt,n) = bad_res
-	      ELSEIF (integrate) THEN
-	         res(i,j,k,l,pt,n) = dsum
-	      ELSE
-	         res(i,j,k,l,pt,n) = dsum/bsum
-	      ENDIF
+	      res(i,j,k,l,pt,n) = res(i,j,k,l,pt,n) + dsum
+	      weights(i,j,k,l,pt,n) = weights(i,j,k,l,pt,n) + bsum
  610	   CONTINUE
 
 
@@ -333,13 +318,8 @@
 	         bsum = bsum + box(n)
 	         dsum = dsum + box(n)*com(i,j,k,l,m,n)
  700	      CONTINUE
-	      IF ( bsum .EQ. 0.0D0 ) THEN
-	         res(i,j,k,l,m,pt) = bad_res
-	      ELSEIF (integrate) THEN
-	         res(i,j,k,l,m,pt) = dsum
-	      ELSE
-	         res(i,j,k,l,m,pt) = dsum/bsum
-	      ENDIF
+	      res(i,j,k,l,m,pt) = res(i,j,k,l,m,pt) + dsum
+	      weights(i,j,k,l,m,pt) = weights(i,j,k,l,m,pt) + bsum
  710	   CONTINUE
 
 	ENDIF
diff --git a/fer/doo/do_average.F b/fer/doo/do_average.F
index ffb0bbf..f99a24a 100644
--- a/fer/doo/do_average.F
+++ b/fer/doo/do_average.F
@@ -47,6 +47,8 @@
 *
 * V200:  6/1/89
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 *sh* 11/16 mods for trac #2428 - calculation in gathered fragments
+*                 pass address of buffer area, where weights are accumulated
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -61,17 +63,20 @@
 	REAL	arg, com(*), res(*), box(*)
 
 * internal variable declarations:
-* ...
+	INTEGER CGRID_SIZE, size
 
 * diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
 	IF ( mode_diagnostic ) 	CALL DIAG_OP
      .				( 'doing', isact_class_trans, res_cx, idim )
 
+* get size of result array to locate buffer area just beyond
+	size = CGRID_SIZE(res_cx)
+
 	CALL DO_AVE_INT( isact_average, idim,
      .			 cx_lo_ss(com_cx,idim), cx_hi_ss(com_cx,idim),
      .			 com, com_mr, com_cx,
      .			 res, res_mr, res_cx,
-     .			 box )
+     .			 box, res(size+1) )
 
 	DO_AVERAGE = ferr_ok
 
diff --git a/fer/doo/do_external_gc_fcn.F b/fer/doo/do_external_gc_fcn.F
index cde2674..5f0b483 100644
--- a/fer/doo/do_external_gc_fcn.F
+++ b/fer/doo/do_external_gc_fcn.F
@@ -1,4 +1,4 @@
-      SUBROUTINE DO_EXTERNAL_GC_FCN( memory,
+      SUBROUTINE DO_EXTERNAL_GC_FCN( 
      .				fcn, num_com, com_mr, com_cx,
      .				com1, mr1,
      .				com2, mr2,
@@ -27,10 +27,13 @@
 *       7/25/97 - increase number of args from 4 to 9
 *               - add function PPLGRID
 * V500: 10/26/98 - *jc* add CREATE_PERMUTATION section
-*        7/99 *sh* check ststus on retun from efvn_compute
+*        7/99 *sh* check status on retun from efvn_compute
 * V510: *sh* 3/00 - bug fix: com_mr was passed instead of mr_perm to the EFs
 *                 - eliminated old code as marked by jon
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V710 *acm*  1/17 Ticket 1480: Flag sent to CREATE_PERMUTATION; in 
+*        xeq_list we maybe doing an adjustment for modulo length of an 
+*        axis, always FALSE here.
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -43,7 +46,6 @@
 * calling argument declarations:
 	INTEGER	fcn, num_com, com_mr(10), com_cx(9), status,
      .       mr1, mr2, mr3, mr4, mr5, mr6, mr7, mr8, mr9, mres
-        REAL memory( mem_blk_size, max_mem_blks )
 	REAL com1( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
      .             m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
      .       com2( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
@@ -66,9 +68,9 @@
      .            m10lot:m10hit,m10loe:m10hie,m10lof:m10hif )
 
 * internal variable declarations:
-        INTEGER mr_arg_offset_array(10)
         REAL bad_flag_array(10)
 
+        LOGICAL is_permuted(9)
         INTEGER i, mr, perm(nferdims), mr_perm(9)
 
 * internal parameter declarations:
@@ -82,31 +84,31 @@
 
 * initialize all of the possible passed arguments just for good housekeeping
         DO 5 i= 1, 9
-            mr_arg_offset_array(i)  = ( mr_blk1(dummy_mr)-1 )
-     .                              * mem_blk_size
             bad_flag_array(i)  = mr_bad_data ( dummy_mr )
  5      CONTINUE
 
 * In order to pass arguments to the external function as continguous 
-* pieces of memory, we need to use CREATE_PERMUTATION.  
+* pieces of  we need to use CREATE_PERMUTATION.  
 * Otherwise, cached variables will be passed through without being 
 * pared down to the desired context.
 
+* 1/2017 New flag sent to CREATE_PERMUTATION; in xeq_list we may
+*        be doing an adjustment for modulo length of an axis, always
+*        FALSE here.
+
        DO 10 i=1, nferdims
           perm(i) = i
  10    CONTINUE
 
        DO 100 i=1, num_com
 
-          CALL CREATE_PERMUTATION(  memory, com_cx(i), com_mr(i),
-     .         perm, mr_perm(i), status )
-
+          CALL CREATE_PERMUTATION(   com_cx(i), com_mr(i),
+     .         perm, mr_perm(i), .FALSE., status )
           IF ( status .NE. ferr_OK ) GOTO 5000
+          is_permuted(i) = mr_perm(i) .NE. com_mr(i)
 
           CALL NON_ARRAY_SUBSC( mr_perm, 1 )
 
-          mr_arg_offset_array(i)  = ( mr_blk1(mr_perm(i)) - 1 ) * 
-     .         mem_blk_size
           bad_flag_array(i)  = mr_bad_data ( mr_perm(i) )
 
  100   CONTINUE
@@ -114,23 +116,22 @@
 * store the restricted limits as known by mr_perm instead of com_mr
         CALL NON_ARRAY_SUBSC( mr_perm, num_com )
 
-        mr_arg_offset_array(10) = ( mr_blk1(mres) - 1 ) * mem_blk_size
         bad_flag_array(10) = mr_bad_data ( mres )
 
-        call efcn_compute(fcn, num_com, com_cx, mr_perm, mres, 
-     .      bad_flag_array, mr_arg_offset_array, memory, status)
+        CALL EFCN_COMPUTE(fcn, num_com, com_cx, mr_perm, mres, 
+     .      bad_flag_array,  status)
         IF (status .NE. ferr_ok) CALL ERRMSG(ferr_ef_error, status,
      .          'error in external function', *190)
 
  
-* clean temporary results from memory cache
- 190    DO 200 i = 1, num_com
-          mr = mr_perm(i)
-          IF ( mr_protected(mr) .EQ. mr_temporary
-     .         .OR. mr_protected(mr) .EQ. mr_table_entry_only )
-     .         CALL DELETE_VARIABLE( mr )
- 200   CONTINUE
-
+! bug fix 1/17 -- only delete the temporary variables created *here*
+* clean temporary, permuted results from memory cache
+ 190    DO i = 1, num_com
+          IF (is_permuted(i)) THEN
+            mr = mr_perm(i)
+            CALL DELETE_VARIABLE( mr )
+          ENDIF
+        ENDDO
 
 * error exits
  5000	RETURN
diff --git a/fer/doo/do_int_indef_sub.F b/fer/doo/do_int_indef_sub.F
index 00a5199..57b0398 100644
--- a/fer/doo/do_int_indef_sub.F
+++ b/fer/doo/do_int_indef_sub.F
@@ -53,6 +53,7 @@
 *        been made), bug1348
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -78,7 +79,8 @@
      .		box( com_lo:com_hi )
 
 * internal variable declarations:
-	LOGICAL	GEOG_COS_FACTOR, need_cos
+	LOGICAL	GEOG_COS_FACTOR, ITSA_TRUEMONTH_AXIS, 
+     .          need_cos
 	INTEGER i, j, k, l, m, n, grid, lo, hi, axis,
      .          ii, jj, kk, ll, mm, nn
 	REAL	BOX_SIZE, unit, bad_com, bad_res, cos_factor,
@@ -108,6 +110,7 @@
 
 * 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 = lo, hi
  110	box(i) = box(i) * unit
 
diff --git a/fer/doo/do_integ_def.F b/fer/doo/do_integ_def.F
index dc7a959..ae00edb 100644
--- a/fer/doo/do_integ_def.F
+++ b/fer/doo/do_integ_def.F
@@ -48,6 +48,8 @@
 * V200:  6/1/89
 *	10/16/89 - changes to adjustable array declarations
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 *sh* 11/16 mods for trac #2428 - calculation in gathered fragments
+*                 pass address of buffer area, where weights are accumulated
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -62,17 +64,20 @@
 	REAL	arg, com(*), res(*), box(*)
 
 * internal variable declarations:
-* ...
+	INTEGER CGRID_SIZE, size
 
 * diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
 	IF ( mode_diagnostic ) 	CALL DIAG_OP
      .				( 'doing', isact_class_trans, res_cx, idim )
 
+* get size of result array to locate buffer area just beyond
+	size = CGRID_SIZE(res_cx)
+
 	CALL DO_AVE_INT( isact_integ_def, idim,
      .			 cx_lo_ss(com_cx,idim), cx_hi_ss(com_cx,idim),
      .			 com, com_mr, com_cx,
      .			 res, res_mr, res_cx,
-     .			 box )
+     .			 box, res(size+1) )
 
 	DO_INTEG_DEF = ferr_ok
 
diff --git a/fer/doo/do_internal_gc_fcn.F b/fer/doo/do_internal_gc_fcn.F
index ae187ee..5a15d36 100644
--- a/fer/doo/do_internal_gc_fcn.F
+++ b/fer/doo/do_internal_gc_fcn.F
@@ -1,4 +1,4 @@
-      SUBROUTINE DO_INTERNAL_GC_FCN( memory,
+      SUBROUTINE DO_INTERNAL_GC_FCN( 
      .				fcn, num_com, com_cx,
      .				com1, mr1, pdim1, typ1,
      .				com2, mr2, pdim2, typ2,
@@ -98,7 +98,9 @@
 * V68   5/12 *acm* Add ESEQUENCE, FSEQUENCE, SAMPLEM, SAMPLEN
 * V693 10/14 *acm* ticket 2210: check for negative arguments to SUBSTRING
 
-* keep max_cmnd_len for SPAWN at 2048 while Ferret command buffer increases to 20480
+* keep max_cmnd_len for SPAWN at 2048 while Ferret command buffer
+*      increases to 20480
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -116,7 +118,6 @@
      .          pdim8, pdim9, pdimr,
      .          typ1, typ2, typ3, typ4, typ5, typ6, typ7, typ8, typ9,
      .          typr, res_cx
-        REAL	memory( mem_blk_size, max_mem_blks )
 	REAL com1( pdim1,m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
      .             m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
      .       com2( pdim2,m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
@@ -153,8 +154,9 @@
      .          si2, sj2, sk2, sl2, sm2, sn2,
      .          si3, sj3, sk3, sl3, sm3, sn3,
      .          ind(nferdims)
-        INTEGER klo, khi, ndx_lo, wkblk, ioff, ilen
+        INTEGER klo, khi, ndx_lo, ioff, ilen
         INTEGER coded_pointer, uvar, item, start, end   ! for TIMES2
+        INTEGER*8 i8_size
 	REAL    bad_res, bad1, bad2, bad3,
      .          zval, frac
         REAL*8  TM_WORLD
@@ -377,9 +379,11 @@
      .		 'Z limits of data and depth fields must match', *5000)
 
 * ... allocate a work array for a single profile of Z depths
-	CALL GET_WORK_SPC( m2hiz-m2loz+1, wkblk, status )
+        i8_size = m2hiz-m2loz+1
+	CALL GET_DYN_WORK_SPACE( i8_size, status )
         IF ( status .NE. ferr_ok ) GOTO 5000
 
+
 * ... loop over the X,Y,T,E,F range of the input fields
 	n1 = sn1
 	n2 = sn2
@@ -412,7 +416,7 @@
      .               cx_lo_s3(cx2), cx_hi_s3(cx2), 
      .               m2lox, m2hix, m2loy, m2hiy, m2loz, m2hiz,
      .               m2lot, m2hit, m2loe, m2hie, m2lof, m2hif,
-     .               memory(1,wkblk), klo, khi )
+     .               workmem(plegacy_work_buffer)%ptr, klo, khi )
 
              IF ( klo .LT. 1 ) THEN
 
@@ -436,7 +440,7 @@
 #endif
 * ... search the Z field (com2) for the index just below this value
 * ... note that ndx_lo is always referenced to a starting index of 1
-                   CALL HUNT_R4(memory(1,wkblk),
+                   CALL HUNT_R4(workmem(plegacy_work_buffer)%ptr,
      .                          klo, khi, zval, ndx_lo, frac)
                    IF ( frac .LT. 0.0 ) THEN
 * ... no luck -- the Z axis value we seek is outside the range in com2
@@ -444,7 +448,7 @@
                    ELSEIF ( com1(1,i1,j1,sk1+ndx_lo,l1,m1,n1)
      .                      .EQ. bad1 ) THEN
                       res(1,i,j,k,l,m,n) = bad_res
-                   ELSEIF ( frac .EQ. 1.0 ) THEN                  ! exactly on point
+                   ELSEIF ( frac .EQ. 1.0 ) THEN      ! exactly on point
                       res(1,i,j,k,l,m,n) =
      .                   com1(1,i1,j1,sk1+ndx_lo,l1,m1,n1)
                    ELSEIF ( com1(1,i1,j1,sk1+ndx_lo+1,l1,m1,n1)
@@ -461,7 +465,7 @@
              ENDIF
 
  1450	CONTINUE
-        CALL RELEASE_WORK_SPC
+        CALL RELEASE_DYN_WORK_SPACE
         RETURN
 
 
diff --git a/fer/doo/do_max.F b/fer/doo/do_max.F
index 279cc48..0141995 100644
--- a/fer/doo/do_max.F
+++ b/fer/doo/do_max.F
@@ -38,7 +38,7 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* find the MAXIMUM value of the component grid along axis idim
+* find the maximum value of the component grid along axis idim
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
@@ -47,162 +47,32 @@
 * V200:  6/1/89
 *	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 *sh* 11/16 this routine now performs accumulation only.  Initialization
+*                 and finalizing called separately from IS_TRANS
+* V71  *acm* 12/16 Send extra-buffer space that was allocated for the 
+*                 accumulation/finalization, to store counts. To distinguish 
+*                 all-missing data with a value of zero, from a zero max.
 
         IMPLICIT NONE
-        include 'tmap_dims.parm'
-	include	'ferret.parm'
 	include	'errmsg.parm'
-	include	'interp_stack.parm'
-	include	'xcontext.cmn'
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include	'xprog_state.cmn'
 
 * calling argument declarations:
 	INTEGER	idim, com_mr, com_cx, res_mr, res_cx
 	REAL	arg, buff(*),
-     .          com( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
-     .               m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
-     .          res( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
-     .               m2lot:m2hit,m2loe:m2hie,m2lof:m2hif )
+     .          com( * ), res( * )
 
 * internal variable declarations:
-	INTEGER i, j, k, l, m, n, pt
-	REAL	bad_res, maxmum
+         INTEGER CGRID_SIZE, size
 
-* internal parameter declaration
-	REAL		too_small
-	PARAMETER     ( too_small = -1.E33 )
+* Get size of result array to locate buffer area just beyond
+* Pass extra-buffer portion of res array to accumulate counts
 
-* diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
-	IF ( mode_diagnostic ) 	CALL DIAG_OP
-     .				( 'doing', isact_class_trans, res_cx, idim )
+	size = CGRID_SIZE(res_cx)
 
-* initialize
-	pt   = cx_lo_ss( res_cx, idim )
-	bad_res = mr_bad_data( res_mr )
-
-* ALONG X AXIS
-	IF ( idim .EQ. x_dim ) THEN
-	   DO 110 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
-	   DO 110 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
-	   DO 110 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
-	   DO 110 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
-	   DO 110 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	      maxmum = too_small
-	      DO 100 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 100
-	         IF ( com(i,j,k,l,m,n) .GT. maxmum )
-     .              maxmum = com(i,j,k,l,m,n)
- 100	      CONTINUE
-	      IF ( maxmum .EQ. too_small ) THEN
-	         res(pt,j,k,l,m,n) = bad_res
-	      ELSE
-	         res(pt,j,k,l,m,n) = maxmum
-	      ENDIF
- 110	   CONTINUE
-
-* ALONG Y AXIS
-	ELSEIF ( idim .EQ. y_dim ) THEN
-	   DO 210 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
-	   DO 210 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
-	   DO 210 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
-	   DO 210 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
-	   DO 210 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	      maxmum = too_small
-	      DO 200 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 200
-	         IF ( com(i,j,k,l,m,n) .GT. maxmum )
-     .              maxmum = com(i,j,k,l,m,n)
- 200	      CONTINUE
-	      IF ( maxmum .EQ. too_small ) THEN
-	         res(i,pt,k,l,m,n) = bad_res
-	      ELSE
-	         res(i,pt,k,l,m,n) = maxmum
-	      ENDIF
- 210	   CONTINUE
-
-* ALONG Z AXIS
-	ELSEIF ( idim .EQ. z_dim ) THEN
-	   DO 310 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
-	   DO 310 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
-	   DO 310 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
-	   DO 310 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	   DO 310 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	      maxmum = too_small
-	      DO 300 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 300
-	         IF ( com(i,j,k,l,m,n) .GT. maxmum )
-     .              maxmum = com(i,j,k,l,m,n)
- 300	      CONTINUE
-	      IF ( maxmum .EQ. too_small ) THEN
-	         res(i,j,pt,l,m,n) = bad_res
-	      ELSE
-	         res(i,j,pt,l,m,n) = maxmum
-	      ENDIF
- 310	   CONTINUE
-
-* ALONG T AXIS
-	ELSEIF ( idim .EQ. t_dim ) THEN
-	   DO 410 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
-	   DO 410 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
-	   DO 410 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
-	   DO 410 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	   DO 410 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	      maxmum = too_small
-	      DO 400 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 400
-	         IF ( com(i,j,k,l,m,n) .GT. maxmum )
-     .              maxmum = com(i,j,k,l,m,n)
- 400	      CONTINUE
-	      IF ( maxmum .EQ. too_small ) THEN
-	         res(i,j,k,pt,m,n) = bad_res
-	      ELSE
-	         res(i,j,k,pt,m,n) = maxmum
-	      ENDIF
- 410	   CONTINUE
-
-* ALONG E AXIS
-	ELSEIF ( idim .EQ. e_dim ) THEN
-	   DO 510 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
-	   DO 510 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
-	   DO 510 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
-	   DO 510 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	   DO 510 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	      maxmum = too_small
-	      DO 500 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 500
-	         IF ( com(i,j,k,l,m,n) .GT. maxmum )
-     .              maxmum = com(i,j,k,l,m,n)
- 500	      CONTINUE
-	      IF ( maxmum .EQ. too_small ) THEN
-	         res(i,j,k,l,pt,n) = bad_res
-	      ELSE
-	         res(i,j,k,l,pt,n) = maxmum
-	      ENDIF
- 510	   CONTINUE
-
-* ALONG F AXIS
-	ELSEIF ( idim .EQ. f_dim ) THEN
-	   DO 610 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
-	   DO 610 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
-	   DO 610 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
-	   DO 610 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	   DO 610 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	      maxmum = too_small
-	      DO 600 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 600
-	         IF ( com(i,j,k,l,m,n) .GT. maxmum )
-     .              maxmum = com(i,j,k,l,m,n)
- 600	      CONTINUE
-	      IF ( maxmum .EQ. too_small ) THEN
-	         res(i,j,k,l,m,pt) = bad_res
-	      ELSE
-	         res(i,j,k,l,m,pt) = maxmum
-	      ENDIF
- 610	   CONTINUE
-
-	ENDIF
+	CALL DO_MAX_SUB (idim, arg,
+     .                   com, com_mr, com_cx,
+     .                   res, res_mr, res_cx,
+     .                   res(size+1)	)
 
 	DO_MAX = ferr_ok
 
diff --git a/fer/doo/do_max.F b/fer/doo/do_max_sub.F
similarity index 70%
copy from fer/doo/do_max.F
copy to fer/doo/do_max_sub.F
index 279cc48..e4645b6 100644
--- a/fer/doo/do_max.F
+++ b/fer/doo/do_max_sub.F
@@ -1,7 +1,7 @@
-	INTEGER FUNCTION DO_MAX( idim, arg,
+	INTEGER FUNCTION DO_MAX_SUB ( idim, arg,
      .				 com, com_mr, com_cx,
      .				 res, res_mr, res_cx,
-     .				 buff	)
+     .				 counts	)
 
 *
 *
@@ -47,6 +47,11 @@
 * V200:  6/1/89
 *	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V71 *acm* 12/16 this routine now performs accumulation, possibly continuing
+*                 over several chunks, so keep adding to the count in res(). 
+*                 Initialization and finalizing called separately from IS_TRANS
+*                 Counts are saved for the finalization step, to distinguish
+*                 between maximum of zero and result that indicates all-missing-data.
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -60,15 +65,17 @@
 
 * calling argument declarations:
 	INTEGER	idim, com_mr, com_cx, res_mr, res_cx
-	REAL	arg, buff(*),
+	REAL	arg, 
      .          com( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
      .               m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
      .          res( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
-     .               m2lot:m2hit,m2loe:m2hie,m2lof:m2hif )
+     .               m2lot:m2hit,m2loe:m2hie,m2lof:m2hif ),
+     .          counts ( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
+     .                    m2lot:m2hit,m2loe:m2hie,m2lof:m2hif )
 
 * internal variable declarations:
 	INTEGER i, j, k, l, m, n, pt
-	REAL	bad_res, maxmum
+	REAL	bad_res, ok
 
 * internal parameter declaration
 	REAL		too_small
@@ -89,17 +96,16 @@
 	   DO 110 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
 	   DO 110 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	   DO 110 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	      maxmum = too_small
+	      ok = 0.
 	      DO 100 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
 	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 100
-	         IF ( com(i,j,k,l,m,n) .GT. maxmum )
-     .              maxmum = com(i,j,k,l,m,n)
+		 ok = ok + 1.
+	         IF ( com(i,j,k,l,m,n) .GT. res(pt,j,k,l,m,n) )
+     .              res(pt,j,k,l,m,n) = com(i,j,k,l,m,n)
  100	      CONTINUE
-	      IF ( maxmum .EQ. too_small ) THEN
-	         res(pt,j,k,l,m,n) = bad_res
-	      ELSE
-	         res(pt,j,k,l,m,n) = maxmum
-	      ENDIF
+	      IF (counts(pt,j,k,l,m,n) .EQ. too_small) 
+     .              counts(pt,j,k,l,m,n) = 0.
+	      counts(pt,j,k,l,m,n) = counts(pt,j,k,l,m,n) + ok
  110	   CONTINUE
 
 * ALONG Y AXIS
@@ -109,17 +115,16 @@
 	   DO 210 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
 	   DO 210 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	   DO 210 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	      maxmum = too_small
+	      ok = 0.
 	      DO 200 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
 	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 200
-	         IF ( com(i,j,k,l,m,n) .GT. maxmum )
-     .              maxmum = com(i,j,k,l,m,n)
+		 ok = ok + 1.
+	         IF ( com(i,j,k,l,m,n) .GT. res(i,pt,k,l,m,n) )
+     .              res(i,pt,k,l,m,n) = com(i,j,k,l,m,n)
  200	      CONTINUE
-	      IF ( maxmum .EQ. too_small ) THEN
-	         res(i,pt,k,l,m,n) = bad_res
-	      ELSE
-	         res(i,pt,k,l,m,n) = maxmum
-	      ENDIF
+	      IF (counts(i,pt,k,l,m,n) .EQ. too_small) 
+     .              counts(i,pt,k,l,m,n) = 0.
+	      counts(i,pt,k,l,m,n) = counts(i,pt,k,l,m,n) + ok
  210	   CONTINUE
 
 * ALONG Z AXIS
@@ -129,17 +134,16 @@
 	   DO 310 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
 	   DO 310 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
 	   DO 310 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	      maxmum = too_small
+	      ok = 0.
 	      DO 300 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 300
-	         IF ( com(i,j,k,l,m,n) .GT. maxmum )
-     .              maxmum = com(i,j,k,l,m,n)
+		 ok = ok + 1.
+	         IF ( com(i,j,k,l,m,n) .GT. res(i,j,pt,l,m,n) )
+     .              res(i,j,pt,l,m,n) = com(i,j,k,l,m,n)
  300	      CONTINUE
-	      IF ( maxmum .EQ. too_small ) THEN
-	         res(i,j,pt,l,m,n) = bad_res
-	      ELSE
-	         res(i,j,pt,l,m,n) = maxmum
-	      ENDIF
+	      IF (counts(i,j,pt,l,m,n) .EQ. too_small) 
+     .              counts(i,j,pt,l,m,n) = 0.
+	      counts(i,j,pt,l,m,n) = counts(i,j,pt,l,m,n) + ok
  310	   CONTINUE
 
 * ALONG T AXIS
@@ -149,17 +153,16 @@
 	   DO 410 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	   DO 410 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
 	   DO 410 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	      maxmum = too_small
+	      ok = 0.
 	      DO 400 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
 	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 400
-	         IF ( com(i,j,k,l,m,n) .GT. maxmum )
-     .              maxmum = com(i,j,k,l,m,n)
+		 ok = ok + 1.
+	         IF ( com(i,j,k,l,m,n) .GT. res(i,j,k,pt,m,n) )
+     .              res(i,j,k,pt,m,n) = com(i,j,k,l,m,n)
  400	      CONTINUE
-	      IF ( maxmum .EQ. too_small ) THEN
-	         res(i,j,k,pt,m,n) = bad_res
-	      ELSE
-	         res(i,j,k,pt,m,n) = maxmum
-	      ENDIF
+	      IF (counts(i,j,k,pt,m,n) .EQ. too_small) 
+     .              counts(i,j,k,pt,m,n) = 0.
+	      counts(i,j,k,pt,m,n) = counts(i,j,k,pt,m,n) + ok
  410	   CONTINUE
 
 * ALONG E AXIS
@@ -169,17 +172,16 @@
 	   DO 510 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	   DO 510 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
 	   DO 510 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	      maxmum = too_small
+	      ok = 0.
 	      DO 500 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
 	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 500
-	         IF ( com(i,j,k,l,m,n) .GT. maxmum )
-     .              maxmum = com(i,j,k,l,m,n)
+		 ok = ok + 1.
+	         IF ( com(i,j,k,l,m,n) .GT. res(i,j,k,l,pt,n) )
+     .              res(i,j,k,l,pt,n) = com(i,j,k,l,m,n)
  500	      CONTINUE
-	      IF ( maxmum .EQ. too_small ) THEN
-	         res(i,j,k,l,pt,n) = bad_res
-	      ELSE
-	         res(i,j,k,l,pt,n) = maxmum
-	      ENDIF
+	      IF (counts(i,j,k,l,pt,n) .EQ. too_small) 
+     .              counts(i,j,k,l,pt,n) = 0.
+	      counts(i,j,k,l,pt,n) = counts(i,j,k,l,pt,n) + ok
  510	   CONTINUE
 
 * ALONG F AXIS
@@ -189,22 +191,19 @@
 	   DO 610 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	   DO 610 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
 	   DO 610 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	      maxmum = too_small
+	      ok = 0.
 	      DO 600 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
 	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 600
-	         IF ( com(i,j,k,l,m,n) .GT. maxmum )
-     .              maxmum = com(i,j,k,l,m,n)
+		 ok = ok + 1.
+	         IF ( com(i,j,k,l,m,n) .GT. res(i,j,k,l,m,pt) )
+     .              res(i,j,k,l,m,pt) = com(i,j,k,l,m,n)
  600	      CONTINUE
-	      IF ( maxmum .EQ. too_small ) THEN
-	         res(i,j,k,l,m,pt) = bad_res
-	      ELSE
-	         res(i,j,k,l,m,pt) = maxmum
-	      ENDIF
+	      IF (counts(i,j,k,l,m,pt) .EQ. too_small) 
+     .              counts(i,j,k,l,m,pt) = 0.
+	      counts(i,j,k,l,m,pt) = counts(i,j,k,l,m,pt) + ok
  610	   CONTINUE
 
 	ENDIF
 
-	DO_MAX = ferr_ok
-
 	RETURN
 	END
diff --git a/fer/doo/do_min.F b/fer/doo/do_min.F
index f011920..9c8071e 100644
--- a/fer/doo/do_min.F
+++ b/fer/doo/do_min.F
@@ -47,162 +47,32 @@
 * V200:  6/1/89
 *	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 *sh* 11/16 this routine now performs accumulation only.  Initialization
+*                 and finalizing called separately from IS_TRANS
+* V71  *acm* 12/16 Send extra-buffer space that was allocated for the 
+*                 accumulation/finalization, to store counts. To distinguish 
+*                 all-missing data with a value of zero, from a zero min.
 
         IMPLICIT NONE
-        include 'tmap_dims.parm'
-	include	'ferret.parm'
 	include	'errmsg.parm'
-	include	'interp_stack.parm'
-	include	'xcontext.cmn'
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include	'xprog_state.cmn'
 
 * calling argument declarations:
 	INTEGER	idim, com_mr, com_cx, res_mr, res_cx
 	REAL	arg, buff(*),
-     .          com( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
-     .               m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
-     .          res( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
-     .               m2lot:m2hit,m2loe:m2hie,m2lof:m2hif )
+     .          com( * ), res( * )
 
 * internal variable declarations:
-	INTEGER i, j, k, l, m, n, pt
-	REAL	bad_res, minmum
+         INTEGER CGRID_SIZE, size
 
-* internal parameter declaration
-	REAL		too_large
-	PARAMETER     ( too_large = 1.E33 )
+* Get size of result array to locate buffer area just beyond
+* Pass extra-buffer portion of res array to accumulate counts
 
-* diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
-	IF ( mode_diagnostic ) 	CALL DIAG_OP
-     .				( 'doing', isact_class_trans, res_cx, idim )
+	size = CGRID_SIZE(res_cx)
 
-* initialize
-	pt   = cx_lo_ss( res_cx, idim )
-	bad_res = mr_bad_data( res_mr )
-
-* ALONG X AXIS
-	IF ( idim .EQ. x_dim ) THEN
-	   DO 110 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
-	   DO 110 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
-	   DO 110 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
-	   DO 110 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
-	   DO 110 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	      minmum = too_large
-	      DO 100 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 100
-	         IF ( com(i,j,k,l,m,n) .LT. minmum )
-     .              minmum = com(i,j,k,l,m,n)
- 100	      CONTINUE
-	      IF ( minmum .EQ. too_large ) THEN
-	         res(pt,j,k,l,m,n) = bad_res
-	      ELSE
-	         res(pt,j,k,l,m,n) = minmum
-	      ENDIF
- 110	   CONTINUE
-
-* ALONG Y AXIS
-	ELSEIF ( idim .EQ. y_dim ) THEN
-	   DO 210 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
-	   DO 210 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
-	   DO 210 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
-	   DO 210 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
-	   DO 210 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	      minmum = too_large
-	      DO 200 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 200
-	         IF ( com(i,j,k,l,m,n) .LT. minmum )
-     .              minmum = com(i,j,k,l,m,n)
- 200	      CONTINUE
-	      IF ( minmum .EQ. too_large ) THEN
-	         res(i,pt,k,l,m,n) = bad_res
-	      ELSE
-	         res(i,pt,k,l,m,n) = minmum
-	      ENDIF
- 210	   CONTINUE
-
-* ALONG Z AXIS
-	ELSEIF ( idim .EQ. z_dim ) THEN
-	   DO 310 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
-	   DO 310 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
-	   DO 310 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
-	   DO 310 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	   DO 310 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	      minmum = too_large
-	      DO 300 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 300
-	         IF ( com(i,j,k,l,m,n) .LT. minmum )
-     .              minmum = com(i,j,k,l,m,n)
- 300	      CONTINUE
-	      IF ( minmum .EQ. too_large ) THEN
-	         res(i,j,pt,l,m,n) = bad_res
-	      ELSE
-	         res(i,j,pt,l,m,n) = minmum
-	      ENDIF
- 310	   CONTINUE
-
-* ALONG T AXIS
-	ELSEIF ( idim .EQ. t_dim ) THEN
-	   DO 410 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
-	   DO 410 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
-	   DO 410 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
-	   DO 410 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	   DO 410 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	      minmum = too_large
-	      DO 400 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 400
-	         IF ( com(i,j,k,l,m,n) .LT. minmum )
-     .              minmum = com(i,j,k,l,m,n)
- 400	      CONTINUE
-	      IF ( minmum .EQ. too_large ) THEN
-	         res(i,j,k,pt,m,n) = bad_res
-	      ELSE
-	         res(i,j,k,pt,m,n) = minmum
-	      ENDIF
- 410	   CONTINUE
-
-* ALONG E AXIS
-	ELSEIF ( idim .EQ. e_dim ) THEN
-	   DO 510 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
-	   DO 510 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
-	   DO 510 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
-	   DO 510 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	   DO 510 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	      minmum = too_large
-	      DO 500 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 500
-	         IF ( com(i,j,k,l,m,n) .LT. minmum )
-     .              minmum = com(i,j,k,l,m,n)
- 500	      CONTINUE
-	      IF ( minmum .EQ. too_large ) THEN
-	         res(i,j,k,l,pt,n) = bad_res
-	      ELSE
-	         res(i,j,k,l,pt,n) = minmum
-	      ENDIF
- 510	   CONTINUE
-
-* ALONG F AXIS
-	ELSEIF ( idim .EQ. f_dim ) THEN
-	   DO 610 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
-	   DO 610 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
-	   DO 610 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
-	   DO 610 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	   DO 610 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	      minmum = too_large
-	      DO 600 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx) 
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 600
-	         IF ( com(i,j,k,l,m,n) .LT. minmum )
-     .              minmum = com(i,j,k,l,m,n)
- 600	      CONTINUE
-	      IF ( minmum .EQ. too_large ) THEN
-	         res(i,j,k,l,m,pt) = bad_res
-	      ELSE
-	         res(i,j,k,l,m,pt) = minmum
-	      ENDIF
- 610	   CONTINUE
-
-	ENDIF
+	CALL DO_MIN_SUB (idim, arg,
+     .                   com, com_mr, com_cx,
+     .                   res, res_mr, res_cx,
+     .                   res(size+1)	)
 
 	DO_MIN = ferr_ok
 
diff --git a/fer/doo/do_min.F b/fer/doo/do_min_sub.F
similarity index 70%
copy from fer/doo/do_min.F
copy to fer/doo/do_min_sub.F
index f011920..d4a113b 100644
--- a/fer/doo/do_min.F
+++ b/fer/doo/do_min_sub.F
@@ -1,7 +1,7 @@
-	INTEGER FUNCTION DO_MIN( idim, arg,
+	INTEGER FUNCTION DO_MIN_SUB ( idim, arg,
      .				 com, com_mr, com_cx,
      .				 res, res_mr, res_cx,
-     .				 buff	)
+     .				 counts	)
 
 *
 *
@@ -47,6 +47,11 @@
 * V200:  6/1/89
 *	10/11/89 - modified array declarations using XMEM_SUBSC.CMN
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V71 *acm* 12/16 this routine now performs accumulation, possibly continuing
+*                 over several chunks, so keep adding to the count in res(). 
+*                 Initialization and finalizing called separately from IS_TRANS
+*                 Counts are saved for the finalization step, to distinguish
+*                 between minimum of zero and result that indicates all-missing-data.
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -60,15 +65,17 @@
 
 * calling argument declarations:
 	INTEGER	idim, com_mr, com_cx, res_mr, res_cx
-	REAL	arg, buff(*),
+	REAL	arg, 
      .          com( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
      .               m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
      .          res( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
-     .               m2lot:m2hit,m2loe:m2hie,m2lof:m2hif )
+     .               m2lot:m2hit,m2loe:m2hie,m2lof:m2hif ),
+     .          counts ( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
+     .                    m2lot:m2hit,m2loe:m2hie,m2lof:m2hif )
 
 * internal variable declarations:
 	INTEGER i, j, k, l, m, n, pt
-	REAL	bad_res, minmum
+	REAL	bad_res, ok
 
 * internal parameter declaration
 	REAL		too_large
@@ -89,17 +96,16 @@
 	   DO 110 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
 	   DO 110 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	   DO 110 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	      minmum = too_large
+	      ok = 0.
 	      DO 100 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
 	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 100
-	         IF ( com(i,j,k,l,m,n) .LT. minmum )
-     .              minmum = com(i,j,k,l,m,n)
+		 ok = ok + 1.
+	         IF ( com(i,j,k,l,m,n) .LT. res(pt,j,k,l,m,n) )
+     .              res(pt,j,k,l,m,n) = com(i,j,k,l,m,n)
  100	      CONTINUE
-	      IF ( minmum .EQ. too_large ) THEN
-	         res(pt,j,k,l,m,n) = bad_res
-	      ELSE
-	         res(pt,j,k,l,m,n) = minmum
-	      ENDIF
+	      IF (counts(pt,j,k,l,m,n) .EQ. too_large) 
+     .              counts(pt,j,k,l,m,n) = 0.
+	      counts(pt,j,k,l,m,n) = counts(pt,j,k,l,m,n) + ok
  110	   CONTINUE
 
 * ALONG Y AXIS
@@ -109,17 +115,16 @@
 	   DO 210 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
 	   DO 210 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	   DO 210 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	      minmum = too_large
+	      ok = 0.
 	      DO 200 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
 	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 200
-	         IF ( com(i,j,k,l,m,n) .LT. minmum )
-     .              minmum = com(i,j,k,l,m,n)
+		 ok = ok + 1.
+	         IF ( com(i,j,k,l,m,n) .LT. res(i,pt,k,l,m,n) )
+     .              res(i,pt,k,l,m,n) = com(i,j,k,l,m,n)
  200	      CONTINUE
-	      IF ( minmum .EQ. too_large ) THEN
-	         res(i,pt,k,l,m,n) = bad_res
-	      ELSE
-	         res(i,pt,k,l,m,n) = minmum
-	      ENDIF
+	      IF (counts(i,pt,k,l,m,n) .EQ. too_large) 
+     .              counts(i,pt,k,l,m,n) = 0.
+	      counts(i,pt,k,l,m,n) = counts(i,pt,k,l,m,n) + ok
  210	   CONTINUE
 
 * ALONG Z AXIS
@@ -129,17 +134,16 @@
 	   DO 310 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
 	   DO 310 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
 	   DO 310 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	      minmum = too_large
+	      ok = 0.
 	      DO 300 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 300
-	         IF ( com(i,j,k,l,m,n) .LT. minmum )
-     .              minmum = com(i,j,k,l,m,n)
+		 ok = ok + 1.
+	         IF ( com(i,j,k,l,m,n) .LT. res(i,j,pt,l,m,n) )
+     .              res(i,j,pt,l,m,n) = com(i,j,k,l,m,n)
  300	      CONTINUE
-	      IF ( minmum .EQ. too_large ) THEN
-	         res(i,j,pt,l,m,n) = bad_res
-	      ELSE
-	         res(i,j,pt,l,m,n) = minmum
-	      ENDIF
+	      IF (counts(i,j,pt,l,m,n) .EQ. too_large) 
+     .              counts(i,j,pt,l,m,n) = 0.
+	      counts(i,j,pt,l,m,n) = counts(i,j,pt,l,m,n) + ok
  310	   CONTINUE
 
 * ALONG T AXIS
@@ -149,17 +153,16 @@
 	   DO 410 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	   DO 410 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
 	   DO 410 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	      minmum = too_large
+	      ok = 0.
 	      DO 400 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
 	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 400
-	         IF ( com(i,j,k,l,m,n) .LT. minmum )
-     .              minmum = com(i,j,k,l,m,n)
+		 ok = ok + 1.
+	         IF ( com(i,j,k,l,m,n) .LT. res(i,j,k,pt,m,n) )
+     .              res(i,j,k,pt,m,n) = com(i,j,k,l,m,n)
  400	      CONTINUE
-	      IF ( minmum .EQ. too_large ) THEN
-	         res(i,j,k,pt,m,n) = bad_res
-	      ELSE
-	         res(i,j,k,pt,m,n) = minmum
-	      ENDIF
+	      IF (counts(i,j,k,pt,m,n) .EQ. too_large) 
+     .              counts(i,j,k,pt,m,n) = 0.
+	      counts(i,j,k,pt,m,n) = counts(i,j,k,pt,m,n) + ok
  410	   CONTINUE
 
 * ALONG E AXIS
@@ -169,17 +172,16 @@
 	   DO 510 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	   DO 510 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
 	   DO 510 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	      minmum = too_large
+	      ok = 0.
 	      DO 500 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
 	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 500
-	         IF ( com(i,j,k,l,m,n) .LT. minmum )
-     .              minmum = com(i,j,k,l,m,n)
+		 ok = ok + 1.
+	         IF ( com(i,j,k,l,m,n) .LT. res(i,j,k,l,pt,n) )
+     .              res(i,j,k,l,pt,n) = com(i,j,k,l,m,n)
  500	      CONTINUE
-	      IF ( minmum .EQ. too_large ) THEN
-	         res(i,j,k,l,pt,n) = bad_res
-	      ELSE
-	         res(i,j,k,l,pt,n) = minmum
-	      ENDIF
+	      IF (counts(i,j,k,l,pt,n) .EQ. too_large) 
+     .              counts(i,j,k,l,pt,n) = 0.
+	      counts(i,j,k,l,pt,n) = counts(i,j,k,l,pt,n) + ok
  510	   CONTINUE
 
 * ALONG F AXIS
@@ -189,22 +191,19 @@
 	   DO 610 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	   DO 610 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
 	   DO 610 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	      minmum = too_large
+	      ok = 0.
 	      DO 600 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx) 
 	         IF ( com(i,j,k,l,m,n) .EQ. bad_res ) GOTO 600
-	         IF ( com(i,j,k,l,m,n) .LT. minmum )
-     .              minmum = com(i,j,k,l,m,n)
+		 ok = ok + 1.
+	         IF ( com(i,j,k,l,m,n) .LT. res(i,j,k,l,m,pt) )
+     .              res(i,j,k,l,m,pt) = com(i,j,k,l,m,n)
  600	      CONTINUE
-	      IF ( minmum .EQ. too_large ) THEN
-	         res(i,j,k,l,m,pt) = bad_res
-	      ELSE
-	         res(i,j,k,l,m,pt) = minmum
-	      ENDIF
+	      IF (counts(i,j,k,l,m,pt) .EQ. too_large) 
+     .              counts(i,j,k,l,m,pt) = 0.
+	      counts(i,j,k,l,m,pt) = counts(i,j,k,l,m,pt) + ok
  610	   CONTINUE
 
 	ENDIF
 
-	DO_MIN = ferr_ok
-
 	RETURN
 	END
diff --git a/fer/doo/do_points.F b/fer/doo/do_points.F
index cef63b4..3984021 100644
--- a/fer/doo/do_points.F
+++ b/fer/doo/do_points.F
@@ -45,6 +45,9 @@
 *
 * V230:   2/3/92 - based on DO_AVE_INT
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V71 *acm* 12/16 this routine now performs accumulation, possibly continuing
+*                 over several chunks, so keep adding to the count in res(). 
+*                 Initialization and finalizing called separately from IS_TRANS
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -95,9 +98,9 @@
                  ENDIF
  100	      CONTINUE
               IF ( good_un ) THEN
-                 res(pt,j,k,l,m,n) = ngd
+                 res(pt,j,k,l,m,n) = res(pt,j,k,l,m,n) + ngd
               ELSE
-                 res(pt,j,k,l,m,n) = nbd
+                 res(pt,j,k,l,m,n) = res(pt,j,k,l,m,n) + nbd
               ENDIF
  110	   CONTINUE
 
@@ -118,9 +121,9 @@
                  ENDIF
  200	      CONTINUE
               IF ( good_un ) THEN
-                 res(i,pt,k,l,m,n) = ngd
+                 res(i,pt,k,l,m,n) = res(i,pt,k,l,m,n) + ngd
               ELSE
-                 res(i,pt,k,l,m,n) = nbd
+                 res(i,pt,k,l,m,n) = res(i,pt,k,l,m,n) + nbd
               ENDIF
  210	   CONTINUE
 
@@ -141,9 +144,9 @@
                  ENDIF
  300	      CONTINUE
               IF ( good_un ) THEN
-                 res(i,j,pt,l,m,n) = ngd
+                 res(i,j,pt,l,m,n) = res(i,j,pt,l,m,n) + ngd
               ELSE
-                 res(i,j,pt,l,m,n) = nbd
+                 res(i,j,pt,l,m,n) = res(i,j,pt,l,m,n) + nbd
               ENDIF
  310	   CONTINUE
 
@@ -164,9 +167,9 @@
                  ENDIF
  400	      CONTINUE
               IF ( good_un ) THEN
-                 res(i,j,k,pt,m,n) = ngd
+                 res(i,j,k,pt,m,n) = res(i,j,k,pt,m,n) + ngd
               ELSE
-                 res(i,j,k,pt,m,n) = nbd
+                 res(i,j,k,pt,m,n) = res(i,j,k,pt,m,n) + nbd
               ENDIF
  410	   CONTINUE
 
@@ -187,9 +190,9 @@
                  ENDIF
  500	      CONTINUE
               IF ( good_un ) THEN
-                 res(i,j,k,l,pt,n) = ngd
+                 res(i,j,k,l,pt,n) = res(i,j,k,l,pt,n) + ngd
               ELSE
-                 res(i,j,k,l,pt,n) = nbd
+                 res(i,j,k,l,pt,n) = res(i,j,k,l,pt,n) + nbd
               ENDIF
  510	   CONTINUE
 
@@ -210,9 +213,9 @@
                  ENDIF
  600	      CONTINUE
               IF ( good_un ) THEN
-                 res(i,j,k,l,m,pt) = ngd
+                 res(i,j,k,l,m,pt) = res(i,j,k,l,m,pt) + ngd
               ELSE
-                 res(i,j,k,l,m,pt) = nbd
+                 res(i,j,k,l,m,pt) = res(i,j,k,l,m,pt) + nbd
               ENDIF
  610	   CONTINUE
 
diff --git a/fer/doo/do_stddev.F b/fer/doo/do_stddev.F
index 0e4724d..b970ae0 100644
--- a/fer/doo/do_stddev.F
+++ b/fer/doo/do_stddev.F
@@ -46,6 +46,8 @@
 *
 * V230:  3/2/92
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 *sh* 11/16 mods for trac #2428 - calculation in gathered fragments
+*                 pass address of buffer area, where weights are accumulated
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -61,6 +63,7 @@
 
 * internal variable declarations:
 	LOGICAL stddev
+	INTEGER CGRID_SIZE, size
 
 	stddev = .TRUE.
 
@@ -68,11 +71,15 @@
 	IF ( mode_diagnostic ) 	CALL DIAG_OP
      .				( 'doing', isact_class_trans, res_cx, idim )
 
+* get size of result array to locate buffer areas just beyond
+	size = CGRID_SIZE(res_cx)
+
 	CALL DO_VAR_SUB( idim,
      .			 cx_lo_ss(com_cx,idim), cx_hi_ss(com_cx,idim),
      .			 com, com_mr, com_cx,
      .			 res, res_mr, res_cx,
-     .			 box, stddev )
+     .			 box, stddev,
+     .			 res(size+1),res(2*size+1) )
 
 	DO_STDDEV = ferr_ok
 
diff --git a/fer/doo/do_sum.F b/fer/doo/do_sum.F
index d4d362e..2a2a6d9 100644
--- a/fer/doo/do_sum.F
+++ b/fer/doo/do_sum.F
@@ -48,168 +48,35 @@
 
 * V230: 12/91 - based on DO_MAX
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 *sh* 11/16 this routine now performs accumulation only.  Initialization
+*                 and finalizing called separately from IS_TRANS
+* V71  *acm* 12/16 Send extra-buffer space that was allocated for the 
+*                 accumulation/finalization, to store counts. To distinguish 
+*                all-missin data with a value of zero, from all-zero sums.
 
         IMPLICIT NONE
-        include 'tmap_dims.parm'
-	include	'ferret.parm'
 	include	'errmsg.parm'
-	include	'interp_stack.parm'
-	include	'xcontext.cmn'
-	include	'xvariables.cmn'
-	include	'xmem_subsc.cmn'
-	include	'xprog_state.cmn'
 
 * calling argument declarations:
 	INTEGER	idim, com_mr, com_cx, res_mr, res_cx
 	REAL	arg, buff(*),
-     .          com( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
-     .               m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
-     .          res( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
-     .               m2lot:m2hit,m2loe:m2hie,m2lof:m2hif )
+     .          com( * ), res( * )
 
 * internal variable declarations:
-        LOGICAL all_bad
-	INTEGER i, j, k, l, m, n, pt
-	REAL	bad_com, bad_res 
-	REAL*8  sum
+         INTEGER CGRID_SIZE, size
 
-* diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
-	IF ( mode_diagnostic ) 	CALL DIAG_OP
-     .				( 'doing', isact_class_trans, res_cx, idim )
+* Get size of result array to locate buffer area just beyond
+* Pass extra-buffer portion of res array to accumulate counts
+* - to distinguish between an all-missing and an all-zero sum.
 
-* initialize
-	pt   = cx_lo_ss( res_cx, idim )
-	bad_com = mr_bad_data( com_mr )
-	bad_res = mr_bad_data( res_mr )
+	size = CGRID_SIZE(res_cx)
 
-* ALONG X AXIS
-	IF ( idim .EQ. x_dim ) THEN
-	   DO 110 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
-	   DO 110 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
-	   DO 110 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
-	   DO 110 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
-	   DO 110 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-              all_bad = .TRUE.
-              sum = 0.0D0
-	      DO 100 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_com ) GOTO 100
-                 sum = sum + com(i,j,k,l,m,n)
-                 all_bad = .FALSE.
- 100	      CONTINUE
-	      IF ( all_bad ) THEN
-	         res(pt,j,k,l,m,n) = bad_res
-	      ELSE
-	         res(pt,j,k,l,m,n) = sum
-	      ENDIF
- 110	   CONTINUE
+	CALL DO_SUM_SUB (idim, arg,
+     .                   com, com_mr, com_cx,
+     .                   res, res_mr, res_cx,
+     .                   res(size+1)	)
 
-* ALONG Y AXIS
-	ELSEIF ( idim .EQ. y_dim ) THEN
-	   DO 210 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
-	   DO 210 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
-	   DO 210 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
-	   DO 210 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
-	   DO 210 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-              all_bad = .TRUE.
-              sum = 0.0D0
-	      DO 200 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_com ) GOTO 200
-                 sum = sum + com(i,j,k,l,m,n)
-                 all_bad = .FALSE.
- 200	      CONTINUE
-	      IF ( all_bad ) THEN
-	         res(i,pt,k,l,m,n) = bad_res
-	      ELSE
-	         res(i,pt,k,l,m,n) = sum
-	      ENDIF
- 210	   CONTINUE
-
-* ALONG Z AXIS
-	ELSEIF ( idim .EQ. z_dim ) THEN
-	   DO 310 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
-	   DO 310 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
-	   DO 310 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
-	   DO 310 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	   DO 310 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-              all_bad = .TRUE.
-              sum = 0.0D0
-	      DO 300 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_com ) GOTO 300
-                 sum = sum + com(i,j,k,l,m,n)
-                 all_bad = .FALSE.
- 300	      CONTINUE
-	      IF ( all_bad ) THEN
-	         res(i,j,pt,l,m,n) = bad_res
-	      ELSE
-	         res(i,j,pt,l,m,n) = sum
-	      ENDIF
- 310	   CONTINUE
-
-* ALONG T AXIS
-	ELSEIF ( idim .EQ. t_dim ) THEN
-	   DO 410 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
-	   DO 410 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
-	   DO 410 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
-	   DO 410 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	   DO 410 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-              all_bad = .TRUE.
-              sum = 0.0D0
-	      DO 400 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_com ) GOTO 400
-                 sum = sum + com(i,j,k,l,m,n)
-                 all_bad = .FALSE.
- 400	      CONTINUE
-	      IF ( all_bad ) THEN
-	         res(i,j,k,pt,m,n) = bad_res
-	      ELSE
-	         res(i,j,k,pt,m,n) = sum
-	      ENDIF
- 410	   CONTINUE
-
-* ALONG E AXIS
-	ELSEIF ( idim .EQ. e_dim ) THEN
-	   DO 510 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
-	   DO 510 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
-	   DO 510 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
-	   DO 510 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	   DO 510 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-              all_bad = .TRUE.
-              sum = 0.0D0
-	      DO 500 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_com ) GOTO 500
-                 sum = sum + com(i,j,k,l,m,n)
-                 all_bad = .FALSE.
- 500	      CONTINUE
-	      IF ( all_bad ) THEN
-	         res(i,j,k,l,pt,n) = bad_res
-	      ELSE
-	         res(i,j,k,l,pt,n) = sum
-	      ENDIF
- 510	   CONTINUE
-* ALONG F AXIS
-	ELSEIF ( idim .EQ. f_dim ) THEN
-	   DO 610 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
-	   DO 610 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
-	   DO 610 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
-	   DO 610 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	   DO 610 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-              all_bad = .TRUE.
-              sum = 0.0D0
-	      DO 600 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_com ) GOTO 600
-                 sum = sum + com(i,j,k,l,m,n)
-                 all_bad = .FALSE.
- 600	      CONTINUE
-	      IF ( all_bad ) THEN
-	         res(i,j,k,l,m,pt) = bad_res
-	      ELSE
-	         res(i,j,k,l,m,pt) = sum
-	      ENDIF
- 610	   CONTINUE
-
-	ENDIF
 
 	DO_SUM = ferr_ok
 	RETURN
 	END
-
diff --git a/fer/doo/do_sum.F b/fer/doo/do_sum_sub.F
similarity index 76%
copy from fer/doo/do_sum.F
copy to fer/doo/do_sum_sub.F
index d4d362e..7c07e00 100644
--- a/fer/doo/do_sum.F
+++ b/fer/doo/do_sum_sub.F
@@ -1,7 +1,7 @@
-	INTEGER FUNCTION DO_SUM( idim, arg,
+	SUBROUTINE DO_SUM_SUB(idim, arg,
      .				 com, com_mr, com_cx,
      .				 res, res_mr, res_cx,
-     .				 buff	)
+     .				 counts	)
 
 *
 *
@@ -46,10 +46,13 @@
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 * written for VAX computer under VMS operating system
 
-* V230: 12/91 - based on DO_MAX
-*        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V712 *acm* 12/16 Do the summing for this chunk, saving the count of valid data.
+*                 This routine now performs accumulation only, so do not set
+*                 res to bad_res. Initialization and finalizing called 
+*                 separately from IS_TRANS
+*                 Counts are saved for the finalization step, to distinguish
+*                 between sum of zero and result that indicates all-missing-data.
 
-        IMPLICIT NONE
         include 'tmap_dims.parm'
 	include	'ferret.parm'
 	include	'errmsg.parm'
@@ -61,17 +64,18 @@
 
 * calling argument declarations:
 	INTEGER	idim, com_mr, com_cx, res_mr, res_cx
-	REAL	arg, buff(*),
-     .          com( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
-     .               m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
-     .          res( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
-     .               m2lot:m2hit,m2loe:m2hie,m2lof:m2hif )
+	REAL    arg,
+     .		com     ( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+     .                    m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
+     .          res     ( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
+     .                    m2lot:m2hit,m2loe:m2hie,m2lof:m2hif ),
+     .          counts ( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
+     .                    m2lot:m2hit,m2loe:m2hie,m2lof:m2hif )
+ 
 
 * internal variable declarations:
-        LOGICAL all_bad
 	INTEGER i, j, k, l, m, n, pt
-	REAL	bad_com, bad_res 
-	REAL*8  sum
+	REAL	bad_com, bad_res, sum, ok
 
 * diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
 	IF ( mode_diagnostic ) 	CALL DIAG_OP
@@ -81,7 +85,7 @@
 	pt   = cx_lo_ss( res_cx, idim )
 	bad_com = mr_bad_data( com_mr )
 	bad_res = mr_bad_data( res_mr )
-
+ 
 * ALONG X AXIS
 	IF ( idim .EQ. x_dim ) THEN
 	   DO 110 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
@@ -89,18 +93,16 @@
 	   DO 110 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
 	   DO 110 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	   DO 110 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-              all_bad = .TRUE.
               sum = 0.0D0
+              ok = 0.0D0
+
 	      DO 100 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
 	         IF ( com(i,j,k,l,m,n) .EQ. bad_com ) GOTO 100
                  sum = sum + com(i,j,k,l,m,n)
-                 all_bad = .FALSE.
+                 ok = ok + 1.
  100	      CONTINUE
-	      IF ( all_bad ) THEN
-	         res(pt,j,k,l,m,n) = bad_res
-	      ELSE
-	         res(pt,j,k,l,m,n) = sum
-	      ENDIF
+	      res(pt,j,k,l,m,n) = res(pt,j,k,l,m,n) + sum
+	      counts(pt,j,k,l,m,n) = counts(pt,j,k,l,m,n) + sum
  110	   CONTINUE
 
 * ALONG Y AXIS
@@ -110,18 +112,15 @@
 	   DO 210 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
 	   DO 210 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	   DO 210 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-              all_bad = .TRUE.
               sum = 0.0D0
+              ok = 0.0D0
 	      DO 200 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
 	         IF ( com(i,j,k,l,m,n) .EQ. bad_com ) GOTO 200
                  sum = sum + com(i,j,k,l,m,n)
-                 all_bad = .FALSE.
+                 ok = ok + 1.
  200	      CONTINUE
-	      IF ( all_bad ) THEN
-	         res(i,pt,k,l,m,n) = bad_res
-	      ELSE
-	         res(i,pt,k,l,m,n) = sum
-	      ENDIF
+	      res(i,pt,k,l,m,n) = res(i,pt,k,l,m,n) + sum
+	      counts(i,pt,k,l,m,n) = counts(i,pt,k,l,m,n) + ok
  210	   CONTINUE
 
 * ALONG Z AXIS
@@ -131,18 +130,15 @@
 	   DO 310 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
 	   DO 310 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
 	   DO 310 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-              all_bad = .TRUE.
               sum = 0.0D0
+              ok = 0.0D0
 	      DO 300 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	         IF ( com(i,j,k,l,m,n) .EQ. bad_com ) GOTO 300
                  sum = sum + com(i,j,k,l,m,n)
-                 all_bad = .FALSE.
+                 ok = ok + 1.
  300	      CONTINUE
-	      IF ( all_bad ) THEN
-	         res(i,j,pt,l,m,n) = bad_res
-	      ELSE
-	         res(i,j,pt,l,m,n) = sum
-	      ENDIF
+	      res(i,j,pt,l,m,n) = res(i,j,pt,l,m,n) + sum
+	      counts(i,j,pt,l,m,n) = counts(i,j,pt,l,m,n) + ok
  310	   CONTINUE
 
 * ALONG T AXIS
@@ -152,18 +148,16 @@
 	   DO 410 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	   DO 410 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
 	   DO 410 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-              all_bad = .TRUE.
               sum = 0.0D0
+              ok = 0.0D0
 	      DO 400 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
 	         IF ( com(i,j,k,l,m,n) .EQ. bad_com ) GOTO 400
                  sum = sum + com(i,j,k,l,m,n)
-                 all_bad = .FALSE.
+		 ok = ok + 1.
  400	      CONTINUE
-	      IF ( all_bad ) THEN
-	         res(i,j,k,pt,m,n) = bad_res
-	      ELSE
-	         res(i,j,k,pt,m,n) = sum
-	      ENDIF
+* ... accumulate weighted values and counts
+	      res(i,j,k,pt,m,n) = res(i,j,k,pt,m,n) + sum
+	      counts(i,j,k,pt,m,n) = counts(i,j,k,pt,m,n) + ok
  410	   CONTINUE
 
 * ALONG E AXIS
@@ -173,18 +167,15 @@
 	   DO 510 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	   DO 510 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
 	   DO 510 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-              all_bad = .TRUE.
               sum = 0.0D0
+              ok = 0.0D0
 	      DO 500 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
 	         IF ( com(i,j,k,l,m,n) .EQ. bad_com ) GOTO 500
                  sum = sum + com(i,j,k,l,m,n)
-                 all_bad = .FALSE.
+                 ok = ok + 1.
  500	      CONTINUE
-	      IF ( all_bad ) THEN
-	         res(i,j,k,l,pt,n) = bad_res
-	      ELSE
-	         res(i,j,k,l,pt,n) = sum
-	      ENDIF
+	      res(i,j,k,l,pt,n) = res(i,j,k,l,pt,n) + sum
+	      counts(i,j,k,l,pt,n) = counts(i,j,k,l,pt,n) + ok
  510	   CONTINUE
 * ALONG F AXIS
 	ELSEIF ( idim .EQ. f_dim ) THEN
@@ -193,23 +184,20 @@
 	   DO 610 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	   DO 610 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
 	   DO 610 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-              all_bad = .TRUE.
               sum = 0.0D0
+              ok = 0.0D0
 	      DO 600 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
 	         IF ( com(i,j,k,l,m,n) .EQ. bad_com ) GOTO 600
                  sum = sum + com(i,j,k,l,m,n)
-                 all_bad = .FALSE.
+                 ok = ok + 1.
  600	      CONTINUE
-	      IF ( all_bad ) THEN
-	         res(i,j,k,l,m,pt) = bad_res
-	      ELSE
-	         res(i,j,k,l,m,pt) = sum
-	      ENDIF
+	      res(i,j,k,l,m,pt) = res(i,j,k,l,m,pt) + sum
+	      counts(i,j,k,l,m,pt) = counts(i,j,k,l,m,pt) + ok
  610	   CONTINUE
 
+
 	ENDIF
 
-	DO_SUM = ferr_ok
 	RETURN
 	END
 
diff --git a/fer/doo/do_var_sub.F b/fer/doo/do_var_sub.F
index 1472dd2..01afd3a 100644
--- a/fer/doo/do_var_sub.F
+++ b/fer/doo/do_var_sub.F
@@ -1,7 +1,8 @@
 	SUBROUTINE DO_VAR_SUB(	idim, com_lo, com_hi,
      .				com, com_mr, com_cx,
      .				res, res_mr, res_cx,
-     .				box, stddev )
+     .				box, stddev,
+     .				wsum, s )
 
 *
 *
@@ -38,12 +39,39 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* (what about COSINE weighting along Y axis if in XY plane ??)
 * determine the variance along the indicated axis
 * nested with DO_VARIANCE in order to ease the dimension checking of box
 
-* calculation is done in two passes to accomodate unequal weighting and
-* to increase numerical stability 
+* COSINE weighting not applied because this is a strictly 1D calculation
+* see DO_4D_TRANS for the contrasting multi-dimensional calculation
+
+* calculation is done in a single pass (a change 11/2016)
+* using the algorithm of West (1979) as described succintly in Wikipedia
+* as the "Weighted incremental algorithm" for computing variance
+* see D. H. D. West (1979). Communications of the ACM, 22, 9, 532-535:
+*     Updating Mean and Variance Estimates: An Improved Method
+* Note that the new algorithm may treat the unequal weghting of points
+* differently than the old.  The new is better to be trusted IMHO.
+
+****
+* The algorithm:
+*
+* These initializations already done from IS_TRANS
+*    wSum = 0
+*    mean = 0    ! "res" in this code
+*    S =0
+*
+* This routine performs this loop (see Wikipedia reference)
+* v,w  is the value,weight pair contributed by each grid cell
+*        wSum = wSum + w
+*        meanOld = mean
+*        mean = meanOld + (w / wSum) * (v - meanOld)
+*        S = S + w * (v - meanOld) * (v - mean)
+*	
+* Split/gather memory management may cause this routine to be called many times
+* in the finalize step we will compute
+*    variance = S / wSum
+****
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
@@ -58,6 +86,7 @@
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
 *
 * v687  3/14  *acm* Option to return standard deviation
+* v702 *sh* 11/16 -  mods for trac #2428 - calculation in gathered fragments
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -70,18 +99,21 @@
 * internal variable declarations:
 	LOGICAL stddev
 	INTEGER CGRID_AXIS, i, j, k, l, m, n,
-     .          grid, pt, lo, hi, axis, npt
+     .          grid, pt, lo, hi, axis
 	REAL	BOX_SIZE, bad_com, bad_res
-	REAL*8	TM_WORLD, dsum, bsum, mean, diff
-	REAL*8  x, xmean, xdelta
-
+	REAL*8	TM_WORLD, dsum, bsum
+	REAL*8  w, v, wsum_chunk, mean_chunk, mean_old, s_chunk
 
 * calling argument declarations:
 	INTEGER	idim, com_lo, com_hi, com_mr, com_cx, res_mr, res_cx
-	REAL    com( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
-     .               m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
-     .          res( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
-     .               m2lot:m2hit,m2loe:m2hie,m2lof:m2hif ),
+	REAL    com ( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+     .                m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
+     .          res ( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
+     .                m2lot:m2hit,m2loe:m2hie,m2lof:m2hif ),
+     .          wsum( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
+     .                m2lot:m2hit,m2loe:m2hie,m2lof:m2hif ),
+     .          s   ( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
+     .                m2lot:m2hit,m2loe:m2hie,m2lof:m2hif ),
      .		box( com_lo:com_hi )
 
 * --- end of introductory code ---
@@ -96,13 +128,22 @@
 	bad_res = mr_bad_data( res_mr )
 
 * get and save grid box sizes (weights) just once for efficiency
-* (end boxes may be only partially weighted)
-	box(lo) = TM_WORLD(lo, grid, idim, box_hi_lim)
-     .		- cx_lo_ww(idim,res_cx)
-	DO 100 i = lo+1, hi-1
+	DO 100 i = lo, hi
  100	box(i)  = BOX_SIZE( i, grid, idim )
-	box(hi) = cx_hi_ww(idim,res_cx)
-     .		- TM_WORLD(hi, grid, idim, box_lo_lim)
+* 11/16 ... end boxes may be only partial cells
+	IF  (TM_WORLD(lo, grid, idim, box_lo_lim)
+     .  .LT. cx_lo_ww(idim,res_cx)                ) box(lo) = 
+     .			TM_WORLD(lo, grid, idim, box_hi_lim)
+     .		      - cx_lo_ww(idim,res_cx)
+	IF  (TM_WORLD(hi, grid, idim, box_hi_lim)
+     .  .GT. cx_hi_ww(idim,res_cx)                ) box(hi) =
+     .			cx_hi_ww(idim,res_cx)
+     .		      - TM_WORLD(hi, grid, idim, box_lo_lim)
+
+!	box(lo) = TM_WORLD(lo, grid, idim, box_hi_lim)
+!     .		- cx_lo_ww(idim,res_cx)
+!	box(hi) = cx_hi_ww(idim,res_cx)
+!     .		- TM_WORLD(hi, grid, idim, box_lo_lim)
 
 * ALONG X AXIS
 	IF ( idim .EQ. x_dim ) THEN
@@ -111,49 +152,21 @@
 	   DO 210 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
 	   DO 210 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	   DO 210 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-* ... Pass #1: determine mean
-              npt = 0
-	      dsum = 0.0D0	! data
-	      bsum = 0.0D0	! boxes
-	      DO 200 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_com ) GOTO 200
-	         bsum = bsum + box(i)
-	         dsum = dsum + box(i)*com(i,j,k,l,m,n)
-                 npt = npt + 1
- 200	      CONTINUE
-	      IF ( npt .LE. 1 ) THEN
-	         res(pt,j,k,l,m,n) = bad_res
-                 GOTO 210
-	      ELSE
-                 mean = dsum / bsum
-              ENDIF
-
-* ... Pass #2: determine variance or std dev
-
-* Compute variance. See http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance
-
-* On-line algorithm with mean subtracted first. Noted as the most robust.
-* Since we always compute the mean first anyway, use it.
-
-	      npt = 0
-              xmean = 0.D0
-              dsum = 0.D0
-              DO 205 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-	         x = com(i,j,k,l,m,n)
-                 IF ( x .NE. bad_com ) THEN
-                    npt = npt + 1
-		    x = x - mean
-                    xdelta = x - xmean
-                    xmean = xmean + xdelta/ FLOAT(npt)
-                    dsum = dsum + xdelta*(x - xmean)  ! This expression uses the new value of mean
-                  ENDIF
- 205          CONTINUE
-* because of checking above, npt .GT. 1
-	      IF (stddev) THEN
-                 res(pt,j,k,l,m,n) = SQRT( dsum / FLOAT(npt) )
-	      ELSE
-                 res(pt,j,k,l,m,n) = dsum / FLOAT(npt)
-	      ENDIF
+	      wsum_chunk = wsum(pt,j,k,l,m,n)
+	      mean_chunk = res (pt,j,k,l,m,n)
+	      s_chunk    = s   (pt,j,k,l,m,n)
+	      DO i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
+	         v = com(i,j,k,l,m,n)
+	         IF ( v .EQ. bad_com ) CYCLE
+	         w = box(i)
+	         wsum_chunk = wsum_chunk + w
+	         mean_old = mean_chunk
+	         mean_chunk = mean_old + (w/wsum_chunk)*(v-mean_old)
+	         s_chunk = s_chunk + w * (v-mean_old)*(v-mean_chunk)
+	      ENDDO
+	      wsum(pt,j,k,l,m,n) = wsum_chunk
+	      res (pt,j,k,l,m,n) = mean_chunk
+	      s   (pt,j,k,l,m,n) = s_chunk
  210	   CONTINUE
 
 * ALONG Y AXIS
@@ -164,49 +177,21 @@
 	   DO 310 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
 	   DO 310 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	   DO 310 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-* ... Pass #1: determine mean
-              npt = 0
-	      dsum = 0.0D0	! data
-	      bsum = 0.0D0	! boxes
-	      DO 300 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_com ) GOTO 300
-	         bsum = bsum + box(j)
-	         dsum = dsum + box(j)*com(i,j,k,l,m,n)
-                 npt = npt + 1
- 300	      CONTINUE
-	      IF ( npt .LE. 1 ) THEN
-	         res(i,pt,k,l,m,n) = bad_res
-                 GOTO 310
-	      ELSE
-                 mean = dsum / bsum
-              ENDIF
-
-* ... Pass #2: determine variance or std dev
-
-* Compute variance. See http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance
-
-* On-line algorithm with mean subtracted first. Noted as the most robust.
-* Since we always compute the mean first anyway, use it.
-
-	      npt = 0
-              xmean = 0.D0
-              dsum = 0.D0
-              DO 305 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
-	         x = com(i,j,k,l,m,n)
-                 IF ( x .NE. bad_com ) THEN
-	            npt = npt + 1
-		    x = x - mean
-                    xdelta = x - xmean
-                    xmean = xmean + xdelta/ FLOAT(npt)
-                    dsum = dsum + xdelta*(x - xmean)  ! This expression uses the new value of mean
-                  ENDIF
- 305          CONTINUE
-* because of checking above, npt .GT. 1
-	      IF (stddev) THEN
-                 res(i,pt,k,l,m,n)  = SQRT( dsum / FLOAT(npt) )
-	      ELSE
-                 res(i,pt,k,l,m,n) = dsum / FLOAT(npt)
-	      ENDIF
+	      wsum_chunk = wsum(i,pt,k,l,m,n)
+	      mean_chunk = res (i,pt,k,l,m,n)
+	      s_chunk    = s   (i,pt,k,l,m,n)
+	      DO j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
+	         v = com(i,j,k,l,m,n)
+	         IF ( v .EQ. bad_com ) CYCLE
+	         w = box(2)
+	         wsum_chunk = wsum_chunk + w
+	         mean_old = mean_chunk
+	         mean_chunk = mean_old + (w/wsum_chunk)*(v-mean_old)
+	         s_chunk = s_chunk + w * (v-mean_old)*(v-mean_chunk)
+	      ENDDO
+	      wsum(i,pt,k,l,m,n) = wsum_chunk
+	      res (i,pt,k,l,m,n) = mean_chunk
+	      s   (i,pt,k,l,m,n) = s_chunk
  310	   CONTINUE
 
 
@@ -217,49 +202,21 @@
 	   DO 410 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
 	   DO 410 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
 	   DO 410 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-* ... Pass #1: determine mean
-              npt = 0
-	      dsum = 0.0D0	! data
-	      bsum = 0.0D0	! boxes
-	      DO 400 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_com ) GOTO 400
-	         bsum = bsum + box(k)
-	         dsum = dsum + box(k)*com(i,j,k,l,m,n)
-                 npt = npt + 1
- 400	      CONTINUE
-	      IF ( npt .LE. 1 ) THEN
-	         res(i,j,pt,l,m,n) = bad_res
-                 GOTO 410
-	      ELSE
-                 mean = dsum / bsum
-              ENDIF
-
-* ... Pass #2: determine variance or std dev
-
-* Compute variance. See http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance
-
-* On-line algorithm with mean subtracted first. Noted as the most robust.
-* Since we always compute the mean first anyway, use it.
-
-	      npt = 0
-              xmean = 0.D0
-              dsum = 0.D0
-	      DO 405 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
-	         x = com(i,j,k,l,m,n)
-                 IF ( x .NE. bad_com ) THEN
-	            npt = npt + 1
-		    x = x - mean
-                    xdelta = x - xmean
-                    xmean = xmean + xdelta/ FLOAT(npt)
-                    dsum = dsum + xdelta*(x - xmean)  ! This expression uses the new value of mean
-                  ENDIF
- 405          CONTINUE
-* because of checking above, npt .GT. 1
-	      IF (stddev) THEN
-                 res(i,j,pt,l,m,n)  = SQRT( dsum / FLOAT(npt) )
-	      ELSE
-                 res(i,j,pt,l,m,n) = dsum / FLOAT(npt)
-	      ENDIF
+	      wsum_chunk = wsum(i,j,pt,l,m,n)
+	      mean_chunk = res (i,j,pt,l,m,n)
+	      s_chunk    = s   (i,j,pt,l,m,n)
+	      DO k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
+	         v = com(i,j,k,l,m,n)
+	         IF ( v .EQ. bad_com ) CYCLE
+	         w = box(k)
+	         wsum_chunk = wsum_chunk + w
+	         mean_old = mean_chunk
+	         mean_chunk = mean_old + (w/wsum_chunk)*(v-mean_old)
+	         s_chunk = s_chunk + w * (v-mean_old)*(v-mean_chunk)
+	      ENDDO
+	      wsum(i,j,pt,l,m,n) = wsum_chunk
+	      res (i,j,pt,l,m,n) = mean_chunk
+	      s   (i,j,pt,l,m,n) = s_chunk
  410	   CONTINUE
 
 * ALONG T AXIS
@@ -269,49 +226,22 @@
 	   DO 510 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	   DO 510 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
 	   DO 510 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-* ... Pass #1: determine mean
-              npt = 0
-	      dsum = 0.0D0	! data
-	      bsum = 0.0D0	! boxes
-	      DO 500 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_com ) GOTO 500
-	         bsum = bsum + box(l)
-	         dsum = dsum + box(l)*com(i,j,k,l,m,n)
-                 npt = npt + 1
- 500	      CONTINUE
-	      IF ( npt .LE. 1 ) THEN
-	         res(i,j,k,pt,m,n) = bad_res
-                 GOTO 510
-	      ELSE
-                 mean = dsum / bsum
-              ENDIF
-
-* ... Pass #2: determine variance or std dev
 
-* Compute variance. See http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance
-
-* On-line algorithm with mean subtracted first. Noted as the most robust.
-* Since we always compute the mean first anyway, use it.
-
-	      npt = 0
-              xmean = 0.D0
-              dsum = 0.D0
-	      DO 505 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
-	         x = com(i,j,k,l,m,n)
-                 IF ( x .NE. bad_com ) THEN
-		    npt = npt + 1
-		    x = x - mean
-                    xdelta = x - xmean
-                    xmean = xmean + xdelta/ FLOAT(npt)
-                    dsum = dsum + xdelta*(x - xmean)  ! This expression uses the new value of mean
-                  ENDIF
- 505          CONTINUE
-* because of checking above, npt .GT. 1
-	      IF (stddev) THEN
-                 res(i,j,k,pt,m,n)  = SQRT( dsum / FLOAT(npt) )
-	      ELSE
-                 res(i,j,k,pt,m,n) = dsum / FLOAT(npt)
-	      ENDIF
+	      wsum_chunk = wsum(i,j,k,pt,m,n)
+	      mean_chunk = res (i,j,k,pt,m,n)
+	      s_chunk    = s   (i,j,k,pt,m,n)
+	      DO l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
+	         v = com(i,j,k,l,m,n)
+	         IF ( v .EQ. bad_com ) CYCLE
+	         w = box(l)
+	         wsum_chunk = wsum_chunk + w
+	         mean_old = mean_chunk
+	         mean_chunk = mean_old + (w/wsum_chunk)*(v-mean_old)
+	         s_chunk = s_chunk + w * (v-mean_old)*(v-mean_chunk)
+	      ENDDO
+	      wsum(i,j,k,pt,m,n) = wsum_chunk
+	      res (i,j,k,pt,m,n) = mean_chunk
+	      s   (i,j,k,pt,m,n) = s_chunk
  510	   CONTINUE
 
 * ALONG E AXIS
@@ -321,49 +251,21 @@
 	   DO 610 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	   DO 610 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
 	   DO 610 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-* ... Pass #1: determine mean
-              npt = 0
-	      dsum = 0.0D0	! data
-	      bsum = 0.0D0	! boxes
-	      DO 600 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_com ) GOTO 600
-	         bsum = bsum + box(m)
-	         dsum = dsum + box(m)*com(i,j,k,l,m,n)
-                 npt = npt + 1
- 600	      CONTINUE
-	      IF ( npt .LE. 1 ) THEN
-	         res(i,j,k,l,pt,n) = bad_res
-                 GOTO 610
-	      ELSE
-                 mean = dsum / bsum
-              ENDIF
-
-* ... Pass #2: determine variance or std dev
-
-* Compute variance. See http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance
-
-* On-line algorithm with mean subtracted first. Noted as the most robust.
-* Since we always compute the mean first anyway, use it.
-
-	      npt = 0
-              xmean = 0.D0
-              dsum = 0.D0
-	      DO 605 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
-	         x = com(i,j,k,l,m,n)
-                 IF ( x .NE. bad_com ) THEN
-		    npt = npt + 1
-		    x = x - mean
-                    xdelta = x - xmean
-                    xmean = xmean + xdelta/ FLOAT(npt)
-                    dsum = dsum + xdelta*(x - xmean)  ! This expression uses the new value of mean
-                  ENDIF
- 605          CONTINUE
-* because of checking above, npt .GT. 1
-	      IF (stddev) THEN
-                 res(i,j,k,l,pt,n)  = SQRT( dsum / FLOAT(npt) )
-	      ELSE
-                 res(i,j,k,l,pt,n) = dsum / FLOAT(npt)
-	      ENDIF
+	      wsum_chunk = wsum(i,j,k,l,pt,n)
+	      mean_chunk = res (i,j,k,l,pt,n)
+	      s_chunk    = s   (i,j,k,l,pt,n)
+	      DO m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
+	         v = com(i,j,k,l,m,n)
+	         IF ( v .EQ. bad_com ) CYCLE
+	         w = box(m)
+	         wsum_chunk = wsum_chunk + w
+	         mean_old = mean_chunk
+	         mean_chunk = mean_old + (w/wsum_chunk)*(v-mean_old)
+	         s_chunk = s_chunk + w * (v-mean_old)*(v-mean_chunk)
+	      ENDDO
+	      wsum(i,j,k,l,pt,n) = wsum_chunk
+	      res (i,j,k,l,pt,n) = mean_chunk
+	      s   (i,j,k,l,pt,n) = s_chunk
  610	   CONTINUE
 
 * ALONG F AXIS
@@ -373,49 +275,21 @@
 	   DO 710 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
 	   DO 710 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
 	   DO 710 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
-* ... Pass #1: determine mean
-              npt = 0
-	      dsum = 0.0D0	! data
-	      bsum = 0.0D0	! boxes
-	      DO 700 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
-	         IF ( com(i,j,k,l,m,n) .EQ. bad_com ) GOTO 700
-	         bsum = bsum + box(n)
-	         dsum = dsum + box(n)*com(i,j,k,l,m,n)
-                 npt = npt + 1
- 700	      CONTINUE
-	      IF ( npt .LE. 1 ) THEN
-	         res(i,j,k,l,m,pt) = bad_res
-                 GOTO 710
-	      ELSE
-                 mean = dsum / bsum
-              ENDIF
-
-* ... Pass #2: determine variance or std dev
-
-* Compute variance. See http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance
-
-* On-line algorithm with mean subtracted first. Noted as the most robust.
-* Since we always compute the mean first anyway, use it.
-
-	      npt = 0
-              xmean = 0.D0
-              dsum = 0.D0
-	      DO 705 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
-	         x = com(i,j,k,l,m,n)
-                 IF ( x .NE. bad_com ) THEN
-		    npt = npt + 1
-		    x = x - mean
-                    xdelta = x - xmean
-                    xmean = xmean + xdelta/ FLOAT(npt)
-                    dsum = dsum + xdelta*(x - xmean)  ! This expression uses the new value of mean
-                  ENDIF
- 705          CONTINUE
-* because of checking above, npt .GT. 1
-	      IF (stddev) THEN
-                 res(i,j,k,l,m,pt) = SQRT( dsum / FLOAT(npt) )
-	      ELSE
-                 res(i,j,k,l,m,pt) = dsum / FLOAT(npt)
-	      ENDIF
+	      wsum_chunk = wsum(i,j,k,l,m,pt)
+	      mean_chunk = res (i,j,k,l,m,pt)
+	      s_chunk    = s   (i,j,k,l,m,pt)
+	      DO n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
+	         v = com(i,j,k,l,m,n)
+	         IF ( v .EQ. bad_com ) CYCLE
+	         w = box(n)
+	         wsum_chunk = wsum_chunk + w
+	         mean_old = mean_chunk
+	         mean_chunk = mean_old + (w/wsum_chunk)*(v-mean_old)
+	         s_chunk = s_chunk + w * (v-mean_old)*(v-mean_chunk)
+	      ENDDO
+	      wsum(i,j,k,l,m,pt) = wsum_chunk
+	      res (i,j,k,l,m,pt) = mean_chunk
+	      s   (i,j,k,l,m,pt) = s_chunk
  710	   CONTINUE
 
 	ENDIF
diff --git a/fer/doo/do_variance.F b/fer/doo/do_variance.F
index 992ce8f..5bc9359 100644
--- a/fer/doo/do_variance.F
+++ b/fer/doo/do_variance.F
@@ -46,6 +46,8 @@
 *
 * V230:  3/2/92
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 *sh* 11/16 mods for trac #2428 - calculation in gathered fragments
+*                 pass address of buffer area, where weights are accumulated
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -61,6 +63,8 @@
 
 * internal variable declarations:
 	LOGICAL stddev
+	INTEGER CGRID_SIZE, size
+
 
 	stddev = .FALSE.
 
@@ -69,11 +73,15 @@
 	IF ( mode_diagnostic ) 	CALL DIAG_OP
      .				( 'doing', isact_class_trans, res_cx, idim )
 
+* get size of result array to locate buffer areas just beyond
+	size = CGRID_SIZE(res_cx)
+
 	CALL DO_VAR_SUB( idim,
      .			 cx_lo_ss(com_cx,idim), cx_hi_ss(com_cx,idim),
      .			 com, com_mr, com_cx,
      .			 res, res_mr, res_cx,
-     .			 box, stddev )
+     .			 box, stddev,
+     .			 res(size+1),res(2*size+1) )
 
 	DO_VARIANCE = ferr_ok
 
diff --git a/fer/doo/do_wgt.F b/fer/doo/do_wgt.F
index b397c70..499c107 100644
--- a/fer/doo/do_wgt.F
+++ b/fer/doo/do_wgt.F
@@ -46,6 +46,7 @@
 * 7/2014
 *
 * V692 7/14 *acm* new transform @WGT, ticket 2180
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -60,7 +61,8 @@
 	external xgt_grid_data
 
 * internal variable declarations:
-	LOGICAL	GEOG_COS_FACTOR, need_cos, integrate, point
+	LOGICAL	GEOG_COS_FACTOR, ITSA_TRUEMONTH_AXIS, 
+     .          need_cos, integrate, point
 	INTEGER i, j, k, l, m, n, grid, lo, hi, axis
 	REAL	BOX_SIZE, unit, bad_com, bad_res, cos_factor,
      .          ybxlo, ybxhi, yh
@@ -103,6 +105,7 @@
 * perform integrations on standard units if possible
 	
 	unit = un_convert( line_unit_code(axis) )
+	IF (ITSA_TRUEMONTH_AXIS(axis)) unit = un_convert(pun_day)
 	IF (unit .NE. 1.) THEN
 	   DO 110 i = lo, hi
  110       box(i) = box(i) * unit
diff --git a/fer/doo/do_xylin_regrid.F b/fer/doo/do_xylin_regrid.F
index 45447dd..9d2ee8b 100644
--- a/fer/doo/do_xylin_regrid.F
+++ b/fer/doo/do_xylin_regrid.F
@@ -48,6 +48,13 @@
 *                    The XY linear regridding matches past Ferret behavior, 
 *                    not using bilinear regridding for now
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 *sh* 3/2017 Dynamic memory revealed a bug in work array sizes
+*  NOTE!!:  The logic for providing work arrays to this routine and its cousins
+*           is a legacy of the bad-old days when there was only a single work
+*           array.  Various starting indices into that array were passed
+*           to XYLIN_REGRID as distinct work arrays.  Now that we have true
+*           dynamic memory we could simplify this code by allocating 5 separate
+*	    work arrays.  Or not ...
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -63,6 +70,7 @@
      .			   cx_lo_ss(cx_lims,x_dim), cx_hi_ss(cx_lims,x_dim),
      .			   cx_lo_ss(cx_lims,y_dim), cx_hi_ss(cx_lims,y_dim),
      .			   src, msrc, dst, mdst, src_cx, dst_cx, 
+     .			   cx_lo_ss(src_cx, x_dim), cx_hi_ss(src_cx, x_dim),
      .                     work(1), work(iwork2), work(iwork3), work(iwork4),
      .                     work(iwork5) )
 
diff --git a/fer/doo/do_4d_ave.F b/fer/doo/finalize_ave_int.F
similarity index 68%
copy from fer/doo/do_4d_ave.F
copy to fer/doo/finalize_ave_int.F
index 4e20f2e..6bbf483 100644
--- a/fer/doo/do_4d_ave.F
+++ b/fer/doo/finalize_ave_int.F
@@ -1,10 +1,7 @@
-	INTEGER FUNCTION DO_4D_AVE(	idim, arg,
-     .					com, com_mr, com_cx,
-     .					res, res_mr, res_cx,
-     .					boxes	)
+	SUBROUTINE FINALIZE_AVE_INT( trans, size,
+     .				     res_mr, res, weights )
 
 *
-*
 *  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),
@@ -38,39 +35,53 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* call DO_4D_TRANS with the appropriate transformation
+* finalize the result of average or definite integral based up accumulated
+* WIGHTED_SUM(values) and SUM(weights)
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-
-* V430: 7/96
-*        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+*
+* V702 *sh* 11/16 this routine performs the finalization step that was
+*		  previously a part of DO_AVE_INT
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
 	include	'ferret.parm'
-	include	'errmsg.parm'
 	include	'interp_stack.parm'
-	include	'xprog_state.cmn'
+!	include	'xcontext.cmn'
+	include	'xvariables.cmn'
+!	include	'xmem_subsc.cmn'
+!	include 'xunits.cmn_text'
+!	external xunits_data
+!	include 'xtm_grid.cmn_text'
+!	external xgt_grid_data
 
 * calling argument declarations:
-	INTEGER	idim, com_mr, com_cx, res_mr, res_cx
-	REAL	arg, com(*), res(*), boxes(*)
+	INTEGER	trans, size, res_mr
+	REAL    res(size), weights(size)
 
 * internal variable declarations:
-	INTEGER	CX_DIM_LEN
+	LOGICAL	average
+	INTEGER	i
+	REAL	bad_res
 
-* diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
-	IF ( mode_diagnostic ) 	CALL DIAG_OP
-     .				( 'doing', isact_class_trans, res_cx, idim )
+* --- end of introductory code ---
 
-* pass the transform to be performed
-	CALL DO_4D_TRANS(   trans_4d_ave,
-     .			    com, com_mr, com_cx,
-     .			    res, res_mr, res_cx,
-     .			    boxes )
+* initialize
+	average = trans .EQ. trans_average
+     .       .OR. trans .EQ. trans_4d_ave
+	bad_res = mr_bad_data( res_mr )
 
-	DO_4D_AVE = ferr_ok
+* 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
+	      res(i) = bad_res			! no input values to average
+	   ELSEIF (average) THEN
+	      res(i) = res(i)/weights(i)	! average
+	   ENDIF
+	ENDDO
 
 	RETURN
 	END
diff --git a/fer/mem/fill_memory.F b/fer/doo/finalize_sums_counts.F
similarity index 75%
copy from fer/mem/fill_memory.F
copy to fer/doo/finalize_sums_counts.F
index 3b277a8..0d8735f 100644
--- a/fer/mem/fill_memory.F
+++ b/fer/doo/finalize_sums_counts.F
@@ -1,7 +1,7 @@
-	SUBROUTINE FILL_MEMORY ( memory, start_block, num_blocks, fill_word )
+	SUBROUTINE FINALIZE_SUMS_COUNTS( trans, size,
+     .				     res_mr, res, counts )
 
 *
-*
 *  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),
@@ -35,32 +35,41 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* fill a memory region with the specified value
+* finalize the result of Sums or Counts (NGD, NBD).
 
-* programmer - steve hankin
+* programmer - Ansley Manke
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
 *
-* revision 0.0 - 4/23/86
-*        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V71 *acm* 12/16 this routine performs the finalization step that was
+*		  previously a part of DO_SUM, DO_MIN, DO_MAX, DO_NGOOD, etc.
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
 	include	'ferret.parm'
+	include	'interp_stack.parm'
 	include	'xvariables.cmn'
 
 * calling argument declarations:
-	INTEGER	start_block, num_blocks
-	REAL	memory( mem_blk_size, max_mem_blks )
-	REAL	fill_word
+	INTEGER	trans, size, res_mr
+	REAL    res(size), counts(size)
 
 * internal variable declarations:
-	INTEGER	iword, iblock
+	INTEGER	i
+	REAL	bad_res
+
+* --- end of introductory code ---
+
+* initialize
+	bad_res = mr_bad_data( res_mr )
 
-	DO 100 iblock = start_block, start_block+num_blocks-1
-	DO 100 iword  = 1, mem_blk_size
- 100	memory( iword, iblock ) = fill_word
+* res(i) already contains the accumulated sum or count.
+* counts(i) contains the number of valid data.
+
+	DO i = 1, size
+	   IF (counts(i) .EQ. 0.0D0) THEN
+	      res(i) = bad_res			! no valid input values 
+	   ENDIF
+	ENDDO
 
 	RETURN
 	END
-
diff --git a/fer/doo/do_4d_ave.F b/fer/doo/finalize_variance.F
similarity index 68%
copy from fer/doo/do_4d_ave.F
copy to fer/doo/finalize_variance.F
index 4e20f2e..4ed9fca 100644
--- a/fer/doo/do_4d_ave.F
+++ b/fer/doo/finalize_variance.F
@@ -1,10 +1,7 @@
-	INTEGER FUNCTION DO_4D_AVE(	idim, arg,
-     .					com, com_mr, com_cx,
-     .					res, res_mr, res_cx,
-     .					boxes	)
+	SUBROUTINE FINALIZE_VARIANCE( trans, size,
+     .				      res_mr, res, wsum, s )
 
 *
-*
 *  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),
@@ -38,39 +35,53 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* call DO_4D_TRANS with the appropriate transformation
+* finalize the result of average or definite integral based up accumulated
+* WIGHTED_SUM(values) and SUM(weights)
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-
-* V430: 7/96
-*        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+*
+* V702 *sh* 11/16 this routine performs the finalization step that was
+*		  previously a part of DO_VAR_SUB
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
 	include	'ferret.parm'
-	include	'errmsg.parm'
 	include	'interp_stack.parm'
-	include	'xprog_state.cmn'
+!	include	'xcontext.cmn'
+	include	'xvariables.cmn'
+!	include	'xmem_subsc.cmn'
+!	include 'xunits.cmn_text'
+!	external xunits_data
+!	include 'xtm_grid.cmn_text'
+!	external xgt_grid_data
 
 * calling argument declarations:
-	INTEGER	idim, com_mr, com_cx, res_mr, res_cx
-	REAL	arg, com(*), res(*), boxes(*)
+	INTEGER	trans, size, res_mr
+	REAL    res(size), wsum(size), s(size)
 
 * internal variable declarations:
-	INTEGER	CX_DIM_LEN
+	LOGICAL	variance
+	INTEGER	i
+	REAL	bad_res
 
-* diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
-	IF ( mode_diagnostic ) 	CALL DIAG_OP
-     .				( 'doing', isact_class_trans, res_cx, idim )
+* --- end of introductory code ---
 
-* pass the transform to be performed
-	CALL DO_4D_TRANS(   trans_4d_ave,
-     .			    com, com_mr, com_cx,
-     .			    res, res_mr, res_cx,
-     .			    boxes )
+* initialize
+	variance = trans .EQ. trans_variance
+     .        .OR. trans .EQ. trans_4d_var
+	bad_res = mr_bad_data( res_mr )
 
-	DO_4D_AVE = ferr_ok
+* finalize (luv it!)
+	DO i = 1, size
+	   IF (wsum(i) .EQ. 0.0D0) THEN
+	      res(i) = bad_res			! no input values
+	   ELSEIF (variance) THEN
+	      res(i) = s(i)/wsum(i)		! variance
+	   ELSE
+	      res(i) = SQRT(s(i)/wsum(i))	! standard deviation
+	   ENDIF
+	ENDDO
 
 	RETURN
 	END
diff --git a/fer/stk/is_constant.F b/fer/doo/trans_finalize.F
similarity index 54%
copy from fer/stk/is_constant.F
copy to fer/doo/trans_finalize.F
index 7abd025..e365975 100644
--- a/fer/stk/is_constant.F
+++ b/fer/doo/trans_finalize.F
@@ -1,7 +1,6 @@
-	SUBROUTINE IS_CONSTANT( memory, *, status )
+	SUBROUTINE TRANS_FINALIZE( idim, arg,
+     .				   res, res_mr, res_cx )
 
-*
-*
 *  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),
@@ -35,59 +34,79 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* create a constant value "variable" in memory
+* finalize a transform that contains accumulated values
+* e.g. average =  WIGHTED_SUM(values) divided by SUM(weights)
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
 *
-* revision 0.0 - 7/28/87
-* revision 0.1 - 6/23/88 - set bad data flag to -2.1E34 so -1.E34 is valid
-* V200:  6/26/89 - just a single value
-*	11/30/89 - added diagnostic output
-* V312: 5/94 - array "memory" as a calling argument
-* V554  1/04 - *acm* remove VAX common statements.
-*       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
- 
+* V702 11/16 *sh* for enhancement ticket 2428: split/gather on compressed axes
+
+
+* calling argument declarations:
+	INTEGER	idim, res_mr, res_cx
+	REAL	arg, res(*)
+
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
 	include	'errmsg.parm'
-	include	'interp_stack.parm'
-	include	'xvariables.cmn'
+	include 'interp_stack.parm'
 	include	'xcontext.cmn'
 	include	'xprog_state.cmn'
 
-* calling argument declarations:
-	INTEGER	status
-	REAL	memory( mem_blk_size, max_mem_blks )
-
 * internal variable declarations:
-	INTEGER	mr, cx
+	INTEGER	trans
+	INTEGER CGRID_SIZE, size
 
-* equivalences
-	REAL	cx_value( max_cx )
-	EQUIVALENCE ( cx_variable, cx_value )
 
-* --- end of introductory code ---
-* initialize
-	cx = is_cx( isp )
+* initiailize
+	trans = cx_trans( idim, res_cx )
+	size = CGRID_SIZE(res_cx)
+
+	IF ( trans .EQ. trans_average
+     .  .OR. trans .EQ. trans_4d_ave   
+     .  .OR. trans .EQ. trans_integ_def
+     .  .OR. trans .EQ. trans_4d_int_def  ) THEN
+* ... diagnostic mode output: " final --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
+	   IF ( mode_diagnostic ) CALL DIAG_OP
+     .			( 'final', isact_class_trans, res_cx, idim )
+	   CALL FINALIZE_AVE_INT(trans, size,
+     .			         res_mr, res, res(size+1) )
+
+	ELSEIF ( trans .EQ. trans_sum
+     .      .OR. trans .EQ. trans_4d_sum
+     .      .OR. trans .EQ. trans_max
+     .      .OR. trans .EQ. trans_min   ) THEN
+
+	   CALL FINALIZE_SUMS_COUNTS(trans, size,
+     .			         res_mr, res, res(size+1) )
+
+	ELSEIF ( trans .EQ. trans_variance
+     .      .OR. trans .EQ. trans_4d_var
+     .	    .OR. trans .EQ. trans_std_dev
+     .      .OR. trans .EQ. trans_4d_std ) THEN
+
+	   IF ( mode_diagnostic ) CALL DIAG_OP
+     .			( 'final', isact_class_trans, res_cx, idim )
+	   CALL FINALIZE_VARIANCE(trans, size,
+     .			          res_mr, res, res(size+1), res(2*size+1) )
+
+
+	ELSE
+ 
+* trans_good_pt, trans_4d_good_pt, trans_bad_pt, trans_4d_bad_pt are simple 
+* counts, and do not need a finalization step.
 
-* reserve and catalog space for the result
-	CALL CREATE_TEMP_MEM_VAR( cx, mr, status )
-	IF ( status .NE. ferr_ok ) GOTO 5000
-	is_mr( isp ) = mr
+* all other transformations do not require initialization
+*      trans_locate - potentially could, but would need added machinery during
+*                     split gather since it is locating a result that lies
+*                     *between* two points
 
-* diagnostic output
-	IF (mode_diagnostic) CALL DIAGNOSTIC_OUT('constan',mr,point_to_mr)
 
-* insert the constant
-	memory( 1, mr_blk1(mr) ) = cx_value(cx)
+	   CONTINUE   ! TBD
 
-* set the bad data flag to an unusual number
-	mr_bad_data( mr ) = -2.1E34
+	ENDIF
 
-	RETURN 1
+	RETURN
 
-* error exit
- 5000	RETURN
-	END	
+	END
diff --git a/fer/doo/xylin_regrid.F b/fer/doo/xylin_regrid.F
index 6d42dfa..bd237e4 100644
--- a/fer/doo/xylin_regrid.F
+++ b/fer/doo/xylin_regrid.F
@@ -1,6 +1,7 @@
 	SUBROUTINE XYLIN_REGRID( cx_lims,
      .				 dst_lox, dst_hix, dst_loy, dst_hiy,
      .				 src, msrc, dst, mdst, src_cx, dst_cx, 
+     .			         isrc_lo, isrc_hi,
      .			         iss12, coefi, jss12, coefj, work)
 
 *
@@ -66,6 +67,10 @@
 * V68  *acm* 1/12   use TM_FPEQ for double-precision ferret.
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm);
 *                   removed unused bilinear interpolation code.
+* V702 *sh* 3/2017 Dynamic memory revealed a bug in array "work" dimensioning
+*		   It was dimensioned using the mr size instead of the cx
+*		   which is wrong when a larger object is re-used from cache
+*                  To address it we turned isrc_lo, isrc_hi into call arguments
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -76,7 +81,8 @@
 
 * calling argument declarations:
 	INTEGER	cx_lims, msrc, mdst, dst_lox, dst_hix,
-     .          dst_loy, dst_hiy, src_cx, dst_cx 
+     .          dst_loy, dst_hiy, src_cx, dst_cx,
+     .	        isrc_lo, isrc_hi 
 	INTEGER	iss12(dst_lox:dst_hix+1), jss12(dst_loy:dst_hiy+1)
 
 	REAL    src( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
@@ -84,17 +90,17 @@
      .          dst( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
      .               m2lot:m2hit,m2loe:m2hie,m2lof:m2hif ),
      .		coefi( dst_lox:dst_hix ), coefj(dst_loy:dst_hiy)
+        REAL    work(isrc_lo:isrc_hi,dst_loy:dst_hiy)  ! srcx by dsty
 
 * local variable declarations:
 
         LOGICAL	TM_FPEQ
 	INTEGER	dim1, dim2, src_grid, dst_grid,
      .          i, j, k, l, m, n, iss, jss,
-     .          isrc_lo, isrc_hi, jsrc_lo, jsrc_hi,
+     .                            jsrc_lo, jsrc_hi,
      .          idst_lo ,idst_hi, jdst_lo, jdst_hi
 	REAL	bad_src, bad_dst, c1i, c1j, c2i, c2j, 
      .          z1, z2
-        REAL work(m1lox:m1hix,dst_loy:dst_hiy)  ! srcx by dsty
 ********************************************************************************
 
 * initialize
@@ -106,8 +112,8 @@
 	dim2     = y_dim
 
 * limits for calculation
-        isrc_lo = cx_lo_ss(src_cx,dim1)
-        isrc_hi = cx_hi_ss(src_cx,dim1)
+!        isrc_lo = cx_lo_ss(src_cx,dim1)	! 3/17 passed as arg
+!        isrc_hi = cx_hi_ss(src_cx,dim1)	! 3/17 passed as arg
         jsrc_lo = cx_lo_ss(src_cx,dim2)
         jsrc_hi = cx_hi_ss(src_cx,dim2)
 
diff --git a/fer/ef_utility/ef_get_date_tstep.F b/fer/ef_utility/ef_get_date_tstep.F
index 0ccad61..51b4abe 100644
--- a/fer/ef_utility/ef_get_date_tstep.F
+++ b/fer/ef_utility/ef_get_date_tstep.F
@@ -40,6 +40,7 @@
 * This is an older version of TSTEP_TO_DATE which was revised for better
 * output formatting in Ferret v6.0.  This version gives a fixed unchanging
 * format.
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 *
 * Arguments:
 *	grid	 - grid containing a time axis
@@ -55,6 +56,7 @@
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
 	include 'ferret.parm'
+        include 'xunits.cmn_text'
 	include 'xtext_info.cmn'
 
 * calling argument declarations
@@ -63,7 +65,7 @@
 	REAL*8		tstep
 *
 * Local definitions
-	LOGICAL		modulo
+        LOGICAL         ITSA_TRUEMONTH_AXIS, modulo
 	CHARACTER*20	SECS_TO_DATE, SECS_TO_DATE_OUT, buff
 	CHARACTER*2     linedir
 	INTEGER		axis, status, prec,
@@ -110,6 +112,7 @@
 
 * Find the number of seconds since start of data set for this time step
 	offset_secs = tstep*line_tunit( axis )
+	IF (ITSA_TRUEMONTH_AXIS(axis)) offset_secs = tstep* un_convert(pun_day)  
 
 * Total seconds to this time step since 01-JAN-0000 00:00:00
 	this_secs = start_secs + offset_secs
diff --git a/fer/ef_utility/ef_get_one_val.c b/fer/ef_utility/ef_get_one_val.c
index 0e55b5e..5997409 100644
--- a/fer/ef_utility/ef_get_one_val.c
+++ b/fer/ef_utility/ef_get_one_val.c
@@ -2,8 +2,13 @@
 #include <Python.h>
 #include "EF_Util.h"
 
+/*
+ *sh 1/17 -- with dynamic memory management in Ferret this routine now
+    does nothing.  It could be removed, and the FORTRAN routine 
+    ef_get_one_val_sub could be renamed as ef_get_one_val
+*/
 void FORTRAN(ef_get_one_val)(int *id_ptr, int *arg_ptr, DFTYPE *val_ptr)
 {
-  FORTRAN(ef_get_one_val_sub)(id_ptr, GLOBAL_memory_ptr, arg_ptr, val_ptr);
+  FORTRAN(ef_get_one_val_sub)(id_ptr, arg_ptr, val_ptr);
 }
 
diff --git a/fer/ef_utility/ef_get_one_val_sub.F b/fer/ef_utility/ef_get_one_val_sub.F
index d8cb142..c20d177 100644
--- a/fer/ef_utility/ef_get_one_val_sub.F
+++ b/fer/ef_utility/ef_get_one_val_sub.F
@@ -50,7 +50,7 @@ c* called since the stacks would get re-initialized and the {,,,} would need
 c* to be parsed
 
 
-      SUBROUTINE EF_GET_ONE_VAL_SUB(id, memory, iarg, value)
+      SUBROUTINE EF_GET_ONE_VAL_SUB(id,  iarg, value)
 
       IMPLICIT NONE
       INCLUDE 'tmap_dims.parm'
@@ -64,7 +64,6 @@ c* to be parsed
 * calling argument declarations
       REAL    value
       INTEGER id, iarg
-      REAL    memory(mem_blk_size, max_mem_blks)
 
 * internal variable declarations
       INTEGER mr, cx, uv, status
@@ -77,7 +76,7 @@ c* to be accessible to the external function.
 
       IF (mr_list(1) .GT. 0 ) THEN
         mr = mr_list(iarg)
-        CALL EF_GET_ONE_VAL_SUB_SUB(memory(1, mr_blk1(mr)), 
+        CALL EF_GET_ONE_VAL_SUB_SUB(memry(mr)%ptr, 
      .                              lo_ss(iarg,1), hi_ss(iarg, 1),
      .                              lo_ss(iarg,2), hi_ss(iarg, 2),
      .                              lo_ss(iarg,3), hi_ss(iarg, 3),
diff --git a/fer/efi/SOURCE_FILES b/fer/efi/SOURCE_FILES
index 56c6bea..6c7408e 100644
--- a/fer/efi/SOURCE_FILES
+++ b/fer/efi/SOURCE_FILES
@@ -52,6 +52,7 @@ 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\
@@ -73,6 +74,12 @@ ft_to_orthogonal.F\
 gausswt.F\
 gausswt_v0.F\
 heap2_str.F\
+innerproduct_x.F\
+innerproduct_y.F\
+innerproduct_z.F\
+innerproduct_t.F\
+innerproduct_e.F\
+innerproduct_f.F\
 is_element_of.F\
 is_element_of_str.F\
 is_element_of_str_n.F\
@@ -82,7 +89,7 @@ list_value_xml.F\
 lon_lat_time_string.F\
 lsl_lowpass.F\
 maxminmax.F\
-minmax.F\
+minmax_fcn.F\
 minminmax.F\
 minutes24.F\
 modscat.F\
@@ -158,6 +165,8 @@ sortm_str.F\
 sortn.F\
 sortn_str.F\
 str_mask.F\
+str_noblanks.F\
+str_replace.F\
 svdeof-4.F\
 tauto_cor.F\
 tax_datestring.F\
@@ -176,11 +185,21 @@ tcat.F\
 tcat_str.F\
 test_opendap.F\
 time_reformat.F\
+transpose_ef.F\
+transpose_xe.F\
+transpose_xf.F\
 transpose_xt.F\
 transpose_xy.F\
 transpose_xz.F\
+transpose_te.F\
+transpose_tf.F\
+transpose_ye.F\
+transpose_yf.F\
 transpose_yt.F\
 transpose_yz.F\
+transpose_ze.F\
+transpose_zf.F\
+transpose_zt.F\
 transpose_zt.F\
 treverse.F\
 unique_str2int.F\
diff --git a/fer/efi/curv_to_rect.F b/fer/efi/curv_to_rect.F
index efbd468..7c27566 100644
--- a/fer/efi/curv_to_rect.F
+++ b/fer/efi/curv_to_rect.F
@@ -254,4 +254,4 @@
       END  ! SUBROUTINE curv_to_rect_compute
 
 !#######################################################################
-            
\ No newline at end of file
+
diff --git a/fer/efi/expndi_by_m_counts.F b/fer/efi/expndi_by_m_counts.F
index ddc9e69..a0fd1c1 100644
--- a/fer/efi/expndi_by_m_counts.F
+++ b/fer/efi/expndi_by_m_counts.F
@@ -288,9 +288,9 @@
          m1 = arg_lo_ss(E_AXIS,ARG1)
          m2 = arg_lo_ss(E_AXIS,ARG2)
  
-	    i1 = 1
+            i1 = 1
             DO 200 mout=arg_lo_ss(E_AXIS,ARG2),arg_hi_ss(E_AXIS,ARG2)
-               DO 100 iout = 1, arg_2(i2,j2,k2,l2,mout,n1)
+               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)
 
diff --git a/fer/efi/expndi_by_z_counts.F b/fer/efi/expndi_by_z_counts.F
index 13f4665..48ca17f 100644
--- a/fer/efi/expndi_by_z_counts.F
+++ b/fer/efi/expndi_by_z_counts.F
@@ -245,9 +245,9 @@
          j2 = arg_lo_ss(Y_AXIS,ARG2)
          DO 300 j=res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
 
-	    i1 = 1
+            i1 = 1
             DO 200 iout=arg_lo_ss(X_AXIS,ARG2),arg_hi_ss(X_AXIS,ARG2)
-               DO 100 kout = 1, arg_2(iout,j2,k2,l2)
+               DO 100 kout = 1, NINT(arg_2(iout,j2,k2,l2))
                  IF ( arg_1(i1,j1,k1,l1) .NE. bad_flag(1) )
      .             result(iout,j,kout,l) = arg_1(i1,j1,k1,l1)
                   i1 = i1 + 1
diff --git a/fer/efi/expndi_id_by_z_counts.F b/fer/efi/expndi_id_by_z_counts.F
index b55cfc8..d8f099f 100644
--- a/fer/efi/expndi_id_by_z_counts.F
+++ b/fer/efi/expndi_id_by_z_counts.F
@@ -213,9 +213,9 @@
          j1 = arg_lo_ss(Y_AXIS,ARG1)
          DO 300 j=res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
 
-	    i1 = 1
-            DO 200 iout = 1, xlen
-               DO 100 kout = 1, arg_1(iout,j1,k1,l1)
+            i1 = 1
+            DO 200 iout = 1, NINT(xlen)
+               DO 100 kout = 1, NINT(arg_1(iout,j1,k1,l1))
                   result(iout,j,kout,l) = iout
                   i1 = i1 + 1
  100           CONTINUE
diff --git a/fer/efi/expndi_to_et.F b/fer/efi/expndi_to_et.F
new file mode 100644
index 0000000..c0d5f5c
--- /dev/null
+++ b/fer/efi/expndi_to_et.F
@@ -0,0 +1,303 @@
+* 
+*  expndi_to_et.F
+* 
+*  Ansley Manke
+*  8/31/2016
+* 
+* Expand argument 1 to a 2D E-T variable, using argument 2, a RowSize variable to
+* separate the time series, and placing each time series at the correct
+* location on the time series defined by argument 3. 
+* Typical use is that arg 1 is a collection of time series in a Timeseries DSG
+* file, and a common time series variable has been defined for all of the data.
+ 
+*  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 expndi_to_et_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+      CALL ef_set_desc(id,
+     .  'Expand arg1 into a T-E grid defined by Rowsize and Tseries' )
+
+      CALL ef_set_num_args(id, 4)
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                NORMAL, NORMAL,
+     .                                NORMAL, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, NORMAL)
+      CALL ef_set_num_work_arrays(id, 2)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'var data')
+      CALL ef_set_arg_desc(id, arg, 'Variable to expand, on I axis')
+      CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'time data')
+      CALL ef_set_arg_desc(id, arg, 
+     .          'Timesteps for variable to expand, on same I axis')
+      CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+
+      arg = 3
+      CALL ef_set_arg_name(id, arg, 'Rowsize (E direction)')
+      CALL ef_set_arg_desc(id, arg,
+     .          'Length of each individual time series')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              NO, NO, NO, NO, YES, NO)
+
+      arg = 4
+      CALL ef_set_arg_name(id, arg, 'Result T')
+      CALL ef_set_arg_desc(id, arg,
+     .          'A variable on the desired result T axis')
+      CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, 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 expndi_to_et_work_size(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id
+
+* **********************************************************************
+*                                            USER CONFIGURABLE PORTION |
+*                                                                      |
+*                                                                      V
+
+*
+* Set the work arrays, X/Y/Z/T/E/F dimensions
+*
+* ef_set_work_array_dims_6d(id, array #,
+*                           xlo, ylo, zlo, tlo, elo, flo,
+*                           xhi, yhi, zhi, thi, ehi, fhi)
+*
+
+      INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+     .        arg_hi_ss(6,EF_MAX_ARGS),
+     .        arg_incr (6,EF_MAX_ARGS)
+      INTEGER mth, mtl
+
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+     
+* 
+      mtl = arg_lo_ss(T_AXIS,ARG4)
+      mth = mtl + (arg_hi_ss(T_AXIS,ARG4) - arg_lo_ss(T_AXIS,ARG4))
+
+*  taxlo
+      CALL ef_set_work_array_dims_6d(id, 1,
+     .                              mtl, 1, 1, 1, 1, 1,
+     .                              mth, 1, 1, 1, 1, 1)
+
+*  taxhi
+      CALL ef_set_work_array_dims_6d(id, 2,
+     .                              mtl, 1, 1, 1, 1, 1,
+     .                              mth, 1, 1, 1, 1, 1)
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN 
+      END
+
+
+* 
+*  In this subroutine we compute the result
+* 
+      SUBROUTINE expndi_to_et_compute(id, 
+     .            arg_1, arg_2, arg_3, arg_4,
+     .            result, taxlo, taxhi)
+
+      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 arg_3(mem3lox:mem3hix, mem3loy:mem3hiy, mem3loz:mem3hiz,
+     .           mem3lot:mem3hit, mem3loe:mem3hie, mem3lof:mem3hif)
+      REAL arg_4(mem4lox:mem4hix, mem4loy:mem4hiy, mem4loz:mem4hiz, 
+     .           mem4lot:mem4hit, mem4loe:mem4hie, mem4lof:mem4hif)
+
+      REAL result(memreslox:memreshix, memresloy:memreshiy, 
+     .            memresloz:memreshiz, memreslot:memreshit,
+     .            memresloe:memreshie, memreslof:memreshif)
+
+     
+      REAL*8 taxlo(wrk1lox:wrk1hix)
+      REAL*8 taxhi(wrk2lox:wrk2hix)
+
+* 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, i1, k1
+      INTEGER index1, index2, lpos
+      REAL    sum, count, t1, t2
+
+      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)
+
+      k1 = arg_lo_ss (Z_AXIS,ARG1)  ! unspecified_int4
+
+
+* make sure arguments 1 and 2 on same grid
+      IF ( (arg_lo_ss(X_AXIS,ARG1) .NE. arg_lo_ss(X_AXIS,ARG2))
+     . .OR.(arg_hi_ss(X_AXIS,ARG1) .NE. arg_hi_ss(X_AXIS,ARG2)) ) CALL
+     .           EF_BAIL_OUT(id, 'X limits of args 1 and 2 mismatched')
+
+      do i = 2,6
+         IF ( arg_hi_ss(i,ARG1) - arg_lo_ss(i,ARG1) + 1  .NE. 1
+     .    .OR.arg_hi_ss(i,ARG2) - arg_lo_ss(i,ARG2) + 1  .NE. 1 ) CALL
+     .     EF_BAIL_OUT(id, 'arguments 1 and 2 must be on X axis only')
+      enddo
+
+* make sure RowSize is valid
+
+      sum = 0.
+      DO m = arg_lo_ss(E_AXIS,ARG3), arg_hi_ss(E_AXIS,ARG3)
+         sum = sum + arg_3(k1,k1,k1,k1,m,k1)
+      enddo
+
+      IF (sum .NE. arg_hi_ss(X_axis,ARG1) - arg_lo_ss(X_axis,ARG1) + 1 ) 
+     .  CALL EF_BAIL_OUT(id, 'Values of arg 2 must sum to the length of arg 1')
+
+* Get output-axis time coordinates
+
+      CALL ef_get_box_limits(id, ARG4, T_AXIS,
+     .   arg_lo_ss(T_AXIS, ARG4), arg_hi_ss(T_AXIS, ARG4), taxlo, taxhi)
+
+* pre-fill the entire output result with missing value flags
+*  (since each t-series in the input has different start and end times)
+
+      DO 10 n=res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+      DO 10 m=res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+      DO 10 l=res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+      DO 10 j=res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+      DO 10 k=res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+      DO 10 i=res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+         result(i,j,k,l,m,n) = bad_flag_result
+ 10   CONTINUE
+
+      i = res_lo_ss(X_AXIS)
+      j = res_lo_ss(Y_AXIS)
+      k = res_lo_ss(Z_AXIS)
+      n = res_lo_ss(F_AXIS)
+
+* fill in the points 
+      
+
+      index1 = 1
+      m = res_lo_ss(E_AXIS)
+      DO 100 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+         index2 = index1 + INT(arg_3(k1,k1,k1,k1,m,k1)) - 1
+	 t1 = arg_2(index1,k1,k1,k1,k1,k1)
+	 t2 = arg_2(index2,k1,k1,k1,k1,k1)
+	 DO l = arg_lo_ss(T_AXIS,ARG4), arg_hi_ss(T_AXIS,ARG4)
+	    IF (t1 .GE. taxlo(l) .AND. t1 .LT. taxhi(l) ) GOTO 123
+	 ENDDO
+ 123	 CONTINUE
+         lpos = l
+
+	 if (index2 .GT. res_hi_ss(T_AXIS)) index2 = res_hi_ss(T_AXIS)
+	 sum = 0.0
+	 count = 0.
+	 DO i1 = index1, index2
+	    IF (arg_1(i1,k1,k1,k1,k1,k1) .NE. bad_flag(ARG1) ) THEN
+	       count = count + 1.
+	       sum = sum + arg_1(i1,k1,k1,k1,k1,k1)
+	    ENDIF
+	 ENDDO
+
+	 IF (count .GT. 0.) THEN 
+	    result(i,j,k,lpos,m,n) = sum/count
+	 ELSE
+	    result(i,j,k,lpos,m,n) = bad_flag_result
+	 ENDIF
+
+	 index1 = index2+1
+
+ 100  CONTINUE
+         
+
+
+*                                                                      ^
+*                                                                      |
+*                                            USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+      RETURN 
+      END
+
diff --git a/fer/efi/innerproduct_e.F b/fer/efi/innerproduct_e.F
new file mode 100644
index 0000000..ddb6b19
--- /dev/null
+++ b/fer/efi/innerproduct_e.F
@@ -0,0 +1,175 @@
+*
+* innerproduct_e.F
+*
+* compute the innner product of two arguments along a shared axis
+*
+
+
+
+
+      SUBROUTINE innerproduct_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 innerproduct_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
+
+      DO 90 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+      DO 90 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+      DO 90 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+      DO 90 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+      DO 90 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+      DO 90 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+         result(i,j,k,l,m,n) = bad_flag_result
+  90  CONTINUE
+
+      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/innerproduct_f.F b/fer/efi/innerproduct_f.F
new file mode 100644
index 0000000..df8c452
--- /dev/null
+++ b/fer/efi/innerproduct_f.F
@@ -0,0 +1,176 @@
+*
+* innerproduct_f.F
+*
+* compute the innner product of two arguments along a shared axis
+*
+
+
+
+
+      SUBROUTINE innerproduct_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 innerproduct_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
+
+      DO 90 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+      DO 90 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+      DO 90 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+      DO 90 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+      DO 90 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+      DO 90 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+         result(i,j,k,l,m,n) = bad_flag_result
+  90  CONTINUE
+
+      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/innerproduct_t.F b/fer/efi/innerproduct_t.F
new file mode 100644
index 0000000..ddda29d
--- /dev/null
+++ b/fer/efi/innerproduct_t.F
@@ -0,0 +1,175 @@
+*
+* innerproduct_t.F
+*
+* compute the innner product of two arguments along a shared axis
+*
+
+
+
+
+      SUBROUTINE innerproduct_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 innerproduct_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
+
+      DO 90 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+      DO 90 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+      DO 90 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+      DO 90 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+      DO 90 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+      DO 90 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+         result(i,j,k,l,m,n) = bad_flag_result
+  90  CONTINUE
+
+      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/innerproduct_x.F b/fer/efi/innerproduct_x.F
new file mode 100644
index 0000000..2c8ccab
--- /dev/null
+++ b/fer/efi/innerproduct_x.F
@@ -0,0 +1,175 @@
+*
+* innerproduct_x.F
+*
+* compute the innner product of two arguments along a shared axis
+*
+
+
+
+
+      SUBROUTINE innerproduct_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 innerproduct_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
+
+      DO 90 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+      DO 90 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+      DO 90 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+      DO 90 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+      DO 90 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+      DO 90 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+         result(i,j,k,l,m,n) = bad_flag_result
+  90  CONTINUE
+
+      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/innerproduct_y.F b/fer/efi/innerproduct_y.F
new file mode 100644
index 0000000..c7144c9
--- /dev/null
+++ b/fer/efi/innerproduct_y.F
@@ -0,0 +1,174 @@
+*
+* innerproduct_y.F
+*
+* compute the innner product of two arguments along a shared axis
+*
+
+
+
+
+      SUBROUTINE innerproduct_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 innerproduct_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
+
+      DO 90 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+      DO 90 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+      DO 90 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+      DO 90 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+      DO 90 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+      DO 90 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+         result(i,j,k,l,m,n) = bad_flag_result
+  90  CONTINUE
+
+      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/innerproduct_z.F b/fer/efi/innerproduct_z.F
new file mode 100644
index 0000000..7257e0f
--- /dev/null
+++ b/fer/efi/innerproduct_z.F
@@ -0,0 +1,175 @@
+*
+* innerproduct_z.F
+*
+* compute the innner product of two arguments along a shared axis
+*
+
+
+
+
+      SUBROUTINE innerproduct_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 innerproduct_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
+
+      DO 90 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+      DO 90 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+      DO 90 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+      DO 90 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+      DO 90 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+      DO 90 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+         result(i,j,k,l,m,n) = bad_flag_result
+  90  CONTINUE
+
+      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/minmax.F b/fer/efi/minmax_fcn.F
similarity index 98%
rename from fer/efi/minmax.F
rename to fer/efi/minmax_fcn.F
index b98c6fa..f3a9347 100644
--- a/fer/efi/minmax.F
+++ b/fer/efi/minmax_fcn.F
@@ -1,5 +1,5 @@
 *
-* minmax.F
+* minmax function
 *
 * Ansley Manke
 * May 2009
@@ -57,7 +57,7 @@
 *                                                                      V
 
       CALL ef_set_desc(id,
-     . 'Returns min and max of a var. result[i=1]=min,result[i=1]=max' )
+     . 'Returns min and max of a var. result[i=1]=min,result[i=2]=max' )
 
       CALL ef_set_num_args(id, 1)
       CALL ef_set_axis_inheritance_6d(id,
diff --git a/fer/efi/samplexy.F b/fer/efi/samplexy.F
index 57936e4..09b13c7 100644
--- a/fer/efi/samplexy.F
+++ b/fer/efi/samplexy.F
@@ -80,6 +80,9 @@
 * 11/2005 acm -- Allow use of this on any X axis, not just regular ones 
 *                (see bug report 1358)
 *  1/2014 acm -- Fix ticket 2137: use correct indices when computing dx, dy.
+*  7/2016 acm -- Allocate the length of the axes for REAL*8 work arrays. 
+*                Use the argument subscript limits, so subsets are handled correctly.
+
 *
 * In this subroutine we provide information about
 * the function.  The user configurable information 
@@ -253,45 +256,40 @@
 
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
 
-*  Allocate double the length of the axes for REAL*8 work arrays.
-
-      mxl = arg_lo_ss(X_AXIS,ARG1)
-      myl = arg_lo_ss(Y_AXIS,ARG1)
 
-      mxh = mxl + 
-     .     2* (arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1) + 1)
-      myh = myl + 
-     .     2* (arg_hi_ss(Y_AXIS,ARG1) - arg_lo_ss(Y_AXIS,ARG1) + 1)
+*  Allocate the length of the axes for REAL*8 work arrays. Use the argument
+*  subscript limits, so subsets are handled correctly.
 
 *  xaxdat
       CALL ef_set_work_array_dims_6d(id, 1,
-     .                              mxl, 1, 1, 1, 1, 1,
-     .                              mxh, 1, 1, 1, 1, 1)
+     .          arg_lo_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(X_AXIS,ARG1)+1, 1, 1, 1, 1, 1)
 
 *  yaxdat
       CALL ef_set_work_array_dims_6d(id, 2,
-     .                              myl, 1, 1, 1, 1, 1,
-     .                              myh, 1, 1, 1, 1, 1)
+     .          arg_lo_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1)
 
 *  xboxlo
       CALL ef_set_work_array_dims_6d(id, 3,
-     .                              mxl, 1, 1, 1, 1, 1,
-     .                              mxh, 1, 1, 1, 1, 1)
+     .          arg_lo_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1)
 
 *  xboxhi
       CALL ef_set_work_array_dims_6d(id, 4,
-     .                              mxl, 1, 1, 1, 1, 1,
-     .                              mxh, 1, 1, 1, 1, 1)
+     .          arg_lo_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1)
 
-*  yboxlo
+*  
       CALL ef_set_work_array_dims_6d(id, 5,
-     .                              myl, 1, 1, 1, 1, 1,
-     .                              myh, 1, 1, 1, 1, 1)
+     .          arg_lo_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1)
 
 *  yboxhi
       CALL ef_set_work_array_dims_6d(id, 6,
-     .                              myl, 1, 1, 1, 1, 1,
-     .                              myh, 1, 1, 1, 1, 1)
+     .          arg_lo_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1)
+
 
 *                                                                      ^
 *                                                                      |
@@ -325,24 +323,12 @@
      .            memresloz:memreshiz, memreslot:memreshit,
      .            memresloe:memreshie, memreslof:memreshif)
 
-      REAL*8 xaxdat(wrk1lox:wrk1lox+(wrk1hix-wrk1lox)/2,wrk1loy:wrk1hiy,
-     .              wrk1loz:wrk1hiz, wrk1lot:wrk1hit,
-     .              wrk1loe:wrk1hie, wrk1lof:wrk1hif)
-      REAL*8 yaxdat(wrk2lox:wrk2lox+(wrk2hix-wrk2lox)/2,wrk2loy:wrk2hiy,
-     .              wrk2loz:wrk2hiz, wrk2lot:wrk2hit,
-     .              wrk2loe:wrk2hie, wrk2lof:wrk2hif)
-      REAL*8 xboxlo(wrk3lox:wrk3lox+(wrk3hix-wrk3lox)/2,wrk3loy:wrk3hiy,
-     .              wrk3loz:wrk3hiz, wrk3lot:wrk3hit,
-     .              wrk3loe:wrk3hie, wrk3lof:wrk3hif)
-      REAL*8 xboxhi(wrk4lox:wrk4lox+(wrk4hix-wrk4lox)/2,wrk4loy:wrk4hiy,
-     .              wrk4loz:wrk4hiz, wrk4lot:wrk4hit,
-     .              wrk4loe:wrk4hie, wrk4lof:wrk4hif)
-      REAL*8 yboxlo(wrk5lox:wrk5lox+(wrk5hix-wrk5lox)/2,wrk5loy:wrk5hiy,
-     .              wrk5loz:wrk5hiz, wrk5lot:wrk5hit,
-     .              wrk5loe:wrk5hie, wrk5lof:wrk5hif)
-      REAL*8 yboxhi(wrk6lox:wrk6lox+(wrk6hix-wrk6lox)/2,wrk6loy:wrk6hiy,
-     .              wrk6loz:wrk6hiz, wrk6lot:wrk6hit,
-     .              wrk6loe:wrk6hie, wrk6lof:wrk6hif)
+      REAL*8 xaxdat(wrk1lox:wrk1hix)
+      REAL*8 yaxdat(wrk2lox:wrk2hix)
+      REAL*8 xboxlo(wrk3lox:wrk3hix)
+      REAL*8 xboxhi(wrk4lox:wrk4hix)
+      REAL*8 yboxlo(wrk5lox:wrk5hix)
+      REAL*8 yboxhi(wrk6lox:wrk6hix)
 
 * After initialization, the 'res_' arrays contain indexing information 
 * for the result axes.  The 'arg_' arrays will contain the indexing 
@@ -436,25 +422,25 @@ C  variables for checking axis characteristics (modulo axes)
       CALL ef_get_axis_info_6d(id, ARG1, ax_name, ax_units,
      .                         backward, modulo, regular)
       IF ( regular(1) ) THEN
-         dx = xaxdat(ilo+1,1,1,1,1,1) - xaxdat(ilo,1,1,1,1,1)
+         dx = xaxdat(ilo+1) - xaxdat(ilo)
          dxlo = dx/2.
          dxhi = dx/2.
       ELSE
          CALL ef_get_box_limits(id, ARG1, X_AXIS, ilo, ihi,
      .                          xboxlo, xboxhi)
-         dxlo = (xboxlo(ilo+1,1,1,1,1,1) - xboxlo(ilo,1,1,1,1,1) ) / 2.
-         dxhi = (xboxhi(ihi,1,1,1,1,1) - xboxhi(ihi-1,1,1,1,1,1) ) / 2.
+         dxlo = (xboxlo(ilo+1) - xboxlo(ilo) ) / 2.
+         dxhi = (xboxhi(ihi) - xboxhi(ihi-1) ) / 2.
       ENDIF
 
       IF ( regular(2) ) THEN
-         dy = yaxdat(jlo+1,1,1,1,1,1) - yaxdat(jlo,1,1,1,1,1)
+         dy = yaxdat(jlo+1) - yaxdat(jlo)
          dylo = dy/2.
          dyhi = dy/2.
       ELSE
          CALL ef_get_box_limits(id, ARG1, Y_AXIS, jlo, jhi,
      .                          yboxlo, yboxhi)
-         dylo = (yboxlo(jlo+1,1,1,1,1,1) - yboxlo(jlo,1,1,1,1,1) )/ 2.
-         dyhi = (yboxhi(jhi,1,1,1,1,1) - yboxlo(jhi-1,1,1,1,1,1) )/ 2.
+         dylo = (yboxlo(jlo+1) - yboxlo(jlo) )/ 2.
+         dyhi = (yboxhi(jhi) - yboxlo(jhi-1) )/ 2.
       ENDIF
       
 * Check to see if input x,y axis is modulo. If its a longitude 
@@ -463,11 +449,11 @@ C  variables for checking axis characteristics (modulo axes)
       IF ( modulo(1) ) THEN
          ic = STR_UPCASE (test_str, ax_units(1))
          ok = (test_str(1:3) .EQ. 'DEG') 
-         dx = xaxdat(ilo+1,1,1,1,1,1) - xaxdat(ilo,1,1,1,1,1)
-         delmodx = (xaxdat(ihi,1,1,1,1,1) + dxhi) -
-     .             (xaxdat(ilo,1,1,1,1,1) - dxlo)
+         dx = xaxdat(ilo+1) - xaxdat(ilo)
+         delmodx = (xaxdat(ihi) + dxhi) -
+     .             (xaxdat(ilo) - dxlo)
          IF ( .NOT. regular(1) )
-     .      delmodx = xboxhi(ihi,1,1,1,1,1) - xboxlo(ilo,1,1,1,1,1)
+     .      delmodx = xboxhi(ihi) - xboxlo(ilo)
          IF ( ok ) THEN 
             full_span = (delmodx .GT. 360.-dx)
             delmodx = 360.
@@ -524,47 +510,62 @@ C  variables for checking axis characteristics (modulo axes)
 *  end to handle points within a half-grid cell of the edge.
 
          IF ( modulo(1) .AND. full_span ) THEN
-            IF ( xpt .GE. xaxdat(ihi,1,1,1,1,1) .AND.
-     .           xpt .LE. xaxdat(ihi,1,1,1,1,1) + dxhi ) THEN
+            IF ( xpt .GE. xaxdat(ihi) .AND.
+     .           xpt .LE. xaxdat(ihi) + dxhi ) THEN
                ibot = ihi
                xflag = 1
-            ELSE IF ( xpt .GE. xaxdat(ihi,1,1,1,1,1) ) THEN
-               DO WHILE ( xpt .GE. xaxdat(ihi,1,1,1,1,1) ) 
+            ELSE IF ( xpt .GE. xaxdat(ihi) ) THEN
+               DO WHILE ( xpt .GE. xaxdat(ihi) ) 
                   xpt = xpt - delmodx
                ENDDO
             ENDIF
 
-            IF ( xpt .LT. xaxdat(ilo,1,1,1,1,1) .AND.
-     .           xpt .GE. xaxdat(ilo,1,1,1,1,1) - dxlo ) THEN
+            IF ( xpt .LT. xaxdat(ilo) .AND.
+     .           xpt .GE. xaxdat(ilo) - dxlo ) THEN
                itop = ilo
                xflag = -1
-            ELSE IF ( xpt .LT. xaxdat(ilo,1,1,1,1,1) ) THEN
-               DO WHILE (xpt .LT. xaxdat(ilo,1,1,1,1,1) )
+            ELSE IF ( xpt .LT. xaxdat(ilo) ) THEN
+               DO WHILE (xpt .LT. xaxdat(ilo) )
                   xpt = xpt + delmodx
                ENDDO
             ENDIF
-         ENDIF
+	 ENDIF
+
+* Source variable has subspan-modulo axis 
 
+         IF ( modulo(1) .AND. .NOT.full_span ) THEN
+            IF (modulo(1) .AND. xpt .GE. xaxdat(ihi) ) THEN
+               DO WHILE ( xpt .GE. xaxdat(ihi) ) 
+               xpt = xpt - delmodx
+               ENDDO
+            ENDIF
+
+	    IF (modulo(1) .AND. xpt .LT. xaxdat(ilo) ) THEN
+               DO WHILE (xpt .LT. xaxdat(ilo) )
+                  xpt = xpt + delmodx
+               ENDDO
+            ENDIF
+         ENDIF
 
          DO 120 i1 = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1)
-            IF ( TM_FPEQ(xpt, xaxdat(i1,1,1,1,1,1)) ) THEN
+            IF ( TM_FPEQ(xpt, xaxdat(i1)) ) THEN
                imatch = i1
                GOTO 130
             ELSE IF ( i1  .EQ. arg_lo_ss(X_AXIS,ARG1)     .AND.
-     .                xpt .LT. xaxdat(i1,1,1,1,1,1)       .AND.
-     .                xpt .GT. xaxdat(i1,1,1,1,1,1)-dxhi  .AND.
+     .                xpt .LT. xaxdat(i1)       .AND.
+     .                xpt .GT. xaxdat(i1)-dxhi  .AND.
      .               .NOT. modulo(1) ) THEN
                ibot = i1
-            ELSE IF ( xpt .GE. xaxdat(i1,1,1,1,1,1) ) THEN
+            ELSE IF ( xpt .GE. xaxdat(i1) ) THEN
                ibot = i1
             ENDIF
   120    CONTINUE
 
-         IF ( .NOT. modulo(1) ) THEN
-            IF ( xpt .GT. xaxdat(ihi,1,1,1,1,1) .AND.
-     .           xpt .LT. xaxdat(ihi,1,1,1,1,1) + dxhi ) THEN
+         IF ( .NOT. modulo(1) .OR. (modulo(1) .AND..NOT.full_span )) THEN
+            IF ( xpt .GT. xaxdat(ihi) .AND.
+     .           xpt .LT. xaxdat(ihi) + dxhi ) THEN
                ibot = ihi
-            ELSE IF ( xpt .GT. xaxdat(ihi,1,1,1,1,1) ) THEN
+            ELSE IF ( xpt .GT. xaxdat(ihi) ) THEN
                ibot = ef_unspecified_int4   ! ARG_2 XPT outside of range 
             ENDIF
          ENDIF
@@ -608,22 +609,22 @@ cbf      analogously in y direction
          jmatch = ef_unspecified_int4
 
          DO 220 j1 = arg_lo_ss(Y_AXIS,ARG1), arg_hi_ss(Y_AXIS,ARG1)
-            IF ( TM_FPEQ(ypt, yaxdat(j1,1,1,1,1,1)) ) THEN
+            IF ( TM_FPEQ(ypt, yaxdat(j1)) ) THEN
                jmatch = j1
                GOTO 230
             ELSE IF ( j1  .EQ. arg_lo_ss(Y_AXIS,ARG1) .AND.
-     .                ypt .LT. yaxdat(j1,1,1,1,1,1)   .AND. 
-     .                ypt .GT. yaxdat(j1,1,1,1,1,1) - dylo ) THEN
+     .                ypt .LT. yaxdat(j1)   .AND. 
+     .                ypt .GT. yaxdat(j1) - dylo ) THEN
                jbot = j1
-            ELSE IF ( ypt .GE. yaxdat(j1,1,1,1,1,1) ) THEN
+            ELSE IF ( ypt .GE. yaxdat(j1) ) THEN
                jbot = j1
             ENDIF
   220    CONTINUE
 
-         IF ( ypt .GT. yaxdat(jhi,1,1,1,1,1) .AND.
-     .        ypt .LT. yaxdat(jhi,1,1,1,1,1) + dyhi ) THEN
+         IF ( ypt .GT. yaxdat(jhi) .AND.
+     .        ypt .LT. yaxdat(jhi) + dyhi ) THEN
             jbot = jhi
-         ELSE IF ( ypt .GT. yaxdat(jhi,1,1,1,1,1) ) THEN
+         ELSE IF ( ypt .GT. yaxdat(jhi) ) THEN
             jbot = ef_unspecified_int4      ! ARG_3 YPT outside of range 
          ENDIF
 
@@ -648,12 +649,12 @@ cbf      analogously in y direction
          ENDIF
 
 
-         xbot = xaxdat(ibot,1,1,1,1,1)
-         xtop = xaxdat(itop,1,1,1,1,1)
+         xbot = xaxdat(ibot)
+         xtop = xaxdat(itop)
          IF ( xtop .LT. xbot ) THEN
             IF ( .NOT. regular(1) )
-     .         dx = ( xboxlo(ibot+1,1,1,1,1,1) - 
-     .                xboxlo(ibot,  1,1,1,1,1) ) / 2.0
+     .         dx = ( xboxlo(ibot+1) - 
+     .                xboxlo(ibot) ) / 2.0
             IF ( xflag .EQ. 1 ) THEN
                xtop = xbot + dx
             ELSE IF ( xflag .EQ. -1 ) THEN
@@ -663,8 +664,8 @@ cbf      analogously in y direction
          IF ( ibot .NE. itop )
      .      xfrac = (xpt - xbot) / (xtop - xbot)
 
-         ybot = yaxdat(jbot,1,1,1,1,1)
-         ytop = yaxdat(jtop,1,1,1,1,1)
+         ybot = yaxdat(jbot)
+         ytop = yaxdat(jtop)
          IF ( jbot .NE. jtop )
      .      yfrac = (ypt - ybot) / (ytop - ybot)
 
diff --git a/fer/efi/samplexy_closest.F b/fer/efi/samplexy_closest.F
index 5dabee0..57302be 100644
--- a/fer/efi/samplexy_closest.F
+++ b/fer/efi/samplexy_closest.F
@@ -116,7 +116,7 @@
      .                                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)
-      CALL ef_set_num_work_arrays(id, 2)
+      CALL ef_set_num_work_arrays(id, 6)
 
       arg = 1
       CALL ef_set_arg_name(id, arg, 'DAT_TO_SAMPLE')
@@ -226,25 +226,38 @@
 
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
 
-*  Allocate double the length of the axes for REAL*8 work arrays.
-
-      mxl = arg_lo_ss(X_AXIS,ARG1)
-      myl = arg_lo_ss(Y_AXIS,ARG1)
-
-      mxh = mxl + 
-     .     2* (arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1) + 1)
-      myh = myl + 
-     .     2* (arg_hi_ss(Y_AXIS,ARG1)  - arg_lo_ss(Y_AXIS,ARG1) + 1)
+*  Allocate the length of the axes for REAL*8 work arrays. Use the argument
+*  subscript limits, so subsets are handled correctly.
 
 *  xaxdat
       CALL ef_set_work_array_dims_6d(id, 1,
-     .                              mxl, 1, 1, 1, 1, 1,
-     .                              mxh, 1, 1, 1, 1, 1)
+     .                              arg_lo_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .                              arg_hi_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1)
 
 *  yaxdat
       CALL ef_set_work_array_dims_6d(id, 2,
-     .                              myl, 1, 1, 1, 1, 1,
-     .                              myh, 1, 1, 1, 1, 1)
+     .                              arg_lo_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .                              arg_hi_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1)
+
+*  xboxlo
+      CALL ef_set_work_array_dims_6d(id, 3,
+     .                              arg_lo_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .                              arg_hi_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1)
+
+*  xboxhi
+      CALL ef_set_work_array_dims_6d(id, 4,
+     .                              arg_lo_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .                              arg_hi_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1)
+
+*  yboxlo
+      CALL ef_set_work_array_dims_6d(id, 5,
+     .                              arg_lo_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .                              arg_hi_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1)
+
+*  yboxhi
+      CALL ef_set_work_array_dims_6d(id, 6,
+     .                              arg_lo_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .                              arg_hi_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1)
 
 *                                                                      ^
 *                                                                      |
@@ -257,7 +270,7 @@
 * In this subroutine we compute the result
 *
       SUBROUTINE samplexy_closest_compute(id, arg_1, arg_2, arg_3,
-     .        result, xaxdat, yaxdat)
+     .        result, xaxdat, yaxdat, xboxlo, xboxhi, yboxlo, yboxhi)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -276,12 +289,24 @@
      .            memresloz:memreshiz, memreslot:memreshit,
      .            memresloe:memreshie, memreslof:memreshif)
 
-      REAL*8 xaxdat(wrk1lox:wrk1lox+(wrk1hix-wrk1lox)/2,wrk1loy:wrk1hiy,
+      REAL*8 xaxdat(wrk1lox:wrk1hix,wrk1loy:wrk1hiy,
      .              wrk1loz:wrk1hiz, wrk1lot:wrk1hit,
      .              wrk1loe:wrk1hie, wrk1lof:wrk1hif)
-      REAL*8 yaxdat(wrk2lox:wrk2lox+(wrk2hix-wrk2lox)/2,wrk2loy:wrk2hiy,
+      REAL*8 yaxdat(wrk2lox:wrk2hix,wrk2loy:wrk2hiy,
      .              wrk2loz:wrk2hiz, wrk2lot:wrk2hit,
      .              wrk2loe:wrk2hie, wrk2lof:wrk2hif)
+      REAL*8 xboxlo(wrk3lox:wrk3hix,wrk3loy:wrk3hiy,
+     .              wrk3loz:wrk3hiz, wrk3lot:wrk3hit,
+     .              wrk3loe:wrk3hie, wrk3lof:wrk3hif)
+      REAL*8 xboxhi(wrk4lox:wrk4hix,wrk4loy:wrk4hiy,
+     .              wrk4loz:wrk4hiz, wrk4lot:wrk4hit,
+     .              wrk4loe:wrk4hie, wrk4lof:wrk4hif)
+      REAL*8 yboxlo(wrk5lox:wrk5hix,wrk5loy:wrk5hiy,
+     .              wrk5loz:wrk5hiz, wrk5lot:wrk5hit,
+     .              wrk5loe:wrk5hie, wrk5lof:wrk5hif)
+      REAL*8 yboxhi(wrk6lox:wrk6hix,wrk6loy:wrk6hiy,
+     .              wrk6loz:wrk6hiz, wrk6lot:wrk6hit,
+     .              wrk6loe:wrk6hie, wrk6lof:wrk6hif)
 
 * After initialization, the 'res_' arrays contain indexing information 
 * for the result axes.  The 'arg_' arrays will contain the indexing 
@@ -301,7 +326,8 @@
 *                                                                     |
 *                                                                     V
 
-      LOGICAL TM_FPEQ
+      LOGICAL TM_FPEQ, full_span, ok
+      INTEGER STR_UPCASE
 
       INTEGER nx, nxx, nxy, nxz, nxt, nxe, nxf
       INTEGER ny, nyx, nyy, nyz, nyt, nye, nyf
@@ -310,18 +336,18 @@
       INTEGER i1, j1, k1, l1, m1, n1
       INTEGER i2, j2, k2, l2, m2, n2
       INTEGER i3, j3, k3, l3, m3, n3
-      INTEGER imatch, jmatch
-      INTEGER ibot, jbot
+      INTEGER ic, imatch, jmatch
+      INTEGER ibot, jbot, itop, jtop, ihi, ilo, jhi, jlo, xflag
       REAL xbot, xtop, ybot, ytop
       REAL x_to_xbot, x_to_xtop, y_to_ybot, y_to_ytop
-      CHARACTER*255 err_msg
+      REAL dx, dxlo, dxhi, dy, dylo, dyhi, delmodx, xpt, ypt
+      CHARACTER err_msg*255, test_str*16
 
 C  variables for checking axis characteristics (modulo axes)
 
       CHARACTER ax_name(6)*16, ax_units(6)*16
       LOGICAL backward(6), modulo(6), regular(6)
       INTEGER xlo, xhi, ylo, yhi
-      REAL dx, dy, delmodx, delmody, xpt, ypt
 
       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)
@@ -360,37 +386,56 @@ C  variables for checking axis characteristics (modulo axes)
 
 *  Get x and y coordinates of the data to be sampled.
 
-      CALL ef_get_coordinates(id, ARG1, X_AXIS,
-     .   arg_lo_ss(X_AXIS, ARG1), arg_hi_ss(X_AXIS, ARG1), xaxdat)
-      CALL ef_get_coordinates(id, ARG1, Y_AXIS,
-     .   arg_lo_ss(Y_AXIS, ARG1), arg_hi_ss(Y_AXIS, ARG1), yaxdat)
+      ilo = arg_lo_ss(X_AXIS,ARG1)
+      ihi = arg_hi_ss(X_AXIS,ARG1)
+      jlo = arg_lo_ss(Y_AXIS,ARG1)
+      jhi = arg_hi_ss(Y_AXIS,ARG1)
+
+      CALL ef_get_coordinates(id, ARG1, X_AXIS, ilo, ihi, xaxdat)
+      CALL ef_get_coordinates(id, ARG1, Y_AXIS, jlo, jhi, yaxdat)
 
-*  Check to see if input x,y  axis is modulo
+*  Check to see if input x axis is modulo, and if axes are regular.
 
       CALL ef_get_axis_info_6d(id, ARG1, ax_name, ax_units,
      .                         backward, modulo, regular)
+      IF ( regular(1) ) THEN
+         dx = xaxdat(ilo+1,1,1,1,1,1) - xaxdat(ilo,1,1,1,1,1)
+         dxlo = dx/2.
+         dxhi = dx/2.
+      ELSE
+         CALL ef_get_box_limits(id, ARG1, X_AXIS, ilo, ihi,
+     .                          xboxlo, xboxhi)
+         dxlo = (xboxlo(ilo+1,1,1,1,1,1) - xboxlo(ilo,1,1,1,1,1) ) / 2.
+         dxhi = (xboxhi(ihi,1,1,1,1,1) - xboxhi(ihi-1,1,1,1,1,1) ) / 2.
+      ENDIF
+
+      IF ( regular(2) ) THEN
+         dy = yaxdat(jlo+1,1,1,1,1,1) - yaxdat(jlo,1,1,1,1,1)
+         dylo = dy/2.
+         dyhi = dy/2.
+      ELSE
+         CALL ef_get_box_limits(id, ARG1, Y_AXIS, jlo, jhi,
+     .                          yboxlo, yboxhi)
+         dylo = (yboxlo(jlo+1,1,1,1,1,1) - yboxlo(jlo,1,1,1,1,1) )/ 2.
+         dyhi = (yboxhi(jhi,1,1,1,1,1) - yboxlo(jhi-1,1,1,1,1,1) )/ 2.
+      ENDIF
 
-      xlo = arg_lo_ss(X_AXIS,ARG1)
-      xhi = arg_hi_ss(X_AXIS,ARG1)
-      ylo = arg_lo_ss(Y_AXIS,ARG1)
-      yhi = arg_hi_ss(Y_AXIS,ARG1)
+* Check to see if input x,y axis is modulo. If its a longitude 
+* axis, check for full-span
 
       IF ( modulo(1) ) THEN
-         IF (.NOT. regular(1)) THEN
-            err_msg = 'cannot handle MODULO axis that is not regular'
-            GO TO 999
+         ic = STR_UPCASE (test_str, ax_units(1))
+         ok = (test_str(1:3) .EQ. 'DEG') 
+         dx = xaxdat(ilo+1,1,1,1,1,1) - xaxdat(ilo,1,1,1,1,1)
+         delmodx = (xaxdat(ihi,1,1,1,1,1) + dxhi) -
+     .             (xaxdat(ilo,1,1,1,1,1) - dxlo)
+         IF ( .NOT. regular(1) )
+     .      delmodx = xboxhi(ihi,1,1,1,1,1) - xboxlo(ilo,1,1,1,1,1)
+         IF ( ok ) THEN 
+            full_span = (delmodx .GT. 360.-dx)
+            delmodx = 360.
          ELSE
-            dx = xaxdat(xlo+1,1,1,1,1,1) - xaxdat(xlo,1,1,1,1,1)
-            delmodx = xaxdat(xhi,1,1,1,1,1) - xaxdat(xlo,1,1,1,1,1) + dx
-         ENDIF
-      ENDIF
-      IF ( modulo(2) ) THEN
-         IF (.NOT. regular(2)) THEN
-            err_msg = 'cannot handle MODULO axis that is not regular'
-            GO TO 999
-         ELSE
-            dy = yaxdat(ylo+1,1,1,1,1,1) - yaxdat(ylo,1,1,1,1,1)
-            delmody = yaxdat(yhi,1,1,1,1,1) - yaxdat(ylo,1,1,1,1,1) + dy
+            full_span = .TRUE.
          ENDIF
       ENDIF
 
@@ -398,6 +443,7 @@ C  variables for checking axis characteristics (modulo axes)
 *   arg_1 for the nearest higher (x,y) grid coordinates.  Find the 
 *   nearest in 2 directions for the result.
 
+
       i2 = arg_lo_ss(X_AXIS,ARG2)
       j2 = arg_lo_ss(Y_AXIS,ARG2)
       k2 = arg_lo_ss(Z_AXIS,ARG2)
@@ -425,44 +471,116 @@ C  variables for checking axis characteristics (modulo axes)
             DO 80 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
             DO 80 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
                result(i,j,k,l,m,n) = bad_flag_result
-  80        CONTINUE
-*           Go to the next coordinates pair
+   80       CONTINUE
+*           Go to the next pair of coordinates
             GOTO 690
          ENDIF
 
-         IF ( modulo(1) ) THEN
-* Relocate the X point within the range of modulo X axis 
-            DO WHILE ( xpt .GE. xaxdat(xhi,1,1,1,1,1) ) 
-               xpt = xpt - delmodx
-            ENDDO
-            DO WHILE (xpt .LT. xaxdat(xlo,1,1,1,1,1) )
-               xpt = xpt + delmodx
-            ENDDO
-         ENDIF
+* Flag for outside of a modulo axis
+         xflag = 0
 
+* Check if xpt is in the x-axis range.
          ibot = ef_unspecified_int4
+         itop = ef_unspecified_int4
          imatch = ef_unspecified_int4
+*  Locate the X point within the range of modulo X axis 
+*  If we have the whole span, then use the point at the other
+*  end to handle points within a half-grid cell of the edge.
+
+         IF ( modulo(1) .AND. full_span ) THEN
+            IF ( xpt .GE. xaxdat(ihi,1,1,1,1,1) .AND.
+     .           xpt .LE. xaxdat(ihi,1,1,1,1,1) + dxhi ) THEN
+               ibot = ihi
+               xflag = 1
+            ELSE IF ( xpt .GE. xaxdat(ihi,1,1,1,1,1) ) THEN
+               DO WHILE ( xpt .GE. xaxdat(ihi,1,1,1,1,1) ) 
+                  xpt = xpt - delmodx
+               ENDDO
+            ENDIF
+
+            IF ( xpt .LT. xaxdat(ilo,1,1,1,1,1) .AND.
+     .           xpt .GE. xaxdat(ilo,1,1,1,1,1) - dxlo ) THEN
+               itop = ilo
+               xflag = -1
+            ELSE IF ( xpt .LT. xaxdat(ilo,1,1,1,1,1) ) THEN
+               DO WHILE (xpt .LT. xaxdat(ilo,1,1,1,1,1) )
+                  xpt = xpt + delmodx
+               ENDDO
+            ENDIF
+	 ENDIF
+
+* Source variable has subspan-modulo axis 
 
-* Check if xpt exceeds the X-axis range.
-         i1 = arg_hi_ss(X_AXIS,ARG1)
-         IF ( TM_FPEQ(xaxdat(i1,1,1,1,1,1), xpt) ) THEN
-            imatch = i1
-            GOTO 120
-         ELSE IF ( xpt .GT. xaxdat(i1,1,1,1,1,1) ) THEN
-            GOTO 120
+         IF ( modulo(1) .AND. .NOT.full_span ) THEN
+            IF (modulo(1) .AND. xpt .GE. xaxdat(ihi,1,1,1,1,1) ) THEN
+               DO WHILE ( xpt .GE. xaxdat(ihi,1,1,1,1,1) ) 
+               xpt = xpt - delmodx
+               ENDDO
+            ENDIF
+
+	    IF (modulo(1) .AND. xpt .LT. xaxdat(ilo,1,1,1,1,1) ) THEN
+               DO WHILE (xpt .LT. xaxdat(ilo,1,1,1,1,1) )
+                  xpt = xpt + delmodx
+               ENDDO
+            ENDIF
          ENDIF
 
-* Find xpt in the X-axis range.
-         DO 110 i1 = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1)
-            IF ( TM_FPEQ(xaxdat(i1,1,1,1,1,1), xpt) ) THEN
+         DO 120 i1 = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1)
+            IF ( TM_FPEQ(xpt, xaxdat(i1,1,1,1,1,1)) ) THEN
                imatch = i1
-               GOTO 120
-            ELSE IF ( xpt .GT. xaxdat(i1,1,1,1,1,1) ) THEN
+               GOTO 130
+            ELSE IF ( i1  .EQ. arg_lo_ss(X_AXIS,ARG1)     .AND.
+     .                xpt .LT. xaxdat(i1,1,1,1,1,1)       .AND.
+     .                xpt .GT. xaxdat(i1,1,1,1,1,1)-dxhi  .AND.
+     .               .NOT. modulo(1) ) THEN
+               ibot = i1
+            ELSE IF ( xpt .GE. xaxdat(i1,1,1,1,1,1) ) THEN
                ibot = i1
             ENDIF
-  110    CONTINUE
+ 120     CONTINUE
+
+         IF ( .NOT. modulo(1) .OR. (modulo(1) .AND..NOT.full_span )) THEN
+            IF ( xpt .GT. xaxdat(ihi,1,1,1,1,1) .AND.
+     .           xpt .LT. xaxdat(ihi,1,1,1,1,1) + dxhi ) THEN
+               ibot = ihi
+            ELSE IF ( xpt .GT. xaxdat(ihi,1,1,1,1,1) ) THEN
+               ibot = ef_unspecified_int4   ! ARG_2 XPT outside of range 
+            ENDIF
+         ENDIF
+
+  130    IF ( imatch .NE. ef_unspecified_int4 ) THEN
+            ibot = imatch
+            itop = imatch
+         ELSE IF ( ibot .NE. ef_unspecified_int4 ) THEN
+            itop = ibot + 1
+            IF ( itop .GT. ihi ) itop = ihi
+         ENDIF
+
+* If the data is at the very top or bottom of a full-span modulo x axis, get the
+* point from the other end.
 
-  120    IF ( imatch .NE. ef_unspecified_int4 ) THEN
+         IF ( xflag .EQ. 1 ) THEN
+            ibot = ihi
+            itop = ilo
+         ENDIF
+         IF ( xflag .EQ. -1 ) THEN
+            itop = ilo
+            ibot = ihi
+         ENDIF
+
+         IF ( ibot .EQ. ef_unspecified_int4 ) THEN
+*           Coordinate outside the grid
+            DO 140 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+            DO 140 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+            DO 140 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+            DO 140 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+               result(i,j,k,l,m,n) = bad_flag_result
+  140       CONTINUE
+*           Go to the next pair of coordinates
+            GOTO 690
+         ENDIF
+
+	 IF ( imatch .NE. ef_unspecified_int4 ) THEN
 cbf         matching the next neighbour is not of interest
             i1 = imatch
          ELSE IF ( ibot .EQ. ef_unspecified_int4 ) THEN
@@ -483,16 +601,6 @@ cbf         matching the next neighbour is not of interest
 
 cbf      analogously in y direction
 
-         IF ( modulo(2) ) THEN
-* Relocate the Y point within the range of modulo Y axis 
-            DO WHILE ( ypt .GE. yaxdat(yhi,1,1,1,1,1) ) 
-               ypt = ypt - delmody
-            ENDDO
-            DO WHILE (ypt .LT. yaxdat(ylo,1,1,1,1,1) )
-               ypt = ypt + delmody
-            ENDDO
-         ENDIF
-
          jbot = ef_unspecified_int4
          jmatch = ef_unspecified_int4
 
diff --git a/fer/efi/samplexyt.F b/fer/efi/samplexyt.F
index a295ff4..196d79b 100644
--- a/fer/efi/samplexyt.F
+++ b/fer/efi/samplexyt.F
@@ -104,7 +104,7 @@
      .                                IMPLIED_BY_ARGS, NORMAL,
      .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
       CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
-      CALL ef_set_num_work_arrays(id, 5)
+      CALL ef_set_num_work_arrays(id, 9)
 
       arg = 1
       CALL ef_set_arg_name(id, arg, 'DAT_TO_SAMPLE')
@@ -213,52 +213,59 @@
 *                           xlo, ylo, zlo, tlo, elo, flo,
 *                           xhi, yhi, zhi, thi, ehi, fhi)
 *
-
-      INTEGER mxh, myh, mth, mxl, myl, mtl
       INTEGER arg_lo_ss(6,EF_MAX_ARGS),
      .        arg_hi_ss(6,EF_MAX_ARGS),
      .        arg_incr (6,EF_MAX_ARGS)
 
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
 
-* Allocate double the length of the axes for REAL*8 work arrays.
-* For x and t axes allow yet one more point for handling modulo axes
-
-      mxl = arg_lo_ss(X_AXIS,ARG1)
-      myl = arg_lo_ss(Y_AXIS,ARG1)
-      mtl = arg_lo_ss(T_AXIS,ARG1)
-
-      mxh = mxl + 
-     .     2* (arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1) + 2)
-      myh = myl + 
-     .     2* (arg_hi_ss(Y_AXIS,ARG1) - arg_lo_ss(Y_AXIS,ARG1) + 1)
-      mth = mtl + 
-     .     2* (arg_hi_ss(T_AXIS,ARG1) - arg_lo_ss(T_AXIS,ARG1) + 2)
+*  Allocate the length of the axes for REAL*8 work arrays. Use the argument
+*  subscript limits, so subsets are handled correctly.
 
 *  xaxdat
       CALL ef_set_work_array_dims_6d(id, 1,
-     .                              mxl, 1, 1, 1, 1, 1,
-     .                              mxh, 1, 1, 1, 1, 1)
+     .          arg_lo_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(X_AXIS,ARG1)+1, 1, 1, 1, 1, 1)
 
 *  yaxdat
       CALL ef_set_work_array_dims_6d(id, 2,
-     .                              myl, 1, 1, 1, 1, 1,
-     .                              myh, 1, 1, 1, 1, 1)
+     .          arg_lo_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1)
 
 *  taxdat
       CALL ef_set_work_array_dims_6d(id, 3,
-     .                              mtl, 1, 1, 1, 1, 1,
-     .                              mth, 1, 1, 1, 1, 1)
-
-*  taxdatlo
+     .          arg_lo_ss(T_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(T_AXIS,ARG1)+1, 1, 1, 1, 1, 1)
+     
+*  xboxlo
       CALL ef_set_work_array_dims_6d(id, 4,
-     .                              mtl, 1, 1, 1, 1, 1,
-     .                              mth, 1, 1, 1, 1, 1)
+     .          arg_lo_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1)
 
-*  taxdathi
+*  xboxhi
       CALL ef_set_work_array_dims_6d(id, 5,
-     .                              mtl, 1, 1, 1, 1, 1,
-     .                              mth, 1, 1, 1, 1, 1)
+     .          arg_lo_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1)
+
+*  yboxlo
+      CALL ef_set_work_array_dims_6d(id, 6,
+     .          arg_lo_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1)
+
+*  yboxhi
+      CALL ef_set_work_array_dims_6d(id, 7,
+     .          arg_lo_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1)
+
+*  tboxlo
+      CALL ef_set_work_array_dims_6d(id, 8,
+     .          arg_lo_ss(T_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(T_AXIS,ARG1), 1, 1, 1, 1, 1)
+
+*  tboxhi
+      CALL ef_set_work_array_dims_6d(id, 9,
+     .          arg_lo_ss(T_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(T_AXIS,ARG1), 1, 1, 1, 1, 1)
 
 *                                                                      ^
 *                                                                      |
@@ -273,7 +280,8 @@
 * In this subroutine we compute the result
 *
       SUBROUTINE samplexyt_compute(id, arg_1, arg_2, arg_3, arg_4,
-     .         result, xaxdat, yaxdat, taxdat, taxdatlo, taxdathi)
+     .         result, xaxdat, yaxdat, taxdat, xboxlo, xboxhi, 
+     .         yboxlo, yboxhi, tboxlo, tboxhi)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -298,11 +306,15 @@
 
 * Ignore the Y/Z/T/E/F dimensions in the work arrays since
 * they are not used and Fortran is column major
-      REAL*8 xaxdat(wrk1lox:wrk1lox+(wrk1hix-wrk1lox)/2)
-      REAL*8 yaxdat(wrk2lox:wrk2lox+(wrk2hix-wrk2lox)/2)
-      REAL*8 taxdat(wrk3lox:wrk3lox+(wrk3hix-wrk3lox)/2)
-      REAL*8 taxdatlo(wrk4lox:wrk4lox+(wrk4hix-wrk4lox)/2)
-      REAL*8 taxdathi(wrk5lox:wrk5lox+(wrk5hix-wrk5lox)/2)
+      REAL*8 xaxdat(wrk1lox:wrk1hix)
+      REAL*8 yaxdat(wrk2lox:wrk2hix)
+      REAL*8 taxdat(wrk3lox:wrk3hix)
+      REAL*8 xboxlo(wrk4lox:wrk4hix)
+      REAL*8 xboxhi(wrk5lox:wrk5hix)
+      REAL*8 yboxlo(wrk6lox:wrk6hix)
+      REAL*8 yboxhi(wrk7lox:wrk7hix)
+      REAL*8 tboxlo(wrk8lox:wrk8hix)
+      REAL*8 tboxhi(wrk9lox:wrk9hix)
 
 * After initialization, the 'res_' arrays contain indexing information 
 * for the result axes.  The 'arg_' arrays will contain the indexing 
@@ -323,7 +335,7 @@
 *                                                                     V
 
       INTEGER STR_UPCASE
-      LOGICAL TM_FPEQ
+      LOGICAL TM_FPEQ, full_span
 
       INTEGER nx, nxx, nxy, nxz, nxt, nxe, nxf
       INTEGER ny, nyx, nyy, nyz, nyt, nye, nyf
@@ -334,14 +346,16 @@
       INTEGER i2, j2, k2, l2, m2, n2
       INTEGER i3, j3, k3, l3, m3, n3
       INTEGER i4, j4, k4, l4, m4, n4
-      INTEGER ic, imatch, jmatch, lmatch
+      INTEGER ic, imatch, jmatch, lmatch, xflag
       INTEGER ibot, itop, jbot, jtop, lbot, ltop
       INTEGER xlo, xhi, ylo, yhi, tlo, thi
+      INTEGER ilo, ihi, jlo, jhi, llo, lhi
       LOGICAL ok
       REAL fxbot, fxtop, fbb, ftb, fbt, ftt, aa, bb
       REAL xbot, xtop, ybot, ytop, tbot, ttop
       REAL xfrac, yfrac, tfrac_lo, tfrac_hi
-      REAL dx, dt, delmodx, delmodt, xpt, ypt, tpt
+      REAL dx, dy, dt, delmodx, delmodt, xpt, ypt, tpt
+      REAL dxlo, dxhi, dylo, dyhi, dtlo, dthi
       CHARACTER err_msg*255, test_str*16
 
 C  variables for checking axis characteristics (modulo axes)
@@ -400,16 +414,56 @@ C  variables for checking axis characteristics (modulo axes)
 
 *  Get x, y, t coordinates of the data to be sampled.
 
-      CALL ef_get_coordinates(id, ARG1, X_AXIS,
-     .   arg_lo_ss(X_AXIS, ARG1), arg_hi_ss(X_AXIS, ARG1), xaxdat)
-      CALL ef_get_coordinates(id, ARG1, Y_AXIS,
-     .   arg_lo_ss(Y_AXIS, ARG1), arg_hi_ss(Y_AXIS, ARG1), yaxdat)
-      CALL ef_get_coordinates(id, ARG1, T_AXIS,
-     .   arg_lo_ss(T_AXIS, ARG1), arg_hi_ss(T_AXIS, ARG1), taxdat)
-      CALL ef_get_box_lo_lim(id, ARG1, T_AXIS,
-     .   arg_lo_ss(T_AXIS, ARG1), arg_hi_ss(T_AXIS, ARG1), taxdatlo)
-      CALL ef_get_box_hi_lim(id, ARG1, T_AXIS,
-     .   arg_lo_ss(T_AXIS, ARG1), arg_hi_ss(T_AXIS, ARG1), taxdathi)
+      ilo = arg_lo_ss(X_AXIS,ARG1)
+      ihi = arg_hi_ss(X_AXIS,ARG1)
+      jlo = arg_lo_ss(Y_AXIS,ARG1)
+      jhi = arg_hi_ss(Y_AXIS,ARG1)
+      llo = arg_lo_ss(T_AXIS,ARG1)
+      lhi = arg_hi_ss(T_AXIS,ARG1)
+
+      CALL ef_get_coordinates(id, ARG1, X_AXIS, ilo, ihi, xaxdat)
+      CALL ef_get_coordinates(id, ARG1, Y_AXIS, jlo, jhi, yaxdat)
+      CALL ef_get_coordinates(id, ARG1, T_AXIS, llo, lhi, taxdat)
+      CALL ef_get_box_lo_lim(id, ARG1, T_AXIS, llo, lhi, tboxlo)
+      CALL ef_get_box_hi_lim(id, ARG1, T_AXIS, llo, lhi, tboxhi)
+
+*  Check to see if input x axis is modulo, and if axes are regular.
+
+      CALL ef_get_axis_info_6d(id, ARG1, ax_name, ax_units,
+     .                         backward, modulo, regular)
+      IF ( regular(1) ) THEN
+         dx = xaxdat(ilo+1) - xaxdat(ilo)
+         dxlo = dx/2.
+         dxhi = dx/2.
+      ELSE
+         CALL ef_get_box_limits(id, ARG1, X_AXIS, ilo, ihi,
+     .                          xboxlo, xboxhi)
+         dxlo = (xboxlo(ilo+1) - xboxlo(ilo) ) / 2.
+         dxhi = (xboxhi(ihi) - xboxhi(ihi-1) ) / 2.
+      ENDIF
+
+      IF ( regular(2) ) THEN
+         dy = yaxdat(jlo+1) - yaxdat(jlo)
+         dylo = dy/2.
+         dyhi = dy/2.
+      ELSE
+         CALL ef_get_box_limits(id, ARG1, Y_AXIS, jlo, jhi,
+     .                          yboxlo, yboxhi)
+         dylo = (yboxlo(jlo+1) - yboxlo(jlo) )/ 2.
+         dyhi = (yboxhi(jhi) - yboxlo(jhi-1) )/ 2.
+      ENDIF
+
+      IF ( regular(3) ) THEN
+         dt = taxdat(llo+1) - yaxdat(llo)
+         dtlo = dy/2.
+         dthi = dy/2.
+      ELSE
+         CALL ef_get_box_limits(id, ARG1, T_AXIS, llo, lhi,
+     .                          tboxlo, tboxhi)
+         dtlo = (tboxlo(llo+1) - tboxlo(llo) )/ 2.
+         dthi = (tboxhi(lhi) - tboxlo(lhi-1) )/ 2.
+      ENDIF
+      
 
 *  Check to see if input x axis is modulo
 
@@ -425,23 +479,25 @@ C  variables for checking axis characteristics (modulo axes)
 
       IF ( modulo(1) ) THEN
          ic = STR_UPCASE (test_str, ax_units(1))
-         ok = (test_str(1:3) .EQ. 'DEG' .OR. regular(1))
-         IF ( .NOT. ok ) THEN
-            err_msg = 'cannot handle MODULO X axis that is not regular'
-            GO TO 999
+         ok = (test_str(1:3) .EQ. 'DEG') 
+         dx = xaxdat(ilo+1) - xaxdat(ilo)
+         delmodx = (xaxdat(ihi) + dxhi) -
+     .             (xaxdat(ilo) - dxlo)
+         IF ( .NOT. regular(1) )
+     .      delmodx = xboxhi(ihi) - xboxlo(ilo)
+         IF ( ok ) THEN 
+            full_span = (delmodx .GT. 360.-dx)
+            delmodx = 360.
+         ELSE
+            full_span = .TRUE.
          ENDIF
-         dx = xaxdat(xlo+1) - xaxdat(xlo)
-         delmodx = 360.
-         xaxdat(xhi+1) = xaxdat(xlo)
       ENDIF
+
       IF ( modulo(4) ) THEN
-         IF ( .NOT. regular(4) ) THEN
-            err_msg = 'cannot handle MODULO T axis that is not regular'
-            GO TO 999
-         ENDIF
-         dt = taxdathi(tlo) - taxdatlo(tlo)
-         delmodt = taxdat(thi) - taxdat(tlo) + dt
-         taxdat(thi+1) = taxdat(tlo)
+	 dt = tboxhi(tlo) - tboxlo(tlo)
+	 delmodt = taxdat(thi) - taxdat(tlo) + dt
+	 IF (.NOT.regular(4)) delmodt = tboxhi(thi) - tboxlo(tlo)
+	 taxdat(thi+1) = taxdat(tlo)
       ENDIF
 
 *  For each (xpt,ypt,tpt) triple, 
@@ -494,10 +550,10 @@ C  variables for checking axis characteristics (modulo axes)
 
 * Try to get tpt in range if the T-axis is modulo
          IF ( modulo(4) ) THEN
-            DO WHILE ( tpt .GE. taxdathi(thi) ) 
+            DO WHILE ( tpt .GE. tboxhi(thi) ) 
                tpt = tpt - delmodt
             ENDDO
-            DO WHILE ( tpt .LT. taxdatlo(tlo) )
+            DO WHILE ( tpt .LT. tboxlo(tlo) )
                tpt = tpt + delmodt
             ENDDO
          ENDIF
@@ -509,13 +565,13 @@ C  variables for checking axis characteristics (modulo axes)
             IF ( TM_FPEQ(tpt, taxdat(l1)) ) THEN
                lmatch = l1
                GOTO 420
-            ELSE IF ( tpt .GE. taxdatlo(l1) ) THEN
+            ELSE IF ( tpt .GE. tboxlo(l1) ) THEN
                lbot = l1
             ENDIF
   410    CONTINUE
 
 * Check that tpt is not beyond the upper end of the T-axis range.
-         IF ( tpt .GT. taxdathi(thi) ) THEN
+         IF ( tpt .GT. tboxhi(thi) ) THEN
             IF ( .NOT. modulo(4) )
      .         lbot = ef_unspecified_int4
          ENDIF
@@ -524,7 +580,7 @@ C  variables for checking axis characteristics (modulo axes)
             lbot = lmatch
             ltop = lmatch
          ELSE IF ( lbot .NE. ef_unspecified_int4 ) THEN
-*           using cell bounds taxdatlo, taxdathi
+*           using cell bounds tboxlo, tboxhi
             ltop = lbot
          ELSE
 *           tpt outside the grid
@@ -537,8 +593,8 @@ C  variables for checking axis characteristics (modulo axes)
             GOTO 690
          ENDIF
 
-         tbot = taxdatlo(lbot)
-         ttop = taxdathi(ltop)
+         tbot = tboxlo(lbot)
+         ttop = tboxhi(ltop)
 
          IF ( modulo(4) .AND. (ttop .LT. tbot) ) THEN
             lbot = thi
@@ -554,52 +610,110 @@ C  variables for checking axis characteristics (modulo axes)
          ENDIF
          tfrac_hi = 1. - tfrac_lo
  
-* Try to get xpt in range if the X-axis is modulo
-         IF ( modulo(1) ) THEN
-            DO WHILE ( xpt .GE. xaxdat(xhi) ) 
-               xpt = xpt - delmodx
-            ENDDO
-            DO WHILE ( xpt .LT. xaxdat(xlo) )
-               xpt = xpt + delmodx
-            ENDDO
-         ENDIF
 
-* Check if xpt is in the X-axis range.
+
+* Flag for outside of a modulo axis
+         xflag = 0
+
+* Check if xpt is in the x-axis range.
          ibot = ef_unspecified_int4
+         itop = ef_unspecified_int4
          imatch = ef_unspecified_int4
+*  Locate the X point within the range of modulo X axis 
+*  If we have the whole span, then use the point at the other
+*  end to handle points within a half-grid cell of the edge.
+
+         IF ( modulo(1) .AND. full_span ) THEN
+            IF ( xpt .GE. xaxdat(ihi) .AND.
+     .           xpt .LE. xaxdat(ihi) + dxhi ) THEN
+               ibot = ihi
+               xflag = 1
+            ELSE IF ( xpt .GE. xaxdat(ihi) ) THEN
+               DO WHILE ( xpt .GE. xaxdat(ihi) ) 
+                  xpt = xpt - delmodx
+               ENDDO
+            ENDIF
+
+            IF ( xpt .LT. xaxdat(ilo) .AND.
+     .           xpt .GE. xaxdat(ilo) - dxlo ) THEN
+               itop = ilo
+               xflag = -1
+            ELSE IF ( xpt .LT. xaxdat(ilo) ) THEN
+               DO WHILE (xpt .LT. xaxdat(ilo) )
+                  xpt = xpt + delmodx
+               ENDDO
+            ENDIF
+	 ENDIF
+
+* Source variable has subspan-modulo axis 
+
+         IF ( modulo(1) .AND. .NOT.full_span ) THEN
+            IF (modulo(1) .AND. xpt .GE. xaxdat(ihi) ) THEN
+               DO WHILE ( xpt .GE. xaxdat(ihi) ) 
+               xpt = xpt - delmodx
+               ENDDO
+            ENDIF
 
-         DO 110 i1 = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1)
+	    IF (modulo(1) .AND. xpt .LT. xaxdat(ilo) ) THEN
+               DO WHILE (xpt .LT. xaxdat(ilo) )
+                  xpt = xpt + delmodx
+               ENDDO
+            ENDIF
+         ENDIF
+
+         DO 120 i1 = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1)
             IF ( TM_FPEQ(xpt, xaxdat(i1)) ) THEN
                imatch = i1
-               GOTO 120
-            ELSE IF ( xpt .GT. xaxdat(i1) ) THEN
+               GOTO 130
+            ELSE IF ( i1  .EQ. arg_lo_ss(X_AXIS,ARG1)     .AND.
+     .                xpt .LT. xaxdat(i1)       .AND.
+     .                xpt .GT. xaxdat(i1)-dxhi  .AND.
+     .               .NOT. modulo(1) ) THEN
                ibot = i1
+            ELSE IF ( xpt .GE. xaxdat(i1) ) THEN
+               ibot = i1
+            ENDIF
+ 120     CONTINUE
+
+         IF ( .NOT. modulo(1) .OR. (modulo(1) .AND..NOT.full_span )) THEN
+            IF ( xpt .GT. xaxdat(ihi) .AND.
+     .           xpt .LT. xaxdat(ihi) + dxhi ) THEN
+               ibot = ihi
+            ELSE IF ( xpt .GT. xaxdat(ihi) ) THEN
+               ibot = ef_unspecified_int4   ! ARG_2 XPT outside of range 
             ENDIF
-  110    CONTINUE
+         ENDIF
 
-* Check that xpt is not beyond the upper end of the X-axis range.
-         IF ( xpt .GT. xaxdat(xhi) ) THEN
-            IF ( .NOT. modulo(1) ) 
-     .         ibot = ef_unspecified_int4
+* If the data is at the very top or bottom of a full-span modulo x axis, get the
+* point from the other end.
+
+         IF ( xflag .EQ. 1 ) THEN
+            ibot = ihi
+            itop = ilo
+         ENDIF
+         IF ( xflag .EQ. -1 ) THEN
+            itop = ilo
+            ibot = ihi
          ENDIF
 
-  120    IF ( imatch .NE. ef_unspecified_int4 ) THEN
+ 130    IF ( imatch .NE. ef_unspecified_int4 ) THEN
             ibot = imatch
             itop = imatch
          ELSE IF ( ibot .NE. ef_unspecified_int4 ) THEN
 * If modulo(1) then there is an extra xaxdat so itop is in range
             itop = ibot + 1
          ELSE
-*           xpt outside the grid
-            DO 130 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
-            DO 130 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
-            DO 130 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+*           xpt is outside the grid
+            DO 140 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+            DO 140 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+            DO 140 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
                result(i,j,k,l,m,n) = bad_flag_result
-  130       CONTINUE
+  140       CONTINUE
 *           Go to the next triplet of coordinates
             GOTO 690
          ENDIF
 
+
          xbot = xaxdat(ibot)
          xtop = xaxdat(itop)
          IF ( modulo(1) .AND. (xtop .LT. xbot) ) THEN
@@ -657,6 +771,8 @@ C  variables for checking axis characteristics (modulo axes)
             yfrac = (ypt - ybot) / (ytop - ybot)
          ENDIF
 
+
+
 * Loop through the Z/E/F axes, assigning results for this coordinate pair
          n1 = arg_lo_ss(F_AXIS,ARG1)
          DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
diff --git a/fer/efi/samplexyt_nrst.F b/fer/efi/samplexyt_nrst.F
index 2d85e59..9a4678f 100644
--- a/fer/efi/samplexyt_nrst.F
+++ b/fer/efi/samplexyt_nrst.F
@@ -106,7 +106,7 @@
      .                                IMPLIED_BY_ARGS, NORMAL,
      .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
       CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
-      CALL ef_set_num_work_arrays(id, 5)
+      CALL ef_set_num_work_arrays(id, 9)
 
       arg = 1
       CALL ef_set_arg_name(id, arg, 'DAT_TO_SAMPLE')
@@ -216,51 +216,56 @@
 *                           xhi, yhi, zhi, thi, ehi, fhi)
 *
 
-      INTEGER mxh, myh, mth, mxl, myl, mtl
       INTEGER arg_lo_ss(6,EF_MAX_ARGS),
      .        arg_hi_ss(6,EF_MAX_ARGS),
      .        arg_incr (6,EF_MAX_ARGS)
 
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
 
-* Allocate double the length of the axes for REAL*8 work arrays.
-* For x and t axes allow yet one more point for handling modulo axes
-
-      mxl = arg_lo_ss(X_AXIS,ARG1)
-      myl = arg_lo_ss(Y_AXIS,ARG1)
-      mtl = arg_lo_ss(T_AXIS,ARG1)
-
-      mxh = mxl + 
-     .     2* (arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1) + 2)
-      myh = myl + 
-     .     2* (arg_hi_ss(Y_AXIS,ARG1) - arg_lo_ss(Y_AXIS,ARG1) + 1)
-      mth = mtl + 
-     .     2* (arg_hi_ss(T_AXIS,ARG1) - arg_lo_ss(T_AXIS,ARG1) + 2)
-
 *  xaxdat
       CALL ef_set_work_array_dims_6d(id, 1,
-     .                              mxl, 1, 1, 1, 1, 1,
-     .                              mxh, 1, 1, 1, 1, 1)
+     .          arg_lo_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(X_AXIS,ARG1)+1, 1, 1, 1, 1, 1)
 
 *  yaxdat
       CALL ef_set_work_array_dims_6d(id, 2,
-     .                              myl, 1, 1, 1, 1, 1,
-     .                              myh, 1, 1, 1, 1, 1)
+     .          arg_lo_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1)
 
 *  taxdat
       CALL ef_set_work_array_dims_6d(id, 3,
-     .                              mtl, 1, 1, 1, 1, 1,
-     .                              mth, 1, 1, 1, 1, 1)
-
-*  taxdatlo
+     .          arg_lo_ss(T_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(T_AXIS,ARG1)+1, 1, 1, 1, 1, 1)
+     
+*  xboxlo
       CALL ef_set_work_array_dims_6d(id, 4,
-     .                              mtl, 1, 1, 1, 1, 1,
-     .                              mth, 1, 1, 1, 1, 1)
+     .          arg_lo_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1)
 
-*  taxdathi
+*  xboxhi
       CALL ef_set_work_array_dims_6d(id, 5,
-     .                              mtl, 1, 1, 1, 1, 1,
-     .                              mth, 1, 1, 1, 1, 1)
+     .          arg_lo_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(X_AXIS,ARG1), 1, 1, 1, 1, 1)
+
+*  yboxlo
+      CALL ef_set_work_array_dims_6d(id, 6,
+     .          arg_lo_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1)
+
+*  yboxhi
+      CALL ef_set_work_array_dims_6d(id, 7,
+     .          arg_lo_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(Y_AXIS,ARG1), 1, 1, 1, 1, 1)
+
+*  tboxlo
+      CALL ef_set_work_array_dims_6d(id, 8,
+     .          arg_lo_ss(T_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(T_AXIS,ARG1), 1, 1, 1, 1, 1)
+
+*  tboxhi
+      CALL ef_set_work_array_dims_6d(id, 9,
+     .          arg_lo_ss(T_AXIS,ARG1), 1, 1, 1, 1, 1,
+     .          arg_hi_ss(T_AXIS,ARG1), 1, 1, 1, 1, 1)
 
 *                                                                      ^
 *                                                                      |
@@ -275,7 +280,8 @@
 * In this subroutine we compute the result
 *
       SUBROUTINE samplexyt_nrst_compute(id, arg_1, arg_2, arg_3, arg_4,
-     .         result, xaxdat, yaxdat, taxdat, taxdatlo, taxdathi)
+     .         result, xaxdat, yaxdat, taxdat, xboxlo, xboxhi, 
+     .         yboxlo, yboxhi, tboxlo, tboxhi)
 
       IMPLICIT NONE
       INCLUDE 'EF_Util.cmn'
@@ -300,11 +306,15 @@
 
 * Ignore the Y/Z/T/E/F dimensions in the work arrays since
 * they are not used and Fortran is column major
-      REAL*8 xaxdat(wrk1lox:wrk1lox+(wrk1hix-wrk1lox)/2)
-      REAL*8 yaxdat(wrk2lox:wrk2lox+(wrk2hix-wrk2lox)/2)
-      REAL*8 taxdat(wrk3lox:wrk3lox+(wrk3hix-wrk3lox)/2)
-      REAL*8 taxdatlo(wrk4lox:wrk4lox+(wrk4hix-wrk4lox)/2)
-      REAL*8 taxdathi(wrk5lox:wrk5lox+(wrk5hix-wrk5lox)/2)
+      REAL*8 xaxdat(wrk1lox:wrk1hix)
+      REAL*8 yaxdat(wrk2lox:wrk2hix)
+      REAL*8 taxdat(wrk3lox:wrk3hix)
+      REAL*8 xboxlo(wrk4lox:wrk4hix)
+      REAL*8 xboxhi(wrk5lox:wrk5hix)
+      REAL*8 yboxlo(wrk6lox:wrk6hix)
+      REAL*8 yboxhi(wrk7lox:wrk7hix)
+      REAL*8 tboxlo(wrk8lox:wrk8hix)
+      REAL*8 tboxhi(wrk9lox:wrk9hix)
 
 * After initialization, the 'res_' arrays contain indexing information 
 * for the result axes.  The 'arg_' arrays will contain the indexing 
@@ -325,7 +335,7 @@
 *                                                                     V
 
       INTEGER STR_UPCASE
-      LOGICAL TM_FPEQ
+      LOGICAL TM_FPEQ, full_span
 
       INTEGER nx, nxx, nxy, nxz, nxt, nxe, nxf
       INTEGER ny, nyx, nyy, nyz, nyt, nye, nyf
@@ -336,14 +346,17 @@
       INTEGER i2, j2, k2, l2, m2, n2
       INTEGER i3, j3, k3, l3, m3, n3
       INTEGER i4, j4, k4, l4, m4, n4
-      INTEGER ic, imatch, jmatch, lmatch
+      INTEGER ic, imatch, jmatch, lmatch, xflag
       INTEGER ibot, itop, jbot, jtop, lbot, ltop
       INTEGER xlo, xhi, ylo, yhi, tlo, thi
+      INTEGER ilo, ihi, jlo, jhi, llo, lhi
       LOGICAL ok
-
+      REAL fxbot, fxtop, fbb, ftb, fbt, ftt, aa, bb
       REAL xbot, xtop, ybot, ytop, tbot, ttop
       REAL x_to_xbot, x_to_xtop, y_to_ybot, y_to_ytop, t_to_tbot, t_to_ttop
-      REAL dx, dt, delmodx, delmodt, xpt, ypt, tpt
+
+      REAL dx, dy, dt, delmodx, delmodt, xpt, ypt, tpt
+      REAL dxlo, dxhi, dylo, dyhi, dtlo, dthi
       CHARACTER err_msg*255, test_str*16
 
 C  variables for checking axis characteristics (modulo axes)
@@ -402,16 +415,56 @@ C  variables for checking axis characteristics (modulo axes)
 
 *  Get x, y, t coordinates of the data to be sampled.
 
-      CALL ef_get_coordinates(id, ARG1, X_AXIS,
-     .   arg_lo_ss(X_AXIS, ARG1), arg_hi_ss(X_AXIS, ARG1), xaxdat)
-      CALL ef_get_coordinates(id, ARG1, Y_AXIS,
-     .   arg_lo_ss(Y_AXIS, ARG1), arg_hi_ss(Y_AXIS, ARG1), yaxdat)
-      CALL ef_get_coordinates(id, ARG1, T_AXIS,
-     .   arg_lo_ss(T_AXIS, ARG1), arg_hi_ss(T_AXIS, ARG1), taxdat)
-      CALL ef_get_box_lo_lim(id, ARG1, T_AXIS,
-     .   arg_lo_ss(T_AXIS, ARG1), arg_hi_ss(T_AXIS, ARG1), taxdatlo)
-      CALL ef_get_box_hi_lim(id, ARG1, T_AXIS,
-     .   arg_lo_ss(T_AXIS, ARG1), arg_hi_ss(T_AXIS, ARG1), taxdathi)
+      ilo = arg_lo_ss(X_AXIS,ARG1)
+      ihi = arg_hi_ss(X_AXIS,ARG1)
+      jlo = arg_lo_ss(Y_AXIS,ARG1)
+      jhi = arg_hi_ss(Y_AXIS,ARG1)
+      llo = arg_lo_ss(T_AXIS,ARG1)
+      lhi = arg_hi_ss(T_AXIS,ARG1)
+
+      CALL ef_get_coordinates(id, ARG1, X_AXIS, ilo, ihi, xaxdat)
+      CALL ef_get_coordinates(id, ARG1, Y_AXIS, jlo, jhi, yaxdat)
+      CALL ef_get_coordinates(id, ARG1, T_AXIS, llo, lhi, taxdat)
+      CALL ef_get_box_lo_lim(id, ARG1, T_AXIS, llo, lhi, tboxlo)
+      CALL ef_get_box_hi_lim(id, ARG1, T_AXIS, llo, lhi, tboxhi)
+
+*  Check to see if input x axis is modulo, and if axes are regular.
+
+      CALL ef_get_axis_info_6d(id, ARG1, ax_name, ax_units,
+     .                         backward, modulo, regular)
+      IF ( regular(1) ) THEN
+         dx = xaxdat(ilo+1) - xaxdat(ilo)
+         dxlo = dx/2.
+         dxhi = dx/2.
+      ELSE
+         CALL ef_get_box_limits(id, ARG1, X_AXIS, ilo, ihi,
+     .                          xboxlo, xboxhi)
+         dxlo = (xboxlo(ilo+1) - xboxlo(ilo) ) / 2.
+         dxhi = (xboxhi(ihi) - xboxhi(ihi-1) ) / 2.
+      ENDIF
+
+      IF ( regular(2) ) THEN
+         dy = yaxdat(jlo+1) - yaxdat(jlo)
+         dylo = dy/2.
+         dyhi = dy/2.
+      ELSE
+         CALL ef_get_box_limits(id, ARG1, Y_AXIS, jlo, jhi,
+     .                          yboxlo, yboxhi)
+         dylo = (yboxlo(jlo+1) - yboxlo(jlo) )/ 2.
+         dyhi = (yboxhi(jhi) - yboxlo(jhi-1) )/ 2.
+      ENDIF
+
+      IF ( regular(3) ) THEN
+         dt = taxdat(llo+1) - yaxdat(llo)
+         dtlo = dy/2.
+         dthi = dy/2.
+      ELSE
+         CALL ef_get_box_limits(id, ARG1, T_AXIS, llo, lhi,
+     .                          tboxlo, tboxhi)
+         dtlo = (tboxlo(llo+1) - tboxlo(llo) )/ 2.
+         dthi = (tboxhi(lhi) - tboxlo(lhi-1) )/ 2.
+      ENDIF
+      
 
 *  Check to see if input x axis is modulo
 
@@ -427,23 +480,25 @@ C  variables for checking axis characteristics (modulo axes)
 
       IF ( modulo(1) ) THEN
          ic = STR_UPCASE (test_str, ax_units(1))
-         ok = (test_str(1:3) .EQ. 'DEG' .OR. regular(1))
-         IF ( .NOT. ok ) THEN
-            err_msg = 'cannot handle MODULO X axis that is not regular'
-            GO TO 999
+         ok = (test_str(1:3) .EQ. 'DEG') 
+         dx = xaxdat(ilo+1) - xaxdat(ilo)
+         delmodx = (xaxdat(ihi) + dxhi) -
+     .             (xaxdat(ilo) - dxlo)
+         IF ( .NOT. regular(1) )
+     .      delmodx = xboxhi(ihi) - xboxlo(ilo)
+         IF ( ok ) THEN 
+            full_span = (delmodx .GT. 360.-dx)
+            delmodx = 360.
+         ELSE
+            full_span = .TRUE.
          ENDIF
-         dx = xaxdat(xlo+1) - xaxdat(xlo)
-         delmodx = 360.
-         xaxdat(xhi+1) = xaxdat(xlo)
       ENDIF
+
       IF ( modulo(4) ) THEN
-         IF ( .NOT. regular(4) ) THEN
-            err_msg = 'cannot handle MODULO T axis that is not regular'
-            GO TO 999
-         ENDIF
-         dt = taxdathi(tlo) - taxdatlo(tlo)
-         delmodt = taxdat(thi) - taxdat(tlo) + dt
-         taxdat(thi+1) = taxdat(tlo)
+	 dt = tboxhi(tlo) - tboxlo(tlo)
+	 delmodt = taxdat(thi) - taxdat(tlo) + dt
+	 IF (.NOT.regular(4)) delmodt = tboxhi(thi) - tboxlo(tlo)
+	 taxdat(thi+1) = taxdat(tlo)
       ENDIF
 
 *  For each (xpt,ypt,tpt) triple, 
@@ -496,10 +551,10 @@ C  variables for checking axis characteristics (modulo axes)
 
 * Try to get tpt in range if the T-axis is modulo
          IF ( modulo(4) ) THEN
-            DO WHILE ( tpt .GE. taxdathi(thi) ) 
+            DO WHILE ( tpt .GE. tboxhi(thi) ) 
                tpt = tpt - delmodt
             ENDDO
-            DO WHILE ( tpt .LT. taxdatlo(tlo) )
+            DO WHILE ( tpt .LT. tboxlo(tlo) )
                tpt = tpt + delmodt
             ENDDO
          ENDIF
@@ -511,13 +566,13 @@ C  variables for checking axis characteristics (modulo axes)
             IF ( TM_FPEQ(tpt, taxdat(l1)) ) THEN
                lmatch = l1
                GOTO 420
-            ELSE IF ( tpt .GE. taxdatlo(l1) ) THEN
+            ELSE IF ( tpt .GE. tboxlo(l1) ) THEN
                lbot = l1
             ENDIF
   410    CONTINUE
 
 * Check that tpt is not beyond the upper end of the T-axis range.
-         IF ( tpt .GT. taxdathi(thi) ) THEN
+         IF ( tpt .GT. tboxhi(thi) ) THEN
             IF ( .NOT. modulo(4) )
      .         lbot = ef_unspecified_int4
          ENDIF
@@ -526,7 +581,7 @@ C  variables for checking axis characteristics (modulo axes)
             lbot = lmatch
             ltop = lmatch
          ELSE IF ( lbot .NE. ef_unspecified_int4 ) THEN
-*           using cell bounds taxdatlo, taxdathi
+*           using cell bounds tboxlo, tboxhi
             ltop = lbot
          ELSE
 *           tpt outside the grid
@@ -539,8 +594,8 @@ C  variables for checking axis characteristics (modulo axes)
             GOTO 690
          ENDIF
 
-         tbot = taxdatlo(lbot)
-         ttop = taxdathi(ltop)
+         tbot = tboxlo(lbot)
+         ttop = tboxhi(ltop)
 
          IF ( modulo(4) .AND. (ttop .LT. tbot) ) THEN
             lbot = thi
@@ -560,49 +615,104 @@ C  variables for checking axis characteristics (modulo axes)
          IF (l1.LT.arg_lo_ss(T_AXIS,ARG1) .OR. l1.GT.arg_hi_ss(T_AXIS,ARG1)) THEN
 	    l1 = ef_unspecified_int4
 	 ENDIF
- 
-* Try to get xpt in range if the X-axis is modulo
-         IF ( modulo(1) ) THEN
-            DO WHILE ( xpt .GE. xaxdat(xhi) ) 
-               xpt = xpt - delmodx
-            ENDDO
-            DO WHILE ( xpt .LT. xaxdat(xlo) )
-               xpt = xpt + delmodx
-            ENDDO
-         ENDIF
 
-* Check if xpt is in the X-axis range.
+* Flag for outside of a modulo axis
+         xflag = 0
+
+* Check if xpt is in the x-axis range.
          ibot = ef_unspecified_int4
+         itop = ef_unspecified_int4
          imatch = ef_unspecified_int4
+*  Locate the X point within the range of modulo X axis 
+*  If we have the whole span, then use the point at the other
+*  end to handle points within a half-grid cell of the edge.
+
+         IF ( modulo(1) .AND. full_span ) THEN
+            IF ( xpt .GE. xaxdat(ihi) .AND.
+     .           xpt .LE. xaxdat(ihi) + dxhi ) THEN
+               ibot = ihi
+               xflag = 1
+            ELSE IF ( xpt .GE. xaxdat(ihi) ) THEN
+               DO WHILE ( xpt .GE. xaxdat(ihi) ) 
+                  xpt = xpt - delmodx
+               ENDDO
+            ENDIF
 
-         DO 110 i1 = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1)
+            IF ( xpt .LT. xaxdat(ilo) .AND.
+     .           xpt .GE. xaxdat(ilo) - dxlo ) THEN
+               itop = ilo
+               xflag = -1
+            ELSE IF ( xpt .LT. xaxdat(ilo) ) THEN
+               DO WHILE (xpt .LT. xaxdat(ilo) )
+                  xpt = xpt + delmodx
+               ENDDO
+            ENDIF
+	 ENDIF
+
+* Source variable has subspan-modulo axis 
+
+         IF ( modulo(1) .AND. .NOT.full_span ) THEN
+            IF (modulo(1) .AND. xpt .GE. xaxdat(ihi) ) THEN
+               DO WHILE ( xpt .GE. xaxdat(ihi) ) 
+               xpt = xpt - delmodx
+               ENDDO
+            ENDIF
+
+	    IF (modulo(1) .AND. xpt .LT. xaxdat(ilo) ) THEN
+               DO WHILE (xpt .LT. xaxdat(ilo) )
+                  xpt = xpt + delmodx
+               ENDDO
+            ENDIF
+         ENDIF
+
+         DO 120 i1 = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1)
             IF ( TM_FPEQ(xpt, xaxdat(i1)) ) THEN
                imatch = i1
-               GOTO 120
-            ELSE IF ( xpt .GT. xaxdat(i1) ) THEN
+               GOTO 130
+            ELSE IF ( i1  .EQ. arg_lo_ss(X_AXIS,ARG1)     .AND.
+     .                xpt .LT. xaxdat(i1)       .AND.
+     .                xpt .GT. xaxdat(i1)-dxhi  .AND.
+     .               .NOT. modulo(1) ) THEN
+               ibot = i1
+            ELSE IF ( xpt .GE. xaxdat(i1) ) THEN
                ibot = i1
             ENDIF
-  110    CONTINUE
+ 120     CONTINUE
+
+         IF ( .NOT. modulo(1) .OR. (modulo(1) .AND..NOT.full_span )) THEN
+            IF ( xpt .GT. xaxdat(ihi) .AND.
+     .           xpt .LT. xaxdat(ihi) + dxhi ) THEN
+               ibot = ihi
+            ELSE IF ( xpt .GT. xaxdat(ihi) ) THEN
+               ibot = ef_unspecified_int4   ! ARG_2 XPT outside of range 
+            ENDIF
+         ENDIF
+
+* If the data is at the very top or bottom of a full-span modulo x axis, get the
+* point from the other end.
 
-* Check that xpt is not beyond the upper end of the X-axis range.
-         IF ( xpt .GT. xaxdat(xhi) ) THEN
-            IF ( .NOT. modulo(1) ) 
-     .         ibot = ef_unspecified_int4
+         IF ( xflag .EQ. 1 ) THEN
+            ibot = ihi
+            itop = ilo
+         ENDIF
+         IF ( xflag .EQ. -1 ) THEN
+            itop = ilo
+            ibot = ihi
          ENDIF
 
-  120    IF ( imatch .NE. ef_unspecified_int4 ) THEN
+ 130    IF ( imatch .NE. ef_unspecified_int4 ) THEN
             ibot = imatch
             itop = imatch
          ELSE IF ( ibot .NE. ef_unspecified_int4 ) THEN
 * If modulo(1) then there is an extra xaxdat so itop is in range
             itop = ibot + 1
          ELSE
-*           xpt outside the grid
-            DO 130 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
-            DO 130 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
-            DO 130 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+*           xpt is outside the grid
+            DO 140 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+            DO 140 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+            DO 140 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
                result(i,j,k,l,m,n) = bad_flag_result
-  130       CONTINUE
+  140       CONTINUE
 *           Go to the next triplet of coordinates
             GOTO 690
          ENDIF
@@ -624,7 +734,7 @@ C  variables for checking axis characteristics (modulo axes)
             i1 = ibot+1
          ENDIF
          IF (i1.LT.arg_lo_ss(X_AXIS,ARG1) .OR. i1.GT.arg_hi_ss(X_AXIS,ARG1)) THEN
-	    IF (modulo(1)) THEN 
+	    IF (modulo(1) .AND. full_span) THEN 
 	       IF (i1.LT.arg_lo_ss(X_AXIS,ARG1)) i1 = arg_hi_ss(X_AXIS,ARG1)
 	       IF (i1.GT.arg_hi_ss(X_AXIS,ARG1)) i1 = arg_lo_ss(X_AXIS,ARG1)
 	    ELSE
@@ -679,6 +789,8 @@ C  variables for checking axis characteristics (modulo axes)
 	    j1 = ef_unspecified_int4
 	 ENDIF
 
+
+
 * Loop through the Z/E/F axes, assigning results for this coordinate pair
          n1 = arg_lo_ss(F_AXIS,ARG1)
          DO 600 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
diff --git a/fer/efi/separate.F b/fer/efi/separate.F
index deacdd9..f466e66 100644
--- a/fer/efi/separate.F
+++ b/fer/efi/separate.F
@@ -142,28 +142,32 @@
       INTEGER arg_lo_ss(6,EF_MAX_ARGS), arg_hi_ss(6,EF_MAX_ARGS),
      .     arg_incr(6,EF_MAX_ARGS)
 
-      INTEGER nx, nr, lo_lim, hi_lim
+      INTEGER nx, nr, nee, lo_lim, hi_lim
+      CHARACTER*100 errtxt
 
       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
 
 * will add a point for each row
 
-      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
       nr = arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss( E_AXIS, ARG2) + 1
+      nee = arg_hi_ss(X_AXIS, ARG2) - arg_lo_ss( X_AXIS, ARG2) + 1
+      
+      IF (nee .GT. nr) THEN
+         IF (nr .NE. 1) THEN
+	    errtxt = 'Error argument 2 must be 1D and on X or E axis'
+	    GOTO 999
+	 ENDIF
+	 nr = nee
+      ENDIF
 
       lo_lim = 1
       hi_lim = nx + nr - 1
       CALL ef_set_axis_limits(id, X_AXIS, lo_lim, hi_lim)
 
-
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
       RETURN 
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+
       END
 
 
@@ -206,7 +210,7 @@
 *                                                                      V
 
       INTEGER i, i1, ir, k, m
-      INTEGER nx, ne, msum, rend
+      INTEGER nx, msum, rend, nrr, nee, row_axis
       REAL fixlon, tol, nothing
       LOGICAL ifix
 
@@ -217,7 +221,12 @@
       k = res_lo_ss(Z_AXIS)  ! index for unused dimensions
 
       nx = arg_hi_ss(X_AXIS, ARG1) - arg_lo_ss(X_AXIS, ARG1) + 1
-      ne = arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss(E_AXIS, ARG2) + 1
+
+      nee = arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss( E_AXIS, ARG2) + 1
+      nrr = arg_hi_ss(X_AXIS, ARG2) - arg_lo_ss( X_AXIS, ARG2) + 1
+
+      row_axis = E_AXIS
+      IF (nrr .GT. nee) row_axis = X_AXIS
 
       CALL ef_get_one_val(id, arg3, fixlon)
       ifix =  (fixlon .GT. 0.8)
@@ -226,10 +235,15 @@
       i1 = 1
       ir = 1
       msum = 0
-      DO m = arg_lo_ss(E_AXIS,ARG2), arg_hi_ss(E_AXIS, ARG2)
-         rend = arg_2(k,k,k,k,m,k)
+      DO m = arg_lo_ss(row_axis,ARG2), arg_hi_ss(row_axis, ARG2)
+         IF (row_axis .EQ. E_AXIS) THEN
+	    rend = arg_2(k,k,k,k,m,k)
+	 ELSE
+	    rend = arg_2(m,k,k,k,k,k)
+	 ENDIF
 	 msum = msum + rend
 	 IF (msum .GT. nx) msum = nx+1
+	 IF (msum .GT. nx) msum = nx-1
 	 DO i = i1, msum
 	    IF (arg_1(i,k,k,k,k,k) .NE. bad_flag(ARG1)) THEN
 	       result(ir) = arg_1(i,k,k,k,k,k)
@@ -255,7 +269,5 @@
       ENDDO
 
  9000 RETURN
-c 999  CALL EF_BAIL_OUT(id, errtxt)
-      RETURN
 
       END
diff --git a/fer/efi/separate_str.F b/fer/efi/separate_str.F
index c2509d7..0f728f0 100644
--- a/fer/efi/separate_str.F
+++ b/fer/efi/separate_str.F
@@ -142,29 +142,32 @@
       INTEGER arg_lo_ss(6,EF_MAX_ARGS), arg_hi_ss(6,EF_MAX_ARGS),
      .     arg_incr(6,EF_MAX_ARGS)
 
-      INTEGER nx, nr, lo_lim, hi_lim
+      INTEGER nx, nr, nee, lo_lim, hi_lim
+      CHARACTER*100 errtxt
 
       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
 
 * will add a point for each row
 
-      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
-      nr = MAX( (arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss( E_AXIS, ARG2) + 1), 
-     .          (arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss( E_AXIS, ARG2) + 1) )
+      nr = arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss( E_AXIS, ARG2) + 1
+      nee = arg_hi_ss(X_AXIS, ARG2) - arg_lo_ss( X_AXIS, ARG2) + 1
+      
+      IF (nee .GT. nr) THEN
+         IF (nr .NE. 1) THEN
+	    errtxt = 'Error argument 2 must be 1D and on X or E axis'
+	    GOTO 999
+	 ENDIF
+	 nr = nee
+      ENDIF
 
       lo_lim = 1
       hi_lim = nx + nr - 1
       CALL ef_set_axis_limits(id, X_AXIS, lo_lim, hi_lim)
 
+      RETURN
+ 999  CALL EF_BAIL_OUT(id, errtxt)
 
-
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
-      RETURN 
       END
 
 
@@ -207,7 +210,7 @@
 *                                                                      V
 
       INTEGER i, i1, ir, k, m, slen
-      INTEGER nx, ne, msum, rend
+      INTEGER nx, msum, rend, nrr, nee, row_axis
       REAL fixlon, tol, nothing
       LOGICAL ifix
       CHARACTER*512 buff
@@ -219,7 +222,12 @@
       k = res_lo_ss(Z_AXIS)  ! index for unused dimensions
 
       nx = arg_hi_ss(X_AXIS, ARG1) - arg_lo_ss(X_AXIS, ARG1) + 1
-      ne = arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss(E_AXIS, ARG2) + 1
+
+      nee = arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss( E_AXIS, ARG2) + 1
+      nrr = arg_hi_ss(X_AXIS, ARG2) - arg_lo_ss( X_AXIS, ARG2) + 1
+
+      row_axis = E_AXIS
+      IF (nrr .GT. nee) row_axis = X_AXIS
 
       CALL ef_get_one_val(id, arg3, fixlon)
       ifix =  (fixlon .GT. 0.8)
@@ -228,10 +236,15 @@
       i1 = 1
       ir = 1
       msum = 0
-      DO m = arg_lo_ss(E_AXIS,ARG2), arg_hi_ss(E_AXIS, ARG2)
-         rend = arg_2(k,k,k,k,m,k)
+      DO m = arg_lo_ss(row_axis,ARG2), arg_hi_ss(row_axis, ARG2)
+         IF (row_axis .EQ. E_AXIS) THEN
+	    rend = arg_2(k,k,k,k,m,k)
+	 ELSE
+	    rend = arg_2(m,k,k,k,k,k)
+	 ENDIF
+
 	 msum = msum + rend
-	 IF (msum .GT. nx) msum = nx+1
+	 IF (msum .GT. nx) msum = nx-1
 	 DO i = i1, msum
 
 	    CALL ef_get_string_arg_element_6d(id, ARG1, arg_1,
diff --git a/fer/efi/str_noblanks.F b/fer/efi/str_noblanks.F
new file mode 100644
index 0000000..aca418a
--- /dev/null
+++ b/fer/efi/str_noblanks.F
@@ -0,0 +1,212 @@
+*
+* str_noblanks.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
+* 8/2016
+*
+* Returns string with all blanks removed.
+*
+
+
+      SUBROUTINE str_noblanks_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+***********************************************************************
+*                                           USER CONFIGURABLE PORTION |
+*                                                                     |
+*                                                                     V
+
+      CHARACTER*120 fcn_desc
+
+      WRITE (fcn_desc, 10)
+   10 FORMAT ('Returns strings with all blanks removed')
+      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)
+      CALL ef_set_result_type(id, STRING_RETURN)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'STR')
+      CALL ef_set_arg_desc(id, arg, 'String variable')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              YES, YES, YES, YES, YES, YES)
+      CALL ef_set_arg_type(id, arg, STRING_ARG)
+
+
+      RETURN 
+      END
+
+
+
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE str_noblanks_compute(id, arg_1, result)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER strdf
+#ifdef double_p
+      PARAMETER (strdf = 1)
+#else
+      PARAMETER (strdf = 2)
+#endif
+
+      INTEGER id
+
+      REAL arg_1(strdf, mem1lox:mem1hix, mem1loy:mem1hiy,
+     .                  mem1loz:mem1hiz, mem1lot:mem1hit,
+     .                  mem1loe:mem1hie, mem1lof:mem1hif)
+
+      REAL result(strdf, memreslox:memreshix, memresloy:memreshiy, 
+     .                   memresloz:memreshiz, memreslot:memreshit,
+     .                   memresloe:memreshie, memreslof:memreshif)
+
+* Ignore the Y/Z/T/E/F dimensions in the work arrays since
+* they are not used and Fortran is column major
+
+* 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)
+      
+      CHARACTER*2048 buff
+
+***********************************************************************
+*                                           USER CONFIGURABLE PORTION |
+*                                                                     |
+*                                                                     V
+
+      INTEGER slen, ii
+      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)
+
+      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)
+
+               i1 = arg_lo_ss(X_AXIS, ARG1)
+               DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+                  CALL EF_GET_STRING_ARG_ELEMENT_6D(id, ARG1, arg_1,
+     .                    i1, j1, k1, l1, m1, n1, slen, buff)
+
+                  IF (slen .LE. 0) THEN
+                     CALL EF_PUT_STRING(buff, slen, result(1,i,j,k,l,m,n))
+                  ELSE
+                     CALL REMOVE_BLANKS(buff, slen)
+                     CALL EF_PUT_STRING(buff, slen, result(1,i,j,k,l,m,n))
+                  ENDIF
+
+                  i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100           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
+
+      SUBROUTINE REMOVE_BLANKS(buff, slen)
+
+      INTEGER slen
+      CHARACTER*1 buff(*)
+
+      INTEGER i, ic
+
+      ic = 0
+      DO i = 1, slen
+         IF (buff(i) .NE. ' ') THEN
+	    ic = ic + 1
+	    buff(ic) = buff(i)
+	 ENDIF
+      ENDDO
+
+      slen = ic
+      RETURN
+      END
+
+
diff --git a/fer/efi/str_replace.F b/fer/efi/str_replace.F
new file mode 100644
index 0000000..43a1ea6
--- /dev/null
+++ b/fer/efi/str_replace.F
@@ -0,0 +1,256 @@
+*
+* str_replace.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
+* 8/2016
+*
+* Returns string with all instnces of one character replaced by a given single character.
+*
+
+
+      SUBROUTINE str_replace_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+***********************************************************************
+*                                           USER CONFIGURABLE PORTION |
+*                                                                     |
+*                                                                     V
+
+      CHARACTER*120 fcn_desc
+
+      WRITE (fcn_desc, 10)
+   10 FORMAT ('Returns strings with all instances of a character replaced')
+      CALL ef_set_desc(id, fcn_desc)
+
+      CALL ef_set_num_args(id, 3)
+      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)
+      CALL ef_set_result_type(id, STRING_RETURN)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'INSTRING')
+      CALL ef_set_arg_desc(id, arg, 'String variable to edit')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              YES, YES, YES, YES, YES, YES)
+      CALL ef_set_arg_type(id, arg, STRING_ARG)
+      
+
+      arg = 2
+      CALL ef_set_arg_name(id, arg, 'S1')
+      CALL ef_set_arg_desc(id, arg, 'Single character to replace')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              NO, NO, NO, NO, NO, NO)
+      CALL ef_set_arg_type(id, arg, STRING_ARG)
+      
+      arg = 3
+      CALL ef_set_arg_name(id, arg, 'S2')
+      CALL ef_set_arg_desc(id, arg, 'Single character to insert')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              NO, NO, NO, NO, NO, NO)
+      CALL ef_set_arg_type(id, arg, STRING_ARG)
+
+
+      RETURN 
+      END
+
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE str_replace_compute(id, arg_1, arg_2, arg_3, result)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+      INCLUDE 'EF_mem_subsc.cmn'
+
+      INTEGER strdf
+#ifdef double_p
+      PARAMETER (strdf = 1)
+#else
+      PARAMETER (strdf = 2)
+#endif
+
+      INTEGER id
+
+      REAL arg_1(strdf, mem1lox:mem1hix, mem1loy:mem1hiy,
+     .                  mem1loz:mem1hiz, mem1lot:mem1hit,
+     .                  mem1loe:mem1hie, mem1lof:mem1hif)
+
+      REAL arg_2(strdf, mem2lox:mem2hix, mem2loy:mem2hiy,
+     .                  mem2loz:mem1hiz, mem1lot:mem1hit,
+     .                  mem1loe:mem1hie, mem1lof:mem1hif)
+
+      REAL arg_3(strdf, mem3lox:mem3hix, mem3loy:mem3hiy,
+     .                  mem3loz:mem3hiz, mem3lot:mem3hit,
+     .                  mem3loe:mem3hie, mem3lof:mem3hif)
+
+      REAL result(strdf, memreslox:memreshix, memresloy:memreshiy, 
+     .                   memresloz:memreshiz, memreslot:memreshit,
+     .                   memresloe:memreshie, memreslof:memreshif)
+
+* Ignore the Y/Z/T/E/F dimensions in the work arrays since
+* they are not used and Fortran is column major
+
+* 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)
+      
+      CHARACTER*2048 buff
+      CHARACTER*1    c_remove, c_replace
+      CHARACTER*100  err_msg
+
+***********************************************************************
+*                                           USER CONFIGURABLE PORTION |
+*                                                                     |
+*                                                                     V
+
+      INTEGER slen, ii
+      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)
+
+      DO ii = X_AXIS, F_AXIS
+         IF (arg_hi_ss(ii,2) - arg_lo_ss(ii,2) .GT. 1) THEN
+            WRITE (err_msg,*) 'Argument 2 is a single-character string constant'
+	    GOTO 999
+         ENDIF
+         IF (arg_hi_ss(ii,3) - arg_lo_ss(ii,3) .GT. 1) THEN
+            WRITE (err_msg,*) 'Argument 3 is a single-character string constant'
+	    GOTO 999
+         ENDIF
+      ENDDO
+
+      CALL EF_GET_STRING_ARG_ELEMENT_6D(id, ARG2, arg_2,
+     .  mem2lox, mem2lox, mem2lox, mem2lox, mem2lox, mem2lox, slen, c_remove)
+      IF (slen .NE. 1) THEN
+         WRITE (err_msg,*) 'Argument 2 is a single-character string constant'
+         GOTO 999
+      ENDIF
+
+      CALL EF_GET_STRING_ARG_ELEMENT_6D(id, ARG3, arg_3,
+     .  mem3lox, mem3lox, mem3lox, mem3lox, mem3lox, mem3lox, slen, c_replace)
+      IF (slen .NE. 1) THEN
+         WRITE (err_msg,*) 'Argument 3 is a single-character string constant'
+         GOTO 999
+      ENDIF
+
+      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)
+
+               i1 = arg_lo_ss(X_AXIS, ARG1)
+               DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+                  CALL EF_GET_STRING_ARG_ELEMENT_6D(id, ARG1, arg_1,
+     .                    i1, j1, k1, l1, m1, n1, slen, buff)
+                  IF (slen .LE. 0) THEN
+                     CALL EF_PUT_STRING(buff, slen, result(1,i,j,k,l,m,n))
+                  ELSE
+                     CALL REPLACE_LETTER(buff, slen, c_remove, c_replace)
+                     CALL EF_PUT_STRING(buff, slen, result(1,i,j,k,l,m,n))
+                  ENDIF
+
+                  i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 100           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 
+ 999  CALL ef_bail_out (id, err_msg)
+
+      END
+
+      SUBROUTINE REPLACE_LETTER(buff, slen, c_remove, c_replace)
+
+      INTEGER slen
+      CHARACTER*1 buff(*), c_remove, c_replace
+
+      INTEGER i
+
+      DO i = 1, slen
+         IF (buff(i) .EQ. c_remove) buff(i) = c_replace
+      ENDDO
+
+      RETURN
+      END
+
+
diff --git a/fer/efi/transpose_ef.F b/fer/efi/transpose_ef.F
new file mode 100644
index 0000000..35a1854
--- /dev/null
+++ b/fer/efi/transpose_ef.F
@@ -0,0 +1,196 @@
+*
+* transpose_ef.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. 
+*
+* 3/2017 ACM completing the set of TRANSPOSE functions
+* 
+
+      SUBROUTINE transpose_ef_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+      CALL ef_set_desc(id, 'transposes E and F axes of given variable')
+      CALL ef_set_num_args(id, 1)
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                ABSTRACT,        ABSTRACT)
+      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'VAR')
+      CALL ef_set_arg_desc(id, arg, 'variable to transpose in E and F')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              YES, YES, YES, YES, NO, NO)
+
+      RETURN 
+      END
+
+
+      SUBROUTINE transpose_ef_result_limits(id)
+
+      IMPLICIT NONE
+      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 lo_e, hi_e, lo_f, hi_f, ne, nf
+
+*     Set the abstract E and F axes.
+
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+      ne = arg_hi_ss(E_AXIS, ARG1) - arg_lo_ss(E_AXIS, ARG1) + 1
+      nf = arg_hi_ss(F_AXIS, ARG1) - arg_lo_ss(F_AXIS, ARG1) + 1
+
+*     The below has the effect of translating any sub-matrix so that
+*     the indices will always begin at 1 as expected for an abstract axis.
+
+      lo_e = 1
+      hi_e = nf
+      lo_f = 1
+      hi_f = ne
+
+      CALL ef_set_axis_limits(id, E_AXIS, lo_e, hi_e)
+      CALL ef_set_axis_limits(id, F_AXIS, lo_f, hi_f)
+
+      RETURN 
+
+      END
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE transpose_ef_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
+
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, j1, k1, l1, m1, n1
+      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 axis have points to transpose
+      IF ( (arg_lo_ss(E_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(E_AXIS, ARG1) .EQ. ef_unspecified_int4) ) THEN
+         WRITE(errtxt,*) 'E axis cannot be a normal axis'
+         GOTO 999
+      ENDIF
+      IF ( (arg_lo_ss(F_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(F_AXIS, ARG1) .EQ. ef_unspecified_int4) ) THEN
+         WRITE(errtxt,*) 'F axis cannot be a normal axis'
+         GOTO 999
+      ENDIF
+
+      n1 = arg_lo_ss(F_AXIS, ARG1)
+      DO 600 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+
+      m1 = arg_lo_ss(E_AXIS, ARG1)
+      DO 500 n = res_lo_ss(F_AXIS), res_hi_ss(F_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)  
+
+      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(ARG1) ) THEN
+            result(i,j,k,l,m,n) = arg_1(i1,j1,k1,l1,m1,n1)
+         ELSE
+            result(i,j,k,l,m,n) = bad_flag_result
+         ENDIF
+
+         i1 = i1 + arg_incr(X_AXIS, ARG1)
+ 100  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
+
+      RETURN 
+
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+
+      RETURN 
+      END
diff --git a/fer/efi/transpose_te.F b/fer/efi/transpose_te.F
new file mode 100644
index 0000000..35c7d77
--- /dev/null
+++ b/fer/efi/transpose_te.F
@@ -0,0 +1,197 @@
+*
+* transpose_te.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. 
+*
+* 3/2017 ACM completing the set of TRANSPOSE functions
+* 
+
+
+      SUBROUTINE transpose_te_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+      CALL ef_set_desc(id, 'transposes T and E axes of given variable')
+      CALL ef_set_num_args(id, 1)
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, ABSTRACT,
+     .                                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, 'VAR')
+      CALL ef_set_arg_desc(id, arg, 'variable to transpose in T and E')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              YES, YES, YES, NO, NO, YES)
+
+      RETURN 
+      END
+
+
+      SUBROUTINE transpose_te_result_limits(id)
+
+      IMPLICIT NONE
+      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 lo_t, hi_t, lo_e, hi_e, nt, ne
+
+*     Set the abstract T and E axes.
+
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+      nt = arg_hi_ss(T_AXIS, ARG1) - arg_lo_ss(T_AXIS, ARG1) + 1
+      ne = arg_hi_ss(E_AXIS, ARG1) - arg_lo_ss(E_AXIS, ARG1) + 1
+
+*     The below has the effect of translating any sub-matrix so that
+*     the indices will always begin at 1 as expected for an abstract axis.
+
+      lo_t = 1
+      hi_t = ne
+      lo_e = 1
+      hi_e = nt
+
+      CALL ef_set_axis_limits(id, T_AXIS, lo_t, hi_t)
+      CALL ef_set_axis_limits(id, E_AXIS, lo_e, hi_e)
+      RETURN 
+
+      END
+
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE transpose_te_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
+
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, j1, k1, l1, m1, n1
+      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 axis have points to transpose
+      IF ( (arg_lo_ss(T_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(T_AXIS, ARG1) .EQ. ef_unspecified_int4) ) THEN
+         WRITE(errtxt,*) 'T axis cannot be a normal axis'
+         GOTO 999
+      ENDIF
+      IF ( (arg_lo_ss(E_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(E_AXIS, ARG1) .EQ. ef_unspecified_int4) ) THEN
+         WRITE(errtxt,*) 'E axis cannot be a normal axis'
+         GOTO 999
+      ENDIF
+
+      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 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
+      l1 = arg_lo_ss(T_AXIS, ARG1)
+      DO 400 m = res_lo_ss(E_AXIS), res_hi_ss(E_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)
+
+      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(ARG1) ) THEN
+            result(i,j,k,l,m,n) = arg_1(i1,j1,k1,l1,m1,n1)
+         ELSE
+            result(i,j,k,l,m,n) = bad_flag_result
+         ENDIF
+
+         i1 = i1 + arg_incr(X_AXIS, ARG1)
+ 100  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
+
+      RETURN 
+
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+
+      RETURN 
+      END
diff --git a/fer/efi/transpose_tf.F b/fer/efi/transpose_tf.F
new file mode 100644
index 0000000..c27ea9a
--- /dev/null
+++ b/fer/efi/transpose_tf.F
@@ -0,0 +1,197 @@
+*
+* transpose_tf.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. 
+*
+* 3/2017 ACM completing the set of TRANSPOSE functions
+* 
+
+      SUBROUTINE transpose_tf_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+      CALL ef_set_desc(id, 'transposes T and F axes of given variable')
+      CALL ef_set_num_args(id, 1)
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, ABSTRACT,
+     .                                IMPLIED_BY_ARGS, ABSTRACT        )
+      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'VAR')
+      CALL ef_set_arg_desc(id, arg, 'variable to transpose in T and F')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              YES, YES, YES, NO, YES, NO)
+
+      RETURN 
+      END
+
+
+      SUBROUTINE transpose_tf_result_limits(id)
+
+      IMPLICIT NONE
+      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 lo_t, hi_t, lo_f, hi_f, nt, nf
+
+*     Set the abstract T and F axes.
+
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+      nt = arg_hi_ss(T_AXIS, ARG1) - arg_lo_ss(T_AXIS, ARG1) + 1
+      nf = arg_hi_ss(F_AXIS, ARG1) - arg_lo_ss(F_AXIS, ARG1) + 1
+
+*     The below has the effect of translating any sub-matrix so that
+*     the indices will always begin at 1 as expected for an abstract axis.
+
+      lo_t = 1
+      hi_t = nf
+      lo_f = 1
+      hi_f = nt
+
+      CALL ef_set_axis_limits(id, T_AXIS, lo_t, hi_t)
+      CALL ef_set_axis_limits(id, F_AXIS, lo_f, hi_f)
+
+      RETURN 
+
+      END
+
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE transpose_tf_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
+
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, j1, k1, l1, m1, n1
+      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 axis have points to transpose
+      IF ( (arg_lo_ss(T_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(T_AXIS, ARG1) .EQ. ef_unspecified_int4) ) THEN
+         WRITE(errtxt,*) 'T axis cannot be a normal axis'
+         GOTO 999
+      ENDIF
+      IF ( (arg_lo_ss(F_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(F_AXIS, ARG1) .EQ. ef_unspecified_int4) ) THEN
+         WRITE(errtxt,*) 'F axis cannot be a normal axis'
+         GOTO 999
+      ENDIF
+
+      n1 = arg_lo_ss(F_AXIS, ARG1)
+      DO 600 l = res_lo_ss(T_AXIS), res_hi_ss(T_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 n = res_lo_ss(F_AXIS), res_hi_ss(F_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) 
+
+      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(ARG1) ) THEN
+            result(i,j,k,l,m,n) = arg_1(i1,j1,k1,l1,m1,n1)
+         ELSE
+            result(i,j,k,l,m,n) = bad_flag_result
+         ENDIF
+
+         i1 = i1 + arg_incr(X_AXIS, ARG1)
+ 100  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
+
+      RETURN 
+
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+
+      RETURN 
+      END
diff --git a/fer/efi/transpose_xe.F b/fer/efi/transpose_xe.F
new file mode 100644
index 0000000..c4ca327
--- /dev/null
+++ b/fer/efi/transpose_xe.F
@@ -0,0 +1,197 @@
+*
+* transpose_xe.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. 
+*
+* 3/2017 ACM completing the set of TRANSPOSE functions
+* 
+
+
+      SUBROUTINE transpose_xe_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+      CALL ef_set_desc(id, 'transposes X and E axes of given variable')
+      CALL ef_set_num_args(id, 1)
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                ABSTRACT,        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, 'VAR')
+      CALL ef_set_arg_desc(id, arg, 'variable to transpose in X and E')
+      CALL ef_set_axis_influence_6d(id, arg, NO, YES, YES, YES, NO, YES)
+
+      RETURN 
+      END
+
+
+      SUBROUTINE transpose_xe_result_limits(id)
+
+      IMPLICIT NONE
+      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 lo_x, hi_x, lo_e, hi_e, nx, ne
+
+*     Set the ABSTRACT X and E axes.
+
+      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
+      nE = arg_hi_ss(E_AXIS, ARG1) - arg_lo_ss(E_AXIS, ARG1) + 1
+
+*     The below has the effect of translating any sub-matrix so that
+*     the indices will always begin at 1 as expected for an abstract axis.
+
+      lo_x = 1
+      hi_x = ne
+      lo_E = 1
+      hi_E = nx
+
+      CALL ef_set_axis_limits(id, X_AXIS, lo_x, hi_x)
+      CALL ef_set_axis_limits(id, E_AXIS, lo_e, hi_e)
+
+      RETURN 
+
+      END
+
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE transpose_xe_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
+
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, j1, k1, l1, m1, n1
+      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 axis have points to transpose
+      IF ( (arg_lo_ss(E_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(E_AXIS, ARG1) .EQ. ef_unspecified_int4) ) THEN
+         WRITE(errtxt,*) 'E axis cannot be a normal axis'
+         GOTO 999
+      ENDIF
+      IF ( (arg_lo_ss(X_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(X_AXIS, ARG1) .EQ. ef_unspecified_int4) ) THEN
+         WRITE(errtxt,*) 'X axis cannot be a normal axis'
+         GOTO 999
+      ENDIF
+
+      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 i = res_lo_ss(X_AXIS), res_hi_ss(X_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) 
+
+      i1 = arg_lo_ss(X_AXIS, ARG1)
+      DO 100 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS) 
+
+         IF ( arg_1(i1,j1,k1,l1,m1,n1) .NE. bad_flag(ARG1) ) THEN
+            result(i,j,k,l,m,n) = arg_1(i1,j1,k1,l1,m1,n1)
+         ELSE
+            result(i,j,k,l,m,n) = bad_flag_result
+         ENDIF
+
+         i1 = i1 + arg_incr(X_AXIS, ARG1)
+ 100  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
+
+      RETURN 
+
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+
+      RETURN 
+      END
diff --git a/fer/efi/transpose_xf.F b/fer/efi/transpose_xf.F
new file mode 100644
index 0000000..0fb8238
--- /dev/null
+++ b/fer/efi/transpose_xf.F
@@ -0,0 +1,198 @@
+*
+* transpose_xf.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. 
+*
+* 3/2017 ACM completing the set of TRANSPOSE functions
+* 
+
+
+      SUBROUTINE transpose_xf_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+      CALL ef_set_desc(id, 'transposes X and F axes of given variable')
+      CALL ef_set_num_args(id, 1)
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                ABSTRACT,        IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, ABSTRACT)
+      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'VAR')
+      CALL ef_set_arg_desc(id, arg, 'variable to transpose in X and F')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              NO, YES, YES, YES, YES, NO)
+
+      RETURN 
+      END
+
+
+      SUBROUTINE transpose_xf_result_limits(id)
+
+      IMPLICIT NONE
+      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 lo_x, hi_x, lo_f, hi_f, nx, nf
+
+*     Set the ABSTRACT X and F axes.
+
+      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
+      nf = arg_hi_ss(F_AXIS, ARG1) - arg_lo_ss(F_AXIS, ARG1) + 1
+
+*     The below has the effect of translating any sub-matrix so that
+*     the indices will always begin at 1 as expected for an abstract axis.
+
+      lo_x = 1
+      hi_x = nf
+      lo_f = 1
+      hi_f = nx
+
+      CALL ef_set_axis_limits(id, X_AXIS, lo_x, hi_x)
+      CALL ef_set_axis_limits(id, F_AXIS, lo_f, hi_f)
+
+      RETURN 
+
+      END
+
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE transpose_xf_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
+
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, j1, k1, l1, m1, n1
+      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 axis have points to transpose
+      IF ( (arg_lo_ss(F_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(F_AXIS, ARG1) .EQ. ef_unspecified_int4) ) THEN
+         WRITE(errtxt,*) 'F axis cannot be a normal axis'
+         GOTO 999
+      ENDIF
+      IF ( (arg_lo_ss(X_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(X_AXIS, ARG1) .EQ. ef_unspecified_int4) ) THEN
+         WRITE(errtxt,*) 'X axis cannot be a normal axis'
+         GOTO 999
+      ENDIF
+
+      n1 = arg_lo_ss(F_AXIS, ARG1)
+      DO 600 i = res_lo_ss(X_AXIS), res_hi_ss(X_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)
+
+      i1 = arg_lo_ss(X_AXIS, ARG1)
+      DO 100 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+
+         IF ( arg_1(i1,j1,k1,l1,m1,n1) .NE. bad_flag(ARG1) ) THEN
+            result(i,j,k,l,m,n) = arg_1(i1,j1,k1,l1,m1,n1)
+         ELSE
+            result(i,j,k,l,m,n) = bad_flag_result
+         ENDIF
+
+         i1 = i1 + arg_incr(X_AXIS, ARG1)
+ 100  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
+
+      RETURN 
+
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+
+      RETURN 
+      END
diff --git a/fer/efi/transpose_xt.F b/fer/efi/transpose_xt.F
index 076545f..fe11c6b 100644
--- a/fer/efi/transpose_xt.F
+++ b/fer/efi/transpose_xt.F
@@ -1,49 +1,40 @@
 *
 * transpose_xt.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. 
+*
+* 3/2017 ACM completing the set of TRANSPOSE functions
 * 
-*
-* This function sets the second argument to be equal
-* to the first one with the X and T axes swiched.
-*
-
-
-*
-* 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 transpose_xt_init(id)
 
@@ -52,11 +43,6 @@
 
       INTEGER id, arg
 
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
       CALL ef_set_desc(id, 'transposes X and T axes of given variable')
       CALL ef_set_num_args(id, 1)
       CALL ef_set_axis_inheritance_6d(id,
@@ -71,11 +57,6 @@
       CALL ef_set_axis_influence_6d(id, arg,
      .                              NO, YES, YES, NO, YES, YES)
 
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
       RETURN 
       END
 
@@ -87,17 +68,12 @@
 
       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 my_lo_x, my_hi_x, my_lo_t, my_hi_t, nx, nt
+      INTEGER lo_x, hi_x, lo_t, hi_t, nx, nt
 
-*     Set the abstract X and T axes.
+*     Set the ABSTRACT X and T axes.
 
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
 
@@ -107,18 +83,13 @@
 *     The below has the effect of translating any sub-matrix so that
 *     the indices will always begin at 1 as expected for an abstract axis.
 
-      my_lo_x = 1
-      my_hi_x = nt
-      my_lo_t = 1
-      my_hi_t = nx
+      lo_x = 1
+      hi_x = nt
+      lo_t = 1
+      hi_t = nx
 
-      CALL ef_set_axis_limits(id, X_AXIS, my_lo_x, my_hi_x)
-      CALL ef_set_axis_limits(id, T_AXIS, my_lo_t, my_hi_t)
-
-*                                                                     ^
-*                                                                     |
-*                                           USER CONFIGURABLE PORTION |
-* **********************************************************************
+      CALL ef_set_axis_limits(id, X_AXIS, lo_x, hi_x)
+      CALL ef_set_axis_limits(id, T_AXIS, lo_t, hi_t)
 
       RETURN 
 
@@ -156,11 +127,6 @@
 
       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
       CHARACTER*100 errtxt
@@ -227,10 +193,5 @@
 
  999  CALL EF_BAIL_OUT(id, errtxt)
 
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
       RETURN 
       END
diff --git a/fer/efi/transpose_xy.F b/fer/efi/transpose_xy.F
index c08da2a..6aed4b7 100644
--- a/fer/efi/transpose_xy.F
+++ b/fer/efi/transpose_xy.F
@@ -1,49 +1,40 @@
 *
 * transpose_xy.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. 
+*
+* 3/2017 ACM completing the set of TRANSPOSE functions
 * 
-*
-* This function sets the second argument to be equal
-* to the first one with the X and Y axes switched.
-*
-
-
-*
-* 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 transpose_xy_init(id)
 
@@ -52,12 +43,7 @@
 
       INTEGER id, arg
 
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
-      CALL ef_set_desc(id, 'transposes x and y axes of given variable')
+      CALL ef_set_desc(id, 'transposes X and Y axes of given variable')
       CALL ef_set_num_args(id, 1)
       CALL ef_set_axis_inheritance_6d(id,
      .                                ABSTRACT,        ABSTRACT,
@@ -71,11 +57,6 @@
       CALL ef_set_axis_influence_6d(id, arg,
      .                              NO, NO, YES, YES, YES, YES)
 
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
       RETURN 
       END
 
@@ -87,17 +68,12 @@
 
       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 my_lo_x, my_hi_x, my_lo_y, my_hi_y, nx, ny
+      INTEGER lo_x, hi_x, lo_y, hi_y, nx, ny
 
-*     Set the abstract X and Y axes.
+*     Set the ABSTRACT X and Y axes.
 
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
 
@@ -107,18 +83,13 @@
 *     The below has the effect of translating any sub-matrix so that
 *     the indices will always begin at 1 as expected for an abstract axis.
 
-      my_lo_x = 1
-      my_hi_x = ny
-      my_lo_y = 1
-      my_hi_y = nx
+      lo_x = 1
+      hi_x = ny
+      lo_y = 1
+      hi_y = nx
 
-      CALL ef_set_axis_limits(id, X_AXIS, my_lo_x, my_hi_x)
-      CALL ef_set_axis_limits(id, Y_AXIS, my_lo_y, my_hi_y)
-
-*                                                                     ^
-*                                                                     |
-*                                           USER CONFIGURABLE PORTION |
-* **********************************************************************
+      CALL ef_set_axis_limits(id, X_AXIS, lo_x, hi_x)
+      CALL ef_set_axis_limits(id, Y_AXIS, lo_y, hi_y)
 
       RETURN 
 
@@ -156,11 +127,6 @@
 
       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
       CHARACTER*100 errtxt
@@ -227,10 +193,5 @@
 
  999  CALL EF_BAIL_OUT(id, errtxt)
 
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
       RETURN 
       END
diff --git a/fer/efi/transpose_xz.F b/fer/efi/transpose_xz.F
index e910487..23d8489 100644
--- a/fer/efi/transpose_xz.F
+++ b/fer/efi/transpose_xz.F
@@ -1,49 +1,42 @@
 *
 * transpose_xz.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. 
+*
+* 3/2017 ACM completing the set of TRANSPOSE functions
 * 
-*
-* This function sets the second argument to be equal
-* to the first one with the X and Z axes switched.
-*
 
 
-*
-* 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 transpose_xz_init(id)
 
@@ -52,12 +45,7 @@
 
       INTEGER id, arg
 
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
-      CALL ef_set_desc(id, 'transposes x and z axes of given variable')
+      CALL ef_set_desc(id, 'transposes X and Z axes of given variable')
       CALL ef_set_num_args(id, 1)
       CALL ef_set_axis_inheritance_6d(id,
      .                                ABSTRACT,        IMPLIED_BY_ARGS,
@@ -71,11 +59,6 @@
       CALL ef_set_axis_influence_6d(id, arg,
      .                              NO, YES, NO, YES, YES, YES)
 
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
       RETURN 
       END
 
@@ -87,17 +70,12 @@
 
       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 my_lo_x, my_hi_x, my_lo_z, my_hi_z, nx, nz
+      INTEGER lo_x, hi_x, lo_z, hi_z, nx, nz
 
-*     Set the abstract X and Z axes.
+*     Set the ABSTRACT X and Z axes.
 
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
 
@@ -107,18 +85,13 @@
 *     The below has the effect of translating any sub-matrix so that
 *     the indices will always begin at 1 as expected for an abstract axis.
 
-      my_lo_x = 1
-      my_hi_x = nz
-      my_lo_z = 1
-      my_hi_z = nx
-
-      CALL ef_set_axis_limits(id, X_AXIS, my_lo_x, my_hi_x)
-      CALL ef_set_axis_limits(id, Z_AXIS, my_lo_z, my_hi_z)
+      lo_x = 1
+      hi_x = nz
+      lo_z = 1
+      hi_z = nx
 
-*                                                                     ^
-*                                                                     |
-*                                           USER CONFIGURABLE PORTION |
-* **********************************************************************
+      CALL ef_set_axis_limits(id, X_AXIS, lo_x, hi_x)
+      CALL ef_set_axis_limits(id, Z_AXIS, lo_z, hi_z)
 
       RETURN 
 
@@ -156,11 +129,6 @@
 
       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
       CHARACTER*100 errtxt
@@ -227,10 +195,5 @@
 
  999  CALL EF_BAIL_OUT(id, errtxt)
 
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
       RETURN 
       END
diff --git a/fer/efi/transpose_ye.F b/fer/efi/transpose_ye.F
new file mode 100644
index 0000000..2322eae
--- /dev/null
+++ b/fer/efi/transpose_ye.F
@@ -0,0 +1,199 @@
+*
+* transpose_ye.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. 
+*
+* 3/2017 ACM completing the set of TRANSPOSE functions
+* 
+
+
+
+      SUBROUTINE transpose_ye_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+      CALL ef_set_desc(id, 'transposes Y and E axes of given variable')
+      CALL ef_set_num_args(id, 1)
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                IMPLIED_BY_ARGS, ABSTRACT,
+     .                                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, 'VAR')
+      CALL ef_set_arg_desc(id, arg, 'variable to transpose in Y and E')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              YES, NO, YES, YES, NO, YES)
+
+      RETURN 
+      END
+
+
+      SUBROUTINE transpose_ye_result_limits(id)
+
+      IMPLICIT NONE
+      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 lo_y, hi_y, lo_e, hi_e, ny, ne
+
+*     Set the ABSTRACT Y and E axes.
+
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+      ny = arg_hi_ss(Y_AXIS, ARG1) - arg_lo_ss(Y_AXIS, ARG1) + 1
+      ne = arg_hi_ss(E_AXIS, ARG1) - arg_lo_ss(E_AXIS, ARG1) + 1
+
+*     The below has the effect of translating any sub-matrix so that
+*     the indices will always begin at 1 as expected for an abstract axis.
+
+      lo_y = 1
+      hi_y = ne
+      lo_e = 1
+      hi_e = ny
+
+      CALL ef_set_axis_limits(id, Y_AXIS, lo_y, hi_y)
+      CALL ef_set_axis_limits(id, E_AXIS, lo_e, hi_e)
+
+      RETURN 
+
+      END
+
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE transpose_ye_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
+
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, j1, k1, l1, m1, n1
+      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 axis have points to transpose
+      IF ( (arg_lo_ss(Y_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(Y_AXIS, ARG1) .EQ. ef_unspecified_int4) ) THEN
+         WRITE(errtxt,*) 'Y axis cannot be a normal axis'
+         GOTO 999
+      ENDIF
+      IF ( (arg_lo_ss(E_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(E_AXIS, ARG1) .EQ. ef_unspecified_int4) ) THEN
+         WRITE(errtxt,*) 'E axis cannot be a normal axis'
+         GOTO 999
+      ENDIF
+
+      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 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_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 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+
+      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(ARG1) ) THEN
+            result(i,j,k,l,m,n) = arg_1(i1,j1,k1,l1,m1,n1)
+         ELSE
+            result(i,j,k,l,m,n) = bad_flag_result
+         ENDIF
+
+         i1 = i1 + arg_incr(X_AXIS, ARG1)
+ 100  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
+
+      RETURN 
+
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+
+      RETURN 
+      END
diff --git a/fer/efi/transpose_yf.F b/fer/efi/transpose_yf.F
new file mode 100644
index 0000000..84204e4
--- /dev/null
+++ b/fer/efi/transpose_yf.F
@@ -0,0 +1,197 @@
+*
+* transpose_yf.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. 
+*
+* 3/2017 ACM completing the set of TRANSPOSE functions
+* 
+
+      SUBROUTINE transpose_yf_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+      CALL ef_set_desc(id, 'transposes Y and F axes of given variable')
+      CALL ef_set_num_args(id, 1)
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                IMPLIED_BY_ARGS, ABSTRACT,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                IMPLIED_BY_ARGS, ABSTRACT        )
+      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'VAR')
+      CALL ef_set_arg_desc(id, arg, 'variable to transpose in Y and F')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              YES, NO, YES, YES, YES, NO)
+
+      RETURN 
+      END
+
+
+      SUBROUTINE transpose_yf_result_limits(id)
+
+      IMPLICIT NONE
+      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 lo_f, hi_f, lo_y, hi_y, nf, ny
+
+*     Set the ABSTRACT Y and F axes.
+
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+      nf = arg_hi_ss(F_AXIS, ARG1) - arg_lo_ss(F_AXIS, ARG1) + 1
+      ny = arg_hi_ss(Y_AXIS, ARG1) - arg_lo_ss(Y_AXIS, ARG1) + 1
+
+*     The below has the effect of translating any sub-matrix so that
+*     the indices will always begin at 1 as expected for an abstract axis.
+
+      lo_y = 1
+      hi_y = nf
+      lo_f = 1
+      hi_f = ny
+
+      CALL ef_set_axis_limits(id, Y_AXIS, lo_y, hi_y)
+      CALL ef_set_axis_limits(id, F_AXIS, lo_f, hi_f)
+
+      RETURN 
+
+      END
+
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE transpose_yf_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
+
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, j1, k1, l1, m1, n1
+      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 axis have points to transpose
+      IF ( (arg_lo_ss(Y_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(Y_AXIS, ARG1) .EQ. ef_unspecified_int4) ) THEN
+         WRITE(errtxt,*) 'Y axis cannot be a normal axis'
+         GOTO 999
+      ENDIF
+      IF ( (arg_lo_ss(F_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(F_AXIS, ARG1) .EQ. ef_unspecified_int4) ) THEN
+         WRITE(errtxt,*) 'F axis cannot be a normal axis'
+         GOTO 999
+      ENDIF
+
+      n1 = arg_lo_ss(F_AXIS, ARG1)
+      DO 600 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_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 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+
+      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(ARG1) ) THEN
+            result(i,j,k,l,m,n) = arg_1(i1,j1,k1,l1,m1,n1)
+         ELSE
+            result(i,j,k,l,m,n) = bad_flag_result
+         ENDIF
+
+         i1 = i1 + arg_incr(X_AXIS, ARG1)
+ 100  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
+
+      RETURN 
+
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+
+      RETURN 
+      END
diff --git a/fer/efi/transpose_yt.F b/fer/efi/transpose_yt.F
index c9c18ea..1231956 100644
--- a/fer/efi/transpose_yt.F
+++ b/fer/efi/transpose_yt.F
@@ -1,48 +1,40 @@
 *
 * transpose_yt.F
-*
-* 
 * 
-*
-* This function sets the second argument to be equal
-* to the first one with the Y and T axes switched.
-*
-
-
-*
-* 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 )
+*  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. 
+*
+* 3/2017 ACM completing the set of TRANSPOSE functions
 * 
-*
-* 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 transpose_yt_init(id)
@@ -52,11 +44,6 @@
 
       INTEGER id, arg
 
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
       CALL ef_set_desc(id, 'transposes Y and T axes of given variable')
       CALL ef_set_num_args(id, 1)
       CALL ef_set_axis_inheritance_6d(id,
@@ -71,11 +58,6 @@
       CALL ef_set_axis_influence_6d(id, arg,
      .                              YES, NO, YES, NO, YES, YES)
 
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
       RETURN 
       END
 
@@ -87,17 +69,12 @@
 
       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 my_lo_t, my_hi_t, my_lo_y, my_hi_y, nt, ny
+      INTEGER lo_t, hi_t, lo_y, hi_y, nt, ny
 
-*     Set the abstract T and Y axes.
+*     Set the ABSTRACT T and Y axes.
 
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
 
@@ -107,18 +84,13 @@
 *     The below has the effect of translating any sub-matrix so that
 *     the indices will always begin at 1 as expected for an abstract axis.
 
-      my_lo_t = 1
-      my_hi_t = ny
-      my_lo_y = 1
-      my_hi_y = nt
+      lo_t = 1
+      hi_t = ny
+      lo_y = 1
+      hi_y = nt
 
-      CALL ef_set_axis_limits(id, T_AXIS, my_lo_t, my_hi_t)
-      CALL ef_set_axis_limits(id, Y_AXIS, my_lo_y, my_hi_y)
-
-*                                                                     ^
-*                                                                     |
-*                                           USER CONFIGURABLE PORTION |
-* **********************************************************************
+      CALL ef_set_axis_limits(id, T_AXIS, lo_t, hi_t)
+      CALL ef_set_axis_limits(id, Y_AXIS, lo_y, hi_y)
 
       RETURN 
 
@@ -156,11 +128,6 @@
 
       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
       CHARACTER*100 errtxt
@@ -227,10 +194,5 @@
 
  999  CALL EF_BAIL_OUT(id, errtxt)
 
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
       RETURN 
       END
diff --git a/fer/efi/transpose_yz.F b/fer/efi/transpose_yz.F
index 956af92..cd82044 100644
--- a/fer/efi/transpose_yz.F
+++ b/fer/efi/transpose_yz.F
@@ -1,48 +1,41 @@
 *
 * transpose_yz.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. 
+*
+* 3/2017 ACM completing the set of TRANSPOSE functions
 * 
 *
-* This function sets the second argument to be equal
-* to the first one with the Y and Z axes switched.
-*
-
-
-*
-* 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 transpose_yz_init(id)
@@ -52,11 +45,6 @@
 
       INTEGER id, arg
 
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
       CALL ef_set_desc(id, 'transposes Y and Z axes of given variable')
       CALL ef_set_num_args(id, 1)
       CALL ef_set_axis_inheritance_6d(id,
@@ -67,15 +55,10 @@
 
       arg = 1
       CALL ef_set_arg_name(id, arg, 'VAR')
-      CALL ef_set_arg_desc(id, arg, 'variable transposed in Y and Z')
+      CALL ef_set_arg_desc(id, arg, 'variable to transpose in Y and Z')
       CALL ef_set_axis_influence_6d(id, arg,
      .                              YES, NO, NO, YES, YES, YES)
 
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
       RETURN 
       END
 
@@ -87,17 +70,12 @@
 
       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 my_lo_z, my_hi_z, my_lo_y, my_hi_y, nz, ny
+      INTEGER lo_z, hi_z, lo_y, hi_y, nz, ny
 
-*     Set the abstract Z and Y axes.
+*     Set the ABSTRACT Z and Y axes.
 
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
 
@@ -107,18 +85,13 @@
 *     The below has the effect of translating any sub-matrix so that
 *     the indices will always begin at 1 as expected for an abstract axis.
 
-      my_lo_z = 1
-      my_hi_z = ny
-      my_lo_y = 1
-      my_hi_y = nz
-
-      CALL ef_set_axis_limits(id, Z_AXIS, my_lo_z, my_hi_z)
-      CALL ef_set_axis_limits(id, Y_AXIS, my_lo_y, my_hi_y)
+      lo_z = 1
+      hi_z = ny
+      lo_y = 1
+      hi_y = nz
 
-*                                                                     ^
-*                                                                     |
-*                                           USER CONFIGURABLE PORTION |
-* **********************************************************************
+      CALL ef_set_axis_limits(id, Z_AXIS, lo_z, hi_z)
+      CALL ef_set_axis_limits(id, Y_AXIS, lo_y, hi_y)
 
       RETURN 
 
@@ -156,11 +129,6 @@
 
       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
       CHARACTER*100 errtxt
@@ -227,10 +195,5 @@
 
  999  CALL EF_BAIL_OUT(id, errtxt)
 
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
       RETURN 
       END
diff --git a/fer/efi/transpose_ze.F b/fer/efi/transpose_ze.F
new file mode 100644
index 0000000..5fb79de
--- /dev/null
+++ b/fer/efi/transpose_ze.F
@@ -0,0 +1,197 @@
+*
+* transpose_ze.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. 
+*
+* 3/2017 ACM completing the set of TRANSPOSE functions
+*
+
+
+      SUBROUTINE transpose_ze_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+      CALL ef_set_desc(id, 'transposes Z and E axes of given variable')
+      CALL ef_set_num_args(id, 1)
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                ABSTRACT,        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, 'VAR')
+      CALL ef_set_arg_desc(id, arg, 'variable to transpose in Z and E')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              YES, YES, NO, YES, NO, YES)
+
+      RETURN 
+      END
+
+
+      SUBROUTINE transpose_ze_result_limits(id)
+
+      IMPLICIT NONE
+      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 lo_z, hi_z, lo_e, hi_e, nz, ne
+
+*     Set the ABSTRACT Z and E axes.
+
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+      nz = arg_hi_ss(Z_AXIS, ARG1) - arg_lo_ss(Z_AXIS, ARG1) + 1
+      ne = arg_hi_ss(E_AXIS, ARG1) - arg_lo_ss(E_AXIS, ARG1) + 1
+
+*     The below has the effect of translating any sub-matrix so that
+*     the indices will always begin at 1 as expected for an abstract axis.
+
+      lo_z = 1
+      hi_z = ne
+      lo_e = 1
+      hi_e = nz
+
+      CALL ef_set_axis_limits(id, Z_AXIS, lo_z, hi_z)
+      CALL ef_set_axis_limits(id, E_AXIS, lo_e, hi_e)
+
+      RETURN 
+
+      END
+
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE transpose_ze_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
+
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, j1, k1, l1, m1, n1
+      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 axis have points to transpose
+      IF ( (arg_lo_ss(E_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(E_AXIS, ARG1) .EQ. ef_unspecified_int4) ) THEN
+         WRITE(errtxt,*) 'E axis cannot be a normal axis'
+         GOTO 999
+      ENDIF
+      IF ( (arg_lo_ss(Z_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(Z_AXIS, ARG1) .EQ. ef_unspecified_int4) ) THEN
+         WRITE(errtxt,*) 'Z axis cannot be a normal axis'
+         GOTO 999
+      ENDIF
+
+      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 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_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 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+
+      j1 = arg_lo_ss(Y_AXIS, ARG1)
+      DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS) 
+
+      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(ARG1) ) THEN
+            result(i,j,k,l,m,n) = arg_1(i1,j1,k1,l1,m1,n1)
+         ELSE
+            result(i,j,k,l,m,n) = bad_flag_result
+         ENDIF
+
+         i1 = i1 + arg_incr(X_AXIS, ARG1)
+ 100  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
+
+      RETURN 
+
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+
+      RETURN 
+      END
diff --git a/fer/efi/transpose_zf.F b/fer/efi/transpose_zf.F
new file mode 100644
index 0000000..5e016da
--- /dev/null
+++ b/fer/efi/transpose_zf.F
@@ -0,0 +1,200 @@
+*
+* transpose_zf.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. 
+*
+* 3/2017 ACM completing the set of TRANSPOSE functions
+* 
+
+
+
+      SUBROUTINE transpose_zf_init(id)
+
+      IMPLICIT NONE
+      INCLUDE 'EF_Util.cmn'
+
+      INTEGER id, arg
+
+      CALL ef_set_desc(id, 'transposes Z and F axes of given variable')
+      CALL ef_set_num_args(id, 1)
+      CALL ef_set_axis_inheritance_6d(id,
+     .                                IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+     .                                ABSTRACT,        IMPLIED_BY_ARGS, 
+     .                                IMPLIED_BY_ARGS, ABSTRACT)
+      CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+
+      arg = 1
+      CALL ef_set_arg_name(id, arg, 'VAR')
+      CALL ef_set_arg_desc(id, arg, 'variable to transpose in Z and F')
+      CALL ef_set_axis_influence_6d(id, arg,
+     .                              YES, YES, NO, YES, YES, NO)
+
+      RETURN 
+      END
+
+
+      SUBROUTINE transpose_zf_result_limits(id)
+
+      IMPLICIT NONE
+      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 lo_z, hi_z, lo_f, hi_f, nz, nf
+
+*     Set the ABSTRACT Z and F axes.
+
+      CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+      nz = arg_hi_ss(Z_AXIS, ARG1) - arg_lo_ss(Z_AXIS, ARG1) + 1
+      nf = arg_hi_ss(F_AXIS, ARG1) - arg_lo_ss(F_AXIS, ARG1) + 1
+
+*     The below has the effect of translating any sub-matrix so that
+*     the indices will always begin at 1 as expected for an abstract axis.
+
+      lo_z = 1
+      hi_z = nf
+      lo_f = 1
+      hi_f = nz
+
+      CALL ef_set_axis_limits(id, Z_AXIS, lo_z, hi_z)
+      CALL ef_set_axis_limits(id, F_AXIS, lo_f, hi_f)
+
+      RETURN 
+
+      END
+
+
+*
+* In this subroutine we compute the result
+*
+      SUBROUTINE transpose_zf_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
+
+      INTEGER i, j, k, l, m, n
+      INTEGER i1, j1, k1, l1, m1, n1
+      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 axis have points to transpose
+      IF ( (arg_lo_ss(Z_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(Z_AXIS, ARG1) .EQ. ef_unspecified_int4) ) THEN
+         WRITE(errtxt,*) 'Z axis cannot be a normal axis'
+         GOTO 999
+      ENDIF
+      IF ( (arg_lo_ss(F_AXIS, ARG1) .EQ. ef_unspecified_int4) .OR. 
+     .     (arg_hi_ss(F_AXIS, ARG1) .EQ. ef_unspecified_int4) ) THEN
+         WRITE(errtxt,*) 'F axis cannot be a normal axis'
+         GOTO 999
+      ENDIF
+
+      n1 = arg_lo_ss(F_AXIS, ARG1)
+      DO 600 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_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 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+
+      j1 = arg_lo_ss(Y_AXIS, ARG1)
+      DO 200 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+      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(ARG1) ) THEN
+            result(i,j,k,l,m,n) = arg_1(i1,j1,k1,l1,m1,n1)
+         ELSE
+            result(i,j,k,l,m,n) = bad_flag_result
+         ENDIF
+
+         i1 = i1 + arg_incr(X_AXIS, ARG1)
+ 100  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
+
+      RETURN 
+
+ 999  CALL EF_BAIL_OUT(id, errtxt)
+
+      RETURN 
+      END
diff --git a/fer/efi/transpose_zt.F b/fer/efi/transpose_zt.F
index 830593d..ead87ea 100644
--- a/fer/efi/transpose_zt.F
+++ b/fer/efi/transpose_zt.F
@@ -1,50 +1,40 @@
 *
 * transpose_zt.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. 
+*
+* 3/2017 ACM completing the set of TRANSPOSE functions
 * 
-*
-* This function sets the second argument to be equal
-* to the first one with the Z and T axes switched.
-*
-
-
-*
-* 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 transpose_zt_init(id)
 
       IMPLICIT NONE
@@ -52,11 +42,6 @@
 
       INTEGER id, arg
 
-* **********************************************************************
-*                                            USER CONFIGURABLE PORTION |
-*                                                                      |
-*                                                                      V
-
       CALL ef_set_desc(id, 'transposes Z and T axes of given variable')
       CALL ef_set_num_args(id, 1)
       CALL ef_set_axis_inheritance_6d(id,
@@ -71,11 +56,6 @@
       CALL ef_set_axis_influence_6d(id, arg,
      .                              YES, YES, NO, NO, YES, YES)
 
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
       RETURN 
       END
 
@@ -87,17 +67,12 @@
 
       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 my_lo_z, my_hi_z, my_lo_t, my_hi_t, nz, nt
+      INTEGER lo_z, hi_z, lo_t, hi_t, nz, nt
 
-*     Set the abstract Z and T axes.
+*     Set the ABSTRACT Z and T axes.
 
       CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
 
@@ -107,18 +82,13 @@
 *     The below has the effect of translating any sub-matrix so that
 *     the indices will always begin at 1 as expected for an abstract axis.
 
-      my_lo_z = 1
-      my_hi_z = nt
-      my_lo_t = 1
-      my_hi_t = nz
+      lo_z = 1
+      hi_z = nt
+      lo_t = 1
+      hi_t = nz
 
-      CALL ef_set_axis_limits(id, Z_AXIS, my_lo_z, my_hi_z)
-      CALL ef_set_axis_limits(id, T_AXIS, my_lo_t, my_hi_t)
-
-*                                                                     ^
-*                                                                     |
-*                                           USER CONFIGURABLE PORTION |
-* **********************************************************************
+      CALL ef_set_axis_limits(id, Z_AXIS, lo_z, hi_z)
+      CALL ef_set_axis_limits(id, T_AXIS, lo_t, hi_t)
 
       RETURN 
 
@@ -156,11 +126,6 @@
 
       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
       CHARACTER*100 errtxt
@@ -227,10 +192,5 @@
 
  999  CALL EF_BAIL_OUT(id, errtxt)
 
-*                                                                      ^
-*                                                                      |
-*                                            USER CONFIGURABLE PORTION |
-* **********************************************************************
-
       RETURN 
       END
diff --git a/fer/efi/ycat.F b/fer/efi/ycat.F
index cd415b9..6ad9a68 100644
--- a/fer/efi/ycat.F
+++ b/fer/efi/ycat.F
@@ -199,7 +199,7 @@
          i = res_lo_ss(X_AXIS)
          DO 100 i1 = arg_lo_ss(X_AXIS,ARG1), arg_hi_ss(X_AXIS,ARG1)
 
-            IF ( arg_1(i1,j1,k1,l1,m1,n2) .EQ. bad_flag(ARG1) ) THEN
+            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)
diff --git a/fer/efn/SOURCE_FILES b/fer/efn/SOURCE_FILES
index 8c7138e..611da54 100644
--- a/fer/efn/SOURCE_FILES
+++ b/fer/efn/SOURCE_FILES
@@ -1,5 +1,5 @@
 SRCS_F = \
 efcn_copy_array_dims.F\
 efcn_get_custom_axis.F\
-efcn_get_workspace_addr.F \
+efcn_rqst_mr_ptrs.F\
 efcn_set_work_array_dims.F
diff --git a/fer/efn/efcn_get_workspace_addr.F b/fer/efn/efcn_get_workspace_addr.F
deleted file mode 100644
index 0d7bd5a..0000000
--- a/fer/efn/efcn_get_workspace_addr.F
+++ /dev/null
@@ -1,29 +0,0 @@
-c     
-c     efcn_get_workspace_addr.F
-c     
-c     Jonathan Callahan
-c     September 1998
-c     
-
-c     
-c     This subroutine is called by efcn_compute_ inside EF_ExternalUtil.c. 
-c     When workspace is requested by an external function it is created 
-c     inside of efcn_compute_ but efcn_compute_ doesn't know how to access
-c     variuos Ferret common areas.  (And I don't want to bother with
-c     the C/Fortran column major/row major stuff).  This subroutine accesses
-c     the common areas and passes back the appropriate address to efcn_compute_.
-c     
-
-      SUBROUTINE EFCN_GET_WORKSPACE_ADDR(memory, work_blk, workspace)
-
-      INCLUDE 'tmap_dims.parm'
-      INCLUDE 'ferret.parm'
-      INCLUDE 'xvariables.cmn'
-
-      INTEGER work_blk
-      REAL memory( mem_blk_size, max_mem_blks ), workspace
-
-      workspace = memory(work_blk, 1)
-
-      RETURN 
-      END
diff --git a/fer/efn/efcn_rqst_mr_ptrs.F b/fer/efn/efcn_rqst_mr_ptrs.F
new file mode 100644
index 0000000..a4b6a35
--- /dev/null
+++ b/fer/efn/efcn_rqst_mr_ptrs.F
@@ -0,0 +1,37 @@
+c     
+c     efcn_rqst_mr_ptrs.F
+c     
+c     Steve hankin
+c     19 Jan., 2017
+c     
+
+c     
+c     This subroutine is called by efcn_compute_ inside EF_ExternalUtil.c. 
+c     It passes the c pointers for the function arguments and result 
+c     from their storage in FORTRAN90 pointers back to c
+
+        SUBROUTINE EFCN_RQST_MR_PTRS(nargs, mr_list, mr_res)
+
+        IMPLICIT NONE
+        include 'tmap_dims.parm'
+	include 'ferret.parm'
+	include 'errmsg.parm'
+	include 'xvariables.cmn'
+	include 'xcontext.cmn'
+
+* calling argument declarations:
+	INTEGER	nargs, mr_list(nargs), mr_res
+
+* internal variable declarations
+        INTEGER i
+
+* pass the arg pointers to c
+        DO i = 1, nargs
+           CALL EFCN_PASS_ARG_PTR(i, memry(mr_list(i))%ptr )
+        ENDDO
+
+* pass the result pointer to c
+        CALL EFCN_PASS_RES_PTR(memry(mr_res)%ptr)
+
+        RETURN 
+        END
diff --git a/fer/fmt/SOURCE_FILES b/fer/fmt/SOURCE_FILES
index 1596193..72c88ac 100644
--- a/fer/fmt/SOURCE_FILES
+++ b/fer/fmt/SOURCE_FILES
@@ -13,7 +13,9 @@ field_width.F\
 full_uvar_name.F\
 full_uvar_name_xml.F\
 full_var_title.F\
+var_title_only.F\
 geog_label.F\
+geog_label_vs.F\
 get_dset_name.F\
 get_dset_title.F\
 get_prec_digits.F\
@@ -24,6 +26,7 @@ get_sig_digits.F\
 get_user_offset.F\
 get_user_scale.F\
 lefint.F\
+lefint8.F\
 left_just.F\
 left_real.F\
 lohi_string.F\
@@ -37,4 +40,4 @@ var_data_fmt.F\
 var_title.F\
 var_title_mod.F\
 var_trans.F\
-var_units.F 
+var_units.F
diff --git a/fer/fmt/ax_title.F b/fer/fmt/ax_title.F
index f1add64..888aeaf 100644
--- a/fer/fmt/ax_title.F
+++ b/fer/fmt/ax_title.F
@@ -46,6 +46,7 @@
 *			This because of "METERS" in the old grid files around.)
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
 * V695+ *sh* 3/15 - generate axis titles for TIME LAG axes in FMRC variables
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -59,7 +60,7 @@
 	LOGICAL	GEOG_LABEL
 
 * internal variable declarations:
-        LOGICAL ITS_FMRC
+        LOGICAL ITS_FMRC, ITSA_TRUEMONTH_AXIS
 	INTEGER	TM_LENSTR1, i, line, ulen
 	CHARACTER*16 unit_name
 
@@ -99,6 +100,9 @@
               len = 18
            ENDIF
            unit_name = line_units(line)
+
+* If its a true-month axis then make the output unit name be day
+           IF ( ITSA_TRUEMONTH_AXIS(line) ) unit_name = 'day'
            ulen = TM_LENSTR1( unit_name )
            AX_TITLE = AX_TITLE(:len)//' ('//unit_name(:ulen)//')'
            len = len + 3 + ulen
diff --git a/fer/fmt/compound_title.F b/fer/fmt/compound_title.F
index 1668098..17c9e6e 100644
--- a/fer/fmt/compound_title.F
+++ b/fer/fmt/compound_title.F
@@ -52,12 +52,14 @@
 * written for VAX computer under VMS operating system
 *
 * V200:   1/4/89 - from COMPOUND_PLOT_TITLE: major re-write without colors
+* V71  *acm* 2/17  More on ticket 2231. New argument to FULL_VAR_TITLE to control units labels
 
 * calling argument declarations:
 	INTEGER	ncx, cx_list(ncx), tlen
 
 * internal variable declarations:
 	CHARACTER*200	FULL_VAR_TITLE
+	LOGICAL		do_units
 	INTEGER		slen, maxlen, i
 
 	include 'ferret.parm'
@@ -65,13 +67,15 @@
 * maximum title length
 	maxlen = LEN( COMPOUND_TITLE )
 
+	do_units = .TRUE.
+
 * initialize to the first variable context
-	COMPOUND_TITLE = FULL_VAR_TITLE( cx_list(1), tlen )
+	COMPOUND_TITLE = FULL_VAR_TITLE( cx_list(1), do_units, tlen )
 
 * add any remaining variables separated by commas
 	DO 100 i = 2, ncx
 	   COMPOUND_TITLE = COMPOUND_TITLE(:tlen)//' , '//
-     .			    FULL_VAR_TITLE( cx_list(i), slen )
+     .			    FULL_VAR_TITLE( cx_list(i), do_units, slen )
 	   tlen = MIN( maxlen, tlen+slen+3 )
  100	CONTINUE
 
diff --git a/fer/fmt/date_prec.F b/fer/fmt/date_prec.F
index 9c70e4b..54b8f01 100644
--- a/fer/fmt/date_prec.F
+++ b/fer/fmt/date_prec.F
@@ -45,10 +45,12 @@
 * revision 0.0 - 3/18/88
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
 *       *acm* 4/12 6D Ferret: time axis may be in t or f direction. 
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
+        include 'xunits.cmn_text'
 	include	'ferret.parm'
 
 * calling argument declarations
@@ -56,6 +58,7 @@
 	REAL	dt
 
 * internal variable declarations:
+	LOGICAL ITSA_TRUEMONTH_AXIS
 	INTEGER	i
 	REAL	convert(5), delta
 	DATA	convert(1)/ 60. /,	! sec --> min
@@ -67,6 +70,9 @@
 * get the dt interval expressed in seconds
 	delta = dt * line_tunit( grid_line(idim,grid) )
 
+* A true-month axis has line-units of month, but output units of days
+	IF (ITSA_TRUEMONTH_AXIS(grid_line(idim,grid))) delta = dt * un_convert(pun_day)
+
 * see how big it is
 	DO 100 i = 1, 5
 	   delta = delta / convert(i)
diff --git a/fer/fmt/full_var_title.F b/fer/fmt/full_var_title.F
index e73266f..65b5bb1 100644
--- a/fer/fmt/full_var_title.F
+++ b/fer/fmt/full_var_title.F
@@ -1,4 +1,4 @@
-	CHARACTER*(*) FUNCTION FULL_VAR_TITLE( cx, tlen )
+	CHARACTER*(*) FUNCTION FULL_VAR_TITLE( cx, do_units, tlen )
 
 *
 *
@@ -53,6 +53,7 @@
 
 
 * calling argument declarations:
+	LOGICAL	do_units
 	INTEGER	cx, tlen
 
 * internal variable declarations:
@@ -70,9 +71,11 @@
 	tlen	       = TM_LENSTR1( FULL_VAR_TITLE )
 
 * units
-	FULL_VAR_TITLE = FULL_VAR_TITLE(:tlen) // ' ' //
+	IF (do_units) THEN
+	   FULL_VAR_TITLE = FULL_VAR_TITLE(:tlen) // ' ' //
      .		PAREN_SURROUND( VAR_UNITS(cx), slen )
-	tlen = MIN( maxlen, tlen+1+slen)
+	   tlen = MIN( maxlen, tlen+1+slen)
+	ENDIF
 
 * mods to title
 	FULL_VAR_TITLE = FULL_VAR_TITLE(:tlen) //
diff --git a/fer/gnl/finalize.F b/fer/fmt/geog_label_vs.F
similarity index 61%
copy from fer/gnl/finalize.F
copy to fer/fmt/geog_label_vs.F
index fdfb9c9..a83fd5b 100644
--- a/fer/gnl/finalize.F
+++ b/fer/fmt/geog_label_vs.F
@@ -1,8 +1,5 @@
+	SUBROUTINE GEOG_LABEL_VS (buff, iunits, dir_dim, formatted_dim)
 
-
-	SUBROUTINE FINALIZE
-
-*
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -36,43 +33,46 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-* prepare for shutdown of ferret
-*
-*     *kms* 11/10 - added cat_pystat_var string_array_clear
-*                   cleared out VMS-specific includes
-*       *acm* 3/12 cleanup ifdefs and unnecessary include files
+* This routine checks the units and the setting for formatted lon/lat (time?) axes
+* If the formatting has been turned off, resets iunits and flag mod_vs_x.
+
+* 3/2017 Ansley Manke
+* for ticket 2517, correct labeling of lon/lat axes for PLOT/VS plots, and turn off
+* lon/lat axis formatting according to MODE long_label and MODE latit_label
 
-        include 'tmap_errors.parm'  ! error codes
 	include 'tmap_dims.parm'
-	include 'xio.cmn_text'
-        include 'xdset_info.cmn_text'
-	external xio_data
-	include 'xtm_grid.cmn_text'
-	external xgt_grid_data
-	include	'ferret.parm'
-	include	'gfdl_vms.parm'
-	include	'errmsg.parm'
-	include	'gfdl.parm'			! from phil/sieg
-	include	'xonedim.cmn'		! from phil.sieg
+	include 'ferret.parm'
 	include 'xprog_state.cmn'
-        include 'xalgebra.cmn'
-	include 'xvariables.cmn'
-	include 'xtoday.cmn'
-        include 'xpyvar_info.cmn'
 
-        CALL string_array_clear(alg_pvar_head)
+	INTEGER iunits, dir_dim, formatted_dim
+	CHARACTER*(*) buff
+	
 
-        CALL string_array_clear(countervar_name_head)
+	LOGICAL TM_HAS_STRING
 
-        CALL string_array_clear(uvar_name_code_head)
- 
-        CALL string_array_clear(ds_var_code_head)
+	formatted_dim = no_dim
 
-        CALL string_array_clear(pyvar_code_head)
+* The units code has been set by a call to TM_FMT which already checks 
+* whether the units string indicated degrees temperature.
 
-        CALL deleted_list_clear(uvar_num_items_head)
+* If the units are explicitly defined as degrees east or degrees north,
+* set the formatted_dim flag.
 
-	RETURN
+	IF (iunits .EQ. 4) THEN
 
-	END
+	   IF (TM_HAS_STRING(buff, '_e') .OR. TM_HAS_STRING(buff, 'lon')) THEN
+	     IF (ax_fmt(x_dim)) formatted_dim = x_dim
+	     IF (.NOT. ax_fmt(x_dim)) iunits = 0
+	   ELSEIF (TM_HAS_STRING(buff, '_n') .OR. TM_HAS_STRING(buff, 'lat') ) THEN
+	     IF (ax_fmt(y_dim)) formatted_dim = y_dim
+	     IF (.NOT. ax_fmt(y_dim)) iunits = 0
+	   ELSE
+
+* If the lon or lat label mode has been turned off, unset the units 
+	      IF (.NOT. ax_fmt(dir_dim)) iunits = 0
+	   ENDIF
+
+	ENDIF
 
+	RETURN
+	END
diff --git a/fer/stk/explicit_uvar.F b/fer/fmt/lefint8.F
similarity index 78%
copy from fer/stk/explicit_uvar.F
copy to fer/fmt/lefint8.F
index 7e481f2..4badf46 100644
--- a/fer/stk/explicit_uvar.F
+++ b/fer/fmt/lefint8.F
@@ -1,4 +1,4 @@
-	LOGICAL FUNCTION EXPLICIT_UVAR( uvar )
+	CHARACTER*(*) FUNCTION LEFINT8( ival, llen )
 
 *
 *
@@ -35,26 +35,32 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* determine if the given "user-defined" variable was explicitly created (with
-* DEFINE VARIABLE) or implicitly (e.g. with LIST U*V)
-
+* This routine identical to LEFINT, except geared for INTEGER*8 input
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* V200:   8/8/89
-*       *acm* 3/12 cleanup ifdefs and unnecessary include files
-*       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'xvariables.cmn'
+* V702: *sh* 2/17 - needed for dynamic memory management
 
 * calling argument declarations:
-	INTEGER	uvar
+	INTEGER	llen
+	INTEGER*8 ival
+
+* internal variable declarations:
+	CHARACTER*20 buff20
+	INTEGER	     first
+
+* create right-justified string of up to 20 digits
+	WRITE ( buff20, '(I20)' ) ival
 
-	EXPLICIT_UVAR = INDEX( uvar_name_code(uvar), '#' ) .EQ. 0
+* find left-most non-blank
+	DO 100 first = 1, 19
+	   IF ( buff20(first:first) .NE. ' ' ) GOTO 200
+ 100	CONTINUE
+	first = 20
 
+* insert left-justified string
+ 200	LEFINT8 = buff20(first:20)
+	llen   = 21 - first
 	RETURN
 	END
diff --git a/fer/fmt/replace_deq.F b/fer/fmt/replace_deq.F
index 72d05ee..d4eb1ba 100644
--- a/fer/fmt/replace_deq.F
+++ b/fer/fmt/replace_deq.F
@@ -35,7 +35,8 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* replace "D
+* replace the number found in a [D=#]" syntax with the dataset name
+
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 
@@ -48,6 +49,7 @@
 * 2/03 *kob* - g77 port - g77 won't allow intrinsic functions in PARAMETER
 *                         statements.  use an octal constant instead
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* 11/16 *sh* support for aggregation.member syntax
 
         include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -59,8 +61,9 @@
 	CHARACTER*(*) orig
 
 * internal variable declarations
-	INTEGER TM_LENSTR1, i, i0, i1, i2, i3, eqpos, inlen, outlen,
-     .       dset, nlen, maxlen
+	INTEGER TM_LENSTR1, FIND_DSET_NUMBER,
+     .		i, i0, i1, i2, i3, eqpos, inlen, outlen,
+     .          dset, nlen, maxlen
 
         CHARACTER*1 tab
 #ifdef NO_INTRINSIC_IN_PARAMETER
@@ -111,16 +114,13 @@
 
 * get the data set number
         DO 300 i3 = i2+1, inlen
-           IF ( orig(i3:i3).LT."0" .OR. orig(i3:i3).GT."9" ) GOTO 310
+           IF ( (orig(i3:i3).LT."0" .OR. orig(i3:i3).GT."9")
+     .    .AND. orig(i3:i3).NE."." ) GOTO 310
  300    CONTINUE
         GOTO 500   ! digit is final character ??
  310    i3 = i3 - 1
-#ifdef MANDATORY_FORMAT_WIDTHS
-        READ (orig(i2:i3),*,ERR=5000) dset
-#else
-        READ (orig(i2:i3),'(I)',ERR=5000) dset
-#endif
-        IF (dset.LT.1 .OR. dset.GT.maxdsets) GOTO 10    ! error if so
+	dset = FIND_DSET_NUMBER(orig(i2:i3))
+        IF (dset.LT.1 .OR. dset.GT.maxdsets) GOTO 10    ! error?
 
 * replace D=# with D=name
         nlen = TM_LENSTR1(ds_name(dset))
diff --git a/fer/fmt/var_title_only.F b/fer/fmt/var_title_only.F
new file mode 100644
index 0000000..50e87d4
--- /dev/null
+++ b/fer/fmt/var_title_only.F
@@ -0,0 +1,167 @@
+	CHARACTER*(*) FUNCTION VAR_TITLE_ONLY( cx, tlen )
+
+*
+*
+*  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. 
+*
+* For ticket 2331, variable-title option
+* create a title for a memory variable including only the variable's title
+* If no title, then the variable name, or if an expression, its definition.
+
+* programmer - Ansley Manke from VAR_TITLE
+* revision 0.0 - 2/6/2017
+
+
+        include	'tmap_dims.parm'
+	include	'xdset_info.cmn_text'
+	external xdset_info_data
+	include 'xtm_grid.cmn_text'
+	external xgt_grid_data
+	include	'ferret.parm'
+	include	'xvariables.cmn'
+	include	'xcontext.cmn'
+	include	'xalgebra.cmn'
+        include 'errmsg.parm'
+
+* calling argument declarations:
+	INTEGER	cx, tlen
+
+* internal variable declarations:
+	LOGICAL 	NC_GET_ATTRIB, ACTS_LIKE_FVAR, got_it
+	INTEGER 	TM_LENSTR1, maxlen, cat, var, idim, slen, 
+     .			trans,uvar, item, start, end, dset, 
+     .                  varid,attlen, attoutflag, status
+        REAL            vals
+	CHARACTER	VAR_CODE*128, SANITARY_VAR_CODE*128, PAREN_SURROUND*200,
+     .                  VAR_UNITS*64, REPLACE_DEQ*180,   ! .GT. uvar_text_len
+     .                  buff*2048, varname*128
+
+* initialize
+	maxlen	= LEN( VAR_TITLE_ONLY )
+
+* initialize
+	var = cx_variable( cx )
+	cat = cx_category( cx )
+
+	IF     ( ACTS_LIKE_FVAR(cat) ) THEN
+	   IF ( ds_var_title( var )(1:1) .NE. ' ' ) THEN
+	      VAR_TITLE_ONLY = ds_var_title( var )
+	   ELSE
+              dset = cx_data_set(cx)
+              IF (dset .NE. pdset_irrelevant .AND. 
+     .            dset .NE. unspecified_int4) THEN
+! is it in the linked-list for dset. If so get attr info, including original 
+                 varname = SANITARY_VAR_CODE( cat, var )
+                 CALL CD_GET_VAR_ID (dset, varname, varid, status)
+                 got_it = status .EQ. ferr_ok .AND.
+     .              NC_GET_ATTRIB (dset, varid, 'long_name',
+     .             .TRUE., varname, 2048, attlen, attoutflag,
+     .             buff, vals)
+                 VAR_TITLE_ONLY = buff
+                 IF (VAR_TITLE_ONLY .EQ. ' ') VAR_TITLE_ONLY = varname
+              ELSE
+                 VAR_TITLE_ONLY = VAR_CODE( cat, var )
+!	         VAR_TITLE_ONLY = '"'//var_title(:TM_LENSTR1(var_title))//'"'
+              ENDIF
+	   ENDIF
+
+	ELSEIF ( cat .EQ. cat_user_var  ) THEN
+
+	   IF ( uvar_title( var ) .EQ. ' ' ) THEN
+	      VAR_TITLE_ONLY = uvar_name_code(var)
+	      IF (VAR_TITLE_ONLY(1:3) .EQ. 'EX#') VAR_TITLE_ONLY = 
+     .          REPLACE_DEQ(uvar_text(var)(:TM_LENSTR1(uvar_text(var)) ))
+	   ELSE
+	      VAR_TITLE_ONLY = uvar_title( var )
+	   ENDIF
+
+
+	ELSEIF ( cat .EQ. cat_attrib_val  ) THEN
+
+	   uvar = cx_variable(cx)
+	   VAR_TITLE_ONLY = uvar_text(uvar)
+
+	   IF ( uvar_title( uvar ) .EQ. ' ' ) THEN
+	      VAR_TITLE_ONLY = REPLACE_DEQ(
+     .             uvar_text(uvar)(:TM_LENSTR1(uvar_text(uvar)) ))
+	   ENDIF
+
+	ELSEIF ( cat .EQ. cat_pseudo_var ) THEN
+
+	   VAR_TITLE_ONLY = alg_pvar(var)
+
+	ELSEIF ( cat .EQ. cat_dummy_var ) THEN
+
+	   VAR_TITLE_ONLY = 'dummy'
+
+	ELSEIF ( cat .EQ. cat_temp_var ) THEN
+
+	   VAR_TITLE_ONLY = 'temp var'
+
+	ELSEIF ( cat .EQ. cat_constant ) THEN
+
+	   VAR_TITLE_ONLY = 'constant'
+
+	ELSEIF ( cat .EQ. cat_const_var ) THEN
+
+	   uvar = cx_variable(cx)/1000
+           item = cx_variable(cx) - 1000*uvar
+           start = uvar_item_start( item, uvar )
+           end   = uvar_item_end  ( item, uvar )
+	   VAR_TITLE_ONLY = uvar_text(uvar)(start:end)
+
+	ELSEIF ( cat .EQ. cat_string ) THEN
+
+* determine the string to be stored
+           uvar = cx_variable(cx)/1000
+           item = cx_variable(cx) - 1000*uvar
+           start = uvar_item_start( item, uvar )
+           end   = uvar_item_end  ( item, uvar )
+	   VAR_TITLE_ONLY = uvar_text(uvar)(start:end)
+
+	ELSEIF ( cat .EQ. cat_counter_var ) THEN
+
+	   VAR_TITLE_ONLY = 'counter'
+
+	ELSE
+
+	   VAR_TITLE_ONLY = 'bad_cat'
+
+	ENDIF
+
+* if it wont fit indicate that with a "*" at the end
+	tlen = MIN( maxlen, TM_LENSTR1(VAR_TITLE_ONLY) )
+	IF ( tlen .EQ. maxlen ) VAR_TITLE_ONLY(maxlen:maxlen) = '*'
+
+	RETURN
+	END
diff --git a/fer/fmt/var_trans.F b/fer/fmt/var_trans.F
index 43f0b01..5062290 100644
--- a/fer/fmt/var_trans.F
+++ b/fer/fmt/var_trans.F
@@ -45,6 +45,7 @@
 * V500 *kob* 3/99- up VAR_CODE and local variable var to 64 chars
 * V552 *acm* 4/03- up VAR_CODE decl from 64 to 128 chars
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+*       *acm*11/16 write a shortened var name to diag output when name is super long
 
 * calling argument declarations:
 	INTEGER	idim, cx, out_len
@@ -60,22 +61,30 @@
 	include	'xtext_info.cmn'
 
 * internal parameter declarations:
-	LOGICAL     full_precision
+	LOGICAL     full_precision, toolong
 	PARAMETER ( full_precision = .TRUE. )
 
 * initialize
 	var = VAR_CODE( cx_category(cx), cx_variable(cx) )
         vlen = TM_LENSTR1( var )
+	toolong = vlen .GT. 60
 
 * TRANSFORMATION
 * "VAR_NAME[x=lo:hi at TRN:n,D=#]"
 	dim_str = CX_DIM_STR( idim, cx, ':',  full_precision, slen )
-	WRITE (out_buff,3000) var(:vlen), dim_str(:slen), cx_data_set(cx)
+	IF (toolong) THEN
+	   WRITE (out_buff,3000) var(:50), dim_str(:slen), cx_data_set(cx)
+	ELSE
+	   vlen = MIN(70, vlen)
+	   WRITE (out_buff,3100) var(:vlen), dim_str(:slen), cx_data_set(cx)
+	ENDIF
 	CALL TM_PACK_STRING( out_buff, out_buff, 1, 80, out_len )
 
- 3000	FORMAT (A,'[',A,',D=',I3,']')
+ 3000	FORMAT (A,' ... [',A,',D=',I3,']')
+ 3100	FORMAT (A,'[',A,',D=',I3,']')
 
 	VAR_TRANS = out_buff
 
+
 	RETURN
 	END
diff --git a/fer/gnl/SOURCE_FILES b/fer/gnl/SOURCE_FILES
index 1da98e3..1a8114a 100644
--- a/fer/gnl/SOURCE_FILES
+++ b/fer/gnl/SOURCE_FILES
@@ -26,7 +26,7 @@ ctrl_c.F\
 define_ef_aggregate_grid.F\
 define_special_grids.F\
 define_t_agg_mc_dset.F\
-delete_one_line.F\
+define_u_aggregate_var.F\
 do_query.F\
 dollar_arg.F\
 dollar_command.F\
@@ -35,7 +35,6 @@ equal_format.F\
 equal_permute.F\
 equal_str_lc.F\
 equal_string.F\
-equal_type.F\
 equal_val.F\
 equal_val_int.F\
 errmsg.F\
@@ -58,6 +57,7 @@ init_journal.F\
 init_memory.F\
 init_t_aggregate_dset.F\
 init_t_agg_mc_dset.F\
+init_u_aggregate_dset.F\
 initialize.F\
 is_agg_member.F\
 isit_const_arr_var.F\
@@ -88,6 +88,7 @@ redefine_ax_att.F\
 repl_exprns.F\
 reset_axis.F\
 reset_ax_att.F\
+sanity_check_memory.F\
 save_ppl_memory_size.F\
 save_scriptfile_name.F\
 scalar_grid_line.F\
@@ -115,6 +116,7 @@ show_grid_string_xml.F\
 show_line.F\
 show_line_xml.F\
 show_line_coords.F\
+show_mem_usage_line.F\
 show_mem_vars.F\
 show_pytext_group.F\
 show_region.F\
@@ -130,6 +132,5 @@ turnoff_verify.F\
 var_stat.F\
 version_only.F\
 warn.F\
-warn_occasionally.F\
 write_dods_fmt.F \
 write_multi.F 
diff --git a/fer/gnl/build_t_agg_axis.F b/fer/gnl/build_t_agg_axis.F
index f07de7d..a6caecf 100644
--- a/fer/gnl/build_t_agg_axis.F
+++ b/fer/gnl/build_t_agg_axis.F
@@ -52,6 +52,11 @@
 *
 * V695+ 10/15 *sh* -- based upon DEFINE_EF_AGGREGATE_GRID
 * V67    5/16 *acm*   Fixes for member sets with single-point time axes having bounds
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
+* V7022 1/17 *acm* ticket 2497, Back off the auto-detection of monthly axes.
+* V71   2/17 *acm* ticket 2507, When agg axis matches an existing one, fix swapping 
+*                  of axis into grids - the swap axis may be in multiple grids.
+* V71   2/17 *acm* ticket 2507, further fix for when several variables have the same grid.
 
       IMPLICIT NONE
         include 'tmap_errors.parm'
@@ -62,7 +67,8 @@
 	external xdset_info_data
 	include 'xdset_info.cd_equiv'
         include 'xprog_state.cmn'
-	include 'xtm_grid.cmn_text'  
+	include 'xtm_grid.cmn_text'
+	include 'xunits.cmn_text' 
 	include 'errmsg.parm'
 	include 'xvariables.cmn'
 	include 'xcontext.cmn'
@@ -99,17 +105,18 @@
 
 
 * local variable declarations:
-	LOGICAL TM_DFPEQ_TOL, need_midpoints, need_T0_adjust,
-     .		swap_axes
+	LOGICAL TM_DFPEQ_TOL, ITSA_TRUEMONTH_AXIS, need_midpoints, need_T0_adjust,
+     .		swap_axes, true_month, memb_true_month
 	INTEGER TM_LENSTR1, TM_GET_CALENDAR_ID, TM_FIND_LIKE_DYN_LINE,
      .		taxis, nsteps, max_line_available, dtype, vlen, blen,
      .		i, ifile, istep, ivar, TMAP_status, isubsc1,
      .		cdfid, vid, bounds_id, gg, ilo, ihi, l, imemb,
      .		startpts(2), numpts(2), d1s, d1e, d2s, d2e,
-     .		agg_unit_code, file_unit_code, agg_cal_id, pre_exist
+     .		agg_unit_code, file_unit_code, agg_cal_id, pre_exist, 
+     .		nsteps_trumon
 	REAL	TM_WORLD_AX, T0_ADJUST,
      .		tt, delta, highest_tstep, dfirst_delta, 
-     .		depsilon
+     .		depsilon, start, tunit, coord_hi, hdel, coord_new
 	CHARACTER LEFINT*20, lname*20, vname*64, bname*12, units_str*128,
      .		  calendar_str*128, agg_t0_str*20, file_t0_str*20
 
@@ -137,6 +144,184 @@
 * axis in as a new axis and then replace the pointers to the old axis with the
 * new. 
 
+* Was the first file found to have a true-monthly time axis?
+c	true_month = ITSA_TRUEMONTH_AXIS (taxis)
+	true_month = .FALSE.
+
+c	IF (true_month .AND. .NOT.t_regular) THEN
+c
+c* Loop through the files of the aggregation, checking for more compatible true-month axes.
+c* The time axis from member 1 is not in line_mem, so just keep reading into the next slots
+c
+c	   nsteps_trumon = nsteps
+c	   isubsc1 = next_line_mem_pos
+c	   
+c	   coord_hi = line_start(taxis) + (nsteps-1)* line_delta(taxis)
+c
+c* Translate fake true-month timestep to actual month-length step.
+c
+c	   CALL TM_TCOORD_TRUMONTH (taxis, coord_hi,  
+c     .		       box_middle, coord_new)
+c
+c	   memb_order(1) = 1
+c	   memb_nsteps(1) = nsteps
+c	   memb_tstep_start(1) = line_start(taxis) 
+c	   memb_tstep_end  (1) = coord_new
+c
+c	   TMLOOP: DO ifile = 2, nagfiles
+c* ... first read the length of the time axis from the file to be aggregated
+c	      CALL CD_QUIK_NCOPEN (dset_num, memb_filename(ifile),
+c     .				      vname(:vlen),
+c     .				      cdfid, vid, bounds_id,
+c     .				      units_str, calendar_str,
+c     .				      nsteps, TMAP_status)
+c	      IF (TMAP_status .NE. merr_ok) GOTO 5010
+c* ... check to see if calendar, units, and T0 are consistent with the agg axis
+c	      CALL CD_GET_T0(memb_filename(ifile), units_str, calendar_str,
+c     .                  agg_cal_id, file_unit_code, file_t0_str, status)
+c
+c	      IF (next_line_mem_pos+nsteps .GT. max_line_available) GOTO 5100
+c
+c* ... read the array of time steps from the file and read or compute bounds
+c	      CALL CD_RD_R8_ARR(cdfid, vid,1, nsteps,dtype,vname(:vlen),
+c     .				   line_mem(isubsc1), status)
+c	      IF ( status .NE. merr_ok ) GOTO 5010
+c
+c	      IF (bounds_id .NE. unspecified_int4) THEN
+c
+c	         startpts(1) = 1
+c	         startpts(2) = 1
+c	         numpts(1) = 1
+c	         numpts(2) = nsteps
+c
+c	         d1s = startpts(1)
+c	         d1e = numpts(1)
+c	         d2s = startpts(2)
+c	         d2e = numpts(2)
+c		 bname = 'bounds array'
+c		 blen = 12
+c
+c		 CALL CD_RD_R8_BNDS( cdfid, bounds_id,
+c     .			  startpts, numpts, dtype, bname(:blen),
+c     .                    line_mem(isubsc1+nsteps),  
+c     .                    d1s, d1e, d2s, d2e, status )
+c	         IF ( status .NE. merr_ok ) GOTO 5010
+c
+c	      ELSE
+c	         CALL TM_IRREGAX_MID( isubsc1,isubsc1 )
+c	      ENDIF
+c
+c	      CALL TM_CHECK_MONTHLY_AXIS (line_mem(isubsc1), nsteps, agg_cal_id, 
+c     .                                   file_T0_str, file_unit_code, units_str,
+c     .                                   start, delta, tunit, memb_true_month)
+c
+c* Also bail on true-month if the units or t0 are different.
+c
+c	      need_T0_adjust = (file_unit_code .NE. agg_unit_code)
+c     .			     .OR. (file_T0_str    .NE. agg_T0_str)
+c	      IF (need_T0_adjust) memb_true_month = .FALSE.
+c
+c! check value of "start" relative to the stored axis -- checking sorting.
+c	      IF (start .LT. coord_hi) memb_true_month = .FALSE.
+c	      IF (start-coord_hi .GT. 2.*line_delta(taxis))  memb_true_month = .FALSE.
+c	      IF (delta .NE. line_delta(taxis)) memb_true_month = .FALSE.
+c
+c	      IF (.NOT.memb_true_month) EXIT TMLOOP ! from loop
+c
+c	      nsteps_trumon = nsteps_trumon + nsteps
+c	      coord_hi = line_start(taxis) + (nsteps_trumon-1)* line_delta(taxis)
+c
+c* Translate fake true-month timestep to actual month-length step.
+c
+c	      CALL TM_TCOORD_TRUMONTH (taxis, coord_hi,  
+c     .		       box_middle, coord_new)
+c
+c	      memb_order(ifile) = ifile
+c	      memb_nsteps(ifile) = nsteps
+c	      memb_tstep_start(ifile) = start
+c	      memb_tstep_end(ifile) = coord_new
+c
+c	      line_dim(taxis) = nsteps_trumon
+c	      t_regular = .TRUE.
+c	  
+c	   ENDDO TMLOOP
+c
+c* ... If some month isn't a true-mnth axis, then we will not use a true-month axis.
+c*     Get the original coordinates from the first member set and continue.
+c
+c	   IF (true_month .AND. .NOT.memb_true_month) THEN
+c	   
+c	      t_regular = .FALSE.
+c	      ifile = 1
+c	      CALL CD_QUIK_NCOPEN (dset_num, memb_filename(ifile),
+c     .				      vname(:vlen),
+c     .				      cdfid, vid, bounds_id,
+c     .				      units_str, calendar_str,
+c     .				      nsteps, TMAP_status)
+c	      IF (TMAP_status .NE. merr_ok) GOTO 5010
+c* ... check to see if calendar, units, and T0 are consistent with the agg axis
+c	      CALL CD_GET_T0(memb_filename(ifile), units_str, calendar_str,
+c     .                  agg_cal_id, file_unit_code, file_t0_str, status)
+c
+c* ... read the array of time steps from the file
+c	      CALL CD_RD_R8_ARR(cdfid, vid,1, nsteps,dtype,vname(:vlen),
+c     .				   line_mem(isubsc1), status)
+c	      line_regular(taxis) = .FALSE.
+c	      line_unit_code(taxis) = file_unit_code
+c	      agg_unit_code = file_unit_code
+c	      line_delta(taxis) = unspecified_val8
+c
+c	      IF (bounds_id .NE. unspecified_int4) THEN
+c
+c	         startpts(1) = 1
+c	         startpts(2) = 1
+c	         numpts(1) = 1
+c	         numpts(2) = nsteps
+c
+c	         d1s = startpts(1)
+c	         d1e = numpts(1)
+c	         d2s = startpts(2)
+c	         d2e = numpts(2)
+c		 bname = 'bounds array'
+c		 blen = 12
+c
+c		 CALL CD_RD_R8_BNDS( cdfid, bounds_id,
+c     .			  startpts, numpts, dtype, bname(:blen),
+c     .                    line_mem(isubsc1+nsteps),  
+c     .                    d1s, d1e, d2s, d2e, status )
+c	      ELSE
+c	         CALL TM_IRREGAX_MID( isubsc1,isubsc1 )
+c	      ENDIF
+c
+c	      true_month = .FALSE.
+c	   ENDIF
+c
+c	ENDIF  ! true_month
+
+* Do some of the member sets need bounds?  If so then get them for all sets.
+c	IF (.NOT.t_regular .AND. line_regular(taxis)) THEN
+c	   need_midpoints = .TRUE.
+c	   DO ifile = 1, nagfiles
+c	      CALL CD_QUIK_NCOPEN (dset_num, memb_filename(ifile),
+c     .				      vname(:vlen),
+c     .				      cdfid, vid, bounds_id,
+c     .				      units_str, calendar_str,
+c     .				      nsteps, TMAP_status)
+c	      IF (bounds_id .NE. unspecified_int4) need_midpoints = .FALSE.
+c
+c	   ENDDO
+c	   IF (.NOT. need_midpoints) THEN  ! fill in coordinats and bounds for first member set
+c	      hdel = line_delta(taxis)/2.
+c	      DO istep = 0, nsteps-1
+c	         line_mem(next_line_mem_pos+istep) = line_start(taxis)
+c     .		+ istep*line_delta(taxis)
+c	         line_mem(next_line_mem_pos+nsteps+istep) = 
+c     .		    line_mem(next_line_mem_pos+istep) - hdel
+c	         line_mem(next_line_mem_pos+nsteps+istep+1) = 
+c     .		    line_mem(next_line_mem_pos+istep) + hdel
+c	      ENDDO
+c	   ENDIF
+c	ENDIF
 
 * set up for a regular or irregular T-agg axis as requested by t_regular
 	IF (t_regular .AND. .NOT.line_regular(taxis)) THEN
@@ -307,6 +492,8 @@
      .				   line_mem(isubsc1), status)
 	         IF ( status .NE. merr_ok ) GOTO 5010
 
+
+
 * ... adjust the time step values to the agg-chosen "<units> since <T0>"
 	         IF (need_T0_adjust) THEN
 	            DO istep = isubsc1, isubsc1+nsteps-1
@@ -371,6 +558,7 @@
 * ... reorder the newest nstep+1 bounds values into backwards order,
 *     ensuring one pass through the loop for single-step axis
 	            DO istep = 0, MAX(0,nsteps/2-1)
+
 	               ilo = max_line_available+istep
 	               ihi = max_line_available+nsteps-istep
 	               tt = line_mem(ilo)
@@ -414,6 +602,7 @@
 	         ihi = ihi - 1
 	         IF (ihi .LT. ilo) EXIT  ! exit loop; 1-point axes casuses this
 	      ENDDO
+
 * ... 2. shift the bounds down to sit just after the coordinates
 	      ilo = line_subsc1(taxis) + nsteps
 	      ihi = max_line_available
@@ -475,7 +664,7 @@
 *  ... first sanity check monotonicity and bounds bracketing
 	   IF (nsteps.EQ.1) GOTO 100
 	   ilo = line_subsc1(taxis)    ! L step on agg taxis
-!	   ihi = ilo + nsteps - 1
+	   ihi = ilo + nsteps - 1
            dfirst_delta = line_mem(ilo+1) - line_mem(ilo)
            depsilon = depsilon_46 * 2.*(ABS(line_mem(ilo))
      .		    / dfirst_delta )
@@ -536,10 +725,13 @@
 * correct all time-dependent variables in this dataset
 *  ... the upper L limit was set based upon the first file, alone
 *  ... and the time axis might just have been swapped for a pre-existing one
+*      (ticket 2507, do not wipe out info needed for further grids once the
+*       first grid found has its axis swapped.)
+
 	DO ivar = 1, maxvars
 	   IF ( ds_var_setnum(ivar) .EQ. dset_num ) THEN
 	      gg  = ds_grid_number(ivar)
-	      IF (grid_line(t_dim,gg) .EQ. taxis) THEN
+	      IF (grid_line(t_dim,gg).EQ.taxis .OR. grid_line(t_dim,gg).EQ.pre_exist) THEN
 	         ds_grid_end(t_dim,ivar) = nsteps
 	         IF (swap_axes) THEN
 * ... was this grid modified in this loop an instant ago?
@@ -550,17 +742,34 @@
 	               ENDIF
 	            ENDDO
 	            grid_line(t_dim,gg) = pre_exist
-* ... "use" the pre-existing on; "un-use" the new one
+* ... "use" the pre-existing one; "un-use" the new one
 	            CALL TM_USE_LINE(pre_exist)
 	            CALL TM_DEALLO_DYN_LINE(taxis)
-	            taxis = pre_exist
-	            ds_time_axis(dset_num) = taxis
-	            swap_axes = .FALSE. ! done swapping
+	            ds_time_axis(dset_num) = pre_exist
 	         ENDIF
 	      ENDIF
 	   ENDIF
  500	   CONTINUE
 	ENDDO
+	IF (swap_axes) taxis = pre_exist
+
+* Is the axis we have created a monthly axis?  IF so store it as such.
+
+c	IF (.NOT. true_month .AND. .NOT.line_regular(taxis)) THEN
+c	   CALL TM_CHECK_MONTHLY_AXIS (line_mem( line_subsc1(taxis)), line_dim(taxis), agg_cal_id, 
+c     .                                   agg_T0_str, agg_unit_code, units_str,
+c     .                                   start, delta, tunit, true_month)
+c           IF (true_month) THEN
+c              line_regular(taxis) = .TRUE.
+c              line_start  (taxis) = start
+c              line_delta  (taxis) = delta
+c              line_subsc1 (taxis) = unspecified_int4
+c	      line_unit_code (taxis) = agg_unit_code
+c	      line_units (taxis) = units_str
+c              line_tunit  (taxis) = un_convert(agg_unit_code)
+c	   ENDIF
+c	ENDIF
+c
 
  5000	RETURN
  5010	CALL ERRMSG( ferr_TMAP_error, status, ' ', *5000 )
diff --git a/fer/gnl/cancel_data_set.F b/fer/gnl/cancel_data_set.F
index 549e944..a51d4c8 100644
--- a/fer/gnl/cancel_data_set.F
+++ b/fer/gnl/cancel_data_set.F
@@ -44,6 +44,7 @@
 *
 * V695 *sh* 1/16 - bulk of logic moved to CANCEL_ONE_DATA_SET 
 * V698  3/16 *acm* Remove unneeded xdset_parms.cmn
+* V7   *acm*  6/12 Add Union aggregations: DEFINE DATA/AGG/U, ds_type 'UNI'
 
 * calling arguments
 *  dset      -  (input) dataset number to be closed
@@ -91,7 +92,8 @@
 
 * if this dataset is an aggregation, cancel hidden member datasets, too
 * unless they are also members in some other aggregation
-	IF (ds_type(dset).EQ.'ENS' .OR. ds_type(dset).EQ.'FCT') THEN
+	IF (ds_type(dset).EQ.'ENS' .OR. ds_type(dset).EQ.'FCT' 
+     .      .OR. ds_type(dset).EQ.'UNI') THEN
 
 * ... loop over aggregation members
 	   CALL CD_GET_AGG_DSET_INFO (dset, nmemb, status)
diff --git a/fer/gnl/cdf_list.F b/fer/gnl/cdf_list.F
index 5a377fb..8b6354d 100644
--- a/fer/gnl/cdf_list.F
+++ b/fer/gnl/cdf_list.F
@@ -1,4 +1,4 @@
-	SUBROUTINE CDF_LIST ( memory, fname, append, crecdim, nvars,
+	SUBROUTINE CDF_LIST ( fname, append, crecdim, nvars,
      .			      mr_list, cx_list, title, enhead, mode,
      .			      clobber, edges_flag, do_bounds, 
      .			      keepax_flag, out_type, quiet, status )
@@ -130,6 +130,8 @@
 * V698 *acm* 1/16 Allow for Epic CDF files, ds_type = 'ECDF'
 * V698  2/16 *acm* For ticket 2352: variables defined with LET/D are
 *                  added to that dataset in the attribute structure
+* 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 'tmap_errors.parm'
@@ -153,7 +155,6 @@
         LOGICAL         append, enhead, clobber, quiet
 	INTEGER		nvars, mr_list(nvars), cx_list(nvars), mode,
      .			edges_flag, keepax_flag, do_bounds, status
-	REAL		memory( mem_blk_size, max_mem_blks )
         CHARACTER*(*)   fname, title, out_type
         CHARACTER*1     crecdim
 
@@ -298,7 +299,7 @@
         IF (dset .GT. pdset_irrelevant) THEN
           IF (ds_type(dset).EQ.'CDF' .OR. ds_type(dset).EQ.'ECDF' 
      .        .OR. ds_type(dset).EQ.' MC' .OR. ds_type(dset).EQ.'ENS' 
-     .        .OR. ds_type(dset).EQ.'FCT')
+     .        .OR. ds_type(dset).EQ.'FCT' .OR. ds_type(dset).EQ.'UNI')
      .       CALL CDF_LIST_GLOBAL_ATTS (dset, cdfid, status)
         ENDIF
         dset_last = dset
@@ -318,7 +319,8 @@
                  IF (ds_type(dset) .EQ. 'CDF' .OR. 
      .               ds_type(dset) .EQ. ' MC' .OR. 
      .               ds_type(dset) .EQ. 'ENS' .OR. 
-     .               ds_type(dset) .EQ. 'FCT')
+     .               ds_type(dset) .EQ. 'FCT' .OR. 
+     .               ds_type(dset) .EQ. 'UNI')
      .          CALL CDF_LIST_GLOBAL_ATTS (dset, cdfid, status)
               ENDIF
               dset_last = dset
@@ -1188,9 +1190,8 @@
            IF (interrupted) CALL ERRMSG(ferr_interrupt,status,' ',*5800)
 
 * write the data for this variable
-
-           CALL CD_WRITE_VAR ( memory, cdfid, dset_num, varcode, grid, 
-     .                        write_lo, write_hi, memory(1,mr_blk1(mr)), 
+           CALL CD_WRITE_VAR (cdfid, dset_num, varcode, grid, 
+     .                        write_lo, write_hi, memry(mr)%ptr, 
      .                        edges_flag, do_bounds, mode_upcase_output, 
      .                        keepax_flag, status )
            IF ( status .NE. merr_ok ) GOTO 5800
diff --git a/fer/gnl/check_memory.F b/fer/gnl/check_memory.F
index 4928856..84e94cd 100644
--- a/fer/gnl/check_memory.F
+++ b/fer/gnl/check_memory.F
@@ -1,5 +1,3 @@
-
-
 	SUBROUTINE CHECK_MEMORY ( lun )
 
 *
@@ -57,6 +55,7 @@
 *               declaration line.
 * V510: 10/99 *sh* - make checks on 
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
+* V702 *sh* Added dynamic memory checks.  Removed old block-oriented stuff
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -68,53 +67,28 @@
 	INTEGER	lun
 
 * internal variable declarations:
-	INTEGER	mv, mb, mvfree, mvused, mbfree, mbused, mbmax,
-     .		nmvlost, nmblost, n, pile, last, size, test_next,
-     .		navail, nperm, mbperm, ntemp, ndel, slen, nn
-	CHARACTER LEFINT*8, buff*40, b12*12
-	PARAMETER (b12 = '            ')    !kob 12/96
-* check available bulk memory
-	n      = 0	! number of contiguous regions
-	mbfree = 0	! number of free blocks
-	mbmax  = 0	! biggest contiguous region
-	mb = mblk_flink( 0 )
- 100	IF ( mb .NE. 0 ) THEN
-	   n      = n + 1
-	   size   = mblk_size( mb ) 
-	   mbmax  = MAX( mbmax, size )
-	   mbfree = mbfree + size
-* * * * integrity check * * * * * * * * * * * * * * * * * * * *
-* ... no gaps should exist between sized regions - both free and used are sized
-	   test_next = mb + size
-	   IF ( test_next .EQ. max_mem_blks + 1 ) THEN
-	      CONTINUE
-	   ELSEIF ( test_next .GT. max_mem_blks + 1 
-     .     .OR.     mblk_size(test_next) .EQ. unspecified_int4 ) THEN
-	      CALL WARN('***** improper region size: '//LEFINT(mb,slen) )
-	   ENDIF
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-	   mb = mblk_flink( mb )
-	   GOTO 100
-	ENDIF	   
+	INTEGER	mv, mvfree, mvused, 
+     .		nmvlost, pile, last, size, test_next,
+     .		navail, nperm, ntemp, ndel, slen, nn
+        INTEGER*8 mem_in_use
+	CHARACTER LEFINT*8, buff*40, b04*4
+	PARAMETER (b04 = '    ')
+
+
+* check Ferret variable memory allocations
+        mem_in_use = 0
+        DO mv = 1, max_mrs
+           mem_in_use = mem_in_use + mr_size(mv)
+        ENDDO
+* ... no valid ws_size() work memory in use when this routine is called
+        IF (mem_in_use .NE. total_mem) THEN
+	      CALL WARN('***** corrupted total mem size: '
+     .                  //LEFINT(mem_in_use,slen) )
+        ENDIF
 	CALL SPLIT_LIST( pttmode_explct, lun, 
-     .			 b12//'total memory table slots: '//
+     .			 b04//'Total table slots: '//
      .			 LEFINT(max_mr_avail,slen), 0 )
-	CALL SPLIT_LIST( pttmode_explct, lun,
-     .			 b12//'total memory blocks: '//
-     .			 LEFINT(max_mem_blks,slen), 0 )
-	CALL SPLIT_LIST( pttmode_explct, lun,
-     .			 b12//'memory block size: '//
-     .			 LEFINT( mem_blk_size,slen), 0 )
-	CALL SPLIT_LIST( pttmode_explct, lun,' ', 1 )		! <CR>
-	CALL SPLIT_LIST( pttmode_explct, lun,
-     .			 b12//'number of free memory blocks: '//
-     .			 LEFINT(mbfree,slen), 0 )
-	CALL SPLIT_LIST( pttmode_explct, lun,
-     .			 b12//'largest free region: '//
-     .			 LEFINT(mbmax,slen), 0 )
-	CALL SPLIT_LIST( pttmode_explct, lun,
-     .			 b12//'number of free regions: '//
-     .			 LEFINT(n,slen), 0 )
+
 
 * check slots in memory variable table
 * ... free table slots
@@ -133,25 +107,22 @@
 	   GOTO 200
 	ENDIF
 	CALL SPLIT_LIST( pttmode_explct, lun,
-     .			 b12//'free memory table slots: '//
+     .			 b04//'Free table slots: '//
      .			 LEFINT(mvfree,slen), 0 )
 
 * * * * integrity check * * * * * * * * * * * * * * * * * * * *
 * check all the variables in all the hash piles
 	mvused = 0
-	mbused = 0
 	DO 310 pile = 1, pmv_npiles
 	   last = -pile
 	   mv = mv_flink( last )	! base pointer for slots in this hash #
  300	   IF ( mv .GT. 0 ) THEN
 	      IF ( mr_protected(mv) .EQ. mr_deleted
      .	      .OR. mr_protected(mv) .EQ. mr_in_progress
-     .	      .OR. mr_nblks    (mv) .NE. mblk_size( mr_blk1(mv) )
      .	      .OR. mv_blink(mv) .NE. last ) 	CALL WARN
      .			('CORRUPTION! improperly cataloged: '
      .						//LEFINT(mv,slen) )
 	      mvused = mvused + 1
-	      mbused = mbused + mr_nblks(mv)
 	      last   = mv
 	      mv     = mv_flink(mv)
 	      GOTO 300
@@ -167,19 +138,17 @@
  350	IF ( mv .GT. 0 ) THEN
 	   IF ( mr_protected(mv) .EQ. mr_deleted
      .	   .OR. mr_protected(mv) .EQ. mr_in_progress
-     .	   .OR. mr_nblks    (mv) .NE. mblk_size( mr_blk1(mv) )
      .	   .OR. mv_blink(mv) .NE. last ) 	CALL WARN
      .			('CORRUPTION! uncached variable error: '
      .						//LEFINT(mv,slen) )
 	   nn = nn + 1
 	   mvused = mvused + 1
-	   mbused = mbused + mr_nblks(mv)
 	   last   = mv
 	   mv     = mv_flink(mv)
 	   GOTO 350
 	ENDIF
 	CALL SPLIT_LIST( pttmode_explct, lun,
-     .			 b12//'number of UN-CACHED variables: '//
+     .			 b04//'Un-cached variables: '//
      .			 LEFINT(nn,slen), 0 )
 
 * * * * integrity check * * * * * * * * * * * * * * * * * * * *
@@ -190,7 +159,6 @@
  360	IF ( mv .GT. 0 ) THEN
 	   nn = nn + 1
 	   mvused = mvused + 1
-	   mbused = mbused + mr_nblks(mv)
 	   last   = mv
 	   mv     = mv_flink(mv)
 	   GOTO 360
@@ -203,13 +171,9 @@
 * * * * integrity check * * * * * * * * * * * * * * * * * * * *
 * make sure no table slots or memory blocks have been lost
 	nmvlost = max_mr_avail - ( mvfree+mvused )
-	nmblost = max_mem_blks   - ( mbfree+mbused )
 	IF ( nmvlost .NE. 0 ) CALL WARN
      .			('CORRUPTION! lost table slots: '
      .						//LEFINT(nmvlost,slen) )
-	IF ( nmblost .NE. 0 ) CALL WARN
-     .			('CORRUPTION! lost memory blocks: '
-     .						//LEFINT(nmblost,slen) )
 
 * * * * integrity check * * * * * * * * * * * * * * * * * * * * *
 * variable deletion priority chain
@@ -224,12 +188,12 @@
 	ENDIF
 	ndel   = 0
 	nperm  = 0
-	mbperm = 0
 	ntemp  = 0
+        mem_in_use = 0
 	DO 410 mv = 1, max_mr_avail
 	   IF ( mr_protected(mv) .EQ. mr_perm_protected ) THEN
 	      nperm  = nperm  + 1
-	      mbperm = mbperm + mr_nblks(mv)
+              mem_in_use = mem_in_use + mr_size(mv)
 	   ELSEIF ( mr_protected(mv) .EQ. mr_deleted ) THEN
 	      ndel = ndel + 1
 	   ELSEIF ( mr_protected(mv) .EQ. mr_temporary ) THEN
@@ -238,18 +202,18 @@
  410	CONTINUE
 	IF ( nperm .GT. 0 ) THEN
 	   CALL SPLIT_LIST( pttmode_explct, lun,
-     .			 b12//'number of /PERMANENT variables: '//
+     .			 b04//'number of /PERMANENT variables: '//
      .			 LEFINT(nperm,slen), 0 )
 	   CALL SPLIT_LIST( pttmode_explct, lun,
-     .			 b12//'number of blocks used /PERM: '//
-     .			 LEFINT(mbperm,slen), 0 )
+     .			 b04//'memory used for /PERM: '//
+     .			 LEFINT(mem_in_use,slen), 0 )
 	ENDIF
 	nmvlost = max_mr_avail - (navail+nperm+ndel+ntemp)
 	IF ( nmvlost .NE. 0 ) CALL WARN
      .		( 'CORRUPTION! Protected vars unaccountable: '
      .				//LEFINT(nmvlost,slen) )
-	n = ndel - mvfree
-	IF ( n .NE. 0 ) CALL WARN
+	nn = ndel - mvfree
+	IF ( nn .NE. 0 ) CALL WARN
      .		( 'CORRUPTION! Deleted vars unaccountable: '
      .				//LEFINT(nmvlost,slen) )
 
diff --git a/fer/gnl/create_agg_dset.F b/fer/gnl/create_agg_dset.F
index cbb158f..ece85e0 100644
--- a/fer/gnl/create_agg_dset.F
+++ b/fer/gnl/create_agg_dset.F
@@ -41,6 +41,7 @@
 * V695 *acm*  2/15 For Forecast aggregations, call the ds_type 'FCT'
 * V695+ *sh*  11/15 Correct bugs in setting of aggregate dset title
 * V698  *sh*  1/16 pass explicit path name (for "USE file.agg" compatibility)
+* V7   *acm*  6/12 Add Union aggregations: DEFINE DATA/AGG/U
 
 * calling argument
 *   agg_dset	- dataset number of the aggregation (input)
@@ -86,6 +87,7 @@
 * Set the dataset type and title (can add other directions)
 	IF (agg_dim .EQ. e_dim ) ds_type(agg_dset) = 'ENS'
 	IF (agg_dim .EQ. f_dim ) ds_type(agg_dset) = 'FCT'
+	IF (agg_dim .EQ. unspecified_int4 ) ds_type(agg_dset) = 'UNI'
 
 	ds_name(agg_dset) = dname
 	ds_des_name(agg_dset) = dpath
@@ -94,12 +96,20 @@
 	   ntext = LEFINT(nsets, nlen)
 	   IF (agg_dim.EQ.e_dim) THEN
 	      ds_title(agg_dset) = "Ensemble"
-	   ELSE
+	   ELSEIF (agg_dim.EQ.f_dim) THEN
 	      ds_title(agg_dset) = "Forecast"
+	   ELSE
+	      ds_title(agg_dset) = "Union"
 	   ENDIF
-	   ds_title(agg_dset) = ds_title(agg_dset)(:8)//' series of '
+	   IF (agg_dim .EQ. unspecified_int4) THEN
+	      ds_title(agg_dset) = 
+     .	        'Union of variables from member datasets'
+	   ELSE
+	      ds_title(agg_dset) = ds_title(agg_dset)(:8)//' series of '
      .		//ntext(:nlen)//' datasets patterned on '//
      .		ds_name(dset1)
+	   ENDIF
+     
 	ELSE
 	   ds_title(agg_dset) = dtitle
 	ENDIF
@@ -117,7 +127,8 @@
        GOTO 5400
  
 * create the aggregate axis
- 100	CALL CREATE_AGG_AXIS (nsets, agg_dim, iline, status)
+ 100	IF (agg_dim .NE. unspecified_int4) 
+     .		CALL CREATE_AGG_AXIS (nsets, agg_dim, iline, status)
 	IF (status .NE. ferr_ok) GOTO 5300 
 
 	RETURN
diff --git a/fer/gnl/ctrl_c.F b/fer/gnl/ctrl_c.F
index 9830e90..aa9a79a 100644
--- a/fer/gnl/ctrl_c.F
+++ b/fer/gnl/ctrl_c.F
@@ -1,6 +1,4 @@
-	SUBROUTINE SET_CTRL_C (CTRLC_AST)
-
-*
+***********************************************************
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -34,111 +32,12 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
+* this routine should be called when ^C is entered
 *
-* turn on facility to trap keyboard interrupts
-* the interrupt handler defined here simply sets the common variable
-* "interrupted" to .TRUE.
-
-* on VMS:
-* queue a VMS "asynchronous system trap" to catch user interrupts via ^C
-* note that this routine must be called again following each interrupt
-* this code is based on page 8-47 of Guide to Programming on VAX/VMS (Fortran)
-
-* on Unix:
-* use routine "SIGNAL" to define the interrupt handler
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.00 - 11/27/87 SH based on QINTERRUPT from program PRNT 8/2/85
-* Unix/RISC port 3/18/91
-
-* V313 - 11/1/94 - AIX port: use "SIGNAL_" instead of "SIGNAL" and
-*		must reset signal handler after every use
-
-* v4.20	- 1/30/96 - modified ifdef logic for determining call to
-*		    signal handler.  Turns out solaris also needs
-*		    to call the signal handler each time.  *kob*
-* 12/96 *kob* - Linux Port - had to move variable assignments off of
-*               declaration line. Used DATA rather than PARAMETER
-*		statement because variable modified later in routine
-*	      - put a ! in front of "D" for disabled lines
-* 1/03 *kob* - g77 port - g77 needs to call SIGNAL with only two arguments
-*       *acm* 3/12 cleanup ifdefs and unnecessary include files
-
-* argument: CTRLC_AST
-*	name of routine to be called if operator hits ^C
-*	(or call with argument %VAL(0) to return to normal VMS ^C processing)
-
-* include the following lines in the routine requiring ^C interrupts:
-*	INCLUDE 'XINTERRUPT.CMN'
-*
-*	IF ( interrupt ) THEN ...
-
-	EXTERNAL	CTRLC_AST
-	LOGICAL		first_call
-        DATA	 	first_call/.TRUE./    !kob 12/96
-
-#if defined AIX_XLF 
-      INTEGER SIGNAL_, old_handler, sigint
-#else
-      INTEGER SIGNAL, old_handler, sigint
-#endif
-* (see unix man signal or the include file < signal.h >)
-      PARAMETER ( sigint = 2 )
-
-      include 'xinterrupt.cmn'
-
-
-*set up new defines *kob* 1/96
-#ifdef AIX_XLF 
-# define call_handler_each_time
-#endif
-#ifdef solaris
-# define call_handler_each_time
-#endif
-
-! "D" lines to disable disabled
-!D     GOTO 888
-* use newly named condition tests *kob* 1/96
-#ifdef call_handler_each_time
-#  ifdef NEED_SIGNAL_UNDERSCORE
-      old_handler = SIGNAL_( 2, CTRLC_AST, -1 )    ! on AIX call every time
-#  elif defined G77_SIGNAL
-      old_handler = SIGNAL( 2, CTRLC_AST)    !! on solaris call every time
-#  else
-      old_handler = SIGNAL( 2, CTRLC_AST, -1 )    ! on solaris call every time
-
-#  endif
-#else
-#  ifdef NEED_SIGNAL_UNDERSCORE
-      IF (first_call) old_handler = SIGNAL_( 2, CTRLC_AST, -1 )
-#  elif defined G77_SIGNAL
-      old_handler = SIGNAL( 2, CTRLC_AST)    
-#  else 
-      IF (first_call) old_handler = SIGNAL( 2, CTRLC_AST, -1 )
-#  endif	
-#endif
-!D 888 CONTINUE
-
-* ************************ ALL SYSTEMS ************************
-* system is ready - set flag to indicate no interrupt yet
-	INTERRUPTED = .FALSE.
-        first_call = .FALSE.
-
-	RETURN
-	END
-
 ***********************************************************
 
-	SUBROUTINE CTRLC_AST
-
-* this routine is called when ^C is entered if AST is queued
-
-	include 'xinterrupt.cmn'	! COMMON/XINTERRUPT/
-
-	interrupted = .TRUE.
-
-	RETURN
-	END	
+        SUBROUTINE CTRLC_AST
+        INCLUDE 'xinterrupt.cmn'
+        INTERRUPTED = .TRUE.
+        RETURN
+        END
diff --git a/fer/gnl/define_ef_aggregate_grid.F b/fer/gnl/define_ef_aggregate_grid.F
index 3d5e04e..08fc404 100644
--- a/fer/gnl/define_ef_aggregate_grid.F
+++ b/fer/gnl/define_ef_aggregate_grid.F
@@ -45,6 +45,9 @@
 * V695+ 4/15 *acm* and *sh* -- added support for forecast aggregations
 * V698 1/16 *sh* - support gappy and inconsistent length forecast members
 * V698 3/16 *sh* - shift both lag axes and F-calendar to pts at low cell edge
+* 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.
 
       IMPLICIT NONE
         include 'tmap_errors.parm'
@@ -70,7 +73,7 @@
 
 * local variable declarations:
 	LOGICAL	NC_GET_ATTRIB, ITS_FMRC_2DTIME, its_dynamic, itsa_uvar,
-     .		has_edges, has_gaps, found_fvar, ef_ordered_time2d
+     .		has_edges, has_gaps, found_fvar, ef_ordered_time2d, true_month
 	INTEGER STR_SAME, TM_LENSTR1,
      .		big_cx, igrid, idim, agg_grid, nv, type, ii, iset, slen, 
      .		ndim, vtype, i2, i, status,
@@ -78,7 +81,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
+     .		ef_time2d_dset, ef_time2d_grid, iaxis
 	REAL*8  TDEST_WORLD, TM_WORLD_AX, fdelta
 
 * Getting info back from the attribute-handling structure
@@ -261,7 +264,8 @@
 	            IF ( (uvar_dset(nv) .EQ. iset) .AND. 
      .                   (STR_SAME(uvar_name_code(nv), vname) .EQ. 0) ) THEN
 		       vtype = cat_user_var
-	               igrid = uvar_grid(nv,iset)
+
+		       CALL GET_SAVED_UVAR_GRID(nv, iset, igrid)
 	               CALL CD_ADD_AGG_VAR_INFO (agg_dset, vname, ii, vtype, 
      .                   iset, igrid, iline, nv, status)
 * ... bump the use count for this grid to protect it from being deleted if
@@ -413,6 +417,7 @@
 * line_mem contents will be:  2d_times, 2d_lo_lims, hi_lim_of_last_time
 	   nT = line_dim(grid_line(t_dim,agg_grid))
 	   nF = line_dim(grid_line(f_dim,agg_grid))
+
 	   npts = nT * nF
 	   ipt1 = next_line_mem_pos
 	   ipt  = ipt1
@@ -447,8 +452,7 @@
 	         ENDDO
 	      ENDIF
 	   ENDDO
-	   line_mem(ipt1+2*npts) =
-     .				 TDEST_WORLD(nT, memb_grid, t_dim, box_hi_lim)
+	   line_mem(ipt1+2*npts) = TDEST_WORLD(nT, memb_grid, t_dim, box_hi_lim)
 
 * ... if there were gaps in the forecast time array, fill 'em
 *     always compute lagF - the number of time steps between forecasts
diff --git a/fer/gnl/define_u_aggregate_var.F b/fer/gnl/define_u_aggregate_var.F
new file mode 100644
index 0000000..2616642
--- /dev/null
+++ b/fer/gnl/define_u_aggregate_var.F
@@ -0,0 +1,224 @@
+	SUBROUTINE DEFINE_U_AGGREGATE_VAR (agg_dset, iset, nvars, vname, 
+     .         fvar, itsa_uvar, nsets, 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. 
+*
+* Save variable in the Union aggregation.  Check that the variable name
+* is not already in the aggregation.
+
+* Programmer Ansley Manke
+* NOAA/PMEL, Seattle, WA - SDIG
+
+* V7   5/12 *acm* Union aggregations: DEFINE DATA/AGG/U
+* 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 
+
+      IMPLICIT NONE
+        include 'tmap_errors.parm'
+#include "tmap_dset.parm"
+        include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include 'xdset_info.cmn_text'
+	external xdset_info_data
+	include 'xdset_info.cd_equiv'
+        include 'xprog_state.cmn'
+	include 'xtm_grid.cmn_text'  
+	include 'errmsg.parm'
+	include 'xvariables.cmn'
+	include 'xcontext.cmn'
+	include 'xfr_grid.cmn'
+	include 'interp_stack.parm'
+	include 'netcdf.inc'
+
+* calling argument declarations:
+	LOGICAL itsa_uvar
+	INTEGER agg_dset, iset, nvars, fvar, nsets, status
+	CHARACTER*(*) vname
+
+* local variable declarations:
+	INTEGER STR_SAME, TM_LENSTR1, DIR_LINE,
+     .		big_cx, idim, nv, nu, type, slen, igrid, vtype, 
+     .		i, num_indices, varid, iline, imemb, itype
+	INTEGER igrid_test
+	CHARACTER*8 TM_FMT, fset
+
+* Is this variable already in the union aggregation? If so, do not add it.
+
+      CALL CD_GET_VAR_ID (agg_dset, vname, varid, status)
+      IF (varid .GT. 0) GOTO 5100
+
+* ds_var slot, fill with next variable in Union dataset.
+      IF (.NOT. itsa_uvar) THEN
+	DO 720 nv = 1, maxvars
+	      IF ( STR_SAME(ds_var_code(nv),char_init) .EQ. 0 ) GOTO 725
+ 720	CONTINUE
+ 725	ds_var_setnum(nv)   = agg_dset
+	CALL string_array_modify(ds_var_code_head, nv, 
+     .         ds_var_code(fvar), LEN(ds_var_code(fvar)))
+! ?? better: inherit these attibutes from members in SET_AGG_VAR_ATTS
+	ds_var_title(nv)    = ds_var_title(fvar)
+	IF ( ds_var_title(nv) .EQ. char_init128) 
+     .       ds_var_title(nv)  = ds_var_code(fvar)
+	ds_var_titl_mod(nv) = ds_var_titl_mod(fvar)
+	ds_var_units(nv)    = ds_var_units(fvar)
+	ds_missing_flag(nv) = ds_missing_flag(fvar)	! was bad_val4
+	ds_bad_flag(nv)     = ds_bad_flag(fvar)		! was bad_val4
+	ds_var_type(nv)     = ds_var_type(fvar)
+	cd_scale_factor(nv) = 1.
+	cd_add_offset(nv)   = 0.
+	cd_scaled(nv)       = .FALSE.
+
+	DO 730 idim = 1, nferdims
+	   ds_grid_start(idim,nv)= ds_grid_start(idim,fvar)
+	   ds_grid_end(idim,nv)  = ds_grid_end(idim,fvar)
+	   ds_ordering(idim,nv)  = ds_ordering(idim,fvar)
+ 730	CONTINUE
+	ds_grid_number(nv)       = ds_grid_number(fvar)
+	
+* Type should be NCFLOAT or NCCHAR
+	IF (ds_var_type(nv) .EQ. ptype_string) THEN
+	   type = NCCHAR
+	ELSE
+	   type = NCFLOAT
+	ENDIF
+
+* Add the aggregated variable to the linked list structure
+	CALL CD_ADD_VAR( agg_dset, vname, nvars, ds_var_title(nv), 
+     .         ds_var_units(nv), type, .FALSE., ds_bad_flag(nv), status)
+
+* Store the dataset number of this variable.
+
+	   igrid = ds_grid_number(nv)
+	   vtype = cat_file_var
+	   imemb = nvars
+	   iline = unspecified_int4
+	   
+	   CALL CD_GET_VAR_ID (iset, vname, varid, status)
+	   CALL CD_ADD_AGG_VAR_INFO (agg_dset, vname, imemb, 
+     .          vtype, iset, igrid, iline, fvar, status)
+
+      ELSE ! done with file vars
+
+* User Variables
+* ... optimize search using deleted_list_get_undel
+
+	CALL deleted_list_get_undel(uvar_num_items_head,
+     .                              deleted_list_result(1),
+     .                              max_uvar, num_indices )
+	DO i = 1, num_indices
+	   nu = deleted_list_result(i)
+	   IF ( uvar_num_items(nu) .EQ. uvar_deleted) CYCLE
+	   IF ( (uvar_dset(nu) .EQ. iset) .AND. 
+     .         (STR_SAME(uvar_name_code(nu), vname) .EQ. 0) ) THEN
+	      vtype = cat_user_var
+	      
+	      DO 740 nv = 1, maxvars
+	      IF ( STR_SAME(ds_var_code(nv),char_init) .EQ. 0 ) EXIT ! from loop
+ 740	      CONTINUE
+	      ds_var_setnum(nv)   = agg_dset
+c	      ds_var_code(nv)     = uvar_name_code(nu)
+	      CALL string_array_modify(ds_var_code_head, nv, 
+     .                            uvar_name_code(nu), LEN(uvar_name_code(nu)))
+	      ds_var_title(nv)    = uvar_title(nu)
+	      IF ( ds_var_title(nv) .EQ. char_init128) 
+     .            ds_var_title(nv)  = uvar_text(nu)    
+	      IF ( ds_var_title(nv) .EQ. ' ') 
+     .            ds_var_title(nv)  = uvar_text(nu)     
+	      ds_var_titl_mod(nv) = ' '
+	      ds_var_units(nv)    = uvar_units(nu)
+	      ds_missing_flag(nv) = uvar_bad_data(nu)
+	      ds_bad_flag(nv)     = uvar_bad_data(nu)
+
+	      cd_scale_factor(nv) = 1.
+	      cd_add_offset(nv)   = 0.
+	      cd_scaled(nv)       = .FALSE.
+
+	      CALL GET_UVAR_GRID( nu, iset, status )
+	      CALL GET_SAVED_UVAR_GRID(nu, iset, igrid)
+
+	      ds_grid_number(nv) = igrid
+	      DO idim = 1, nferdims
+	         iline = grid_line( idim, igrid )
+	         ds_grid_start(idim,nv)= 1
+	         ds_grid_end(idim,nv)  = line_dim(iline)
+	         ds_ordering(idim,nv)  = DIR_LINE(line_direction(iline))
+	      ENDDO
+* Type  ??
+	      
+	      CALL GET_SAVED_UVAR_DTYPE(nu, iset, itype)
+	      IF (itype .EQ. unspecified_int4) itype = ptype_unknown
+	      ds_var_type(nv)  = itype
+
+	      IF (ds_var_type(nv) .EQ. ptype_string) THEN
+	         type = NCCHAR
+	      ELSE
+	         type = NCFLOAT
+	      ENDIF
+
+* Hook the aggregated variable into the linked list structures
+	      CALL CD_ADD_VAR( agg_dset, vname, nvars, uvar_title(nu), 
+     .         uvar_units(nu), type, .FALSE., uvar_bad_data(nu), status)
+
+* Store the info of this variable. The member dataset stored is the 
+* LET/D= datset where it was defined.
+
+	      CALL GET_UVAR_GRID( nu, iset, status )
+	      CALL GET_SAVED_UVAR_GRID(nu, iset, igrid)
+	      vtype = cat_user_var
+	      imemb = nvars
+	      iline = unspecified_int4
+	      
+	      CALL CD_ADD_AGG_VAR_INFO (agg_dset, vname, imemb, 
+     .          vtype, iset, igrid, iline, nu, status)
+
+* ... bump the use count for this grid to protect it from being deleted if
+*     the user changes the LET/D definition -- grid is needed during the
+*     gather process (IS_STRIP & IS_AGGREGATE_GATHER).
+*  ==> be sure to un-use (deallo) it when the aggregation gets canceled
+*  ==> or if an error occurs prior to the complete initialization of this agg
+	      CALL TM_USE_DYN_GRID(igrid)
+	      EXIT
+	   ENDIF
+	ENDDO
+
+	ENDIF  ! itsa_uvar 
+
+ 5000	RETURN
+ 5100	fset = TM_FMT(FLOAT(iset), 5, 8, slen)
+	CALL WARN('Variable '//vname(:TM_LENSTR1(vname))//
+     .		' from dataset '//fset(:slen)//
+     .		' is already in the union dataset. Skipping it')
+	nvars = nvars - 1
+	status = ferr_ok
+	RETURN
+	END
diff --git a/fer/gnl/delete_one_line.F b/fer/gnl/delete_one_line.F
deleted file mode 100644
index 6546a8d..0000000
--- a/fer/gnl/delete_one_line.F
+++ /dev/null
@@ -1,92 +0,0 @@
-
-	SUBROUTINE DELETE_ONE_LINE (axis, 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. 
-*
-
-* Delete a single axis (from xeq_cancel)
-
-	include 'tmap_dims.parm'
-#	include "tmap_dset.parm"
-	include 'tmap_errors.parm'
-	include	'ferret.parm'
-	include 'errmsg.parm'
-        include 'xtm_grid.cmn_text'
-
-	INTEGER axis, slen, status
-	CHARACTER*10 TM_FMT, buff
-	REAL	raxis
-
-	INTEGER TM_GET_GRID_OF_LINE, TM_GET_LINENUM, 
-     .		grid, num_protected_axes
-
-	raxis = axis
-	buff = TM_FMT(raxis, 6, 10, slen)
-	num_protected_axes = TM_GET_LINENUM( 'EZ' )  ! top protected axis
-
-	IF ( axis .EQ. unspecified_int4 ) GOTO 6210
-	IF ( axis .LE. num_protected_axes ) GOTO 6212
-	line_keep_flag(axis) = .FALSE.  ! see tm_garb_col_grids.F
-	IF (line_use_cnt(axis) .LE. 0) THEN
-	   IF ( axis .LE. max_lines ) THEN
-	      IF ( axis .LE. max_lines ) THEN
-	         IF (.NOT. line_regular(axis))
-     .                CALL PACK_LINE_STORAGE(axis)
-	         line_name(axis) = char_init16
-	      ELSE
-	         CALL TM_DEALLO_DYN_LINE(axis)
-	      ENDIF
-	   ENDIF
-	ELSE
-*     ... cannot delete - in use.  Locate the grid that is using it.
-	   grid = TM_GET_GRID_OF_LINE( axis )
-	   CALL WARN( 'Not deleted: '//line_name(axis))
-	   IF ( grid .NE. unspecified_int4 ) THEN
-	      CALL WARN( 
-     .		'Axis is in use by grid '//grid_name(grid))
-	   ELSE
-	      CALL ERRMSG(ferr_internal, status,
-     .				'axis use count err', *5000)
-	   ENDIF
-	ENDIF
-
- 5000	CONTINUE
-	RETURN
-
- 6210	CALL ERRMSG( ferr_invalid_command, status, 'unknown axis: '//
-     .		     buff(:slen), *5000 )
- 6212	CALL ERRMSG( ferr_invalid_command, status, 'protected axis: '//
-     .		     buff(:slen), *5000 )
-
-	END
diff --git a/fer/gnl/edit_attribute.F b/fer/gnl/edit_attribute.F
index 228d8f7..1659ba7 100644
--- a/fer/gnl/edit_attribute.F
+++ b/fer/gnl/edit_attribute.F
@@ -1,5 +1,3 @@
-
-
       SUBROUTINE EDIT_ATTRIBUTE( grid_data, mr, varattname, dset, 
      .         attype_spec, att_quiet, status )
 
@@ -64,6 +62,8 @@
 * v686 *acm*  1/14 Fix ticket 2127: dont check file type if the variable not a file variable.
 * v687 *acm*  3/14 Fix ticket 2161: editing long_name or units of var in ascii files
 * V695 *acm*  2/15 For Forecast aggregations, call the ds_type 'FCT'
+* V7   *acm*  6/12 Add Union aggregations: DEFINE DATA/AGG/U, ds_type 'UNI'
+* V702 *sh*   1/17 For dynamic memory -- use PURGE_ALL_UVARS_EXCEPT_EX
 
 * codes for data sets
 	INTEGER		set_not_open,set_open,file_not_open
@@ -462,6 +462,7 @@
      .               TM_HAS_STRING(ds_type(dset), 'MC') .OR.
      .               TM_HAS_STRING(ds_type(dset), 'ENS') .OR.
      .               TM_HAS_STRING(ds_type(dset), 'FCT') .OR.
+     .               TM_HAS_STRING(ds_type(dset), 'UNI') .OR.
      .               TM_HAS_STRING(ds_type(dset), 'GT')  )
 
 * note on EZ vars:
@@ -471,10 +472,14 @@
 *	 mr_grid, units, etc.  They need to be deleted only if they were on 
 * 	 non-standard grids or units.  The UVAR's need to be purged only if
 *	 they depend on the FVAR being changed)
+
+* 1/17 use PURGE_ALL_UVARS_EXCEPT_EX instead of PURGE_ALL_UVARS because EX#n
+*      was passed to this routine.  With dynamic memory we must not free
+*      a memory pointer that was passed in as an argument
 	IF ( ez ) THEN
 	   IF ( have_mods ) THEN
 	      CALL PURGE_FILE_VAR( var ) ! remove memory-resident variables
-	      CALL PURGE_ALL_UVARS	 ! delete (possibly dependent) uvars
+	      CALL PURGE_ALL_UVARS_EXCEPT_EX !delete (possibly dependent) uvars
 	      CALL EZ_MOD_VARS( dset,var,varid,
      .			        newname,title,units,grid,bad,tmap_status )
 	      IF ( tmap_status .NE. merr_ok ) THEN
@@ -487,7 +492,7 @@
 
 	   IF ( bad  .NE. real4_init  ) THEN
 	      CALL PURGE_FILE_VAR( var ) ! remove memory-resident variables
-	      CALL PURGE_ALL_UVARS	 ! delete (possibly dependent) uvars
+	      CALL PURGE_ALL_UVARS_EXCEPT_EX !delete (possibly dependent) uvars
 	      ds_missing_flag(var) = ds_bad_flag(var)
 	      ds_bad_flag    (var) = bad
 	   ENDIF
@@ -497,13 +502,13 @@
 
            IF ((scalefac .NE. real4_init) .AND. ncfile) THEN
 	      CALL PURGE_FILE_VAR( var ) ! remove memory-resident variables
-	      CALL PURGE_ALL_UVARS	 ! delete (possibly dependent) uvars
+	      CALL PURGE_ALL_UVARS_EXCEPT_EX
               ds_var_scale(var) = scalefac
               ds_var_scaleit(var)       = .TRUE.
            ENDIF
            IF ((offset .NE. real4_init) .AND. ncfile) THEN
 	      CALL PURGE_FILE_VAR( var ) ! remove memory-resident variables
-	      CALL PURGE_ALL_UVARS	 ! delete (possibly dependent) uvars
+	      CALL PURGE_ALL_UVARS_EXCEPT_EX
               ds_var_off(var)   = offset
               ds_var_scaleit(var)       = .TRUE.
            ENDIF
@@ -523,7 +528,7 @@
 	   IF ( units .NE. char_init16 ) uvar_units( var )  = units
 	   IF ( title .NE. char_init80 ) uvar_title( var )  = title
 	   IF ( bad  .NE. real4_init  ) THEN
-	      CALL PURGE_ALL_UVARS	 ! delete invalidated uvars
+	      CALL PURGE_ALL_UVARS_EXCEPT_EX	 ! delete invalidated uvars
 	      uvar_bad_data(var) = bad
 	   ENDIF
 
diff --git a/fer/gnl/equal_type.F b/fer/gnl/equal_type.F
deleted file mode 100644
index 82e9ab2..0000000
--- a/fer/gnl/equal_type.F
+++ /dev/null
@@ -1,137 +0,0 @@
-	SUBROUTINE EQUAL_TYPE( string, max_fields, nfields,
-     .			       field_type, wk_start, wk_end, 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. 
-*
-*
-* from a string of the form "TYPE=type1, type2, ..." determine the
-* number of fields and their data types
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-
-* V530: 10/00 - for delimited reads
-*       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
-
-* calling argument declarations
-	INTEGER		status
-	INTEGER		max_fields, nfields
-	INTEGER		field_type(max_fields),
-     .			wk_start(max_fields), wk_end(max_fields)
-	CHARACTER*(*)	string
-
-* internal parameter declarations
-	INTEGER	maxtypes
-	PARAMETER (maxtypes = 8)
-
-* internal variable declarations
-	LOGICAL	MATCH4
-	INTEGER	TM_LENSTR1, TM_LENSTR, iif, iit, equal_pos, slen,
-     .          len_test, len_mchars
-	CHARACTER*9 ftypes(maxtypes)
-
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'errmsg.parm'
-	include 'xprog_state.cmn'
-	include 'xrisc.cmn'
-
-* order of entries must match delimitedRead.h
-	DATA ftypes(1)/'-'/,
-     .	     ftypes(2)/'NUMERIC'/,
-     .       ftypes(3)/'CHARACTER'/,
-     .       ftypes(4)/'LATITUDE'/,
-     .       ftypes(5)/'LONGITUDE'/,
-     .       ftypes(6)/'DATE'/,
-     .       ftypes(7)/'EURODATE'/,
-     .       ftypes(8)/'TIME'/
-
-
-* initialize
-	slen      = TM_LENSTR1( string )
-	equal_pos = INDEX( string, '=' )
-
-	IF ( equal_pos .EQ. 0 ) THEN
-	   nfields = 1
-	   field_type(1) = 2  ! numeric as default for content-free /TYPE
-
-	ELSEIF ( equal_pos .EQ. slen ) THEN
-	  GOTO 5000                            ! "name ="
-
-	ELSE
-
-* parse the comma separated list into fields
-	  CALL PARSE_COMMA_LIST ( string,
-     .                            equal_pos+1,
-     .                            slen,
-     .                            max_fields,
-     .                            nfields,
-     .                            wk_start,
-     .                            wk_end,
-     .                            status          )
-	  IF ( status .NE. ferr_ok ) GOTO 5000
-
-* identify each field
-	  DO 200 iif = 1, nfields
-            len_test = TM_LENSTR(string(wk_start(iif):wk_end(iif)))
-	    DO 100 iit = 1, maxtypes
-              len_mchars = TM_LENSTR(ftypes(iit)(:4))
-	      IF (MATCH4(string(wk_start(iif):wk_end(iif)),len_test,
-     .			 ftypes(iit),len_mchars)) THEN
-	        field_type(iif) = iit 
-	        GOTO 200
-	      ENDIF
- 100	    CONTINUE
-	    GOTO 5100
- 200	  CONTINUE
-	ENDIF
-
-* success
-	status = ferr_ok
-	RETURN
-
-* syntax error
- 5000	RETURN
-
- 5100	CALL ERRMSG(ferr_invalid_command, status, 'unknown data type',
-     .		    string(wk_start(iif):wk_end(iif)), *5110)
- 5110	risc_buff = ftypes(2)
-	iif = 7
-	DO 5120 iit = 3, maxtypes
-	  risc_buff(iif:) = ','//ftypes(iit)
-	  iif = iif + 1 + TM_LENSTR1(ftypes(iit))
- 5120	CONTINUE
-	CALL WARN('Valid types are: '//risc_buff(:iif))
-	GOTO 5000
-
-	END
diff --git a/fer/gnl/errmsg.F b/fer/gnl/errmsg.F
index a74d99f..d06e9fb 100644
--- a/fer/gnl/errmsg.F
+++ b/fer/gnl/errmsg.F
@@ -104,11 +104,9 @@
         include 'xrisc.cmn'
         include 'xgui.cmn'
 	include 'xplot_setup.cmn'
+        include 'xinterrupt.cmn'
 
 
-* ^C handling routine
-	EXTERNAL CTRLC_AST
-
 * calling argument declarations:
 	INTEGER		status_in,status_out
 	CHARACTER*(*)	err_string
@@ -245,10 +243,10 @@
            CALL PERROR( '**ERROR: '//risc_buff(:len_string) )
 #endif
 
-* interrupt processing ? Re-store ^C interrupt handler
+* interrupt processing ?
 	ELSEIF ( status .EQ. ferr_interrupt ) THEN
 	   CALL TM_SPLIT_MESSAGE( ttout_lun, '** INTERRUPTED! **')
-	   CALL SET_CTRL_C( CTRLC_AST )
+           INTERRUPTED = .FALSE.
 * *kob*	if animating during an interrupt, lets clean up
 	   IF ( animate ) THEN
 	      animate = .FALSE.
diff --git a/fer/gnl/fill_fmrc_time_gaps.F b/fer/gnl/fill_fmrc_time_gaps.F
index 949f527..710c1f0 100644
--- a/fer/gnl/fill_fmrc_time_gaps.F
+++ b/fer/gnl/fill_fmrc_time_gaps.F
@@ -40,6 +40,7 @@
 * missing rows in the 2d time array.  This routine fills thos gaps.
 *
 * V698 *sh* 12/15 
+* V710 *acm* 1/17 Fix ticket 2500: TM_DFPEQ to handle tiny precision differences
 
 * calling arguments
 *   has_gaps - (in) flag if gap-filling is needed
@@ -55,6 +56,7 @@
 	REAL time2d(nT, nF), edge2d(nT, nF)
 
 * internal variable declarations:
+	LOGICAL TM_DFPEQ
 	INTEGER ifcst, istep, ifcst2, istep2
 	REAL	tref
 	CHARACTER LEFINT*8
@@ -74,7 +76,7 @@
 	   IF (time2d(1,ifcst) .EQ. unspecified_val8) CYCLE
 * ... find the time step of this forecast where tref gets repeated
 	   DO istep = nT, 1, -1
-	      IF (time2d(istep, ifcst) .EQ. tref) THEN
+	      IF (TM_DFPEQ(time2d(istep, ifcst), tref)) THEN
 	         lagF = (nT-istep)/(ifcst-1)
 	         GOTO 100
 	      ENDIF
diff --git a/fer/gnl/finalize.F b/fer/gnl/finalize.F
index fdfb9c9..9fffb6b 100644
--- a/fer/gnl/finalize.F
+++ b/fer/gnl/finalize.F
@@ -1,5 +1,3 @@
-
-
 	SUBROUTINE FINALIZE
 
 *
@@ -40,7 +38,7 @@
 *
 *     *kms* 11/10 - added cat_pystat_var string_array_clear
 *                   cleared out VMS-specific includes
-*       *acm* 3/12 cleanup ifdefs and unnecessary include files
+*     *acm* 3/12 cleanup ifdefs and unnecessary include files
 
         include 'tmap_errors.parm'  ! error codes
 	include 'tmap_dims.parm'
@@ -72,6 +70,8 @@
 
         CALL deleted_list_clear(uvar_num_items_head)
 
+        CALL ncf_datasets_list_clear()
+
 	RETURN
 
 	END
diff --git a/fer/gnl/float2string_for_xml.F b/fer/gnl/float2string_for_xml.F
index 5d856b1..7c0c8db 100644
--- a/fer/gnl/float2string_for_xml.F
+++ b/fer/gnl/float2string_for_xml.F
@@ -66,7 +66,7 @@
 * Ferret will write into data varaibles.
 
 	IF (STR_SAME(strng, 'NaN') .EQ. 0) THEN
-	print *, '  ATTRIBUTE is NaN'
+	   CALL WARN('ATTRIBUTE is NaN')
 	   slen = 3
 	   GOTO 5000
 	ENDIF
diff --git a/fer/gnl/get_fer_command.F b/fer/gnl/get_fer_command.F
index c0f14a5..fad78fe 100644
--- a/fer/gnl/get_fer_command.F
+++ b/fer/gnl/get_fer_command.F
@@ -1,4 +1,4 @@
-	SUBROUTINE GET_FER_COMMAND( memory, called_string, status, * )
+	SUBROUTINE GET_FER_COMMAND( called_string, status, * )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -106,6 +106,8 @@
 * V697 12/15 *acm* Ticket 2341 Check that cmnd_len hasn't been set to 0.
 * V697 2/16 *acm* DO NOT Increase length of cmnd buffer to 20480 but keep 
 *                 other related changes when reporting errors in long command lines
+* V7+  6/16 *acm* Ticket 2446: Include the script name in warnings about 
+*                 unclosed IF blocks
 
 
 #ifdef MIXING_NAG_F90_AND_C
@@ -114,21 +116,21 @@
 
 * calling argument declarations:
 	INTEGER		status
-	REAL		memory(*)
 	CHARACTER*(*)	called_string
 
 * internal variable declarations:
 	LOGICAL re_verify, do_verify, arg1_quoted,
      .		pure_comment, appending_cmnd 
 	INTEGER	TM_LENSTR, TM_LENSTR1,
-     .		iqual, ilist, cmnd_len, double_eof,
-     .          has_more, i, cmnd_len_w_cmnt
+     .		iqual, ilist, cmnd_len, error_count,
+     .          has_more, i, cmnd_len_w_cmnt, i1, i2
 	CHARACTER prefix*5, raw_cmnd_buff*2048
+	CHARACTER symbuff*32, scriptname*512
 
 * local parameter declarations
         CHARACTER*1 backslash, tab
 	CHARACTER*5 dprefix
-	PARAMETER ( dprefix = ' !-> ')
+	PARAMETER ( dprefix = ' !-> ') 
 #ifdef NO_INTRINSIC_IN_PARAMETER
         PARAMETER ( backslash = o'134' )
 	PARAMETER ( tab = o'011' )
@@ -150,7 +152,7 @@
 
 * initialize
 	gui_status = ferr_ok	! start w/ a clean bill o' health
-	double_eof = 0
+	error_count = 0
 	max_context = max_noframe_context  ! 2/2014
 	len_cmnd_copy = 0
 	appending_cmnd = .FALSE.
@@ -192,6 +194,7 @@
 	   cmnd_len_w_cmnt = TM_LENSTR( cmnd_buff )
 
 	ELSE
+
 * operator sitting at his keyboard
 !	   WRITE (ttout_lun,3000) prompt(1:prompt_len)
 ! 3000	   FORMAT (1X,A,$)	! vms
@@ -199,18 +202,19 @@
 !	   READ  ( ttin_lun,'(A)',END=2000 ) cmnd_buff
 !	   cmnd_len_w_cmnt = TM_LENSTR( cmnd_buff )
 
-! check for multiple ^D's from the keyboard (or EOF on stdin redirect)
-	   double_eof = double_eof + 1
-	   IF (double_eof .GT. 2) STOP       ! 1/18/95
-
-* ... gnu readline with a FORTRAN jacket
-	   IF ( appending_cmnd ) THEN
+           error_count = error_count + 1
+           IF (error_count .GT. 2) THEN
+* orderly shutdown on multiple errors
+              cmnd_buff = 'EXIT /PROGRAM'
+           ELSE IF ( appending_cmnd ) THEN
               CALL TM_FRIENDLY_READ('...? ',cmnd_buff,*20)
-	   ELSE
+           ELSE
               CALL TM_FRIENDLY_READ(prompt(:prompt_len),cmnd_buff,*20)
-	   ENDIF
-	   cmnd_len_w_cmnt = TM_LENSTR( cmnd_buff )
-	   double_eof = 0	! in case comment or blank line returns here
+           ENDIF
+* clear interrupted if Ctrl-C was entered while typing command
+           INTERRUPTED = .FALSE.
+           cmnd_len_w_cmnt = TM_LENSTR( cmnd_buff )
+           error_count = 0      ! in case comment or blank line returns here
 
 	ENDIF
 
@@ -251,9 +255,17 @@ c        IF(has_more.NE.1) goto 210
 	GOTO 1000
 * end of command file - return to next lower control stack level
 * if we were in the midst of an open IF block, issue a warning
+* Include the script name in the note.
  210	IF (if_conditional) THEN
-	   IF (csp .LE. if_cs(ifstk) ) CALL WARN(
-     .			'Unclosed IF statement ... assuming ENDIF')
+	   IF (csp .LE. if_cs(ifstk) ) THEN
+	      symbuff = 'GO_FILE'
+	      CALL GETSYM( symbuff, scriptname, i2, i1 )
+	      IF (i1 .EQ. 0) THEN
+	         CALL WARN('Unclosed IF statement ... assuming ENDIF, in script '//scriptname(:i2) )
+	      ELSE
+	         CALL WARN('Unclosed IF statement ... assuming ENDIF')
+	      ENDIF
+	   ENDIF
 	ENDIF
 	CALL POP_CS
 	IF ( csp.EQ.0 .AND. mode_gui ) THEN		! GUI code ...
@@ -382,7 +394,7 @@ c        IF(has_more.NE.1) goto 210
 
 *************** PARSE THE COMMAND LINE ***************************************
 * 1/14 the command string now has no continuations and no comments
-	CALL PARSE_COMMAND ( memory, cmnd_buff,
+	CALL PARSE_COMMAND (  cmnd_buff,
      .			     max_arg_list, max_qual_list,
      .			     len_cmnd, cmnd_num, subcmnd_num, 
      .			     num_qualifiers, qualifier_list,
diff --git a/fer/gnl/get_mode_arg.F b/fer/gnl/get_mode_arg.F
index 0f75980..1c3de7d 100644
--- a/fer/gnl/get_mode_arg.F
+++ b/fer/gnl/get_mode_arg.F
@@ -66,6 +66,7 @@
 *                    and allow for a floating-point input
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V698  *acm* 5/16 Ticket 2405: MODE CALENDAR:auto
+* V702  *sh*  2/17 Added mode frugal
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -89,6 +90,7 @@
 	IF ( text .EQ. ' ' ) THEN
 	   IF ( mode .EQ. pmode_verify ) arg = 1   ! reset to "DEFAULT"
            IF ( mode .EQ. pmode_stupid ) arg = 2   ! same as unspecified_int4
+!           IF ( mode .EQ. pmode_frugal ) arg = 30
 	   RETURN
 	ENDIF
 
@@ -165,6 +167,11 @@
 	   IF ( iarg.LT.1 .OR. iarg .GT. 250 ) GOTO 5020
 	   arg = iarg
 
+	ELSEIF ( mode .EQ. pmode_frugal ) THEN
+	   READ ( text, '(BN,I10)', ERR=5040 ) iarg
+	   IF ( iarg.LT.0 .OR. iarg.GT.90) GOTO 5040
+	   arg = iarg
+
         ELSE
 	   GOTO 5010	! mode does not accept argument
 	ENDIF
@@ -182,7 +189,7 @@
  5020   tlen = TM_LENSTR1(text)
         risc_buff = text(:tlen)
         CALL ERRMSG( ferr_out_of_range, status,
-     .   'illegal mode argument must be in [1,250] '//risc_buff, *5500 )
+     .   'illegal mode argument. Must be in [1,250] '//risc_buff, *5500 )
  5030   tlen = TM_LENSTR1(text)
         risc_buff = text(:tlen)
         CALL ERRMSG( ferr_out_of_range, status,
@@ -193,11 +200,14 @@
      .   'illegal mode argument < 6 '//text(:tlen), *5500 )
  5020   tlen = TM_LENSTR1(text)
         CALL ERRMSG( ferr_out_of_range, status,
-     .   'illegal mode argument must be in [1,250] '//text(:tlen), *5500 )
+     .   'illegal mode argument. Must be in [1,250] '//text(:tlen), *5500 )
  5030   tlen = TM_LENSTR1(text)
         CALL ERRMSG( ferr_out_of_range, status,
      .   'illegal mode argument > 1.e+9, ', *5500 )
 #endif
+ 5040   CALL ERRMSG( ferr_out_of_range, status,
+     .   'illegal mode argument. Must be 0 to 90 percent '
+     .          //text(:tlen), *5000 )
  5500   IF ( mode .EQ. pmode_verify ) CALL WARN(
      .          'Legal VERIFY arguments are DEFAULT, ALL, and ALWAYS')
         GOTO 5000
diff --git a/fer/gnl/init_ef_aggregate_dset.F b/fer/gnl/init_ef_aggregate_dset.F
index 8ee1e4f..8133a0a 100644
--- a/fer/gnl/init_ef_aggregate_dset.F
+++ b/fer/gnl/init_ef_aggregate_dset.F
@@ -74,6 +74,7 @@
 *      2/16  *sh* automatically xfer attributes from member vars to agg vars
 *      3/16  *sh* trap simple invalid commands
 *                 start TBOXLO[L=1], not TBOX[L=1], of tf_lag_t axis at 0.0 
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
 * arguments:
 *	memb_dsetname_var - if have_expr, the variable of names (input)
@@ -117,7 +118,7 @@
      .		   pmaxvarsperset = 400)
 
 * local variable declarations:
-	LOGICAL	OK_AS_AGG_VAR, match, has_uvars
+	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,
@@ -291,9 +292,12 @@
 ! pre 3/16	   CALL TM_MAKE_BASIC_AXIS( buff, 0.0D0, avg_lag, nT,
 * note that if the FMRC gets aggregated by the THREDDS Data Server this
 * code never gets called.  See CD_SCAN_AUX_COORDS for that case.
+* If the member axes are true-month axes, make the time axis of the 
+* aggregation a daily axis, not true-month.
 	   CALL TM_MAKE_BASIC_AXIS( buff, avg_lag/2., avg_lag, nT,
      .				    tf_lag_t, status )
 	   line_unit_code(tf_lag_t) = line_unit_code(memb_tax)
+	   IF (ITSA_TRUEMONTH_AXIS(memb_tax)) line_unit_code(tf_lag_t) = pun_day
 	   line_units(tf_lag_t) = un_name(line_unit_code(tf_lag_t))
 	   line_direction(tf_lag_t) = 'TT'
 	   line_dattype  (tf_lag_t) = nf_double
diff --git a/fer/gnl/init_memory.F b/fer/gnl/init_memory.F
index 934770a..b389965 100644
--- a/fer/gnl/init_memory.F
+++ b/fer/gnl/init_memory.F
@@ -1,6 +1,4 @@
-
-
-	SUBROUTINE INIT_MEMORY( block_size, number_of_blocks )
+	SUBROUTINE INIT_MEMORY
 
 *
 *
@@ -54,6 +52,8 @@
 * V606: 8/07 *acm* Set a symbol with the current memory setting
 * V62   5/09 *acm*- make FERRET_MEMORY a special symbol (remove 
 *                 code defining it from this routine)
+* V702: 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
+*                - perform initial sanity check
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -63,27 +63,11 @@
 	include 'xprog_state.cmn'
 
 * calling argument declarations:
-	INTEGER block_size, number_of_blocks
 
 * internal variable declarations
-	INTEGER	bigblk, mv
-      INTEGER i1, i2, len
-      CHARACTER*30 TM_FMT, sym_name, buff
-
-* initialize memory configuration
-	mem_blk_size = block_size
-	max_mem_blks = number_of_blocks
-
-* BULK MEMORY
-* note: arrays mblk_* are initialized by DATA to unspecified
-* ... designate all the rest as 1 giant free contiguous block
-	bigblk = 1
-	mblk_flink(0) = bigblk
-	mblk_blink(0) = bigblk
-	mblk_size (0) = 0
-	mblk_flink(bigblk) = 0
-	mblk_blink(bigblk) = 0
-	mblk_size (bigblk) = max_mem_blks
+	INTEGER	bigblk, mv, ws
+        INTEGER i1, i2, len
+        CHARACTER*30 TM_FMT, sym_name, buff
 
 * LINKS IN MEMORY VARIABLE TABLE
 * ... all hash pile start pointers point to self (empty lists)
@@ -102,7 +86,33 @@
 * the reason so small is that Ferret memory management is not aware of
 * large hierarchies of definitions -- so a command like "LIST var"
 * may involve far more data than the transformations of "var" alone
-	mode_arg(pmode_desperate,1) = 0.1 *  block_size *  number_of_blocks
+	mode_arg(pmode_desperate,1) = 0.1 *  pmax_mem_default
+
+* initialize malloced dynamic memory management variables  (2/2017)
+        DO mv = 1, max_mrs
+           CALL NULLIFY_MR(mv)
+           mr_size(mv) = 0
+        ENDDO
+        DO ws = 1, max_ws
+           CALL NULLIFY_WS(ws)
+           ws_size(ws) = 0
+        ENDDO
+
+* SET MEMORY limit default
+	max_mem_allowed = pmax_mem_default
+
+* accounting variables (see xvariables.cmn)
+        total_mem = 0
+        peak_mem = 0
+        peak_essential_mem = 0
+	need_memlim_warning = .TRUE.
+	permanent_mem = 0
+	essential_mem = 0
+
+* sanity check
+#ifndef NDEBUG
+        CALL SANITY_CHECK_MEMORY("init_memory")
+#endif
 
 	RETURN
 	END
diff --git a/fer/gnl/init_t_aggregate_dset.F b/fer/gnl/init_t_aggregate_dset.F
index 561a4a0..8180b11 100644
--- a/fer/gnl/init_t_aggregate_dset.F
+++ b/fer/gnl/init_t_aggregate_dset.F
@@ -57,6 +57,7 @@
 
 * V695+ *sh* 11/15 new routine 
 * V698 *sh* 1/16  pass explicit path name (for "USE file.agg" compatibility)
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
 * arguments:
 *	mem_filename_list - if have_expr, the variable of names (input)
diff --git a/fer/gnl/init_ef_aggregate_dset.F b/fer/gnl/init_u_aggregate_dset.F
similarity index 56%
copy from fer/gnl/init_ef_aggregate_dset.F
copy to fer/gnl/init_u_aggregate_dset.F
index 8ee1e4f..0ca8301 100644
--- a/fer/gnl/init_ef_aggregate_dset.F
+++ b/fer/gnl/init_u_aggregate_dset.F
@@ -1,4 +1,4 @@
-	SUBROUTINE INIT_EF_AGGREGATE_DSET (memb_dsetname_var,
+	SUBROUTINE INIT_U_AGGREGATE_DSET (memb_dsetname_var,
      .	   nsets, have_expr, dname, dpath, dtitle, agg_dset, 
      .     agg_quiet, agg_hide, agg_dim, status )
 *
@@ -55,25 +55,12 @@
 *     the variable category and grid.  Error out if grid number has changed
 
 * Programmer Ansley Manke
-* NOAA/PMEL, Seattle, WA - TMAP 
+* NOAA/PMEL, Seattle, WA - SDIG
 *
-* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
-* V685 4/13 *acm* Ability to define ensemble with /HIDDEN
-*                 Get grid of user-vars, allow more combinations with user vars
-*                 better error handling.
-* V695 2/15 *acm* Aggregation in either E or F direction, as defined by agg_dim
-* V695+ 5/15 *sh* Call GET_AXIS_SPEEDS (pulled out of CHECK_MEMBER_DSETS)
-* V695+ 10/15 *sh* rename this routine to INIT_EF_AGGREGATE_DSET
-* V698 12/15 *sh* reorganization of code in order to accommodate:
-*		  checks of uvar grids delayed until eval
-*	          allow for LET/D def changes after DEFINE/AGG (hopefully)
-*		  allow dataset list passed as a Ferret string variable
-*                 allow forecast datasets out of order (sort em)
-*		  allow gaps in the forecast series (insert dummy datasets)
-* V698 1/16  *sh* pass explicit path name (for "USE file.agg" compatibility)
-*      2/16  *sh* automatically xfer attributes from member vars to agg vars
-*      3/16  *sh* trap simple invalid commands
-*                 start TBOXLO[L=1], not TBOX[L=1], of tf_lag_t axis at 0.0 
+* V7   5/12 *acm* Union aggregations: DEFINE DATA/AGG/U
+* V7.2 5/17 *acm* Ticket 2526 For SHOW DATA/MEMBERS of Union datasets need to 
+*                 have called NCF_ADD_AGG_MEMBERto list the dataset members in 
+*                 the linked-list structure for the union dataset
 
 * arguments:
 *	memb_dsetname_var - if have_expr, the variable of names (input)
@@ -85,7 +72,7 @@
 *	dset_num	- number assigned to this data set (output)
 *       agg_quiet       - flag whether to report certain conditions (input)
 *	agg_hide        - flag whether to hide the component datasets (input)
-*	agg_dim		- axis of the aggregation (E or F) (input)
+*	agg_dim		- axis of the aggregation (is irrelevant)
 *	status		- return status (output)
 
       IMPLICIT NONE
@@ -112,40 +99,28 @@
 	REAL		memb_dsetname_var(*)
 
 * parameter definitions
-	INTEGER	pmaxgaps, pmaxvarsperset
-	PARAMETER (pmaxgaps = 10,
-     .		   pmaxvarsperset = 400)
+	INTEGER	pmaxvarsperset
+	PARAMETER (pmaxvarsperset = 400)
 
 * local variable declarations:
-	LOGICAL	OK_AS_AGG_VAR, match, has_uvars
-	INTEGER	TM_LENSTR, TM_LENSTR1, STR_SAME,
-     .		NCF_ADD_AGG_MEMBER, NCF_GET_AGG_MEMBER_INFO, 
-     .          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, 
-     .		slen, memb_var, memb_dset, memb_grid, ugrid, nsets_wgaps,
-     .		type, fvar, ndims, ngatts, recdim, varid, attoutflag,
-     .          tf_lag_t, memb_tax,
-     .		ref_grid, ref_fvar, ref_fvars(pmaxvarsperset),
-     .		num_indices, j, jj, ignored_status
-	CHARACTER buff*64, tcoordname*16
+	LOGICAL match, itsa_uvar
+	INTEGER	TM_LENSTR1, STR_SAME, NCF_ADD_AGG_MEMBER,
+     .		iset, dset1, item, ii, max_str_len,member_sets(nsets), 
+     .		nv, nvars, iline, slen, jlen, un_vars(pmaxvarsperset),
+     .		num_indices, j, member, ignored_status
+	REAL	sset
 	CHARACTER TM_STRING*13
 	CHARACTER*512 GET_STRING_ELEMENT_1D_X, memb_dsetname(nsets)
+	CHARACTER*10 TM_FMT, strset
 	CHARACTER*128 vname
-	REAL*8  TM_WORLD, avg_lag
 
 * initialize
-	tf_lag_t = unspecified_int4  ! lag time axis if FMRC
 	max_str_len = 512
-	nsets_wgaps = nsets
-	DO iset = 1, nsets+pmaxgaps
+	nsets = nsets
+	DO iset = 1, nsets
 	   member_sets(iset) = pdset_dummy
 	ENDDO
 
-* must have at least two datasets for an F aggregation
-	IF (agg_dim.EQ.F_dim .AND. nsets.LT.2) GOTO 5050
-
 * check to see if this new dataset name matches an already-open dataset name.
 * if so, thats an error
 	DO iset = 1, maxdsets
@@ -175,13 +150,6 @@
      .				member_sets, status)
 	IF (status .NE. ferr_ok) GOTO 9950
 
-* forecast aggregation datasets may need to be sorted and gaps detected
-	IF (agg_dim .EQ. f_dim) THEN
-	   CALL SORT_FMRC_DSETS (nsets, member_sets, nsets+pmaxgaps,
-     .				 nsets_wgaps, nT, status)
-	   IF (status .NE. ferr_ok) GOTO 5000
-	ENDIF
-
 * Assign aggregate data set number, exiting if maximum number 
 * of data sets are open
 	DO iset = 1,maxdsets
@@ -191,7 +159,7 @@
 	  ENDIF
 	ENDDO
 * ... too many data sets are open
-	CALL TM_ERRMSG ( merr_dsetlim, status, 'INIT_EF_AGGREGATE_DSET',
+	CALL TM_ERRMSG ( merr_dsetlim, status, 'INIT_U_AGGREGATE_DSET',
      .			 no_descfile, no_stepfile,
      .			 'MAX='//TM_STRING(DBLE(maxdsets)),
      .			 no_errstring, *9950)
@@ -199,42 +167,22 @@
 
 * Create datset. Will delete it later if there are no aggregate variables found
 * Note: the pattern will the first dataset given.  They may get reordered.
+	iline = unspecified_int4
+	agg_dim = unspecified_int4
 	CALL CREATE_AGG_DSET (agg_dset, dname, dpath, dtitle,
-     .			 nsets_wgaps, member_sets(1), agg_dim, iline, status)  
+     .			 nsets, member_sets(1), agg_dim, iline, status)  
 	IF (status .NE. ferr_ok) GOTO 5300
 
-* perform initializations needed on a new dataset
-* determine relative access speeds along each axis
-	CALL GET_AXIS_SPEED( agg_dset )
-
 * 1st member dset sets pattern for all to follow
 	dset1 = member_sets(1)
 
-* If this is a Forecast aggregation create name for the 2D time array
-* Make it unique as necessary by adding trailing "_" chars
-	IF (agg_dim.EQ.f_dim) THEN
-	   tcoordname = 'TF_TIMES'
-	   slen = 8
- 250	   CONTINUE
-	   DO ivar = 1, maxvars
-	      IF (ds_var_setnum(ivar) .EQ. dset1) THEN
-	         IF ( STR_SAME(tcoordname,ds_var_code(ivar)) .EQ. 0 ) THEN
-	            tcoordname = tcoordname(:slen)//'_'
-	            slen = slen + 1
-	            GOTO 250
-	         ENDIF
-	      ENDIF
-	   ENDDO
-	ELSE
-	   tcoordname = ' '
-	ENDIF
 
 *****
-* find variables that are acceptable for aggregation using dset1 as the basis
-* an aggregatable var must have at least member dset that is an fvar - ref_fvar
-* note LET/D names that duplicate file variable names take precedence, so
-*     check them first
-	nuvars = 0
+* find variables from the first dataset and register them in the aggregation.
+
+	iset = dset1
+
+	nvars = 0
 !	DO nv = 1, max_uvar      ! brute-force equivalent loop
 	CALL deleted_list_get_undel(uvar_num_items_head,
      .                              deleted_list_result(1),
@@ -242,104 +190,108 @@
 	DO j = 1, num_indices
 	   nv = deleted_list_result(j)
 	   IF (uvar_dset(nv) .EQ. dset1) THEN
-	      IF (OK_AS_AGG_VAR(nv, cat_user_var, dset1, member_sets,
-     .		  nsets_wgaps, agg_dim, agg_quiet, ref_fvar, status)  ) THEN
-	         nuvars = nuvars + 1
-	         ref_fvars(nuvars) = ref_fvar
-	      ELSE
-	         IF (status .NE. ferr_ok) GOTO 5000
-	      ENDIF
+	      nvars = nvars + 1
+	      un_vars(nvars) = nv
+	      vname = uvar_name_code(nv)
+	      itsa_uvar = .TRUE.
+	      CALL DEFINE_U_AGGREGATE_VAR (agg_dset, iset, nvars, 
+     .           vname, nv, itsa_uvar, nsets, status)
+              IF (status .NE. ferr_ok) GOTO 5300
 	   ENDIF
 	ENDDO
-	nvars = nuvars
 
 * now find the file variables
-	ref_grid = unspecified_int4
         DO nv = 1, maxvars
 	   IF (ds_var_setnum(nv) .EQ. dset1) THEN
 * ... skip it if it duplicates a name already found as a LET/D variable
-	      DO ii = 1, nuvars
-	         IF (STR_SAME(ds_var_code(ref_fvars(ii)),
+	      DO ii = 1, nvars
+	         IF (STR_SAME(ds_var_code(un_vars(ii)),
      .			      ds_var_code(nv)           ) .EQ. 0) GOTO 300
 	      ENDDO
-	      IF (OK_AS_AGG_VAR(nv, cat_file_var, dset1, member_sets,
-     .		  nsets_wgaps, agg_dim, agg_quiet, ref_fvar, status)  ) THEN
-	         nvars = nvars + 1
-	         ref_fvars(nvars) = ref_fvar
-	      ELSE
-	         IF (status .NE. ferr_ok) GOTO 5000
-	      ENDIF
+	      nvars = nvars + 1
+	      un_vars(nvars) = nv
+	      vname = ds_var_code(nv)
+	      itsa_uvar = .FALSE.
+	      CALL DEFINE_U_AGGREGATE_VAR (agg_dset, iset, nvars, vname, nv, 
+     .         itsa_uvar, nsets, status)
+           IF (status .NE. ferr_ok) GOTO 5300
 	   ENDIF
  300	   CONTINUE
 	ENDDO
 *****
 
-* If no variables from the datasets match, delete this dataset. 
+* If no variables from the dataset, delete this dataset. 
 	IF (nvars .EQ. 0) GOTO 5500
 
-* For forecast aggregations, the time axis of the aggregation 
-* is not taken directly from the ensemble members.  Instead it
-* is merely a lag axis -- number of time steps and lag per step
-	IF (agg_dim .EQ. f_dim) THEN
-	   ref_grid = ds_grid_number(ref_fvars(1))
-	   IF (ref_grid .EQ. unspecified_int4) GOTO 5400
-	   memb_tax = grid_line(t_dim, ref_grid)
-	   avg_lag = ( TM_WORLD(nT, ref_grid, t_dim, box_middle )
-     .	             - TM_WORLD(1,  ref_grid, t_dim, box_middle ) )
-     .			/(nT-1)
-	   CALL TM_NEW_LINE_NAME ( 'TF_LAG_T', buff )
-! pre 3/16	   CALL TM_MAKE_BASIC_AXIS( buff, 0.0D0, avg_lag, nT,
-* note that if the FMRC gets aggregated by the THREDDS Data Server this
-* code never gets called.  See CD_SCAN_AUX_COORDS for that case.
-	   CALL TM_MAKE_BASIC_AXIS( buff, avg_lag/2., avg_lag, nT,
-     .				    tf_lag_t, status )
-	   line_unit_code(tf_lag_t) = line_unit_code(memb_tax)
-	   line_units(tf_lag_t) = un_name(line_unit_code(tf_lag_t))
-	   line_direction(tf_lag_t) = 'TT'
-	   line_dattype  (tf_lag_t) = nf_double
-	   line_dim_only (tf_lag_t) = .FALSE.  ! indicates netCDF dim w/out var
-	ENDIF
+* *** loop over the member datasets ***
+	DO iset = 2, nsets
+	   member = member_sets(iset)
+	   IF (member .EQ. pdset_dummy) CYCLE ! ignore dummy (missing) dataset
 
+*****
+* find variables from the other member datasets. Add new ones to the aggregation.
+
+	   CALL deleted_list_get_undel(uvar_num_items_head,
+     .                              deleted_list_result(1),
+     .                              max_uvar, num_indices )
+	   DO j = 1, num_indices
+	      nv = deleted_list_result(j)
+	      IF (uvar_dset(nv) .EQ. member) THEN
+	         nvars = nvars + 1
+	         un_vars(nvars) = nv
+	         vname = uvar_name_code(nv)
+	         itsa_uvar = .TRUE.
+	         CALL DEFINE_U_AGGREGATE_VAR (agg_dset, member, nvars, 
+     .               vname, nv, itsa_uvar, nsets, status)
+	         IF (status .NE. ferr_ok) GOTO 5300
+	      ENDIF
+	   ENDDO
+
+* now file variables
+	   DO nv = 1, maxvars
+	      IF (ds_var_setnum(nv) .EQ. member) THEN
+* ... skip it if it duplicates a name already found as a LET/D variable
+*     Issue a note unless they said /QUIET
+
+	         DO ii = 1, nvars
+	            IF (STR_SAME(ds_var_code(un_vars(ii)),
+     .			      ds_var_code(nv)           ) .EQ. 0) THEN
+                       sset = member
+		       slen = TM_LENSTR1(ds_var_code(nv))
+		       strset = TM_FMT(sset, 10, 10, jlen)
+		       
+                       IF (.NOT.agg_quiet) CALL WARN ('Skipping variable '//
+     .			ds_var_code(nv)(:slen)//
+     .			' from set '//strset(:jlen) //
+     .			', already in the Union dataset.')
+		       GOTO 400
+	            ENDIF
+	         ENDDO
+	         nvars = nvars + 1
+	         un_vars(nvars) = nv
+	         vname = ds_var_code(nv)
+	         itsa_uvar = .FALSE.
+	         CALL DEFINE_U_AGGREGATE_VAR (agg_dset, member, nvars, 
+     .            vname, nv, itsa_uvar, nsets, status)
+	         IF (status .NE. ferr_ok) GOTO 5300
+	      ENDIF
+ 400	   CONTINUE
+  	   ENDDO
+
+
+	ENDDO  ! 2, nsets
+
+	IF (nvars .EQ. 0) GOTO 5500
 
-* register the list of variables found suitable for this aggregation
-	ii = 0
-	nv = 0
-	DO WHILE (ii .LT. nvars)
-	   ii = ii + 1
-	   nv = nv + 1! kludgy: incremented just below when TF_TIMES is added
-	   ref_fvar = ref_fvars(ii)
-	   vname = ds_var_code(ref_fvar)
-	   grid = ds_grid_number(ref_fvar)
-	   CALL DEFINE_EF_AGGREGATE_GRID (agg_dset, tcoordname, nv, vname,
-     .					  ref_fvar, iline, tf_lag_t, grid,
-     .					  agg_dim, member_sets, nsets_wgaps)
-	   IF (status .NE. ferr_ok) GOTO 5000
-
-* transfer to the aggregated variable whatever special attributes it inherits
-	   CALL SET_AGG_VAR_ATTS(agg_dset, vname, nv, nsets_wgaps, 
-     .			         ref_fvar, member_sets, status)
-	   IF (status .NE. ferr_ok) GOTO 9960
-	ENDDO
 
 * register member datasets to aggregate dataset
-	DO iset = 1, nsets_wgaps
+	DO iset = 1, nsets
 	   status = NCF_ADD_AGG_MEMBER (agg_dset, iset, member_sets(iset)) 
 	ENDDO
- 
-* remove duplicate temp grid definitions amd makegrid names unique
-	CALL AGG_CLEAN_GRIDS(agg_dset, agg_dim, iline, tf_lag_t)
-
-* set use counts and remove temp status of agg grids and axes
-	CALL TM_GARB_COL_GRIDS(agg_dset)
-
-* set the official time axis of the dataset
-	CALL CD_GET_TIME_AXIS( agg_dset, t_dim, ignored_status )
-	IF (ignored_status .NE. merr_ok) CALL WARN
-     .					  ('INIT_EF_GET_TIME_AX crptn')
 
 * If user requested /HIDE, then mark the member datasets for hidden status
 	IF (agg_hide) THEN
- 	   DO iset = 1, nsets_wgaps
+ 	   DO iset = 1, nsets
 	      ds_hide (member_sets(iset)) = .TRUE. 
 	   ENDDO
 	ENDIF
@@ -351,7 +303,7 @@
 * remove all hidden member datasets of the failed aggregation
 * ... this is a little brute force in that it may cancel a previously opened
 * ... dataset included using DEFINE DATA/AGG/HIDE (havnt checked carefully)
- 5000	DO ii = 1, nsets_wgaps
+ 5000	DO ii = 1, nsets
 	   iset = member_sets(ii)
 	   IF (iset .EQ. pdset_dummy
      .    .OR. iset .EQ. unspecified_int4) CYCLE
@@ -374,21 +326,14 @@
 	agg_dset = unspecified_int4
 	GOTO 5000
 
- 5050	CALL ERRMSG( ferr_invalid_command,status,
-     .		'cannot F-aggregate a single member dataset', *6000 )
-
  5100   CALL ERRMSG( ferr_invalid_command,status,
      .		'dataset name already in use: '
      .		//dname(:TM_LENSTR1(dname)), *5000 )
      
  5300	CALL ERRMSG( ferr_aggregate_error, status, ' ', *9950 )
 
-
- 5400	CALL ERRMSG( ferr_aggregate_error, status,
-     .		'No time axis for aggregation',          *9960 )
-
  5500	CALL ERRMSG( ferr_aggregate_error, status,
-     .		'No valid datasets or datasets share no variables. ', 
+     .		'No valid datasets ', 
      .		*9960 )
 
 	END
diff --git a/fer/gnl/is_agg_member.F b/fer/gnl/is_agg_member.F
index a7d57aa..6bff220 100644
--- a/fer/gnl/is_agg_member.F
+++ b/fer/gnl/is_agg_member.F
@@ -46,7 +46,7 @@
 * programmer - steve hankin
 * V695 *sh* 1/16
 * V698  3/16 *acm* Remove unneeded xdset_parms.cmn
-
+* V7   *acm*  6/12 Add Union aggregations: DEFINE DATA/AGG/U, ds_type 'UNI'
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -79,7 +79,8 @@
 	DO iset = 1, maxdsets
 	   IF ( ds_name(iset) .EQ. char_init1024) CYCLE
 	   IF (iset .EQ. dset) CYCLE
-	   IF ( ds_type(iset).NE.'ENS' .AND. ds_type(iset).NE.'FCT') CYCLE 
+	   IF ( ds_type(iset).NE.'ENS' .AND. ds_type(iset).NE.'FCT' 
+     .		.AND. ds_type(iset).NE.'UNI') CYCLE 
 
 * Get number of agg members in this one
 	   CALL CD_GET_AGG_DSET_INFO (iset, nmemb, status)
diff --git a/fer/gnl/line_facts.F b/fer/gnl/line_facts.F
index 08fac50..40c4cdd 100644
--- a/fer/gnl/line_facts.F
+++ b/fer/gnl/line_facts.F
@@ -63,6 +63,8 @@
 * V697  12/15 *acm* Changes to formatting the output that shows subsets
 * V698 2/16 *acm*  For ticket 1786: if mode_upcase is canceled write axis name
 *                  using original upper/lowercase spelling
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
+* V72  3/17 *acm* Fix ticket 2518: The number of points reported in a subset was incorrect
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -73,14 +75,18 @@
 	include 'xrisc.cmn'          ! 12/94 SPLIT_LIST buffer
 	include 'xvariables.cmn'
 	include 'xprog_state.cmn'
+        include 'calendar.decl'
+        include 'calendar.cmn'
 
 * calling argument declarations
 	INTEGER	  lun, idim, grid, orient, uvar
 
 * local variable declarations:
-	LOGICAL	BKWD_AXIS, GEOG_LABEL, calendar, original
-	INTEGER TM_LENSTR1, TM_SUBSC, lo, hi, i, line, dlen, ndec, status,
-     .          nlen, naxlen, int1, slen, i1ss, inss
+	LOGICAL	BKWD_AXIS, GEOG_LABEL, ITSA_TRUEMONTH_AXIS, 
+     .          calendar, original, true_month
+	INTEGER TM_LENSTR1, TM_SUBSC, TM_GET_CALENDAR_ID, 
+     .          lo, hi, i, line, dlen, ndec, status,nlen, naxlen, 
+     .          int1, slen, i1ss, inss,cal_id 
 	CHARACTER AX_TITLE*32, TM_FMT*20, lo_str*20, hi_str*20, direction*1,
      .		  title*32, reg*1, modflag*1, truncated*1, frmt*80,
      .		  lo_uvar*20, hi_uvar*20, uvar_desc*40, cstr*3, countstr*20,
@@ -118,6 +124,8 @@
 	   ELSE
 	      ndec = -sig_figs	! 5 sig places w/out extra zeros
 	   ENDIF
+	   true_month = ITSA_TRUEMONTH_AXIS (line)
+	   IF (true_month) ndec = 2
 	   CALL TRANSLATE_TO_WORLD( lo_val8, idim, grid, ndec, lo_str )
 	   hi_val8 = TM_WORLD( line_dim(line), grid, idim, box_middle )
 	   IF ( calendar ) THEN
@@ -125,6 +133,8 @@
 	   ELSE
 	      ndec = -sig_figs
 	   ENDIF
+	   IF (true_month) ndec = 2
+
 	   CALL TRANSLATE_TO_WORLD( hi_val8, idim, grid, ndec, hi_str )
 
 * axis oriented backwards ?
@@ -150,11 +160,16 @@
 !	   title = title(:dlen)//direction	! 12/94 removed
 
 * regularly spaced ?
+
 	   IF ( line_regular( line ) ) THEN
 	     reg = 'r'
 	   ELSE
 	     reg = 'i'
 	   ENDIF
+	   IF (true_month) THEN
+               cal_id = TM_GET_CALENDAR_ID (line_cal_name (line))
+	       IF (cal_id .NE. d360) reg = 'i'
+	   ENDIF
 
 * modulo ?
 	   IF ( line_modulo( line ) ) THEN
@@ -212,7 +227,7 @@
 	      IF (i1ss .EQ. inss) THEN
 	         uvar_desc = '1 pt'
 	      ELSE
-	         countstr = TM_FMT(FLOAT(inss-i1ss), 15, 20, slen)
+	         countstr = TM_FMT(FLOAT(inss-i1ss+1), 15, 20, slen)
 	         uvar_desc = countstr(:slen)//' pts'
 	      ENDIF
 	   ENDIF
@@ -286,6 +301,11 @@ c Compressing transfm, w/o limits
      .				lo_str,
      .				hi_str,
      .				uvar_desc
+
+	   ENDIF
+	   IF (true_month) THEN
+	      dlen = TM_LENSTR1(risc_buff)
+	      IF (dlen.GT.1) risc_buff = risc_buff(:dlen)//' (True Monthly)'
 	   ENDIF
 
 	   CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
diff --git a/fer/gnl/line_facts_xml.F b/fer/gnl/line_facts_xml.F
index fa2a02f..677bae3 100644
--- a/fer/gnl/line_facts_xml.F
+++ b/fer/gnl/line_facts_xml.F
@@ -56,6 +56,7 @@
 *      *acm* 3/13 Dont show axes with names in parentheses e.g. (AX004)
 * V698 2/16 *acm*  For ticket 1786: if mode_upcase is canceled write axis name
 *                  using original upper/lowercase spelling
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -72,7 +73,7 @@
 	INTEGER	  lun, idim, grid, orient
 
 * local variable declarations:
-	LOGICAL	BKWD_AXIS, GEOG_LABEL,
+	LOGICAL	BKWD_AXIS, GEOG_LABEL, ITSA_TRUEMONTH_AXIS,
      .          calendar, new, got_it, coordvar, original
 	INTEGER TM_LENSTR, TM_LENSTR1, TM_GET_CALENDAR_ID, 
      .          STR_SAME, line, slen, llen, ndec, cal_id, status,
@@ -252,7 +253,7 @@
 * regularly spaced ?
            WRITE ( risc_buff, 2030 ) 'point_spacing'
 	   CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
-	   IF ( line_regular( line ) ) THEN
+	   IF ( line_regular( line ) .AND. .NOT.ITSA_TRUEMONTH_AXIS(line) ) THEN
               WRITE ( risc_buff, 2075 ) 'even'
 	      CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
            ELSE
diff --git a/fer/gnl/list_cmnd_data.F b/fer/gnl/list_cmnd_data.F
index abc440c..bc5df21 100644
--- a/fer/gnl/list_cmnd_data.F
+++ b/fer/gnl/list_cmnd_data.F
@@ -88,6 +88,11 @@
 * V650: *acm* 2/10 - Clean up line with coordinates on listings with tabs/commas
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 * V691+ *acm* 9/14 Ticket 2199: for string variables don't list a BAD FLAG in the header.
+* V71   *acm* 11/16 For true-month axes, call TM_WORLD to write any true-month
+*                  time coordinates as days.
+* V71   *acm* 01/17 Ticket 2492. For single-variable LIST/FORMAT=comma or /FORMAT=tab listings, 
+*                   /NOROW had no effect; and there is an extra longitude location label below 
+*                   the header even when the longitude has been averaged away.
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -212,14 +217,23 @@
 	   span(idim) = CX_DIM_LEN( perm(idim), cx ) .GT. 1
 	   valid(idim) = cx_lo_ss( cx, perm(idim) ) .NE. unspecified_int4
  30	CONTINUE
+
+
 * * * * * * WRITE INTRODUCTORY LINES * * * * *
 	IF ( do_unform .OR. do_stream .OR. do_dods .OR.
      .       .NOT.heading ) GOTO 200
-* ... first the variable name
+* ... first the variable name with units
 	vname_buff   = VAR_TITLE( cx )
 	vlen   = TM_LENSTR1( vname_buff )
-	vname_buff   = vname_buff(:vlen)//' '//
+        IF (INDEX(VAR_UNITS(cx), 'truemonth') .GT. 0 .OR. 
+     .      INDEX(VAR_UNITS(cx), 'TRUEMONTH') .GT. 0 ) THEN
+           vname_buff   = vname_buff(:vlen)//' '//
+     .				PAREN_SURROUND('day', alen)
+        ELSE
+	   vname_buff   = vname_buff(:vlen)//' '//
      .				PAREN_SURROUND(VAR_UNITS(cx), alen)
+        ENDIF
+        
 	CALL SPLIT_LIST(pttmode_explct, list_lun,
      .				'             VARIABLE : '//vname_buff, 0)
 
@@ -599,36 +613,44 @@
      .        CALL NDIG_COORDS (grid, perm(4), lo4, hi4, del4, 
      .           bad_data, ndig(perm(4)), ax_dec_pt(perm(4)) )
 
-* Write coordinates
-
-	   DO 330 i = lo1, hi1, del1
-	      val8 = TM_WORLD( i, grid, row_ax, box_middle )
-	      width = FIELD_WIDTH(val8, grid, row_ax, ndig(row_ax),
+* Skip this level of coordinate labels when they said /NOHEAD.
+* Do not make spurious labels from an  index=-999.
+	   IF (heading .AND. lo1.NE.unspecified_int4) THEN
+	      DO 330 i = lo1, hi1, del1
+	         val8 = TM_WORLD( i, grid, row_ax, box_middle )
+	         width = FIELD_WIDTH(val8, grid, row_ax, ndig(row_ax),
      .					numbers)
-	      alen = alen + width
-	      IF ( alen .GT. max_line_len ) THEN
-	         line_buff(max_line_len-18:max_line_len) = 
+	         alen = alen + width
+	         IF ( alen .GT. max_line_len ) THEN
+	            line_buff(max_line_len-18:max_line_len) = 
      .			'** line too long **'
-	         alen = max_line_len
-	         GOTO 331
-	      ENDIF
-	      CALL TRANSLATE_TO_WORLD
+	            alen = max_line_len
+	            GOTO 331
+	         ENDIF
+	      
+	         CALL TRANSLATE_TO_WORLD
      .		      ( val8,
      .			row_ax,
      .			grid,
      .			ndig(row_ax),
      .			line_buff(alen-(width-1):alen) )
-	      IF ( i .LT. hi1 ) THEN
-	         alen = alen + 1
-	         line_buff(alen:alen) = tab_or_comma
-	      ENDIF
- 330	   CONTINUE
- 331	   CALL SPLIT_LIST(pttmode_explct, list_lun,
+	         IF ( i .LT. hi1 ) THEN
+	            alen = alen + 1
+	            line_buff(alen:alen) = tab_or_comma
+	         ENDIF
+ 330	      CONTINUE
+	
+ 331	      CALL SPLIT_LIST(pttmode_explct, list_lun,
      .				line_buff(:alen), alen )
 
+	   ENDIF  ! skipped if heading turned off
+
+* As for non-comma or -tab listings, turn off these labels if /norow was given
+
 	   DO 350 n = lo6, hi6, del6
 * ... label the block of blocks (6th dimension)
-	      IF ( ndim .GE. 6 .AND. valid(6) ) THEN
+	      IF ( ndim .GE. 6 .AND. valid(6) .AND. 
+     .               (.NOT.norow) ) THEN
 	         CALL POS_LAB( l, cx, perm(6),
      .			    ndig(perm(6)), line_buff, alen )
 	         CALL SPLIT_LIST(pttmode_explct, list_lun,
@@ -636,7 +658,8 @@
 	      ENDIF
 	   DO 350 m = lo5, hi5, del5
 * ... label the block of blocks (5th dimension)
-	      IF ( ndim .GE. 5 .AND. valid(5) ) THEN
+	      IF ( ndim .GE. 5 .AND. valid(5) .AND. 
+     .               (.NOT.norow) ) THEN
 	         CALL POS_LAB( l, cx, perm(5),
      .			    ndig(perm(5)), line_buff, alen )
 	         CALL SPLIT_LIST(pttmode_explct, list_lun,
@@ -644,7 +667,8 @@
 	      ENDIF
 	   DO 350 l = lo4, hi4, del4
 * ... label the block of blocks (4th dimension)
-	      IF ( ndim .GE. 4 .AND. valid(4) ) THEN
+	      IF ( ndim .GE. 4 .AND. valid(4) .AND. 
+     .               (.NOT.norow) ) THEN
 	         CALL POS_LAB( l, cx, perm(4),
      .			    ndig(perm(4)), line_buff, alen )
 	         CALL SPLIT_LIST(pttmode_explct, list_lun,
@@ -652,7 +676,8 @@
 	      ENDIF
 	   DO 350 k = lo3, hi3, del3
 * ... label a single block (3rd dimension)
-	      IF ( ndim .GE. 3 .AND. valid(3) ) THEN
+	      IF ( ndim .GE. 3 .AND. valid(3) .AND. 
+     .               (.NOT.norow) ) THEN
 	         CALL POS_LAB( k, cx, perm(3),
      .			       ndig(perm(3)), line_buff, alen )
 	         CALL SPLIT_LIST(pttmode_explct, list_lun,
@@ -661,26 +686,40 @@
 	   DO 350 j = lo2, hi2, del2
 	      IF ( interrupted ) RETURN
 * ...  create label for this row
-	         IF ( ndim .GE. 2 .AND. valid(2) ) THEN
+	         IF ( ndim .GE. 2 .AND. valid(2) .AND. 
+     .               (.NOT.norow) ) THEN
 	            CALL TRANSLATE_TO_WORLD
      .		      ( TM_WORLD( j, grid, col_ax, box_middle ),
      .			col_ax, grid, ndig(col_ax), line_buff(:16) )
 	            alen = TM_LENSTR1(line_buff(:16))
-	         ELSE	! 1D row-only (will this ever happen?)
-	            line_buff(1:5) = 'row 1'	
-	            alen = 5
+	         ELSE	! 1D row-only 
+	            line_buff(1:5) = ''	
+	            alen = 0
 	         ENDIF
 * ...  and append the values for this row
 	         DO 340 i = lo1, hi1, del1
 	            IF ( itsa_string ) THEN
-	               line_buff = line_buff(:alen)//tab_or_COMMA//
+	               IF (alen.GT.0) THEN
+		          line_buff = line_buff(:alen)//tab_or_COMMA//
      .			GET_STRING_ELEMENT(
      .			m1lox,m1hix,m1loy,m1hiy,m1loz,m1hiz,m1lot,m1hit,
      .			m1loe,m1hie,m1lof,m1hif,grid_data,i,j,k,l,m,n,
      .			max_line_len,vlen )
+	               ELSE 
+		          line_buff = GET_STRING_ELEMENT(
+     .			m1lox,m1hix,m1loy,m1hiy,m1loz,m1hiz,m1lot,m1hit,
+     .			m1loe,m1hie,m1lof,m1hif,grid_data,i,j,k,l,m,n,
+     .			max_line_len,vlen )
+	               ENDIF
+
 	            ELSE
-	               line_buff = line_buff(:alen)//tab_or_COMMA//
+	               IF (alen.GT.0) THEN
+		          line_buff = line_buff(:alen)//tab_or_COMMA//
      .			TM_FMT(grid_data(i,j,k,l,m,n),prec_digits,16,vlen)
+	               ELSE
+		          line_buff = 
+     .			TM_FMT(grid_data(i,j,k,l,m,n),prec_digits,16,vlen)
+	               ENDIF
 	            ENDIF
 	            alen = alen+vlen+1
 	            IF ( alen .GT. max_line_len ) THEN
@@ -867,8 +906,9 @@
 *       create carefully sized label for this row
 	         IF ( ndim .GE. 2 .AND. valid(2) .AND. 
      .               (.NOT.norow) ) THEN
+                    val8 = TM_WORLD( j, grid, col_ax, box_middle )
 	            CALL TRANSLATE_TO_WORLD
-     .		      ( TM_WORLD( j, grid, col_ax, box_middle ),
+     .		      ( val8,
      .			col_ax, grid, col_dec, line_buff(:row_wld) )
 	            WRITE ( line_buff(row_wld+1:cleft), row_ss_fmt ) j
 	         ENDIF
diff --git a/fer/gnl/list_multi.F b/fer/gnl/list_multi.F
index 0f9ba7a..2ae8996 100644
--- a/fer/gnl/list_multi.F
+++ b/fer/gnl/list_multi.F
@@ -1,4 +1,4 @@
-	SUBROUTINE LIST_MULTI( memory, mr_list, cx_list,
+	SUBROUTINE LIST_MULTI(  mr_list, cx_list,
      .			       heading, perm, wsize, work, status )
 
 *
@@ -52,7 +52,7 @@
 * calling argument declarations:
 	LOGICAL	heading
 	INTEGER	mr_list(*), cx_list(*), perm(nferdims), wsize, status
-	REAL	memory(*), work(0:wsize)
+	REAL	work(0:wsize)
 	
 * internal variable declarations:
 	INTEGER ws
@@ -62,14 +62,14 @@
 *	work(0)	     is xact_range(nvar)
 *	work(ws)     is has_size(nferdims,nvar)
 *	work(7*ws)   is bad(nvar)
-*	work(8*ws)   is pt_blk(nvar)
+*	work(8*ws)   is pt_blk(nvar)   (not used after 2/12 changes)
 *	work(9*ws)   is size(nferdims,nvar)
 *	work(15*ws)  is msize(nvar)
 *	work(16*ws)  is width(nvar)
 *	work(17*ws)  is out(nvar)
 
 	ws = wsize / (2*nferdims+6)
-	CALL LIST_MULTI_SUB(memory,mr_list,cx_list,heading,perm, ws,
+	CALL LIST_MULTI_SUB(mr_list,cx_list,heading,perm, ws,
      .			work(0),     work(ws),   work(7*ws),
      .			work(8*ws),  work(9*ws), work(15*ws),
      .			work(16*ws), work(17*ws),
diff --git a/fer/gnl/list_multi_sub.F b/fer/gnl/list_multi_sub.F
index 9c4c49b..4cce2fb 100644
--- a/fer/gnl/list_multi_sub.F
+++ b/fer/gnl/list_multi_sub.F
@@ -1,4 +1,4 @@
-	SUBROUTINE LIST_MULTI_SUB(memory, mr_list,cx_list,heading,
+	SUBROUTINE LIST_MULTI_SUB( mr_list,cx_list,heading,
      .				  perm,ws,xact_range, has_size, bad,
      .				  pt_blk, size, msize, width, out,
      .				  status)
@@ -85,6 +85,7 @@
 *                    spreadsheets, so the user wants the missing flags in there.
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 * V691+ *acm* 9/14 Ticket 2199: for string variables don't list a BAD FLAG in the header.
+* V702: *sh*  2/17 Dynamic memory management (pt_blk no longer used)
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -111,7 +112,6 @@
 	LOGICAL	heading
 	INTEGER	mr_list(num_uvars_in_cmnd), cx_list(num_uvars_in_cmnd),
      .		perm(nferdims), ws, status
-	REAL	memory( mem_blk_size, max_mem_blks )
 * ... work arrays ...
 	LOGICAL		xact_range(ws), has_size(nferdims,ws)
 	INTEGER		pt_blk(ws), size(nferdims,ws), msize(ws), width(ws)
@@ -128,7 +128,7 @@
      .			w0, w, data_len, nleft, nright, alen, blen,
      .			idim, vlen, cleft, col_ax, col_dec,
      .			cx, slen1, slen2, slen3, i, 
-     .			ivar, point, word, block, iwd, iblk, dset, ax, new_ax,
+     .			ivar, point, iwd, dset, ax, new_ax,
      .			min_width, row_ww_wid, lp, prec_digits, ww,
      .			lo(nferdims), hi(nferdims), del(nferdims), 
      .			pt(nferdims), valid_ax(nferdims)
@@ -286,7 +286,6 @@
 	   cx = cx_list(ivar)
 	   vcode(ivar)  = VAR_CODE( cx_category(cx), cx_variable(cx) )
 	   bad(ivar)    = mr_bad_data(  mr_list(ivar) )
-	   pt_blk(ivar) = mr_blk1( mr_list(ivar) )	
  50	CONTINUE
 
 * * * * * * WRITE INTRODUCTORY LINES * * * * *
@@ -378,7 +377,7 @@
 * Note: cannot direct user format to GUI because records may be
 * arbitrarily long
  200	IF ( do_unform .OR. list_format_given ) THEN
-	   point = -1                    ! bug fix 4/93
+	   point = 0
 	   DO 300 i6 = lo6, hi6, del6
 	   DO 300 i5 = lo5, hi5, del5
 	   DO 300 i4 = lo4, hi4, del4
@@ -388,15 +387,13 @@
 	      IF ( interrupted ) RETURN
 * default memory pointer for full-region variables
 	      point = point + 1
-	      block = point / mem_blk_size
-	      word  = point - block*mem_blk_size
 
 * loop through all variables for each record
 	      DO 250 ivar = 1, num_uvars_in_cmnd
 	         IF (mr_type(mr_list(ivar)) .EQ. ptype_string) GOTO 5040
 * ... optimized calculation for full-region variables
 	         IF ( xact_range(ivar) ) THEN
-	            out(ivar) = memory( word+1, pt_blk(ivar)+block ) 
+	            out(ivar) = memry(mr_list(ivar))%ptr(point)
 	         ELSE
 * ... separate pointer calcs for non-full region variables
 * ... e.g. a 2D field listed with a 3D will replicate at each 3rd-D location
@@ -406,9 +403,7 @@
 	            iwd = iwd*size(i,ivar)
 		    IF ( has_size(i,ivar) ) iwd = iwd + (pt(i)-lo(i))
  240	            CONTINUE
-	            iblk = iwd / mem_blk_size
-	            iwd  = iwd - iblk*mem_blk_size
-	            out(ivar) = memory( iwd+1, pt_blk(ivar)+iblk ) 
+	            out(ivar) = memry(mr_list(ivar))%ptr(iwd+1)
 	         ENDIF
  250	      CONTINUE
 	      IF ( do_unform ) THEN
@@ -441,9 +436,9 @@
 	   IF ( mr_type(mr_list(ivar)) .EQ. ptype_string ) THEN
 	       nleft = GET_MAX_STRING_LEN(cx_list(ivar),
      .					  mr_list(ivar),
-     .					  memory(1,pt_blk(ivar)) )
+     .					  memry(mr_list(ivar))%ptr )
 	   ELSE 
-	      CALL MINMAX( memory(1,pt_blk(ivar)), msize(ivar),
+	      CALL MINMAX( memry(mr_list(ivar))%ptr, msize(ivar),
      .			   bad(ivar), small, big )
 	      all_bad = small .EQ. arbitrary_large_val4
 
@@ -538,7 +533,7 @@
 * If the /NOROWLAB qualifier was given, do not do the "coord/sub:" on each data line
 
  3050   FORMAT (1X,4('-'),1X,A)
-	point = -1                    ! bug fix 4/93
+	point = -1
 	DO 600 i6 = lo6, hi6, del6
 * label the block of block of blocks (6th dimension)
 	   risc_buff = ' '
@@ -608,8 +603,6 @@
 
 * default memory pointer for full-region variables
 	   point = point + 1
-	   block = point / mem_blk_size
-	   word  = point - block*mem_blk_size
 
 * loop through all variables for each record
            ww = w0 + 1
@@ -665,7 +658,7 @@
 * ... numerical variable
 * ... optimized calculation for full-region variables
 	        IF ( xact_range(ivar) ) THEN
-	           out(ivar) = memory( word+1, pt_blk(ivar)+block ) 
+	           out(ivar) = memry(mr_list(ivar))%ptr(point+1)
 	        ELSE
 * ... separate pointer calcs for non-full region variables
 * ... e.g. a 2D field listed with a 3D will replicate at each 3rd-D location
@@ -675,9 +668,7 @@
 	           iwd = iwd*size(i,ivar)
 	           IF ( has_size(i,ivar) ) iwd = iwd + (pt(i)-lo(i))
  540	           CONTINUE
-	           iblk = iwd / mem_blk_size
-	           iwd  = iwd - iblk*mem_blk_size
-	           out(ivar) = memory( iwd+1, pt_blk(ivar)+iblk ) 
+	           out(ivar) = memry(mr_list(ivar))%ptr(iwd+1)
 	        ENDIF
 	        IF ( out(ivar) .EQ. bad(ivar) ) THEN
                    IF (do_comma_del .OR. do_tab_del) THEN
diff --git a/fer/gnl/ok_as_agg_var.F b/fer/gnl/ok_as_agg_var.F
index 052c7b0..6c30141 100644
--- a/fer/gnl/ok_as_agg_var.F
+++ b/fer/gnl/ok_as_agg_var.F
@@ -43,6 +43,8 @@
 *
 * V698 12/15 *sh* extracted from init_ef_aggregate_dset.F
 * V698  4/16 *sh* already used agg axis ok as long as scalar span (typ "@ave")
+* 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 
 
 * arguments:
 * inputs:
@@ -150,7 +152,7 @@
 	      GOTO 5000
 	   ELSE
 	      IF (cat .EQ. cat_user_var) THEN
-	         grid = uvar_grid(var, member)
+	         CALL GET_SAVED_UVAR_GRID(var, member, grid)
 	      ELSE			! cat_file, cat_agg_e, or cat_agg_f
 	         grid = ds_grid_number(var)
 	      ENDIF
diff --git a/fer/gnl/parse_command.F b/fer/gnl/parse_command.F
index 38fcedb..7ba0db9 100644
--- a/fer/gnl/parse_command.F
+++ b/fer/gnl/parse_command.F
@@ -1,4 +1,4 @@
-	SUBROUTINE PARSE_COMMAND ( memory, cmnd_buff,
+	SUBROUTINE PARSE_COMMAND (  cmnd_buff,
      .				   max_words, max_quals,
      .				   cmnd_len, cmnd_num, subcmnd_num,
      .				   num_quals, qualifier_list,
@@ -137,6 +137,7 @@
 *                  start of command on an error
 * 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
 
 * command, subcommand and qualifiers will be identified by number in
 *	 COMMON/XCOMMAND.  Arguments will be returned as positions in
@@ -161,7 +162,6 @@
 
 * declare calling arguments of SUBROUTINE
 	LOGICAL		reverify, arg1_quoted
-	REAL		memory(*)
 	CHARACTER*(*)	cmnd_buff
 	INTEGER		max_words,max_quals,cmnd_len,cmnd_num,subcmnd_num,
      .			num_quals,qualifier_list(max_quals),
@@ -211,7 +211,7 @@
 #else
 	PARAMETER     ( tab = CHAR(9) )
 #endif
-        PARAMETER ( grave_digits = 7 )
+        PARAMETER ( grave_digits = 16 )
 
 * intialize
 	grave_start	= 1
@@ -991,7 +991,7 @@ cc  Allow zero-length null string in quotes
 	      grave_end = cmnd_len
 	   ENDIF
            apply_cx = its_action_command(cmnd_num)
-	   CALL REPL_EXPRNS( memory, cmnd_buff, cmnd_len,
+	   CALL REPL_EXPRNS(  cmnd_buff, cmnd_len,
      .			     apply_cx, grave_start, grave_end,
      .                       grave_digits, subst, status  )
 	   IF ( status .NE. ferr_ok ) GOTO 5000	
diff --git a/fer/gnl/repl_exprns.F b/fer/gnl/repl_exprns.F
index 328941b..35d8e82 100644
--- a/fer/gnl/repl_exprns.F
+++ b/fer/gnl/repl_exprns.F
@@ -1,4 +1,4 @@
-	SUBROUTINE REPL_EXPRNS( memory, cmnd, lencmnd, cmnd_num,
+	SUBROUTINE REPL_EXPRNS(  cmnd, lencmnd, cmnd_num,
      .				istart, max_check,
      .				digits, did_sub, status  )
 
@@ -119,6 +119,9 @@
 * v695 *acm* 5/16 Ticket 2389. When the user gives `var,prec=xx`, return the acutal number
 *                 of digits requested. Return exponential formats when that makes the
 *                 result shorter. Changes are only for positive values of ,prec=
+* 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 
 
 #include "netcdf.inc"
 	include 'tmap_dims.parm'
@@ -137,27 +140,26 @@
 * calling argument declarations:
 	LOGICAL	  did_sub, info_query, itsa_subsc, apply_cx
 	INTEGER	  cmnd_num, lencmnd, istart, max_check, digits, status
-	REAL	  memory( mem_blk_size, max_mem_blks )
 	CHARACTER cmnd*(*)
 
 * local parameter declarations 
 	INTEGER	   max_len
 	PARAMETER (max_len = 2048)
-!	INTEGER	   fmt_lenH
-!	PARAMETER (fmt_len = 64 )
 
 * internal variable declarations:
 	LOGICAL   need_formatting, zero_fill, coordvar,
      .            do_err, do_eval, get_ready, was_dep, const_arr_var,
-     .		  dqote, DQ, orig_name, user_prec
+     .		  dqote, DQ, orig_name, user_prec, uvgrid, compressed
 	INTEGER   CGRID_SIZE, CGRID_AXIS, TM_LENSTR1, CX_DIM_LEN,
      .		  FIND_DSET_NUMBER, GET_ABSTRACT_LINE, TM_LENSTR,
+     .		  TM_GET_GRIDNUM, GRID_FROM_NAME, TM_SUBSC, 
      .		  str_len, lenbuff, iend, itmp, axis,
-     .		  mr, cx, mr_temp, i, i2, use_digits, true_end,
+     .		  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, 
-     .            attid, ieq, base_isp, base_cx, cat, var
+     .            attid, ieq, base_isp, base_cx, cat, var, uvar,  
+     .            i1ss, inss, grid, ucode
 	REAL	  result, val
 	REAL*8 TM_WORLD, TM_WW_AXLEN, ww
 	CHARACTER TM_FMT*28, TM_FMT_USER*28, LEFINT*16, VAR_TITLE*(max_len),
@@ -370,7 +372,7 @@
 *   given expression.
 	   IF (repl(1:4).EQ. 'STAT' .OR. repl(1:4) .EQ. 'ISRE') THEN
 	      get_ready = repl(1:4) .EQ. 'ISRE'
-	      CALL GET_DEPENDENCY_STATUS(memory, cmnd(istart:iend),
+	      CALL GET_DEPENDENCY_STATUS( cmnd(istart:iend),
      .					 repl, str_len, status) 
 	      CALL EXIT_DEPENDENCY_MODE
               IF (status.NE. ferr_ok) GOTO 5050
@@ -716,7 +718,7 @@
 		    do_eval = (do_eval .OR. 
      .	                 CGRID_AXIS(idim, cx) .EQ. GET_ABSTRACT_LINE(idim) )
 	            IF ( do_eval .OR. has_uvar_gc .OR. is_uvar_const) THEN
-	               CALL EVAL_EXPR ( memory, cx_last,
+	               CALL EVAL_EXPR (  cx_last,
      .		                     cmnd(istart:iend), apply_cx, status )
 	               IF ( status .NE. ferr_ok ) GOTO 5000
 	               cx = is_cx(1)	! always comes back as the first context
@@ -729,7 +731,7 @@
 * nominal length of the abstract axis. This should not be a performance problem.
 
               CALL ISIT_CONST_ARR_VAR ( cx, const_arr_var, status )
-              IF (const_arr_var) CALL EVAL_EXPR ( memory, cx_last,
+              IF (const_arr_var) CALL EVAL_EXPR (  cx_last,
      .		                     cmnd(istart:iend), apply_cx, status )
 
 	   ENDIF
@@ -750,8 +752,32 @@
 	      str_len = 0
 	      DO 210 idim = 1, nferdims
 	         IF ( CX_DIM_LEN( idim, cx ) .GT. 1 ) THEN
-	            str_len = str_len + 1
-	            repl(str_len:str_len) = ww_dim_name(idim)
+		    
+	         grid = GRID_FROM_NAME ( cmnd(istart:iend), cx, status )
+		    
+* Getting details about the grid of a user-variable
+
+		    i1 = TM_GET_GRIDNUM( cmnd(istart:iend) )
+		    uvgrid = (i1 .EQ. unspecified_int4 )
+		    uvar = -1
+		    IF (uvgrid) uvar = is_uvar(isp)
+
+		    compressed = .FALSE.
+		    IF ( uvar_given(idim,uvar) .EQ. uvlim_gvn_xact)  THEN
+		       IF (uvar_lo_ss(uvar, idim) .NE. unspecified_int4) THEN
+		          i1ss = uvar_lo_ss(uvar, idim)
+		          inss = uvar_hi_ss(uvar, idim)
+		       ELSE
+		          i1ss = TM_SUBSC ( uvar_lo_ww(idim, uvar), grid, idim, -1 )
+		          inss = TM_SUBSC ( uvar_hi_ww(idim, uvar), grid, idim, -1 )
+		       ENDIF
+	               compressed = (i1ss .NE. inss) 
+		    ENDIF
+
+		    IF (.NOT.compressed) THEN
+	               str_len = str_len + 1
+	               repl(str_len:str_len) = ww_dim_name(idim)
+	            ENDIF
 	         ENDIF
  210	      CONTINUE
 	      IF (str_len .EQ. 0) THEN
@@ -881,7 +907,7 @@
 
 *  evaluate expr to get type and translate ferret type to netcdf
 
-	         CALL EVAL_EXPR ( memory, cx_last,
+	         CALL EVAL_EXPR (  cx_last,
      .		                     cmnd(istart:iend), apply_cx, status )
 	         IF ( status .NE. ferr_ok ) GOTO 5000
                  fertype = cx_type(cx)
@@ -1064,6 +1090,18 @@
 	           repl = line_units( axis )
 	         ENDIF
 	         need_formatting = .FALSE.
+
+* Get the units attribute from the dataset. 
+* User-defined true-month axes are shown in days.
+	         IF ( repl(1:8) .EQ. "TRUMONTH") THEN
+	            dset = cx_data_set( cx )
+		    aname = 'days'
+c	            IF (dset .GT. pdset_irrelevant) THEN
+c	               CALL GET_ORIGINAL_UNITS (dset, cx_grid(cx), aname, ucode)
+c	               IF (ucode .NE. 0) repl = aname
+c		    ENDIF
+		 ENDIF
+
 	      ELSE
 	         GOTO 5520
 	      ENDIF
@@ -1091,7 +1129,7 @@
 	ELSE
 * single number answer desired
 * ... evaluate the expression
-	   CALL EVAL_EXPR ( memory, cx_last, cmnd(istart:iend), 
+	   CALL EVAL_EXPR (  cx_last, cmnd(istart:iend), 
      .        .TRUE., status )
 	   IF ( status .NE. ferr_ok ) GOTO 5000
 	   cx = is_cx(1)	! always comes back as the first context
@@ -1103,8 +1141,8 @@
 * ... extract the result scalar from the (possibly larger) memory variable
 	   CALL CREATE_TEMP_MEM_VAR( cx, mr_temp, status )
 	   IF ( status .NE. ferr_ok ) RETURN
-	   CALL COPY_GRID( memory(1, mr_blk1(mr)     ), mr,
-     .                     memory(1, mr_blk1(mr_temp)), mr_temp )
+	   CALL COPY_GRID( memry(mr)%ptr, mr,
+     .                     memry(mr_temp)%ptr, mr_temp )
 
 	   IF (mr_type(mr_temp) .EQ. ptype_string ) THEN
 
@@ -1116,7 +1154,7 @@
      .				mr_lo_s4(mr_temp), mr_hi_s4(mr_temp),
      .				mr_lo_s5(mr_temp), mr_hi_s5(mr_temp),
      .				mr_lo_s6(mr_temp), mr_hi_s6(mr_temp),
-     .				memory(1, mr_blk1(mr_temp)),
+     .				memry(mr_temp)%ptr,
      .				cx_lo_s1(cx), cx_lo_s2(cx),
      .				cx_lo_s3(cx), cx_lo_s4(cx),
      .				cx_lo_s5(cx), cx_lo_s6(cx),
@@ -1127,7 +1165,7 @@
 *      Ticket 2389: TM_FMT_USER applies use_digits more strictly 
 *      than TM_FMT, returns results of exponentials more consistently. 
 
-	     result =  memory(1, mr_blk1(mr_temp))
+	     result =  memry(mr_temp)%ptr(1)
 	     IF ( result .EQ. mr_bad_data(mr) ) THEN
 	        repl = bad_str
 	        str_len = TM_LENSTR1(bad_str)
@@ -1181,7 +1219,7 @@
 	RETURN
 
 * error exits
- 5050	CALL RELEASE_WORK_SPC
+ 5050	CALL RELEASE_DYN_WORK_SPACE
  5000   RETURN
  5100	risc_buff = cmnd(:lencmnd)
 	CALL ERRMSG( ferr_syntax, status,
diff --git a/fer/gnl/sample.F b/fer/gnl/sample.F
deleted file mode 100644
index 660f651..0000000
--- a/fer/gnl/sample.F
+++ /dev/null
@@ -1,321 +0,0 @@
-	SUBROUTINE SAMPLE( memory, mr_list, cx_list, nvars,
-     .			   opt1_string, opt2_string, file_given,
-     .			   fname, fmt, binary, columns, 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. 
-*
-*
-* sample the given field at the specified XYZT coordinates
-* opt1_string contains special instructions
-*	"FILL" indicates to fill holes when the field contains missing values
-* opt2_string contains flags to indicate if the coordinates are given as
-*	world positions (C=Coordinate) or subscripts (I=index)
-
-*  USER/COMMAND=SAMPLE/OPT1=FILL,STANDARD_BAD/OPT2=CCII/FILE=outfile/FORM=(F10)
-
-* The format may be a FORTRAN FORMAT or "UNFORMATTED", or,
-* "UNFORMATTED:columns" - the latter produces condensed output (results, only)
-
-* Each output record will consist of
-*	value xcoord ycoord zcoord tcoord code
-* where "code" is 0=fully successful
-*		  1=successful with hole filling
-*              -1-4=failed due to beyond input data limits on axis -code
-*		 -9=failed due to hole in input data field
-*		-99=failed due to hole in input coordinates
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-
-* V301:  1/94
-*
-* V312: 5/94 - array "memory" as a calling argument
-* V314: 8/22/94 *kob* IBM port: 1) ACCESS=APPEND not allowed in file opens - added
-*				   ifdef NO_ACCESS_APPEND check
-*				2) TM_HAS_STRING incorrectly defined as INTEGER
-*				3) inherited length string concats are not legal -
-*					use risc buff
-* Linux Port 5/97 *kob* - had to add ifdef F90_OPEN_FILE_APPEND because f90
-*			  uses "POSITION" instead of "ACCESS" to specify 
-*			  opening a file for append.
-* v552  4/03 *acm* up VAR_TRANS to 150 characters (variables are up to 128, plus
-*                  space for the transformation specifier)
-*       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
-* V69+ *acm*  9/14 Ticket 1758. Memory request uses number of blocks not words
-
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'errmsg.parm'
-	include 'xvariables.cmn'
-	include 'xcontext.cmn'
-	include 'xprog_state.cmn'
-	include 'xtext_info.cmn'
-#ifdef NO_PASSED_CONCAT	
-	include 'xrisc.cmn'
-#endif
-
-* calling argument declarations:
-	LOGICAL	file_given, binary
-	INTEGER	nvars, mr_list(nvars), cx_list(nvars), columns, status
-	REAL	memory( mem_blk_size, max_mem_blks )
-	CHARACTER opt1_string*(*), opt2_string*(*), fname*(*), fmt*(*)
-
-* internal variable declarations:
-	LOGICAL	fill, standard_bad, tempx, tempy, tempz, tempt,
-     .		TM_HAS_STRING
-	INTEGER	TM_LENSTR1, CGRID_SIZE, STR_UPCASE,
-     .		CX_DIM_LEN,
-     .		mblk1, nblks, grid_blocks, col_mblk1, col_nblks, slen,
-     .		ssorww(4), out_lun,
-     .		i, flen, fmlen, npts, cx, ndim, dim(4), cxpts(2:5)
-	REAL	missing
-	CHARACTER VAR_TRANS*150, buff*150
-	
-* internal parameter definitions
-	INTEGER by_ss, by_ww, by_nothin
-	PARAMETER ( by_ss=1, by_ww=2, by_nothin=0 )
-
-* DECODE THE OPT1 COMMAND QUALIFIER:
-* /OPT1 = "FILL,STANDARD_BAD"
-	slen = TM_LENSTR1( opt1_string )
-	fill = TM_HAS_STRING(opt1_string(:slen),'FILL')
-	standard_bad = TM_HAS_STRING(opt1_string(:slen),'STANDARD')
-	IF ( .NOT.fill .AND. .NOT.standard_bad .AND. opt1_string.NE.' ' 
-     .	.AND. .NOT.TM_HAS_STRING(opt1_string(:slen),'HOLE') ) GOTO 5100
-
-* Must be exactly 5 arguments given
-* arguments 2-5 must be either same size or constants
-	IF ( nvars .NE. 5 ) GOTO 5200
-	npts = unspecified_int4
-	DO 100 i = 2, 5
-	   cx = cx_list(i)
-	   CALL GET_CX_DIMS( cx, ndim, dim ) 
-	   cxpts(i) = CGRID_SIZE( cx )	
-	   IF ( cxpts(i) .NE. 1 ) THEN
-	      IF ( npts .EQ. unspecified_int4 ) npts = cxpts(i)
-	      IF ( npts .NE. CGRID_SIZE( cx ) ) GOTO 5300
-	   ENDIF
- 100	CONTINUE
-	IF ( npts .EQ. unspecified_int4 ) npts = 1
-	
-* determine what to output for missing data points
-	IF ( standard_bad ) THEN
-	   missing = bad_val4
-	ELSE
-	   missing = mr_bad_data(mr_list(1))
-	ENDIF
-
-* Decode the specification of subscript or world coordinate
-* /OPT2 = "C" (all coordinates) or "I" (all indices) or "CCIN", ...
-	DO 200 i = 1, nferdims
- 200	ssorww(i) = by_ww			! default to "C"
-	IF ( opt2_string .NE. ' ' ) THEN
-	   i = STR_UPCASE( opt2_string, opt2_string )
-	   slen = TM_LENSTR1( opt2_string )
-	   IF ( slen.NE.1 .AND. slen.NE.4 ) GOTO 5400
-	   IF ( slen.EQ.1 ) THEN     ! replicate single char shorthand
-	      DO 210 i = 2, nferdims
- 210	      opt2_string(i:i) = opt2_string(1:1)
-	   ENDIF
-	   DO 220 i = 1, nferdims
-	      IF ( opt2_string(i:i) .EQ. 'C' ) THEN
-	         ssorww(i) = by_ww
-	      ELSEIF ( opt2_string(i:i) .EQ. 'I' ) THEN
-	         ssorww(i) = by_ss
-	      ELSEIF ( opt2_string(i:i) .EQ. 'N' ) THEN
-	         ssorww(i) = by_nothin
-	      ELSE
-	         GOTO 5400
-	      ENDIF
- 220	   CONTINUE
-	ENDIF
-
-* narrow the ssorww choices if only a bad_flag was given for a coord
-	DO 250 i = 2,5
-	   IF ( cxpts(i).EQ.1 .AND. ( memory(1,mr_blk1(mr_list(i)))
-     .		.EQ. mr_bad_data(mr_list(i)) )  ) ssorww(i-1) = by_nothin
- 250	CONTINUE
-
-* make sure the field of data provided doesn't create ambiguities on the
-* unsampled axes  (i.e. multiple points provided but no sampling coordinates)
-	cx = cx_list(1)
-	DO 300 i = 1, nferdims
-	   IF ( ssorww(i) .EQ. by_nothin
-     .	   .AND. CX_DIM_LEN(i, cx) .GT. 1 ) GOTO 5500
- 300	CONTINUE	
-
-* make sure there is no attempt to sample on a normal axis
-	DO 400 i = 1, nferdims
-	   IF ( ssorww(i) .NE. by_nothin
-     .	   .AND. cx_lo_ss(cx,i) .EQ. unspecified_int4 ) GOTO 5700
- 400	CONTINUE	
-
-* insert the default filename based on format type
-* or prepare for terminal output
-	IF ( file_given ) THEN
-	   IF ( fname .EQ. ' ' ) THEN
-	      IF ( binary ) THEN
-	         fname = 'fer_sample.unf'
-	      ELSE
-	         fname = 'fer_sample.dat'
-	      ENDIF
-	   ENDIF
-	ENDIF
-	IF ( .NOT.binary .AND. fmt.EQ.' ' )
-     .			fmt = '(5(1PG14.6),0PF5.0)'   ! "0P" for DEC bug
-	flen = TM_LENSTR1( fname )
-	fmlen = TM_LENSTR1( fmt )
-
-* allocate memory for consolidated 6D coordinates
-
-
-* COMPUTE # BLOCKS NEEDED
- 
-	grid_blocks = ( npts*nferdims + mem_blk_size - 1 ) / mem_blk_size
-
-	CALL GET_MEMORY( npts*nferdims, grid_blocks, mblk1, nblks, status )
-	IF ( status .NE. ferr_ok ) GOTO 5000
-
-* allocate memory for output record buffer if needed
-	IF ( columns .GT. 0 ) THEN
-	   grid_blocks = ( columns + mem_blk_size - 1 ) / mem_blk_size
-	   CALL GET_MEMORY( columns, grid_blocks, col_mblk1, col_nblks, status )
-	   IF ( status .NE. ferr_ok ) GOTO 5000
-	ELSE
-	   col_mblk1 = 1	! dummy, unused
-	ENDIF
-
-* Open the output file
-	IF ( file_given ) THEN
-	   IF ( fmt .EQ. ' ' ) THEN
-	      OPEN( UNIT        = default_list_lun,
-     .              FILE        = fname,
-     .              FORM        = 'UNFORMATTED',
-#ifdef NO_ACCESS_APPEND	
-#else
-#ifdef F90_OPEN_FILE_APPEND
-     .		    POSITION    = 'APPEND',
-#else
-     .              ACCESS      = 'APPEND',
-#endif
-#endif
-     .              STATUS      = 'UNKNOWN',
-     .              ERR         = 5600 )
-!	      WRITE (ttout_lun, 3000) 'binary', fname(:flen)
-	   ELSE
-	      OPEN( UNIT        = default_list_lun,
-     .              FILE        = fname,
-     .              FORM        = 'FORMATTED',
-#ifdef NO_ACCESS_APPEND	
-#else
-#ifdef F90_OPEN_FILE_APPEND
-     .		    POSITION    = 'APPEND',
-#else
-     .              ACCESS      = 'APPEND',
-#endif
-#endif
-     .              STATUS      = 'UNKNOWN',
-     .              ERR         = 5600 )
-!	      WRITE (ttout_lun, 3000) 'ASCII', fname(:flen)
-	   ENDIF
-! 3000	   FORMAT (' Sampled output is in ',A,' file ',A)
-	   out_lun = default_list_lun
-	ELSE
-	   out_lun = ttout_lun
-	ENDIF
-
-* call the SAMPLing work routine
-	CALL SAMPLE_SUB( memory, cx_list(2), mr_list(2), npts, cxpts,
-     .	memory(1, mr_blk1(mr_list(1))), mr_list(1), cx_list(1),
-     .	missing,
-     .	memory(1, mblk1), memory(1, col_mblk1), 
-     .  fmt(1:fmlen), fill, ssorww,
-     .	out_lun, binary, columns, status )
-     
-* close the output file
-	IF ( file_given ) CLOSE(UNIT=out_lun, ERR=5600)
-
-* cleanup
- 1000	CALL FREE_MEMORY( mblk1, nblks )
-	IF ( columns .GT. 0 ) THEN
-	   CALL FREE_MEMORY( col_mblk1, col_nblks )
-	ENDIF
-	RETURN
-
-* error exits
- 5000	RETURN
-#ifdef NO_PASSED_CONCAT
- 5100	risc_buff = opt1_string(:slen)
-	CALL ERRMSG( ferr_invalid_command, status,
-     .		    '/OPT1='//risc_buff//pCR//
-     .		    'May be "FILL" or "HOLES" with "STANDARD_BAD"',
-     .		     *5000 )
-#else
- 5100	CALL ERRMSG( ferr_invalid_command, status,
-     .		    '/OPT1='//opt1_string(:slen)//pCR//
-     .		    'May be "FILL" or "HOLES" with "STANDARD_BAD"',
-     .		     *5000 )
-#endif
- 5200	CALL ERRMSG( ferr_invalid_command, status,
-     .		    'arguments must be field,xpts,ypts,zpts,tpts', *5000 )
- 5300	CALL ERRMSG( ferr_invalid_command, status,
-     .		    '# of X,Y,Z, and T coordinates must each be same or 1',
-     .		    *5000 )
-#ifdef NO_PASSED_CONCAT
- 5400   risc_buff = opt2_string(:slen)
-	CALL ERRMSG( ferr_invalid_command, status,
-     .   '/OPT2='//risc_buff//pCR//
-     .   'Must be xxxx - 4 letters of "C"(coord),'
-     .   //' "I"(index) or "N"(N/A)',
-     .		    *5000 )
-#else
- 5400	CALL ERRMSG( ferr_invalid_command, status,
-     .   '/OPT2='//opt2_string(:slen)//pCR//
-     .   'Must be xxxx - 4 letters of "C"(coord),'
-     .   //' "I"(index) or "N"(N/A)',
-     .		    *5000 )
-#endif
- 5500	buff = VAR_TRANS(i, cx, slen )
-	CALL ERRMSG( ferr_invalid_command, status,
-     .  'Sampling of '//buff(:slen)//' is ambiguous on '//
-     .	ww_dim_name(i)//' axis', *5000 )
- 5600	CALL ERRMSG( ferr_erreq,status,fname,*1000 )
- 5700	buff = VAR_TRANS(i, cx, slen )
-	CALL ERRMSG( ferr_invalid_command, status,
-     .  'Attempt to sample normal '//ww_dim_name(i)//' axis of '//
-     .  buff(:slen), *5000 )
-
-	END
-
diff --git a/fer/gnl/sample_sub.F b/fer/gnl/sample_sub.F
deleted file mode 100644
index 4700313..0000000
--- a/fer/gnl/sample_sub.F
+++ /dev/null
@@ -1,346 +0,0 @@
-	SUBROUTINE SAMPLE_SUB(  memory, cx_list, mr_list, npts, cxpts,
-     .				field, mfield, cxfield, fill_value,
-     .				coords, out_buf,
-     .				fmt, fix_holes, ssorww,
-     .				out_lun, binary, columns, 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. 
-*
-*
-* sample the given field at the specified XYZTEF coordinates
-
-* Each output record will consist of
-*	value xcoord ycoord zcoord tcoord code
-* where "code" is 0=fully successful
-*		  1=successful with extrapolation
-*              -1-4=failed due to beyond input data limits on axis -code
-*		 -9=failed due to hole in input data field
-*		-99=failed due to hole in input coordinates
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-
-* V301:  1/94
-* V312: 5/94 - array "memory" as a calling argument
-* V541: 2/02 *sh* - added support for modilo lengths
-*       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
-
-	include 'tmap_dims.parm'
-	include 'xtm_grid.cmn_text'
-	external xgt_grid_data
-	include 'ferret.parm'
-	include 'errmsg.parm'
-	include 'xvariables.cmn'
-	include 'xcontext.cmn'
-	include 'xprog_state.cmn'
-	include 'xmem_subsc.cmn'
-
-* calling argument declarations:
-	LOGICAL fix_holes, binary
-	INTEGER	cx_list(4), mr_list(4), npts, cxpts(4), columns,
-     .		mfield, cxfield, ssorww(4), out_lun, status
-	REAL	memory( mem_blk_size, max_mem_blks )
-	REAL	coords(npts, 4), out_buf(columns), fill_value,
-     .		field( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit )
-	CHARACTER fmt*(*)
-
-* internal parameter definitions
-	INTEGER     by_ss, by_ww, by_nothin
-	PARAMETER ( by_ss=1, by_ww=2, by_nothin=0 )
-
-* internal variable declarations:
-	LOGICAL	extrapolate, condensed
-	INTEGER	TM_MODULO_LINE_DIM,
-     .		ii(4), di(4), ss(4,2), grid, idim, mr, mv_temp, ipt,
-     .		i, j, k, l, ix, jy, kz, lt, hi_surrnd(4), nbuf, llen,
-     .		nfix, ssfix(4,-1:1), ssp1(4), ssm1(4), line, lohi
-	REAL lin_fact(4), surrnd(2,2,2,2), result, missing, res_flag,
-     .		coord, missing_coord(4), sumfix
-	
-* equivalences
-	INTEGER ss_lo(4), ss_hi(4), ihi, jhi, khi, lhi
-	EQUIVALENCE (ss(1,1),ss_lo), (ss(1,2),ss_hi),
-     .		    (hi_surrnd(1), ihi), (hi_surrnd(2), jhi),
-     .		    (hi_surrnd(3), khi), (hi_surrnd(4), lhi)
-
-* *** INITIALIZE ***
-* background quantities
-	condensed = columns .GT. 0
-	nbuf = 0
-	missing = mr_bad_data(mfield)
-	grid = mr_grid(mfield)
-	DO 10 idim = 1, 4
- 10	missing_coord(idim) = mr_bad_data(mr_list(idim))
-
-* extract the 4 coordinate variables into a single 4D array
-	DO 100 idim = 1, 4
-	   mr = mr_list(idim)
-	   CALL CREATE_TEMP_MEM_VAR( cx_list(idim), mv_temp, status )
-	   IF ( status .NE. ferr_ok ) GOTO 5000
-	   CALL COPY_GRID(memory(1,mr_blk1(mr)),mr,
-     .		          coords(1,idim), mv_temp )
-	   CALL DELETE_VARIABLE( mv_temp )
- 100	CONTINUE
-
-* input sampling coordinates are a mix of single point and n point arrays
-* ... ii - sample coordinate pointers (increment by delta each loop)
-* ... di - delta for sample coordinate pointer (0 or 1)
-	DO 200 idim = 1, 4
-	   ii(idim) = 1
-	   IF ( cxpts(idim) .EQ. 1 ) THEN
-	      di(idim) = 0
-	   ELSE
-	      di(idim) = 1
-	   ENDIF
- 200	CONTINUE
-
-* prepare those axes on which there will be no interpolating
-* ... hi_surrnd - # of pts surrounding requested coord on each axis (1 or 2)
-* ... also preload the subscript limits to avoid redoing it npts times below
-	DO 210 idim = 1, 4
-	   IF ( ssorww(idim) .EQ. by_nothin ) THEN
-	      hi_surrnd(idim) = 1		! no interp on this axis
-	      ss_lo(idim) = cx_lo_ss(cxfield, idim)
-	      ss_hi(idim) = ss_lo(idim)			! needed to automate
-	      lin_fact(idim) = unspecified_int4		! not needed
-	   ELSE
-	      hi_surrnd(idim) = 2		! interpolate on this axis
-	      ss_lo(idim) = unspecified_int4
-	   ENDIF
- 210	CONTINUE
-
-* *** START OF LOOP OVER ALL SAMPLING POINTS ***
-	DO 2000 ipt = 1, npts
-
-* initialize next sample point
-	   res_flag = 0.
-
-* determine the lo and hi subscript bounds of the surrounding points
-* and the interpolation cooeficients for each axis
-	   DO 500 idim = 1, 4
-	      coord = coords(ii(idim), idim)
-	      IF ( ssorww(idim) .NE. by_nothin
-     .	     .AND. coord .EQ. missing_coord(idim) ) THEN
-	         res_flag = -idim
-	         result = fill_value
-	         GOTO 1000
-	      ELSEIF ( ssorww(idim) .EQ. by_ss ) THEN   ! e.g. j=55.2
-	         ss_lo(idim) = INT( coord )
-	         ss_hi(idim) = INT( coord + .99999 )
-	         lin_fact(idim) = ss_hi(idim) - coord
-	      ELSEIF ( ssorww(idim) .EQ. by_ww ) THEN
-	         CALL SS_NEIGHBORS( coord, grid, idim, extrapolate,
-     .				ss_lo(idim), ss_hi(idim), lin_fact(idim) )
-	         IF ( extrapolate ) THEN
-	            IF ( fix_holes ) THEN
-	               res_flag = 1.
-	            ELSE
-	               res_flag = -idim
-	               result = fill_value
-	               GOTO 1000
-	            ENDIF
-	         ENDIF
-	      ENDIF
- 500	   CONTINUE
-
-* check that all subscripts are within the given range of the field
-	   DO 600 idim = 1, 4
-	      IF ( ss_lo(idim) .LT. cx_lo_ss(cxfield, idim)
-     .	      .OR. ss_hi(idim) .GT. cx_hi_ss(cxfield, idim)
-     .        .OR. ss_lo(idim) .GT. ss_hi(idim)  ) THEN
-	         res_flag = -idim
-	         result = fill_value
-	         GOTO 1000
-	      ENDIF
- 600	   CONTINUE
-
-* pre-cleanse array if diagnostic testing in progress
-	   IF ( mode_diagnostic ) THEN
-	      DO 650 i = 1, ihi
-	      DO 650 j = 1, jhi
-	      DO 650 k = 1, khi
-	      DO 650 l = 1, lhi
- 650	      surrnd(i,j,k,l) = bad_val4
-	   ENDIF
-
-* assemble the 4-dimensional collection of surrounding points
-	   DO 700 i = 1, ihi
-	   DO 700 j = 1, jhi
-	   DO 700 k = 1, khi
-	   DO 700 l = 1, lhi
- 700	   surrnd(i,j,k,l) = field(ss(x_dim,i),
-     .				      ss(y_dim,j),
-     .				      ss(z_dim,k),
-     .				      ss(t_dim,l) )
-! diag	WRITE (6,'(A/,4(1PG15.6))') ' Surrounding: ',surrnd
-
-* check for missing values - try to fill them in if requested
-	   DO 850 l = 1, lhi
-	   DO 850 k = 1, khi
-	   DO 850 j = 1, jhi
-	   DO 850 i = 1, ihi
-	      IF ( surrnd(i,j,k,l) .EQ. missing ) THEN
-	         IF ( fix_holes ) THEN
-* ... Try to fill hole with the average of all surrounding values
-*     Procedure is to locate the subscripts surrounding the missing point
-*     that may contain valid data and to average all of the data found.
-*     The axes may be modulo - in which case wrap around the subscripts.
-*     The supplied data (context) may or may not provide the surrounding pts   
-	            nfix = 0
-	            sumfix = 0.0		
-	            DO 800 idim =  1, 4
-	            DO 800 lohi = -1, 1
- 800	            ssfix(idim,lohi) = ss(idim,i) + lohi
-	            DO 810 idim = 1, 4    	 ! modulo-based subscripts
-	               line = grid_line(idim,grid)
-	               llen = TM_MODULO_LINE_DIM(line)
-	               IF ( line.EQ.mnormal .OR. line.EQ.munknown ) GOTO 810
-	               IF ( line_modulo(line) ) THEN
-		          IF ( ssfix(idim,-1) .EQ. 0 )
-     .					ssfix(idim,-1) = llen
-		          IF ( ssfix(idim,+1) .GT. llen )
-     .					ssfix(idim,+1) = 1
-	               ENDIF
- 810	            CONTINUE
-	            DO 820 idim = 1, 4		! check context limits
-	               IF (ssfix(idim,-1).LT.cx_lo_ss(cxfield,idim)
-     .		       .OR.ssfix(idim,-1).GT.cx_hi_ss(cxfield,idim) ) THEN
-	                  ssm1(idim) = 0
-	               ELSE
-	                  ssm1(idim) = -1
-	               ENDIF
-	               IF (ssfix(idim,+1).LT.cx_lo_ss(cxfield,idim)
-     .		       .OR.ssfix(idim,+1).GT.cx_hi_ss(cxfield,idim) ) THEN
-	                  ssp1(idim) = 0
-	               ELSE
-	                  ssp1(idim) = +1
-	               ENDIF
- 820	            CONTINUE
-	            DO 830 lt = ssfix(t_dim,ssm1(t_dim)),
-     .				ssfix(t_dim,ssp1(t_dim))
-	            DO 830 kz = ssfix(z_dim,ssm1(z_dim)),
-     .				ssfix(z_dim,ssp1(z_dim))
-	            DO 830 jy = ssfix(y_dim,ssm1(y_dim)),
-     .				ssfix(y_dim,ssp1(y_dim))
-	            DO 830 ix = ssfix(x_dim,ssm1(x_dim)),
-     .				ssfix(x_dim,ssp1(x_dim))
-	               IF ( field(ix,jy,kz,lt) .NE. missing ) THEN
-	                  nfix = nfix + 1
-	                  sumfix = sumfix +  field(ix,jy,kz,lt)
-	               ENDIF
- 830	            CONTINUE
-	            IF ( nfix .GT. 0 ) THEN
-	               surrnd(i,j,k,l) = sumfix/nfix
-	               res_flag = 1.
-	            ELSE
-	               res_flag = -9.
-	               result = fill_value
-	               GOTO 1000  
-	            ENDIF
-	         ELSE
-* ... dont even try to fill the hole
-	            res_flag = -9.
-	            result = fill_value
-	            GOTO 1000
-	         ENDIF
-	      ENDIF
- 850	   CONTINUE
-
-* compute the interpolated value from the fully-specified surrounding points
-* ... interpolate on T axis 
-	   IF (ssorww(t_dim) .NE. by_nothin) THEN
-	      DO 910 i = 1,ihi
-	      DO 910 j = 1,jhi
-	      DO 910 k = 1,khi
- 910	      surrnd(i,j,k,1) =   lin_fact(t_dim)  * surrnd(i,j,k,1)
-     .			    + (1.-lin_fact(t_dim)) * surrnd(i,j,k,2)
-	   ENDIF
-* ... interpolate on Z axis 
-	   IF (ssorww(z_dim) .NE. by_nothin) THEN
-	      DO 920 i = 1,ihi
-	      DO 920 j = 1,jhi
- 920	      surrnd(i,j,1,1) =   lin_fact(z_dim)  * surrnd(i,j,1,1)
-     .			    + (1.-lin_fact(z_dim)) * surrnd(i,j,2,1)
-	   ENDIF
-* ... interpolate on Y axis 
-	   IF (ssorww(y_dim) .NE. by_nothin) THEN
-	      DO 930 i = 1,ihi
- 930	      surrnd(i,1,1,1) =   lin_fact(y_dim)  * surrnd(i,1,1,1)
-     .			    + (1.-lin_fact(y_dim)) * surrnd(i,2,1,1)
-	   ENDIF
-* ... interpolate on X axis 
-	   IF (ssorww(x_dim) .NE. by_nothin) THEN
-	      surrnd(1,1,1,1) =   lin_fact(x_dim)  * surrnd(1,1,1,1)
-     .			    + (1.-lin_fact(x_dim)) * surrnd(2,1,1,1)
-	   ENDIF
-	   result = surrnd(1,1,1,1)
-
-* output the result
- 1000	   IF ( binary ) THEN
-	      IF ( condensed ) THEN
-	         nbuf = nbuf + 1
-	         out_buf(nbuf) = result
-	         IF ( nbuf .EQ. columns ) THEN
-	            WRITE ( out_lun ) out_buf
-	            nbuf = 0
-	         ENDIF
-	      ELSE
-	         WRITE ( out_lun ) result,
-     .				(coords(ii(i),i),i=1,4), res_flag
-	      ENDIF
-	   ELSE
-	       WRITE ( out_lun, fmt ) result,
-     .				(coords(ii(i),i),i=1,4), res_flag
-	   ENDIF
-	
-! diag	   WRITE (6,*) 'Result: ',result
-! diag	   WRITE (6,*) 'lo/hi subscripts: ',((ss(idim,i),i=1,2),idim=1,4)
-! diag	   WRITE (6,*) 'factors: ',lin_fact
-
-* prepare for the next sample point
-	   DO 1100 idim = 1, 4
- 1100	   ii(idim) = ii(idim) + di(idim)
-
- 2000	CONTINUE
-
-* check for any output remaining in the output record buffer
-	IF ( condensed .AND. nbuf.GT.0 ) 
-     .		CALL WARN( 'Output columns didnt match sampling coordinates')
-
-* success!
-	RETURN
-
-* error exits
- 5000	RETURN
-
-	END
diff --git a/fer/gnl/sanity_check_memory.F b/fer/gnl/sanity_check_memory.F
new file mode 100644
index 0000000..a5c1323
--- /dev/null
+++ b/fer/gnl/sanity_check_memory.F
@@ -0,0 +1,376 @@
+	SUBROUTINE SANITY_CHECK_MEMORY(tag)
+
+*
+*  This software was developed by the Thermal Modeling and Analysis
+*  Project(TMAP) of the National Oceanographic and Atmospheric
+*  Administrations (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. 
+*
+*
+* diagnostic report on memory usage and integrity check
+* note that this routine could be streamlined -- the linked lists are
+* traversed two separate times.  Since this code is only run in diagnostic
+* situations we have not troubled to mske it nicer.
+
+* programmer - steve hankin
+* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+*
+* V702: *sh* 11/16 This is an expanded version of CHECK_MEMORY intended 
+*      for use with -D debug copilations
+*            1/17 - output to stdout for easier debugging
+
+	include 'tmap_dims.parm'
+	include 'xtm_grid.cmn_text'
+	external xgt_grid_data
+	include 'ferret.parm'
+	include 'xvariables.cmn'
+	include 'xprog_state.cmn'
+	include 'xwork_space.cmn'
+
+* calling argument declarations:
+	INTEGER	lun
+	CHARACTER*(*) tag
+
+* internal variable declarations:
+	LOGICAL mv_accounted_for(max_mrs)
+	INTEGER	mv, mvfree, mvused, mvuncached, mvwork,
+     .		nmvlost, n, pile, last, msize, test_next,
+     .		ninuse, navail, nperm, mbperm, ntemp, ndel,
+     .		ninprogress, ntable_entries, 
+     .		slen, nn, i, ws, s1, s2
+	INTEGER*8 sum, mem_in_use
+	CHARACTER LEFINT*10, buff*40, b12*12
+	PARAMETER (b12 = '            ')    !kob 12/96
+
+************************************
+* check Ferret variable memory allocations
+        mem_in_use = 0
+        DO mv = 1, max_mrs
+           mem_in_use = mem_in_use + mr_size(mv)
+        ENDDO
+        IF (mem_in_use .NE. total_mem) THEN
+	      CALL WARN('***** corrupted total mem size: '
+     .                  //LEFINT(mem_in_use,slen) )
+        ENDIF
+
+* 11/16 brute force check of memory table list integrity
+	DO mv = 1, max_mrs
+	   mv_accounted_for(mv) = .FALSE.
+	ENDDO
+* ... free list (only forward mv links)
+	n = 0
+	mvfree = 0
+	mv = mv_flink( 0 )	! base pointer for free slots
+ 10	IF ( mv .NE. 0 ) THEN
+	   n = n + 1  ! number of passes
+	   IF (n .GT. max_mrs + 5) THEN
+	      CALL TM_NOTE('SANITY ERR: Trapped in free list ...'
+     .				, ttout_lun)
+	   ENDIF
+	   IF (mv_accounted_for(mv)) THEN
+	      CALL TM_NOTE('SANITY ERR: free mr list is corrupted: '
+     .	   		//LEFINT(mv,slen)//tag, ttout_lun)   ! loop forever
+	   ENDIF
+	   mv_accounted_for(mv) = .TRUE.
+	   mvfree = mvfree + 1
+	   mv = mv_flink(mv)
+	   GOTO 10
+	ENDIF
+* ... hash piles (cached mvars)
+	mvused = 0
+	DO 14 pile = 1, pmv_npiles
+	   last = -pile
+	   mv = mv_flink( last )	! base pointer for slots in this hash #
+	   n = 0
+ 12	   IF ( mv .GT. 0 ) THEN
+	      n = n + 1  ! number of passes
+	      IF (n .GT. max_mrs + 5) THEN
+	         CALL TM_NOTE('SANITY ERR: Trapped in hash pile ...'
+     .			//LEFINT(-pile,slen), ttout_lun) 
+	      ENDIF
+	      IF (mv_accounted_for(mv)) THEN
+	         CALL TM_NOTE
+     .			('SANITY ERR: cached mr slot found in multiple lists: '
+     .	   			//LEFINT(mv,slen)//LEFINT(-pile,slen)//tag,
+     .				ttout_lun) 
+	      ENDIF
+	      IF (mv_blink(mv) .NE. last) THEN
+	         CALL TM_NOTE ('SANITY ERR: hash pile back link error: '
+     .	   			//LEFINT(mv,slen)//LEFINT(-pile,slen)//tag,
+     .				ttout_lun) 
+	      ENDIF
+	      mv_accounted_for(mv) = .TRUE.
+	      mvused = mvused + 1
+	      last = mv
+	      mv = mv_flink(mv)
+	      GOTO 12
+	   ENDIF
+ 14	CONTINUE
+* ... work space mvars
+	n = 0
+	mvwork = 0
+	last = pmv_work_var_pile
+	mv = mv_flink( last )	! base pointer for slots in this hash #
+ 16	IF ( mv .GT. 0 ) THEN
+	   n = n + 1  ! number of passes
+	   IF (n .GT. max_mrs + 5) THEN
+	      CALL TM_NOTE('SANITY ERR: Trapped in work space chain ...',
+     .				ttout_lun) 
+
+	   ENDIF
+	   IF (mv_accounted_for(mv)) THEN
+	      CALL TM_NOTE
+     .		('SANITY ERR: work var mr slot found in multiple lists: '
+     .	   			//LEFINT(mv,slen)//tag, ttout_lun) 
+	   ENDIF
+	   IF (mv_blink(mv) .NE. last) THEN
+	      CALL TM_NOTE('SANITY ERR: work var back link error: '
+     .	   			//LEFINT(mv,slen)//tag, ttout_lun)
+	   ENDIF
+	   mv_accounted_for(mv) = .TRUE.
+	   mvwork = mvwork + 1
+	   last = mv
+	   mv = mv_flink(mv)
+	   GOTO 16
+	ENDIF
+* ... uncached mvars
+	n = 0
+	mvuncached = 0
+	last = pmv_nocache_pile
+	mv = mv_flink( last )	! base pointer for slots in this hash #
+ 18	IF ( mv .GT. 0 ) THEN
+	   n = n + 1  ! number of passes
+	   IF (n .GT. max_mrs + 5) THEN
+	      CALL TM_NOTE('SANITY ERR: Trapped in uncached chain ...',
+     .				ttout_lun)	
+	   ENDIF
+	   IF (mv_accounted_for(mv)) THEN
+	      CALL TM_NOTE
+     .		('SANITY ERR: uncached mr slot found in multiple lists: '
+     .	   			//LEFINT(mv,slen)//tag, ttout_lun)
+	   ENDIF
+	   IF (mv_blink(mv) .NE. last) THEN
+	      CALL TM_NOTE('SANITY ERR: uncached back link error: '
+     .	   			//LEFINT(mv,slen)//tag, ttout_lun)
+	   ENDIF
+	   mv_accounted_for(mv) = .TRUE.
+	   mvuncached = mvuncached + 1
+	   last = mv
+	   mv = mv_flink(mv)
+	   GOTO 18
+	ENDIF
+	IF (mvused+mvfree+mvwork+mvuncached .NE. max_mr_avail) THEN
+	   CALL TM_NOTE
+     .		('SANITY ERR: number of mr slots doesnt tally', ttout_lun)
+	ENDIF
+	DO mv = 1, max_mr_avail
+	   IF( .NOT.mv_accounted_for(mv)) THEN
+	      CALL TM_NOTE('SANITY ERR: mr unaccounted in any list: '
+     .	   			//LEFINT(mv,slen)//tag, ttout_lun)
+	   ENDIF
+	ENDDO
+
+* ... the deletion priority chain
+	n = 0
+	last = 0
+	mv = mr_del_flink(last)
+ 19	IF ( mv .NE. 0 ) THEN
+	   n = n + 1  ! number of passes
+	   IF (n .GT. max_mrs + 5) THEN
+	      CALL TM_NOTE('SANITY ERR: Trapped in deleted chain ...'
+     .				//tag, ttout_lun)
+	      STOP 
+	   ENDIF
+	   IF (mr_del_blink(mv) .NE. last) THEN
+	      CALL TM_NOTE ('SANITY ERR: deletion chain back link error: '
+     .	   			//LEFINT(mv,slen)//tag, ttout_lun)
+	   ENDIF
+	   last = mv
+	   mv = mr_del_flink(mv)
+	   GOTO 19
+	ENDIF
+
+
+************************************
+
+* check slots in memory variable table
+* ... free table slots
+	mvfree = 0
+	mv     = mv_flink( 0 )	! base pointer for free slots
+ 200	IF ( mv .NE. 0 ) THEN
+
+* * * * integrity check * * * * * * * * * * * * * * * * * * * *
+	   IF ( mr_protected(mv) .NE. mr_deleted ) THEN
+	      CALL TM_NOTE('SANITY ERR: improperly deleted: '
+     .				//LEFINT(mv,slen)//tag, ttout_lun)
+	   ENDIF
+* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+	   mvfree = mvfree + 1
+	   mv = mv_flink( mv )
+	   GOTO 200
+	ENDIF
+
+* * * * SUMMARIZE MEMORY TABLE SLOTS IN USE * * * *
+* check all the variables in all the hash piles
+	mvused = 0
+	DO 310 pile = 1, pmv_npiles
+	   last = -pile
+	   mv = mv_flink( last )	! base pointer for slots in this hash #
+ 300	   IF ( mv .GT. 0 ) THEN
+	      IF ( mr_protected(mv) .EQ. mr_deleted
+     .	      .OR. mv_blink(mv) .NE. last ) THEN
+	          CALL TM_NOTE('SANITY ERR: improperly cataloged: '
+     .				//LEFINT(mv,slen)//tag, ttout_lun)
+	      ENDIF
+	      mvused = mvused + 1
+	      last   = mv
+	      mv     = mv_flink(mv)
+	      GOTO 300
+	   ENDIF
+ 310	CONTINUE
+
+* check non-cached variables (10/99)
+	last = pmv_nocache_pile
+	mv = mv_flink( last )	! base pointer for slots in this hash #
+ 350	IF ( mv .GT. 0 ) THEN
+	   IF ( mr_protected(mv) .EQ. mr_deleted
+     .	   .OR. mr_protected(mv) .EQ. mr_in_progress
+     .	   .OR. mv_blink(mv) .NE. last ) THEN
+	      CALL TM_NOTE('SANITY ERR: uncached variable error: '
+     .				//LEFINT(mv,slen)//tag, ttout_lun)
+	   ENDIF
+	   mvused = mvused + 1
+	   last   = mv
+	   mv     = mv_flink(mv)
+	   GOTO 350
+	ENDIF
+
+* check work storage allocated by GET_WORK_MR
+	last = pmv_work_var_pile
+	mv = mv_flink( last )	! base pointer for slots in this hash #
+ 370	IF ( mv .GT. 0 ) THEN
+	   IF ( mr_protected(mv) .NE. mr_in_progress
+     .	   .OR. mv_blink(mv) .NE. last ) THEN
+	      CALL TM_NOTE('SANITY ERR: table work storage variable error: '
+     .				//LEFINT(mv,slen)//tag, ttout_lun)
+	   ENDIF
+	   mvused = mvused + 1
+	   last   = mv
+	   mv     = mv_flink(mv)
+	   GOTO 370
+	ENDIF
+
+* * * * integrity check * * * * * * * * * * * * * * * * * * * *
+* make sure no table slots or memory blocks have been lost
+	nmvlost = max_mr_avail - ( mvfree+mvused )
+	IF ( nmvlost .NE. 0 ) THEN
+	   CALL TM_NOTE('SANITY ERR: lost table slots: '
+     .				//LEFINT(nmvlost,slen)//tag, ttout_lun)
+	ENDIF
+
+* * * * integrity check * * * * * * * * * * * * * * * * * * * * *
+* variable deletion priority chain
+	navail = 0
+	mv = mr_del_flink(0)
+ 400	IF ( mv .NE. 0 ) THEN
+	   navail = navail + 1
+	   IF ( mr_protected(mv) .NE. mr_not_protected ) THEN
+	      CALL TM_NOTE('SANITY ERR: Protected variables deleted',
+     .				ttout_lun)
+	   ENDIF
+	   mv = mr_del_flink(mv)
+	   GOTO 400
+	ENDIF
+	ninuse = 0
+	ndel   = 0
+	nperm  = 0
+	ntemp  = 0
+        ninprogress = 0
+	ntable_entries = 0
+	DO 410 mv = 1, max_mr_avail
+	   IF ( mr_protected(mv) .GT. 0 ) THEN
+	      ninuse = ninuse + 1
+	   ELSEIF ( mr_protected(mv) .EQ. mr_perm_protected ) THEN
+	      nperm  = nperm  + 1
+	   ELSEIF ( mr_protected(mv) .EQ. mr_deleted ) THEN
+	      ndel = ndel + 1
+	   ELSEIF ( mr_protected(mv) .EQ. mr_temporary ) THEN
+	      ntemp = ntemp + 1
+	   ELSEIF ( mr_protected(mv) .EQ. mr_in_progress ) THEN
+	      ninprogress = ninprogress + 1
+	   ELSEIF ( mr_protected(mv) .EQ. mr_table_entry_only ) THEN
+	      ntable_entries = ntable_entries + 1
+	   ENDIF
+ 410	CONTINUE
+	nmvlost = max_mr_avail
+     .		- (ninuse+navail+nperm+ndel+ntemp+ninprogress+ntable_entries)
+	IF ( nmvlost .NE. 0 ) THEN
+	   CALL TM_NOTE( 'SANITY ERR: Unaccountable var protection: '
+     .				//LEFINT(nmvlost,slen)//tag, ttout_lun)
+	ENDIF
+	n = ndel - mvfree
+	IF ( n .NE. 0 ) THEN
+	   CALL TM_NOTE( 'SANITY ERR: Deleted vars unaccountable: '
+     .				//LEFINT(nmvlost,slen)//tag, ttout_lun)
+	ENDIF
+
+* * * * * * dynamic memory sanity check * * * * *
+	sum = 0
+	DO mv = 1, max_mr_avail
+	   s1 = mr_size(mv)
+	   s2 = SIZE(memry(mv)%ptr) 
+	   sum = sum + s1
+           IF (s1 .NE. s2) THEN
+	      CALL TM_NOTE( 'SANITY ERR: Dynamic mem size error: '
+     .			//LEFINT(mv,slen)//LEFINT(s1,slen)
+     .			//LEFINT(s2,slen)//tag, ttout_lun)
+	   ENDIF
+	ENDDO
+	IF (sum .NE. total_mem) THEN
+	   CALL TM_NOTE( 'SANITY ERR: Dynamic mem total: '
+     .			//LEFINT(sum,slen)//LEFINT(total_mem,slen)//tag,
+     .			 ttout_lun)
+	ENDIF
+
+* work storage
+	DO ws = 1, max_ws
+	   s1 = ws_size(ws)
+	   s2 = SIZE(workmem(ws)%ptr) 
+           IF (s1 .NE. s2) THEN
+	      CALL TM_NOTE( 'SANITY ERR: Dynamic work space size error: '
+     .			//LEFINT(ws,slen)//LEFINT(s1,slen)
+     .			//LEFINT(s2,slen)//tag, ttout_lun)
+	   ENDIF
+	ENDDO
+
+* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+	RETURN
+	END
diff --git a/fer/gnl/set_var.F b/fer/gnl/set_var.F
index 997af9b..2b9ff12 100644
--- a/fer/gnl/set_var.F
+++ b/fer/gnl/set_var.F
@@ -88,6 +88,7 @@
 * V698 *sh*  4/16  allow SET VARIABLE on agg dsets
 * 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'
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -208,6 +209,7 @@
      .               TM_HAS_STRING(ds_type(dset), 'MC') .OR.
      .               TM_HAS_STRING(ds_type(dset), 'ENS') .OR.
      .               TM_HAS_STRING(ds_type(dset), 'FCT') .OR.
+     .               TM_HAS_STRING(ds_type(dset), 'UNI') .OR.
      .               TM_HAS_STRING(ds_type(dset), 'GT')  )
 	   IF ( .NOT. ncfile ) GOTO 5700
 
@@ -229,6 +231,7 @@
      .               TM_HAS_STRING(ds_type(dset), 'MC') .OR.
      .               TM_HAS_STRING(ds_type(dset), 'ENS') .OR.
      .               TM_HAS_STRING(ds_type(dset), 'FCT') .OR.
+     .               TM_HAS_STRING(ds_type(dset), 'UNI') .OR.
      .               TM_HAS_STRING(ds_type(dset), 'GT')  )
 	   IF ( .NOT. ncfile ) GOTO 5800
 
diff --git a/fer/gnl/show_1_function.F b/fer/gnl/show_1_function.F
index fda705a..30d5a3c 100644
--- a/fer/gnl/show_1_function.F
+++ b/fer/gnl/show_1_function.F
@@ -55,6 +55,8 @@
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V6.8  acm  6/12 Implement mode_6d_lab, set by default. If cancelled, the 
 *                 various SHOW commnands will not list info for E,F dimensions.
+* V7    acm  6/16 Ticket 2437: Deprecating mode_6d_lab. 
+*		  Adjust output to 6-D or 4-D grids
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -72,7 +74,7 @@
 * local variable declarations:
 	LOGICAL	its_reshape
 	INTEGER TM_LENSTR, TM_LENSTR1, GCF_ARG_TYPE, GCF_FIND_FCN,
-     .		ll, ll2, llsave, itype, narg, i, iarg, iarg2, idim, listdims
+     .		ll, ll2, llsave, itype, narg, i, iarg, iarg2, idim
 	CHARACTER units*40, gcf_name*40, ef_arg_name*40, ef_descr*128, 
      .		ef_units*40, ax_remark*64, alt_name*40
 	INTEGER EFCN_SCAN, EFCN_GET_NUM_REQD_ARGS, EFCN_GATHER_INFO,
@@ -94,12 +96,6 @@
 	len_rbuff = LEN(risc_buff)	! maximum length
 	its_reshape = ifcn .EQ. p_reshape
 
-* If mode 6d_lab has been cancelled, we will list info only for 
-* the first 4 dimensions.
-
-	listdims = nferdims
-	IF ( .NOT. mode_6d_lab) listdims = 4
-
 * 1st line -- function name with args in parens
 * ... name
 	IF ( .NOT.its_gc ) THEN
@@ -188,12 +184,12 @@
 	   CALL SPLIT_LIST( pttmode_explct, lun,
      .		'        Axes of result:', 23)
 	   IF ( ifcn .LE. gfcn_num_internal ) THEN
-	      DO 210 idim = 1, listdims
+	      DO 210 idim = 1, nferdims
  210          axis_will_be(idim) = gfcn_axis_will_be(idim,ifcn)
 	   ELSE
 	      CALL EFCN_GET_AXIS_WILL_BE(ifcn, axis_will_be)
 	   ENDIF
-	   DO 220 idim = 1, listdims
+	   DO 220 idim = 1, nferdims
 	      IF (its_reshape) THEN
 	         ax_remark = 'inferred from argument B'
 	      ELSEIF (axis_will_be(idim) .EQ. pgc_axis_is_abstract) THEN
@@ -279,7 +275,7 @@
 	   CALL SPLIT_LIST( pttmode_explct, lun,
      .			'        Influence on output axes:', 0)
 	   CALL GCF_GET_AXIS_SRCS(ifcn, i, axis_will_be)
-	   DO 420 idim = 1, listdims
+	   DO 420 idim = 1, nferdims
 	      IF (its_reshape) THEN
 	         IF (i .EQ. 1) THEN
 	            ax_remark =
diff --git a/fer/gnl/show_1_mr.F b/fer/gnl/show_1_mr.F
index 13a512d..d1aec4a 100644
--- a/fer/gnl/show_1_mr.F
+++ b/fer/gnl/show_1_mr.F
@@ -57,7 +57,10 @@
 *                 various SHOW commnands will not list info for E,F dimensions.
 * V698  1/16 *sh* bug fix: the initial 6D trap was removing all possibility of
 *		  showing 5D or 6D variables
-
+* V7    acm  6/16 Ticket 2437: Deprecating mode_6d_lab. 
+*		  Adjust output to 6-D or 4-D grids
+* V702 *sh* 2/17  Reveal dynamic memory instead of block memory
+*		  Increase field widths for long axes
 
 	include	'tmap_dims.parm'
 	include	'xtm_grid.cmn_text'
@@ -78,15 +81,15 @@
 * V500 *kob* 3/99- up VAR_CODE and vname decl's to 64 chars
 * V552 *acm* 4/03- up VAR_CODE and vname decl's from 64 to 128 chars
 * local variable declarations:
-	LOGICAL	ITS_UN_CACHED
+	LOGICAL	ITS_UN_CACHED, FOUR_D_GRID
 	INTEGER TM_LENSTR1, MR_DIM_LEN,
-     .		idim, ndim, mrlen, bk1len, nbklen, dset, listdims
+     .		idim, ndim, mrlen, mrsizelen, dset, listdims
 	CHARACTER VAR_CODE*128, ALG_TRANS_CODE*3, ARG_STRING*12, TM_FMT*8,
      .		  protection*4, shape*4, dname*14, gname*12, vname*128,
      .		  ww_lo(nferdims)*20, ww_hi(nferdims)*20, 
-     .		  ss_lo(nferdims)*6, ss_hi(nferdims)*6,
-     .		  mrbuf*4, bk1buf*4, 
-     .		  nbkbuf*4, cache_stat*8
+     .		  ss_lo(nferdims)*9, ss_hi(nferdims)*9,
+     .		  mrbuf*4, mrsizebuf*8,
+     .		  cache_stat*8
 
 * If mode 6d_lab has been canceled, we will list only the first 4 dimensions.
 
@@ -94,6 +97,8 @@
 	IF ( .NOT. mode_6d_lab) listdims = 4
 	status = ferr_ok
 
+	IF ( FOUR_D_GRID(mr_grid(mr)) ) listdims = 4
+
 * get shape
 	shape = ' '
 	ndim = 0
@@ -125,14 +130,15 @@
      .		     ax_dec_pt(idim), ww_hi(idim) )
 	   ENDIF
 	   IF ( mr_lo_ss(mr,idim) .EQ. unspecified_int4 ) THEN
-	      ss_lo(idim) = ' ...'
-	      ss_hi(idim) = ' ...'
+	      ss_lo(idim) = '     ...'
+	      ss_hi(idim) = '     ...'
 	   ELSEIF ( mr_hi_ss(mr,idim) .GT. 9999 ) THEN
-	      WRITE ( ss_lo(idim), '(I6)' ) mr_lo_ss(mr,idim)
-	      WRITE ( ss_hi(idim), '(I6)' ) mr_hi_ss(mr,idim)
+! not needed any longer ...
+	      WRITE ( ss_lo(idim), '(I9)' ) mr_lo_ss(mr,idim)
+	      WRITE ( ss_hi(idim), '(I9)' ) mr_hi_ss(mr,idim)
 	   ELSE
-	      WRITE ( ss_lo(idim), '(I4)' ) mr_lo_ss(mr,idim)
-	      WRITE ( ss_hi(idim), '(I4)' ) mr_hi_ss(mr,idim)
+	      WRITE ( ss_lo(idim), '(I9)' ) mr_lo_ss(mr,idim)
+	      WRITE ( ss_hi(idim), '(I9)' ) mr_hi_ss(mr,idim)
 	   ENDIF
  180	CONTINUE
 
@@ -162,17 +168,15 @@
 	ELSE
 	   gname = ']'
 	ENDIF
-	mrbuf  = TM_FMT( FLOAT(mr), 0, 4, mrlen )
-	nbkbuf = TM_FMT( FLOAT(mr_nblks(mr)),0,4,nbklen )
-	bk1buf = TM_FMT( FLOAT(mr_blk1(mr)),0,4,bk1len )
-	risc_buff = ' '
+	mrbuf      = TM_FMT( FLOAT(mr), 0, 4, mrlen )
+	mrsizebuf  = TM_FMT( FLOAT(mr_size(mr)), 0, 8, mrsizelen )
+	risc_buff  = ' '
 	WRITE ( risc_buff, 3010 )	vname(:TM_LENSTR1(vname)),
      .					dname(:TM_LENSTR1(dname)),
      .					gname(:TM_LENSTR1(gname)),
      .					shape,
      .					mrbuf(:mrlen),
-     .					bk1buf(:bk1len),
-     .					nbkbuf(:nbklen),
+     .					mrsizebuf(:mrsizelen),
      .					protection,
      .					cache_stat
 
@@ -197,14 +201,14 @@
 
 	CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
 
- 3010	FORMAT(T2,A,'[',2A,T36,A4,'  mr:',A,'  blk1:',A,
-     .'  nblk:',A,1X,A4,1x,A8)
- 3020	FORMAT(T2,5(A6,'/',A12),A6,'/',A12)
+ 3010	FORMAT(T2,A,'[',2A,T36,A4,'  mr:',A, ' size:', A, 1X,A4,1x,A8)
+ 3020	FORMAT(T2,5(A9,'/',A12),A9,'/',A12)
  3030	FORMAT(T2,6(4X,A3,A12))
 
  5000	RETURN
  5100	CALL ERRMSG( ferr_invalid_command, status,
      .		     'variable has more than 4 dimensions. Set mode 6D_LAB'
+     .		     //pCR//'Output will automatically adjust to 4D or 6D grid'
      .		     //pCR//cmnd_buff(:len_cmnd),
      .			*5000 )
 	END
diff --git a/fer/gnl/show_1_uvar_xml.F b/fer/gnl/show_1_uvar_xml.F
index ec176c6..4a3c5b0 100644
--- a/fer/gnl/show_1_uvar_xml.F
+++ b/fer/gnl/show_1_uvar_xml.F
@@ -71,7 +71,7 @@
      .          slen, llen, grid, cx_expr, i, j, status,
      .            varid, vtype, nvdims, vdims(8), nvatts, blen, 
      .            len_attbuff, attoutflag, all_outflag, attid, 
-     .            attlen, attype, iatt, dset, alen
+     .            attlen, attype, iatt, dset, alen, itype
 	CHARACTER FULL_UVAR_NAME_XML*150, FULL_UVAR_NAME*150, 
      .            TM_FMT*12,
      .            buff*150, buff2*170, c*1, atype*10, aname*128, 
@@ -171,9 +171,28 @@
         WRITE ( risc_buff, 2060 ) 
         CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
 
+	
+* Once the grid is set, the dtype is also known. 
+
+        dset = uvar_dset(uvar)
+        IF (dset .LE. pdset_irrelevant) dset = pdset_uvars
+        CALL GET_SAVED_UVAR_DTYPE(uvar, dset, itype)
+
+	buff = 'FLOAT'
+        IF (itype .EQ. ptype_string ) buff = 'STRING'
+
+        CALL ESCAPE_FOR_XML (buff, outstring, slen)
+        WRITE ( risc_buff, 2020 ) 'ferret_datatype'
+        CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
+        WRITE (risc_buff, 2055) buff(1:slen)
+        CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
+        WRITE ( risc_buff, 2060 ) 
+        CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)      
+
 * All attributes not already listed.
  
-	dset = pdset_uvars
+        dset = uvar_dset(uvar)
+        IF (dset .LE. pdset_irrelevant) dset = pdset_uvars
 	CALL CD_GET_VAR_ID (dset, vname, varid, status)
 	IF (status .NE. ferr_ok) THEN
 	    dset = cx_data_set(cx_last) 
diff --git a/fer/gnl/show_data.F b/fer/gnl/show_data.F
index 48c0624..a13ad59 100644
--- a/fer/gnl/show_data.F
+++ b/fer/gnl/show_data.F
@@ -43,6 +43,7 @@
 * V695 *acm*  2/15 For Forecast aggregations, call the ds_type 'FCT'
 * V695 *acm*  9/15 Fix #2317: length of name sent to FIND_DSET_NUMBER
 * V698 *sh* 1/16 Removed "Ferret-defined" annotation
+* V7   *acm*  6/12 Add Union aggregations: DEFINE DATA/AGG/U, ds_type 'UNI'
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -68,7 +69,8 @@
      .		    slash_vars,
      .		    slash_file,
      .		    slash_attr,
-     .		    slash_xml
+     .		    slash_xml,
+     .		    slash_memb
 	CHARACTER default*60, outstring*2048
 
 	PARAMETER ( slash_brief    = 1 + 1,
@@ -76,7 +78,8 @@
      .		    slash_vars     = 1 + 3,
      .		    slash_file     = 1 + 4,
      .		    slash_attr     = 1 + 6,
-     .		    slash_xml      = 1 + 5)
+     .		    slash_xml      = 1 + 5,
+     .              slash_memb     = 1 + 11 )
 
 * initialize
 	show_lun = ttout_lun
@@ -86,11 +89,15 @@
    	sbrief = qual_given( slash_brief ) .GT. 0 
 	sfull  = qual_given( slash_full  ) .GT. 0
 	svars  = qual_given( slash_vars  ) .GT. 0   .OR. sfull
- 	sfile  = qual_given( slash_file  ) .GT. 0   .OR. sfull
+ 	sfile  = qual_given( slash_memb  ) .GT. 0
+     .	    .OR. qual_given( slash_file  ) .GT. 0   .OR. sfull
  	sattr  = qual_given( slash_attr  ) .GT. 0  
         IF (sattr) sbrief = .TRUE.
  	sxml  = qual_given( slash_xml  ) .GT. 0 
 
+	IF (qual_given( slash_file  ) .GT. 0)  CALL WARN
+     .		( '/FILES is deprecated.  Use /MEMBERS')
+
 * 	SHOW DATA/FILE=[/APPEND][/CLOBBER][/HIDDEN]
         sho_file = qual_given( slash_show_data_file )
 	clobber = qual_given( slash_show_data_clobber ) .GT. 0
@@ -151,6 +158,10 @@
 	      default = default(:len0)//'  Forecast aggregation'
 	      len0 = TM_LENSTR1( default )
 	   ENDIF
+	   IF ( TM_HAS_STRING(ds_type(iset), 'UNI') ) THEN
+	      default = default(:len0)//'  Union aggregation'
+	      len0 = TM_LENSTR1( default )
+	   ENDIF
 	   ENDIF
 
 	   len = TM_LENSTR1( ds_des_name( iset ) )
diff --git a/fer/gnl/show_data_files.F b/fer/gnl/show_data_files.F
index 04e1c6f..c45704b 100644
--- a/fer/gnl/show_data_files.F
+++ b/fer/gnl/show_data_files.F
@@ -56,6 +56,8 @@
 * V695 *acm*  2/15 For Forecast aggregations, call the ds_type 'FCT'
 * V695 *sh*  12/15 For FMRCs and Ensembles show aggregation members
 * 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.
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -73,10 +75,12 @@
 	INTEGER	lun, dset
 	
 * local variable declarations:
+	LOGICAL		true_month
 	INTEGER		KNOWN_GRID, TM_LENSTR1,
      .			ivar, grid, istep, ndec, status, lskip, slen,
-     .			nmemb, memb_set, nfig
-	CHARACTER	LEFINT*8, lo_date*20, hi_date*20, buff*8
+     .			alen, nmemb, memb_set, nfig
+	CHARACTER	LEFINT*8, lo_date*20, hi_date*20, buff*8, abuff*8
+	REAL		timefac
 
 * special processing of EZ data sets
 	IF ( ds_type(dset) .EQ. pds_type_ez ) THEN
@@ -95,11 +99,14 @@
         ELSEIF (ds_type(dset) .EQ. 'ENS'
      .    .OR.  ds_type(dset) .EQ. 'FCT') THEN
 
+* ... get parent aggregation dataset number in string form
+	   abuff = LEFINT(dset, alen )
+
 * ... get number of aggregation members
 	   CALL CD_GET_AGG_DSET_INFO (dset, nmemb, status)
 	   IF (status .NE. ferr_ok) RETURN   ! should never happen
 	   CALL SPLIT_LIST(pttmode_explct, lun,
-     .		'          Aggregated datasets:', 0 )
+     .		'          Member datasets:', 0 )
 
 * ... loop through the aggregation members.
 	   nfig = LOG10(REAL(nmemb)) + 1
@@ -108,7 +115,8 @@
 	      IF (status .NE. ferr_ok) RETURN   ! should never happen
 	      buff = LEFINT(istep, slen )
 	      CALL SPLIT_LIST(pttmode_explct, lun,
-     .		'      '//buff(:nfig)//': '//ds_des_name(memb_set), 0 )
+     .		'      '//abuff(:alen)//'.'//buff(:nfig)//': '
+     .			       //ds_des_name(memb_set), 0 )
 	   ENDDO
 	   RETURN
 
@@ -145,12 +153,14 @@
 * output string precision (from SET MODE CALENDAR)
            ndec = ax_dec_pt( t_dim )
 
+	   CALL TM_MONTH_TIME_FACTOR (grid, true_month, timefac)
+
 * see which step files belong with this data set 
 	DO 300 istep = 1, maxstepfiles
 	    IF ( sf_setnum(istep) .EQ. dset ) THEN
-	      CALL TRANSLATE_TO_WORLD(	sf_1step(istep), t_dim, grid,
+	      CALL TRANSLATE_TO_WORLD(	timefac* sf_1step(istep), t_dim, grid,
      .					ndec, lo_date )
-	      CALL TRANSLATE_TO_WORLD(	sf_lastep(istep), t_dim, grid,
+	      CALL TRANSLATE_TO_WORLD(	timefac* sf_lastep(istep), t_dim, grid,
      .					ndec, hi_date )
 	      slen = TM_LENSTR1(hi_date)
 	      CALL SPLIT_LIST(pttmode_explct, lun,
diff --git a/fer/gnl/show_data_set_vars.F b/fer/gnl/show_data_set_vars.F
index db13c22..0ee8e97 100644
--- a/fer/gnl/show_data_set_vars.F
+++ b/fer/gnl/show_data_set_vars.F
@@ -80,6 +80,11 @@
 * v695 *acm*  4/15 Bug fix: output written in loop 300 was cut off
 * V698 2/16 *acm*  For ticket 1786: if mode_upcase is canceled write axis name
 *                  using original upper/lowercase spelling
+* V7   *acm*  6/12 Add Union aggregations: DEFINE DATA/AGG/U, ds_type 'UNI'
+* 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 
+
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -105,7 +110,8 @@
 	INTEGER	lun, dset, status
 	
 * local variable declarations:
-	LOGICAL		first_time, its_delimited, is_undetermined, coordvar
+	LOGICAL		FOUR_D_GRID,
+     .			first_time, its_delimited, is_undetermined, coordvar
 	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), 
@@ -138,20 +144,65 @@
 
 * If mode 6d_lab has been canceled, we will list only the first 4 dimensions.
 
-	listdims = nferdims
+	listdims = 0
 	IF ( .NOT. mode_6d_lab) listdims = 4
 	status = ferr_ok
 
+* Adjust number of dimensions. If all grids are 4D, will just show those.
+
+	IF (mode_6d_lab) THEN
+	listdims = 0
+
+	DO 80 ivar = 1, maxvars
+	   IF ( ds_var_setnum(ivar) .NE. dset ) GOTO 80
+           IF ( ds_var_code(ivar) .EQ. '-' ) GOTO 80  
+* ... output variable code, title and subscript bounds within grid
+
+	   is_undetermined = .TRUE.
+	   DO 40 idim = 1, nferdims
+	      IF (ds_grid_start(1,ivar) .NE. int4_init) 
+     .            is_undetermined = .FALSE. 
+  40	   CONTINUE
+
+* Is this an aggregated dataset? - if so then we can go get the grid.
+* GRID_FROM_NAME increments the use count for the grid, so call
+* DEALLO_DYN_GRID to restore the count where it should be.
+
+           IF (is_undetermined .AND. 
+     .         (ds_type(dset).EQ.'ENS' .OR. ds_type(dset).EQ.'FCT' 
+     .          .OR. ds_type(dset).EQ.'UNI')) THEN
+              IF (ds_type(dset).EQ.'UNI') THEN
+	         igrid = ds_grid_number(ivar)
+	      ELSE
+	         igrid = GRID_FROM_NAME(ds_var_code(ivar), cx_last, status)
+	         IF (status .NE. ferr_ok) GOTO 5000
+	         CALL TM_DEALLO_DYN_GRID (igrid)  
+	      ENDIF
+
+           ELSE
+	      igrid = ds_grid_number(ivar)
+           ENDIF
+
+           IF (.NOT.is_undetermined) THEN	
+	      IF ( FOUR_D_GRID(igrid)) listdims = 4
+		   ENDIF
+ 80	CONTINUE
+
+	IF (listdims .EQ. 0) listdims = nferdims
+	ENDIF ! adjusting listdims
+
 * describe the variables in the set
 
 	risc_buff = ' '
-	IF (listdims .EQ. nferdims) THEN
+        IF (listdims .EQ. nferdims) THEN
            WRITE ( risc_buff, 3200 )
-	ELSE
+        ELSE
            WRITE ( risc_buff, 3210 )
-	ENDIF
+        ENDIF
 
 	CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0) 
+
+
 	kvar = 0
 	DO 400 ivar = 1, maxvars
 	   IF ( ds_var_setnum(ivar) .NE. dset ) GOTO 400
@@ -170,18 +221,23 @@
 * DEALLO_DYN_GRID to restore the count where it should be.
 
            IF (is_undetermined .AND. 
-     .         (ds_type(dset).EQ.'ENS' .OR. ds_type(dset).EQ.'FCT')) THEN
-	      igrid = GRID_FROM_NAME(ds_var_code(ivar), cx_last, status)
-	      IF (status .NE. ferr_ok) GOTO 5000
-	      CALL TM_DEALLO_DYN_GRID (igrid)  
-
-*  Fill the grid in as in is_aggregate_grid
-
-	      IF (igrid .NE. unspecified_int4) THEN
-	         DO 220 nv = 1, maxvars
-	            IF (ds_grid_number(nv) .EQ. igrid)  GOTO 225
- 220	         CONTINUE
- 225	         CONTINUE
+     .         (ds_type(dset).EQ.'ENS' .OR. ds_type(dset).EQ.'FCT' 
+     .          .OR. ds_type(dset).EQ.'UNI')) THEN
+              IF (ds_type(dset).EQ.'UNI') THEN
+	         igrid = ds_grid_number(ivar)
+	      ELSE
+	         igrid = GRID_FROM_NAME(ds_var_code(ivar), cx_last, status)
+	         IF (status .NE. ferr_ok) GOTO 5000
+	         CALL TM_DEALLO_DYN_GRID (igrid)  
+
+*  Fill the grid in as in define_ef_aggregate_grid
+
+	         IF (igrid .NE. unspecified_int4) THEN
+	            DO 220 nv = 1, maxvars
+	               IF (ds_grid_number(nv) .EQ. igrid) EXIT ! loop
+ 220	            CONTINUE
+	         ENDIF
+
 	      ENDIF
 
 	      IF (nv .LE. maxvars) THEN
@@ -192,10 +248,15 @@
  230	         CONTINUE
 	         is_undetermined = .FALSE.
               ENDIF
+           ELSE
+	      igrid = ds_grid_number(ivar)
            ENDIF
 
            IF (.NOT.is_undetermined) THEN
 	      
+	      listdims = 6
+	      IF ( FOUR_D_GRID(igrid)) listdims = 4
+
               DO 100 i = 1, listdims
                  WRITE( rbuff(i+listdims),'(I8)' ) ds_grid_start(i,ivar)
                  IF (FLOAT(ds_grid_start(i,ivar)) .EQ. 0.0) THEN
@@ -500,6 +561,7 @@
 5000    RETURN
 5100	CALL ERRMSG( ferr_invalid_command, status,
      .		     'variable has more than 4 dimensions. Set mode 6D_LAB'
+     .		     //pCR//'Output will automatically adjust to 4D or 6D grid'
      .		     //pCR//cmnd_buff(:len_cmnd),
      .			*5000 )
 	END
diff --git a/fer/gnl/show_data_set_vars_xml.F b/fer/gnl/show_data_set_vars_xml.F
index 6b9a5ef..883c793 100644
--- a/fer/gnl/show_data_set_vars_xml.F
+++ b/fer/gnl/show_data_set_vars_xml.F
@@ -64,7 +64,9 @@
 *                  and are shown with their dataset on SHOW DATA commands
 * V7    6/16 *acm* Fix ticket 2441. For LET/D variables need to store the 
 *                  uvar list in a local array. If using deleted_list_result,
-*                  it got changed by the call to get the grid of the variable            
+*                  it got changed by the call to get the grid of the variable  
+* 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 
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -94,7 +96,8 @@
      .            varid, vtype, nvdims, vdims(8), nvatts, blen, i, 
      .            len_attbuff, attoutflag, all_outflag, attid, 
      .            attlen, attype, iatt, iset, alen, npts, 
-     .            num_indices, status, let_d_uvars_list(max_uvar)
+     .            num_indices, status, let_d_uvars_list(max_uvar), 
+     .            itype
 	REAL      vals(100)
 
         LOGICAL   NC_GET_ATTRIB, got_it, coordvar, newatt, have_units,
@@ -252,8 +255,7 @@ C Write statement that uses number 2075 when we change to using these.)
              CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
           ENDIF
 
-
-          IF (ds_var_type(ivar) .EQ. ptype_string ) THEN
+          IF (vtype .EQ. NF_CHAR ) THEN
              show_str = 'STRING'
           ELSE
              show_str = 'FLOAT'
@@ -381,11 +383,12 @@ C Write statement that uses number 2075 when we change to using these.)
 
 * show the data-set-specific user-defined variables
 
-        CALL deleted_list_get_undel(uvar_num_items_head,
+	CALL deleted_list_get_undel(uvar_num_items_head,
      .                              let_d_uvars_list(1),
      .                              max_uvar, num_indices )
-        DO 600 ivar = 1, num_indices
+	DO 600 ivar = 1, num_indices
            i = let_d_uvars_list(ivar)
+
 	   IF (uvar_dset(i) .EQ. dset .AND.
      .         uvar_parent(i) .EQ. 0   ) THEN
 
@@ -414,7 +417,6 @@ C Write statement that uses number 2075 when we change to using these.)
              WRITE ( risc_buff, 2060 ) 
              CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
 
-
 * Write the units and title
              slen = TM_LENSTR(uvar_units(i))
              IF (uvar_units(i)(1:2) .NE. char_init 
@@ -461,20 +463,6 @@ C Write statement that uses number 2075 when we change to using these.)
              WRITE ( risc_buff, 2060 ) 
              CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
 
-             IF (uvar_data_type(i,dset) .EQ. ptype_string ) THEN
-                show_str = 'STRING'
-             ELSE
-                show_str = 'FLOAT'
-             ENDIF
-
-             CALL ESCAPE_FOR_XML (show_str, outstring, slen)
-             WRITE ( risc_buff, 2020 ) 'ferret_datatype'
-             CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
-
-             WRITE (risc_buff, 2055) outstring(1:slen)
-             CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
-             WRITE ( risc_buff, 2060 ) 
-             CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
 
 * Now get other attributes that may have been assigned.
 
@@ -518,11 +506,11 @@ C Write statement that uses number 2075 when we change to using these.)
 
 
                 IF (newatt) THEN
-                   blen = 2048  ! len of attbuff
-                   got_it = NC_GET_ATTRIB (dset, varid, attname, 
+                  blen = 2048  ! len of attbuff
+                  got_it = NC_GET_ATTRIB (dset, varid, attname, 
      .                                .TRUE., uvarname, blen, attlen, 
      .                                attoutflag, attbuff, vals)
-                   IF (attlen .GT. 0) THEN
+                  IF (attlen .GT. 0) THEN
 
                    CALL ESCAPE_FOR_XML (attname, aname, slen)
 
@@ -555,21 +543,41 @@ C Write statement that uses number 2075 when we change to using these.)
                    WRITE ( risc_buff, 2060 )
                    CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
 
-                ENDIF  ! attlen GT 0
-                ENDIF
+                 ENDIF  ! attlen GT 0
+                ENDIF  ! newatt
  
  700         CONTINUE
 
 * The grid, if available.
              grid = GRID_FROM_NAME_XML( uvarname, cx_last, cx_expr, status )
 	     
-             IF (status .EQ. ferr_ok .AND. grid.NE.unspecified_int4) 
-     .         CALL SHOW_GRID_XML (lun, grid, cx_expr)
+             IF (status .EQ. ferr_ok .AND. grid.NE.unspecified_int4) THEN
 
+* Once the grid is set, the dtype is also known. Write that, then the grid.
+
+                iset = uvar_dset(i)
+                IF (iset .LE. pdset_irrelevant) iset = pdset_uvars
+                CALL GET_SAVED_UVAR_DTYPE(i, iset, itype)
+
+                show_str = 'FLOAT'
+                IF (itype .EQ. ptype_string ) show_str = 'STRING'
+
+                CALL ESCAPE_FOR_XML (show_str, outstring, slen)
+                WRITE ( risc_buff, 2020 ) 'ferret_datatype'
+		
+                CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
+
+                WRITE (risc_buff, 2055) outstring(1:slen)
+                CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
+                WRITE ( risc_buff, 2060 ) 
+                CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)      
+
+	        CALL SHOW_GRID_XML (lun, grid, cx_expr)
+
+	     ENDIF
              WRITE ( risc_buff, 2070 )
              CALL SPLIT_LIST(pttmode_explct, lun, risc_buff, 0)
-
-         ENDIF
+         ENDIF  ! uvar_dset(i) .EQ. dset .AND. uvar_parent(i) .EQ. 0
  600  CONTINUE
 
 
diff --git a/fer/gnl/show_dyn_grids.F b/fer/gnl/show_dyn_grids.F
index 5d32e6d..de60301 100644
--- a/fer/gnl/show_dyn_grids.F
+++ b/fer/gnl/show_dyn_grids.F
@@ -49,6 +49,8 @@
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V697  12/15 *acm* Changes to add details on SHOW GRID uvar to indicate 
 *                   compressed or subsetted axes
+* 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 
 
 * FERRET DOCUMENATION:  dynamic grids and axes
 * (entered 1/2016 *sh*)
@@ -96,6 +98,7 @@
 * local variable declarations:
         LOGICAL show_all, shown, uvgrid
 	INTEGER grid, line, dset, var, count, i, slash_all, status
+	INTEGER ngrids, saved_uvgrid
 	CHARACTER sanity_msg*24
 
 * local parameter declarations
@@ -123,13 +126,26 @@
                GOTO 100
            ENDIF
 * ... sanity check the use count -- must be in use by user vars or dset vars
+
 	   count = 0
            IF (grid .EQ. mgrid_abstract) count = 1  ! is it SET GRID?
-	   DO 125 var = 1, max_uvar	
-	      DO 120 dset = 0, max_gfdl_dsets
-	         IF ( uvar_grid(var,dset) .EQ. grid ) count = count + 1
- 120	      CONTINUE
+	   
+	   DO 125 var = 1, max_uvar
+
+              CALL GET_SAVED_UVAR_GRID_LIST_LEN(var, ngrids)
+	      IF (ngrids .GT. 0) THEN
+
+		 dset = uvar_dset(var)             ! the dset that owns this LET/D
+		 IF (dset .LE. pdset_irrelevant) dset = pdset_uvars  ! global uvars
+		 DO i = 1, ngrids
+		    CALL NCF_NEXT_UVAR_GRID_IN_LIST ( dset, var, i, saved_uvgrid )
+		    IF ( saved_uvgrid .EQ. grid ) count = count + 1
+		 ENDDO
+
+	      ENDIF
+		    
  125	   CONTINUE
+
 	   DO 135 var = 1, maxvars
 	      IF ( ds_grid_number(var) .EQ. grid ) count = count + 1
  135	   CONTINUE
diff --git a/fer/gnl/show_grid.F b/fer/gnl/show_grid.F
index d64d34f..980e927 100644
--- a/fer/gnl/show_grid.F
+++ b/fer/gnl/show_grid.F
@@ -71,6 +71,8 @@
 * V697  12/15 *acm* Changes to add details on SHOW GRID uvar to indicate 
 *                   compressed or subset of axes
 * V697  12/15 *acm* Changes to formatting the output that shows subsets
+* V7    acm  6/16 Ticket 2437: Deprecating mode_6d_lab. 
+*		  Adjust output to 6-D or 4-D grids
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -87,20 +89,11 @@
 	INTEGER grid, cx, status
 
 * local variable declarations:
+	LOGICAL FOUR_D_GRID
 	INTEGER i, idim, listdims, uvar
 
-* If mode 6d_lab has been cancelled, we will list only the first 4 dimensions.
-* But if the grid has E or F axes, thats an error.
-
 	listdims = nferdims
-	IF ( .NOT. mode_6d_lab) listdims = 4
-	
-	status = ferr_ok
-	IF (listdims .LT. nferdims) THEN
-	   DO 90 i = listdims+1,nferdims
-	      IF ( grid_line(i,grid) .NE. mnormal) GOTO 5100
-  90	   CONTINUE
-	ENDIF
+	IF (FOUR_D_GRID(grid)) listdims = 4
 
 * Getting details about the grid of a user-variable
         uvar = -1
@@ -138,8 +131,4 @@
      .          'end',T80,'subset' )
 
 5000    RETURN
-5100	CALL ERRMSG( ferr_invalid_command, status,
-     .		     'variable has more than 4 dimensions. Set mode 6D_LAB'
-     .		     //pCR//cmnd_buff(:len_cmnd),
-     .			*5000 )
 	END
diff --git a/fer/gnl/show_line_coords.F b/fer/gnl/show_line_coords.F
index ff89e4c..c12585a 100644
--- a/fer/gnl/show_line_coords.F
+++ b/fer/gnl/show_line_coords.F
@@ -57,6 +57,8 @@
 *                  dimension is now an arg to SECS_TO_TSTEP.
 * V683  *acm*10/12 Improve handling of F axes and info about the calendar of the grid.
 * V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes. Return integer
+*                  monthly values in these listings
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -75,16 +77,17 @@
 	INTEGER grid, cx, idim
 
 * local variable declarations:
-	LOGICAL	GEOG_LABEL, calendar
+	LOGICAL	GEOG_LABEL, ITSA_TRUEMONTH_AXIS, calendar, true_month
 	INTEGER ISUBSCR_CX, TM_LENSTR, TM_LENSTR1,
-     .          TM_GET_CALENDAR_ID, axis,
+     .          TM_GET_CALENDAR_ID,
      .		lo, hi, i, line, loest, hiest, dlen,
      .		ndec, status, delta, exlen, cal_id,
      .          prev_cal_id, less_figs
 	CHARACTER TM_FMT*14, buff*14, pt_str*20, lo_str*20, extra*24
 	REAL	BOX_SIZE
 	REAL*8	TM_WORLD, SECS_TO_TSTEP,
-     .          pt_val8, lo_val8, start, end, new_ww
+     .          pt_val8, lo_val8, start, end, new_ww, new_lo, new_hi, timefac
+
 
 * local parameter declarations:
 	INTEGER		sig_figs
@@ -92,6 +95,7 @@
 
 * initialize
 	line = grid_line( idim, grid )
+	CALL TM_MONTH_TIME_FACTOR (grid, true_month, timefac)
 
 * ignore bogus lines (should never occur ...)
 	IF ( line .EQ. munknown
@@ -99,7 +103,9 @@
 
 	calendar = (idim.EQ.t_dim .OR. idim.EQ.f_dim) .AND. GEOG_LABEL( idim, grid )	
 	IF ( calendar ) THEN
-	   extra = 'TSTEP ('//line_units(line)
+	   exlen = INDEX(line_units(line), '(') - 1
+	   IF (exlen .LE. 0) exlen = TM_LENSTR(line_units(line))
+	   extra = 'TSTEP ('//line_units(line)(:exlen)
 	   extra = extra(:TM_LENSTR(extra))//')'
 	ELSE
 	   extra = ' '
@@ -132,9 +138,9 @@
 
 	   IF ( (idim.EQ.t_dim .OR. idim.EQ.f_dim) .AND. cx_calendar(idim,cx) ) THEN
 
-              axis = grid_line(idim, grid)
-	      IF (line_t0(axis) .EQ. char_init20) GOTO 110  ! Not a calendar ax (e.g. f axis)
-              cal_id = TM_GET_CALENDAR_ID(line_cal_name(axis))
+
+	      IF (line_t0(line) .EQ. char_init20) GOTO 110  ! Not a calendar ax (e.g. f axis)
+              cal_id = TM_GET_CALENDAR_ID(line_cal_name(line))
               cx_cal_id(cx) = cal_id
 
 	      start = cx_lo_ww(idim,cx)
@@ -151,7 +157,6 @@
 	         CALL RESET_SECS_FROM_BC (-end, new_ww, prev_cal_id, 
      .                                    cal_id, status)
 	         IF ( status .NE. ferr_ok ) RETURN
-
 	         cx_hi_ww(idim,cx) = new_ww
 
               ELSE IF ( (idim.EQ.t_dim .OR. idim.EQ.f_dim)  .AND. 
@@ -167,6 +172,24 @@
               cx_hi_ww(idim,cx) =
      .		   SECS_TO_TSTEP( grid, idim, cx_hi_ww(idim,cx) )
  
+* Convert to months
+
+	          cx_lo_ww(idim,cx) = cx_lo_ww(idim,cx)/ timefac
+	          cx_hi_ww(idim,cx) = cx_hi_ww(idim,cx)/ timefac
+
+              IF (true_month) THEN
+c          cx_lo_ww(idim,cx) = INT(cx_lo_ww(idim,cx))
+c	          cx_hi_ww(idim,cx) = INT(cx_lo_ww(idim,cx)+1) 
+	          CALL TM_TCOORD_TRUMONTH (line, cx_lo_ww(idim,cx),  
+     .		    box_middle, new_lo)
+	          CALL TM_TCOORD_TRUMONTH (line, cx_hi_ww(idim,cx),  
+     .		    box_middle, new_hi)
+     
+* Convert to days
+	          cx_lo_ww(idim,cx) = new_lo* timefac
+	          cx_hi_ww(idim,cx) = new_hi* timefac
+
+              ENDIF
 
 * reset cx_calendar now that cx_lo/hi_ww have been converted
               cx_calendar(idim,cx) = .FALSE.
@@ -186,18 +209,28 @@
 	ENDIF
 
 * write lines of coord and box size data
+	IF ( calendar ) THEN
+	   ndec = 6	! was 5 1/95
+	ELSE
+	   ndec = -sig_figs
+	ENDIF
+	IF (true_month) ndec = 2
+
 	DO 120 i = lo, hi, delta
 	   IF ( interrupted ) CALL ERRMSG
      .		( ferr_interrupt, status, ' ', *1000 )
 	   lo_val8 = TM_WORLD( i, grid, idim, box_lo_lim )
 	   pt_val8 = TM_WORLD( i, grid, idim, box_middle )
-	   IF ( calendar ) THEN
-	      ndec = 6	! was 5 1/95
+	   CALL TRANSLATE_TO_WORLD( pt_val8,idim,grid,ndec,pt_str )
+	   
+	   IF (true_month) THEN  ! show in months
+	      CALL TRANSLATE_TO_WORLD( lo_val8,idim,grid,ndec+1,lo_str )
+	      pt_val8 = INT((pt_val8+1)/timefac)
+	      
 	   ELSE
-	      ndec = -sig_figs
+	      CALL TRANSLATE_TO_WORLD( lo_val8,idim,grid,ndec,lo_str )
 	   ENDIF
-	   CALL TRANSLATE_TO_WORLD( pt_val8,idim,grid,ndec,pt_str )
-	   CALL TRANSLATE_TO_WORLD( lo_val8,idim,grid,ndec,lo_str )
+
 #ifdef double_p
 	   IF ( calendar ) extra = 
      .	         	TM_FMT( (pt_val8), sig_figs, 14, dlen )
diff --git a/fer/gnl/show_line_xml.F b/fer/gnl/show_line_xml.F
index 6b7ac92..08218b4 100644
--- a/fer/gnl/show_line_xml.F
+++ b/fer/gnl/show_line_xml.F
@@ -54,6 +54,7 @@
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
 *      *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 *      *acm* 3/13 Dont show axes with names in parentheses e.g. (AX004)
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -75,8 +76,10 @@
 	INTEGER 	lun, line
 
 * local variable declarations:
+
 	LOGICAL		TM_ITS_SUBSPAN_MODULO, NC_GET_ATTRIB, GEOG_LABEL, 
-     .                  got_it, calendar, bounds_done
+     .                  ITSA_TRUEMONTH_AXIS,
+     .			got_it, calendar, bounds_done, do_bounds
 	INTEGER		idim, orient, slen, iset, dset, alen, igrid
 	INTEGER		TM_LENSTR1, TM_GET_CALENDAR_ID, cal_id, status
 	CHARACTER	TM_FMT*32, buff*80, outbuff*20
@@ -339,7 +342,8 @@ C New form for attribute output, list values separately.
 * Write a bounds attribute for unevenly-spaced axes even if the intput file
 * didnt have a bounds or edges attribute.
 
-	IF ( (.NOT.bounds_done) .AND. (.NOT.line_regular( line )) ) THEN
+	do_bounds = ITSA_TRUEMONTH_AXIS(line) .OR. .NOT.line_regular( line )
+	IF ( (.NOT.bounds_done) .AND. do_bounds ) THEN
 	   attname = 'bounds'
 	   atype = 'char'
 	   slen = TM_LENSTR1(attname)
diff --git a/fer/stk/explicit_uvar.F b/fer/gnl/show_mem_usage_line.F
similarity index 73%
copy from fer/stk/explicit_uvar.F
copy to fer/gnl/show_mem_usage_line.F
index 7e481f2..d744e2a 100644
--- a/fer/stk/explicit_uvar.F
+++ b/fer/gnl/show_mem_usage_line.F
@@ -1,4 +1,4 @@
-	LOGICAL FUNCTION EXPLICIT_UVAR( uvar )
+	SUBROUTINE SHOW_MEM_USAGE_LINE ( prefix, mem )
 
 *
 *
@@ -35,26 +35,42 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* determine if the given "user-defined" variable was explicitly created (with
-* DEFINE VARIABLE) or implicitly (e.g. with LIST U*V)
+* display a single line about memory usage with nice formatting
 
-
-* programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 * written for VAX computer under VMS operating system
-*
-* V200:   8/8/89
-*       *acm* 3/12 cleanup ifdefs and unnecessary include files
-*       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+
+* V702  1/17 
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
-	include 'xvariables.cmn'
+	include 'xprog_state.cmn'
+	include 'xrisc.cmn'
 
 * calling argument declarations:
-	INTEGER	uvar
+	INTEGER*8 mem
+	CHARACTER*(*)	prefix
+
+* internal variable declarations:
+	INTEGER TM_LENSTR1, len, i1, prelen
+	CHARACTER TM_FMT*12,
+     .		  units*16, num_str*12
+
+        IF (mem .GT. 1000000) THEN
+           num_str = TM_FMT( mem/1.E6, 8, 12, len)
+           units = ' megawords'
+           i1 = 10
+        ELSE 
+           num_str = TM_FMT( FLOAT(mem), 8, 12, len)
+           units = ' words'
+           i1 = 6
+        ENDIF
 
-	EXPLICIT_UVAR = INDEX( uvar_name_code(uvar), '#' ) .EQ. 0
+	prelen = TM_LENSTR1(prefix)
+	
+        risc_buff = '    '//prefix(:prelen)//': '//
+     .		    num_str(:len)//units(:i1)
+	CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
 
 	RETURN
 	END
diff --git a/fer/gnl/show_region.F b/fer/gnl/show_region.F
index d2a0bdc..fbd8035 100644
--- a/fer/gnl/show_region.F
+++ b/fer/gnl/show_region.F
@@ -54,6 +54,8 @@
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V6.8  acm  6/12 Implement mode_6d_lab, set by default. If cancelled, the 
 *                 various SHOW commnands will not list info for E,F dimensions.
+* V7    acm  6/16 Ticket 2437: Deprecating mode_6d_lab. 
+*		  Adjust output to 6-D or 4-D grids
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
diff --git a/fer/gnl/special_symbol.F b/fer/gnl/special_symbol.F
index f9df96a..a7848ac 100644
--- a/fer/gnl/special_symbol.F
+++ b/fer/gnl/special_symbol.F
@@ -67,6 +67,8 @@
 * V68   1/12 *acm*- Symbol FERRET_PRECISION is single or double.
 * V68   3/12 *acm*- Symbol SESSION_PID for the process ID
 * 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
 
 * calling argument declarations:
 	INTEGER	  isym, slen
@@ -74,7 +76,7 @@
 
 * internal parameter declaration
 	INTEGER nspecial
-	PARAMETER (nspecial = 17)
+	PARAMETER (nspecial = 19)
 
 * internal variable declarations:
 	INTEGER STR_UPCASE, TM_LENSTR, i, i1, ierr, wsid, 
@@ -82,7 +84,8 @@
 c        REAL DTIME 
         REAL TArray(2), dtime_res, clock_secs, count, cputime_now
 	CHARACTER special(nspecial)*16, upname*16
-	CHARACTER LEFINT*16, TM_FMT*12, NF_INQ_LIBVERS*80, NF_INQ_LIBVERS_*80
+	CHARACTER LEFINT*16, TM_FMT*12, NF_INQ_LIBVERS*80, NF_INQ_LIBVERS_*80,
+     .		  LEFINT8*16
         CHARACTER*10 current_date, current_time, zone
 	INTEGER itimes(8)
 
@@ -103,7 +106,9 @@ c        REAL DTIME
      .	     special(14)/ 'CURRENT_DATE' /,
      .	     special(15)/ 'CURRENT_TIME' /,
      .	     special(16)/ 'N_OPEN_DSETS' /,
-     .	     special(17)/ 'PROGRAM_NAME' /
+     .	     special(17)/ 'PROGRAM_NAME' /,
+     .	     special(18)/ 'PEAK_MEMORY' /,
+     .	     special(19)/ 'SPAWN_STATUS' /
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -114,6 +119,7 @@ c        REAL DTIME
 	include 'xvariables.cmn'
 #	include "tmap_dset.parm"
 	include 'xdset_info.cmn_text'
+	include 'xprog_state.cmn'	! for spawn_status
 
 * #ifdef for endianness info.
 #ifdef sun
@@ -146,25 +152,33 @@ c        REAL DTIME
 
  200	GOTO (1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 
      .        1900, 2000, 2100, 2200, 2300, 2400, 2500, 2600,
-     .        2700) i
-
-* PPL$XPIXEL, PPL$YPIXEL
- 1100	CONTINUE
-* ... determine the current output window (GKS wkstn ID, that is)
- 1200	DO 1230 wsid = 1, max_windows
-           IF ( wn_active(wsid) ) GOTO 1240
- 1230   CONTINUE
+     .        2700, 2800, 2900 ) i
+
+* PPL$XPIXEL
+* get the horizontal pixels size of the window as specified by the user
+ 1100   DO 1110 wsid = 1, max_windows
+           IF ( wn_active(wsid) ) THEN
+               value = LEFINT(NINT(wn_xpixels(wsid)),slen)
+               RETURN
+           ENDIF
+ 1110   CONTINUE
 * ... no currently active window
-	value = '0'
-	slen = 1
-	RETURN
- 1240	CALL GET_WINDOW_PIXELS(wsid, nxpix, nypix)
-	IF ( i.EQ.1 ) THEN
-	   value = LEFINT(nxpix,slen)
-	ELSE
-	   value = LEFINT(nypix,slen)
-	ENDIF
-	RETURN
+        value = '0'
+        slen = 1
+        RETURN
+
+* PPL$YPIXEL
+* get the vertical pixels size of the window as specified by the user
+ 1200   DO 1210 wsid = 1, max_windows
+           IF ( wn_active(wsid) ) THEN
+               value = LEFINT(NINT(wn_ypixels(wsid)),slen)
+               RETURN
+           ENDIF
+ 1210   CONTINUE
+* ... no currently active window
+        value = '0'
+        slen = 1
+        RETURN
 
 * BYTEORDER - get byteorder of this architecture
  1300	IF (active_cpu .EQ. cptype_sun) THEN
@@ -208,7 +222,7 @@ c        REAL DTIME
 	RETURN
 
 * FERRET_MEMORY
- 1800	value = TM_FMT(max_mem_blks*mem_blk_size/1.E6,3,12,llen)
+ 1800	value = TM_FMT(max_mem_allowed/1.E6,3,12,llen)
 	slen = llen
 	RETURN
 
@@ -306,5 +320,17 @@ c        CALL DTIME(TArray)
         slen = 8
         RETURN
 
+* PEAK_MEMORY
+ 2800	value = LEFINT8(peak_mem,slen)
+        RETURN
+
+* SPAWN_STATUS
+ 2900	IF (spawn_status) THEN
+	   value = "1"
+	ELSE
+	   value = "0"
+	ENDIF
+	slen = 1
+        RETURN
 
 	END
diff --git a/fer/gnl/translate_limit.F b/fer/gnl/translate_limit.F
index efbfce6..2a50596 100644
--- a/fer/gnl/translate_limit.F
+++ b/fer/gnl/translate_limit.F
@@ -67,6 +67,8 @@
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 *       *acm* 4/12 6D Ferret: time axis may be in t or f direction.
 * V693+ *sh* 2/15 - added support for _DQ_ quotations
+* V72   *acm* 11/16 - improve error message for invalid date strings
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
 * possible formats:
 * for subscript values ( subscript .EQ. .TRUE. ) :
@@ -95,7 +97,7 @@
 	INTEGER		TM_LENSTR1, end_pos, start_pos, pbad, i, 
      .                  slen, j, cal_id
 	REAL*8		SECS_FROM_BC, given_answer
-	CHARACTER	buff*32				! for AIX port 10/95
+	CHARACTER	buff*60				! for AIX port 10/95
 
 * internal parameter declarations:
 	CHARACTER*1	tab
@@ -199,7 +201,10 @@
 	      answer = -1.D0 * SECS_FROM_BC( buff(:slen), cal_id, 
      .                                       status )
 	      formatted = .TRUE.
-	      IF ( status .NE. ferr_ok ) GOTO 5000
+	      IF ( status .NE. ferr_ok ) THEN 
+	         buff = buff(:slen)//' is not valid in this calendar'
+		 GOTO 5200
+	      ENDIF
            ELSE
 * ... read it as a time step value
 	      READ ( buff,* , ERR=5000 ) answer
@@ -215,6 +220,7 @@
  5100	CALL ERRMSG( ferr_syntax, status,
      .		'"'//risc_buff(pbad:pbad)//'" is illegal in '//
      .		risc_buff(:len_rbuff), *5900 )
+ 5200	CALL ERRMSG( ferr_syntax, status, buff, *5900)
  5900	RETURN
 
 	END
diff --git a/fer/gnl/var_stat.F b/fer/gnl/var_stat.F
index dc4569e..9305d20 100644
--- a/fer/gnl/var_stat.F
+++ b/fer/gnl/var_stat.F
@@ -1,4 +1,4 @@
-	SUBROUTINE VAR_STAT( dat, mv, cx, lun, full, status )
+	SUBROUTINE VAR_STAT( dat, mv, cx, lun, full, stat_digits, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -73,6 +73,7 @@
 * V6.68  acm 3/14 ticket 2148: fix truncated ntot or nbad in stat listing
 * v6.931 acm 11/14 Delete ALL the stat* symbols that may be left over from 
 *                  a previous evaluation. STAT/BRIEF does not reset them all.
+* V720 *acm*  3/17 Ticket 2512: Add STAT/PRECICISION=
 
 	include 'tmap_dims.parm'
 	include 'errmsg.parm'
@@ -89,14 +90,14 @@
 
 * calling argument declarations:
 	LOGICAL	full
-	INTEGER	mv, cx, lun, status
+	INTEGER	mv, cx, lun, stat_digits, status
 	REAL    dat( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,m1lot:m1hit,m1loe:m1hie,m1lof:m1hif )
 
 * internal variable declarations:
 	INTEGER	TM_LENSTR1, CGRID_SIZE, GET_MAX_STRING_LEN,
      .		i, j, k, l, m, n, nbad, ngood, ntot, idim,
      .		len_line, len_set_name, grid, slen, i1, i2, nok, 
-     .		listdims, nfig
+     .		listdims, nfig, max_dig
 	REAL	datum, bad, std_dev, large, small, mean, sumsq_dev, dev
 	REAL*8	sum, sum2, xmean, zmean, x, xdelta, variance_c, diff
 
@@ -119,6 +120,13 @@
 	sum   = 0.0D0
         sumsq_dev = 0.0
 
+	max_dig = 0
+	IF (stat_digits .NE. 0) THEN
+	   max_dig = stat_digits
+	ELSE
+	   stat_digits = sig_fig
+	ENDIF
+
 	listdims = nferdims
 	IF ( .NOT. mode_6d_lab) listdims = 4
 
@@ -289,18 +297,18 @@
      .			' # flagged as bad  data: '//rbuff(1),0)
 	IF ( ngood .GT. 0 ) THEN
 	   nfig = 0
-           rbuff(1) = TM_FMT(small, sig_fig, 12, slen)
-           rbuff(2) = TM_FMT(large, sig_fig, 12, slen)
+           rbuff(1) = TM_FMT(small, stat_digits, 16, slen)
+           rbuff(2) = TM_FMT(large, stat_digits, 16, slen)
 	   diff = (large-small)/MAX( ABS(large), ABS(small) )
 	   IF (diff.LT.0.01 .AND. ngood.GT.1) THEN
-	      nfig = 4
-              rbuff(1) = TM_FMT(small, sig_fig+nfig, 20, slen)
-              rbuff(2) = TM_FMT(large, sig_fig+nfig, 20, slen)
+	      IF (max_dig .EQ. 0) nfig = 4
+              rbuff(1) = TM_FMT(small, stat_digits+nfig, 20, slen)
+              rbuff(2) = TM_FMT(large, stat_digits+nfig, 20, slen)
 	      diff = (large-small)/MAX( ABS(large), ABS(small) )
 	      IF (diff .LT. 1.e-7) THEN
-	        nfig = 16-sig_fig
-	        rbuff(1) = TM_FMT(small, sig_fig+nfig, 20, slen)
-	        rbuff(2) = TM_FMT(large, sig_fig+nfig, 20, slen)
+	       IF (max_dig .EQ. 0) nfig = 16-stat_digits
+	        rbuff(1) = TM_FMT(small, stat_digits+nfig, 20, slen)
+	        rbuff(2) = TM_FMT(large, stat_digits+nfig, 20, slen)
 	      ENDIF
 	   ENDIF
 
@@ -308,7 +316,7 @@
               rbuff(3) = '**too big**'
 	      slen = 11
            ELSE
-              rbuff(3) = TM_FMT(mean , sig_fig+nfig, 20, slen)
+              rbuff(3) = TM_FMT(mean , stat_digits+nfig, 20, slen)
            ENDIF
 	   CALL SPLIT_LIST(pttmode_explct, lun,
      .			' Minimum value: '//rbuff(1), 0)
@@ -371,7 +379,7 @@
            IF ( sumsq_dev .GE. 3.E35 ) THEN
               rbuff(1) = ' **too big**' 
            ELSE
-              rbuff(1) = TM_FMT(std_dev, sig_fig, 12, slen)
+              rbuff(1) = TM_FMT(std_dev, stat_digits, 16, slen)
            ENDIF
 	   CALL SPLIT_LIST(pttmode_explct, lun,
      .			' Standard deviation: '//rbuff(1), 0)
diff --git a/fer/grdel/Makefile b/fer/grdel/Makefile
index e2a88e1..d90dd8f 100644
--- a/fer/grdel/Makefile
+++ b/fer/grdel/Makefile
@@ -12,18 +12,11 @@ COBJS = $(CSRCS:.c=.o)
 FSRCS = $(wildcard *.F)
 FOBJS = $(FSRCS:.F=.o)
 
+# CFLAGS already modified to include debug or optimization flags
+# Just add the additional warning flags to CFLAGS
 .PHONY : all
-all : optimized
-
-.PHONY : optimized
-optimized :
-	$(MAKE) "CFLAGS = $(CFLAGS) -Wall -Werror -DNDEBUG -O" \
-		"FFLAGS = $(FFLAGS) -DNDEBUG -O" $(LIBNAME)
-
-.PHONY : debug
-debug :
-	$(MAKE) "CFLAGS = $(CFLAGS) -Wall -Werror -DVERBOSEDEBUG -O0 -g" \
-		"FFLAGS = $(FFLAGS) -O0 -g" $(LIBNAME)
+all : 
+	$(MAKE) "CFLAGS = $(CFLAGS) -Wall -Werror" $(LIBNAME)
 
 $(LIBNAME) : $(COBJS) $(FOBJS)
 	$(AR) $(ARFLAGS) $(LIBNAME) $(COBJS) $(FOBJS)
diff --git a/fer/grdel/draw.c b/fer/grdel/draw.c
index 33b678a..3bc76bf 100644
--- a/fer/grdel/draw.c
+++ b/fer/grdel/draw.c
@@ -39,7 +39,9 @@ grdelBool grdelDrawMultiline(grdelType window, const float ptsx[],
 
 #ifdef VERBOSEDEBUG
     fprintf(debuglogfile, "grdelDrawMultiline called: "
-            "window = %p, pen = %p\n", window, pen);
+            "window = %p, pen = %p, numpts = %d\n", window, pen, numpts);
+    for (k = 0; k < numpts; k++)
+        fprintf(debuglogfile, "   pt[%d] = (%f,%f)\n", k, ptsx[k], ptsy[k]);
     fflush(debuglogfile);
 #endif
 
@@ -185,7 +187,10 @@ grdelBool grdelDrawPoints(grdelType window, const float ptsx[],
 
 #ifdef VERBOSEDEBUG
     fprintf(debuglogfile, "grdelDrawPoints called: "
-            "window = %p, symbol = %p, color = %p", window, symbol, color);
+            "window = %p, symbol = %p, color = %p, ptsize = %f, numpts = %d", 
+            window, symbol, color, ptsize, numpts);
+    for (k = 0; k < numpts; k++)
+        fprintf(debuglogfile, "   pt[%d] = (%f,%f)\n", k, ptsx[k], ptsy[k]);
     fflush(debuglogfile);
 #endif
 
@@ -340,7 +345,10 @@ grdelBool grdelDrawPolygon(grdelType window, const float ptsx[],
 
 #ifdef VERBOSEDEBUG
     fprintf(debuglogfile, "grdelDrawPolygon called: "
-            "window = %p, brush = %p, pen = %p\n", window, brush, pen);
+            "window = %p, brush = %p, pen = %p, numpts = %d\n", 
+            window, brush, pen, numpts);
+    for (k = 0; k < numpts; k++)
+        fprintf(debuglogfile, "   pt[%d] = (%f,%f)\n", k, ptsx[k], ptsy[k]);
     fflush(debuglogfile);
 #endif
 
@@ -505,7 +513,9 @@ grdelBool grdelDrawRectangle(grdelType window, float left, float bottom,
 
 #ifdef VERBOSEDEBUG
     fprintf(debuglogfile, "grdelDrawRectangle called: "
-            "window = %p, brush = %p, pen = %p\n", window, brush, pen);
+            "window = %p, brush = %p, pen = %p\n"
+            "   left = %f, bottom = %f, right = %f, top = %f\n", 
+            window, brush, pen, left, bottom, right, top);
     fflush(debuglogfile);
 #endif
 
@@ -617,8 +627,8 @@ grdelBool grdelTextSize(grdelType window, const char *text, int textlen,
     double my, sx, sy, dx, dy;
 
 #ifdef VERBOSEDEBUG
-    fprintf(debuglogfile, "grdelDrawText called: "
-            "window = %p, font = %p\n", window, font);
+    fprintf(debuglogfile, "grdelTextSize called: "
+            "window = %p, font = %p, text = '%.*s'\n", window, font, textlen, text);
     fflush(debuglogfile);
 #endif
 
@@ -673,6 +683,12 @@ grdelBool grdelTextSize(grdelType window, const char *text, int textlen,
     *fltwidthptr = (float) (width / sx);
     *fltheightptr = (float) (height / sy);
 
+#ifdef VERBOSEDEBUG
+    fprintf(debuglogfile, "grdelTextSize reponse: width = %f, height = %f\n", 
+                          *fltwidthptr, *fltheightptr);
+    fflush(debuglogfile);
+#endif
+
     return 1;
 }
 
@@ -708,7 +724,8 @@ grdelBool grdelDrawText(grdelType window, const char *text, int textlen,
 
 #ifdef VERBOSEDEBUG
     fprintf(debuglogfile, "grdelDrawText called: "
-            "window = %p, font = %p, color = %p\n", window, font, color);
+            "window = %p, font = %p, color = %p, rotate = %f, text = '%.*s'\n", 
+             window, font, color, rotate, textlen, text);
     fflush(debuglogfile);
 #endif
 
diff --git a/fer/grdel/fgd_gopwk.F b/fer/grdel/fgd_gopwk.F
index 64c082d..ecdb53b 100644
--- a/fer/grdel/fgd_gopwk.F
+++ b/fer/grdel/fgd_gopwk.F
@@ -9,6 +9,7 @@
 *
 * Values used from fgrdel.cmn:
 *     enginename
+*     rasteronly
 *     windowtitle
 *     antialias
 *     thickfactor
@@ -26,8 +27,8 @@
 
         INTEGER TM_LENSTR
 
-        INTEGER engnamelen, wintitlelen, showit, 
-     .          noalpha, success, errmsglen, aaint
+        INTEGER engnamelen, wintitlelen, showit, noalpha, 
+     .          success, errmsglen, aaint, roint
         CHARACTER*2048 errmsg
         REAL*4 redf, greenf, bluef, opaquef
 
@@ -46,9 +47,16 @@
         showit = 1
 *       ignoring alpha in colors ?
         noalpha = 0
+*       raster only ?
+        IF ( rasteronly ) THEN
+            roint = 1
+        ELSE
+            roint = 0
+        ENDIF
         CALL FGDWINCREATE(windowobjs(windowid),
      .                    enginename(windowid), engnamelen,
-     .                    windowtitle, wintitlelen, showit, noalpha)
+     .                    windowtitle, wintitlelen, showit, 
+     .                    noalpha, roint)
         IF ( windowobjs(windowid) .EQ. nullobj ) THEN
             errmsg = ' '
             CALL FGDERRMSG(errmsg, errmsglen)
diff --git a/fer/grdel/fgd_set_unmapped_default.F b/fer/grdel/fgd_set_unmapped_default.F
index 53c89a3..95b81e5 100644
--- a/fer/grdel/fgd_set_unmapped_default.F
+++ b/fer/grdel/fgd_set_unmapped_default.F
@@ -3,15 +3,21 @@
 * all windows to a no-display engine (Cairo).  This is only called 
 * at start-up time before anything has been displayed.
 *
-        SUBROUTINE FGD_SET_UNMAPPED_DEFAULT()
+        SUBROUTINE FGD_SET_UNMAPPED_DEFAULT(pngonly)
 
         IMPLICIT NONE
 
         INCLUDE 'fgrdel.cmn'
 
+        INTEGER pngonly
         INTEGER k
 
         defaultenginename = 'Cairo'
+        IF ( pngonly .EQ. 0 ) THEN
+            rasteronly = .FALSE.
+        ELSE
+            rasteronly = .TRUE.
+        ENDIF
         DO 10 k = 1, maxwindowobjs
             enginename(k) = 'Cairo'
             antialias = .TRUE.
diff --git a/fer/grdel/grdel.h b/fer/grdel/grdel.h
index ebbcbc6..2c8e69c 100644
--- a/fer/grdel/grdel.h
+++ b/fer/grdel/grdel.h
@@ -75,7 +75,7 @@ void fgd_get_view_limits_(float *lftfrc, float *rgtfrc,
 void fgd_getdpi_(int *windowid, float *dpix, float *dpiy);
 void fgd_gswkvp_(int *windowid, float *xmin, float *xmax,
                                 float *ymin, float *ymax);
-void fgd_set_unmapped_default_(void);
+void fgd_set_unmapped_default_(int *pngonly);
 void fgd_set_transparency_(int *transparent);
 void fgd_getanimate_(int *inanimation);
 
@@ -87,7 +87,8 @@ void fgd_getanimate_(int *inanimation);
 
 grdelType grdelWindowCreate(const char *engine, int enginelen,
                             const char *title, int titlelen, 
-                            grdelBool visible, grdelBool noalpha);
+                            grdelBool visible, grdelBool noalpha,
+                            grdelBool rasteronly);
 const BindObj *grdelWindowVerify(grdelType window);
 grdelBool grdelWindowDelete(grdelType window);
 grdelBool grdelWindowClear(grdelType window, grdelType fillcolor);
@@ -113,7 +114,8 @@ grdelBool grdelWindowSetWidthFactor(grdelType window, float widthfactor);
  * Fortran interfaces for the Window functions.
  */
 void fgdwincreate_(void **window, char *engine, int *enginelen,
-                   char *title, int *titlelen, int *visible, int *noalpha);
+                   char *title, int *titlelen, int *visible, 
+                   int *noalpha, int *rasteronly);
 void fgdwindelete_(int *success, void **window);
 void fgdwinclear_(int *success, void **window, void **fillcolor);
 void fgdwinredraw_(int *success, void **window, void **fillcolor);
@@ -125,7 +127,7 @@ void fgdwinsetvis_(int *success, void **window, int *visible);
 void fgdwinsave_(int *success, void **window, char *filename, int *namelen,
                  char *fileformat, int *formatlen, int *tranparentbkg,
                  float *xinches, float *yinches, int *xpixels, int *ypixels,
-                 void **memory, int *firststr, int *numstr);
+                 void **firststr, int *numstr);
 void fgdwinscreeninfo_(int *success, void **window, float *dpix, float *dpiy,
                        int *screenwidth, int* screenheight);
 void fgdwinsetwidthfactor_(int *success, void **window, float *widthfactor);
diff --git a/fer/grdel/window.c b/fer/grdel/window.c
index b5d605d..fc45a68 100644
--- a/fer/grdel/window.c
+++ b/fer/grdel/window.c
@@ -24,7 +24,6 @@
 #include "cferbind.h"
 #include "pyferret.h"
 
-
 #ifdef VERBOSEDEBUG
 #include <stdio.h>
 #include <stdlib.h>
@@ -88,6 +87,7 @@ void fgderrmsg_(char *errmsg, int *errmsglen)
  *     titlelen: actual length of the title
  *     visible: display Window on start-up?
  *     noalpha: do not use the alpha channel (opacity) in colors
+ *     rasteronly: only create raster images
  *
  * Returns a pointer to the window object created.
  * If an error occurs, NULL is returned and
@@ -95,11 +95,13 @@ void fgderrmsg_(char *errmsg, int *errmsglen)
  */
 grdelType grdelWindowCreate(const char *engine, int enginelen,
                             const char *title, int titlelen, 
-                            grdelBool visible, grdelBool noalpha)
+                            grdelBool visible, grdelBool noalpha, 
+                            grdelBool rasteronly)
 {
     GDWindow *window;
     PyObject *visiblebool;
     PyObject *noalphabool;
+    PyObject *rasteronlybool;
 
     /* Allocate memory for this GDWindow */
     window = (GDWindow *) PyMem_Malloc(sizeof(GDWindow));
@@ -118,7 +120,7 @@ grdelType grdelWindowCreate(const char *engine, int enginelen,
      * This will fail if it is a Python-based engine.
      */
     window->bindings.cferbind = cferbind_createWindow(engine, enginelen,
-                                         title, titlelen, visible, noalpha);
+                           title, titlelen, visible, noalpha, rasteronly);
     if ( window->bindings.cferbind != NULL ) {
         /* Success - engine found; done */
 #ifdef VERBOSEDEBUG
@@ -151,10 +153,16 @@ grdelType grdelWindowCreate(const char *engine, int enginelen,
         noalphabool = Py_True;
     else
         noalphabool = Py_False;
+    if ( rasteronly )
+        rasteronlybool = Py_True;
+    else
+        rasteronlybool = Py_False;
     window->bindings.pyobject = 
             PyObject_CallMethod(pyferret_graphbind_module_pyobject, 
-                                "createWindow", "s#s#OO", engine, enginelen,
-                                title, titlelen, visiblebool, noalphabool);
+                                "createWindow", "s#s#OOO", 
+                                engine, enginelen,
+                                title, titlelen, 
+                                visiblebool, noalphabool, rasteronlybool);
     if ( window->bindings.pyobject == NULL ) {
         sprintf(grdelerrmsg, "grdelWindowCreate: error when calling createWindow "
                              "in pyferret.graphbind: %s", pyefcn_get_error());
@@ -851,7 +859,11 @@ grdelBool grdelWindowSave(grdelType window, const char *filename,
                 return 0;
             }
             for (k = 0; k < numannotations; k++) {
+#if PY_MAJOR_VERSION > 2
+                annostrobj = PyUnicode_FromString((char *) annotations[k * 8 / sizeof(void *)]);
+#else
                 annostrobj = PyString_FromString((char *) annotations[k * 8 / sizeof(void *)]);
+#endif
                 if ( annostrobj == NULL ) {
                     Py_DECREF(annostuple);
                     strcpy(grdelerrmsg, "grdelWindowSave: unexpected error, "
@@ -954,6 +966,13 @@ grdelBool grdelWindowScreenInfo(grdelType window, float *dpix, float *dpiy,
         return 0;
     }
 
+#ifdef VERBOSEDEBUG
+    fprintf(debuglogfile, "grdelWindowScreenInfo response: "
+                          "dpix = %f, dpiy = %f, screenwidth = %d, screenheight = %d\n",
+                          *dpix, *dpiy, *screenwidth, *screenheight);
+    fflush(debuglogfile);
+#endif
+
     return 1;
 }
 
@@ -997,7 +1016,9 @@ int  grdelWindowSetDpi(grdelType window, float newdpi)
                             "no bindings associated with this Window");
         return 0;
     }
-    /* (at this time) anything with only C bindings has no display associated with it */
+    if ( mywindow->bindings.cferbind->setWindowDpi == NULL ) {
+        return -1;
+    }
     mywindow->bindings.cferbind->setWindowDpi(mywindow->bindings.cferbind, (double) newdpi);
     return 1;
 }
@@ -1070,17 +1091,19 @@ grdelBool grdelWindowSetWidthFactor(grdelType window, float widthfactor)
  *     titlelen: actual length of the title
  *     visible: display Window on start-up? If zero, no; if non-zero, yes.
  *     noalpha: do not use the alpha channel (opacity) in colors ?
+ *     rasteronly: only create raster images
  * Output Arguments:
  *     window: the window object created, or zero if failure.
  *             Use fgderrmsg_ to retreive the error message.
  */
 void fgdwincreate_(void **window, char *engine, int *enginelen,
-                   char *title, int *titlelen, int *visible, int *noalpha)
+                   char *title, int *titlelen, int *visible, 
+                   int *noalpha, int *rasteronly)
 {
     grdelType mywindow;
 
-    mywindow = grdelWindowCreate(engine, *enginelen, title, 
-                                 *titlelen, *visible, *noalpha);
+    mywindow = grdelWindowCreate(engine, *enginelen, title, *titlelen, 
+                                 *visible, *noalpha, *rasteronly);
     *window = mywindow;
 }
 
@@ -1276,9 +1299,8 @@ void fgdwinsetvis_(int *success, void **window, int *visible)
  *     yinches: vertical size of vector image in inches
  *     xpixels: horizontal size of raster image in pixels
  *     ypixels: vertical size of raster image in pixels
- *     memory: ferret memory containing annotation C strings; 
- *             pointers are always 8 bytes apart
- *     firststr: offset into memory of the first annotation C string
+ *     firststr: ferret memory pointer to the first annotation C string;
+ *               pointers are always 8 bytes apart
  *     numstr: number of annotation C strings
  *
  * If formatlen is zero, the fileformat is guessed from the
@@ -1291,15 +1313,14 @@ void fgdwinsetvis_(int *success, void **window, int *visible)
 void fgdwinsave_(int *success, void **window, char *filename, int *namelen,
                  char *fileformat, int *formatlen, int *transparentbkg,
                  float *xinches, float *yinches, int *xpixels, int *ypixels,
-                 void **memory, int *firststr, int *numstr)
+                 void **firststr, int *numstr)
 {
     grdelBool result;
 
     result = grdelWindowSave(*window, filename, *namelen,
                              fileformat, *formatlen, *transparentbkg,
                              *xinches, *yinches, *xpixels, *ypixels,
-                             &(memory[(*firststr) * 8 / sizeof(void *)]), 
-                             *numstr);
+                             firststr, *numstr);
     *success = result;
 }
 
diff --git a/fer/ino/SOURCE_FILES b/fer/ino/SOURCE_FILES
index 0e887fd..659ba80 100644
--- a/fer/ino/SOURCE_FILES
+++ b/fer/ino/SOURCE_FILES
@@ -7,7 +7,6 @@ init_ez_dset.F\
 read_ez.F\
 read_binary.F\
 read_delimited.F\
-read_perl.F\
 read_remote.F\
 read_tm.F\
 repl_tm_find_grid_slot.F\
diff --git a/fer/ino/cdf_prep_cache.F b/fer/ino/cdf_prep_cache.F
index 758203c..2d9a33d 100644
--- a/fer/ino/cdf_prep_cache.F
+++ b/fer/ino/cdf_prep_cache.F
@@ -1,4 +1,4 @@
-	SUBROUTINE CDF_PREP_CACHE( dflt_cx, filename, nvars, memory,
+	SUBROUTINE CDF_PREP_CACHE( dflt_cx, filename, nvars, 
      .			           mrlist, cxlist, clobber, status )
 
 *
@@ -49,6 +49,8 @@
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
 * V685 *acm*  3/13 For Ensemble aggregations, call the ds_type 'ENS'
 * V695 *acm*  2/15 For Forecast aggregations, call the ds_type 'FCT'
+* V7   *acm*  6/12 Add Union aggregations: DEFINE DATA/AGG/U, ds_type 'UNI'
+
 
         include 'tmap_errors.parm'
         include 'tmap_dims.parm'
@@ -64,7 +66,6 @@
 * calling argument declarations:
 	LOGICAL clobber
 	INTEGER dflt_cx, nvars, mrlist(*), cxlist(*), status
-	REAL	memory( mem_blk_size, max_mem_blks )
 	CHARACTER TM_INQ_PATH*2048, filename*(*)
 
 * local variable declarations
@@ -86,6 +87,7 @@
 	ok_cache = ( TM_HAS_STRING(ds_type(dset),'CDF') .OR. 
      .		     TM_HAS_STRING(ds_type(dset),'ENS') .OR. 
      .		     TM_HAS_STRING(ds_type(dset),'FCT') .OR.
+     .		     TM_HAS_STRING(ds_type(dset),'UNI') .OR.
      .               TM_HAS_STRING(ds_des_name(dset)(:8), 'http://') )
         IF (.NOT. ok_cache) GOTO 5200
 
@@ -164,7 +166,7 @@
 	   CALL CREATE_TEMP_MEM_VAR( cx, mrlist(nvars), status )
 	   IF ( status .NE. ferr_ok ) GOTO 5000
 	   CALL UN_CACHE( mrlist(nvars) )
-	   memory(1, mr_blk1(mrlist(nvars))) = 0.0    ! just good house-keeping
+!	   memory(1, mr_blk1(mrlist(nvars))) = 0.0    ! just good house-keeping
  100	CONTINUE
 
 * echo the name of the output cache file
diff --git a/fer/ino/find_dset_number.F b/fer/ino/find_dset_number.F
index 30e3e59..30e17ea 100644
--- a/fer/ino/find_dset_number.F
+++ b/fer/ino/find_dset_number.F
@@ -66,6 +66,8 @@
 * V680 6/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
 * V685 *acm*  3/13 For Ensemble aggregations, call the ds_type 'ENS'
 * V695 *acm*  2/15 For Forecast aggregations, call the ds_type 'FCT'
+* V7   *acm*  6/12 Add Union aggregations: DEFINE DATA/AGG/U, ds_type 'UNI'
+* V702  *sh* 11/16 support new syntax D=aggregation.member
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -82,7 +84,8 @@
 	LOGICAL		TM_DIGIT_TEST, TM_HAS_STRING,
      .		        cdf_name, des_name, full_name_used, nc_name
 	INTEGER		STR_CASE_BLIND_COMPARE, TM_LENSTR1,
-     .			vax_code, dset, full_len, short_len, status
+     .			vax_code, dset, full_len, short_len, status,
+     .			agg, memb, idot, nmemb
 	CHARACTER	TM_INQ_PATH*2048, buff*2048
 	CHARACTER*13	TM_STRING, buff13, vbuff
         REAL*8          val
@@ -98,17 +101,40 @@ c *kob* 4/97
 * *acm* 11/04 current linux compiler reads a filename starting with digits
 *             as just the digits with no error (10a.nc is read as dset=10)
 *             Check explicitly whether the dset read is the same as buff
-
-#ifdef MANDATORY_FORMAT_WIDTHS
-	   READ (buff,*, ERR=50 ) dset
-#else
-	   READ (buff, '(I)', ERR=50 ) dset
-#endif
-           val = dset
-           buff13 = TM_STRING(val)
-           CALL TM_PACK_STRING(buff13, vbuff, 1,13, short_len)
-	   vax_code = STR_CASE_BLIND_COMPARE( vbuff, buff(1:13) )
-	   IF (  vax_code .NE. vms_str_success ) GOTO 50
+* *sh* 11/16 - read as a float, to allow aggregation.member syntax
+
+	   READ (buff,*, ERR=50 ) val
+*    The TM_DIGIT_TEST above (from 10/05) removes the need
+*    discussed in the 11/04 comment just above.
+*    Here we comment out the 11/04 logic because D=12.3 becomes D=12.300
+*    which fails the packed string test
+!           buff13 = TM_STRING(val)
+!           CALL TM_PACK_STRING(buff13, vbuff, 1,13, short_len)
+!	    vax_code = STR_CASE_BLIND_COMPARE( vbuff, buff(1:13) )
+!	    IF (  vax_code .NE. vms_str_success ) GOTO 50
+
+* decode the agg.memb syntax (pathological syntaxes already checked)
+           dset = val    ! integer truncate
+	   IF (FLOAT(dset) .NE. val) THEN
+	      agg  = dset
+* ... check for valid aggregation parent dset
+	      IF ( agg .LT. 1 .OR. agg .GT. maxdsets ) GOTO 500
+	      IF ( ds_name(agg) .EQ. char_init40 ) GOTO 500
+              IF (ds_type(agg).NE.'ENS'
+     .	    .AND. ds_type(agg).NE.'FCT' 
+     .      .AND. ds_type(agg).NE.'UNI') GOTO 500
+
+* ... get member number
+	      idot = INDEX(buff,".")
+	      IF (idot .EQ. 0) GOTO 400 !cant happen. easier than ferr_internal
+	      READ (buff(idot+1:),*, ERR=50 ) val
+	      memb = val
+	      CALL CD_GET_AGG_DSET_INFO (agg, nmemb, status)
+	      IF (status .NE. ferr_ok)  CALL WARN('crptn: agg dset 1')
+	      IF (memb.GT.nmemb .OR. memb.LE.0) GOTO 500
+	      CALL CD_GET_AGG_DSET_MEMBER (agg, memb, dset, status)
+              IF (status .NE. ferr_ok)  CALL WARN('crptn: agg dset 2')
+	   ENDIF
 
 	   GOTO 400
 	ENDIF
@@ -158,7 +184,8 @@ c *kob* 4/97
 
 	      IF ( TM_HAS_STRING(ds_type(dset),'CDF')   .OR. 
      .		   TM_HAS_STRING(ds_type(dset),'ENS')   .OR. 
-     .		   TM_HAS_STRING(ds_type(dset),'FCT') ) THEN
+     .		   TM_HAS_STRING(ds_type(dset),'FCT')   .OR. 
+     .		   TM_HAS_STRING(ds_type(dset),'UNI') ) THEN
 	         vax_code = STR_CASE_BLIND_COMPARE( ds_name(dset),
      .						    dname(1:short_len) )
 	         IF (  vax_code .EQ. vms_str_success
diff --git a/fer/ino/init_ez_dset.F b/fer/ino/init_ez_dset.F
index 2042cb8..1c03243 100644
--- a/fer/ino/init_ez_dset.F
+++ b/fer/ino/init_ez_dset.F
@@ -76,6 +76,8 @@
 * V687  2.14 *acm* fix ticket 2144: Make buffer for list of varnames longer
 * V692  7/14 *acm* fix ticket 2182: For ez datasets opened w/o a grid spec, 
 *                  count the records and define an axis
+* V701  7/16 *acm* Ticket 2454. If the user gives lower-case names when opening
+*                  an EZ dataset, keep those names on output, etc.
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -257,7 +259,7 @@
 	IF ( loc .EQ. 0 ) THEN
 	   var_list = ' '
 	ELSE
-	   CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
+	   CALL EQUAL_STR_LC( cmnd_buff(qual_start(loc):qual_end(loc)),
      .			      var_list, status )
 	   IF ( status .NE. ferr_ok ) RETURN
 	ENDIF
diff --git a/fer/ino/read_binary.F b/fer/ino/read_binary.F
index 4464872..e7b1914 100644
--- a/fer/ino/read_binary.F
+++ b/fer/ino/read_binary.F
@@ -1,4 +1,4 @@
-	SUBROUTINE READ_BINARY ( memory, cx, mr, status )
+	SUBROUTINE READ_BINARY (  cx, mr, status )
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -48,7 +48,10 @@
 * v604 *acm* 7/07 increase length of ds_name
 * V63  *acm* 10/09 Changes for gfortran build
 *       *acm* 3/12 cleanup old VMS ifdef
-* V685 *acm* 1/13  Ticket 2030: if we run out of memory, issue a new message
+* V685 *acm* 1/13  Ticket 2030: if we run out of  issue a new message
+* V702: *sh* 1/17 - bug fix: mr_protected must *end* at mr_not_in_use (=0)
+*		  - for trac enhancement #2369 -- dynamic memory management 
+*                 (it appears that dynamic work space is allocated but never used)
 
 	include	'tmap_errors.parm'
 	include	'tmap_dims.parm'
@@ -67,7 +70,7 @@
 
 * calling argument declarations:
 	INTEGER	cx, mr, status, fstatus
-	REAL	memory( mem_blk_size, max_mem_blks ), fdummy(1)
+	REAL	 fdummy(1)
 
 * functions
 	INTEGER BR_OPEN, BR_READ, BR_ADD_VAR
@@ -80,7 +83,7 @@
      .			fvar, nvar20, the_var, nleft, 
      .			cx0, cx1, cx20(20), mr20(20),
      .			mr1, rec1, scnt,
-     .			rec_to_read, nrepeat, columns, num_names, buffblk
+     .			rec_to_read, nrepeat, columns, num_names
 	INTEGER         lengths(nferdimsp1), permutes(nferdimsp1), skip, doRead
 	LOGICAL         firstTime
 	CHARACTER	VAR_CODE*128
@@ -171,10 +174,6 @@
 	   mr20(nleft) = dummy_mr
 	END DO
 	
-* allocate a buffer big enough for one record
-        CALL GET_WORK_SPC( columns, buffblk, status )	! was "nrepeat" B4 3/95
-	IF ( status .NE. merr_ok ) GOTO 5500
-
 * Get the current permutation list
 	CALL BR_GET_PERMUTES(permutes)
 
@@ -201,8 +200,8 @@
  		 IF (INDEX( ds_var_code(fvar),'-') .EQ. 0 ) THEN
 		    doRead = 1
 		    nvar20 = nvar20 + 1
-		    fstatus = BR_ADD_VAR(memory(1, mr_blk1(mr20(nvar20))),
-     1		                 doRead)
+		    fstatus = BR_ADD_VAR( memry(mr20(nvar20))%ptr,
+     1		                 doRead )
 		 ELSE
 		    doRead = 0
 		    fstatus = BR_ADD_VAR(fdummy, doRead)
@@ -216,17 +215,11 @@
 * read the data
 	if (BR_READ() .EQ. 0) goto 6000
 
-
-
-* free up the buffer space
-        CALL  RELEASE_WORK_SPC
-
 * flag that all the data is available
-	DO 800 ivar = 1, nvar20
+	DO ivar = 1, nvar20
 	   mr1 = mr20(ivar)
-	   mr_protected( mr1 ) = mr_not_protected
-	   CALL MR_NOT_IN_USE( mr1 )
- 800	CONTINUE
+	   CALL MR_AVAILABLE(mr1)
+	ENDDO
 
 * the data region obtained may be inadequate for the request
 * ("cx" is request, "cx1" is available)
@@ -263,7 +256,6 @@
  1000   FORMAT ('Binary file reading: Insufficient memory reading variable ', i4)
 	DO 5010 nleft = 1, nvar20-1	! delete all except last
  5010	CALL DELETE_VARIABLE(mr20(nleft))
-        CALL  RELEASE_WORK_SPC
 	CALL BR_CLOSE()
  5500	RETURN
  5600	CALL ERRMSG( ferr_limits, status,
diff --git a/fer/ino/read_delimited.F b/fer/ino/read_delimited.F
index 1ef85cb..572b6fb 100644
--- a/fer/ino/read_delimited.F
+++ b/fer/ino/read_delimited.F
@@ -1,4 +1,4 @@
-	SUBROUTINE READ_DELIMITED( memory, cx, mr, status )
+	SUBROUTINE READ_DELIMITED(  cx, mr, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -46,8 +46,12 @@
 * V500 *kob* 3/99- up VAR_CODE  to 64 chars
 * V552 *acm* 4/03- up VAR_CODE  to 128 chars
 *       *acm* 3/12 changes for 6D Ferret
-* V685 *acm* 1/13  Ticket 2030: if we run out of memory, issue a new message
+* V685 *acm* 1/13  Ticket 2030: if we run out of  issue a new message
 *                  and only clear the variables that had been initialized.
+* V701 *acm* 7/16  ticket 2449: report incorrect choice of date/ eurodate as an error
+* V702 *acm*11/16  handling read errors in date/time reading
+* V702: *sh* 1/17 - bug fix: mr_protected must *end* at mr_not_in_use (=0)
+*		  - for trac enhancement #2369 -- dynamic memory management 
 
 	include	'tmap_errors.parm'
 	include	'tmap_dims.parm'
@@ -66,7 +70,6 @@
 
 * calling argument declarations:
 	INTEGER	cx, mr, status
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
 	INTEGER 	CGRID_SIZE, CX_DIM_LEN, TM_LENSTR1,
@@ -76,9 +79,11 @@
      .			cxlist(maxezvars), mrlist(maxezvars),
      .			field_type(maxezvars),
      .			mr1, ndim, las_dim, fst_dim, dims(nferdims),
-     .			rec_to_read, buffblk
+     .			rec_to_read
+	INTEGER*8	i8_size, c_ptr_array
 	CHARACTER	VAR_CODE*128, delims*80, errbuff*100
 
+
 * --- end of introductory code ---
 
 * nvar  and the_var - value from 1 to maxezvars --> variable # within EZ set
@@ -157,20 +162,30 @@
 	IF (mode_diagnostic) CALL DIAGNOSTIC_OUT('reading',mr,point_to_mr)
 
 * allocate a buffer big enough for one input ASCII record
-        CALL GET_WORK_SPC( 1024, buffblk, status ) ! really 4x1024
+	i8_size = 1024				
+        CALL GET_DYN_WORK_SPACE( i8_size, status )    
         IF ( status .NE. merr_ok ) GOTO 5500
 
 * create a null terminated string from the data set name (use record buffer)
 	CALL TM_FTOC_STRNG( ds_des_name(dset)
      .		     (:TM_LENSTR1(ds_des_name(dset))),
-     .		     memory(1,buffblk), 4*1024 )
+     .		     workmem(plegacy_work_buffer)%ptr, 4*1024 )
+
+* setup a c pointer array from the mrlist
+	CALL DYNMEM_MRLIST_C ( nvar, mrlist, c_ptr_array, status )
+        IF ( status .NE. merr_ok ) GOTO 5500
 
 * read the data via TMAP library routine
+* Status will report -1* variable number if the date/eurodate specification is wrong.
+	status = ferr_ok
 	CALL DECODE_FILE_JACKET (
-     .		  memory(1,buffblk), memory(1,buffblk),
+     .		  workmem(plegacy_work_buffer)%ptr,
+     .		  workmem(plegacy_work_buffer)%ptr,
      .		  delims, sf_skip(istep), rec_to_read, 4*1024, nvar,
-     .		  field_type, nread, mrlist, memory, mr_blk1,
-     .		  mem_blk_size, mr_bad_data, mr_c_pointer)
+     .		  field_type, nread, mrlist, c_ptr_array,
+     .		  mr_bad_data, mr_c_pointer, status)
+	CALL DYNMEM_FREE_PTR_ARRAY( c_ptr_array )
+	IF (status .NE. ferr_ok) GOTO 5800
 
 * update the variables with info about the number of records actually read
 * (for multi-dimensional grid reads just truncate the last axis best we can)
@@ -207,13 +222,12 @@
 	ENDIF
 
 * flag that all the data is available
-	DO 800 ivar = 1, nvar
+	DO ivar = 1, nvar
 	   IF (field_type(ivar) .NE. FTYP_MISSING) THEN
 	     mr1 = mrlist(ivar)
-	     mr_protected( mr1 ) = mr_not_protected
-	     CALL MR_NOT_IN_USE( mr1 )
+	     CALL MR_AVAILABLE(mr1)
 	   ENDIF
- 800	CONTINUE
+	ENDDO
 
 * the data region obtained may be inadequate for the request
 * ("cx" is request, "cx1" is available)
@@ -248,10 +262,12 @@
 	   WRITE ( errbuff, 1000 ) nvar20
            CALL WARN (errbuff)
 	ENDIF
- 1000   FORMAT ('Delimited file reading: Insufficient memory reading variable ', i4)
-	DO 5010 nleft = 1, nvar20-1	! delete all initialized so far
+ 1000   FORMAT ('Delimited file reading: Insufficient memory '
+     .        //'reading variable ', i4)
+ 1100	DO 5010 nleft = 1, nvar20-1	! delete all initialized so far
  5010	CALL DELETE_VARIABLE(mrlist(nleft))
-        CALL  RELEASE_WORK_SPC
+        CALL RELEASE_DYN_WORK_SPACE
+
  5500	RETURN
  5600	CALL ERRMSG( ferr_limits, status,
      .		ww_dim_name(idim)//' axis of '//VAR_CODE(cat_file_var,ask_var),
@@ -259,5 +275,15 @@
  5650	CALL ERRMSG( ferr_limits, status,
      .		'/COLUMNS is impossibly large', *5500 )
  5700	CALL ERRMSG( ferr_TMAP_error, status, ' ', *4900 )
+ 5800	CONTINUE
+
+* String variables not allocated in this error condition, so no need to free them
+* in the clean up steps that will follow.
+	DO ivar = 1, nvar
+	   IF (field_type(ivar) .eq. FTYP_CHARACTER)
+     .       mr_protected(mrlist(ivar)) = mr_table_entry_only
+	ENDDO 
+	CALL ERRMSG( ferr_nomessge, status, 
+     .       'Error reading file: Check Date or Time fields.', *1100 )
  6000	CALL ERRMSG( ferr_internal, status, 'READ_EZ ??', *4900 )
 	END	
diff --git a/fer/ino/read_ez.F b/fer/ino/read_ez.F
index 5d34478..3abaef2 100644
--- a/fer/ino/read_ez.F
+++ b/fer/ino/read_ez.F
@@ -1,4 +1,4 @@
-	SUBROUTINE READ_EZ ( memory, cx, mr, status )
+	SUBROUTINE READ_EZ (  cx, mr, status )
 
 *
 *
@@ -61,7 +61,9 @@
 * V510: 6/00 *sh* - bug fix trap /COLUMNS= >grid size
 * V552 *acm* 4/03- up VAR_CODE  to 128 chars
 *       *acm* 3/12 cleanup old VMS ifdef
-* V685 *acm* 1/13  Ticket 2030: if we run out of memory, issue a new message
+* V685 *acm* 1/13  Ticket 2030: if we run out of  issue a new message
+* V702: *sh* 1/17 - bug fix: mr_protected must *end* at mr_not_in_use (=0)
+*		  - for trac enhancement #2369 -- dynamic memory management 
 
 	include	'tmap_errors.parm'
 	include	'tmap_dims.parm'
@@ -78,7 +80,6 @@
 
 * calling argument declarations:
 	INTEGER	cx, mr, status
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
 	INTEGER 	CGRID_SIZE, CX_DIM_LEN,
@@ -86,7 +87,8 @@
      .			fvar, nvar20, the_var, nleft, nsize,
      .			cx0, cx1, cx20(20), mr20(20), nread,
      .			mr1, ndim, las_dim, fst_dim, dims(nferdims), rec1,
-     .			rec_to_read, nrepeat, columns, num_names, buffblk
+     .			rec_to_read, nrepeat, columns, num_names
+	INTEGER*8	i8_size
 	CHARACTER	VAR_CODE*128, errbuff*100
 
 * --- end of introductory code ---
@@ -167,7 +169,8 @@
  600	mr20(nleft) = dummy_mr
 	
 * allocate a buffer big enough for one record
-        CALL GET_WORK_SPC( columns, buffblk, status )	! was "nrepeat" B4 3/95
+	i8_size = columns
+        CALL GET_DYN_WORK_SPACE( i8_size, status )	! was "nrepeat" B4 3/95
 	IF ( status .NE. merr_ok ) GOTO 5500
 
 * diagnostic output
@@ -177,31 +180,31 @@
 	nread = rec_to_read
 
 	CALL EZ_READ( data_set, nread, nrepeat, columns,
-     .          memory( 1, buffblk), status,
-     .		memory( 1, mr_blk1(mr20( 1)) ),
-     .		memory( 1, mr_blk1(mr20( 2)) ),
-     .		memory( 1, mr_blk1(mr20( 3)) ),
-     .		memory( 1, mr_blk1(mr20( 4)) ),
-     .		memory( 1, mr_blk1(mr20( 5)) ),
-     .		memory( 1, mr_blk1(mr20( 6)) ),
-     .		memory( 1, mr_blk1(mr20( 7)) ),
-     .		memory( 1, mr_blk1(mr20( 8)) ),
-     .		memory( 1, mr_blk1(mr20( 9)) ),
-     .		memory( 1, mr_blk1(mr20(10)) ),
-     .		memory( 1, mr_blk1(mr20(11)) ),
-     .		memory( 1, mr_blk1(mr20(12)) ),
-     .		memory( 1, mr_blk1(mr20(13)) ),
-     .		memory( 1, mr_blk1(mr20(14)) ),
-     .		memory( 1, mr_blk1(mr20(15)) ),
-     .		memory( 1, mr_blk1(mr20(16)) ),
-     .		memory( 1, mr_blk1(mr20(17)) ),
-     .		memory( 1, mr_blk1(mr20(18)) ),
-     .		memory( 1, mr_blk1(mr20(19)) ),
-     .		memory( 1, mr_blk1(mr20(20)) )  )
+     .          workmem(plegacy_work_buffer)%ptr, status,
+     .		memry(mr20( 1))%ptr,
+     .		memry(mr20( 2))%ptr,
+     .		memry(mr20( 3))%ptr,
+     .		memry(mr20( 4))%ptr,
+     .		memry(mr20( 5))%ptr,
+     .		memry(mr20( 6))%ptr,
+     .		memry(mr20( 7))%ptr,
+     .		memry(mr20( 8))%ptr,
+     .		memry(mr20( 9))%ptr,
+     .		memry(mr20(10))%ptr,
+     .		memry(mr20(11))%ptr,
+     .		memry(mr20(12))%ptr,
+     .		memry(mr20(13))%ptr,
+     .		memry(mr20(14))%ptr,
+     .		memry(mr20(15))%ptr,
+     .		memry(mr20(16))%ptr,
+     .		memry(mr20(17))%ptr,
+     .		memry(mr20(18))%ptr,
+     .		memry(mr20(19))%ptr,
+     .		memry(mr20(20))%ptr  )
 	IF ( status .NE. merr_ok ) GOTO 5700
 
 * free up the buffer space
-        CALL  RELEASE_WORK_SPC
+        CALL  RELEASE_DYN_WORK_SPACE
 
 * update the variables with info about the number of records actually read
 * (for multi-dimensional grid reads just truncate the last axis best we can)
@@ -236,11 +239,10 @@
 	ENDIF
 
 * flag that all the data is available
-	DO 800 ivar = 1, nvar20
+	DO ivar = 1, nvar20
 	   mr1 = mr20(ivar)
-	   mr_protected( mr1 ) = mr_not_protected
-	   CALL MR_NOT_IN_USE( mr1 )
- 800	CONTINUE
+	   CALL MR_AVAILABLE(mr1)
+	ENDDO
 
 * the data region obtained may be inadequate for the request
 * ("cx" is request, "cx1" is available)
@@ -275,7 +277,7 @@
  1000   FORMAT ('ASCII file reading: Insufficient memory reading variable ', i4)
 	DO 5010 nleft = 1, nvar20-1	! delete all except last
  5010	CALL DELETE_VARIABLE(mr20(nleft))
-        CALL  RELEASE_WORK_SPC
+        CALL  RELEASE_DYN_WORK_SPACE
  5500	RETURN
  5600	CALL ERRMSG( ferr_limits, status,
      .		ww_dim_name(idim)//' axis of '//VAR_CODE(cat_file_var,ask_var),
diff --git a/fer/ino/read_perl.F b/fer/ino/read_perl.F
deleted file mode 100644
index fcfdd4f..0000000
--- a/fer/ino/read_perl.F
+++ /dev/null
@@ -1,246 +0,0 @@
-
-
-	SUBROUTINE READ_PERL ( memory, cx, mr, 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. 
-*
-*
-* read a stream formatted file 
-* stolen from read_ez
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* 9/99 *js*  First version hacked from read_binary
-* V552 *acm* 4/03- up VAR_CODE  to 128
-* v604 *acm* 7/07 increase length of ds_name
-* V63  *acm* 10/09 Changes for 1 build
-*       *acm* 3/12 cleanup old VMS ifdef
-
-	include	'tmap_errors.parm'
-	include	'tmap_dims.parm'
-	include	'xdset_info.cmn_text'
-	external xdset_info_data
-	include	'xtm_grid.cmn_text'
-	external xgt_grid_data
-	include 'xstep_files.cmn_text'
-	external xstep_files_data
-	include	'ferret.parm'
-	include	'errmsg.parm'
-	include	'xcontext.cmn'
-	include	'xvariables.cmn'
-	include	'xprog_state.cmn'
-	include	'xtext_info.cmn'
-
-* calling argument declarations:
-	INTEGER	cx, mr, status, fstatus
-	REAL	memory( mem_blk_size, max_mem_blks )
-
-* functions
-	INTEGER PL_OPEN, PL_READ_VAR
-
-* internal variable declarations:
-	INTEGER		nferdimsp1 
-	PARAMETER	(nferdimsp1 = nferdims+1)
-	INTEGER 	CGRID_SIZE, 
-     .			idim, ask_var, category, data_set, grid, ivar,
-     .			fvar, nvar20, the_var, nleft, 
-     .			cx0, cx1, cx20(20), mr20(20),
-     .			mr1, rec1, 
-     .			rec_to_read, nrepeat, columns, num_names, buffblk
-	INTEGER         lengths(nferdimsp1)
-	LOGICAL         firstTime
-	CHARACTER	VAR_CODE*128
-	CHARACTER*256   cerrmsg,ferrmsg
-	CHARACTER*1024  cname
-
-* --- end of introductory code ---
-
-* nvar20  and the_var - value from 1 to 20      --> variable # within EZ set
-* ask_var and fvar    - value from 1 to maxvars --> var # within DSET common
-
-* initialize
-	cx0 = cx_stack_ptr
-	data_set = cx_data_set( cx )
-	category = cx_category( cx )
-	ask_var  = cx_variable( cx )
-	grid = cx_grid( cx )
-	fvar      = 0
-	nvar20    = 0
-	rec_to_read = 2**30      ! was 99999 - limited file reads
-	firstTime = .true.
-
-* how many values of each variable are repeated on each record ?
-	columns = ds_ntuple(data_set)
-	num_names = ds_basic_axes(1, data_set)
-	nrepeat = columns / num_names
-
-* purge from memory any variables from this data set to avoid duplication
-* (1 variable may be deleted at any time by memory management but this routine
-*  always reads all of 'em)
-* note: problem arises if variable is in use
-!	CALL PURGE_DSET( data_set )
-
-* create a memory variable for each of up-to-20 variables in the file
-	DO ivar = 1, 20
-
-* ... locate the next variable in this data set
-	   DO fvar = fvar+1, maxvars
-	      IF ( ds_var_setnum( fvar ) .EQ. data_set ) then
-* ... is it a dummy '-' placeholder in the variable list ?
- 		 IF (INDEX( ds_var_code(fvar),'-') .EQ. 0 ) THEN
-
-* save record of which is the desired var
-		    nvar20 = nvar20 + 1
-		    IF ( fvar .EQ. ask_var ) the_var = nvar20
-
-* ... create a context describing this variable
-		    CALL STACK_PTR_UP( cx_stack_ptr, max_context, status )
-		    IF ( status .NE. ferr_ok ) RETURN
-		    cx20(nvar20) = cx_stack_ptr
-		    CALL TRANSFER_CONTEXT( cx, cx_stack_ptr )
-		    cx_variable( cx_stack_ptr ) = fvar
-		    cx_grid( cx_stack_ptr ) = ds_grid_number( fvar )
-		    cx_bad_data( cx_stack_ptr ) = ds_bad_flag( fvar ) ! 12/93 add'n
-		    DO idim = 1, nferdims
-		       cx_lo_ss( cx_stack_ptr, idim ) = ds_grid_start( idim, fvar )
-		       cx_hi_ss( cx_stack_ptr, idim ) = ds_grid_end  ( idim, fvar )
-		       cx_by_ss( idim, cx_stack_ptr ) = .TRUE.
-* 3/99 *kob* - nag F90 wants to use eqv for logical expressions
-		       if (firstTime .eqv. .TRUE.) THEN
-			  lengths(idim) = ds_grid_end(idim,fvar) - 
-     .		          ds_grid_start(idim,fvar) + 1
-		       end if
-		       CALL CONFINE_AXIS( idim, cx_stack_ptr, status )
-		       IF ( status .NE. ferr_ok ) RETURN
-		       CALL FLESH_OUT_AXIS( idim, cx_stack_ptr, status )
-		       IF ( status .NE. ferr_ok ) RETURN
-		    END DO
-		    firstTime = .FALSE.
-
-*       read only what will fit into smallest grid
-		    rec1 = CGRID_SIZE(cx_stack_ptr) / nrepeat
-		    rec_to_read = MIN( rec_to_read, rec1 )
-
-*       reserve and catalog space for the result
-		    CALL CREATE_MEM_VAR( cx_stack_ptr, mr20(nvar20), status )
-		    IF ( status .NE. ferr_ok ) GOTO 5000
-		 END IF
-	      END IF
-	   END DO
-	END DO
-
-* point to asked-for variable and create dummy entries for the rest
- 500	mr = mr20( the_var )
-	DO nleft = nvar20+1, 20
-	   mr20(nleft) = dummy_mr
-	END DO
-	
-* allocate a buffer big enough for one record
-        CALL GET_WORK_SPC( columns, buffblk, status )	! was "nrepeat" B4 3/95
-	IF ( status .NE. merr_ok ) GOTO 5500
-
-* initialize the Perl reader
-	call toChar(ds_name(data_set), cname)
-	if (PL_OPEN(cname) .eq. 0) goto 6000
-
-	fvar = 0
-	nvar20 = 0
-	DO ivar = 1, 20
-	   DO fvar = fvar+1, maxvars
-	      IF ( ds_var_setnum( fvar ) .EQ. data_set ) then
- 		 IF (INDEX( ds_var_code(fvar),'-') .EQ. 0 ) THEN
-		    nvar20 = nvar20 + 1
-		    fstatus = PL_READ_VAR(memory(1, mr_blk1(mr20(nvar20))),
-     1		                 lengths)
-		 END IF
-		 if (fstatus .EQ. 0) goto 6000
-	      END IF
-	   END DO
-	END DO
-
-
-
-* free up the buffer space
-        CALL  RELEASE_WORK_SPC
-
-* flag that all the data is available
-	DO 800 ivar = 1, nvar20
-	   mr1 = mr20(ivar)
-	   mr_protected( mr1 ) = mr_not_protected
-	   CALL MR_NOT_IN_USE( mr1 )
- 800	CONTINUE
-
-* the data region obtained may be inadequate for the request
-* ("cx" is request, "cx1" is available)
-	cx1 = cx20(the_var)
-	DO 900 idim = 1, nferdims
-	   IF ( cx_hi_ss(cx,idim) .GT. cx_hi_ss(cx1,idim) ) THEN
-	      IF ( cx_hi_ss(cx_last,idim) .NE. unspecified_int4
-     .	     .OR.  cx_given(idim,cx) ) THEN
-* ... error: the user explicitly requested more than there is
-	         GOTO 5600
-              ELSEIF (cx_lo_ss(cx,idim) .GT. cx_hi_ss(cx1,idim)) THEN
-* ... requested data is completely out of range of disk data (2/93 bug fix)
-                 GOTO 5600
-	      ELSE
-* ... no error: the region was filled in by FERRET automatically
-	         cx_hi_ss(cx,idim) = cx_hi_ss(cx1,idim)
-	         cx_hi_ww(idim,cx) = cx_hi_ww(idim,cx1)
-	      ENDIF
-	   ENDIF
- 900	CONTINUE
-
-* successful completion
-	cx_stack_ptr = cx0
-	CALL PL_CLOSE()
-	RETURN
-
-* error exit
- 4900	nvar20 = nvar20 + 1		! delete all
- 5000	cx_stack_ptr = cx0
-	DO 5010 nleft = 1, nvar20-1	! delete all except last
- 5010	CALL DELETE_VARIABLE(mr20(nleft))
-        CALL  RELEASE_WORK_SPC
-	CALL PL_CLOSE()
- 5500	RETURN
- 5600	CALL ERRMSG( ferr_limits, status,
-     .		ww_dim_name(idim)//' axis of '//VAR_CODE(cat_file_var,ask_var),
-     .		*5500 )
- 6000	CALL PL_GET_ERROR(cerrmsg)
-	CALL TM_CTOF_STRNG(cerrmsg, ferrmsg, 255)
-	CALL TM_SPLIT_MESSAGE(err_lun, ' **ERROR: '//ferrmsg(1:LEN(ferrmsg)))
-        CALL ERRMSG( ferr_TMAP_error, status, ' ', *4900 )
-	END	
-
diff --git a/fer/ino/read_remote.F b/fer/ino/read_remote.F
index 4c57d42..60fe0bc 100644
--- a/fer/ino/read_remote.F
+++ b/fer/ino/read_remote.F
@@ -1,4 +1,4 @@
-	SUBROUTINE READ_REMOTE ( memory, baddat, cx, mr, status )
+	SUBROUTINE READ_REMOTE (  baddat, cx, mr, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -55,7 +55,7 @@
 
 * calling argument declarations:
 	INTEGER	cx, mr, status
-	REAL	memory( mem_blk_size, max_mem_blks ), baddat
+	REAL	 baddat
 
 * internal variable declarations:
 	LOGICAL	has_a_stride, has_strides(nferdims)
@@ -158,7 +158,7 @@
 	IF ( status .NE. ferr_ok ) GOTO 5900
 	IF (ds_var_type(uvar) .EQ. ptype_string)
      .		CALL INIT_C_STRING_ARRAY( MGRID_SIZE(mr),
-     .			                  memory(1,mr_blk1(mr)),
+     .			                  memry(mr)%ptr,
      .					  mr_c_pointer(mr)      )
 
 * un-cache it?
@@ -292,7 +292,7 @@
      .			grid_start,
      .			grid_end,
      .			grid_order,
-     .			memory( 1, mr_blk1( mr ) ),
+     .			memry( mr )%ptr,
      .			baddat, 
      .			sf_num,
      .			tmap_status		)
@@ -311,10 +311,11 @@
 * replace multiple bad data flags in some variables
 * IF ( ds_bad_flag( variable ) .NE. ds_missing_flag( variable ) )
 * *kob* 2/99 - call new routine to check for usage of NaN
-	IF (REPLACEABLE_BAD_FLAGS(ds_bad_flag(uvar), 
-     .                            ds_missing_flag(uvar)) .EQ. 1)
+	IF (mr_type(mr) .NE. ptype_string
+     .  .AND. REPLACEABLE_BAD_FLAGS(ds_bad_flag(uvar), 
+     .                              ds_missing_flag(uvar)) .EQ. 1)
      .	   CALL REPLACE_BAD_DATA
-     .		(memory(1,mr_blk1(mr)),mr,cx,ds_missing_flag(uvar))
+     .		(memry(mr)%ptr,mr,cx,ds_missing_flag(uvar))
 
 * successful completion
  	RETURN
diff --git a/fer/ino/read_tm.F b/fer/ino/read_tm.F
index 7982252..ccfaf8c 100644
--- a/fer/ino/read_tm.F
+++ b/fer/ino/read_tm.F
@@ -1,4 +1,4 @@
-	SUBROUTINE READ_TM ( memory, cx, mr, status )
+	SUBROUTINE READ_TM (  cx, mr, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -55,6 +55,8 @@
 * v602  8/06 - *jli* native strides  replace cx_delta logic by the line_delta
 *       *acm* 3/12 cleanup old VMS ifdef
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V702 1/17 *sh* as a part of conversion to dynamic memory fixed bug that 
+*                REPLACE_BAD_DATA was being called on string variables
 
 
 	include	'tmap_errors.parm'
@@ -71,11 +73,10 @@
 
 * calling argument declarations:
 	INTEGER	cx, mr, status
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
 	LOGICAL	has_a_stride, has_strides(nferdims)
-	INTEGER MGRID_SIZE,
+	INTEGER MGRID_SIZE_DELTA,
      .			idim, variable, category, data_set, grid,
      .			sf_num, tmap_status, 
      .			lo_ss(nferdims), hi_ss(nferdims),
@@ -120,8 +121,8 @@
 	CALL CREATE_MEM_VAR( cx, mr, status )
 	IF ( status .NE. ferr_ok ) GOTO 5900
 	IF (ds_var_type(variable) .EQ. ptype_string)
-     .		CALL INIT_C_STRING_ARRAY( MGRID_SIZE(mr),
-     .			                  memory(1,mr_blk1(mr)),
+     .		CALL INIT_C_STRING_ARRAY( MGRID_SIZE_DELTA(mr),
+     .			                  memry(mr)%ptr,
      .					  mr_c_pointer(mr)      )
 
 * un-cache it?
@@ -250,7 +251,7 @@
      .			lo_ss,
      .			hi_ss,
      .			stride,
-     .			memory( 1, mr_blk1( mr ) ),
+     .			memry( mr )%ptr,
      .			sf_num,
      .			tmap_status		)
 	IF ( tmap_status .NE. merr_ok ) THEN
@@ -261,10 +262,13 @@
 * replace multiple bad data flags in some variables
 * IF ( ds_bad_flag( variable ) .NE. ds_missing_flag( variable ) )
 * *kob* 2/99 - call new routine to check for usage of NaN
-	IF (REPLACEABLE_BAD_FLAGS(ds_bad_flag(variable), 
-     .                            ds_missing_flag(variable)) .EQ. 1)
+! 1/17 *sh* check mr_type is needed here because missing data flags are not
+! properly initialized on string variables
+	IF ( mr_type(mr) .NE. ptype_string
+     . .AND. REPLACEABLE_BAD_FLAGS(ds_bad_flag(variable), 
+     .                             ds_missing_flag(variable)) .EQ. 1)
      .	   CALL REPLACE_BAD_DATA
-     .		(memory(1,mr_blk1(mr)),mr,cx,ds_missing_flag(variable))
+     .		(memry(mr)%ptr,mr,cx,ds_missing_flag(variable))
 
 * successful completion
 	RETURN
diff --git a/fer/mem/SOURCE_FILES b/fer/mem/SOURCE_FILES
index 71965db..5499462 100644
--- a/fer/mem/SOURCE_FILES
+++ b/fer/mem/SOURCE_FILES
@@ -4,8 +4,10 @@ assign_mr_cx.F\
 assign_temp_var.F\
 assign_variable.F\
 cgrid_size_delta.F\
+create_dyn_wrkspc.F\
 create_full_range_context.F\
 create_mem_var.F\
+create_mem_var_w_buffer.F\
 create_permutation.F\
 create_temp_mem_var.F\
 deallo_dyn_grid.F\
@@ -17,23 +19,28 @@ delete_un_cached_mvars.F\
 delete_user_var.F\
 delete_user_var_sub.F\
 delete_variable.F\
+dynmem_mrlist_c.F\
 erase_dset.F\
 fill_memory.F\
 find_mem_var.F\
 find_mem_var_incl_c_cache.F\
 find_mr_slot.F\
 find_var_name.F\
-free_memory.F\
+free_mr_dynmem.F\
+free_ws_dynmem.F\
 fvar_number.F\
-get_memory.F\
+get_dyn_work_space.F\
+get_mr_dynmem.F\
+get_ws_dynmem.F\
 get_work_mr.F\
-get_work_spc.F\
 hash_cx.F\
 hash_name.F\
+hook_mr_slot.F\
 init_grid.F\
 its_un_cached.F\
 mgrid_size.F\
 mgrid_size_delta.F\
+mr2freelist.F\
 mr_available.F\
 mr_dim_len.F\
 mr_in_use.F\
@@ -43,6 +50,7 @@ new_mr_w_edges.F\
 purge_all_memory.F\
 purge_all_pystat_vars.F\
 purge_all_uvars.F\
+purge_all_uvars_except_ex.F\
 purge_aux_var_dependents.F\
 purge_dset.F\
 purge_file_var.F\
@@ -54,7 +62,12 @@ purge_pystat_dset_vars.F\
 purge_user_var.F\
 r_cgrid_size_delta.F\
 re_assign_variable.F\
-release_work_spc.F\
+release_dyn_work_space.F\
+show_aborted_mem_state.F\
+store_nul_mr_ptr.F\
+store_nul_ws_ptr.F\
+store_mr_ptr.F\
+store_ws_ptr.F\
 un_cache.F\
 unprotect_all_mrs.F\
 uvar_number.F\
diff --git a/fer/mem/assign_temp_var.F b/fer/mem/assign_temp_var.F
index 168c878..be02745 100644
--- a/fer/mem/assign_temp_var.F
+++ b/fer/mem/assign_temp_var.F
@@ -1,4 +1,4 @@
-	SUBROUTINE ASSIGN_TEMP_VAR ( cx, start_blk, num_blks, mr, status )
+	SUBROUTINE ASSIGN_TEMP_VAR ( cx, mr, status )
 
 *
 *
@@ -55,16 +55,12 @@
 	include	'xcontext.cmn'
 
 * calling arguments and local variables . . . . . . .
-	INTEGER	cx, start_blk, num_blks, mr, status
+	INTEGER	cx, mr, status
 
 * begin executable code:
 
 * assign the temporary variable into the memory variable list
-	CALL ASSIGN_VARIABLE  (	cx,
-     .				start_blk,
-     .				num_blks,
-     .				mr,
-     .				status		)
+	CALL ASSIGN_VARIABLE  (	cx, mr, status )
 	IF ( status .NE. ferr_ok ) GOTO 5000
 
 * modify assigned slot in memory table to reflect temporary nature of variable
diff --git a/fer/mem/assign_variable.F b/fer/mem/assign_variable.F
index 55f7e09..c9e93bd 100644
--- a/fer/mem/assign_variable.F
+++ b/fer/mem/assign_variable.F
@@ -1,9 +1,4 @@
-	SUBROUTINE ASSIGN_VARIABLE
-     .		      ( cx,
-     .			start_block,
-     .			num_blocks,
-     .			mr,
-     .			status      )
+	SUBROUTINE ASSIGN_VARIABLE( cx, mr, status )
 
 *
 *
@@ -60,6 +55,8 @@
 * V200:  5/18/89 - 4D symmetrical; using mr_del_ deletion chain
 *		 - context assignment in a separate routine
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702:  1/17 *sh* - dynamic memory management
+*                  - find MR slot outside of this routine 
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -69,26 +66,24 @@
 	include 'xcontext.cmn'
 
 * calling argument declarations:
-	INTEGER		cx, start_block, num_blocks, mr, status
+	INTEGER		cx, mr, status
 
 * internal variable declarations:
 	CHARACTER*4	VAR_CODE
 
-* get a free slot in the memory variable table
-	CALL FIND_MR_SLOT( cx, mr, status )
-	IF ( status .NE. ferr_ok ) RETURN
-
-* point mr slot to data in bulk memory
-	mr_blk1     ( mr )	= start_block
-	mr_nblks    ( mr )	= num_blocks
-
 * flag it as "in progress"
-	mr_protected( mr )	= mr_in_progress
+	mr_protected( mr ) = mr_in_progress
+
+* since it is in progress it is "essential" (not safe to delete)
+	essential_mem = essential_mem + mr_size(mr)
+	IF (essential_mem.GT.peak_essential_mem) 
+     .		peak_essential_mem = essential_mem
 
 * assign variable context to slot
 	CALL ASSIGN_MR_CX( cx, mr )
 
 * success
+	status = ferr_ok    ! 1/17 no longer a failure possibility here
  5000	RETURN
 
 * error exit : no space available
diff --git a/fer/mem/fill_memory.F b/fer/mem/create_dyn_wrkspc.F
similarity index 73%
copy from fer/mem/fill_memory.F
copy to fer/mem/create_dyn_wrkspc.F
index 3b277a8..6160073 100644
--- a/fer/mem/fill_memory.F
+++ b/fer/mem/create_dyn_wrkspc.F
@@ -1,7 +1,5 @@
-	SUBROUTINE FILL_MEMORY ( memory, start_block, num_blocks, fill_word )
+	SUBROUTINE CREATE_DYN_WRKSPC( rqst_size, ws, 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),
@@ -35,32 +33,40 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* fill a memory region with the specified value
+* allocate the requested amount of dynamic memory (using c or python malloc)
+* return the index of the workmem buffer used
+
+* the hierarchy of calls is as follows
+*   create_dyn_wrkspc ==> get_ws_dynmem.F ==> get_ws_mem.c ==> store_ws_ptr.F
 
 * programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 4/23/86
-*        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 *sh*  1/17 trac enhancement ticket #2369 - dynamic memory
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
+	include 'errmsg.parm'
 	include	'ferret.parm'
-	include	'xvariables.cmn'
+	include 'xvariables.cmn'
 
 * calling argument declarations:
-	INTEGER	start_block, num_blocks
-	REAL	memory( mem_blk_size, max_mem_blks )
-	REAL	fill_word
+	INTEGER	ws, status
+	INTEGER*8 rqst_size
 
 * internal variable declarations:
-	INTEGER	iword, iblock
 
-	DO 100 iblock = start_block, start_block+num_blocks-1
-	DO 100 iword  = 1, mem_blk_size
- 100	memory( iword, iblock ) = fill_word
 
-	RETURN
+* select the buffer to use
+* ... we can get away with a simplistic solution, because there are so few
+*     buffers to manage
+	DO ws = 2, max_ws
+	   IF (ws_size(ws) .EQ. 0) GOTO 10
+	ENDDO
+	CALL ERRMSG( ferr_internal, status, 'create_dyn_wrkspc', *5000)
+
+* allocate the memory
+ 10	CALL GET_WS_DYNMEM( rqst_size, ws, status )
+
+ 5000	RETURN
+
 	END
 
diff --git a/fer/mem/create_mem_var.F b/fer/mem/create_mem_var.F
index 54f930a..2f69592 100644
--- a/fer/mem/create_mem_var.F
+++ b/fer/mem/create_mem_var.F
@@ -33,74 +33,25 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* allocate and claim sufficient memory space, and assign and fill a slot in the 
-* memory variable table for the variable or expression indicated in the context
+* call CREATE_MEM_VAR_W_BUFFER, asking for only a single ("1") buffer
 
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 2/19/87
-* V530   8/00 *sh* - double the memory allocation for string variables
-*			(to support 64 bit pointers)
-* V533   6/01 *sh* - use CGRID_SIZE_DELTA to allow mem vars with delta values
-* V68  *acm* 1/12  ifdef double_p for double-precision ferret.
-*        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
-* V69+ *acm*  9/14 Ticket 1758. Memory request uses number of blocks not words
+* V702 *sh* 11/16  -- most code moved to CREATE_MEM_VAR_W_BUFFER
+*                     change needed for split-gather on compressed axis
 
         IMPLICIT NONE
-        include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'errmsg.parm'
-	include 'xvariables.cmn'
-	include 'xcontext.cmn'
+	include 'tmap_dims.parm'
+	include 'xprog_state.cmn'
 
 * calling argument declarations:
-	INTEGER		cx, mr, status
-
-* internal variable declarations:
-	INTEGER	CGRID_SIZE_DELTA,
-     .		grid_size, start_block, num_blocks, num_slen, grid_blocks
-	REAL	R_CGRID_SIZE_DELTA, rgrid_size
-	CHARACTER  LEFINT*12, num_str*12
-
-* amount of storage space required
-* Compute as a real - grid sizes may overflow integer storage.
+	INTEGER	cx, mr, status
 
-	rgrid_size = R_CGRID_SIZE_DELTA( cx )  ! as a real
+	CALL CREATE_MEM_VAR_W_BUFFER(cx, mr, 1, status )
 
-* ... note: later we will want an array of word sizes indexed by type
-#ifdef double_p
-	IF (cx_type(cx) .EQ. ptype_string) rgrid_size = rgrid_size
-#else
-	IF (cx_type(cx) .EQ. ptype_string) rgrid_size = rgrid_size*2 ! 8 byte ptr
+* diagnostic sanity check of memory after creating new variable
+#ifndef NDEBUG
+        IF ( mode_diagnostic ) CALL SANITY_CHECK_MEMORY("CREATE_MEM_VAR")
 #endif
 
-* COMPUTE # BLOCKS NEEDED
-	grid_blocks = INT( ( rgrid_size + mem_blk_size - 1 ) / mem_blk_size )
-
-* claim the storage space
-	CALL GET_MEMORY( INT(rgrid_size), grid_blocks, start_block, num_blocks, status )
-	IF ( status .NE. ferr_ok ) RETURN
-
-* catalog it in the memory variable table
-	CALL ASSIGN_VARIABLE
-     .		      ( cx,
-     .			start_block,
-     .			num_blocks,
-     .			mr,
-     .			status 	)
-	IF ( status .NE. ferr_ok ) RETURN
-
-	RETURN
-
-5100	CONTINUE
-	num_str = LEFINT(INT((rgrid_size+0.99999E6)/1.0E6),num_slen)
-	CALL ERRMSG( ferr_insuff_memory,status,
-     .    num_str(:num_slen)//' Mwords were requested. ', *5130)
-5130    CALL WARN('You can use SET MEMORY/SIZE=xxx to increase memory.')
-	CALL WARN('The "Memory use" section of the FERRET '
-     .              //'Users Guide has further tips.') 
-
 	RETURN
 	END
+
diff --git a/fer/mem/create_mem_var.F b/fer/mem/create_mem_var_w_buffer.F
similarity index 74%
copy from fer/mem/create_mem_var.F
copy to fer/mem/create_mem_var_w_buffer.F
index 54f930a..36d8fd8 100644
--- a/fer/mem/create_mem_var.F
+++ b/fer/mem/create_mem_var_w_buffer.F
@@ -1,4 +1,4 @@
-	SUBROUTINE CREATE_MEM_VAR( cx, mr, status )
+	SUBROUTINE CREATE_MEM_VAR_W_BUFFER( cx, mr, nbuffer, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -47,6 +47,10 @@
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
 * V69+ *acm*  9/14 Ticket 1758. Memory request uses number of blocks not words
+* V702 11/16 *sh* based upon previous CREATE_MEM_VAR which had no nbuffer
+* V702  1/17 *sh*: added sanity checking of memory when debugging
+*     - find MR slot here, before calling ASSIGN_VARIABLE
+*     - for trac enhancement #2369 -- dynamic memory management 
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -54,20 +58,24 @@
 	include 'errmsg.parm'
 	include 'xvariables.cmn'
 	include 'xcontext.cmn'
+	include 'xprog_state.cmn'
 
 * calling argument declarations:
-	INTEGER		cx, mr, status
+	INTEGER	cx, mr, nbuffer, status
 
 * internal variable declarations:
-	INTEGER	CGRID_SIZE_DELTA,
-     .		grid_size, start_block, num_blocks, num_slen, grid_blocks
+	INTEGER*8 i8_size
 	REAL	R_CGRID_SIZE_DELTA, rgrid_size
 	CHARACTER  LEFINT*12, num_str*12
 
+* get a free slot in the memory variable table -- delete another var if needed
+	CALL FIND_MR_SLOT( mr, status )
+	IF ( status .NE. ferr_ok ) RETURN
+
 * amount of storage space required
 * Compute as a real - grid sizes may overflow integer storage.
-
-	rgrid_size = R_CGRID_SIZE_DELTA( cx )  ! as a real
+* ?? won't it blow up in INT(rgrid_size) below in that case ?? *sh* 
+	rgrid_size = R_CGRID_SIZE_DELTA( cx ) * nbuffer  ! as a real
 
 * ... note: later we will want an array of word sizes indexed by type
 #ifdef double_p
@@ -76,31 +84,25 @@
 	IF (cx_type(cx) .EQ. ptype_string) rgrid_size = rgrid_size*2 ! 8 byte ptr
 #endif
 
-* COMPUTE # BLOCKS NEEDED
-	grid_blocks = INT( ( rgrid_size + mem_blk_size - 1 ) / mem_blk_size )
-
-* claim the storage space
-	CALL GET_MEMORY( INT(rgrid_size), grid_blocks, start_block, num_blocks, status )
-	IF ( status .NE. ferr_ok ) RETURN
+* claim the dynamic storage space needed
+	i8_size = rgrid_size
+	CALL GET_MR_DYNMEM( i8_size, mr, status )
+	IF ( status .NE. ferr_ok ) THEN
+	   CALL MR2FREELIST(mr)
+	   RETURN
+	ENDIF
 
 * catalog it in the memory variable table
-	CALL ASSIGN_VARIABLE
-     .		      ( cx,
-     .			start_block,
-     .			num_blocks,
-     .			mr,
-     .			status 	)
-	IF ( status .NE. ferr_ok ) RETURN
+	CALL ASSIGN_VARIABLE( cx, mr, status )
+	IF ( status .NE. ferr_ok ) RETURN  ! 1/17 no longer possible
 
-	RETURN
+* hook it into the right cache lookup list
+	CALL HOOK_MR_SLOT(cx, mr)
 
-5100	CONTINUE
-	num_str = LEFINT(INT((rgrid_size+0.99999E6)/1.0E6),num_slen)
-	CALL ERRMSG( ferr_insuff_memory,status,
-     .    num_str(:num_slen)//' Mwords were requested. ', *5130)
-5130    CALL WARN('You can use SET MEMORY/SIZE=xxx to increase memory.')
-	CALL WARN('The "Memory use" section of the FERRET '
-     .              //'Users Guide has further tips.') 
+* diagnostic sanity check of memory after creating new variable
+#ifndef NDEBUG
+        IF ( mode_diagnostic ) CALL SANITY_CHECK_MEMORY("CREATE_MEM_VAR")
+#endif
 
 	RETURN
 	END
diff --git a/fer/mem/create_permutation.F b/fer/mem/create_permutation.F
index 5e9af0a..a988d2a 100644
--- a/fer/mem/create_permutation.F
+++ b/fer/mem/create_permutation.F
@@ -1,5 +1,5 @@
-	SUBROUTINE CREATE_PERMUTATION( memory,
-     .				cx, msrc, perm, mdst, status )
+	SUBROUTINE CREATE_PERMUTATION( cx, msrc, perm, mdst, do_shrink,
+     .				       status )
 
 *
 *
@@ -53,6 +53,12 @@
 *v580  *acm* 11/04 transfer cx_cal_id, the calendar ID used when  
 *                  computing world coordinates
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
+
+* ... Ticket 1480: When writing to netCDF, check whether the region 
+*     on modulo axes is just one grid-cell longer than the axis length,
+*     e.g. if they give a region of /X=0:360.  If so, write one grid-cell 
+*     less data.so the axis can still be a valid modulo axis.
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -62,12 +68,12 @@
 	include 'xcontext.cmn'
 
 * calling argument declarations:
+	LOGICAL do_shrink
 	INTEGER	cx, msrc, perm(nferdims), mdst, status
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
 	LOGICAL	table_entry_only
-	INTEGER nsrc, ndst, idim, dim, prm,
+	INTEGER nsrc, ndst, idim, dim, prm, 
      .		src_len(nferdims), dst_len(nferdims),
      .          src_ax(nferdims),  dst_ax(nferdims)
 
@@ -77,7 +83,8 @@
 * test if any action is necessary
 * ... it is unnecessary if all dimensions with length greater than 1 are
 * the same length and in the same order in the source data as in the requested
-* permutation
+* permutation, or if there is more than one dimension in the grid and a dimension
+* is shrunk.
 * (Note: msrc regions always span cx regions)
 * Compute src_len and dst_len - the non-unity axis lengths in the source and
 * destination data
@@ -118,6 +125,8 @@
 	   ENDIF
  300	CONTINUE
 
+	IF (do_shrink) GOTO 500
+
 * dimensions have not been permuted nor are context region sizes < stored data
 	status = ferr_ok
 	mdst = msrc
@@ -126,7 +135,9 @@
 * need a dummy entry
 
 * create a permuted context
- 500	DO 510 idim = 1,nferdims
+ 500	CONTINUE
+	
+	DO 510 idim = 1,nferdims
 	   prm = perm(idim)
 	   cx_lo_ss ( cx_buff, idim )   = cx_lo_ss ( cx, prm )
 	   cx_hi_ss ( cx_buff, idim )   = cx_hi_ss ( cx, prm )
@@ -157,17 +168,21 @@
 	IF ( status .NE. ferr_ok ) RETURN
 
 * permute or kludge around permuting the data
-	IF ( table_entry_only ) THEN
+	IF ( table_entry_only .AND. .NOT.do_shrink) THEN
 * ... point to the original data using permuted limits
-	   CALL FREE_MEMORY( mr_blk1(mdst), mr_nblks(mdst) )
+* ... a duplicated pointer, only 
+*     mr_size of the table-entry-only mr will be zero
+*     total_mem need not be adjusted cuz no actual new memory is involved
+	   essential_mem = essential_mem - mr_size(mdst)
+	   CALL FREE_MR_DYNMEM( mdst )
+	   memry(mdst)%ptr => memry(msrc)%ptr
+
 	   mr_c_pointer(mdst) = mr_c_pointer(msrc)
-	   mr_blk1     (mdst) = mr_blk1(msrc)
-	   mr_nblks    (mdst) = mr_nblks(msrc)
 	   mr_protected(mdst) = mr_table_entry_only
 	ELSE
 * ... permute the data
-	   CALL PERMUTE( cx, memory(1, mr_blk1(msrc)), msrc,
-     .			     memory(1, mr_blk1(mdst)), mdst, perm )
+	   CALL PERMUTE( cx, memry(msrc)%ptr, msrc,
+     .			     memry(mdst)%ptr, mdst, perm )
 	ENDIF
 
 	RETURN
diff --git a/fer/mem/create_temp_mem_var.F b/fer/mem/create_temp_mem_var.F
index ee9753e..7e4e809 100644
--- a/fer/mem/create_temp_mem_var.F
+++ b/fer/mem/create_temp_mem_var.F
@@ -48,6 +48,8 @@
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
 * V69+ *acm*  9/14 Ticket 1758. Memory request uses number of blocks not words
+* V702 1/16 *sh*: find MR slot here, before calling ASSIGN_VARIABLE
+*		  for trac enhancement #2369 -- dynamic memory management 
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -57,13 +59,16 @@
 	include 'xcontext.cmn'
 
 * calling argument declarations:
-	INTEGER		cx, mr, status
+	INTEGER	cx, mr, status
 
 * internal variable declarations:
-	INTEGER	CGRID_SIZE_DELTA,
-     .		grid_size, start_block, num_blocks, grid_blocks
+	INTEGER*8 i8_size
 	REAL R_CGRID_SIZE_DELTA, rgrid_size
 
+* get a free slot in the memory variable table -- delete another var if needed
+	CALL FIND_MR_SLOT( mr, status )
+	IF ( status .NE. ferr_ok ) RETURN
+
 * amount of storage space required
 * Compute as a real - grid sizes may overflow integer storage.
 
@@ -76,22 +81,20 @@
 	IF (cx_type(cx) .EQ. ptype_string) rgrid_size = rgrid_size*2 ! 8 byte ptr
 #endif
 
-* claim the storage space
-
-* COMPUTE # BLOCKS NEEDED
-	grid_blocks = ( INT(rgrid_size) + mem_blk_size - 1 ) / mem_blk_size
-
-	CALL GET_MEMORY( INT(rgrid_size), grid_blocks, start_block, num_blocks, status )
-	IF ( status .NE. ferr_ok ) RETURN
+* claim the dynamic storage space needed
+	i8_size = rgrid_size
+	CALL GET_MR_DYNMEM( i8_size, mr, status )
+	IF ( status .NE. ferr_ok ) THEN
+	   CALL MR2FREELIST(mr)
+	   RETURN
+	ENDIF
 
 * catalog it in the memory variable table
-	CALL ASSIGN_TEMP_VAR
-     .		      ( cx,
-     .			start_block,
-     .			num_blocks,
-     .			mr,
-     .			status 	)
+	CALL ASSIGN_TEMP_VAR( cx, mr, status )
 	IF ( status .NE. ferr_ok ) RETURN
 
+* hook it into the right cache search list
+	CALL HOOK_MR_SLOT( cx, mr)
+
 	RETURN
 	END
diff --git a/fer/mem/deallo_uvar_grids.F b/fer/mem/deallo_uvar_grids.F
index 4d0a8a7..7563f7c 100644
--- a/fer/mem/deallo_uvar_grids.F
+++ b/fer/mem/deallo_uvar_grids.F
@@ -45,11 +45,16 @@
 * V510 *sh* 4/00 - deallocate any grid, not just dynamic ones
 * V533 *sh* 7/01 - set data type of grid/variable
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
-* V699 *sh* 6/16 - variable uvar_grids replaced with LISTs in NCF_Util.c 
+* V699 *sh* 6/16 - variable uvar_grid replaced with LISTs in NCF_Util.c 
+* V710 *acm* 18/25/16 - Ticket 2462 Issue the warnings only if in MODE DIAGNOSTIC 
+* V710 *acm* 10/25/16 - Always issue the warnings: Memory-link fixes in NCF_Util.c 
+* 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 
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
 	include 'ferret.parm'
+	include 'errmsg.parm'
 	include 'xvariables.cmn'
 	include	'xtm_grid.cmn_text'
 	external xgt_grid_data
@@ -58,69 +63,34 @@
 	INTEGER	uvar
 
 * local declarations
-	INTEGER iset, idim, ngrids, nfound, 
-     .		saved_uvgrid, tmp_len
+	INTEGER ngrids, saved_uvgrid, i, c_list_dset
 	CHARACTER tmp_buff*256
-	INTEGER aux_cat(nferdims), aux_var(nferdims)  ! LIST diagnostics
-
-	nfound = 0
+	
 	CALL GET_SAVED_UVAR_GRID_LIST_LEN(uvar, ngrids)
 
-* OLD CODE - based upon XVARIABLES uvar_grid variable
-* The FUTURE CODE will replace all of the doubly-dimensioned
-* variables (max_uvar X max_gfdl_dsets) with calls to LISTs
-
 * THIS LOOP WILL BE REPLACED WITH a loop over ngrids (see above)
 * using LIST controls that allow you to traverse the list from end-to-end:
-* list_front, list_mvnext
-	DO 100 iset = 0, max_gfdl_dsets
-
-* Remove the grid
-* (and possibly all memory resident variables that depend on it)
-	   IF ( uvar_grid(uvar,iset) .GE. 1
-     .   .AND.  uvar_grid(uvar,iset) .LE. max_dyn_grids ) THEN
+* list_front, list_mvnext (?)
 
-* test the new LIST code
-	      nfound = nfound + 1
-	      CALL GET_SAVED_UVAR_GRID(uvar, iset, saved_uvgrid)
-	      IF (saved_uvgrid .NE. uvar_grid(uvar,iset)) THEN
-	         CALL GET_SHORT_DSET_NAME( iset, tmp_buff, tmp_len)
-	         CALL WARN("UVGRIDERR: deallo_uvar_grids")
-	         CALL WARN("dset="//tmp_buff(:tmp_len))
-	         WRITE(6,*) 'UVGRIDERR: deallo_uvar_grids'
-	         WRITE(6,*)'dset='//tmp_buff(:tmp_len)
-	      ENDIF
+        IF (ngrids .GT. 0) THEN
+	
+* c_list_dset  - dataset value relevant in C LIST structures of NCF_Util.c
 
-	      CALL GET_SAVED_UVAR_AUX_INFO(uvar, iset,
-     .				           aux_cat, aux_var)
-	      DO idim = 1, nferdims
-	        IF (aux_cat(idim) .NE. uvar_aux_cat(uvar,idim,iset)
-     .         .OR. aux_var(idim) .NE. uvar_aux_var(uvar,idim,iset))
-     .							THEN
-	           WRITE(6,3000) aux_cat(idim), uvar_aux_cat(uvar,idim,iset),
-     .				 aux_var(idim), uvar_aux_var(uvar,idim,iset)
- 3000		   FORMAT(' UVAUXERR: deallo_uvar_grids', 4I8)
-	        ENDIF
-	      ENDDO
+	   c_list_dset = uvar_dset(uvar)                    ! the dset that owns this LET/D
+	   IF (c_list_dset .LE. pdset_irrelevant) c_list_dset = pdset_uvars  ! global uvars
 
-	      CALL DEALLO_DYN_GRID(uvar_grid(uvar,iset))
-	   ENDIF
+	   DO i = 1, ngrids
 
-* set the grid pointer to its initialized state
-	uvar_grid( uvar, iset ) = unspecified_int4
+	      CALL NCF_NEXT_UVAR_GRID_IN_LIST ( c_list_dset, uvar, i, saved_uvgrid )
+	      IF ( saved_uvgrid.GE.1 .AND. saved_uvgrid.LE.max_dyn_grids ) 
+     .           CALL DEALLO_DYN_GRID(saved_uvgrid)
 
-* set the data type of the grid/variable
-	uvar_data_type( uvar, iset ) = unspecified_int4
-
- 100	CONTINUE
+	   ENDDO
 
+        ENDIF
 
 * free the LIST of grids associated with this uvar
-	IF (nfound .NE. ngrids) THEN
-	   CALL WARN("UVGRIDERR: deallo_uvar_grids nfound")
-	   WRITE(6,*) 'UVGRIDERR: deallo_uvar_grids nfound'
-	   WRITE(6,*)'uvar=', uvar
-	ENDIF
+
 	CALL FREE_UVAR_GRIDS(uvar)
 
 	RETURN
diff --git a/fer/mem/delete_mrs_in_progress.F b/fer/mem/delete_mrs_in_progress.F
index 35dec19..e49a2ef 100644
--- a/fer/mem/delete_mrs_in_progress.F
+++ b/fer/mem/delete_mrs_in_progress.F
@@ -47,6 +47,7 @@
 * V200:  6/27/89 - delete temporary variables, too 
 * V420: 11/95 - also delete un-cached memory vars
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702:  3/17 *sh* dynamic memory
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -56,15 +57,26 @@
 * internal variable declarations:
 	INTEGER	mr
 
-	DO 100 mr = 1, max_mrs
+	DO mr = 1, max_mrs
+
 	   IF ( mr_protected( mr ) .EQ. mr_in_progress
-     .	   .OR. mr_protected( mr ) .EQ. mr_temporary )
-     .						CALL DELETE_VARIABLE( mr )
- 100	CONTINUE
+     .	   .OR. mr_protected( mr ) .EQ. mr_temporary ) THEN
+	      CALL DELETE_VARIABLE( mr )
+	   ELSEIF ( mr_protected( mr ) .GT. mr_not_protected ) THEN
+	      CALL MR_AVAILABLE(mr) ! use count=0 and onto deletion chain
+	   ENDIF
+
+	ENDDO
 
 * also delete un-cached memory variables
 	CALL DELETE_UN_CACHED_MVARS
 
+* sanity check that memory management is working correctly
+	IF (essential_mem .NE. 0 ) THEN
+	   CALL WARN("crptn??: delete_mrs_in_progress")
+	   essential_mem = 0
+	ENDIF
+
 	RETURN
 	END
 
diff --git a/fer/mem/delete_variable.F b/fer/mem/delete_variable.F
index 0913f8e..eb76130 100644
--- a/fer/mem/delete_variable.F
+++ b/fer/mem/delete_variable.F
@@ -61,6 +61,8 @@
 * V601 11/06 *acm*- fix bug 1466: memory for string vars is NOT allocated via malloc,
 *                   so do not FREE it here. 
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 1/16 *sh*: dynamic memory management
+*                 (commented out) sanity checking of memory when debugging
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -74,25 +76,22 @@
 * internal variable declarations:
 	INTEGER MGRID_SIZE_DELTA, size, idim, prev, next
 
+* diagnostic "delete" message
 	IF (mode_diagnostic) THEN
 	   IF ( mr_protected(mr) .NE. mr_table_entry_only )
      .			CALL DIAGNOSTIC_OUT( '-DELETE', mr, point_to_mr )
-
-	   IF     ( mr_protected( mr ) .EQ. mr_not_protected	) THEN
-	      CONTINUE
-	   ELSEIF ( mr_protected( mr ) .EQ. mr_temporary	) THEN
-	      CONTINUE
-	   ELSEIF ( mr_protected( mr ) .EQ. mr_table_entry_only	) THEN
-	      CONTINUE
-	   ELSEIF ( mr_protected( mr ) .EQ. mr_perm_protected	) THEN
+	   IF ( mr_protected( mr ) .EQ. mr_perm_protected	) THEN
 	      CALL SPLIT_LIST(pttmode_ops, ttout_lun,'PERMANENT', 9)
-	   ELSEIF ( mr_protected( mr ) .EQ. mr_in_progress	) THEN
-	      CONTINUE
-	   ELSE
-	      CALL WARN( 'CORRUPTION! mr_protected ????' )
 	   ENDIF
 	ENDIF
 
+* book keeping
+	   IF ( mr_protected( mr ) .EQ. mr_temporary	
+     .	  .OR.  mr_protected( mr ) .EQ. mr_in_progress
+     .	  .OR.  mr_protected( mr ) .GT. mr_not_protected    ) THEN
+	      essential_mem = essential_mem - mr_size(mr)
+	   ENDIF
+
 * if this is a string array variable then free the "C" memory allocated
 * if mr_table_entry_only, no memory was given to the variable
 	IF ( mr_type(mr)      .EQ. ptype_string  .AND.
@@ -101,17 +100,17 @@
 	   CALL FREE_C_STRING_ARRAY(mr_c_pointer(mr), size)
 	ENDIF
 
-* diagnostic "delete" message
 * remove variable slot from hash pile doubly linked list
-	prev = mv_blink( mr )
-	next = mv_flink( mr )
-	mv_flink( prev ) = next
-	mv_blink( next ) = prev
+        prev = mv_blink( mr )
+        next = mv_flink( mr )
+        mv_flink( prev ) = next
+        mv_blink( next ) = prev
 
 * return the slot to the memory variable free list
-	mv_flink( mr ) = mv_flink( 0 )	
-	mv_blink( mr ) = unspecified_int4		! temp diag
-	mv_flink( 0 ) = mr
+* this code is equivalent to MR2FREELIST. kept in-line here for speed
+        mv_flink( mr ) = mv_flink( 0 )
+        mv_blink( mr ) = unspecified_int4               ! house keeping
+        mv_flink( 0 ) = mr
 
 * remove the variable from the deletion chain if it is there
 	IF ( mr_protected(mr) .EQ. mr_not_protected ) THEN
@@ -119,21 +118,36 @@
 	   next = mr_del_flink(mr)
 	   mr_del_flink(prev) = next
 	   mr_del_blink(next) = prev
-	   mr_del_flink(mr)   = unspecified_int4	! temp diag
-	   mr_del_blink(mr)   = unspecified_int4	! temp diag
+	   mr_del_flink(mr)   = unspecified_int4	! important 12/16
+	   mr_del_blink(mr)   = unspecified_int4	! important 12/16
 	ENDIF
 
 * release bulk memory that the variable used
-	IF ( mr_protected( mr ) .NE. mr_table_entry_only ) 
-     . 		CALL FREE_MEMORY( mr_blk1(mr), mr_nblks(mr) )
-
-
+	IF ( mr_protected( mr ) .NE. mr_table_entry_only ) THEN
+	   CALL FREE_MR_DYNMEM( mr )
+	ELSE
+* ... remove the table_entry_only pointer for good housekeeping
+	   CALL NULLIFY_MR(mr)
+	   mr_size(mr) = 0  
+	ENDIF
 * eliminate any stray indications that this variable points to a grid
 	mr_grid( mr ) = unspecified_int4
 
 * set protection to indicate deleted
 	mr_protected( mr ) = mr_deleted
 
+* sanity check memory integrity after deletion
+! note that this call can give false indications of corruption.
+! When DELETE_VARIABLE is called due to the mr table being full during
+! CREATE_MEM_VAR.  In that case GET_MEMORY reserves the memory, and then
+! ASSIGN_VARIABLE (which calls FIND_MR_SLOT) deletes a variable to free up
+! a slot while the newly reserved memory has not yet been assigned to an mr.
+! NOTE: this may no longer be true since code change to CREATE_MEM_VAR:
+!       FIND_MR_SLOT is now called before GET_MEMORY and ASSIGN_VARIABLE
+!#ifndef NDEBUG
+!        IF ( mode_diagnostic ) CALL SANITY_CHECK_MEMORY("DELETE_VARIABLE")
+!#endif
+
+
 	RETURN
 	END
-
diff --git a/fer/mem/fill_memory.F b/fer/mem/dynmem_mrlist_c.F
similarity index 77%
copy from fer/mem/fill_memory.F
copy to fer/mem/dynmem_mrlist_c.F
index 3b277a8..22de8ec 100644
--- a/fer/mem/fill_memory.F
+++ b/fer/mem/dynmem_mrlist_c.F
@@ -1,4 +1,4 @@
-	SUBROUTINE FILL_MEMORY ( memory, start_block, num_blocks, fill_word )
+	SUBROUTINE DYNMEM_MRLIST_C ( n, mrlist, c_ptr_array, status )
 
 *
 *
@@ -35,31 +35,40 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* fill a memory region with the specified value
+* pass the list of pointers implies by the list of pointers in mrlist
+* into a c pointer list, where they will be readily accessible in c
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
 *
-* revision 0.0 - 4/23/86
-*        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 1/17 *sh* 
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
 	include	'ferret.parm'
+	include 'errmsg.parm'
 	include	'xvariables.cmn'
 
 * calling argument declarations:
-	INTEGER	start_block, num_blocks
-	REAL	memory( mem_blk_size, max_mem_blks )
-	REAL	fill_word
+	INTEGER	n, mrlist(n), status
+        INTEGER*8 c_ptr_array
 
 * internal variable declarations:
-	INTEGER	iword, iblock
+	INTEGER	i, mr
 
-	DO 100 iblock = start_block, start_block+num_blocks-1
-	DO 100 iword  = 1, mem_blk_size
- 100	memory( iword, iblock ) = fill_word
+* create the c pointer array
+	CALL DYNMEM_MAKE_PTR_ARRAY(n, c_ptr_array, status)
+	IF (status .NE. ferr_ok) RETURN
+
+* pass the FORTRAN pointers into c
+	DO i = 1, n
+	   mr = mrlist(i)
+	   IF (mr .EQ. 0) THEN
+	      CALL DYNMEM_PASS_1_PTR(i, memry(dummy_mr)%ptr, c_ptr_array)
+	   ELSE
+	      CALL DYNMEM_PASS_1_PTR(i, memry(mr)%ptr, c_ptr_array)
+	   ENDIF
+	ENDDO
 
 	RETURN
 	END
diff --git a/fer/mem/fill_memory.F b/fer/mem/fill_memory.F
index 3b277a8..a669312 100644
--- a/fer/mem/fill_memory.F
+++ b/fer/mem/fill_memory.F
@@ -1,4 +1,4 @@
-	SUBROUTINE FILL_MEMORY ( memory, start_block, num_blocks, fill_word )
+	SUBROUTINE FILL_MEMORY ( mr, fill_word )
 
 *
 *
@@ -35,7 +35,7 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* fill a memory region with the specified value
+* fill a memory resident variable with the specified value
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
@@ -43,6 +43,7 @@
 *
 * revision 0.0 - 4/23/86
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -50,16 +51,15 @@
 	include	'xvariables.cmn'
 
 * calling argument declarations:
-	INTEGER	start_block, num_blocks
-	REAL	memory( mem_blk_size, max_mem_blks )
+	INTEGER	mr
 	REAL	fill_word
 
 * internal variable declarations:
-	INTEGER	iword, iblock
+	INTEGER	i
 
-	DO 100 iblock = start_block, start_block+num_blocks-1
-	DO 100 iword  = 1, mem_blk_size
- 100	memory( iword, iblock ) = fill_word
+	DO i = 1, mr_size(mr)
+	   memry(mr)%ptr(i) = fill_word
+	ENDDO
 
 	RETURN
 	END
diff --git a/fer/mem/find_mem_var.F b/fer/mem/find_mem_var.F
index 2ab99da..2f13439 100644
--- a/fer/mem/find_mem_var.F
+++ b/fer/mem/find_mem_var.F
@@ -100,6 +100,11 @@
 * Some of the internal grid-changing functions (e.g. RESHAPE) require
 * slightly different rules for setting uvar_given -- see gcf_impose_axes.F
 *
+* V701:  7/16 *acm* Ticket 2452. Instances where the cx_*ww and mr*ww values 
+*	          should be exactly the same but the cx coordinates are ever 
+*	          so slightly too wide to match the request. Use TM_DFPEQ
+*	          to test for approx. equal values before rejecting the match  
+*	          with what is in memory.
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -116,13 +121,12 @@
 	LOGICAL by_value, valid_search
 
 * internal variable declarations:
-	LOGICAL has_trans, itsa_uvar,
+	LOGICAL TM_DFPEQ, has_trans, itsa_uvar,
      .          normal(nferdims), non_modulo(nferdims)
 	INTEGER HASH_CX, line,
      .		mv, defining_grid, idim, var
         REAL*8  TM_WORLD, ww_hi_bound, c_cache_ptr
 
-
 * initialize
 	valid_search = .TRUE.
 
@@ -214,11 +218,17 @@
      .		      non_modulo(idim) )  ) GOTO 40
 
 * insist that the  grid stored in memory encompasses the requested data
-	      IF ( mr_lo_ww(idim,mv) .GT. cx_lo_ww(idim,cx)
-     .        .OR. mr_hi_ww(idim,mv) .LT. cx_hi_ww(idim,cx)) GOTO 100
+	      IF (mr_lo_ww(idim, mv) .GT. cx_lo_ww(idim, cx)) THEN
+                 IF ( .NOT. TM_DFPEQ(cx_lo_ww(idim,cx),mr_lo_ww(idim,mv)) ) GOTO 100
+	      ENDIF
+	      IF (mr_hi_ww(idim, mv) .LT. cx_hi_ww(idim, cx)) THEN
+                 IF ( .NOT. TM_DFPEQ(cx_hi_ww(idim,cx),mr_hi_ww(idim,mv)) ) GOTO 100
+	      ENDIF
 
 * insist that the delta values match
-	      IF ( mr_delta(idim,mv) .NE. cx_delta(idim,cx) ) GOTO 100
+	      IF ( mr_delta(idim,mv) .NE. cx_delta(idim,cx) ) THEN
+                 IF ( .NOT. TM_DFPEQ(mr_delta(idim,mv),cx_delta(idim,cx)) )  GOTO 100
+	      ENDIF
 
  40	   CONTINUE
 
@@ -234,11 +244,18 @@
 	      IF ( mr_trans(idim,mv) .NE. cx_trans(idim,cx) ) GOTO 100
 
 * insist that the  grid stored in memory encompasses the requested data
-	      IF ( mr_lo_ww(idim, mv) .GT. cx_lo_ww(idim, cx)
-     .        .OR. mr_hi_ww(idim, mv) .LT. cx_hi_ww(idim, cx)) GOTO 100
+
+	      IF (mr_lo_ww(idim, mv) .GT. cx_lo_ww(idim, cx)) THEN
+                 IF ( .NOT. TM_DFPEQ(cx_lo_ww(idim,cx),mr_lo_ww(idim,mv)) ) GOTO 100
+	      ENDIF
+	      IF (mr_hi_ww(idim, mv) .LT. cx_hi_ww(idim, cx)) THEN
+                 IF ( .NOT. TM_DFPEQ(cx_hi_ww(idim,cx),mr_hi_ww(idim,mv)) ) GOTO 100
+	      ENDIF
 
 * insist that the delta values match
-	      IF ( mr_delta(idim,mv) .NE. cx_delta(idim,cx) ) GOTO 100
+	      IF ( mr_delta(idim,mv) .NE. cx_delta(idim,cx) ) THEN
+                 IF ( .NOT. TM_DFPEQ(mr_delta(idim,mv),cx_delta(idim,cx)) ) GOTO 100
+	      ENDIF
 
  50	   CONTINUE
 
@@ -261,7 +278,9 @@
      .	      .OR. mr_hi_ss(mv, idim) .LT. cx_hi_ss(cx, idim)) GOTO 100
 
 * insist that the delta values match
-	      IF ( mr_delta(idim,mv) .NE. cx_delta(idim,cx) ) GOTO 100
+	      IF ( mr_delta(idim,mv) .NE. cx_delta(idim,cx) ) THEN
+	         IF ( .NOT. TM_DFPEQ(mr_delta(idim,mv),cx_delta(idim,cx)) ) GOTO 100
+	      ENDIF
 
  60	   CONTINUE
 	ENDIF
diff --git a/fer/mem/find_mem_var_incl_c_cache.F b/fer/mem/find_mem_var_incl_c_cache.F
index 479494f..d47442d 100644
--- a/fer/mem/find_mem_var_incl_c_cache.F
+++ b/fer/mem/find_mem_var_incl_c_cache.F
@@ -1,4 +1,4 @@
-	SUBROUTINE FIND_MEM_VAR_INCL_C_CACHE( cx, mr, by_value, memory )
+	SUBROUTINE FIND_MEM_VAR_INCL_C_CACHE( cx, mr, by_value )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -58,7 +58,6 @@
 * calling argument declarations:
 	INTEGER cx, mr
 	LOGICAL by_value
-	REAL    memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
 	LOGICAL valid_search
@@ -92,7 +91,7 @@
 	   CALL CREATE_MEM_VAR( cx_buff, mr, status )
 	   IF (status .NE. ferr_ok) GOTO 5000
 	   npts = CGRID_SIZE(cx_buff)
-	   CALL RECOVER_CACHED_FULL_ARRAY(memory(1,mr_blk1(mr)),
+	   CALL RECOVER_CACHED_FULL_ARRAY(memry(mr)%ptr,
      .				npts, c_cache_ptr)
 	   IF (mode_diagnostic) CALL DIAGNOSTIC_OUT('c-found',mr,point_to_mr)
 	   RETURN  ! YAHOO!  Made a last didch cache hit.
diff --git a/fer/mem/find_mr_slot.F b/fer/mem/find_mr_slot.F
index 29a1adc..8e45b0e 100644
--- a/fer/mem/find_mr_slot.F
+++ b/fer/mem/find_mr_slot.F
@@ -1,4 +1,4 @@
-	SUBROUTINE FIND_MR_SLOT( cx, mr, status )
+	SUBROUTINE FIND_MR_SLOT( mr, status )
 
 *
 *
@@ -45,6 +45,8 @@
 * revision 0.0 - 7/21/88
 * V200:  6/12/89 - delete priorities handled through linked lists
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 *sh* 1/17 - split half of the code into the new HOOK_MR_SLOT
+*                  as part of the new dynamic memory management
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -54,35 +56,31 @@
 	include 'xcontext.cmn'
 
 * calling argument declarations:
-	INTEGER cx, mr, status
+	INTEGER mr, status
 
 * internal variable declarations:
-	INTEGER HASH_cx, pile, head
 
-* is there a slot in the free slot list ?
- 100	IF ( mv_flink( 0 ) . EQ. 0 ) THEN
-* ... no - delete lowest priority variable to make room and try again
+*****
+
+* start with the first entry on the free mr list
+	mr = mv_flink( 0 )
+
+* if it isn't free, then free the most vulnerable mr on the delete chain
+	IF ( mr . EQ. 0 ) THEN
 	   mr = mr_del_blink(0)
 	   IF ( mr .EQ. 0 ) GOTO 5010
 	   CALL DELETE_VARIABLE( mr )
 	ENDIF
 
-* transfer the slot from the free list to the cx hash pile
+* remove it from the free list to indicate 
 *    ... remove from free list head
-	mr = mv_flink( 0 )
+!	mr = mv_flink( 0 )
 	mv_flink( 0 ) = mv_flink( mr )
-*    ... add to head of hash pile
-	pile = HASH_cx( cx )
-	head = mv_flink( pile )
-	mv_flink( pile ) = mr
-	mv_flink( mr ) = head
-	mv_blink( mr ) = pile
-	mv_blink( head ) = mr
 
 * successful completion
 	status = ferr_ok
  5000	RETURN
 
-* error exit : no space available
+* error exit : no space available (empty delete chain)
  5010	CALL ERRMSG( ferr_too_many_vars, status,' ', *5000 )
 	END
diff --git a/fer/mem/find_var_name.F b/fer/mem/find_var_name.F
index 5a6d59e..5b66fe6 100644
--- a/fer/mem/find_var_name.F
+++ b/fer/mem/find_var_name.F
@@ -77,6 +77,7 @@
 * V695 *acm*  2/15 For Forecast aggregations, call the ds_type 'FCT'
 * V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
 *                  variables, pre-defined axes and grids, cat_calc_var.
+* V7   *acm*  6/12 Add Union aggregations: DEFINE DATA/AGG/U, ds_type 'UNI'
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -365,6 +366,7 @@
  	   IF (dset.NE.unspecified_int4) THEN
 	      IF (ds_type(dset).EQ.'ENS') category = cat_agg_e_var
 	      IF (ds_type(dset).EQ.'FCT') category = cat_agg_f_var
+	      IF (ds_type(dset).EQ.'UNI') category = cat_agg_u_var
  	   ENDIF
 	   variable = ivar
            test_name = buff
diff --git a/fer/mem/free_memory.F b/fer/mem/free_memory.F
deleted file mode 100644
index ce8f359..0000000
--- a/fer/mem/free_memory.F
+++ /dev/null
@@ -1,144 +0,0 @@
-	SUBROUTINE FREE_MEMORY ( mblk, num_blocks )
-
-*
-*
-*  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. 
-*
-*
-* return a contiguous region of bulk memory to the free list merging it with
-* the surrounding free regions if they are contiguous
-* ( return the merged size via COMMON in mr_del_last_size )
-* see documentation in XVARIABLES.CMN
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 4/1/86
-* revision 1.0 - 7/21/88 - complete re-write using linked list
-* V200:  6/12/89 - use doubly linked list; return mr_del_last_*
-*	 8/1/89  - corrected bug: mr_del_last* not set for not contig at all
-* V312: 5/94 - array "memory" as a calling argument
-*        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
-
-        IMPLICIT NONE
-        include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'xvariables.cmn'
-	include 'xprog_state.cmn'
-
-* calling argument declarations:
-	INTEGER	mblk, num_blocks, mem_blk, i
-
-* internal variable declarations:
-	INTEGER	prev, next, nex2
-	LOGICAL	contig_above, contig_below
-
-! temp diag
-	IF ( num_blocks .NE. mblk_size( mblk ) ) STOP ' FREE_MEMORY'
-
-!* as a diagnostic test - fill unused memory with a flag
-! removed 5/18/94 as "memory" is no longer in COMMON 
-!	IF ( mode_diagnostic ) THEN
-!	   DO 50 mem_blk = mblk, mblk+num_blocks-1
-!	   DO 50 i = 1, mem_blk_size
-! 50	   memory( i,mem_blk ) = bad_val4
-!	ENDIF
-
-* find the position of "mblk" in the ordered free memory list
-	prev = 0
-	next = mblk_flink( prev )
- 100	IF ( next .EQ. 0 ) THEN
-* ... end of list - this mblk value must be greater than anything in the list
-	   GOTO 200
-	ELSEIF ( next .LT. mblk ) THEN
-* ... keep looking further in the list
-	   prev = next
-	   next = mblk_flink( next )
-	   GOTO 100
-	ENDIF
-* ... found it - prev<mblk and next>mblk
-	nex2 = mblk_flink( next )
-
-* will the new region merge contiguously above or below ?
- 200	contig_above = mblk + num_blocks .EQ. next
-	contig_below = prev + mblk_size(prev) .EQ. mblk
-     .		 .AND. prev .NE. 0
-
-* insert the freed bulk memory region into the free list
-	IF ( contig_above .AND. contig_below ) THEN
-	   mr_del_last_mblk   = prev
-	   mr_del_last_size   = mblk_size( prev )
-     .			      + num_blocks
-     .			      + mblk_size( next )
-	   mblk_size ( prev ) = mr_del_last_size
-	   mblk_flink( prev ) = nex2
-	   mblk_blink( nex2 ) = prev
-	   mblk_flink( mblk ) = unspecified_int4	! temp diag
-	   mblk_blink( mblk ) = unspecified_int4	! temp diag
-	   mblk_size ( mblk ) = unspecified_int4	! temp diag
-	   mblk_flink( next ) = unspecified_int4	! temp diag
-	   mblk_blink( next ) = unspecified_int4	! temp diag
-	   mblk_size ( next ) = unspecified_int4	! temp diag
-
-	ELSEIF ( contig_above ) THEN
-	   mr_del_last_mblk   = mblk
-	   mr_del_last_size   = num_blocks + mblk_size( next )
-	   mblk_size ( mblk ) = mr_del_last_size
-	   mblk_flink( mblk ) = nex2
-	   mblk_blink( mblk ) = prev
-	   mblk_blink( nex2 ) = mblk
-	   mblk_flink( prev ) = mblk
-	   mblk_flink( next ) = unspecified_int4	! temp diag
-	   mblk_blink( next ) = unspecified_int4	! temp diag
-	   mblk_size ( next ) = unspecified_int4	! temp diag
-
-	ELSEIF ( contig_below ) THEN
-	   mr_del_last_mblk   = prev
-	   mr_del_last_size   = mblk_size( prev ) + num_blocks
-	   mblk_size ( prev ) = mr_del_last_size
-	   mblk_flink( mblk ) = unspecified_int4	! temp diag
-	   mblk_blink( mblk ) = unspecified_int4	! temp diag
-	   mblk_size ( mblk ) = unspecified_int4	! temp diag
-
-	ELSE
-	   mr_del_last_mblk   = mblk
-	   mr_del_last_size   = num_blocks
-	   mblk_flink( mblk ) = next
-	   mblk_blink( mblk ) = prev
-	   mblk_flink( prev ) = mblk
-	   mblk_blink( next ) = mblk
-
-	ENDIF
-	RETURN
-	END
diff --git a/fer/mem/release_work_spc.F b/fer/mem/free_mr_dynmem.F
similarity index 81%
copy from fer/mem/release_work_spc.F
copy to fer/mem/free_mr_dynmem.F
index b55cc7b..583f1f4 100644
--- a/fer/mem/release_work_spc.F
+++ b/fer/mem/free_mr_dynmem.F
@@ -1,4 +1,4 @@
-	SUBROUTINE RELEASE_WORK_SPC
+	SUBROUTINE FREE_MR_DYNMEM ( mr )
 
 *
 *
@@ -35,21 +35,29 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* releases claim to temporary work space allocated by GET_WORK_SPC
-
+* Free the memory associated with this mr slot by calling c routines
+*
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
 *
-* revision 0.0 - 2/19/87
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
 
         IMPLICIT NONE
-	include 'xwork_space.cmn'
+        include 'tmap_dims.parm'
+	include 'ferret.parm'
+	include 'xvariables.cmn'
+
+* calling argument declarations:
+	INTEGER	mr
+
+	CALL FREE_DYN_MEM(memry(mr)%ptr)
+
+* set the pointer to a zero length object (just for bookkeeping)
+	CALL NULLIFY_MR(mr)
 
-	IF ( sp_last_size .GT. 0 ) THEN
-	   CALL FREE_MEMORY( sp_start_block, sp_num_blocks )
-	   sp_last_size = 0
-	ENDIF
+* bookkeeping
+	total_mem = total_mem - mr_size(mr)
+	mr_size(mr) = 0
 
 	RETURN
 	END
diff --git a/fer/mem/mr_available.F b/fer/mem/free_ws_dynmem.F
similarity index 73%
copy from fer/mem/mr_available.F
copy to fer/mem/free_ws_dynmem.F
index 5ad6b6d..9df5fec 100644
--- a/fer/mem/mr_available.F
+++ b/fer/mem/free_ws_dynmem.F
@@ -1,4 +1,4 @@
-	SUBROUTINE MR_AVAILABLE ( mr )
+	SUBROUTINE FREE_WS_DYNMEM ( ws )
 
 *
 *
@@ -35,41 +35,41 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* flag that the specified variable is available to be used as a component and
-* to be deleted should memory space be tight
-
+* Free the memory associated with this ws slot by calling c routines
+*
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
 *
-* V200:  6/12/89
-*        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
 	include 'ferret.parm'
+	include 'errmsg.parm'
 	include 'xvariables.cmn'
 
 * calling argument declarations:
-	INTEGER mr
+	INTEGER	ws
 
 * internal variable declarations:
-	INTEGER last_head
+	INTEGER status
 
-* set flag that it is available for use and for deletion
-	mr_protected( mr ) = mr_not_protected
+* check for a possible *programming error* -- worm mem never requested
+* (return status is ignored, which is too bad, but the programming error
+*  at least gets announced)
+	IF (ws_size(ws) .EQ. 0) CALL ERRMSG(ferr_internal, status,
+     .		'FREE_DYN_WS_MEM', *5000)
 
-! temp diag
-	IF (mr_del_flink(mr) .NE. unspecified_int4) 
-     .		WRITE (6,*)' mr_avail_err'
+	CALL FREE_DYN_MEM(workmem(ws)%ptr)
 
-* insert the variable at the head of the deletion priority chain
-	last_head = mr_del_flink(0)
-	mr_del_blink(mr) = 0
-	mr_del_flink(mr) = last_head
-	mr_del_flink(0)  = mr
-	mr_del_blink(last_head) = mr
+* set the pointer to a zero length object (just for bookkeeping)
+	CALL NULLIFY_WS(ws)
+
+* bookkeeping
+! 3/17 - do not count work memory as part of the memory usage
+! it's a small matter, and it keeps the logic a little simpler
+! 5000	total_mem = total_mem - ws_size(ws)
+ 5000	ws_size(ws) = 0
 
 	RETURN
 	END
-
diff --git a/fer/mem/mr_not_in_use.F b/fer/mem/get_dyn_work_space.F
similarity index 68%
copy from fer/mem/mr_not_in_use.F
copy to fer/mem/get_dyn_work_space.F
index f965541..b5aa390 100644
--- a/fer/mem/mr_not_in_use.F
+++ b/fer/mem/get_dyn_work_space.F
@@ -1,7 +1,5 @@
-	SUBROUTINE MR_NOT_IN_USE ( mr )
+	SUBROUTINE GET_DYN_WORK_SPACE( rqst_size, 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),
@@ -35,41 +33,41 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* release one claim of being required for calculations from variable mr
-* if this release leaves the variable unneeded for any calculations then return
-* it to the deletable variable chain
+* a convenience function to get the first slot in the work space table
+* replicates the legacy work space management previous to dynamic F90 memory
+
+* the hierarchy of calls is as follows
+*   get_dyn_work_space ==> get_ws_dynmem.F ==> get_ws_mem.c ==> store_ws_ptr.F
 
 * programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* V200:  6/12/89
-*        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 *sh*  1/17 trac enhancement ticket #2369 - dynamic memory
 
         IMPLICIT NONE
+
         include 'tmap_dims.parm'
-	include 'ferret.parm'
+	include 'errmsg.parm'
+	include	'ferret.parm'
 	include 'xvariables.cmn'
 
 * calling argument declarations:
-	INTEGER mr
-
-* internal variable declarations:
-	INTEGER last_head
+	INTEGER status
+	INTEGER*8 rqst_size
 
-	IF ( mr_protected(mr) .GT. mr_not_protected )
-     .		mr_protected(mr) = mr_protected(mr) - 1
 
+* slot 1 of working storage is managed specially
+* through convenience routines GET_DYN_WORK_SPACE and RELEASE_DYN_WORK_SPACE
 
-* possibly insert the variable at the head of the deletion priority chain
-	IF ( mr_protected(mr) .EQ. mr_not_protected ) THEN
-	   last_head = mr_del_flink(0)
-	   mr_del_blink(mr) = 0
-	   mr_del_flink(mr) = last_head
-	   mr_del_flink(0)  = mr
-	   mr_del_blink(last_head) = mr
+* If the work space that is currently allocated is already large enough, then
+* we will simply let it be re-used
+	IF (ws_size(plegacy_work_buffer) .GE. rqst_size) THEN
+	   status = ferr_ok
+	   RETURN
+	ELSEIF (ws_size(plegacy_work_buffer) .NE. 0) THEN
+	   CALL RELEASE_DYN_WORK_SPACE
 	ENDIF
 
-	RETURN
+* get the requested memory
+	CALL GET_WS_DYNMEM(rqst_size, plegacy_work_buffer, status)
+
 	END
 
diff --git a/fer/mem/get_memory.F b/fer/mem/get_memory.F
deleted file mode 100644
index efa1c40..0000000
--- a/fer/mem/get_memory.F
+++ /dev/null
@@ -1,158 +0,0 @@
-	SUBROUTINE GET_MEMORY ( num_words, grid_blocks, mblk, num_blocks, 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. 
-*
-*
-* find and reserve a section of contiguous memory sufficient to hold grid_blocks 
-* procedure:
-* first check the list of free memory regions to see if there is one big enough
-* if not then delete variables working from the tail of the priority chain
-* when an adequate region is found pluck what it needed of it from the free list
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 3/31/86
-* revision 0.1 - 7/21/88 - no special call to "CLAIM_MEMORY" since FIND_MEMORY
-*			   claims it, too, now
-* V200:  6/12/89 - delete priorities handled through linked lists
-*		 - eliminated FIND_MEMORY
-*	  4/5/90 - spruced up error message
-* V230:  4/30/92 - added coaching to error message
-* V500:  3.20.99 Make sure num_words >= 0 (absurdly large grids can overflow
-*                integer) js
-* V520: 6/00 *sh* - improved error message
-* V522: 7/00 *sh* corrected typo in previous ... 
-* V530: 5/01 - further improved error mesages (for 9999999 words)
-* v553: 9/03 *kob* - need to update error calls to include alternate return
-*                    label.  Bug showed up on IRIX with missing elements
-*		     of error statement
-*        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
-* V685 *acm*  6/13 Increase nominal length of abstract axis
-* V69+ *acm*  9/14 Ticket 1758. Memory request uses number of blocks not words
-* V697 *acm*  1/16 Ticket 2354. Never adjusted for double-precision Ferret. Also
-*                  round up the integer value of needed Mwords shown.
-
-        IMPLICIT NONE
-        include 'tmap_dims.parm'
-	include 'errmsg.parm'
-	include	'ferret.parm'
-	include 'xvariables.cmn'
-
-* calling argument declarations:
-	INTEGER	num_words, grid_blocks, mblk, num_blocks, status
-
-* internal variable declarations:
-	INTEGER	mr, next, prev, size, new_mblk, num_slen
-	REAL	rgrid_blocks
-	CHARACTER  LEFINT*12, num_str*12
-
-* Check for unspecified limits on abstract axis
-	IF ( num_words .EQ. 99999999 ) GOTO 5100
-
-* LOOK FOR A MEMORY REGION ALREADY AVAILABLE
-* ... use linked list into free memory regions
-	mblk = mblk_flink( 0 )
-
-* ... nothing more to check ?
- 100	IF ( mblk .EQ. 0 ) GOTO 200
-
-* ... another region to check out - is it big enough ?
-	size = mblk_size ( mblk )
-	IF ( size .LT. grid_blocks ) THEN
-	   mblk = mblk_flink( mblk )
-	   GOTO 100
-	ELSE
-	   GOTO 500
-	ENDIF
-	   
-* NOTHING BIG ENOUGH IS AVAILABLE AT PRESENT
-* delete from tail of deletion priority chain looking for something big enough
- 200	mr = mr_del_blink(0)
-	IF ( mr .EQ. 0 ) GOTO 5200
-	CALL DELETE_VARIABLE( mr )
-	size = mr_del_last_size
-	IF ( size .LT. grid_blocks ) THEN
-	   GOTO 200
-	ELSE
-	   mblk = mr_del_last_mblk
-	ENDIF
-
-* WE HAVE GOT A REGION AT LEAST BIG ENOUGH
- 500	prev = mblk_blink( mblk )
-	next = mblk_flink( mblk )
-
-	IF ( size .EQ. grid_blocks ) THEN
-* ... perfect size - remove it from the free list
-	   mblk_flink( prev ) = next
-	   mblk_blink( next ) = prev
-
-	ELSE
-* ... unnecessarily big - bite off only what we need
-	   new_mblk = mblk + grid_blocks
-	   mblk_flink( new_mblk ) = next
-	   mblk_blink( new_mblk ) = prev
-	   mblk_size ( new_mblk ) = size - grid_blocks
-	   mblk_flink( prev )     = new_mblk
-	   mblk_blink( next )     = new_mblk
-	ENDIF
-
-* success - set up the requested region and give it to them
-        num_blocks = grid_blocks
-	mblk_size ( mblk ) = num_blocks
-	status = ferr_ok
-
-	mblk_flink( mblk ) = unspecified_int4	! temp diag
-	mblk_blink( mblk ) = unspecified_int4	! temp diag
-
- 5000	RETURN
- 5100	num_str = LEFINT(num_words,num_slen)
-	CALL ERRMSG( ferr_dim_underspec, status,
-     .    num_str(:num_slen)//' words were requested. ', *5105)
- 5105	CALL WARN('Check for unspecified limits on an ABSTRACT axis')
-	CALL WARN('Use the SHOW GRID command to see the axes')
-	RETURN
- 5200	CONTINUE
-        rgrid_blocks = FLOAT(mem_blk_size)* FLOAT(grid_blocks)/ 1.e6
-	num_str = LEFINT(CEILING(2.*rgrid_blocks),num_slen)
-
-	CALL ERRMSG( ferr_insuff_memory,status,
-     .	  num_str(:num_slen)//' Mwords were requested. ', *5130)
- 5130	CALL WARN('You can use SET MEMORY/SIZE=xxx to increase memory.')
-	CALL WARN('The "Memory use" section of the FERRET '
-     .              //'Users Guide has further tips.') 
-        GOTO 5000
-	RETURN
-	END
-
diff --git a/fer/mem/get_mr_dynmem.F b/fer/mem/get_mr_dynmem.F
new file mode 100644
index 0000000..adfb1d3
--- /dev/null
+++ b/fer/mem/get_mr_dynmem.F
@@ -0,0 +1,122 @@
+	SUBROUTINE GET_MR_DYNMEM( rqst_size, mr, 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. 
+*
+*
+* allocate the requested amount of dynamic emory (using c or python malloc)
+* malloc is done in c (or python), but has to call back into F90 to set pointer
+* the hierarchy of calls is as follows
+*   get_mr_dynmem.F ==> get_mr_mem.c ==> store_mr_ptr.F
+
+* programmer - steve hankin
+* V702 *sh*  1/17 trac enhancement ticket #2369 - dynamic memory
+
+        IMPLICIT NONE
+        include 'tmap_dims.parm'
+	include 'errmsg.parm'
+	include	'ferret.parm'
+	include 'xvariables.cmn'
+	include 'xprog_state.cmn'
+
+* calling argument declarations:
+	INTEGER	mr, status
+	INTEGER*8 rqst_size
+
+* internal variable declarations:
+	INTEGER	num_slen, mr_del
+	INTEGER*8 available_mem
+	CHARACTER  LEFINT8*20, TM_FMT*12, num_str*20
+
+* Check for unspecified limits on abstract axis
+	IF ( rqst_size .EQ. 99999999 ) GOTO 5100
+
+* if we know there isn't room to accommodate this new object then
+* we can error out without compromising the current contents of the cache
+	available_mem = max_mem_allowed-(permanent_mem+essential_mem)
+	IF ( rqst_size .GT. available_mem) GOTO 5200
+
+* will this new allocation push us over the specified memory size limit?
+	IF (total_mem+rqst_size .GT. max_mem_allowed) THEN
+* ... delete from tail of deletion priority chain until there's room
+ 100	  mr_del = mr_del_blink(0)
+	    IF ( mr_del .EQ. 0 ) THEN
+* ... unable to clear out enough memory for this request
+* ... should never get here because of pre-check above
+	      CALL WARN("crptn??: get_mr_dynmem")
+	      GOTO 5200   ! abort
+	    ENDIF
+	    CALL DELETE_VARIABLE( mr_del )   ! reduces total_mem
+	  IF  (total_mem+rqst_size .GT. max_mem_allowed) GOTO 100 !delete more 
+	ENDIF
+
+* allocate the dynamic memory
+ 200	CALL GET_MR_MEM(mr, rqst_size, status)
+        IF (status .NE. ferr_ok) GOTO 5300
+
+* bookkeeping
+        mr_size(mr) = rqst_size
+        total_mem = total_mem + rqst_size
+	IF (total_mem .GT. peak_mem) peak_mem = total_mem
+	RETURN
+
+
+***********************
+* error exits
+ 5000	RETURN
+ 5100	num_str = LEFINT8(rqst_size,num_slen)
+	CALL ERRMSG( ferr_dim_underspec, status,
+     .    num_str(:num_slen)//' words were requested. ', *5110)
+ 5110	CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .		'    Check for unspecified limits on an ABSTRACT axis',0 )
+	CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .		'    Use the SHOW GRID command to see the axes',0 )
+	GOTO 5000
+
+ 5200	CALL ERRMSG( ferr_insuff_memory,status,' ', *5210)
+ 5210	num_str = TM_FMT( max_mem_allowed/1.E6, 6, 12, num_slen)
+	CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .		'    To fulfill this request would exceed the current '//
+     .		  'SET MEMORY/SIZE= limit of '//num_str(:num_slen)
+     .	          //' megawords',0 )
+	CALL SHOW_ABORTED_MEM_STATE(rqst_size)
+        GOTO 5000
+
+ 5300	CALL ERRMSG( ferr_insuff_memory,status,' ', *5310)
+ 5310	CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .		'    The OS refuses to supply this much memory',0 )
+	CALL SHOW_ABORTED_MEM_STATE(rqst_size)
+        GOTO 5000
+
+	END
+
+
diff --git a/fer/mem/get_work_mr.F b/fer/mem/get_work_mr.F
index e085e4c..d80a306 100644
--- a/fer/mem/get_work_mr.F
+++ b/fer/mem/get_work_mr.F
@@ -1,4 +1,4 @@
-	SUBROUTINE GET_WORK_MR ( size, mr, status )
+	SUBROUTINE GET_WORK_MR ( i8_size, mr, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -59,28 +59,24 @@
 	include 'xcontext.cmn'
 
 * calling argument declarations:
-	INTEGER	size, mr, status
+	INTEGER	mr, status
+	INTEGER*8 i8_size
 
 * internal variable declarations
-	INTEGER start_block, num_blocks, grid_blocks, idim
+	INTEGER idim
 
 * --- end of introductory code ---
 
-* COMPUTE # BLOCKS NEEDED
-	grid_blocks = ( size + mem_blk_size - 1 ) / mem_blk_size
-	CALL GET_MEMORY( size, grid_blocks, start_block, num_blocks, status )
-
 * get a free slot in the memory variable table
-	CALL STACK_PTR_UP( cx_stack_ptr, max_context, status )
-	IF ( status .NE. ferr_ok ) RETURN
-	cx_category(cx_stack_ptr) = cat_work_mr
-	CALL FIND_MR_SLOT( cx_stack_ptr, mr, status )
+	CALL FIND_MR_SLOT( mr, status )
 	IF ( status .NE. ferr_ok ) RETURN
-	cx_stack_ptr = cx_stack_ptr - 1
 
-* point mr slot to data in bulk memory
-	mr_blk1     ( mr )	= start_block
-	mr_nblks    ( mr )	= num_blocks
+* allocate memory
+	CALL GET_MR_DYNMEM( i8_size, mr, status )
+	IF ( status .NE. ferr_ok ) THEN
+	   CALL MR2FREELIST(mr)
+	   RETURN
+	ENDIF
 
 * always set its data type to float
 	mr_type( mr ) = ptype_float
@@ -91,16 +87,28 @@
 * flag it as "in progress"
 	mr_protected( mr )	= mr_in_progress
 
+* book keeping about memory usage
+	essential_mem = essential_mem + mr_size(mr)
+	IF (essential_mem.GT.peak_essential_mem) 
+     .		peak_essential_mem = essential_mem
+
 * work arrays do not use any grids
 	mr_grid( mr ) = unspecified_int4
 
 * for good house-keeping, set the mr subscripts
 	mr_lo_ss(mr,x_dim) = 1
-	mr_hi_ss(mr,x_dim) = size
+	mr_hi_ss(mr,x_dim) = i8_size
 	DO 100 idim = 2, nferdims
 	   mr_lo_ss(mr,idim) = unspecified_int4
 	   mr_hi_ss(mr,idim) = unspecified_int4
  100	CONTINUE
 
+* hook it into the cacke search list (just to be consistent with other vars)
+	CALL STACK_PTR_UP( cx_stack_ptr, max_context, status )
+	IF ( status .NE. ferr_ok ) RETURN
+	cx_category(cx_stack_ptr) = cat_work_mr
+	CALL HOOK_MR_SLOT( cx_stack_ptr, mr )
+	cx_stack_ptr = cx_stack_ptr - 1
+
 	RETURN
 	END
diff --git a/fer/mem/find_mr_slot.F b/fer/mem/get_ws_dynmem.F
similarity index 62%
copy from fer/mem/find_mr_slot.F
copy to fer/mem/get_ws_dynmem.F
index 29a1adc..fa5c35e 100644
--- a/fer/mem/find_mr_slot.F
+++ b/fer/mem/get_ws_dynmem.F
@@ -1,7 +1,5 @@
-	SUBROUTINE FIND_MR_SLOT( cx, mr, status )
+	SUBROUTINE GET_WS_DYNMEM( rqst_size, ws, 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),
@@ -35,54 +33,55 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* locate an unused slot in the memory variable table and assign it to the
-* hash pile associated with the given context (cx)
+* allocate the requested amount of dynamic memory (using c or python malloc)
+* malloc is done in c (or python), but has to call back into F90 to set pointer
+* the hierarchy of calls is as follows
+*   get_ws_dynmem.F ==> get_ws_mem.c ==> store_ws_ptr.F
 
 * programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 7/21/88
-* V200:  6/12/89 - delete priorities handled through linked lists
-*        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 *sh*  1/17 trac enhancement ticket #2369 - dynamic memory
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
-	include 'ferret.parm'
 	include 'errmsg.parm'
+	include	'ferret.parm'
 	include 'xvariables.cmn'
-	include 'xcontext.cmn'
+	include 'xprog_state.cmn'
 
 * calling argument declarations:
-	INTEGER cx, mr, status
+	INTEGER	ws, status
+	INTEGER*8 rqst_size
 
 * internal variable declarations:
-	INTEGER HASH_cx, pile, head
+	INTEGER	mr_del, num_slen
+	CHARACTER  LEFINT8*20, num_str*20
 
-* is there a slot in the free slot list ?
- 100	IF ( mv_flink( 0 ) . EQ. 0 ) THEN
-* ... no - delete lowest priority variable to make room and try again
-	   mr = mr_del_blink(0)
-	   IF ( mr .EQ. 0 ) GOTO 5010
-	   CALL DELETE_VARIABLE( mr )
-	ENDIF
+* Check for unspecified limits on abstract axis
+	IF ( rqst_size .EQ. 99999999 ) GOTO 5100
 
-* transfer the slot from the free list to the cx hash pile
-*    ... remove from free list head
-	mr = mv_flink( 0 )
-	mv_flink( 0 ) = mv_flink( mr )
-*    ... add to head of hash pile
-	pile = HASH_cx( cx )
-	head = mv_flink( pile )
-	mv_flink( pile ) = mr
-	mv_flink( mr ) = head
-	mv_blink( mr ) = pile
-	mv_blink( head ) = mr
+* allocate the dynamic memory
+ 200	CALL GET_WS_MEM(ws, rqst_size, status)
+        IF (status .NE. ferr_ok) GOTO 5300
 
-* successful completion
-	status = ferr_ok
+* bookkeeping
+        ws_size(ws) = rqst_size
+	RETURN
+
+***********************
+* error exits
  5000	RETURN
+ 5100	num_str = LEFINT8(rqst_size,num_slen)
+	CALL ERRMSG( ferr_dim_underspec, status,
+     .    num_str(:num_slen)//' words were requested. ', *5110)
+ 5110	CALL WARN('Check for unspecified limits on an ABSTRACT axis')
+	CALL WARN('Use the SHOW GRID command to see the axes')
+	GOTO 5000
+
+ 5300	num_str = LEFINT8(rqst_size,num_slen)
+	CALL ERRMSG( ferr_insuff_memory,status,
+     .	  num_str(:num_slen)//' words were requested. ', *5310)
+ 5310	CALL WARN('The system is refusing to supply this much memory')
+        GOTO 5000
 
-* error exit : no space available
- 5010	CALL ERRMSG( ferr_too_many_vars, status,' ', *5000 )
 	END
+
diff --git a/fer/mem/find_mr_slot.F b/fer/mem/hook_mr_slot.F
similarity index 78%
copy from fer/mem/find_mr_slot.F
copy to fer/mem/hook_mr_slot.F
index 29a1adc..dbcf3bf 100644
--- a/fer/mem/find_mr_slot.F
+++ b/fer/mem/hook_mr_slot.F
@@ -1,4 +1,4 @@
-	SUBROUTINE FIND_MR_SLOT( cx, mr, status )
+	SUBROUTINE HOOK_MR_SLOT( cx, mr )
 
 *
 *
@@ -35,16 +35,15 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* locate an unused slot in the memory variable table and assign it to the
-* hash pile associated with the given context (cx)
+* assign this mr slot to the hash pile associated with the given context (cx)
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
 *
 * revision 0.0 - 7/21/88
 * V200:  6/12/89 - delete priorities handled through linked lists
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 - extracted from FIND_MR_SLOT as part of new dynamic memory management
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -54,23 +53,13 @@
 	include 'xcontext.cmn'
 
 * calling argument declarations:
-	INTEGER cx, mr, status
+	INTEGER cx, mr
 
 * internal variable declarations:
 	INTEGER HASH_cx, pile, head
 
-* is there a slot in the free slot list ?
- 100	IF ( mv_flink( 0 ) . EQ. 0 ) THEN
-* ... no - delete lowest priority variable to make room and try again
-	   mr = mr_del_blink(0)
-	   IF ( mr .EQ. 0 ) GOTO 5010
-	   CALL DELETE_VARIABLE( mr )
-	ENDIF
-
 * transfer the slot from the free list to the cx hash pile
-*    ... remove from free list head
-	mr = mv_flink( 0 )
-	mv_flink( 0 ) = mv_flink( mr )
+
 *    ... add to head of hash pile
 	pile = HASH_cx( cx )
 	head = mv_flink( pile )
@@ -79,10 +68,5 @@
 	mv_blink( mr ) = pile
 	mv_blink( head ) = mr
 
-* successful completion
-	status = ferr_ok
- 5000	RETURN
-
-* error exit : no space available
- 5010	CALL ERRMSG( ferr_too_many_vars, status,' ', *5000 )
+	RETURN
 	END
diff --git a/fer/mem/release_work_spc.F b/fer/mem/mr2freelist.F
similarity index 79%
copy from fer/mem/release_work_spc.F
copy to fer/mem/mr2freelist.F
index b55cc7b..1232a7e 100644
--- a/fer/mem/release_work_spc.F
+++ b/fer/mem/mr2freelist.F
@@ -1,7 +1,5 @@
-	SUBROUTINE RELEASE_WORK_SPC
+	SUBROUTINE MR2FREELIST ( mr )
 
-*
-*
 *  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),
@@ -35,21 +33,27 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* releases claim to temporary work space allocated by GET_WORK_SPC
+* return an mr slot to the free list
+* (this routine normally called after an error condition aborts mr creation)
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
 *
-* revision 0.0 - 2/19/87
+* V702 1/16 *sh*: lines copied from DELETE_VARIABLE
 
         IMPLICIT NONE
-	include 'xwork_space.cmn'
+        include 'tmap_dims.parm'
+	include 'ferret.parm'
+	include 'xvariables.cmn'
+	include 'xprog_state.cmn'
+
+* calling argument declarations:
+	INTEGER mr
 
-	IF ( sp_last_size .GT. 0 ) THEN
-	   CALL FREE_MEMORY( sp_start_block, sp_num_blocks )
-	   sp_last_size = 0
-	ENDIF
+* return the slot to the memory variable free list
+        mv_flink( mr ) = mv_flink( 0 )
+        mv_blink( mr ) = unspecified_int4               ! house keeping
+        mv_flink( 0 ) = mr
 
 	RETURN
 	END
diff --git a/fer/mem/mr_available.F b/fer/mem/mr_available.F
index 5ad6b6d..c5ce5e3 100644
--- a/fer/mem/mr_available.F
+++ b/fer/mem/mr_available.F
@@ -56,12 +56,19 @@
 * internal variable declarations:
 	INTEGER last_head
 
+* if this variable held "essential" data, flag that it no longer is essential
+	   IF ( mr_protected( mr ) .EQ. mr_temporary	
+     .	  .OR.  mr_protected( mr ) .EQ. mr_in_progress
+     .	  .OR.  mr_protected( mr ) .GT. mr_not_protected    ) THEN
+	      essential_mem = essential_mem - mr_size(mr)
+	   ENDIF
+
 * set flag that it is available for use and for deletion
 	mr_protected( mr ) = mr_not_protected
 
 ! temp diag
 	IF (mr_del_flink(mr) .NE. unspecified_int4) 
-     .		WRITE (6,*)' mr_avail_err'
+     .		WRITE (6,*)' crptn: mr_available'
 
 * insert the variable at the head of the deletion priority chain
 	last_head = mr_del_flink(0)
diff --git a/fer/mem/mr_in_use.F b/fer/mem/mr_in_use.F
index 9afd213..76929e6 100644
--- a/fer/mem/mr_in_use.F
+++ b/fer/mem/mr_in_use.F
@@ -46,6 +46,7 @@
 *
 * V200:  6/12/89
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702 12/16 *sh* doc change only
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -64,8 +65,16 @@
 	   next = mr_del_flink(mr)
 	   mr_del_flink(prev) = next
 	   mr_del_blink(next) = prev
-	   mr_del_flink(mr)   = unspecified_int4	! temp diag
-	   mr_del_blink(mr)   = unspecified_int4	! temp diag
+	   mr_del_flink(mr)   = unspecified_int4	! important 12/16
+	   mr_del_blink(mr)   = unspecified_int4	! important 12/16
+* ... changing to "in use" makes it "essential memory"
+	   essential_mem = essential_mem + mr_size(mr)
+	   IF (essential_mem.GT.peak_essential_mem) 
+     .		peak_essential_mem = essential_mem
+
+	ELSEIF ( mr_protected(mr) .EQ. mr_in_progress ) THEN
+	   mr_protected(mr) = mr_not_protected  ! to be incremented just below
+* ... mr_in_progress vars are already considered "essential memory"
 	ENDIF
 
 * bump claims counter
diff --git a/fer/mem/mr_not_in_use.F b/fer/mem/mr_not_in_use.F
index f965541..212b3f8 100644
--- a/fer/mem/mr_not_in_use.F
+++ b/fer/mem/mr_not_in_use.F
@@ -45,31 +45,61 @@
 *
 * V200:  6/12/89
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+*        12/16 *sh* Bug fix - check if already *in* delete chain before adding
+*		added diagnostic sanity checks
+* V702: *sh* 1/17 issue error message on inappropriate calls to this routine
+*		  immediate return on protected variables
+*                 (have LOAD/TEMP code in XEQ_LOAD to remove permanance)
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
 	include 'ferret.parm'
+	include 'errmsg.parm'
 	include 'xvariables.cmn'
 
 * calling argument declarations:
 	INTEGER mr
 
 * internal variable declarations:
-	INTEGER last_head
+	INTEGER last_head, status
 
-	IF ( mr_protected(mr) .GT. mr_not_protected )
-     .		mr_protected(mr) = mr_protected(mr) - 1
 
+	IF ( mr_protected(mr) .GT. mr_not_protected ) THEN
+	   mr_protected(mr) = mr_protected(mr) - 1
+* ... if no one needs this variable any longer it is no longer "essential"
+	   IF ( mr_protected(mr) .EQ. mr_not_protected ) THEN
+	      essential_mem = essential_mem - mr_size(mr)
+	   ENDIF
+
+	ELSEIF ( mr_protected(mr) .LT. mr_not_protected ) THEN
+* ... mr_temporary variables can end up here during immediate mode evaluations
+*     see the list of possible mr_* states in ferret.parm
+	   RETURN
+
+	ELSE
+* ... over-freeing of the mr -- should never happen
+	   CALL ERRMSG( ferr_internal, status, 'xtra MR_NOT_IN_USE', *5000)
+	ENDIF
 
 * possibly insert the variable at the head of the deletion priority chain
 	IF ( mr_protected(mr) .EQ. mr_not_protected ) THEN
+
+* 12/16 - sanity check if it is already in the deletion chain before
+*         attempting to insert it again. Doubly inserting can occur
+*         only if this routine is called more often than it should be
+*         signaling an internal error
+	   IF (mr_del_flink(mr) .NE. unspecified_int4 ) THEN
+	      CALL ERRMSG( ferr_internal, status, 'MR_NOT_IN_USE', *5000)
+	   ELSE
+
 	   last_head = mr_del_flink(0)
 	   mr_del_blink(mr) = 0
 	   mr_del_flink(mr) = last_head
 	   mr_del_flink(0)  = mr
 	   mr_del_blink(last_head) = mr
+
+	   ENDIF
 	ENDIF
 
-	RETURN
+ 5000	RETURN
 	END
-
diff --git a/fer/mem/new_mr_w_edges.F b/fer/mem/new_mr_w_edges.F
index 0fb11d8..ab3a749 100644
--- a/fer/mem/new_mr_w_edges.F
+++ b/fer/mem/new_mr_w_edges.F
@@ -1,4 +1,4 @@
-	SUBROUTINE NEW_MR_W_EDGES(memory,cx_valid,cx_model,mr,status)
+	SUBROUTINE NEW_MR_W_EDGES(cx_valid,cx_model,mr,status)
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -54,7 +54,6 @@
 
 * calling argument declarations:
 	INTEGER	cx_valid, cx_model, mr, status
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations
 	INTEGER MGRID_SIZE
@@ -65,12 +64,12 @@
 
 	IF ( mr_type(mr) .EQ. ptype_string ) THEN
            CALL INIT_C_STRING_ARRAY( MGRID_SIZE(mr),
-     .                               memory(1, mr_blk1(mr)),
+     .                               memry(mr)%ptr,
      .                               mr_c_pointer(mr)      )
 	ENDIF
 
 * fill edges
-	CALL BAD_EDGES( cx_valid, memory(1, mr_blk1(mr)), mr )
+	CALL BAD_EDGES( cx_valid, memry(mr)%ptr, mr )
 
 	RETURN
 	END
diff --git a/fer/mem/get_work_spc.F b/fer/mem/purge_all_uvars_except_ex.F
similarity index 63%
rename from fer/mem/get_work_spc.F
rename to fer/mem/purge_all_uvars_except_ex.F
index 7b0abe9..cb89586 100644
--- a/fer/mem/get_work_spc.F
+++ b/fer/mem/purge_all_uvars_except_ex.F
@@ -1,4 +1,4 @@
-	SUBROUTINE GET_WORK_SPC ( size, start_block, status )
+	SUBROUTINE PURGE_ALL_UVARS_EXCEPT_EX
 
 *
 *
@@ -35,49 +35,53 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* provide a region of temporary working space to the calling routine.
-* For greatest speed simply reuse the last provided if it is large enough
+* eliminate all stored user variables from memory except for the current EX#
+* expression
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 2/19/87
-* V510: *sh 1/2000 - bug fix when unable to allocate requested work space
-*        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
-* V69+ *acm*  9/14 Ticket 1758. Memory request uses number of blocks not words
+
+* V702 *sh* 1/17 - for dynamic memory -- based upon PURGE_ALL_UVARS
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
 	include 'ferret.parm'
 	include 'errmsg.parm'
 	include 'xvariables.cmn'
-	include 'xwork_space.cmn'
-
-* calling argument declarations:
-	INTEGER	size, start_block, status
 
 * internal variable declarations:
-	INTEGER grid_blocks
+	INTEGER	uvar, i, j, num_indices
+
+        CALL deleted_list_get_undel(uvar_num_items_head, 
+     .                          deleted_list_result(1),
+     .                          max_uvar, num_indices )
+        DO j = 1, num_indices
+           uvar = deleted_list_result(j)
+
+* do not delete EX#n variables as they may be actively in use
+* as in "set att temp.missing_value = 12"
+	   IF (uvar_name_code(uvar)(1:3) .EQ. 'EX#'    ) CYCLE
 
-* --- end of introductory code ---
+* eliminate all memory resident instances of this variable
+	   CALL PURGE_USER_VAR( uvar )
 
-	IF ( size .LE. sp_last_size ) THEN
-	   status = ferr_ok
+* back to initial defaults (see INIT_UVAR)
+* (eliminate all grid information that may have been rendered incorrect)
+	   CALL DEALLO_UVAR_GRIDS(uvar)
 
-	ELSE
-	   CALL RELEASE_WORK_SPC
-* COMPUTE # BLOCKS NEEDED
-	   grid_blocks = ( size + mem_blk_size - 1 ) / mem_blk_size
-	   CALL GET_MEMORY( size, grid_blocks, sp_start_block, sp_num_blocks, status )
-	   IF ( status .EQ. ferr_ok ) THEN
-	      sp_last_size = sp_num_blocks * mem_blk_size
-	   ELSE
-	      sp_last_size = 0
-	   ENDIF
-	ENDIF
+*       bug fix: 11/91 *************
+* must reset ALL of the state variables as set up in INIT_UVAR
+* by default assume the definition requires an external data set specification
+           uvar_need_dset( uvar ) = .TRUE.
+
+* by default assume that all limits are irrelevant
+           DO 320 i = 1, nferdims
+ 320       uvar_given(i,uvar) = uvlim_irrelevant
+* end of bug fix: 11/91 *************
+
+	ENDDO
+
+	CALL PURGE_AUX_VAR_DEPENDENTS
 
-	start_block = sp_start_block
 	RETURN
 	END
-
diff --git a/fer/mem/re_assign_variable.F b/fer/mem/re_assign_variable.F
index 7f4a3d3..bdd66da 100644
--- a/fer/mem/re_assign_variable.F
+++ b/fer/mem/re_assign_variable.F
@@ -47,6 +47,7 @@
 *		 - variable is assumed NOT to be in deletion chain
 *		 - use ASSIGN_MR_CX
 *        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V702:  3/17 *sh* dynamic memory management
 
         IMPLICIT NONE
         include 'tmap_dims.parm'
@@ -61,7 +62,15 @@
 * internal variable declarations:
 	INTEGER HASH_CX, prev, next, pile, head
 
-* flag the variable as "in progress"
+* this should never happen, but to be safe ...
+	IF (mr_protected(mr) .EQ. mr_not_protected) THEN
+	   CALL WARN("crptn??: re_assign_variable")
+	   essential_mem = essential_mem + mr_size(mr)
+	   IF (essential_mem.GT.peak_essential_mem) 
+     .		peak_essential_mem = essential_mem
+	ENDIF
+
+* flag the variabe as in progress
 	mr_protected(mr) = mr_in_progress
 
 * make this mem var the property of the new context
diff --git a/fer/mem/release_work_spc.F b/fer/mem/release_dyn_work_space.F
similarity index 83%
copy from fer/mem/release_work_spc.F
copy to fer/mem/release_dyn_work_space.F
index b55cc7b..9521003 100644
--- a/fer/mem/release_work_spc.F
+++ b/fer/mem/release_dyn_work_space.F
@@ -1,4 +1,4 @@
-	SUBROUTINE RELEASE_WORK_SPC
+	SUBROUTINE RELEASE_DYN_WORK_SPACE
 
 *
 *
@@ -35,20 +35,22 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* releases claim to temporary work space allocated by GET_WORK_SPC
-
+* A convenience function to call FREE_DYN_WS_MEM for slot 1
+*
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
 *
-* revision 0.0 - 2/19/87
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
 
         IMPLICIT NONE
-	include 'xwork_space.cmn'
+	include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include 'xvariables.cmn'
 
-	IF ( sp_last_size .GT. 0 ) THEN
-	   CALL FREE_MEMORY( sp_start_block, sp_num_blocks )
-	   sp_last_size = 0
+* The IF test allows this routine to get called legally even when the
+* work space was never actually allocated.
+	IF (ws_size(1) .NE. 0) THEN
+	   CALL FREE_WS_DYNMEM(1)
 	ENDIF
 
 	RETURN
diff --git a/fer/mem/show_aborted_mem_state.F b/fer/mem/show_aborted_mem_state.F
new file mode 100644
index 0000000..bee7c4f
--- /dev/null
+++ b/fer/mem/show_aborted_mem_state.F
@@ -0,0 +1,120 @@
+	SUBROUTINE SHOW_ABORTED_MEM_STATE(rqst_size)
+
+*
+*
+*  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. 
+*
+*
+* This routine is called following a ferr_insuff_memory error to display
+* diagnostic information about the state of memory at the time of the failure.
+* Specifically, how much memory was tied up for what purposes
+
+* V702 3/17 *sh*
+
+	include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include 'errmsg.parm'
+	include 'xprog_state.cmn'
+	include 'xvariables.cmn'
+	include 'xinterrupt.cmn'
+
+* calling argument declarations:
+	INTEGER*8 rqst_size
+
+* local variable declarations:
+	INTEGER UVAR_NUMBER, TM_LENSTR1, uvar, slen, slen2, slen3
+	INTEGER*8 object_mem
+	CHARACTER LEFINT*8, LEFINT8*16, EXPR_NAME*8, TM_FMT*8,
+     .		arg_num*8, name_code*8, mem_int*16, percent*8
+	REAL*8 rmax_mem
+
+* initialize
+	rmax_mem = max_mem_allowed  ! so percentages become floating point
+
+* write introductory line
+	CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .		'    At the moment that the memory limit was reached',0 )
+
+* write "Argument 2 of the command was being evaluated:" expression
+	IF (num_uvars_in_cmnd .GT. 1) THEN
+	   arg_num = LEFINT(current_cmnd_uvar, slen)
+	   name_code = EXPR_NAME(current_cmnd_uvar)
+	   uvar = UVAR_NUMBER( name_code )
+	   slen2 = TM_LENSTR1(uvar_text(uvar))
+	   CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .		'    argument '//arg_num(:slen)//' was being evaluated: '//
+     .		uvar_text(uvar)(:slen2), 0)
+	ENDIF
+
+* summarize how memory was allocated
+	CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .		'    memory was committed as follows:',0 )
+
+	IF (permanent_mem .GT. 0) THEN
+	   mem_int = LEFINT8(permanent_mem, slen2)
+	   percent = TM_FMT (permanent_mem/rmax_mem*100, 2, 8, slen3)
+	   CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .		'        - to LOAD/PERM storage: '//
+     .		mem_int(:slen2)//' ('//percent(:slen3)//'%)' ,0 )
+	ENDIF
+
+	IF (current_cmnd_uvar .GT. 1) THEN
+	   arg_num = LEFINT(current_cmnd_uvar-1, slen)
+	   mem_int = LEFINT8(completed_args_mem, slen2)
+	   percent = TM_FMT (completed_args_mem/rmax_mem*100, 2, 8, slen3)
+	   CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .		'        - to arguments 1-'//arg_num(:slen)//
+     .		': '//mem_int(:slen2)//' ('//percent(:slen3)//'%)' ,0 )
+	ENDIF
+
+	object_mem = essential_mem-completed_args_mem
+	mem_int = LEFINT8(object_mem, slen2)
+	percent = TM_FMT (object_mem/rmax_mem*100, 2, 8, slen3)
+	CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .		'        - to objects used in computation: '//
+     .		': '//mem_int(:slen2)//' ('//percent(:slen3)//'%)' ,0 )
+
+
+* Report the size of the requested object
+	mem_int = LEFINT8(rqst_size, slen2)
+	percent = TM_FMT (rqst_size/rmax_mem*100, 2, 8, slen3)
+	CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .		'    The size of the requested object was: '//
+     .		': '//mem_int(:slen2)//' ('//percent(:slen3)//'%)' ,0 )
+
+* report the activity that was underway
+* ... could optionally investigate the is_act states of isp and isp-1 to report
+*  "reading dtaa while gathering for average" or whatever ...
+
+	RETURN
+	END
diff --git a/fer/mem/release_work_spc.F b/fer/mem/store_mr_ptr.F
similarity index 81%
copy from fer/mem/release_work_spc.F
copy to fer/mem/store_mr_ptr.F
index b55cc7b..10b841a 100644
--- a/fer/mem/release_work_spc.F
+++ b/fer/mem/store_mr_ptr.F
@@ -1,7 +1,5 @@
-	SUBROUTINE RELEASE_WORK_SPC
+        SUBROUTINE STORE_MR_PTR(mr, size, array)
 
-*
-*
 *  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),
@@ -35,21 +33,24 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* releases claim to temporary work space allocated by GET_WORK_SPC
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
+* this routine is called from C
+* store pointer to malloc-allocated memory into an F90 pointer in the mr table
 *
-* revision 0.0 - 2/19/87
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
 
         IMPLICIT NONE
-	include 'xwork_space.cmn'
 
-	IF ( sp_last_size .GT. 0 ) THEN
-	   CALL FREE_MEMORY( sp_start_block, sp_num_blocks )
-	   sp_last_size = 0
-	ENDIF
+* calling argumemnts
+        INTEGER mr, size
+        REAL(8), TARGET :: array(size)
+
+        include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include 'xvariables.cmn'
+
+* store the pointer
+        memry(mr)%ptr => array
+
+        RETURN
 
-	RETURN
 	END
diff --git a/fer/mem/release_work_spc.F b/fer/mem/store_nul_mr_ptr.F
similarity index 81%
copy from fer/mem/release_work_spc.F
copy to fer/mem/store_nul_mr_ptr.F
index b55cc7b..8d3dbf1 100644
--- a/fer/mem/release_work_spc.F
+++ b/fer/mem/store_nul_mr_ptr.F
@@ -1,7 +1,5 @@
-	SUBROUTINE RELEASE_WORK_SPC
+        SUBROUTINE STORE_NUL_MR_PTR(mr, array)
 
-*
-*
 *  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),
@@ -35,21 +33,24 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* releases claim to temporary work space allocated by GET_WORK_SPC
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
+* this routine is called from C
+* store pointer to a zero-length array into an F90 pointer in the mr table
 *
-* revision 0.0 - 2/19/87
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
 
         IMPLICIT NONE
-	include 'xwork_space.cmn'
 
-	IF ( sp_last_size .GT. 0 ) THEN
-	   CALL FREE_MEMORY( sp_start_block, sp_num_blocks )
-	   sp_last_size = 0
-	ENDIF
+* calling argumemnts
+        INTEGER mr
+        REAL(8), TARGET :: array(0)
+
+        include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include 'xvariables.cmn'
+
+* store the pointer
+        memry(mr)%ptr => array
+
+        RETURN
 
-	RETURN
 	END
diff --git a/fer/mem/release_work_spc.F b/fer/mem/store_nul_ws_ptr.F
similarity index 81%
copy from fer/mem/release_work_spc.F
copy to fer/mem/store_nul_ws_ptr.F
index b55cc7b..3a48af6 100644
--- a/fer/mem/release_work_spc.F
+++ b/fer/mem/store_nul_ws_ptr.F
@@ -1,7 +1,5 @@
-	SUBROUTINE RELEASE_WORK_SPC
+        SUBROUTINE STORE_NUL_WS_PTR(ws, array)
 
-*
-*
 *  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),
@@ -35,21 +33,24 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* releases claim to temporary work space allocated by GET_WORK_SPC
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
+* this routine is called from C
+* store pointer to a zero-length array into an F90 pointer in the ws table
 *
-* revision 0.0 - 2/19/87
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
 
         IMPLICIT NONE
-	include 'xwork_space.cmn'
 
-	IF ( sp_last_size .GT. 0 ) THEN
-	   CALL FREE_MEMORY( sp_start_block, sp_num_blocks )
-	   sp_last_size = 0
-	ENDIF
+* calling argumemnts
+        INTEGER ws
+        REAL(8), TARGET :: array(0)
+
+        include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include 'xvariables.cmn'
+
+* store the pointer
+        workmem(ws)%ptr => array
+
+        RETURN
 
-	RETURN
 	END
diff --git a/fer/mem/release_work_spc.F b/fer/mem/store_ws_ptr.F
similarity index 81%
rename from fer/mem/release_work_spc.F
rename to fer/mem/store_ws_ptr.F
index b55cc7b..2dabc6e 100644
--- a/fer/mem/release_work_spc.F
+++ b/fer/mem/store_ws_ptr.F
@@ -1,7 +1,5 @@
-	SUBROUTINE RELEASE_WORK_SPC
+        SUBROUTINE STORE_WS_PTR(ws, size, array)
 
-*
-*
 *  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),
@@ -35,21 +33,24 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* releases claim to temporary work space allocated by GET_WORK_SPC
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
+* this routine is called from C
+* store pointer to malloc memory into an F90 pointer in work storage table
 *
-* revision 0.0 - 2/19/87
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
 
         IMPLICIT NONE
-	include 'xwork_space.cmn'
 
-	IF ( sp_last_size .GT. 0 ) THEN
-	   CALL FREE_MEMORY( sp_start_block, sp_num_blocks )
-	   sp_last_size = 0
-	ENDIF
+* calling argumemnts
+        INTEGER ws, size
+        REAL(8), TARGET :: array(size)
+
+        include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include 'xvariables.cmn'
+
+* store the pointer
+        workmem(ws)%ptr => array
+
+        RETURN
 
-	RETURN
 	END
diff --git a/fer/plt/SOURCE_FILES b/fer/plt/SOURCE_FILES
index d2a9b9e..5e05307 100644
--- a/fer/plt/SOURCE_FILES
+++ b/fer/plt/SOURCE_FILES
@@ -31,9 +31,7 @@ flow_set_up.F\
 get_axis_format.F\
 get_color_name.F\
 get_color_rgb.F\
-get_frame_size.F\
 get_view_size.F\
-get_window_pixels.F\
 gks_windows.F\
 gks_x_conid.F\
 internal_whoi_date.F\
diff --git a/fer/plt/axis_ends.F b/fer/plt/axis_ends.F
index 4607dc5..fb9da30 100644
--- a/fer/plt/axis_ends.F
+++ b/fer/plt/axis_ends.F
@@ -1,5 +1,5 @@
 	SUBROUTINE AXIS_ENDS( plot_ax, dat_ax, grid, first, last, delta,
-     .                        is_log,  axtp, status )
+     .                        is_log, axtp, versus, status )
 
 *
 *
@@ -56,30 +56,39 @@
 * V580 *acm* 12/04 Fix bug 1129; send back correct value of delta if computed here
 * V68  *acm* 1/12 changes for double-precision ferret, single-precision pplus.
 * V695+ *sh* 4/15 format long longitude axes using a delta based upon 15 deg
+* V710  *acm* 11/16 Ticket 2483: Fix the axis-end symbols that are defined 
+*                   for time axis plots
+* V720  *acm*  2/17 Ticket 2246. If the plot is a PLOT/VS plot (or polygon plot?),
+*                   then axis-backwards is not relevant. The plot axis is drawn
+*                   from the data values not the grid.
 
+	include 'tmap_dims.parm'
 	include 'ferret.parm'
 	include 'plot_setup.parm'
 	include 'errmsg.parm'
-
+	include 'xtm_grid.cmn_text'
+	include 'xplot_setup.cmn'
 
 * kob 12/96
 	EXTERNAL RANGE
 * calling argument declarations:
-	LOGICAL		is_log
+	LOGICAL		is_log, versus
 	CHARACTER*1	plot_ax		! X (horiz) or Y (vert) axis of plot
-	INTEGER		dat_ax, grid	! X,Y,Z or T axis of data
+	INTEGER		dat_ax, grid	! X,Y,Z,... axis of data
 	REAL*8		first, last, delta
 
 * internal variable declarations:
 	LOGICAL		BKWD_AXIS, GEOG_LABEL
-	CHARACTER	val_buff*45
-	INTEGER		axtp, status
+	CHARACTER	val_buff*45, tstyle*3, xtra_lab*24
+	INTEGER		TM_GET_CALENDAR_ID, axtp, taxis, cal_id, status
 	REAL*4		x1, x2, uminr, umaxr, dint
-	REAL*8		firstl, lastl, epsilon, eps2, span
+	REAL*8		TSTEP_TO_SECS, SECS_TO_TSTEP, firstl, lastl, epsilon, eps2, span
 	PARAMETER	(epsilon=1.e-45)
 
 	STATUS = ferr_ok 
 
+	xtra_lab = ' '
+
 * For log axes set up PPLUS for a regular or inverted log axis
 
 	IF (is_log) THEN
@@ -87,7 +96,7 @@
 * Check for negative or too-tiny values of range
 	   IF (first .LT. epsilon .OR. last  .LT. epsilon) GO TO 5000
 
-	   IF ( BKWD_AXIS(dat_ax, grid) ) THEN
+	   IF (.NOT.versus .AND. BKWD_AXIS(dat_ax, grid) ) THEN
 	      axtp = 4		! inverse log axis (leave type 3 as is in PPLUS)
            ELSE
 	      axtp = 2		! log axis
@@ -113,7 +122,7 @@
 * Convert to single precision and reverse order if a depth plot on Y axis
 
 #ifdef double_p
-	IF ( plot_ax .EQ. 'Y'  .AND.  BKWD_AXIS(dat_ax, grid) ) THEN
+	IF ( plot_ax .EQ. 'Y'  .AND. .NOT.versus .AND. BKWD_AXIS(dat_ax, grid) ) THEN
 	   x2 = (first)
 	   x1 = (last)
 	ELSE
@@ -121,7 +130,7 @@
 	   x2 = (last)
 	ENDIF
 #else	
-	IF ( plot_ax .EQ. 'Y'  .AND.  BKWD_AXIS(dat_ax, grid) ) THEN
+	IF ( plot_ax .EQ. 'Y'  .AND. NOT.versus .AND. BKWD_AXIS(dat_ax, grid) ) THEN
 	   x2 = SNGL(first)
 	   x1 = SNGL(last)
 	ELSE
@@ -134,7 +143,7 @@
 	IF ( delta .EQ. unspecified_val8 ) THEN
 	   IF (dat_ax .EQ. x_dim
      .   .AND. GEOG_LABEL(x_dim,grid)
-     .	 .AND. span .GT. 75.  ) THEN
+     .	 .AND. span .GT. 75. .AND..NOT.versus ) THEN
 * ... use 15-degree delta for long longitude axes
 	      IF (span .GT. 180.) THEN
 	         delta = 30.
@@ -150,6 +159,25 @@
 	   dint = delta
 	ENDIF
 
+* if its a time axis, correct the  the actual axis ends that PPLUS will use.
+	IF (.NOT.versus .AND. .NOT.adjust_time .AND. 
+     .      (dat_ax .EQ. t_dim .AND. GEOG_LABEL(t_dim,grid)) ) THEN
+	   taxis = grid_line(t_dim,grid)
+           cal_id = TM_GET_CALENDAR_ID ( line_cal_name(taxis) )
+
+	   first = TSTEP_TO_SECS(grid, t_dim, first)
+	   last  = TSTEP_TO_SECS(grid, t_dim, last)
+
+* Set time style: 'MON', 'YR', etc.  CALL TAXIS_STYLE to set the
+* parameter ITYPET in common
+
+	   CALL TAXIS_STYLE( plot_ax, first, last, tstyle, xtra_lab ) 
+
+	   CALL TPLOT_AXIS_ENDS  (first, last, cal_id, tstyle)
+	   first = SECS_TO_TSTEP( grid, t_dim, first )
+	   last  = SECS_TO_TSTEP( grid, t_dim, last )
+	ENDIF
+
 * and send the actual limits requested together with this tic interval to PPLUS
 	WRITE ( val_buff, '(3(E14.7,1X))' ) x1, x2, dint
 	CALL PPLCMD ( from, line, 0, 
diff --git a/fer/plt/axis_format.F b/fer/plt/axis_format.F
index 6a5eadd..3a9085e 100644
--- a/fer/plt/axis_format.F
+++ b/fer/plt/axis_format.F
@@ -88,6 +88,7 @@
 * V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
 *                  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
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
 
 	include 'tmap_dims.parm'
@@ -95,6 +96,7 @@
         include 'plot_setup.parm'
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
+        include 'xunits.cmn_text'
 	include 'xdset_info.cmn_text'
 	external xdset_info_data
 	include 'xplot_setup.cmn'
@@ -121,7 +123,8 @@
 	PARAMETER     ( pyear_only = 1 )
 
 * internal variable declarations:
-	LOGICAL		GEOG_LABEL, GEOG_VAR, use_nice, special
+	LOGICAL		GEOG_LABEL, GEOG_VAR,ITSA_TRUEMONTH_AXIS,
+     .			use_nice, special
 	INTEGER		TM_LENSTR1, TM_LENSTR, dlen, places, ndec, dummy
 	CHARACTER	AX_TITLE*32, WHOI_DATE*14, VAR_TITLE*128,
      .			INTERNAL_WHOI_DATE*14,
@@ -184,6 +187,7 @@
 * labels formatted in calendar dates
 * .. convert units of time axis from seconds to minutes
 	      time_unit = line_tunit( grid_line(idim,grid) )
+	      IF (ITSA_TRUEMONTH_AXIS(grid_line(idim,grid))) time_unit = un_convert(pun_day)  
 	      dt_min = time_unit / 60.
 
 * ... TAXIS command
diff --git a/fer/plt/disp_data_set_up.F b/fer/plt/disp_data_set_up.F
index b102ff2..44cdd99 100644
--- a/fer/plt/disp_data_set_up.F
+++ b/fer/plt/disp_data_set_up.F
@@ -1,5 +1,4 @@
-	SUBROUTINE DISP_DATA_SET_UP
-     .	( memory, ax1_start, ax1_blks, ax2_start, ax2_blks, status )
+	SUBROUTINE DISP_DATA_SET_UP(  ax1_work, ax2_work, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -59,6 +58,7 @@
 *	            only if PLOT/VS
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 * V69+ *acm*  9/14 Ticket 1758. Memory request uses number of blocks not words
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -70,14 +70,14 @@
 	include 'xprog_state.cmn'
 	
 * calling argument declarations:
-	INTEGER	ax1_blks, ax1_start, ax2_blks, ax2_start, status
-	REAL memory(*)
+	INTEGER	ax1_work, ax2_work, status
 
 * internal variable declarations:
 	LOGICAL plot_vs
 	INTEGER	MR_DIM_LEN, CX_DIM_LEN, CGRID_SIZE,
-     .		idim, ndim, dim(nferdims), mr1, ax_len, cx, ivar,
-     .		factor, loc, grid_blocks
+     .		idim, ndim, dim(nferdims), mr1, cx, ivar,
+     .		factor, loc
+	INTEGER*8 i8_ax_len
 	CHARACTER buff*4
 
 * check for PLOT/VS -- significant in axis buffer sizes
@@ -85,7 +85,7 @@
      .	.AND. qual_given(slash_plot_vs) .GT. 0
 
 * get the requested data somehow  (and leave it protected 1/94)
-	CALL GET_PROT_CMND_DATA ( memory, cx_last, ptype_float, status )
+	CALL GET_PROT_CMND_DATA (  cx_last, ptype_float, status )
 	IF ( status .NE. ferr_ok ) GOTO 5100
 
 * PLOT/ALONG -- reinterpret a multi-D data block as a collection of lines
@@ -117,49 +117,48 @@
 	IF (cmnd_num .EQ. cmnd_polygon) THEN
 * ... allocate buffers used to extract individual polygon coord arrays
 *     set buffer size to the longest axis of 1st coord arg
+*     Polygon may need extra working storage to store info about 
+*     missing polygons on a time axis
 	   cx = is_cx(1)
 	   CALL GET_CX_DIMS(cx, ndim, dim)
-	   ax_len = 1
+	   i8_ax_len = 1
 	   DO 100 idim = 1, ndim
- 100	   ax_len = MAX(ax_len,
+ 100	   i8_ax_len = 2* MAX(i8_ax_len,
      .			cx_hi_ss(cx,dim(idim)) - 
      .			cx_lo_ss(cx,dim(idim)) + 1 )
 	ELSE
-* ... allocate memory used for single precision axes
+* ... allocate memory used for axes
 *     make them each equal to MAX in case /TRANSPOSE or mulit-dim PLOT/VS
 * (2/99: loop over all arguments to find largest requirement)
 * ?? why is CGRID_SIZE needed ... could get very large ??
-	   ax_len = 1
+	   i8_ax_len = 1
 	   DO 200 ivar = 1, num_uvars_in_cmnd
 	      mr1 = is_mr( ivar )
 	      CALL GET_CX_DIMS( is_cx(ivar), ndim, dim )
-	      ax_len = MAX( ax_len,
+	      i8_ax_len = MAX( i8_ax_len,
      .			    MR_DIM_LEN( dim(1), mr1 ),
      .		            MR_DIM_LEN( dim(2), mr1 ),
      .			    factor*CX_DIM_LEN(dim(1), is_cx(ivar)),
      .			    factor*CX_DIM_LEN(dim(2), is_cx(ivar)) )
-	      IF (plot_vs) ax_len =
-     .		       MAX( ax_len,
+	      IF (plot_vs) i8_ax_len =
+     .		       MAX( i8_ax_len,
      .		            CGRID_SIZE(is_cx(ivar))  )
  200	   CONTINUE
 	ENDIF
 
 * allocate working storage
-
-* COMPUTE # BLOCKS NEEDED
-	grid_blocks = ( ax_len + mem_blk_size - 1 ) / mem_blk_size
-
-	CALL GET_MEMORY( ax_len, grid_blocks, ax1_start, ax1_blks, status )
+* the somewhat odd logic is cuz we're making minimal changes to the 
+* pre-dynamic memory code
+	CALL CREATE_DYN_WRKSPC( i8_ax_len, ax1_work, status )
 	IF ( status .NE. ferr_ok ) GOTO 5020
-	CALL GET_MEMORY( ax_len, grid_blocks, ax2_start, ax2_blks, status )
+	CALL CREATE_DYN_WRKSPC( i8_ax_len, ax2_work, status )
 	IF ( status .NE. ferr_ok ) GOTO 5010
 
 * successful completion
 	RETURN
 
 * error exits - release the memory used for axis buffers
-! 5000	CALL FREE_MEMORY( ax2_start, ax2_blks )
- 5010	CALL FREE_MEMORY( ax1_start, ax2_blks )
+ 5010	CALL FREE_WS_DYNMEM( ax1_work )
  5020	CALL UNPROTECT_CMND_DATA	! added 2/99
  5100	RETURN
 	END
diff --git a/fer/plt/disp_set_up.F b/fer/plt/disp_set_up.F
index 2716911..0c52000 100644
--- a/fer/plt/disp_set_up.F
+++ b/fer/plt/disp_set_up.F
@@ -1,4 +1,4 @@
-	SUBROUTINE DISP_SET_UP( memory,
+	SUBROUTINE DISP_SET_UP( 
      .				vector, shade, use_cell, aspect, overlay, 
      .				transpz, no_labels, no_x_rng, valx1, 
      .				density, is_logx, is_logy, mr_list, nmv, 
@@ -155,15 +155,26 @@
 * V685  *acm* 9/13 Fixing ticket 2092. Check that the pplus internal storage
 *                  for coordinate data will be enough for the grid and if not
 *                  return an error message. 
-* V686 *acm* 12/13 Symbokls AX_HORIZ and AX_VERT may be x,y,z,t,e,f  
+* V686 *acm* 12/13 Symbols AX_HORIZ and AX_VERT may be x,y,z,t,e,f  
 * V691  *acm*  5/14 Clean up temp memory used for computing histogram levels
 * 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
 * V695  *acm*  5/15 Ticket 2279: PyFerret don't redraw labels on an overlay
+* V695  *acm* 9/15 send REAL*4 rbad to compare with lev_max, lev_min inside std
 * V697  *acm* 2/16 Fix ticket 2360: overlays on time plots
 * V697  *acm* 2/16 Fix ticket 2365: overlays with a single vector (or single-valued variable)
 *                  returned a status flag of 0 from COMPUTE_MNSTD. Set status to ferr_ok
 *                  after handling the condition.
+* V701  *acm* 8/16 Fix ticket 2463: single-valued data with a /LEVELS setting
+* V701  *acm* 8/16 Fix ticket 2468: Symbols AX_HORIZ and AX_VERT are not reset on an /OVERLAY plot
+* V702  *acm* 10/16 Test the results of FIELD_MINMAX routine before use; if all data is 
+*                   all-missing it returns arbitrary_large_val4.
+* V710  *acm* 11/16 Ticket 2483: Fix the axis-end symbols that are defined 
+*                   for time axis plots
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
+* V71  1/17 *acm* For ticket 2494: Single-cell SHADE plots allowed. 
+*                 Handle degenerate region info.
+* V72  3/17 *acm* Changes for ticket 2517, call to AXIS_ENDS changed.
 
 C replace includes with those from plot_set_up, 
 C plus those starting w/ xbox_bounds:
@@ -173,6 +184,7 @@ C plus those starting w/ xbox_bounds:
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
+        include 'xunits.cmn_text'
 	include 'ferret.parm'
 	include 'plot_setup.parm'
 	include 'errmsg.parm'
@@ -198,7 +210,6 @@ C plus those starting w/ xbox_bounds:
 	include 'xpplus.cmn'
         include 'pyfonts.cmn'
 
-
 *kob 1/97
 	include 'xwindow_state.cmn'
 
@@ -208,7 +219,6 @@ C plus those starting w/ xbox_bounds:
      .			is_logx, is_logy, flows, shade, inc_grid
 	INTEGER		nmv, mr_list( nmv ), cx_list( nmv ), uvar,
      .			density, pen, status
-	REAL		memory( mem_blk_size, max_mem_blks )
 	REAL 		aspect, valx1, s1_axis(*), s2_axis(*)
 
 * internal variable declarations:
@@ -222,16 +232,16 @@ C plus those starting w/ xbox_bounds:
 
         CHARACTER*1     axdir(6)
 
-	LOGICAL		NO_GRID_RANGE, GEOG_LABEL, TM_FPEQ, ITS_FMRC,
+	LOGICAL		NO_GRID_RANGE, GEOG_LABEL, TM_FPEQ, ITS_FMRC, 
+     .			ITSA_TRUEMONTH_AXIS,
      .			user_title, time_axis, time_axis_dim1, timeax_both, 
      .			regrid_1, regrid_2, no_y_rng, edges_ok,
      .			REGULARLY_SPACED,
-     .                  irregular
-        LOGICAL         use_cell
+     .                  irregular, use_cell, valid, vflag
 
 	INTEGER		TM_LENSTR1, CX_DIM_LEN, CGRID_SIZE,
      .			dim1, dim2, mvx, mvx_temp, mvy, mvy_temp,
-     .			ctx, cty, xblk1, yblk1, plot_mem_used, nvars,
+     .			ctx, cty, plot_mem_used, nvars,
      .			lo1, lo2, hi1, hi2, size1, size2, size,
      .			n1_regrid, n2_regrid, grid, slen, pxlim, pylim,
      .			style, justify, ipen, ndim, dims(nferdims), ptitl,
@@ -239,13 +249,13 @@ C plus those starting w/ xbox_bounds:
      .			phlim, pvlim, slen2, cal_id, tax,
      .			x_axtyp, y_axtyp, iscl, siz, nsiz, 
      .			TM_GET_CALENDAR_ID, mode_num, axis1, axis2,
-     .                  hblk1, mvh_temp
+     .                  mvh_temp
 	REAL		s, w1_lo, w1_hi, w2_lo, w2_hi, valy1,
      .			d1_regrid, d2_regrid, bad_x, bad_y, rlo, rhi,
      .			xkeypos, ykeypos, xkeysize, ykeysize, lab_ht,
      .                  first, last, labelht
 	REAL*8		xaxlo, xaxhi, yaxlo, yaxhi, delta
-	REAL*4		rw1lo, rw2lo, rbad, dt_min
+	REAL*4		rw1lo, rw2lo, rbad, dt_min, bounds(2)
 
         DATA axdir / 'X', 'Y', 'Z', 'T', 'E', 'F' /
 
@@ -263,6 +273,8 @@ C plus those starting w/ xbox_bounds:
 	y_axtyp   = 1
         plot_mem_used = 0
 	mvx_temp  = 0
+	adjust_time = .FALSE.
+	vflag     = .FALSE.
 
 	IF ( vector ) THEN
 	   mvy	  = mr_list( 2 )
@@ -343,10 +355,11 @@ C   set up memory for the flag grid
 	IF ( ndim .GT. 2 ) GOTO 5160
 	IF ( overlay ) THEN
 * *sh* 1/93 - restrictions less: coords merely have to be valid in 2D plane
+* acm  1/17 - Allow degenerate regions lo=hi 
            IF ( cx_lo_ss(ctx,dim1) .EQ. unspecified_int4
-     .     .OR. cx_lo_ww(dim1,ctx) .GE. cx_hi_ww(dim1,ctx) ) GOTO 5150
+     .     .OR. cx_lo_ww(dim1,ctx) .GT. cx_hi_ww(dim1,ctx) ) GOTO 5150
            IF ( cx_lo_ss(ctx,dim2) .EQ. unspecified_int4
-     .     .OR. cx_lo_ww(dim2,ctx) .GE. cx_hi_ww(dim2,ctx) ) GOTO 5150
+     .     .OR. cx_lo_ww(dim2,ctx) .GT. cx_hi_ww(dim2,ctx) ) GOTO 5150
 	ELSEIF ( vector) THEN     ! 1/94
 	   IF ( nplot_axis .GT. 2 ) GOTO 5160
 	ENDIF
@@ -402,28 +415,26 @@ C   set up memory for the flag grid
 * create temporary buffers to contain the plot data
 	CALL CREATE_TEMP_MEM_VAR( ctx, mvx_temp, status )
 	IF ( status .NE. ferr_ok ) RETURN
-	xblk1 = mr_blk1( mvx_temp )
 	IF ( vector ) THEN
 	   CALL CREATE_TEMP_MEM_VAR( cty, mvy_temp, status )
 	   IF ( status .NE. ferr_ok ) GOTO 5010
-	   yblk1 = mr_blk1( mvy_temp )
 	ENDIF
 
 * copy the plot data to the buffer(s) - possibly transposing
 	IF ( transpz ) THEN
 	   CALL COPY_GRID_TRANS( size1, size2,
-     .				 memory(1, mr_blk1(mvx)), mvx,
-     .				 memory(1, xblk1       ), mvx_temp )
+     .				 memry(mvx)%ptr, mvx,
+     .				 memry(mvx_temp)%ptr, mvx_temp )
 	   IF ( vector )
      .		CALL COPY_GRID_TRANS(   size1, size2,
-     .					memory(1, mr_blk1(mvy)), mvy,
-     .					memory(1, yblk1       ), mvy_temp )
+     .					memry(mvy)%ptr, mvy,
+     .					memry(mvy_temp)%ptr, mvy_temp )
 	ELSE
-	   CALL COPY_GRID( memory(1, mr_blk1(mvx)), mvx,
-     .			   memory(1, xblk1       ), mvx_temp )
+	   CALL COPY_GRID( memry(mvx)%ptr, mvx,
+     .			   memry(mvx_temp)%ptr, mvx_temp )
 	   IF ( vector )
-     .		CALL COPY_GRID(	memory(1, mr_blk1(mvy)), mvy,
-     .				memory(1, yblk1       ), mvy_temp )
+     .		CALL COPY_GRID(	memry(mvy)%ptr, mvy,
+     .				memry(mvy_temp)%ptr, mvy_temp )
 	ENDIF
 	
 * determine plotting limits
@@ -462,36 +473,49 @@ C   set up memory for the flag grid
 * Define symbols AX_HORIZ and AX_VERT with the x,y,z,t direction 
 * of the axes as they will appear on the plot.
 
+	IF (.NOT.overlay) THEN
         buff1 = axdir(dim1)
 	CALL PPLCMD ( from, line, 0, 'SET AX_HORIZ '//buff1, 1, 1 )
 
         buff1 = axdir(dim2)
         CALL PPLCMD ( from, line, 0, 'SET AX_VERT '//buff1, 1, 1 )
+	ENDIF
 
 * check that there is some valid data
-	no_x_rng = NO_GRID_RANGE( memory(1,xblk1), size, mvx_temp, valx1 )
+	no_x_rng = NO_GRID_RANGE( memry(mvx_temp)%ptr, size, mvx_temp, valx1 )
 	IF ( no_x_rng .AND. valx1 .EQ. bad_x ) valx1 = bad_val4
 	IF ( vector ) THEN
-	   no_y_rng = NO_GRID_RANGE( memory(1,yblk1), size, mvy_temp, valy1 )
+	   no_y_rng = NO_GRID_RANGE( memry(mvy_temp)%ptr, size, mvy_temp, valy1 )
 	   IF ( no_y_rng .AND. valy1 .EQ. bad_y  ) THEN
 	      valx1 = bad_val4
 	      no_x_rng = no_y_rng	! need both to have either
 	   ENDIF
 	ENDIF
 
-* determine axis re-gridding needs
+* determine axis re-gridding needs 
+* (for true-month axis we can treat axis as regular)
 
         irregular = .NOT. ( line_regular(axis1) )
 	CALL AXIS_INTERVALS( 'X', mvx_temp, ctx, dim1, curvilinear, s1_axis,
      .			     mr_lo_ss(mvx_temp,dim1), mr_hi_ss(mvx_temp,dim1),
      .			     w1_lo, w1_hi, n1_regrid, d1_regrid, regrid_1,
      .                       irregular )
+        IF (size1 .EQ. 1) THEN
+	   w1_lo = (cx_hi_ww(dim1,ctx) + cx_lo_ww(dim1,ctx))/2.
+	   w1_hi = w1_lo
+	   d1_regrid = cx_hi_ww(dim1,ctx) - cx_lo_ww(dim1,ctx)
+	ENDIF
 
         irregular = .NOT. ( line_regular(axis2) )
 	CALL AXIS_INTERVALS( 'Y', mvx_temp, ctx, dim2, curvilinear, s2_axis,
      .			     mr_lo_ss(mvx_temp,dim2), mr_hi_ss(mvx_temp,dim2),
      .			     w2_lo, w2_hi, n2_regrid, d2_regrid, regrid_2,
      .                       irregular )
+        IF (size2 .EQ. 1) THEN
+	   w2_lo = (cx_hi_ww(dim2,ctx) + cx_lo_ww(dim2,ctx))/2.
+	   w2_hi = w2_lo
+	   d2_regrid = cx_hi_ww(dim2,ctx) - cx_lo_ww(dim2,ctx)
+	ENDIF
 
 	IF ( regrid_1 .OR. regrid_2 ) THEN
 	   icode = 1
@@ -554,6 +578,8 @@ C   set up memory for the flag grid
 	   IF (overlay) THEN
 	      t1_date =  INTERNAL_WHOI_DATE(grid, dim1, 1.0D0 )
 	      dt_min = line_tunit( grid_line(dim1,grid) ) / 60.
+	      IF (ITSA_TRUEMONTH_AXIS(grid_line(dim1,grid))) 
+     .                dt_min = un_convert(pun_day)/60. 
 	      CALL SET_T1_DATE (t1_date, dt_min)
 	   ENDIF
         ELSE
@@ -566,6 +592,8 @@ C   set up memory for the flag grid
 	      IF (overlay) THEN
 	         t1_date =  INTERNAL_WHOI_DATE(grid, dim2, 1.0D0 )
 	         dt_min = line_tunit( grid_line(dim2,grid) ) / 60.
+	         IF (ITSA_TRUEMONTH_AXIS(grid_line(dim2,grid))) 
+     .                dt_min = un_convert(pun_day)/60. 
 	         CALL SET_T1_DATE (t1_date, dt_min)
 	      ENDIF
 	   ENDIF
@@ -594,10 +622,16 @@ C   set up memory for the flag grid
      .				 cal_id, status )
 	      IF ( status .NE. ferr_OK ) GOTO 5000
 	   ELSEIF ( curvilinear ) THEN
-	      CALL FIELD_MINMAX( memory(1,mr_blk1(mr_xpos) ), 
+	      CALL FIELD_MINMAX( memry(mr_xpos)%ptr, 
      .				mr_xpos, cx_xpos, rlo, rhi )
-	      xaxlo = rlo
-	      xaxhi = rhi
+
+	      IF (rlo .EQ. arbitrary_large_val4) THEN ! all missing
+	         xaxlo = -1
+	         xaxhi = 1
+	      ElSE
+	         xaxlo = rlo
+	         xaxhi = rhi
+	      ENDIF
 	      IF (xaxlo .EQ. xaxhi) THEN
 		 letter = 'X'
 		 GOTO 5500
@@ -605,6 +639,12 @@ C   set up memory for the flag grid
 	      delta = unspecified_val8
 	   ELSE
 	      CALL CHOOSE_CX_WW( uvar, cx_cmnd, ctx, dim1, xaxlo, xaxhi, size1 )
+	      IF (xaxlo .EQ. xaxhi) THEN
+	         rw1lo = xaxlo
+	         CALL BOX_BOUNDS( 'X', rw1lo, 1, bounds, valid )
+		 xaxlo = bounds(1)
+		 xaxhi = bounds(2)
+	      ENDIF
               IF (shade_trim) CALL TRIM_AXIS_ENDS( uvar, cx_cmnd, ctx, 
      .                        dim1, xaxlo, xaxhi )
               IF (xaxlo .GE. xaxhi) GOTO 5160
@@ -615,7 +655,7 @@ C   set up memory for the flag grid
 	   haxhi = xaxhi	! will know them
 
 	   CALL AXIS_ENDS  ( 'X', dim1, grid, xaxlo, xaxhi, delta, is_logx,
-     .			      x_axtyp, status )
+     .			      x_axtyp, vflag, status )
 	   IF ( status .NE. ferr_ok ) THEN
               first = xaxlo
               last  = xaxhi
@@ -664,10 +704,16 @@ C ACM added 8/2001 save cal id if vertical time axis
      .				 cal_id, status )
 	      IF ( status .NE. ferr_OK ) GOTO 5000
 	   ELSEIF ( curvilinear ) THEN
-	      CALL FIELD_MINMAX( memory(1,mr_blk1(mr_ypos) ),
+	      CALL FIELD_MINMAX( memry(mr_ypos)%ptr,
      .				mr_ypos, cx_ypos, rlo, rhi )
-	      yaxlo = rlo
-	      yaxhi = rhi
+	      IF (rlo .EQ. arbitrary_large_val4) THEN ! all missing
+	         yaxlo = -1
+	         yaxhi = 1
+	      ElSE
+	         yaxlo = rlo
+	         yaxhi = rhi
+	      ENDIF
+
 	      IF (yaxlo .EQ. yaxhi) THEN
 		 letter = 'Y'
 		 GOTO 5500
@@ -675,6 +721,12 @@ C ACM added 8/2001 save cal id if vertical time axis
 	      delta = unspecified_val8
 	   ELSE
 	      CALL CHOOSE_CX_WW( uvar, cx_cmnd, ctx, dim2, yaxlo, yaxhi, size2 )
+	      IF (yaxlo .EQ. yaxhi) THEN
+	         rw1lo = yaxlo
+	         CALL BOX_BOUNDS( 'Y', rw1lo, 1, bounds, valid )
+		 yaxlo = bounds(1)
+		 yaxhi = bounds(2)
+	      ENDIF
               IF (shade_trim) CALL TRIM_AXIS_ENDS( uvar, cx_cmnd, ctx, 
      .                        dim2, yaxlo, yaxhi )
               IF (yaxlo .GE. yaxhi) GOTO 5160
@@ -685,7 +737,7 @@ C ACM added 8/2001 save cal id if vertical time axis
 	   vaxhi = yaxhi	! will know them
 
 	   CALL AXIS_ENDS  ( 'Y', dim2, grid, yaxlo, yaxhi, delta, is_logy,
-     .			      y_axtyp, status )
+     .			      y_axtyp, vflag, status )
 	   IF ( status .NE. ferr_ok ) THEN
               first = xaxlo
               last  = xaxhi
@@ -711,8 +763,8 @@ C ACM added 8/2001 save cal id if vertical time axis
 	IF ( vector .AND. aspect.GT.0. ) CALL RE_ORIENT(
      .			haxlo, haxhi, vaxlo, vaxhi, dim1, dim2,
      .			size1, size2, transpz, aspect,
-     .			memory(1, xblk1), mvx_temp,
-     .			memory(1, yblk1), mvy_temp, s )
+     .			memry(mvx_temp)%ptr, mvx_temp,
+     .			memry(mvy_temp)%ptr, mvy_temp, s )
 	if (overlay) SOVER = .true.
 
 
@@ -725,7 +777,7 @@ C ACM added 8/2001 save cal id if vertical time axis
 	rw1lo = w1_lo
 	rw2lo = w2_lo
 
-	CALL PPLLDC_envelope ( icode, memory(1, xblk1), size1, size2,
+	CALL PPLLDC_envelope ( icode, memry(mvx_temp)%ptr, size1, size2,
      .		      1, size1, 1, size2, s1_axis, s2_axis, 
      .		      n1_regrid, n2_regrid, rw1lo, rw2lo,
      .		      d1_regrid, d2_regrid, plot_mem_used)
@@ -736,8 +788,8 @@ C ACM added 8/2001 save cal id if vertical time axis
 	   wwxmax = xaxhi
 	   wwymin = yaxlo
 	   wwymax = yaxhi
-	   CALL LOAD_CURVILINEAR( memory(1,mr_blk1(mr_xpos)),
-     .				  memory(1,mr_blk1(mr_ypos)),
+	   CALL LOAD_CURVILINEAR( memry(mr_xpos)%ptr,
+     .				  memry(mr_ypos)%ptr,
      .				  dim1, dim2, arg_xpos,
      .				  edges_ok, mr_xpos, mr_ypos,
      .				  cx_xpos, cx_ypos, ctx, status)
@@ -746,18 +798,19 @@ C ACM added 8/2001 save cal id if vertical time axis
 
 * Compute data mean and if needed for the levels setting the std, store
 * in common.  If the user set a std to use, store that.
+* send 	REAL*4 rbad to compare with lev_max, lev_min inside compute_mnstd
+* If the user set some /LEVELS then compute_mnstd just returns 
 
        nsiz = size1* size2
        rbad = bad_val4
-       CALL COMPUTE_MNSTD (memory(1, xblk1), bad_x, need_std, 
-     .    nsiz, rbad, status)
-       IF (status .NE. ferr_ok) THEN
+       CALL COMPUTE_MNSTD (memry(mvx_temp)%ptr, bad_x, need_std, 
+     .       nsiz, rbad, status)
+       IF (need_std .AND. status.NE.ferr_ok) THEN
 * ... set up for automatic levels
-	  CALL PPLCMD ( from, line, 0, 'LEV,()', 1, 1 )
+          CALL PPLCMD ( from, line, 0, 'LEV,()', 1, 1 )
           CALL USE_LINEAR_LEVELS
-	  status = ferr_ok
+          status = ferr_ok
        ENDIF
-
 * If histogram-based levels are requested, compute the 
 * histogram bins.
 
@@ -765,10 +818,9 @@ C ACM added 8/2001 save cal id if vertical time axis
 * create temporary buffer to contain workspace
 	  CALL CREATE_TEMP_MEM_VAR( ctx, mvh_temp, status )
 	  IF ( status .NE. ferr_ok ) RETURN
-	  hblk1 = mr_blk1( mvh_temp )
           plot_mem_used = plot_mem_used + nsiz
 
-	  CALL compute_histo_bins (memory(1,xblk1), memory(1,hblk1), 
+	  CALL compute_histo_bins (memry(mvx_temp)%ptr, memry(mvh_temp)%ptr, 
      .       bad_x, nsiz, status) 
      
 * ... clean up temporary variable
@@ -787,7 +839,7 @@ C ACM added 8/2001 save cal id if vertical time axis
 
 	IF ( vector ) THEN
 * load the Y vector component
-	   CALL PPLLDV_envelope ( icode, memory(1,yblk1), size1, size2,
+	   CALL PPLLDV_envelope ( icode, memry(mvy_temp)%ptr, size1, size2,
      .		      1, size1, 1, size2)
 	   CALL DELETE_VARIABLE( mvy_temp )
 	ENDIF
diff --git a/fer/plt/get_frame_size.F b/fer/plt/get_frame_size.F
deleted file mode 100644
index cb8c9cb..0000000
--- a/fer/plt/get_frame_size.F
+++ /dev/null
@@ -1,99 +0,0 @@
-        SUBROUTINE GET_FRAME_SIZE (ws_id,status,x_pixel_dim,y_pixel_dim)
-
-*
-*
-*  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. 
-*
-*
-*	Capture size in pixels of GKS ws with id ws_id
-*       J Davison 12.23.92
-*	Mod 3.11.93 for Ferret to capture entire screen when in viewport
-* 1/97 *kob* - Linux Port - had to move variable assignments off of
-*               declaration line.
-* V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus.
-
-        include 'errmsg.parm'
-        include 'pltcom_dat.decl'
-        include 'PLTCOM.DAT'
-
-	integer		error_status,transno,ws_id
-	integer		x_pixel_dim,y_pixel_dim
-	integer		status,new_trans
-	PARAMETER	( new_trans = 10 )
-
-	real*4		rzero, fctx,fcty, world(4),
-     .			x_minw,x_maxw,y_minw,y_maxw,ndc(4)
-
-******************************************************************************
-
-*	GET WORLD COORDINATES AND PIXEL DIMENSIONS OF FRAME
-	call  FGD_GQCNTN(error_status,transno)
-	if (error_status .ne. 0) goto 1100
-
-	rzero = 0.0
-
-        IF(ASIZE.GT.BSIZE)THEN
-           FCTY=BSIZE/ASIZE
-           FCTX=1.0
-        ELSE
-           FCTX=ASIZE/BSIZE
-           FCTY=1.0
-        ENDIF
-	CALL FGD_GSWN(new_trans, rzero, asize, rzero, bsize )
-	CALL FGD_GSVP(new_trans, rzero, fctx,  rzero, fcty )
-	CALL FGD_GSELNT(new_trans)
-
-	call FGD_GQNT(new_trans,error_status,world,ndc)
-	if (error_status .ne. 0) goto 1000
-
-        x_minw = world(1)
-        x_maxw = world(2)
-        y_minw = world(3)
-        y_maxw = world(4)
-
-	call FGD_GQPXAD(ws_id,x_minw,y_maxw,x_maxw,y_minw,
-     .	error_status,x_pixel_dim,y_pixel_dim)
-
-	if (error_status .ne. 0) goto 1000
-	
-	call FGD_GSELNT(transno)
-        status = ferr_ok
-        return
-
-*	GKS ERROR EXIT
- 1000   call FGD_GSELNT(transno)
- 1100   status = ferr_tmap_error
-	return
-
-	end
-
diff --git a/fer/plt/get_view_size.F b/fer/plt/get_view_size.F
index 7689154..a603676 100644
--- a/fer/plt/get_view_size.F
+++ b/fer/plt/get_view_size.F
@@ -1,4 +1,4 @@
-      SUBROUTINE GET_VIEW_SIZE( vxsize, vysize )
+      SUBROUTINE GET_VIEW_SIZE( vxsize, vysize, is_viewport )
 
 *
 *
@@ -60,6 +60,7 @@
 	include	'PLT.INC'	! with sizing data, etc.
 
 * calling argument declarations:
+	LOGICAL is_viewport
 	REAL*4 vxsize, vysize
 
 * internal variable declarations:
@@ -68,9 +69,13 @@
 * initialize to full plot size
         vxsize = width
         vysize = height
+	is_viewport = .FALSE.
 
 * If viewports are active compute fraction of plot size in viewport
 	IF ( vp_num .NE. mvp_dflt ) THEN
+
+	   is_viewport = .TRUE.
+
            IF ( vp_xclip(vp_num) .EQ. unspecified_val4 ) THEN
               vxmax = 1.0
               vymax = 1.0
diff --git a/fer/plt/get_window_pixels.F b/fer/plt/get_window_pixels.F
deleted file mode 100644
index 774a629..0000000
--- a/fer/plt/get_window_pixels.F
+++ /dev/null
@@ -1,115 +0,0 @@
-        SUBROUTINE GET_WINDOW_PIXELS (ws_id,x_pixel_dim,y_pixel_dim)
-
-*
-*
-*  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. 
-*
-*
-*	Capture size in pixels of GKS ws with id ws_id
-*       J Davison 12.23.92
-*	Mod 3.11.93 for Ferret to capture entire screen when in viewport
-
-*	Mod 10/9/95 *sh* to make this a PLOT+ routine rather than a Ferret
-*	routine.  Renamed "GET_WINDOW_PIXELS" from "GET_FRAME_SIZE"
-
-*	Note:  because this routine uses floating point calculations there
-*	is reason for concern that there may be single pixel errors in the
-*	size returned.  An alternative approach (in C) would use
-*	XGKS gescinqxattr to get the X display, window, and graphic context
-*	and (presumably) XGetWindowAttributes (see Ferret's grab_image_xwd.c)
-*	to get the pixel size.
-* 1/97 *kob* - Linux Port - had to move variable assignments off of
-*               declaration line.
-* 8/04 *acm* - Get x and y pixel sizes that were saved in common by set_window_size.
-*              When in gif or batch mode, these will be values of symbols PPL$XPIXEL 
-*              and PPL$YPIXEL.  If not in gif  or batch mode, we get the window size 
-*              from a GKS call.
-* V602: *acm* 1/07 Changes for metafile-batch mode
-* V68   *acm* 4/11 change how flag meta_batch is computed (different Makefile)
-* V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus.
-* V6.8 *acm* 7/9/2012 For batch graphics on RHEL6, change ITS_BATCH_GRAPHICS
-*                     from logical to integer, then batch = ITS_BATCH_GRAPHICS().NE.0
-
-        include 'pltcom_dat.decl'
-        include 'PLTCOM.DAT'
-
-	integer		error_status,transno,ws_id
-	integer		x_pixel_dim,y_pixel_dim
-	integer		new_trans
-	PARAMETER	( new_trans = 10 )
-
-	real*4		rzero,fctx,fcty
-	real*4		world(4),ndc(4),x_minw,x_maxw,y_minw,y_maxw
-
-******************************************************************************
-
-* initialize in case of error (not an adequate response, really)
-	x_pixel_dim = 1
-	y_pixel_dim = 1
-	rzero = 0.0
-
-*	GET WORLD COORDINATES AND PIXEL DIMENSIONS OF FRAME
-	call  FGD_GQCNTN(error_status,transno)
-	if (error_status .ne. 0) RETURN
-
-        IF(ASIZE.GT.BSIZE)THEN
-           FCTY=BSIZE/ASIZE
-           FCTX=1.0
-        ELSE
-           FCTX=ASIZE/BSIZE
-           FCTY=1.0
-        ENDIF
-	CALL FGD_GSWN(new_trans, rzero, asize, rzero, bsize )
-	CALL FGD_GSVP(new_trans, rzero, fctx,  rzero, fcty )
-	CALL FGD_GSELNT(new_trans)
-
-	call FGD_GQNT(new_trans,error_status,world,ndc)
-	if (error_status .ne. 0) GOTO 1000
-
-        x_minw = world(1)
-        x_maxw = world(2)
-        y_minw = world(3)
-        y_maxw = world(4)
-
-! get pixx and pixy that were saved by set_window_size
-
-        CALL get_pix(ws_id,x_pixel_dim, y_pixel_dim)
-
-        CALL FGD_GQPXAD(ws_id,x_minw,y_maxw,
-     .  x_maxw,y_minw,error_status,x_pixel_dim,y_pixel_dim)
-
- 1000	call FGD_GSELNT(transno)
-        return
-
-	end
-
diff --git a/fer/plt/internal_whoi_date.F b/fer/plt/internal_whoi_date.F
index b769834..017fbaf 100644
--- a/fer/plt/internal_whoi_date.F
+++ b/fer/plt/internal_whoi_date.F
@@ -48,10 +48,12 @@
 * V420: 11/27/95 - 4-digit YEARS!!
 * v530  12/19/00 *acm* cal_id for non-standard calendar types.
 *       *acm* 4/12 6D Ferret: time axis may be in t or f direction. 
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
+        include 'xunits.cmn_text'
 	include 'ferret.parm'
 
 * calling argument declarations
@@ -59,6 +61,7 @@
 	REAL*8	tstep
 
 * internal variable declarations
+        LOGICAL         ITSA_TRUEMONTH_AXIS
 	INTEGER 	yr100, yr, mon, day, hr, min, sec,
      .			status, i, axis
 	INTEGER		TM_GET_CALENDAR_ID, cal_id
@@ -84,6 +87,8 @@
 
 * Find the number of seconds since start of data set for this time step
 	offset_secs = tstep*line_tunit( axis )
+* True-month axis? A true-month step has been converted from month to days
+	IF (ITSA_TRUEMONTH_AXIS(axis)) offset_secs = tstep* un_convert(pun_day)  
 
 * Total seconds to this time step since 01-JAN-0000 00:00:00
 	this_secs = start_secs + offset_secs
diff --git a/fer/plt/line_plot_labels.F b/fer/plt/line_plot_labels.F
index 859ffa2..df2ca53 100644
--- a/fer/plt/line_plot_labels.F
+++ b/fer/plt/line_plot_labels.F
@@ -43,6 +43,11 @@
 * 8/12 ACM 
 * V6.83 *acm* 11/30/2012 Need AXIS.INC for the axis lengths, xlen, ylen
 * PyFr *kms*  7/13 Scale default lettering sizes by textscale
+* V71  *acm* 2/17  More on ticket 2231. Label set of line plots with their units
+*                  if units are different. If PLOT/KEY=title given, use the variable
+*                  title in the legend labels for both PLOT and PLOT/VS plots.
+* v7.2 *acm* 4/2017 ticket 2446 Drawing formatted time axes on a PLOT/VS, label
+*                  at the top with the year if needed.
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -65,12 +70,14 @@
 	CHARACTER*(*) tstyle
 
 * internal variable declarations:
-	LOGICAL user_title
-	INTEGER	TM_LENSTR1, TM_UNIT_ID, ipl, nline_in_mem, slen, slen1, 
-     .		status, ptitl, style, justify, iunits, istart
+	LOGICAL user_title, units_same, do_units
+	INTEGER	TM_LENSTR1, TM_UNIT_ID, STR_SAME, ipl, 
+     .		nline_in_mem, slen, slen1, status, ptitl, style, 
+     .		justify, iunits, istart, i
 	
-	CHARACTER*2040	FULL_VAR_TITLE,  KEY_STRING, plot_title, plot_title_1
-	CHARACTER	VAR_UNITS*64, SECS_TO_DATE*20, year*4, buff1*16
+	CHARACTER*2040	FULL_VAR_TITLE, VAR_TITLE_ONLY, KEY_STRING, 
+     .			plot_title, plot_title_1
+	CHARACTER	VAR_UNITS*64, SECS_TO_DATE*20, year*4, buff1*16, ustring*64
 	REAL		xkeypos, ykeypos, xkeysize, ykeysize, 
      .			lab_ht, labsize
 
@@ -104,6 +111,7 @@
 	         slen = TM_LENSTR1( plot_title )
 	      ELSE
 	         plot_title = KEY_STRING( cx_list(ipl), cx_xtra_doc, slen )
+	         IF (.NOT.use_keys) plot_title = VAR_TITLE_ONLY( cx_list(ipl), slen )
 	      ENDIF
               IF (this_no_range(ipl) .AND. mode_nodata_lab) THEN
                  plot_title(slen+1:slen+14) = ' No Valid Data'
@@ -129,25 +137,52 @@
                  ppl_buff = SECS_TO_DATE( ind_min, cal_id_1 ) 
                  year = ppl_buff(8:11) 
               ENDIF 
-           ENDIF 
+           ELSE
+              IF ( tstyle.EQ.'MON' .OR. tstyle.EQ.'DAY' ) THEN  ! plot/vs with time variable
+	         i = ind_min
+                 WRITE (year, '(I4)') i
+              ENDIF 
+	   ENDIF
+
 * *ACM* if time axis, then cal_id_1 is set to the calendar.  Label the
 *       plot with the calendar name if there is non-standard calendar
 	   CALL DISP_LABELS( cx_plot, year, cal_id_1 )
-* ... label dependent axis with units (over-written below if /vs)
+
+* If there are multiple variables with different units, do not label 
+* the vertical axis with the units 
+
+	   units_same = .FALSE.
+	   ustring = VAR_UNITS(cx_list(var1))
+	   IF (nmv .GT. var1) units_same = .TRUE.
+	   DO 300 ipl = var1+1, nmv
+	      IF (STR_SAME(ustring, VAR_UNITS(cx_list(ipl)) ) .NE. 0) 
+     .	          units_same = .FALSE.
+ 300	   CONTINUE
+	   IF (nmv.EQ.var1 .AND. .NOT.versus) units_same = .TRUE.
+
+* ... label dependent axis with units if all variables have the same units
+*     (over-written below if /vs)
+
 	   plot_title = VAR_UNITS( cx_list(var1) )
 	   slen = TM_LENSTR1( plot_title )
-	   CALL BOX_LABEL( dep_lab,
+	   IF (units_same) CALL BOX_LABEL( dep_lab,
      .			   plot_title(:slen),
      .			   0.0, 0.0, 0.6*dep_len, dflt_letsize_label*textscale,
      .			   dflt_letsize_label*textscale, ppl_centered,
      .			   lab_loc_absolute, lab_loc_absolute )
-* ... keys for the dependent vars, or if one, only then title or axis label
+* ... keys for the dependent vars, or if one, only the title or axis label
 	   DO 600 ipl = var1, nmv
 	      nline_in_mem = nline_in_mem + 1
-	      IF ( use_keys .AND. (.NOT. nokey) ) THEN
+	      IF ( use_keys .AND. (.NOT. nokey) .AND.nmv.GT.var1) THEN
 	         plot_title = KEY_STRING( cx_list(ipl), key_doc, slen )
 	      ELSE
-	         plot_title = FULL_VAR_TITLE( cx_list(ipl), slen )
+	         IF (units_same .AND. .NOT.use_keys) THEN 
+	            plot_title = VAR_TITLE_ONLY( cx_list(ipl), slen )
+	         ELSE
+		    do_units = .TRUE.
+		    IF (nmv.EQ.var1 .AND. .NOT.versus) do_units = .FALSE.
+		    plot_title = FULL_VAR_TITLE( cx_list(ipl), do_units, slen )
+		 ENDIF
 	      ENDIF
               IF (this_no_range(ipl) .AND. mode_nodata_lab) THEN
                  plot_title(slen+1:slen+14) = ' No Valid Data'
@@ -189,7 +224,8 @@
  600	   CONTINUE
 
            IF (versus) THEN
-	      plot_title = FULL_VAR_TITLE( cx_list(1), slen )
+	      do_units = .TRUE.
+	      plot_title = FULL_VAR_TITLE( cx_list(1), do_units, slen )
               slen = TM_LENSTR1( plot_title )
               CALL BOX_LABEL( indep_lab,
      .                     plot_title(:slen),
@@ -220,19 +256,29 @@
 	         slen = TM_LENSTR1( plot_title )
 	      ELSE
 	         plot_title = KEY_STRING( cx_list(ipl), cx_xtra_doc, slen )
+		 IF (.NOT.use_keys) plot_title = VAR_TITLE_ONLY( cx_list(ipl), slen )
 	      ENDIF
               IF (this_no_range(ipl) .AND. mode_nodata_lab) THEN
                  plot_title(slen+1:slen+14) = ' No Valid Data'
                  slen = slen + 14
               ENDIF
-              IF (.NOT. nokey) THEN
-	         CALL KEY_LOC( overlay, xkeypos, ykeypos, xkeysize, ykeysize,
+
+              IF (ipl.EQ.ribbon_var) THEN
+		 slen1 = TM_LENSTR1( plot_title_1 )
+                 plot_title = plot_title_1(1:slen1)//
+     .			', Colored by '//plot_title(1:slen)
+	         slen = TM_LENSTR1( plot_title)
+              ENDIF
+
+              plot_title_1 = plot_title ! ribbon plot: combine with color-by label
+ 1500	   CONTINUE
+           IF (.NOT. nokey) THEN
+              CALL KEY_LOC( overlay, xkeypos, ykeypos, xkeysize, ykeysize,
      .			    lab_ht, style, justify, plot_title(:slen))
-	         CALL PUT_KEY( nline_in_mem, plot_title(:slen),
+              CALL PUT_KEY( nline_in_mem, plot_title(:slen),
      .			    xkeypos, ykeypos, xkeysize, ykeysize,
      .			    lab_ht, style, lab_loc_absolute, lab_loc_absolute )
-              ENDIF
- 1500	   CONTINUE
+           ENDIF
 
 	ELSE ! Not overlay
 
@@ -248,6 +294,11 @@
                  ppl_buff = SECS_TO_DATE( ind_min, cal_id_1 ) 
                  year = ppl_buff(8:11) 
 	      ENDIF 
+           ELSE
+              IF ( tstyle.EQ.'MON' .OR. tstyle.EQ.'DAY' ) THEN  ! plot/vs with time variable
+	         i = ind_min
+                 WRITE (year, '(I4)') i
+              ENDIF 
 	   ENDIF 
 
 * *ACM* if time axis, then cal_id_1 is set to the calendar.  Label the
@@ -271,7 +322,8 @@
 	   ENDIF
 
 	   IF (versus .AND. ribbon_plot) THEN
-	      plot_title = FULL_VAR_TITLE( cx_list(var1), slen )
+	      do_units = .TRUE.
+	      plot_title = FULL_VAR_TITLE( cx_list(var1), do_units, slen )
 	      slen = TM_LENSTR1( plot_title )
 	      CALL BOX_LABEL( dep_lab,
      .			   plot_title(:slen),
@@ -289,11 +341,8 @@
 	   DO 1600 ipl = istart, var1+1
 	      IF (ipl .EQ. var1 .AND. (versus .AND. ribbon_plot)) GOTO 1600     
 	      nline_in_mem = nline_in_mem + 1
-	      IF ( use_keys .AND. (.NOT. nokey) ) THEN
-	         plot_title = KEY_STRING( cx_list(ipl), key_doc, slen )
-	      ELSE
-	         plot_title = FULL_VAR_TITLE( cx_list(ipl), slen )
-	      ENDIF
+	      do_units = .TRUE.
+	      plot_title = FULL_VAR_TITLE( cx_list(ipl), do_units, slen )
               IF (this_no_range(ipl) .AND. mode_nodata_lab) THEN
                  plot_title(slen+1:slen+14) = ' No Valid Data'
                  slen = slen + 14
diff --git a/fer/plt/plot_set_up.F b/fer/plt/plot_set_up.F
index 7017b1a..17958e0 100644
--- a/fer/plt/plot_set_up.F
+++ b/fer/plt/plot_set_up.F
@@ -1,4 +1,4 @@
-        SUBROUTINE PLOT_SET_UP( memory,
+        SUBROUTINE PLOT_SET_UP( 
      .				overlay, transpz, versus, no_labels,
      .				symbol, sym_size, color, color1, use_line,
      .				step_inc, do_dash, dashstyle,
@@ -171,10 +171,31 @@
 * V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
 *                  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
+* V701  *acm* 8/16 Fix ticket 2463: single-valued data with a /LEVELS setting
+* V701  *acm* 8/16 Fix ticket 2468: Symbols AX_HORIZ and AX_VERT are not reset on an /OVERLAY plot
+* V702  *acm* 10/16 Test the results of MINMAX routine before use; if all data is 
+*                   all-missing it returns arbitrary_large_val4.
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
+* V710  *acm* 11/16 Ticket 2483: Fix the axis-end symbols that are defined 
+*                   for time axis plots
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
+* V702 *sh* 1/17 bug fix - ensure only 1D data goes to EXTRACT_LINE if not a
+*                      PLOT/VERSUS
+* V71  *acm* 2/17  More on ticket 2231. New argument to FULL_VAR_TITLE to control units labels
+* V720 *acm* 3/2017 Ticket 2517: Bugs in PLOT/VS when the units are degrees. Axis formatting
+*                   needs to be consistent and controlled by modes long_label and latit_label
+* v7.2 *acm* 2/2017 ticket 2446 Drawing formatted time axes on a PLOT/VS when a variable has
+*                   units of e.g. "days since datestring". The datestring can be in a recognized
+*                   format: 01-jan-2011, or 2011-01-01. MM:HH:SS if present can be written
+*                   separated by a space, or a colon, or Z.
+* 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.
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
+        include 'xunits.cmn_text'
 	include 'ferret.parm'
 	include 'plot_setup.parm'
 	include 'errmsg.parm'
@@ -187,6 +208,8 @@
 	include 'xtext_info.cmn'
         include 'axis_inc.decl'    ! with axis lengths
         include 'AXIS.INC'         ! with axis lengths	
+	include 'taxis_inc.decl'
+	include 'TAXIS.INC'
 	include 'PPLDAT.INC'
         include 'switch_inc.decl'
         include 'SWITCH.INC'
@@ -197,44 +220,51 @@
      .			is_logx, is_logy, nokey, all_1_dep, addgaps
 	INTEGER		symbol, color, color1, step_inc, do_dash, skipsym,
      .			nmv, mv_list( nmv ), cx_list( nmv ), status
-	REAL		memory( mem_blk_size, max_mem_blks ), sym_size,
+	REAL		 sym_size,
      .                  dashstyle(*), only_val
 	REAL		indep_dat(*), dep_dat(*)     ! dynamic space allocation
  
 * V500 *kob* 3/99- up VAR_CODE and VAR_UNITS to 64 chars
 * internal variable declarations:
-	LOGICAL		NO_LINE_RANGE, GEOG_LABEL, TM_HAS_STRING, ITS_FMRC,
-     .                  flip, time_axis,
+	LOGICAL		NO_LINE_RANGE, GEOG_LABEL, ITS_FMRC,
+     .                  ITSA_TRUEMONTH_AXIS,
+     .			flip, time_axis,
      .			all_1_ind, formatted,
      .			indep_is_log, dep_is_log, use_nice,
      .                  this_no_range(max_line_on_plot), set_axis,
-     .                  timeax_both
+     .                  timeax_both, do_units, doing_ribbon_color,
+     .                  x_is_time, y_is_time
 	CHARACTER*2040	FULL_VAR_TITLE,  KEY_STRING, plot_title
 	CHARACTER	INTERNAL_WHOI_DATE*14, VAR_UNITS*64,
      .			SECS_TO_DATE*20, LEFINT*8, MERGED_WHOI_DATE*14, 
      .			LEFT_REAL*16, TM_GET_CALENDAR_NAME*32, 
      .			indep_ax*1, dep_ax*1, tstyle*3, xtra_lab*24,
-     .			buff1*16, buff2*16, buff3*8, t1_date*14, tref*14,
-     .                  cal_name*32, cal_name_new*32, val_buff*32, fmt*4
-
-	INTEGER		TM_LENSTR1, CX_DIM_LEN, CGRID_SIZE, CGRID_AXIS,
+     .			buff1*40, buff2*16, buff3*8, t1_date*14, tref*14,
+     .                  cal_name*32, cal_name_new*32, val_buff*32, fmt*4,
+     .			whoimin*14, whoimax*14, 
+     .			whoimin_axlo*14, whoimax_axhi*14
+	INTEGER		TM_LENSTR1, CX_DIM_LEN, CGRID_SIZE, CGRID_AXIS, 
      .			mv, cx, slen, ito, indep_lab, dep_lab, nline_in_mem,
      .			indep_dim, npts, dep_dim, npts2, ndv, var1,
      .			grid, grid1, ipl, ndim, dims(6),
      .			slen2, slen3, tax, plot_mem_used, nload, i,
      .			pxlim, pylim, phlim, pvlim,pindeplim, pdeplim,
      .			dep_axtyp, indep_axtyp, the_taxis, ribbon_var, 
-     .			gap_var, junits, iaxis, hblk1, mvh_temp, nkey_entries
+     .			gap_var, iiunits, iaxis, hblk1, mvh_temp, 
+     .			nkey_entries, t_axtyp, since_T0, itmp, igrd_save, 
+     .			icode
 
 	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
+        INTEGER         TM_UNIT_ID, cx_x , cx_y, iunits, axis_x_dir, axis_y_dir
 	CHARACTER*1     axdir(6), ax1
 
 	REAL		val1, dt_min, lo, hi, dep_len, 
-     .			ind_len, first, last, hlen, hrs
-	REAL*8		TSTEP_TO_SECS, SECS_TO_TSTEP,
-     .			ind_min, ind_max, dep_min, dep_max, delta, tmp
+     .			ind_len, first, last, hlen, hrs, 
+     .			bc_min, bc_max, step_lo, step_hi
+	REAL		TSTEP_TO_SECS, SECS_TO_TSTEP, DATE_TO_TSTEP, 
+     .			WHOI2BC,ind_min, ind_max, dep_min, dep_max, 
+     .			delta, tmp, dum, ww_save, cen, yr
 	REAL*4 rbad
 
 * local parameter declarations:
@@ -273,9 +303,18 @@
 	indep_axtyp = 1
 	mod_vs_x = .FALSE.
 	mod_vs_y = .FALSE.
+	axis_x_dir = no_dim
+	axis_y_dir = no_dim
+	adjust_time = .FALSE.
         cx_x = cx_list(1)
 	xtra_lab = ' '
         nkey_entries = nmv
+	itmp = mnormal
+	do_units = .TRUE.
+	x_is_time = .FALSE.
+	y_is_time = .FALSE.
+	tstyle = ' '
+	icode = 0
 
 * set limit on the number of plot keys
         IF (.NOT.nokey  .AND.  nmv.GT.max_key_entries) THEN
@@ -393,8 +432,9 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 * * * * * * *    - - - INDEPENDENT AXIS DATA - - - * * * * * * * * *
 	IF ( versus ) THEN
 	   time_axis =	.FALSE.
+	   adjust_time = .TRUE.  ! (Says, do not try to further adjust time...)
 	   CALL EXTRACT_LINE ( cx,
-     .			    memory( 1, mr_blk1(mv) ),
+     .			    memry(mv)%ptr,
      .			    mv,
      .			    indep_dat,
      .			    indep_dim,
@@ -405,12 +445,73 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	   var1 = 2		! since first var is independent axis
 	   ndv  = nmv - 1	! # of dependent variables
 	   use_keys = .FALSE.
-	   plot_title = FULL_VAR_TITLE( cx_list(1), slen )
+	   plot_title = FULL_VAR_TITLE( cx_list(1), .TRUE., slen )
 
 * ... label the independent axis as the first var given
-	   IF ( .NOT.no_labels ) THEN
+	   IF ( .NOT.no_labels) THEN
 	      buff1 = VAR_UNITS(cx_x)
 	      iunits = TM_UNIT_ID(buff1)
+	      
+* Does it have time units? If so draw a formatted time axis
+	      x_is_time = .FALSE.
+	      since_T0 = MAX( INDEX(buff1,'since'), INDEX(buff1,'SINCE') )
+	      slen = TM_LENSTR1(buff1)
+	      IF (since_T0.GT.0 .AND. slen.GT.since_T0+5) THEN
+	         cal_id_1 = 1
+	         CALL TM_ALLO_DYN_LINE( itmp, status )	
+	         CALL CD_GET_TIME_UNITS ( buff1, cal_id_1, line_units(itmp), 
+     .			                   line_t0(itmp), dum, status )
+		 IF (status .EQ. ferr_ok) THEN
+		    x_is_time = .TRUE.
+		    iunits = TM_UNIT_ID( line_units(itmp) )
+		    line_unit_code(itmp) = TM_UNIT_ID( line_units(itmp) )
+		    line_tunit(itmp) = un_convert(line_unit_code(itmp))
+		    line_cal_name(itmp) = 'GREGORIAN'
+		    line_direction( itmp ) = 'TI'
+
+	            CALL MINMAX( indep_dat, npts, mr_bad_data(mv), lo, hi )
+		    grid_line(t_dim, mgrid_buff) = itmp
+		 
+		    igrd_save =  cx_grid(cx_list(1))
+		    cx_grid(cx_list(1)) = mgrid_buff
+		    ww_save = cx_lo_ww(t_dim,cx_list(1) ) 
+		    cx_lo_ww(t_dim,cx_list(1)) = lo
+
+		    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
+		    IF (.NOT.overlay) THEN
+                       hrs = ( ind_max - ind_min ) / 3600.
+                       IF (hrs.LT.24)tref = 
+     .                  MERGED_WHOI_DATE( cx_list(var1), t_dim, nmv, .TRUE. )
+
+                       all_1_ind = ind_min .EQ. ind_max
+                       IF ( all_1_ind ) THEN
+                          ind_min = ind_min - 1.
+                          ind_max = ind_max + 1.
+                       ENDIF
+		    
+                       CALL TAXIS_STYLE( indep_ax, ind_min, ind_max, tstyle, xtra_lab )
+* 11/16 Get the min and max as used by PPLUS.  That function uses WHOI formatted time
+                      CALL TPLOT_AXIS_ENDS (ind_min, ind_max, cal_id_1, tstyle)
+ 
+                      CALL AXIS_END_SYMS( indep_ax,
+     .                          SECS_TO_TSTEP( mgrid_buff, t_dim, ind_min ),
+     .                          SECS_TO_TSTEP( mgrid_buff, t_dim, ind_max ) )
+
+		    ENDIF
+
+	         ELSE
+		    IF (itmp .NE. mnormal) CALL TM_DEALLO_DYN_LINE( itmp )
+		    itmp = mnormal
+	         ENDIF
+	      ENDIF
+
+	      slen = TM_LENSTR1(plot_title)
+
 	      IF (iunits .NE. 4) 
      .           CALL BOX_LABEL( indep_lab,
      .			   plot_title(:slen),
@@ -439,7 +540,7 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 * 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, status)
+     .                       delta, indep_is_log, indep_axtyp, versus, status)
 	         IF ( status .NE. ferr_OK ) THEN
                     first = ind_min
                     last  = ind_max
@@ -454,86 +555,81 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	      IF ( status .NE. ferr_OK ) GOTO 5000
 	   ELSEIF ( all_1_ind .AND. .NOT.overlay ) THEN
 	      IF ( val1 .EQ. mr_bad_data(mv) ) THEN
+		 delta = 1.
 	         ind_min = 0.D0
 	         ind_max = 1.D0
 	      ELSE
-	         ind_min = val1 - 1.
-	         ind_max = val1 + 1.
+	         delta = 0.1* val1
+	         ind_min = val1 - delta
+	         ind_max = val1 + delta
 	      ENDIF
 	   ELSE
 	      CALL MINMAX( indep_dat, npts, mr_bad_data(mv), lo, hi )
-	      ind_min = DBLE( lo )
-	      ind_max = DBLE( hi )
+	      IF (lo .EQ. arbitrary_large_val4) THEN ! all missing
+	         ind_min = -1.
+	         ind_max =  1.
+	      ElSE
+	         ind_min = lo
+	         ind_max = hi
+	      ENDIF
 	   ENDIF
 
 * Set up modulo longitude handling if /vs and variable has units
 * of longitude
 
+	   
 	   cx_x = cx_list(1)	 
 	   cx_y = cx_list(2)
 	   buff1 = VAR_UNITS(cx_x)
-	   iunits = TM_UNIT_ID(buff1)
-	   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
+	   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,
-     .                       delta, indep_is_log, indep_axtyp, status)
+     .                       delta, indep_is_log, indep_axtyp, versus, status)
 	      IF ( status .NE. ferr_ok ) THEN
                  first = ind_min
                  last  = ind_max
                  GOTO 5170
               ENDIF
 
+* This routine checks the units and the setting for formatted lon/lat (time?) axes
+* If the formatting has been turned off, resets iunits and flag mod_vs_x.
+
+              CALL GEOG_LABEL_VS (buff1, iunits, x_dim, axis_x_dir)
+
               IF (iunits .EQ. 4) THEN
                  CALL GET_AXIS_FORMAT( ind_min, ind_max, delta, 
      .                  fmt, use_nice )
                  IF (use_nice) THEN
-                    IF (mod_vs_x) THEN
+                    IF (axis_x_dir .EQ. x_dim) THEN
                        ppl_buff = 'XFOR,('//fmt(:TM_LENSTR1(fmt))//
      .                  ',''''LONE'''')'
                        CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
                        CALL LON_LAT_FMT (x_dim, 'X')
-                    ELSE
+		       mod_vs_x = .TRUE.
+                    ELSEIF (axis_x_dir .EQ. y_dim) THEN
                        ppl_buff = 'XFOR,('//fmt(:TM_LENSTR1(fmt))//
      .                  ',''''LAT'''')'
                        CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
                        CALL LON_LAT_FMT (y_dim, 'Y')
-                    ENDIF
-                 ENDIF
-              ELSE	 
-                 CALL PPLCMD ( from, line, 0, 'XFOR 0', 1, 1 )	 
-              ENDIF	 
-		  
-              IF (junits .EQ. 4) THEN
-                 CALL GET_AXIS_FORMAT( ind_min, ind_max, delta, 
-     .                  fmt, use_nice )
-                 IF (use_nice) THEN
-                    IF (mod_vs_y) THEN
-                       ppl_buff = 'YFOR,('//fmt(:TM_LENSTR1(fmt))//
-     .                  ',''''LONE'''')'
-                       CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
-                       CALL LON_LAT_FMT (x_dim, 'Y')
                     ELSE
-                       ppl_buff = 'YFOR,('//fmt(:TM_LENSTR1(fmt))//
-     .                  ',''''LAT'''')'
+                       ppl_buff = 'XFOR,('//fmt(:TM_LENSTR1(fmt))//
+     .                  ',''''LONE'''')' 
                        CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
-                       CALL LON_LAT_FMT (y_dim, 'Y')
+                       CALL LON_LAT_FMT (x_dim, 'X')
                     ENDIF
                  ENDIF
-              ELSE	 
-                 CALL PPLCMD ( from, line, 0, 'YFOR 0', 1, 1 )	 
+              ELSEIF (iunits .LT. 0) THEN ! time axis formatting
+                 CALL PPLCMD ( from, line, 0, 'TIME', 1, 1 )
+                 CALL PPLCMD ( from, line, 0, 'TAXIS 60,ON', 1, 1 )
+	         ppl_buff = ' '
+	         WRITE ( ppl_buff, 3004 ) 'GREGORIAN'
+                 CALL PPLCMD (from, line, 0, ppl_buff, 1, 1)
+	      ELSE
+                 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, indep_ax//'FOR 0', 1, 1 )
 	   ENDIF
@@ -637,9 +733,14 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	   mv   = mv_list( ipl )
 	   cx   = cx_list( ipl )
 	   grid = cx_grid( cx )
+           IF (.NOT.versus) THEN 
+              CALL GET_CX_DIMS( cx, ndim, dims )
+              IF (ndim .GT. 1) GOTO 5110
+           ENDIF
+
 * set up a dependent variable
 	   CALL EXTRACT_LINE (	cx,
-     .				memory( 1, mr_blk1(mv) ),
+     .				memry(mv)%ptr,
      .				mv,
      .				dep_dat,
      .				dep_dim,
@@ -649,6 +750,7 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
            iaxis = CGRID_AXIS(dep_dim,cx)
  
 	   IF ( status .NE. ferr_ok ) GOTO 5000
+
 * ... replicate points to create a "step" plot if requested  (1/01)
 	   nload = npts2 * step_inc
            IF (step_inc .EQ. 2) THEN
@@ -666,6 +768,9 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 * set up corresponding independent axis
 * ( note - each variable may have different points on the indep. axis )
 
+
+	   doing_ribbon_color = ribbon_plot .AND. ipl.EQ.ribbon_var
+
 	   IF ( versus ) THEN
 * ... number of values must be equal in independ. and depend. for ordered pairs
 	      IF ( npts2 .NE. npts ) GOTO 5130
@@ -674,37 +779,134 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 
 	      set_axis = .TRUE.
 	      IF (ribbon_plot .OR. addgaps) set_axis = (ipl .EQ. var1)
-              IF (versus .AND. set_axis .AND. .NOT.overlay) THEN
- 	         CALL MINMAX( dep_dat, npts, mr_bad_data(mv), lo, hi )
-	         dep_min = DBLE( lo )
-	         dep_max = DBLE( hi )
+              IF (set_axis) THEN
+	         IF (.NOT.overlay) THEN
+	            CALL MINMAX( dep_dat, npts, mr_bad_data(mv), lo, hi )
+ 	            IF (lo .EQ. arbitrary_large_val4) THEN ! all missing
+ 	               dep_min = -1
+ 	               dep_max =  1
+ 	            ELSE
+ 	               dep_min = lo
+ 	               dep_max = hi
+ 	            ENDIF
+		 ENDIF
+
                  cx_y = cx_list(2) 	
                  buff1 = VAR_UNITS(cx_y)
-                 iunits = TM_UNIT_ID(buff1)
+		 IF (doing_ribbon_color) buff1 = ' '
+		 
+		 iunits = TM_UNIT_ID(buff1)
+
+	         IF (.NOT.overlay) THEN
+
+* Does it have time units? If so draw a formatted time axis
+                 y_is_time = .FALSE.
+                 since_T0 = MAX( INDEX(buff1,'since'), INDEX(buff1,'SINCE') )
+                 slen = TM_LENSTR1(buff1)
+                 IF (.NOT.x_is_time .AND. since_T0.GT.0 .AND. slen.GT.since_T0+5) THEN
+	            cal_id_1 = 1
+	            CALL TM_ALLO_DYN_LINE( itmp, status )	
+	            CALL CD_GET_TIME_UNITS ( buff1, cal_id_1, line_units(itmp), 
+     .			                   line_t0(itmp), dum, status )
+		    IF (status .EQ. ferr_ok) THEN
+		       y_is_time = .TRUE.
+		       time_axis = .TRUE.
+		       has_time_axis = .TRUE.
+		       iunits = TM_UNIT_ID( line_units(itmp) )
+		       line_unit_code(itmp) = TM_UNIT_ID( line_units(itmp) )
+		       line_tunit(itmp) = un_convert(line_unit_code(itmp))
+		       line_cal_name(itmp) = 'GREGORIAN'
+		       line_direction( itmp ) = 'TI'
+
+		       grid_line(t_dim, mgrid_buff) = itmp
+		 
+		       igrd_save =  cx_grid(cx_list(1))
+		       cx_grid(cx_list(1)) = mgrid_buff
+		       ww_save = cx_lo_ww(t_dim,cx_list(1) ) 
+		       cx_lo_ww(t_dim,cx_list(1)) = lo
+
+		       dep_min = TSTEP_TO_SECS (mgrid_buff, t_dim, lo)
+		       dep_max = TSTEP_TO_SECS (mgrid_buff, t_dim, hi)
+		    
+		       CALL TAXIS_STYLE( dep_ax, dep_min, dep_max, tstyle, xtra_lab )
+* 11/16 Get the min and max as used by PPLUS.  That function uses WHOI formatted time
+		       CALL TPLOT_AXIS_ENDS (dep_min, dep_max, cal_id_1, tstyle)
+ 
+		       CALL AXIS_END_SYMS( dep_ax,
+     .                          SECS_TO_TSTEP( mgrid_buff, t_dim, dep_min ),
+     .                          SECS_TO_TSTEP( mgrid_buff, t_dim, dep_max ) )
+
+
+		    ENDIF
+
+		 ENDIF
+
+* This routine checks the units and the setting for formatted lon/lat (time?) axes
+* If the formatting has been turned off, resets iunits and flag mod_vs_x.
+
+		 CALL GEOG_LABEL_VS (buff1, iunits, y_dim, axis_y_dir)
+
                  IF (iunits .EQ. 4) THEN
 	            delta = unspecified_val8
 		    
 	            CALL AXIS_ENDS(dep_ax,dep_dim,grid1,dep_min,dep_max,
-     .                      delta, dep_is_log, dep_axtyp, status)
+     .                      delta, dep_is_log, dep_axtyp, versus, status)
 
 	            CALL GET_AXIS_FORMAT( dep_min, dep_max, delta, 
      .                 fmt, use_nice )
+
                     IF (use_nice) THEN
-                       IF (TM_HAS_STRING(buff1, '_e') .OR.
-     .                      TM_HAS_STRING(buff1, 'lon') ) THEN
-                           ppl_buff = 'YFOR,('//fmt(:TM_LENSTR1(fmt))//
+
+* Make sure if we are using lon/lat labeling that we have just one of each direction.
+* e.g. if they said just degrees_n for the x dir, but just "degrees" for the y var, 
+* use east for the vert. If they said degrees_e for the y var but just degrees for the x,
+* use lon for the y axis.
+
+
+                       IF (axis_x_dir.EQ.y_dim .AND. axis_y_dir.EQ.no_dim) THEN
+		          IF (iunits .EQ. 4) ppl_buff = 'YFOR,('//fmt(:TM_LENSTR1(fmt))//
      .                       ',''''LONE'''')' 
-                       ELSE
+                       ELSEIF (axis_y_dir .EQ. x_dim) THEN
+		          ppl_buff = 'YFOR,('//fmt(:TM_LENSTR1(fmt))//
+     .                       ',''''LONE'''')' 
+		          mod_vs_y = .TRUE.
+		          IF (axis_x_dir .EQ. no_dim) THEN
+		             buff1 = VAR_UNITS(cx_x)
+		             iiunits = TM_UNIT_ID(buff1)
+		             CALL GEOG_LABEL_VS (buff1, iiunits, x_dim, axis_x_dir)
+		             IF (iiunits .EQ. 4) ppl_buff = 'XFOR,('//fmt(:TM_LENSTR1(fmt))//
+     .                           ',''''LAT'''')'
+		          ENDIF
+                       ELSEIF (axis_y_dir .EQ. y_dim) THEN
                            ppl_buff = 'YFOR,('//fmt(:TM_LENSTR1(fmt))//
      .                       ',''''LAT'''')'
+                       ELSE
+		          ppl_buff = 'YFOR,('//fmt(:TM_LENSTR1(fmt))//
+     .                       ',''''LAT'''')' 
                        ENDIF
+
                        CALL PPLCMD ( from, line, 0, ppl_buff, 1, 1 )
                     ENDIF
-                 ENDIF
-              ENDIF
+		 
+		 
+                 ELSEIF (iunits .LT. 0) THEN ! time axis formatting
+                    CALL PPLCMD ( from, line, 0, 'TIME', 1, 1 )
+                    CALL PPLCMD ( from, line, 0, 'TAXIS/YAXIS 60,ON', 1, 1 )
+	            ppl_buff = ' '
+	            WRITE ( ppl_buff, 3004 ) 'GREGORIAN'
+                    CALL PPLCMD (from, line, 0, ppl_buff, 1, 1)
+
+
+	         ELSE
+                 CALL PPLCMD ( from, line, 0, 'YFOR 0', 1, 1 )	 
+                 ENDIF	
+	         ENDIF  ! not overlay
+              ENDIF  ! set_axis
+
+	   ELSE  ! versus
 
-	   ELSE
 * ... in PLOT TEMP , SALT , U all vars must be along same ww dimension
+
 	      IF ( ndim .GT. 1 ) GOTO 5110
 	      IF ( dep_dim .NE. indep_dim ) GOTO 5140
 	      CALL MAKE_STEP_AXIS( grid, dep_dim, step_inc,
@@ -729,8 +931,10 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	      ENDIF
 	      all_1_ind = ind_min .EQ. ind_max
 	      IF ( all_1_ind ) THEN
-	         ind_min = ind_min - 1.
-	         ind_max = ind_max + 1.
+	         delta = 1.0
+		 IF (ind_min .NE. 0) delta = 0.1* ind_min
+	         ind_min = ind_min - delta
+	         ind_max = ind_max + delta
 	      ENDIF
 	   ENDIF
 
@@ -739,25 +943,30 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 * If histogram-based levels are requested, compute the 
 * histogram bins.
 * send REAL*4 rbad to compare with lev_max, lev_min inside compute_mnstd
+* If the user set some /LEVELS then compute_mnstd just returns 
 
-
-	   IF (ribbon_plot .AND. ipl.EQ.ribbon_var) THEN
+	   IF (doing_ribbon_color) THEN
 
               IF (need_histo) THEN
 * create temporary buffer to contain workspace
                  CALL CREATE_TEMP_MEM_VAR( cx, mvh_temp, status )
                  IF ( status .NE. ferr_ok ) RETURN
-                 hblk1 = mr_blk1( mvh_temp )
                  plot_mem_used = plot_mem_used + npts
-
-                 CALL compute_histo_bins (dep_dat, memory(1,hblk1), 
+                 CALL COMPUTE_HISTO_BINS (dep_dat, memry(mvh_temp)%ptr, 
      .            mr_bad_data(mv), npts, status) 
      
 * ... clean up temporary variable
                  CALL DELETE_VARIABLE( mvh_temp )
-              ELSE
+              ELSE 
 	         rbad = bad_val4
                  CALL COMPUTE_MNSTD (dep_dat, mr_bad_data(mv), need_std, npts, rbad, status)
+                 IF (need_std .AND. status.NE.ferr_ok) THEN
+* ... set up for automatic levels
+                    CALL PPLCMD ( from, line, 0, 'LEV,()', 1, 1 )
+                    CALL USE_LINEAR_LEVELS
+                    status = ferr_ok
+                 ENDIF
+
               ENDIF
 
 	   ENDIF
@@ -796,6 +1005,8 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
                  dt_min = 1.0
               ELSE
 	         dt_min = line_tunit( grid_line(the_taxis,grid) ) / 60.! sec-->min
+	         IF ( ITSA_TRUEMONTH_AXIS(grid_line(the_taxis,grid)) ) 
+     .                dt_min = un_convert(pun_day)/60. 
 
 *  Check for calendar mismatch for time- overlay plots
 	         IF (overlay) THEN
@@ -812,7 +1023,7 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	      IF (overlay .AND. has_time_axis) THEN
 	         dt_min  = saved_dt_min
 	         t1_date = saved_t1_date
-	      ELSE
+	      ELSEIF (.NOT.ribbon_plot) THEN
                  dt_min  = 1.0
                  t1_date = ' '
 	      ENDIF
@@ -829,8 +1040,8 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	      ENDIF
 	   ENDIF
 
-! put colorvar in the right place
-	   IF (ribbon_plot .AND. ipl.EQ.ribbon_var) THEN
+* put colorvar in the right place
+	   IF (doing_ribbon_color) THEN
 	      flip = .FALSE.
 	      IF (indep_dim .EQ. z_dim) THEN
 	         WRITE ( ppl_buff, 3005 ) mr_bad_data( mv ), indep_ax
@@ -847,11 +1058,77 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	      ENDIF
 	   ENDIF
 
+
+* If a /vs plot has a variable with units of time, put the itmp line into 
+* the scratch grid mgrid_buff, so the WHOI_DATE functions can get at the 
+* line_* information stored above after calls to CD_GET_TIME_UNITS. 
+
+	   IF (versus) THEN
+	      IF (x_is_time) THEN
+		 dt_min = line_tunit(itmp)/ 60.
+		 
+		 adjust_time = .FALSE.
+		 CALL AXIS_ENDS(indep_ax,t_dim,mgrid_buff,ind_min,ind_max,
+     .                       delta, indep_is_log, indep_axtyp, versus, status)
+
+                 tref = MERGED_WHOI_DATE( cx_list(1), t_dim, 1, .FALSE. )
+                 t1_date = INTERNAL_WHOI_DATE( mgrid_buff, t_dim, 1.0D0 )
+
+		 cx_grid(cx_list(1)) = igrd_save
+		 cx_lo_ww(t_dim,cx_list(1) ) = ww_save 
+		 IF (ipl .EQ. nmv) THEN
+		    IF (itmp .NE. mnormal) CALL TM_DEALLO_DYN_LINE( itmp )
+		    itmp = mnormal
+		 ENDIF
+
+	      ENDIF
+	      
+	      IF (y_is_time .AND. .NOT.doing_ribbon_color) THEN
+	      
+		 dt_min = line_tunit(itmp)/ 60.
+		 
+		 adjust_time = .FALSE.
+		 CALL AXIS_ENDS(dep_ax,t_dim,mgrid_buff,dep_min,dep_max,
+     .                       delta, indep_is_log, indep_axtyp, versus, status)
+
+                 tref = MERGED_WHOI_DATE( cx_list(1), t_dim, 1, .FALSE. )
+                 t1_date = INTERNAL_WHOI_DATE( mgrid_buff, t_dim, 1.0D0 )
+
+		 cx_grid(cx_list(1)) = igrd_save
+		 cx_lo_ww(t_dim,cx_list(1) ) = ww_save 
+		 IF (ipl .EQ. nmv) THEN
+		    IF (itmp .NE. mnormal) CALL TM_DEALLO_DYN_LINE( itmp )
+		    itmp = mnormal
+		 ENDIF
+
+
+		 IF (.NOT.overlay) THEN
+	            saved_dt_min  = dt_min		! to re-use on PLOT/VS or POLYGON
+	            saved_t1_date = t1_date
+	            saved_calendar_id = cal_id_1
+	         ENDIF
+
+		 IF (iunits .LT. 0) THEN
+	            dt_min = saved_dt_min
+	            t1_date = saved_t1_date
+	            cal_id_1 = saved_calendar_id
+		 ENDIF 
+		         
+	      ENDIF
+
+	   ENDIF
+
+* See pplldx comments. When loading the color-by variable lon vertical time axis
+* this forces the right combination of settings.
+
+	   IF (doing_ribbon_color) icode = 2
+	   IF (y_is_time .AND. doing_ribbon_color) icode = 7
+
 	   IF ( flip ) THEN
-	      CALL PPLLDX_envelope(0,dep_dat,indep_dat,nload,
+	      CALL PPLLDX_envelope(icode,dep_dat,indep_dat,nload,
      .                             t1_date, tref, dt_min, plot_mem_used)
 	   ELSE
-	      CALL PPLLDX_envelope(0,indep_dat,dep_dat,nload,
+	      CALL PPLLDX_envelope(icode,indep_dat,dep_dat,nload,
      .                             t1_date, tref, dt_min, plot_mem_used)
 	   ENDIF
 * ... increment number of lines on plot
@@ -860,11 +1137,15 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 * ... assign line style for the data plotting:
 	   CALL LINE_STYLE(symbol, sym_size, skipsym, color, color1, use_line,
      .			   do_dash, dashstyle, nline_in_mem, nline_on)
+
+
  200	CONTINUE
+
         nline_on = nline_on + color1 - 1
 
 * axis scaling and formatting
 * ... independent axis
+
 	IF ( .NOT.overlay ) THEN
 	   IF ( .NOT. versus ) THEN
 	      delta = unspecified_val8
@@ -879,7 +1160,7 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	         IF (indep_is_log) THEN
 	         CALL AXIS_ENDS  ( indep_ax, indep_dim, grid1,
      .				   ind_min, ind_max, delta, 
-     .				   indep_is_log, indep_axtyp, status )
+     .				   indep_is_log, indep_axtyp, versus, status )
 	            IF ( status .NE. ferr_OK ) THEN
                        first = ind_min
                        last  = ind_max
@@ -917,13 +1198,17 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	         CALL TAXIS_STYLE( indep_ax, ind_min, ind_max, tstyle, xtra_lab )
 * (6/99) Note: The time axis extrema symbols are only approximately correct
 *		since PLOT+ rounds out the time ranges ...
+
+* 11/16 Get the min and max as used by PPLUS.  That function uses WHOI formatted time
+	         CALL TPLOT_AXIS_ENDS (ind_min, ind_max, cal_id_1, tstyle)
+
 	         CALL AXIS_END_SYMS( indep_ax,
      .				SECS_TO_TSTEP( grid1, the_taxis, ind_min ),
      .				SECS_TO_TSTEP( grid1, the_taxis, ind_max ) )
 	      ELSE
 	         CALL AXIS_ENDS  ( indep_ax, indep_dim, grid1,
      .				   ind_min, ind_max, delta, 
-     .				   indep_is_log, indep_axtyp, status )
+     .				   indep_is_log, indep_axtyp, versus, status )
 	         IF ( status .NE. ferr_OK ) THEN
                     first = ind_min
                     last  = ind_max
@@ -938,6 +1223,7 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
      .                             no_labels, xtra_lab )
 	      ENDIF
 	   ENDIF
+
 * ... dependent axis scaling
 *  force axis scaling if the data has no range
 
@@ -954,11 +1240,12 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	      IF (dep_is_log) THEN
 	      
 	         CALL MINMAX( dep_dat, npts, mr_bad_data(mv), lo, hi )
-	         dep_min = DBLE( lo )
-	         dep_max = DBLE( hi )
+		 IF (lo .EQ. arbitrary_large_val4) GOTO 5171
+	         dep_min = lo
+	         dep_max = hi
 	         
 	         CALL AXIS_ENDS( dep_ax, the_taxis, grid, dep_min, dep_max, 
-     .                        delta, dep_is_log, dep_axtyp, status )
+     .                        delta, dep_is_log, dep_axtyp, versus, status )
 	         IF ( status .NE. ferr_OK ) THEN
                     first = dep_min
                     last  = dep_max
@@ -973,7 +1260,7 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 	      IF ( status .NE. ferr_OK ) GOTO 5000
 
 	      CALL AXIS_ENDS( dep_ax, the_taxis, grid, dep_min, dep_max, 
-     .                        delta, dep_is_log, dep_axtyp, status )
+     .                        delta, dep_is_log, dep_axtyp, versus, status )
 	      IF ( status .NE. ferr_OK ) THEN
                  first = dep_min
                  last  = dep_max
@@ -982,21 +1269,24 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 
 	   ELSEIF ( all_1_dep ) THEN
 	      IF (only_val .EQ. bad_val4) val1 = 0.0	! 10/99
+	      delta = 1.
+	      IF (val1 .NE. 0) delta = 0.1* val1
 	      
-	      CALL AXIS_ENDS( dep_ax, the_taxis, grid,val1-1.D0,val1+1.D0,1.D0,
-     .                        dep_is_log, dep_axtyp, status )   
+	      CALL AXIS_ENDS( dep_ax, the_taxis, grid,val1-delta,val1+delta,delta,
+     .                        dep_is_log, dep_axtyp, versus, status )   
 	      IF ( status .NE. ferr_OK ) THEN
-                  first = val1-1.0
-		  last  = val1+1.0
+                  first = val1-delta
+		  last  = val1+delta
 		  GOTO 5170
 	      ENDIF   
 	   ELSEIF (dep_is_log) THEN	! get dependent var scaling and set up log axis
 	      CALL MINMAX( dep_dat, npts, mr_bad_data(mv), lo, hi )
-	      dep_min = DBLE( lo )
-	      dep_max = DBLE( hi )
+	      IF (lo .EQ. arbitrary_large_val4) GOTO 5171  ! all missing
+	      dep_min = lo
+	      dep_max = hi
 	      
 	      CALL AXIS_ENDS( dep_ax, the_taxis, grid, dep_min, dep_max, 
-     .                        delta, dep_is_log, dep_axtyp, status )
+     .                        delta, dep_is_log, dep_axtyp, versus, status )
 	      IF ( status .NE. ferr_OK ) THEN
                  first = dep_min
                  last  = dep_max
@@ -1018,20 +1308,26 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
               CALL PPLCMD ( from, line, 0, val_buff, 1, 1)
 	   ENDIF
 
+           ax1 = axdir(indep_dim)
+  	   IF (flip) THEN
+              CALL PPLCMD ( from, line, 0, 'SET AX_VERT '//ax1, 1, 1 )
+	   ELSE
+	      CALL PPLCMD ( from, line, 0, 'SET AX_HORIZ '//ax1, 1, 1 )
+           ENDIf
 	ENDIF
 
-        ax1 = axdir(indep_dim)
-	IF (flip) THEN
-           CALL PPLCMD ( from, line, 0, 'SET AX_VERT '//ax1, 1, 1 )
-	ELSE
-	   CALL PPLCMD ( from, line, 0, 'SET AX_HORIZ '//ax1, 1, 1 )
-        ENDIF
-
 *  TITLES
 * Main plot title. Add labels for multi-lines as a key, 
 * or a "Colored by var2" label for the ribbon color variable
 *
 	hlen = xlen ! single-precision xlen from PPLUS common -> double prec. var
+
+        IF (x_is_time .OR. y_is_time) THEN
+           ul_dolab(t_dim) = .FALSE.
+           READ (t1_date(13:14), *) cen
+           READ (t1_date(1:2), *) yr
+           ind_min = 100*cen + yr 
+        ENDIF
 	IF ( .NOT.no_labels ) 
      .          CALL LINE_PLOT_LABELS (var1, nkey_entries, ndv, cx_list, 
      .		this_no_range, overlay, versus, nokey, time_axis, 
@@ -1044,6 +1340,7 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
 
 * error exit
  5000	CALL PPLCMD ( from, line, 0, 'NLINES', 1, 1 )	! wipe buffers clean
+ 	IF (itmp .NE. mnormal) CALL TM_DEALLO_DYN_LINE( itmp )
 	RETURN
  5050	buff1 = LEFINT( max_line_on_plot,  slen  )
 	CALL ERRMSG( ferr_invalid_command, status, 'cannot plot more than '
@@ -1098,6 +1395,10 @@ c        IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150  ! test is now i
      . 'Limits for log axis negative or too small: '//
      .  buff1(:slen)// ' : '//  buff2(:slen2), *5000 )
 
+ 5171	CALL ERRMSG( ferr_out_of_range, status,
+     . 'Data all-missing. Cannot define log axis for plotting',
+     .  *5000 )
+
 
  5180	CALL ERRMSG( ferr_limits, status,
      . 'One-point independent axis: Requires a '//
diff --git a/fer/plt/polygon_set_up.F b/fer/plt/polygon_set_up.F
index 0fe1a07..1de80c6 100644
--- a/fer/plt/polygon_set_up.F
+++ b/fer/plt/polygon_set_up.F
@@ -1,5 +1,5 @@
 	SUBROUTINE POLYGON_SET_UP
-     .			      ( memory,
+     .			      ( 
      .				overlay, transpz, coord_ax, no_labels,
      .				no_range, only_val,
      .				symbol, line_type, use_line,
@@ -137,7 +137,11 @@
 * V698  *acm*  3/16 #2396: On a POLYGON/OVERLAY with no /TITLE given, if there is 
 *                   no 3rd argument (colors), make nominal title
 * V698  4/16 *acm* New PLOT/SKIP= means change in call sequence for LINE_STYLE
-
+* V701  *acm* 8/16 Fix ticket 2463: single-valued data with a /LEVELS setting
+* V702  *acm* 10/16 Test the results of MINMAX routine before use; if all data is 
+*                   all-missing it returns arbitrary_large_val4.
+* V71  *acm* 2/17  More on ticket 2231. New argument to FULL_VAR_TITLE to control units labels
+* V72  *acm* 3/17  For ticket 2517, changes to arguments in calls to AXIS_ENDS
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -169,10 +173,10 @@
 
 * calling argument declarations:
 	LOGICAL		overlay, transpz, no_labels, no_range, use_line,
-     .			is_logx, is_logy, is_modx, do_mod_minus, do_mod_plus
+     .			is_logx, is_logy, is_modx, do_mod_minus, do_mod_plus, 
+     .			do_units
 	INTEGER		symbol, line_type, coord_ax, iunits, do_dash,
      .			nmv, mr_list( nmv ), cx_list( nmv ), status
-	REAL		memory( mem_blk_size, max_mem_blks )
 	REAL		x_dat(*), y_dat(*)     ! dynamic space allocation 
 	REAL            only_val, dashstyle(4), add_lon
 
@@ -180,7 +184,7 @@
 	LOGICAL         missing_polygon, first_polygon, use_nice
 	LOGICAL		NO_LINE_RANGE, ambiguous_coord_axis,
      .			formatted, user_title, oneD_form, stack_up,
-     .			x_is_log, y_is_log
+     .			x_is_log, y_is_log, vflag
 	CHARACTER*2048	KEY_STRING, FULL_VAR_TITLE, plot_title
 * 3/99 *kob* - upped VAR_UNITS from 32 to 64 chars
 	CHARACTER	VAR_UNITS*64, LEFINT*6, TM_GET_CALENDAR_NAME*32, 
@@ -199,7 +203,8 @@
      .			cx_buff_x, cx_buff_y,
      .			phlim, pvlim, pxdenig, pydenig,
      .                  cal_id, tax, x_axtyp, y_axtyp, n,
-     .                  ss_x_save, ss_y_save, hblk1, mvh_temp, ier, nc, skipsym
+     .			ss_x_save, ss_y_save, mvh_temp, ier, nc, skipsym,
+     .			nsiz, ngood
 
 	REAL		x_len, y_len, lo, hi, lox, hix, loy, hiy,
      .			xkeypos, ykeypos, xkeysize, ykeysize, lab_ht,
@@ -217,6 +222,9 @@
 	PARAMETER     ( range_rqd = .TRUE. )
 	PARAMETER     ( epsilon = 1.E-35 )
 
+	do_units = .TRUE.
+	vflag = .FALSE.  ! argument to axis_ends
+
 * signal that plot set-up has begun
 	IF ( mode_diagnostic ) CALL SPLIT_LIST(pttmode_ops, ttout_lun,
      .				'setting up polygons', 19)
@@ -422,6 +430,7 @@ c	ind_dim = plot_axis(1)
 * check that we have enough PPLUS memory and allocate more if needed.
 
         first_polygon = .TRUE.
+	ngood = 0
 
 * ...  point to the first polygon 
        IF ( oneD_form ) THEN
@@ -473,7 +482,7 @@ c	ind_dim = plot_axis(1)
 * ... extract 1-dimensional arrays -- possibly with embedded missing values
 * ... x coordinates
 	   CALL EXTRACT_LINE (	cx_buff_x,
-     .				memory( 1, mr_blk1(mr_x) ),
+     .				memry(mr_x)%ptr,
      .				mr_x,
      .				x_dat,
      .				coord_dim,
@@ -483,7 +492,7 @@ c	ind_dim = plot_axis(1)
 	   IF ( status .NE. ferr_ok ) GOTO 5000
 * ... y coordinates
 	   CALL EXTRACT_LINE (	cx_buff_y,
-     .				memory( 1, mr_blk1(mr_y) ),
+     .				memry(mr_y)%ptr,
      .				mr_y,
      .				y_dat,
      .				coord_dim,
@@ -500,7 +509,7 @@ c	ind_dim = plot_axis(1)
 
 	   IF (first_polygon .AND. .NOT.oneD_form) THEN
               plot_mem_used = 4* npts* npoly
-              CALL reallo_envelope(plot_mem_used)
+              CALL REALLO_ENVELOPE(plot_mem_used)
 
               first_polygon = .FALSE.
               plot_mem_used = 0
@@ -627,6 +636,7 @@ c	ind_dim = plot_axis(1)
 * ... locate the (next) contiguous segment in the arrays
 *    ...search for start of segment
 	   missing_polygon = .false.
+
 	   start = npts
 	   end   = npts
 	   DO 210 i = 1, npts
@@ -647,6 +657,8 @@ c	ind_dim = plot_axis(1)
  230	   CONTINUE
 
  240	   IF (start .GE. end ) missing_polygon = .true.
+	   nsiz = npts
+
 
 * ... check for adequate PLOT+ memory
  250	   npts = end-start+1
@@ -660,11 +672,15 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 
 * ... maintain check on x data range for PLOT+ auto-scaling
 	   CALL MINMAX( x_dat(start), npts, mr_bad_data(mr_x), lo, hi)
-	   IF (lo .LT. lox) lox = lo
-	   IF (hi .GT. hix) hix = hi
+	   IF (lo .NE. arbitrary_large_val4) THEN ! if it is arb-large, then all missing
+	      IF (lo .LT. lox) lox = lo
+	      IF (hi .GT. hix) hix = hi
+	   ENDIF
 	   CALL MINMAX( y_dat(start), npts, mr_bad_data(mr_y), lo, hi)
-	   IF (lo .LT. loy) loy = lo
-	   IF (hi .GT. hiy) hiy = hi
+	   IF (lo .NE. arbitrary_large_val4) THEN ! if it is arb-large, then all missing
+	      IF (lo .LT. loy) loy = lo
+	      IF (hi .GT. hiy) hiy = hi
+	   ENDIF
 
 * ... pass the data to PLOT+
 
@@ -698,6 +714,7 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 
 	   IF (missing_polygon) THEN
 ! for time series overlays, dont load the data
+
               IF (.NOT. (has_time_axis .AND. overlay)) 
      .    	  CALL PPLLDX_envelope(3,mr_bad_data(mr_x),
      .            mr_bad_data(mr_y),1,t1_date,' ',dt_min,plot_mem_used)
@@ -710,10 +727,17 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 	   ENDIF
 
 * ... increment number of lines on plot
-!	   nline_on     = nline_on     + 1
 	   nline_in_mem = nline_in_mem + 1
-
 	   npoly = npoly + 1
+	   ngood = ngood + 1
+	   x_dat(nsiz+npoly) = 1.  ! flag for use with color array: poly skipped?
+
+	   IF (missing_polygon .AND. has_time_axis .AND. overlay) THEN
+	      nline_in_mem = nline_in_mem - 1
+	      ngood = ngood - 1
+	      x_dat(nsiz+npoly) = -99  ! flag for use with color array: poly skipped
+	   ENDIF
+
 	GOTO 200	! end of DO-WHILE loop
  290	IF (npoly .EQ. 0 ) GOTO 5230
 
@@ -738,7 +762,7 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 	   x_dat(1) = 0.0
 	else
 	   CALL EXTRACT_LINE (	cx_color,
-     .				memory( 1, mr_blk1(mr_color) ),
+     .				memry(mr_color)%ptr,
      .				mr_color,
      .				x_dat,
      .				color_dim,
@@ -751,8 +775,20 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 	   DO 300 ipoly = 1, npoly
  300	   x_dat(ipoly) = x_dat(1)	! single color applied to all pol'gs
 	   ncolor = npoly
+
+* for time-axis overlays, mising-polygons are not loaded. Account for that in the color array.
+	ELSEIF (ncolor.GT.ngood .AND. has_time_axis .AND. overlay) THEN
+	   nc = 0
+	   DO ipoly = 1, ncolor
+	      IF (x_dat(nsiz+ipoly) .NE. -99.) THEN
+	         nc = nc + 1
+		 x_dat(nc) = x_dat(ipoly)
+	      ENDIF
+	   ENDDO
+	   ncolor = nc
+	ELSE
+	   IF (ncolor .NE. npoly) GOTO 5220	! color array length wrong
 	ENDIF
-	IF (ncolor .NE. npoly) GOTO 5220	! color array length wrong
 
 * pass back a summary about the range of colors
 	no_range = NO_LINE_RANGE(x_dat,
@@ -767,14 +803,16 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 * If needed for the levels setting, compute data mean and std, store
 * in common.  If the user set a std to use, store that.
 * send  REAL*4 rbad to compare with lev_max, lev_min inside compute_mnstd
+* If the user set some /LEVELS then compute_mnstd just returns
 
        rbad = bad_val4
        CALL compute_mnstd (x_dat, mr_bad_data(mr_color), need_std, 
      .    ncolor, rbad, status)
-       IF (status .NE. ferr_ok) THEN
+       IF (need_std .AND. status.NE.ferr_ok) THEN
 * ... set up for automatic levels
-	   CALL PPLCMD ( from, line, 0, 'LEV,()', 1, 1 )
+          CALL PPLCMD ( from, line, 0, 'LEV,()', 1, 1 )
           CALL USE_LINEAR_LEVELS
+          status = ferr_ok
        ENDIF
 
 * If histogram-based levels are requested, compute the 
@@ -785,10 +823,9 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 
 	  CALL CREATE_TEMP_MEM_VAR( cx_x, mvh_temp, status )
 	  IF ( status .NE. ferr_ok ) RETURN
-	  hblk1 = mr_blk1( mvh_temp )
           plot_mem_used = plot_mem_used + ncolor
 
-	  CALL compute_histo_bins (x_dat, memory(1,hblk1), 
+	  CALL COMPUTE_HISTO_BINS (x_dat, memry(mvh_temp)%ptr, 
      .       mr_bad_data(mr_color), ncolor, status) 
 
 * ... clean up temporary variable
@@ -838,7 +875,7 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 * ... extract 1-dimensional arrays -- possibly with embedded missing values
 * ... x coordinates
 	   CALL EXTRACT_LINE (	cx_buff_x,
-     .				memory( 1, mr_blk1(mr_x) ),
+     .				memry(mr_x)%ptr,
      .				mr_x,
      .				x_dat,
      .				coord_dim,
@@ -848,7 +885,7 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 	   IF ( status .NE. ferr_ok ) GOTO 5000
 * ... y coordinates
 	   CALL EXTRACT_LINE (	cx_buff_y,
-     .				memory( 1, mr_blk1(mr_y) ),
+     .				memry(mr_y)%ptr,
      .				mr_y,
      .				y_dat,
      .				coord_dim,
@@ -981,7 +1018,7 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 *  Check for valid log axis before proceeding if log and limits are given
 	      IF (is_logx) THEN
 	          CALL AXIS_ENDS(x_ax, coord_dim, cx_grid(cx_x), vmin, 
-     .			     vmax, delta, x_is_log, x_axtyp, status )
+     .			     vmax, delta, x_is_log, x_axtyp, vflag, status )
 	         IF ( status .NE. ferr_ok ) THEN
                     first = vmin
                     last  = vmax
@@ -996,7 +1033,7 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 	      IF ( status .NE. ferr_OK ) GOTO 5000
 
               CALL AXIS_ENDS(x_ax, coord_dim, cx_grid(cx_x), vmin, 
-     .			     vmax, delta, x_is_log, x_axtyp, status )
+     .			     vmax, delta, x_is_log, x_axtyp, vflag, status )
 		 IF ( status .NE. ferr_ok ) THEN
 		 first = vmin
 		 last = vmax
@@ -1008,7 +1045,7 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 * ... no data range -- provide artifical axis limits
               CALL AXIS_ENDS(x_ax, coord_dim, cx_grid(cx_x),
      .			DBLE(lox-1.0), DBLE(lox+1.0), 0.5D0, x_is_log, 
-     .			x_axtyp, status )
+     .			x_axtyp, vflag, status )
 	      IF ( status .NE. ferr_ok ) THEN
 		 first = lox-1.0
 		 last = lox+1.0
@@ -1016,7 +1053,7 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 	      ENDIF
 	   ELSE
               CALL AXIS_ENDS(x_ax,coord_dim,cx_grid(cx_x),
-     .	       DBLE(lox),DBLE(hix), delta, x_is_log, x_axtyp, status )
+     .	       DBLE(lox),DBLE(hix), delta, x_is_log, x_axtyp, vflag, status )
 	      IF ( status .NE. ferr_ok ) THEN
 		 first = lox
 		 last = hix
@@ -1057,7 +1094,7 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 *  Check for valid log axis before proceeding if log and limits are given
 	      IF (y_is_log) THEN 
                  CALL AXIS_ENDS(y_ax,coord_dim,cx_grid(cx_y),
-     .			     vmin,vmax,delta, y_is_log, y_axtyp, status )
+     .			     vmin,vmax,delta, y_is_log, y_axtyp, vflag, status )
 	         IF ( status .NE. ferr_ok ) THEN
 		    first = vmin
 		    last = vmax
@@ -1071,7 +1108,7 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
      .			formatted, range_rqd, cal_id, status )
 	      IF ( status .NE. ferr_OK ) GOTO 5000
               CALL AXIS_ENDS(y_ax,coord_dim,cx_grid(cx_y),
-     .			     vmin,vmax,delta, y_is_log, y_axtyp, status )
+     .			     vmin,vmax,delta, y_is_log, y_axtyp, vflag, status )
 	      IF ( status .NE. ferr_ok ) THEN
 		 first = vmin
 		 last = vmax
@@ -1082,7 +1119,7 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 * ... no data range -- provide artifical axis limits
               CALL AXIS_ENDS(y_ax,coord_dim,cx_grid(cx_y),
      .			DBLE(loy-1.0),DBLE(loy+1.0), 0.5D0, y_is_log, 
-     .			y_axtyp, status )
+     .			y_axtyp, vflag, status )
 	      IF ( status .NE. ferr_ok ) THEN
 		 first = loy-1.0
 		 last = loy+1.0
@@ -1090,7 +1127,7 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
 	      ENDIF
 	   ELSE
               CALL AXIS_ENDS(y_ax,coord_dim,cx_grid(cx_y),
-     .		DBLE(loy),DBLE(hiy), delta, y_is_log, y_axtyp, status )
+     .		DBLE(loy),DBLE(hiy), delta, y_is_log, y_axtyp, vflag, status )
 	      IF ( status .NE. ferr_ok ) THEN
 		 first = loy
 		 last = hiy
@@ -1182,7 +1219,7 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
               IF ( status .NE. ferr_ok ) GOTO 5000
 	      slen = TM_LENSTR1( plot_title )
 	   ELSE
-	      plot_title = FULL_VAR_TITLE( cx_color, slen )
+	      plot_title = FULL_VAR_TITLE( cx_color, do_units, slen )
 	   ENDIF
 	   CALL BOX_LABEL( ppl_title,
      .			 plot_title(:slen),
@@ -1191,7 +1228,7 @@ c	   IF ( npoly         .GE. NPOLYGON   ) GOTO 5160
      .			 lab_loc_absolute, lab_loc_absolute )
 * ... label axis labels:  units from the polygon coordinates
 
-	   plot_title = FULL_VAR_TITLE( cx_x, slen )
+	   plot_title = FULL_VAR_TITLE( cx_x, do_units, slen )
 
 C	   plot_title = VAR_UNITS( cx_x )
 C	   slen = TM_LENSTR1( plot_title )
@@ -1201,7 +1238,7 @@ C	   slen = TM_LENSTR1( plot_title )
      .			 dflt_letsize_label*textscale, ppl_centered,
      .			 lab_loc_absolute, lab_loc_absolute )
 
-	   plot_title = FULL_VAR_TITLE( cx_y, slen )
+	   plot_title = FULL_VAR_TITLE( cx_y, do_units, slen )
 
 C	   plot_title = VAR_UNITS( cx_y )
 C	   slen = TM_LENSTR1( plot_title )
diff --git a/fer/plt/put_annotation.F b/fer/plt/put_annotation.F
index ee6f4b2..bd3f2ab 100644
--- a/fer/plt/put_annotation.F
+++ b/fer/plt/put_annotation.F
@@ -94,4 +94,4 @@
  3200	FORMAT('LABS/NOUSER ', I3)
  3300	FORMAT('LABS/USER ', I3)
 
-	END
\ No newline at end of file
+	END
diff --git a/fer/plt/save_frame.F b/fer/plt/save_frame.F
index 74d606a..1aa45b2 100644
--- a/fer/plt/save_frame.F
+++ b/fer/plt/save_frame.F
@@ -1,4 +1,4 @@
-        SUBROUTINE SAVE_FRAME(memory, filename, fformat, annovar,
+        SUBROUTINE SAVE_FRAME(filename, fformat, annovar,
      .                        xinches, yinches, xpixels, ypixels, sts)
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -56,10 +56,10 @@
 *                     from logical to integer, then batch = ITS_BATCH_GRAPHICS().NE.0
 * PyFr  *kms*  7/13 Add /XPIXELS, /YPIXELS, /XINCHES, /YINCHES to FRAME
 * PyFr  *kms*  8/13 Add /ANNOTATE to FRAME; include memory argument
+* PyFr  *kms*  4/17 Revised for new memory management
 
 * calling argument declarations:
         IMPLICIT NONE
-        REAL memory(*)
         CHARACTER*(*) filename, fformat, annovar
         REAL*4 xinches, yinches
         INTEGER xpixels, ypixels, sts
@@ -67,12 +67,6 @@
 * function return value declarations
         INTEGER TM_LENSTR
 
-* internal variable declarations:
-        INTEGER windowid, namlen, fmtlen, success, errstrlen, 
-     .          mr, cx, k, memlo, memhi, steplo, stephi, 
-     .          firststr, numstr
-        CHARACTER*2048 errstr
-
         INCLUDE 'tmap_dims.parm'
         INCLUDE 'ferret.parm'
         INCLUDE 'errmsg.parm'
@@ -81,6 +75,12 @@
         INCLUDE 'xvariables.cmn'
         INCLUDE 'fgrdel.cmn'
 
+* internal variable declarations:
+        TYPE(mem_table_slot) :: firststr
+        INTEGER windowid, namlen, fmtlen, success, errstrlen, 
+     .          mr, cx, k, memlo, memhi, steplo, stephi, numstr
+        CHARACTER*2048 errstr
+
         namlen = TM_LENSTR(filename)
         fmtlen = TM_LENSTR(fformat)
 
@@ -101,15 +101,16 @@
 *       Get the annotation strings to add at the top
         IF ( annovar .NE. ' ' ) THEN
 *           Get the string array given by the variable named in annovar
-            CALL GET_FER_COMMAND(memory, 'LOAD ' // annovar, sts, *5200)
+            CALL GET_FER_COMMAND('LOAD ' // annovar, sts, *5200)
             IF ( sts .NE. FERR_OK ) GOTO 5200
 *           Get the string data into memory
-            CALL GET_CMND_DATA(memory, cx_last, ptype_string, sts)
+            CALL GET_CMND_DATA(cx_last, ptype_string, sts)
             IF ( sts .NE. FERR_OK ) GOTO 5200
             mr = is_mr(isp)
             cx = is_cx(isp)
+
 *           Starting place in memory for this array of pointers to C strings
-            firststr = (mr_blk1(mr) - 1) * mem_blk_size
+            firststr = memry(mr)
 *           If the whole array was not specified, a new copy of the data
 *           has been made in memory with unit increments (or so it appears).
             numstr = 0
@@ -131,14 +132,14 @@
   120       CONTINUE
             IF ( numstr .LE. 0 ) GOTO 5400
         ELSE
-            firststr = 0
             numstr = 0
+*           firststr not used by fgdwinsave
         ENDIF
 
         CALL FGDWINSAVE(success, windowobjs(windowid), filename,
      .                  namlen, fformat, fmtlen, transparent, 
      .                  xinches, yinches, xpixels, ypixels,
-     .                  memory, firststr, numstr)
+     .                  firststr, numstr)
         IF ( success .EQ. 0 ) GOTO 5100
 
 * successful completion
@@ -151,8 +152,6 @@
         CALL ERRMSG(ferr_invalid_command, sts, errstr, *5000)
  5200   errstr = 'problems evaluating ' // annovar
         CALL ERRMSG(ferr_invalid_command, sts, errstr, *5000)
- 5300   errstr = annovar//' is not a string array'
-        CALL ERRMSG(ferr_invalid_command, sts, errstr, *5000)
  5400   errstr = annovar//' is not a valid string array'
         CALL ERRMSG(ferr_invalid_command, sts, errstr, *5000)
  
diff --git a/fer/plt/set_pytext_group.F b/fer/plt/set_pytext_group.F
index 31f6c0f..31219f3 100644
--- a/fer/plt/set_pytext_group.F
+++ b/fer/plt/set_pytext_group.F
@@ -42,14 +42,18 @@
 	INTEGER	igrp, status
 	CHARACTER*(*) buff1 
 
+	LOGICAL font_hershey
 	INTEGER TM_LENSTR1, STR_SAME, llen, slen, ii, loc
 	REAL	val_buf
-	CHARACTER arg*24, errstrng*20
+	CHARACTER errstrng*20
 
 * Settings for all text
 
       IF (igrp .EQ. fnt_all) THEN
 
+
+	font_hershey = (STR_SAME(pyfnt_fontname, 'hershey') .EQ. 0)
+
 c* ... SET TEXT/FONT
 	IF ( qual_given( slash_set_text_font ) .GT. 0 ) THEN
            loc = qual_given( slash_set_text_font )
@@ -58,10 +62,21 @@ c* ... SET TEXT/FONT
      .			      buff1, status )
               IF ( status .NE. ferr_ok ) RETURN
 	      IF ( buff1 .EQ. ' ' ) GOTO 5440
+	      font_hershey = (STR_SAME(buff1, 'hershey') .EQ. 0)
 	      pyfnt_fontname = buff1
+
 	   ENDIF
 	ENDIF
 
+* The following settings apply only if we've set a non-Hershey font
+
+	IF (font_hershey) THEN
+	   IF (qual_given( slash_set_text_italic ) .GT. 0  .OR.
+     .         qual_given( slash_set_text_bold )   .GT. 0  .OR. 
+     .         qual_given( slash_set_text_isiz )   .GT. 0  .OR. 
+     .         qual_given( slash_set_text_color )  .GT. 0 ) GOTO 5430
+	ENDIF
+
 * ... SET TEXT/COLOR
 *     % rgb or color names black,red,green,blue,lightblue,purple,white or color #
 
@@ -77,12 +92,12 @@ c* ... SET TEXT/FONT
 	ENDIF 
 
 * ... SET TEXT/ITALIC
-	IF ( qual_given( slash_set_text_italic ) .GT. 0 ) THEN	
+	IF ( qual_given( slash_set_text_italic ) .GT. 0 ) THEN
 	   pyfnt_italic = 1
 	ENDIF
 
 * ... SET TEXT/BOLD
-	IF ( qual_given( slash_set_text_bold ) .GT. 0 ) THEN	
+	IF ( qual_given( slash_set_text_bold ) .GT. 0 ) THEN
 	   pyfnt_bold = 1
 	ENDIF
 
@@ -97,7 +112,7 @@ c* ... SET TEXT/FONT
 	   
            ii = INT(val_buf)
            IF (ii.LT.-4 .OR. ii.GT.4) GOTO 5460
-           pyfnt_isiz = ii
+	   pyfnt_isiz = ii
 	ENDIF
 
 * Set the group settings to the default values and unset pyf_set
@@ -115,7 +130,7 @@ c* ... SET TEXT/FONT
  1000	CONTINUE
 
       ELSE  ! group settings
-
+      
 * If there were not previous settings on this group, first apply the
 * current global settings to this group
 
@@ -132,6 +147,8 @@ c* ... SET TEXT/FONT
 * Read arguments for /COLOR=, /FONT=, and /ISIZE=
 
 c* ... SET TEXT/FONT
+        font_hershey = (STR_SAME(pyf_fontname(igrp), 'hershey') .EQ. 0)
+
 	IF ( qual_given( slash_set_text_font ) .GT. 0 ) THEN
            loc= qual_given( slash_set_text_font )
 	   IF ( loc.GT. 0 ) THEN
@@ -139,10 +156,22 @@ c* ... SET TEXT/FONT
      .			      buff1, status )
               IF ( status .NE. ferr_ok ) RETURN
 	      IF ( buff1 .EQ. ' ' ) GOTO 5440
+
+	      font_hershey = (STR_SAME(buff1, 'hershey') .EQ. 0)
+	      IF (font_hershey) GOTO 5430
 	      pyf_fontname(igrp) = buff1
 	   ENDIF
 	ENDIF
 
+* The following settings apply only if we've set a non-Hershey font
+	
+	IF (font_hershey) THEN
+	   IF (qual_given( slash_set_text_italic ) .GT. 0  .OR.
+     .         qual_given( slash_set_text_bold )   .GT. 0  .OR. 
+     .         qual_given( slash_set_text_isiz )   .GT. 0  .OR. 
+     .         qual_given( slash_set_text_color )  .GT. 0 ) GOTO 5430
+	ENDIF
+
 * ... SET TEXT/COLOR
 *     % rgb or color names black,red,green,blue,lightblue,purple,white or color #
 
@@ -164,7 +193,7 @@ c* ... SET TEXT/FONT
 	ENDIF
 
 * ... SET TEXT/BOLD
-	IF ( qual_given( slash_set_text_bold ) .GT. 0 ) THEN	
+	IF ( qual_given( slash_set_text_bold ) .GT. 0 ) THEN
 	   pyf_bold(igrp) = 1
 	ENDIF
 
@@ -176,7 +205,6 @@ c* ... SET TEXT/FONT
            CALL EQUAL_VAL( cmnd_buff(qual_start(loc):qual_end(loc)),
      .                     val_buf, status )
            IF ( status .NE. ferr_ok ) GOTO 5450
-	   
            ii = INT(val_buf)
            IF (ii.LT.-4 .OR. ii.GT.4) GOTO 5460
            pyf_isiz(igrp) = ii
@@ -192,21 +220,38 @@ c* ... SET TEXT/FONT
 
 * If there were errors, cancel any settings made above
  5100	CALL CANCEL_PYTEXT_GROUP (igrp)
-	pyf_set(igrp) = .FALSE.
-	RETURN
+	IF (igrp .NE. fnt_all) pyf_set(igrp) = .FALSE.
+	GOTO 5000
+
+ 5430	CONTINUE
+* Set the global and group settings to the default values and unset any group settings.
+	CALL CANCEL_PYTEXT_GROUP (igrp)
+	errstrng = 'SET TEXT'
+	slen = TM_LENSTR1(errstrng)
+        llen = TM_LENSTR1(buff1)
+	CALL ERRMSG( ferr_invalid_command, status,
+     .			errstrng(:slen)//
+     .			' Font is Hershey. No other SET TEXT settings apply.', *5000 )
 
  5440   CALL ERRMSG( ferr_invalid_command, status,
      .			'SET TEXT/FONT=what? See Unix system fonts ', *5000 )
+
  5450   errstrng = 'SET TEXT'
 	slen = TM_LENSTR1(errstrng)
         llen = TM_LENSTR1(buff1)
 	CALL ERRMSG( ferr_invalid_command, status,
      .			errstrng(:slen)//'=what? ', *5100 )
+
  5460   errstrng = 'SET TEXT'
+*       Get the isize that was given, as a string
+	loc = qual_given(slash_set_text_isiz)
+	CALL EQUAL_STR_LC( cmnd_buff(qual_start(loc):qual_end(loc)),
+     .                     buff1, status )
 	slen = TM_LENSTR1(errstrng)
         llen = TM_LENSTR1(buff1)
 	CALL ERRMSG( ferr_out_of_range, status, 
      .                  buff1(:llen)//pCR//errstrng//
-     .			' argument must be between -4 and 4', 
+     .			'ISIZ argument must be between -4 and 4',
      .			*5100 )
+
 	END
diff --git a/fer/plt/set_window.F b/fer/plt/set_window.F
index af3f695..98863b8 100644
--- a/fer/plt/set_window.F
+++ b/fer/plt/set_window.F
@@ -97,6 +97,7 @@
 *                   set physical_chg to .TRUE. if START_PPLUS called or 
 *                   if the engine changes
 * V69x *sh* 21/1/15 clarify data type of arguments sent to QUERY_DISPLAY_SIZE
+* V7   *kms*  10/16 Add SET WINDOW /SCALE=
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -147,7 +148,8 @@
      .          slash_opacity,
      .          slash_thicken,
      .          slash_textprom,
-     .          slash_outline
+     .          slash_outline,
+     .          slash_scale
 	PARAMETER ( slash_new      =  1+1,
      .              slash_clear    =  4+1,
      .              slash_title    =  5+1,
@@ -159,7 +161,8 @@
      .              slash_opacity  = 11+1,
      .              slash_thicken  = 12+1,
      .              slash_textprom = 17+1,
-     .              slash_outline  = 18+1 )
+     .              slash_outline  = 18+1,
+     .              slash_scale    = 19+1 )
 
 	rzero = 0.0
 	rone = 1.0
@@ -408,11 +411,14 @@ c 75        CONTINUE
 *          compute the scaling factor using both height and width.
            xsc = xpixels / (xinches * windowdpix(n))
            ysc = ypixels / (yinches * windowdpiy(n))
-           sc = SQRT(xsc * ysc)
+*          negative value means set the scale to the absolute value 
+*          and then turn on auto-scaling
+           sc = -1.0 * SQRT(xsc * ysc)
            CALL FGD_SEND_IMAGE_SCALE(n, sc)
 
-*          Save xpixels and ypixels only for specifying the default
-*          size when saving raster graphics.
+*          Save xpixels and ypixels for specifying the default size 
+*          when saving raster graphics as well as values for 
+*          PPL$XPIXEL and PPL$YPIXEL
            wn_xpixels(n) = xpixels
            wn_ypixels(n) = ypixels
 
@@ -471,6 +477,16 @@ c 75        CONTINUE
             CALL FGD_SET_OUTLINE_WIDTH(n, owd)
         ENDIF
 
+* set scaling factor used in the viewer?
+        qp = qual_given(slash_scale)
+        IF ( qp .GT. 0 ) THEN
+            CALL EQUAL_VAL(cmnd_buff(qual_start(qp):qual_end(qp)), 
+     .                     scl, status)
+            IF ( status .NE. ferr_ok ) RETURN
+            sc = scl
+            CALL FGD_SEND_IMAGE_SCALE(n, sc)
+        ENDIF
+
 * background color will always use color number zero
         bkgcolor = 0
 * background color specified?
diff --git a/fer/plt/start_pplus.F b/fer/plt/start_pplus.F
index 319ee64..fc5f90a 100644
--- a/fer/plt/start_pplus.F
+++ b/fer/plt/start_pplus.F
@@ -165,9 +165,12 @@
            BSIZE = 0.0
            CALL SIZE(width, height)
 *          set the default scaling factor for the scene - SQRT(0.7)
+*          the negative value means to scale using the absolute value
+*          then switch to autoscaling
            sc = dflt_imgscale
            wn_xpixels(wsid) = wn_xinches(wsid) * windowdpix(wsid) * sc
            wn_ypixels(wsid) = wn_yinches(wsid) * windowdpiy(wsid) * sc
+           sc = -1.0 * sc
            CALL FGD_SEND_IMAGE_SCALE(wsid, sc)
         ENDIF
 
diff --git a/fer/plt/taxis_style.F b/fer/plt/taxis_style.F
index 7a36771..8ef43d9 100644
--- a/fer/plt/taxis_style.F
+++ b/fer/plt/taxis_style.F
@@ -57,6 +57,9 @@
 * V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
 * V695+ *sh*  3/15 Added argument "imposed_lab" to disambiguate F and T axes
 * V695  *acm*  9/15 Changes for hour:min labeling on time axes
+* V710 *acm*  8/16 Change the span for labeling year axes with months
+* V710  *acm* 11/16 Ticket 2483: Fix the axis-end symbols that are defined 
+*                   for time axis plots
 
 	include 'ferret.parm'
 	include 'plot_setup.parm'
@@ -65,7 +68,6 @@
         include 'axis_inc.decl'	! with axis lengths
         include 'AXIS.INC'      ! with axis lengths	
 
-
 * calling argument declarations:
 	CHARACTER	x_or_y*1, tstyle*3
 	CHARACTER*(*)	imposed_lab
@@ -79,7 +81,7 @@
 
 * internal variable declarations:
 	LOGICAL		climatology, its_x
-	INTEGER		TM_LENSTR1, itax, hi_int, slen, i1, i2
+	INTEGER		TM_LENSTR1, TM_LENSTR, itax, hi_int, slen, ilen, i1, i2
 	CHARACTER	ppl_cmnd*128, tstyle_long*10, buff30*30, buff*10
 	REAL		hrs, hrsper8, axlen, labsize
 
@@ -109,11 +111,11 @@
      .		tax_style(5)	/  'YR'	/,
      .		tax_loint(5)	/    1	/,
      .		tax_hiint(5)	/    1	/
-	DATA	tax_hours(6)	/100800./,	! 5 to 12 year long axis
+	DATA	tax_hours(6)	/84000./,	! 5 to 10 year long axis
      .		tax_style(6)	/  'YR'	/,
      .		tax_loint(6)	/    3	/,
      .		tax_hiint(6)	/    1	/
-	DATA	tax_hours(7)	/144000./,	! 12 to 17 year long axis
+	DATA	tax_hours(7)	/144000./,	! 10 to 17 year long axis
      .		tax_style(7)	/  'YR'	/,
      .		tax_loint(7)	/    0	/,
      .		tax_hiint(7)	/    2	/
@@ -165,6 +167,9 @@
 	   axlen = ylen
 	ENDIF
 
+*	
+	ilen = TM_LENSTR(imposed_lab)
+
 * regard axis as climatological if it starts in year 0000 or 0001 and
 * extends less than 2 years
 	climatology = lo_bc .LE. psecs_at_2_yrs
@@ -213,7 +218,7 @@
 	CALL PPLCMD ( from, line, 0, ppl_cmnd, 1, 1 )
 
 * special "imposed" labels (used to disambiguate T and F axes)
-	IF (imposed_lab .NE. ' ') THEN
+	IF (ilen.GT.0 .AND. imposed_lab .NE. ' ') THEN
 	   slen = TM_LENSTR1(imposed_lab)
        labsize = dflt_letsize_label * textscale
 	   IF ( its_x ) THEN
diff --git a/fer/plt/whoi_date.F b/fer/plt/whoi_date.F
index 4905ed1..64f1cd1 100644
--- a/fer/plt/whoi_date.F
+++ b/fer/plt/whoi_date.F
@@ -49,10 +49,12 @@
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 *                  A time axis may be a T axis or F axis
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
+        include 'xunits.cmn_text'
 	include 'ferret.parm'
 
 * calling argument declarations
@@ -60,6 +62,7 @@
 	REAL*8	tstep
 
 * internal variable declarations
+	LOGICAL		ITSA_TRUEMONTH_AXIS
 	INTEGER 	yr100, yr, mon, day, hr, min, sec,
      .			status, i, axis
 	INTEGER		TM_GET_CALENDAR_ID, cal_id
@@ -86,6 +89,9 @@
 * Find the number of seconds since start of data set for this time step
 	offset_secs = tstep*line_tunit( axis )
 
+* A true-month axis has line-units of month, but output units of days
+	IF (ITSA_TRUEMONTH_AXIS(axis)) offset_secs = tstep* un_convert(pun_day)
+
 * Total seconds to this time step since 01-JAN-0000 00:00:00
 	this_secs = start_secs + offset_secs
 
diff --git a/fer/pyf/check_line_subset.F b/fer/pyf/check_line_subset.F
index d66adf7..d6d4330 100644
--- a/fer/pyf/check_line_subset.F
+++ b/fer/pyf/check_line_subset.F
@@ -140,7 +140,7 @@
    60     CONTINUE
 *         Successfully found the irregular axis
           axisstart = j
-          axisend = i
+          axisend = j + numcoords - 1
           CHECK_LINE_SUBSET = .TRUE.
           RETURN
       ENDIF
diff --git a/fer/pyf/check_time_line_subset.F b/fer/pyf/check_time_line_subset.F
index 7cd4ea2..511ec1d 100644
--- a/fer/pyf/check_time_line_subset.F
+++ b/fer/pyf/check_time_line_subset.F
@@ -173,7 +173,7 @@
   160     CONTINUE
 *         Successfully found the irregular axis
           axisstart = j
-          axisend = i
+          axisend = j + numcoords - 1
           CHECK_TIME_LINE_SUBSET = .TRUE.
           RETURN
       ENDIF
diff --git a/fer/pyf/get_data_array_params.F b/fer/pyf/get_data_array_params.F
index cb68cdb..ac84d9e 100644
--- a/fer/pyf/get_data_array_params.F
+++ b/fer/pyf/get_data_array_params.F
@@ -39,10 +39,8 @@
 * Input:
 *     datnam - description of the data array to retrieve
 *     lennam - actual length of datnam
-*     memory - ferret memory
 *
 * Output:
-*     start - offset into memory giving the start of the data array
 *     memlo, memhi - array dimensions
 *                    (memlo() = memhi() = -999 for invalid axes)
 *     steplo, stephi, incr - step values for the actual data requested
@@ -53,7 +51,7 @@
 *     errmsg - error message if an error occurs
 *     lenerr - actual length of errmsg, will be zero if and only if no errors
 *
-      SUBROUTINE GET_DATA_ARRAY_PARAMS(datnam, lennam, memory, start,
+      SUBROUTINE GET_DATA_ARRAY_PARAMS(datnam, lennam, arraystart,
      .                          memlo, memhi, steplo, stephi, incr,
      .                          datunit, lendatunit, axtyp, badflg,
      .                          errmsg, lenerr)
@@ -70,12 +68,13 @@
       INCLUDE 'pyferret.parm'
 
 *     Passed arguments
+      TYPE(mem_table_slot) :: arraystart
       CHARACTER*(*) datnam, datunit, errmsg
-      INTEGER       lennam, start, lenerr, lendatunit,
+      INTEGER       lennam, lenerr, lendatunit,
      .              memlo(nferdims), memhi(nferdims),
      .              steplo(nferdims), stephi(nferdims),
      .              incr(nferdims), axtyp(nferdims)
-      REAL          memory(*), badflg
+      REAL*8        badflg
 
 *     Function declarations
       INTEGER TM_LENSTR
@@ -86,10 +85,10 @@
       INTEGER sts, mr, cx, k, cmnd_stack_level, grid, line
 
 *     Use GET_FER_COMMAND with a LOAD command to deal with parsing the data description
-      CALL GET_FER_COMMAND(memory, 'LOAD ' // datnam(1:lennam), sts, *1000)
+      CALL GET_FER_COMMAND('LOAD ' // datnam(1:lennam), sts, *1000)
 
 *     Get the data into memory
-      CALL GET_CMND_DATA(memory, cx_last, ptype_float, sts)
+      CALL GET_CMND_DATA(cx_last, ptype_float, sts)
       IF ( sts .NE. FERR_OK ) THEN
            GOTO 1000
       ENDIF
@@ -97,8 +96,7 @@
       mr = is_mr(isp)
       cx = is_cx(isp)
 
-*     Starting place in memory for this array
-      start = (mr_blk1(mr) - 1) * mem_blk_size
+      arraystart = memry(mr)
 
 *     Step values for this array.
 *     If the whole array was not requested, a new copy of the data
diff --git a/fer/pyf/get_str_data_array_params.F b/fer/pyf/get_str_data_array_params.F
index fe0919e..42c745e 100644
--- a/fer/pyf/get_str_data_array_params.F
+++ b/fer/pyf/get_str_data_array_params.F
@@ -51,8 +51,8 @@
 *     errmsg - error message if an error occurs
 *     lenerr - actual length of errmsg, will be zero if and only if no errors
 *
-      SUBROUTINE GET_STR_DATA_ARRAY_PARAMS(datnam, lennam, memory, 
-     .                          start, memlo, memhi, steplo, stephi, 
+      SUBROUTINE GET_STR_DATA_ARRAY_PARAMS(datnam, lennam, arraystart,
+     .                          memlo, memhi, steplo, stephi, 
      .                          incr, axtyp, errmsg, lenerr)
       IMPLICIT NONE
 
@@ -67,12 +67,12 @@
       INCLUDE 'pyferret.parm'
 
 *     Passed arguments
+      TYPE(mem_table_slot) :: arraystart
       CHARACTER*(*) datnam, errmsg
-      INTEGER       lennam, start, lenerr, 
+      INTEGER       lennam, lenerr, 
      .              memlo(nferdims), memhi(nferdims),
      .              steplo(nferdims), stephi(nferdims),
      .              incr(nferdims), axtyp(nferdims)
-      REAL          memory(*)
 
 *     Function declarations
       INTEGER TM_LENSTR
@@ -82,10 +82,10 @@
       INTEGER sts, mr, cx, k, cmnd_stack_level, grid, line
 
 *     Use GET_FER_COMMAND with a LOAD command to deal with parsing the data description
-      CALL GET_FER_COMMAND(memory, 'LOAD ' // datnam(1:lennam), sts, *1000)
+      CALL GET_FER_COMMAND('LOAD ' // datnam(1:lennam), sts, *1000)
 
 *     Get the data into memory
-      CALL GET_CMND_DATA(memory, cx_last, ptype_string, sts)
+      CALL GET_CMND_DATA(cx_last, ptype_string, sts)
       IF ( sts .NE. FERR_OK ) THEN
            GOTO 1000
       ENDIF
@@ -93,8 +93,7 @@
       mr = is_mr(isp)
       cx = is_cx(isp)
 
-*     Starting place in memory for this array
-      start = (mr_blk1(mr) - 1) * mem_blk_size
+      arraystart = memry(mr)
 
 *     Step values for this array.
 *     If the whole array was not requested, a new copy of the data
diff --git a/fer/rpn/alg_id.F b/fer/rpn/alg_id.F
index 780d456..9478211 100644
--- a/fer/rpn/alg_id.F
+++ b/fer/rpn/alg_id.F
@@ -66,6 +66,7 @@
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V685+ 12/13 *acm*  bounds checking: tm_digit needs more care in the argument sent in.
 * V693+ 12/14 *sh* allow _QD_ and _SQ_ for quotation alternatives 
+* V720: 4/17 *acm* Add direction-changing functions as a subset of grid-changing ones
 
         include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -81,11 +82,12 @@
 	CHARACTER*(*)	text
 
 * internal variable declarations:
-	LOGICAL		TM_DIGIT, TM_LEGAL_NAME, is_digit, single_quoted
+	LOGICAL		TM_DIGIT, TM_LEGAL_NAME, ITSA_DIRC_FCN, 
+     .			is_digit, single_quoted
 	INTEGER		STR_MATCH, GCF_FIND_FCN, TM_LENSTR1,
      .			imatch, i, i2, j, brac_pos, aend,
      .			num_indices, dot, new_nat, first, second, slen
-        CHARACTER*128   varname
+        CHARACTER*512   varname
         
         new_nat = 0
 
@@ -122,6 +124,7 @@
 	   imatch = GCF_FIND_FCN( text(at_start(i):at_end(i)) )
 	   IF ( imatch .NE. unspecified_int4 ) THEN
 	      at_type(i) = alg_grid_chg_fcn
+	      IF (ITSA_DIRC_FCN(imatch) ) at_type(i) = alg_dir_chg_fcn
 	      at_id(i)   = imatch
 	      GOTO 100
 	   ENDIF
diff --git a/fer/rpn/break_up_expr.F b/fer/rpn/break_up_expr.F
index 8717582..ca8831e 100644
--- a/fer/rpn/break_up_expr.F
+++ b/fer/rpn/break_up_expr.F
@@ -61,6 +61,7 @@
 *                  spelling of user-var names (no other changes in this routine).
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V685+ 12/13    - *acm*  bounds checking; dont refer to parts of the string outside its bounds.
+* V710 9/16  *acm* ticket 2465: Parsing expressions including attribute references.
 
         include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -79,7 +80,8 @@
 
 * internal variable declarations:
 	LOGICAL its_remote
-	INTEGER	tlen, uvar, natom, i, paren_level, at1,
+	INTEGER	TM_LENSTR1,
+     .		tlen, uvar, natom, i, paren_level, at1,
      .		at_type  (maxatoms), at_id  (maxatoms),
      .		at_start (maxatoms), at_end (maxatoms),
      .		exp_start(max_exp), exp_end(max_exp),
@@ -113,9 +115,10 @@ c        tlen = MIN( size_rbuff, LEN(text) )
 * as an attribute of the dataset.  Here just gloss over this by
 * temporarily replacing the two dots with a string.
 
-	IF (LEN(text) .GT. 1) THEN
-           t2 = text(1:2)
-           IF (t2 .EQ. '..') text(1:2) = 'aa'
+	IF (LEN(text) .GT. 1 .AND. INDEX(text,'..') .GT. 0) THEN
+           DO ii = 1, TM_LENSTR1(risc_buff)-1
+              IF (text(ii:ii+1) .EQ. '..') text(ii:ii+1) = 'aa'
+	   ENDDO
 	ENDIF
 
 * a similar hack when the expression is (coordvar).attname 
@@ -156,14 +159,8 @@ c        tlen = MIN( size_rbuff, LEN(text) )
 
 * ----
 * Restore text before the hack
-	IF (LEN(text) .GT. 1) THEN
-           text(1:2) = t2
-	ENDIF
-        
-        IF (paren .GT. 0) THEN
-           text(startparen:startparen) = '('
-           text(paren:paren) = ')'
-        ENDIF
+
+	text = risc_buff
 
 	IF ( status .NE. ferr_ok ) GOTO 5100
 
diff --git a/fer/rpn/init_uvar.F b/fer/rpn/init_uvar.F
index ec4bbea..e2f7c1b 100644
--- a/fer/rpn/init_uvar.F
+++ b/fer/rpn/init_uvar.F
@@ -96,6 +96,9 @@
 * V694  *acm* 1214 Fixing ticket 2220: a variablename.attname argument to a function
 *                  needs to be added as a child variable
 * V699 *sh* 6/16 bail out code at 5900 needs to clean up child LIST structures
+* V720: 4/17 *acm* Add direction-changing functions as a subset of grid-changing ones
+*                  A new grid is defined for these at grid initialization time; it
+*                  will be changed later.
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'	
@@ -149,7 +152,7 @@
 * grid cannot necessarily be inferred from the component arguments.
  200	paren_level = 0
 	DO 300 iat = gcf_start(gcfstk)+1, natom
-	   IF ( at_type(iat).EQ. alg_grid_chg_fcn ) THEN
+	   IF ( at_type(iat).EQ.alg_grid_chg_fcn .OR.  at_type(iat).EQ.alg_dir_chg_fcn ) THEN
 * ... find the variable number for this "child variable"
 *     Note that for the simple non-nested case of LET v = GCF(arg, arg, ...)
 *     no child variables are needed - so at the end of this routine we clean
@@ -243,7 +246,8 @@
  800	CALL GCF_CHILD_VAR_NAME( uvar,
      .				 at_start(child_start)-(at_start(1)-1),
      .				 child_name )
-	itsa_gc = at_type(child_start) .EQ. alg_grid_chg_fcn
+	itsa_gc = at_type(child_start) .EQ. alg_grid_chg_fcn .OR. 
+     .            at_type(child_start) .EQ. alg_dir_chg_fcn
 
 	IF ( itsa_gc ) THEN
 	   uvar_child = gcf_uvar(gcfstk)
diff --git a/fer/rpn/init_uvar_sub.F b/fer/rpn/init_uvar_sub.F
index 69a8eb2..76c63eb 100644
--- a/fer/rpn/init_uvar_sub.F
+++ b/fer/rpn/init_uvar_sub.F
@@ -85,6 +85,8 @@
 *                  added to that dataset in the attribute structure.
 * V699  5/16 *sh* pass uvar to CD_ADD_VAR encoded as negative for a LET/D uvar
 *                 include EX# and child vars in the LIST structures
+* V710 *acm* 10/16 Ticket 2422: remove unneeded call to DEALLO_UVAR_GRIDS. 
+*                  Also clean up long-unused lines that were commented out.
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'	
@@ -271,30 +273,12 @@ c* copy title, units, dset, and missing flag into buffers
         uvar_ifv(uvar) = .FALSE.
         IF ( STR_SAME( uvar_text(uvar)(1:3), 'IFV' ) .EQ. 0 )  
      .      uvar_ifv(uvar) = .TRUE.
-        
-!* add a terminator to the end of the list of RPN-ordered atoms
-!	natom_rpn = natom_rpn + 1
-!	uvar_item_type (natom_rpn,uvar) = alg_finished
 
 * store number of items in definition
 *	uvar_num_items( uvar ) = natom_rpn
         CALL deleted_list_modify(uvar_num_items_head, uvar,
      .                           natom_rpn )
 
-!* 7/98 - remove surrounding single quotes from variable names
-! no - keep 'em in to signal special name -- use 'em in MATCH_NAME
-!	DO 310 i = 1, natom_rpn
-!	   IF ( uvar_item_type (i,uvar) .EQ. alg_variable ) THEN
-!	      is = uvar_item_start(i,uvar)
-!	      ie = uvar_item_end(i,uvar)
-!	      IF ( uvar_text(uvar)(is:is) .EQ.'\''
-!	1	   .AND. uvar_text(uvar)(ie:ie).EQ.'\'') THEN
-!		 uvar_item_start(i,uvar) = is + 1
-!		 uvar_item_end  (i,uvar) = ie - 1
-!	      ENDIF
-!	   ENDIF
-! 310	CONTINUE
-
 * by default assume the definition requires an external data set specification
 	uvar_need_dset( uvar ) = .TRUE.
 
@@ -312,10 +296,6 @@ c* copy title, units, dset, and missing flag into buffers
 	DO 330 idim = 1, nferdims
  330	uvar_mod_pseudo(idim,uvar) = .FALSE.
 
-* set grid to unknown (to be determined at "run time") for all data sets
-* and clear all references in memory to any associated dynamic grids
-	CALL DEALLO_UVAR_GRIDS( uvar )	
-
 * successful completion
 	status = ferr_ok
 	RETURN
diff --git a/fer/rpn/not_rpn.F b/fer/rpn/not_rpn.F
index 6bc5cec..5954f5e 100644
--- a/fer/rpn/not_rpn.F
+++ b/fer/rpn/not_rpn.F
@@ -52,6 +52,7 @@
 * V554 1/04 *acm* - add counter variables for named REPEAT/RANGE control
 * V671 7/11  *acm* Ticket 1868 IFV - masking expressions with ifValid, treating 
 *		   zero as valid. 
+* V720: 4/17 *acm* add direction-changing functions as a subset of grid-changing ones
 
 	include 'ferret.parm'
 	include 'errmsg.parm'
@@ -92,6 +93,7 @@
      .	   .OR.  atom_type(atom) .EQ. alg_function
      .	   .OR.  atom_type(atom) .EQ. alg_operator
      .	   .OR.  atom_type(atom) .EQ. alg_grid_chg_fcn
+     .	   .OR.  atom_type(atom) .EQ. alg_dir_chg_fcn
      .	   .OR.  atom_type(atom) .EQ. alg_child_var
      .	   .OR.  atom_type(atom) .EQ. alg_string
      .	   .OR.  atom_type(atom) .EQ. alg_const_var
diff --git a/fer/rpn/ok_juxtapo.F b/fer/rpn/ok_juxtapo.F
index d8b6f5f..4e8107e 100644
--- a/fer/rpn/ok_juxtapo.F
+++ b/fer/rpn/ok_juxtapo.F
@@ -51,6 +51,7 @@
 *                   varname.attname
 * V671 7/11  *acm* Ticket 1868 IFV - masking expressions with ifValid, treating 
 *		   zero as valid. 
+* V720: 4/17 *acm* add direction-changing functions as a subset of grid-changing ones
 
 	include		'ferret.parm'
 	include		'rpn.parm'
@@ -129,7 +130,8 @@
 
 *	   FUNCTION
 	   if (atom_type(atom(i)) .eq. alg_function
-     .	  .OR. atom_type(atom(i)) .eq. alg_grid_chg_fcn) then
+     .	  .OR. atom_type(atom(i)) .eq. alg_grid_chg_fcn
+     .	  .OR. atom_type(atom(i)) .eq. alg_dir_chg_fcn) then
 	      ndx(i) = 8
 	      goto 100
 	   end if
diff --git a/fer/rpn/prcd.F b/fer/rpn/prcd.F
index 2302055..cc5b112 100644
--- a/fer/rpn/prcd.F
+++ b/fer/rpn/prcd.F
@@ -50,6 +50,7 @@
 * V600 8/05 *acm* - Add variable type attrib_val 
 * V671 7/11  *acm* Ticket 1868 IFV - masking expressions with ifValid, treating 
 *		   zero as valid. 
+* V720: 4/17 *acm* add direction-changing functions as a subset of grid-changing ones
 
 	include		'ferret.parm'
 	include		'rpn.parm'
@@ -76,6 +77,7 @@
      .		(atom_prc(i,alg_log_struct),i=1,2)/1,2/,
      .		(atom_prc(i,alg_operand),i=1,2)/21,22/,
      .		(atom_prc(i,alg_finished),i=1,2)/0,-999/,
+     .		(atom_prc(i,alg_dir_chg_fcn),i=1,2)/17,18/,
      .		(atom_prc(i,alg_grid_chg_fcn),i=1,2)/17,18/,
      .		(atom_prc(i,alg_child_var),i=1,2)/21,22/,
      .		(atom_prc(i,alg_const_var),i=1,2)/21,22/,
diff --git a/fer/rpn/rpn.F b/fer/rpn/rpn.F
index 76e5512..b96d6bf 100644
--- a/fer/rpn/rpn.F
+++ b/fer/rpn/rpn.F
@@ -57,6 +57,7 @@
 *		   to enable IF cond THEN string1 ELSE string2 
 * V671 7/11  *acm* Ticket 1868 IFV - masking expressions with ifValid, treating 
 *		   zero as valid. 
+* V720: 4/17 *acm* add direction-changing functions as a subset of grid-changing ones
 
 	include 'ferret.parm'
 	include 'errmsg.parm'
@@ -120,6 +121,7 @@
 
 	   if (.not. OK_JUXTAPO (las_ptr,inf_ptr,atom_type,atom_id)) goto 5200
 	   if (atom_type(inf_ptr) .eq. alg_grid_chg_fcn
+     .	  .OR. atom_type(inf_ptr) .eq. alg_dir_chg_fcn
      .	  .OR. atom_type(inf_ptr) .eq. alg_function )
      .						fcn_ndx = fcn_ndx + 1
 	
@@ -180,7 +182,8 @@
 		    if (arg_cnt(fcn_ndx) .ne. narg)  goto 5400
 		    arg_cnt(fcn_ndx) = 1
 		    fcn_ndx 	     = fcn_ndx - 1
-	         ELSEif (atom_type(tmp_ptr) .eq. alg_grid_chg_fcn) then
+	         ELSEif (atom_type(tmp_ptr) .eq. alg_grid_chg_fcn .OR.
+     .		         atom_type(tmp_ptr) .eq. alg_dir_chg_fcn ) then
 *                   ==> grid changing Ferret function
 *		        variable arguments?
 	            narg = GCF_NUM_ARGS( atom_id(tmp_ptr) )
diff --git a/fer/special/SOURCE_FILES b/fer/special/SOURCE_FILES
index f6bad70..c84c80e 100644
--- a/fer/special/SOURCE_FILES
+++ b/fer/special/SOURCE_FILES
@@ -1,7 +1,6 @@
 SRCS_F = \
 fakes3.F\
 ferret_dispatch.F\
-ferret_query_f.F\
 gui_fakes.F\
 linux_routines.F\
 xmake_date_data.F\
diff --git a/fer/special/ferret_dispatch.F b/fer/special/ferret_dispatch.F
index 4144050..0ae113f 100644
--- a/fer/special/ferret_dispatch.F
+++ b/fer/special/ferret_dispatch.F
@@ -1,4 +1,4 @@
-	SUBROUTINE FERRET_DISPATCH( memory, command, rtn_flags, nflags,
+	SUBROUTINE FERRET_DISPATCH(  command, rtn_flags, nflags,
      .					rtn_chars, nchars, nerrlines )
 
 *
@@ -119,6 +119,7 @@
 *       *acm* 3/12 removing use USER command
 * V685 *acm* 11/13 Issue an ERROR not a NOTE if USER command is tried.
 * V695 *acm*  6/16 New ANNOTATE command.
+* V702 *sh*   2/17 dynamic memory management - no return for SET MEMORY
 
 	include 'tmap_dims.parm'
 	include 'xalt_messages.cmn_text'
@@ -164,7 +165,6 @@
 * temporarily we simply declare the "memory" array right here
 * calling argument declarations
 	INTEGER nflags, nchars, rtn_flags(nflags), nerrlines
-	REAL memory(*)
 #ifdef NEED_BYTE
         BYTE       command(*), rtn_chars(nchars)
 #else
@@ -191,55 +191,54 @@ c	DO 2 i = 1, 200
 	   IF ( command(i) .EQ. 0 ) GOTO 5
  2	cmnd_buff(i:i) = CHAR( command(i) )
 
- 5	CALL GET_FER_COMMAND( memory, cmnd_buff, status, *300 )
+ 5	CALL GET_FER_COMMAND(  cmnd_buff, status, *300 )
 
 	GOTO (	 10, 20, 30, 40, 50, 60, 70, 80, 90,100,
      .		110,120,130,140,150,160,170,180,190,200,
      .          210,220,230,240,250,260,270,280 ) cmnd_num
 
- 10	CALL XEQ_SET( memory, reconfig )
-	IF ( reconfig .NE. 0 ) GOTO 400
+ 10	CALL XEQ_SET
 	GOTO 300
- 20	CALL XEQ_SHOW( memory )
+ 20	CALL XEQ_SHOW
 	GOTO 300
- 30	CALL XEQ_CANCEL( memory )
+ 30	CALL XEQ_CANCEL
 	GOTO 300
- 40	CALL XEQ_CONTOUR( memory )	! after rev 1.00 1/5/87
+ 40	CALL XEQ_CONTOUR	! after rev 1.00 1/5/87
 	GOTO 300
- 50	CALL XEQ_LIST( memory )
+ 50	CALL XEQ_LIST
 	GOTO 300
- 60	CALL XEQ_PLOT( memory )
+ 60	CALL XEQ_PLOT
 	GOTO 300
  70	CALL XEQ_GO
 	GOTO 300
  80	CALL XEQ_HELP
 	GOTO 300
- 90	CALL XEQ_LOAD( memory )
+ 90	CALL XEQ_LOAD
 	GOTO 300
- 100	CALL XEQ_DEFINE( memory )
+ 100	CALL XEQ_DEFINE
 	GOTO 300
  110	CALL XEQ_EXIT( *500, *450 )
 	GOTO 300			! command file xit or error
  120	CALL XEQ_MESSAGE
 	GOTO 300
- 130	CALL XEQ_VECTOR( memory )
+ 130	CALL XEQ_VECTOR
 	GOTO 300
  140	CALL XEQ_PPLUS
 	GOTO 300
- 150	CALL XEQ_FRAME( memory )
+ 150	CALL XEQ_FRAME
 	GOTO 300
  160	CALL XEQ_REPEAT
 	GOTO 300
- 170	CALL XEQ_STAT( memory )
+ 170	CALL XEQ_STAT
 	GOTO 300
- 180	CALL XEQ_SHADE( memory )
+ 180	CALL XEQ_SHADE
 	GOTO 300
  190	CALL XEQ_SPAWN
 	GOTO 300
- 200	CONTINUE! CALL XEQ_USER_COMMAND( memory )
+ 200	CONTINUE! CALL XEQ_USER_COMMAND
         CALL ERRMSG(ferr_syntax, status, 
      .    'USER command not available in this Ferret version ', *300)
- 210	CALL XEQ_WIRE( memory )
+ 210	CALL XEQ_WIRE
 	GOTO 300
  220	CALL XEQ_QUERY
 	GOTO 300
@@ -251,7 +250,7 @@ c	DO 2 i = 1, 200
 	GOTO 300
  260	CALL XEQ_ENDIF
 	GOTO 300
- 270	CALL XEQ_POLYGON( memory )
+ 270	CALL XEQ_POLYGON
 	GOTO 300
  280	CALL XEQ_ANNOTATE
 	GOTO 300
@@ -317,14 +316,6 @@ c	DO 2 i = 1, 200
 	   RETURN
 	ENDIF
 	   
-* reconfigure main memory
- 400	rtn_flags(frtn_control) = fctrl_in_ferret
-	rtn_flags(frtn_status)  = gui_status
-	rtn_flags(frtn_action)  = factn_mem_reconfigure
-	rtn_flags(frtn_idata1)  = reconfig
-	rtn_flags(frtn_idata2)  = cmnd_stack_level
-	RETURN
-
 * exit the dispatch loop - if from pyferret, to return control to python
 *                          if from ferret_c, just re-enter the dispatch loop
  450    rtn_flags(frtn_control) = fctrl_in_ferret
diff --git a/fer/special/ferret_query_f.F b/fer/special/ferret_query_f.F
deleted file mode 100644
index 4d503bb..0000000
--- a/fer/special/ferret_query_f.F
+++ /dev/null
@@ -1,535 +0,0 @@
-    	SUBROUTINE FERRET_QUERY_F( query, flags, nflags, ctext, ntext,
-     .				   num_strings, num_vals, nums, nnums,
-     .				   arg1, arg2, arg3, arg4, arg5, qstatus )
-
-*
-*
-*  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. 
-*
-*
-* respond to the GUI query API call
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-
-* for FERRET V400: 8/94
-*   3/15/95 - fixed error in "strides" for query GCOORDS
-* V402: "temporary ferret_query.inc" changed to ferret_cmn/ferret_query.parm
-* V420: bug fix: query would crash if grid was unknown
-*Linux Port 1/97 *kob* - Added a preprocessor include for tmap_dset.parm
-*			  because it needed a preprocessor.
-*	    4/97 *kob* - added ifdef for MANDATORY_FORMAT_WIDTHS on internal
-*			 read because linux/nag f90 needed a format width.
-*           12/00*acm* - cleanup: TM_DATE_OK declared but never called
-* V533      8/01 *acm* - calendar axis additions: SECS_FROM_BC needs cal_id
-* v540 *acm* 10/01 increase length of ds_name
-* v540 *acm* 10/01  remove VMS include statements
-* v604 *acm* 7/07 increase length of ds_name
-*       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
-*       *acm* 4/12 6D Ferret: time axis may be in t or f direction.
-
-        include 'tmap_dims.parm'
-#       include "tmap_dset.parm"
-        include 'xdset_info.cmn_text'
-        external xdset_info_data
-        include 'xtm_grid.cmn_text'
-        external xgt_grid_data
-	include	'ferret.parm'
-	include 'errmsg.parm'
-	include 'gfdl_vms.parm'
-	include 'ferret_query.parm'
-	include 'xprog_state.cmn'
-	include 'xcommand.cmn'
-	include 'xtext_info.cmn'
-	include 'xcontext.cmn'
-	include 'xalgebra.cmn'
-	include 'xgui.cmn'
-	include 'xvariables.cmn' ! JC_ADDITION
-
-
-* calling argument declarations
-	INTEGER query, nflags, flags(nflags), num_strings, num_vals, ntext,
-     .		nnums, qstatus
-* ... c-type Hollerith string buffers
-#ifdef NEED_BYTE
-        BYTE      ctext(ntext), arg1(*), arg2(*), arg3(*), arg4(*), arg5(*)
-#else
-        INTEGER*1 ctext(ntext), arg1(*), arg2(*), arg3(*), arg4(*), arg5(*)
-#endif
-	REAL*8	nums(nnums)
-
-* local variable declarations:
-	LOGICAL GEOG_LABEL
-	INTEGER	TM_LENSTR1, FIND_DSET_NUMBER, IGRID, TM_GET_LINENUM,
-     .		TM_GET_GRIDNUM, TM_GET_CALENDAR_ID,
-     .		i, i2, n, dim, dset, cat, var, axis, grid,
-     .		slen, insert_pt, stride, status, cal_id,
-     .          j, num_indices
-	REAL*8	TWORLD, TM_WORLD, SECS_FROM_BC, lo, hi, delta
-	CHARACTER AX_TITLE*32, TM_FMT*16, buff1*32,
-     .		  farg1*80, farg2*80, farg3*80, farg4*80, farg5*80
-
-* local parameter declarations:
-	CHARACTER*4 notext
-	PARAMETER ( notext = '****')
-
-* legal query ?
-	IF ( query .GT. max_queries ) THEN
-	   qstatus = QSTAT_UNKNOWN_QUERY
-	   RETURN
-	ENDIF
-
-* initialize
-	qstatus = QSTAT_OK
-	insert_pt = 1
-	num_strings = 0
-	num_vals = 0
-	DO 10 i = 1, nflags
- 10	flags(i) = 0
-	ctext(1) = 0
-
-* convert arguments to FORTRAN character arrays
-	CALL TM_CTOF_STRNG(arg1, farg1, 80) 
-	CALL TM_CTOF_STRNG(arg2, farg2, 80) 
-	CALL TM_CTOF_STRNG(arg3, farg3, 80) 
-	CALL TM_CTOF_STRNG(arg4, farg4, 80) 
-	CALL TM_CTOF_STRNG(arg5, farg5, 80) 
-
-* respond to the appropriate query
-	GOTO ( 100, 200, 300, 400, 500, 600, 700, 800, 900,1000,
-     .	      1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,
-     .	      2100,2200,2300,2400,2500,2600,2700,2800,2900,3000 ) query
-	
-* STATUS
-* error status of last command
- 100	CONTINUE
-	qstatus = QSTAT_UNKNOWN_QUERY
-	RETURN
-
-* MESSAGE
-* messages from last command
- 200	CONTINUE
-	qstatus = QSTAT_UNKNOWN_QUERY
-	RETURN
-
-* DSET
-* list of open data sets
- 300	DO 310 i = 1,  maxdsets
-	   IF ( ds_name(i) .NE. char_init1024) THEN
-	      slen = TM_LENSTR1(ds_name(i))
-	      CALL CSTRING_INSERT( ds_name(i),
-     .				slen, ctext, ntext, insert_pt)
-	      IF ( insert_pt .GT. ntext ) THEN
-	         qstatus = QSTAT_BUFF_OVFLOW
-	         RETURN
-	      ENDIF
-	      num_strings = num_strings + 1
-	   ENDIF
- 310	CONTINUE
-	RETURN
-
-* VARIABLE dset
-* return the variables in a data set
-* ... identify the data set
- 400	dset = FIND_DSET_NUMBER(farg1)
-	IF ( dset .EQ. unspecified_int4 ) THEN
-	   qstatus = QSTAT_INVALID_ARG
-	   RETURN
-	ENDIF
-	DO 410 var = 1, maxvars
-	   IF ( ds_var_setnum(var) .NE. dset ) GOTO 410
-	   IF ( ds_var_code(var) .EQ. '-' ) GOTO 410
-*	   slen = TM_LENSTR1(ds_var_code(var))
-           CALL string_array_get_strlen1(ds_var_code_head,
-     .                                    var,  slen)
-	   CALL CSTRING_INSERT( ds_var_code(var),
-     .				slen, ctext, ntext, insert_pt)
-	   IF ( insert_pt .GT. ntext ) THEN
-	      qstatus = QSTAT_BUFF_OVFLOW
-	      RETURN
-	   ENDIF
-	   num_strings = num_strings + 1
- 410	CONTINUE
-	RETURN
-
-* GRID dset variable
-* 4-axis description of grid for given variable
-* ... identify the data set, then variable, then its grid
- 500	dset = FIND_DSET_NUMBER(farg1)
-	IF ( dset .EQ. unspecified_int4 ) THEN
-	   qstatus = QSTAT_INVALID_ARG
-	   RETURN
-	ENDIF
-	CALL FIND_VAR_NAME( dset, farg2, cat, var )
-	IF ( dset .EQ. unspecified_int4 ) THEN
-	   qstatus = QSTAT_INVALID_ARG
-	   RETURN
-	ENDIF
-	grid = IGRID ( dset, cat, var, status )
-	IF ( grid.EQ.unspecified_int4 .OR. status.NE.ferr_ok) THEN
-	   qstatus = -1 * status
-	   RETURN
-	ENDIF
-* ... first return the grid name
-	slen = TM_LENSTR1(grid_name(grid))
-	CALL CSTRING_INSERT( grid_name(grid),
-     .			     slen, ctext, ntext, insert_pt)
-* ... then the 4 axis names
-	DO 510 dim = 1, nferdims
-	   axis = grid_line( dim, grid )
-	   IF ( axis .EQ. munknown ) THEN
-	      CALL CSTRING_INSERT( 'UNKNOWN',
-     .				   7, ctext, ntext, insert_pt)
-	   ELSEIF( axis .EQ. mnormal ) THEN
-	      CALL CSTRING_INSERT( 'NORMAL',
-     .				   6, ctext, ntext, insert_pt)
-	   ELSE
-	      slen = TM_LENSTR1(line_name(axis))
-	      CALL CSTRING_INSERT( line_name(axis),
-     .				   slen, ctext, ntext, insert_pt)
-	   ENDIF
-	   IF ( insert_pt .GT. ntext ) THEN
-	      qstatus = QSTAT_BUFF_OVFLOW
-	      RETURN
-	   ENDIF
- 510    CONTINUE
-* ... then the 4 axis orientation codes
-	DO 520 dim = 1, nferdims
-	   axis = grid_line( dim, grid )
-	   IF ( axis .EQ. munknown .OR. axis .EQ. mnormal ) THEN
-	      CALL CSTRING_INSERT( '**',
-     .				   2, ctext, ntext, insert_pt)
-	   ELSE
-	      CALL CSTRING_INSERT( line_direction(axis),
-     .				   2, ctext, ntext, insert_pt)
-	   ENDIF
-	   IF ( insert_pt .GT. ntext ) THEN
-	      qstatus = QSTAT_BUFF_OVFLOW
-	      RETURN
-	   ENDIF
- 520    CONTINUE
-	num_strings = 9	! 1 + 4 + 4
-	RETURN
-
-* AXIS  (args?)
- 600	qstatus = QSTAT_UNKNOWN_QUERY
-	RETURN
-
-* COORDS axis
-* coordinates of (irregular) axis
- 700	CONTINUE
-
-* TRANS  *************
-* list of transforms
- 800	CONTINUE
-	qstatus = QSTAT_UNKNOWN_QUERY
-	RETURN
-
-* TRNARG (trans) ****will not be used!!*************
-* argument description for given transform
- 900	CONTINUE
-* LVARS  *************
-* list of LET-defined variables
- 1000	CONTINUE
-
-* DVARS (dset) *************
-* list of LET-defined variables defined for data set
-* ... identify the data set
-*
-* first attempt at an upgrade by JC (3/1/96)
-*
- 1100	dset = FIND_DSET_NUMBER(farg1)
-	IF ( dset .EQ. unspecified_int4 ) THEN
-	   qstatus = QSTAT_INVALID_ARG
-	   RETURN
-	ENDIF
-*	DO 1110 var = 1, max_uvar
-*           IF (uvar_num_items(var) .EQ. uvar_deleted  ) GOTO 1110
-        CALL deleted_list_get_undel(uvar_num_items_head,
-     .                              deleted_list_result(1),
-     .                              max_uvar, num_indices )
-        DO 1110 j = 1, num_indices
-           var = deleted_list_result(j)
-           IF (uvar_name_code(var)(1:3) .EQ. 'EX#'    ) GOTO 1110
-           IF ( dset .NE. uvar_dset(var)         ) GOTO 1110
-*           slen = TM_LENSTR1(uvar_name_code(var))
-           CALL string_array_get_strlen1(uvar_name_code_head, var, slen)
-	   CALL CSTRING_INSERT( uvar_name_code(var),
-     .				slen, ctext, ntext, insert_pt)
-
-	   IF ( insert_pt .GT. ntext ) THEN
-	      qstatus = QSTAT_BUFF_OVFLOW
-	      RETURN
-	   ENDIF
-	   num_strings = num_strings + 1
- 1110	CONTINUE
-	RETURN
-
-* VBACKGROUND  (dset variable) *************
-* background info about this variable
- 1200	CONTINUE
-* DBACKGROUND (dset) *************
-* background info about this data set
- 1300	CONTINUE
-* WINDOWS  *************
-* list of open windows
- 1400	CONTINUE
-* WCURRENT  *************
-* name of current window
- 1500	CONTINUE
-* VPORTS  *************
-* list of defined viewports
- 1600	CONTINUE
-* VCURRENT  *************o
-* name of current viewport
- 1700	CONTINUE
-* VIEW  (vport) *************
-* definition of indicated viewport
- 1800	CONTINUE
-	qstatus = QSTAT_UNKNOWN_QUERY
-	RETURN
-
-* DCURRENT
-* name of current data set
- 1900	DO 1910 dset = 1, maxdsets
-           IF ( ds_name(dset) .EQ. char_init1024) GOTO 1910
-	   IF ( dset .EQ. cx_data_set(cx_last) ) THEN
-	      slen = TM_LENSTR1(ds_name(dset))
-	      CALL CSTRING_INSERT( ds_name(dset),
-     .				   slen, ctext, ntext, insert_pt)
-	      num_strings = 1
-	      RETURN
-	   ENDIF
- 1910	CONTINUE
-* ... there is no current data set
-	CALL CSTRING_INSERT( '*', 1, ctext, ntext, insert_pt)
-	num_strings = 1
-	RETURN
-
-* SPAN  dset variable
-* grid name and axis limits for a variable
- 2000	dset = FIND_DSET_NUMBER(farg1)
-	IF ( dset .EQ. unspecified_int4 ) THEN
-	   qstatus = QSTAT_INVALID_ARG
-	   RETURN
-	ENDIF
-	CALL FIND_VAR_NAME( dset, farg2, cat, var )
-	IF ( dset .EQ. unspecified_int4 ) THEN
-	   qstatus = QSTAT_INVALID_ARG
-	   RETURN
-	ENDIF
-	grid = IGRID ( dset, cat, var, status )
-	IF ( status .NE. ferr_ok ) THEN
-	   qstatus = -1 * status
-	   RETURN
-	ENDIF
-* ... first return the grid name
-	slen = TM_LENSTR1(grid_name(grid))
-	CALL CSTRING_INSERT( grid_name(grid),
-     .			     slen, ctext, ntext, insert_pt)
-* ... then the 4 axis spans
-* ... loss,hiss,loww,hiww (all presented as floating point)
-	DO 2010 dim = 1, nferdims
-	   axis = grid_line( dim, grid )
-	   i = (dim-1) * 4
-	   IF ( axis .EQ. munknown
-     .	   .OR. axis .EQ. mnormal  ) THEN
-	      nums(i+1) = DBLE( unspecified_int4 ) 
-	      nums(i+2) = DBLE( unspecified_int4 ) 
-	      nums(i+3) = DBLE(bad_val4)
-	      nums(i+4) = DBLE(bad_val4)
-	   ELSE
-! 4/4/96 - return grid limits rather than span limits (which are meaningful
-!               only for file variables)
-              nums(i+1) = 1.0D0
-              nums(i+2) = DBLE(line_dim(axis))
-              nums(i+3) = TM_WORLD( 1,
-     .                              grid, dim, box_middle)
-              nums(i+4) = TM_WORLD( line_dim(axis),
-     .                              grid, dim, box_middle)
-	   ENDIF
- 2010    CONTINUE
-	num_strings = 1
-	num_vals = 16
-	RETURN
-
-* GAXIS grid orientation(1-4)
- 2100	grid = TM_GET_GRIDNUM( farg1 )
-	IF ( grid .EQ. unspecified_int4 ) THEN
-	   qstatus = QSTAT_INVALID_ARG
-	   RETURN
-	ENDIF
-* *kob* 4/97
-#ifdef MANDATORY_FORMAT_WIDTHS
-	READ( farg2,* ) dim
-#else
-	READ( farg2,'(I)' ) dim
-#endif
-	axis = grid_line(dim, grid)
-* ... first return the axis title (units are appended already ...)
-	IF ( axis .NE. mnormal ) THEN
-	   buff1 = AX_TITLE(dim, grid, slen)
-	ELSE
-	   buff1 = notext
-	   slen = 4
-	ENDIF
-	CALL CSTRING_INSERT( buff1,
-     .			     slen, ctext, ntext, insert_pt)
-* ... then the axis units
-	IF ( axis .NE. mnormal ) THEN
-	   buff1 = line_units(axis)
-	   slen = TM_LENSTR1(buff1)
-	ELSE
-	   buff1 = notext
-	   slen = 4
-	ENDIF
-	CALL CSTRING_INSERT( buff1,
-     .			     slen, ctext, ntext, insert_pt)
-* ... now return some flags:
-	IF ( line_modulo(axis) ) THEN		! modulo ?
-	   flags(1) = 1
-	ELSE
-	   flags(1) = 0
-	ENDIF
-	IF ( GEOG_LABEL( dim, grid ) ) THEN	! fancy labeling ?
-	   flags(2) = 1
-	ELSE
-	   flags(2) = 0
-	ENDIF
-	IF ( line_regular(axis) ) THEN		! regular spacing ?
-	   flags(3) = 1
-	ELSE
-	   flags(3) = 0
-	ENDIF
-	flags(4) = line_unit_code(axis)		! unit code
-* ... some low:high:delta information
-	nums(1) = DBLE( line_dim(axis) )
-	nums(2) = line_start(axis)
-	nums(3) = line_delta(axis)
-	num_strings = 2
-	num_vals = 3
-* ... and finially special stuff for calendar axis formatting
-	IF ( (dim.EQ.t_dim .OR. dim.EQ.f_dim) .AND. flags(2).EQ.1 ) THEN
-
-*  See if we can find out the calendar, if grid/axis is known
-	IF (grid .EQ. unspecified_int4  .AND.  
-     .	    axis .EQ. unspecified_int4)  THEN 
-	   cal_id = 1
-	ELSE
-	   IF (axis .EQ. unspecified_int4) axis = grid_line(dim, grid)
-	   cal_id = TM_GET_CALENDAR_ID ( line_cal_name(axis) )
-	ENDIF
-
-	   nums(4) = SECS_FROM_BC( line_t0(axis), cal_id, status )
-	   nums(5) = line_tunit(axis)
-	ENDIF
-	RETURN
-
-* GCOORDS grid orientation(1-4)   offset   stride
-* ... the variable num_valstoj will tell the number of values returned
- 2200	grid = TM_GET_GRIDNUM( farg1 )
-	IF ( grid .EQ. unspecified_int4 ) THEN
-	   qstatus = QSTAT_INVALID_ARG
-	   RETURN
-	ENDIF
-* *kob* 4/97 include axis...line in below ifdef just for simplicity
-#ifdef MANDATORY_FORMAT_WIDTHS
-	READ( farg2,* ) dim
-	axis = grid_line(dim, grid)
-	READ( farg3,* ) i2       ! offset
-	READ( farg4,* ) stride
-#else
-	READ( farg2,'(I)' ) dim
-	axis = grid_line(dim, grid)
-	READ( farg3,'(I)' ) i2       ! offset
-	READ( farg4,'(I)' ) stride
-#endif
-	i2 = i2 + 1
-	num_strings = 0
-	DO 2210 i = 1, nnums
-	   IF ( i2 .GT. line_dim(axis) ) RETURN
-	   nums( i ) = TM_WORLD( i2, grid, dim, box_middle)
-	   num_vals = i
-	   i2 = i2 + stride
- 2210	CONTINUE
-	RETURN
-
-* SSPOINT grid orientation delta_index index
- 2300	CONTINUE
-
-* WWPOINT grid orientation delta_index coordinate
- 2400	CONTINUE
-
-* UVAR_DEFINITION dset variable
-* text of the algebraic expression defining the variable
- 2500	dset = FIND_DSET_NUMBER(farg1)
-	IF ( dset .EQ. unspecified_int4 ) THEN
-	   qstatus = QSTAT_INVALID_ARG
-	   RETURN
-	ENDIF
-	CALL FIND_VAR_NAME( dset, farg2, cat, var )
-	IF ( dset .EQ. unspecified_int4 ) THEN
-	   qstatus = QSTAT_INVALID_ARG
-	   RETURN
-	ENDIF
-
-* ... return the definition
-	slen = TM_LENSTR1(uvar_text(var))
-	CALL CSTRING_INSERT( uvar_text(var),
-     .			     slen, ctext, ntext, insert_pt)
-* ... the title
-	slen = TM_LENSTR1(uvar_title(var))
-	CALL CSTRING_INSERT( uvar_title(var),
-     .			     slen, ctext, ntext, insert_pt)
-* ... and the units
-	slen = TM_LENSTR1(uvar_units(var))
-	CALL CSTRING_INSERT( uvar_units(var),
-     .			     slen, ctext, ntext, insert_pt)
-	num_strings = 3
-	RETURN
-
-
-* ****  *************
- 2600	CONTINUE
-* ****  *************
- 2700	CONTINUE
-* ****  *************
- 2800	CONTINUE
-* ****  *************
- 2900	CONTINUE
-* ****  *************
- 3000	CONTINUE
-	qstatus = QSTAT_UNKNOWN_QUERY
-	RETURN
-
-	END
diff --git a/fer/stk/SOURCE_FILES b/fer/stk/SOURCE_FILES
index 2dfa09d..71f4f23 100644
--- a/fer/stk/SOURCE_FILES
+++ b/fer/stk/SOURCE_FILES
@@ -11,6 +11,7 @@ conformable_agg_grid.F\
 constant_context.F\
 const_var_context.F\
 crawl_dependencies.F\
+define_next_chunk_cx.F\
 diagnostic_out.F\
 eval_context.F\
 eval_expr.F\
@@ -30,7 +31,6 @@ init_random_seed.F\
 interp_context.F\
 interp_stack.F\
 is_aggregate_gather.F\
-is_aggregate_grid.F\
 is_algebra.F\
 is_auxvar_regrid.F\
 is_attrib_val.F\
@@ -56,6 +56,7 @@ is_strip.F\
 is_subspan_fill.F\
 is_sample.F\
 is_trans.F\
+is_union_member.F\
 is_uvar_grid.F\
 its_auto_curvi.F\
 known_grid.F\
@@ -64,6 +65,7 @@ non_array_subsc.F\
 offset_ss.F\
 operate.F\
 pass_ambig_lims.F\
+potent_ax_lims.F\
 potent_size.F\
 push_interp_stack.F\
 randn.F\
@@ -72,6 +74,7 @@ randu.F\
 rcvd_regrid.F\
 regrid_lims.F\
 rqst_regrid.F\
+setup_gather.F\
 setup_sample.F\
 stack_ptr_dn.F\
 stack_ptr_up.F\
@@ -79,6 +82,7 @@ string_context.F\
 string_operate.F\
 string_concatenate.F\
 string_conditional.F\
+trans_init_value.F\
 transfer_isp.F\
 unprotect_cmnd_data.F\
 xerror.F 
diff --git a/fer/stk/crawl_dependencies.F b/fer/stk/crawl_dependencies.F
index 216e868..e26c6b2 100644
--- a/fer/stk/crawl_dependencies.F
+++ b/fer/stk/crawl_dependencies.F
@@ -1,5 +1,5 @@
 	SUBROUTINE CRAWL_DEPENDENCIES
-     .		( memory, expression, base_cx, status )
+     .		(  expression, base_cx, status )
 
 *
 *
@@ -57,7 +57,6 @@
 
 * calling argument declarations
 	INTEGER	base_cx, status
-	REAL	memory( mem_blk_size, max_mem_blks )
 	CHARACTER*(*) expression
 
 * local variable declarations
@@ -89,7 +88,8 @@
 	
 * when called the request is ALWAYS for an untransformed implicitly defined
            CALL GET_DEPENDENCIES( uvar_pointer,
-     .		dependency_dflt_dset, memory(1,dependency_block1), status )
+     .		dependency_dflt_dset, workmem(plegacy_work_buffer)%ptr,
+     .		status )
            IF ( status .NE. ferr_ok ) GOTO 5000
 
 ! temp diagnostic
diff --git a/fer/stk/is_dummy.F b/fer/stk/define_next_chunk_cx.F
similarity index 70%
copy from fer/stk/is_dummy.F
copy to fer/stk/define_next_chunk_cx.F
index edd6362..8de99f7 100644
--- a/fer/stk/is_dummy.F
+++ b/fer/stk/define_next_chunk_cx.F
@@ -1,7 +1,5 @@
-	SUBROUTINE IS_DUMMY( memory, *, status )
+	SUBROUTINE DEFINE_NEXT_CHUNK_CX(idim, com_cx, dflt_cx, frag, 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),
@@ -35,47 +33,40 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* create a "dummy" result -- all missing values
-* for use with forecast aggregations, in cases of a missing forecast
+* increment com_cx so that it becomes the context describing the next chunk
+* needed in a gather operation
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 *
-* V698  12/15 - *sh*
- 
-	include 'tmap_dims.parm'
+* V702: *sh* 11/16 - code pulled from IS_GATHER
+
+	include	'tmap_dims.parm'
 	include	'ferret.parm'
 	include	'errmsg.parm'
-	include	'interp_stack.parm'
-	include	'xvariables.cmn'
 	include	'xcontext.cmn'
-	include	'xprog_state.cmn'
 
 * calling argument declarations:
-	INTEGER	status
-	REAL	memory( mem_blk_size, max_mem_blks )
-
-* internal variable declarations:
-	INTEGER	mr, cx
+	INTEGER idim, com_cx, dflt_cx, frag, status
 
-* --- end of introductory code ---
-* initialize
-	cx = is_cx( isp )
+* calling argument definitions:
+*	idim - the axis of the gather operation
+*	com_cx - the context to be updated (the next component of the gather)
+*	dflt_cx - the target context, with transforms, pre-split/gather
+*	frag - the fragment (a.k.a increment) size
 
-* reserve and catalog space for the result
-	CALL CREATE_TEMP_MEM_VAR( cx, mr, status )
-	IF ( status .NE. ferr_ok ) GOTO 5000
-	is_mr( isp ) = mr
-
-* diagnostic output
-	IF (mode_diagnostic) CALL DIAGNOSTIC_OUT('dummy',mr,point_to_mr)
-
-* insert a block of missing value flags
-	CALL FILL_MEMORY( memory, mr_blk1(mr),
-     .			  mr_nblks(mr), mr_bad_data(mr) )
+* internal variable declarations:
+	INTEGER top_ss, lo_ss
 
-	RETURN 1
+* increment the subscript range by fragment size
+	top_ss = cx_hi_ss(com_cx,idim)
+	CALL TRANSFER_CONTEXT( dflt_cx, com_cx )
+	cx_lo_ss(com_cx,idim) = top_ss + 1
+	cx_hi_ss(com_cx,idim) = MIN( top_ss+frag, cx_hi_ss(dflt_cx,idim))
+	cx_by_ss(idim,com_cx) = .TRUE.
+	CALL FLESH_OUT_AXIS( idim, com_cx, status )       ! ignore status
 
-* error exit
- 5000	RETURN
+* same exit whether success or failure
+	RETURN
 	END	
+
diff --git a/fer/stk/diagnostic_out.F b/fer/stk/diagnostic_out.F
index c491c03..f486391 100644
--- a/fer/stk/diagnostic_out.F
+++ b/fer/stk/diagnostic_out.F
@@ -56,12 +56,16 @@
 * V680  5/12 *acm* Add dataset ID to diagnostic output
 * V6.8  acm  6/12 Implement mode_6d_lab, set by default. If cancelled, the 
 *                 output will not list info for E,F dimensions.
+* V7    acm  6/16 Ticket 2437: Deprecating mode_6d_lab. 
+*		  Adjust output to 6-D or 4-D grids
+* V702 *sh* 1/17  7 digit integer output fields instead of 5
 
 * calling argument declarations:
 	INTEGER		isub, pointer_type
 	CHARACTER*(*)	action
 
 * internal argument declarations:
+	LOGICAL	    FOUR_D_GRID
 	INTEGER	    TM_LENSTR1, lenbuff, i, listdims
 	CHARACTER   VAR_CODE*128, buff128*128, buff8*8
 
@@ -75,10 +79,14 @@
 
 
 * If mode 6d_lab has been cancelled, we will list info only for 
-* the first 4 dimensions.
+* the first 4 dimensions.  This test fails for some EX# expressions.
 
 	listdims = nferdims
-	IF ( .NOT. mode_6d_lab) listdims = 4
+	IF ( pointer_type .EQ. point_to_cx ) THEN
+	   IF ( FOUR_D_GRID(cx_grid(isub)) ) listdims = 4
+	ELSe
+	   IF ( FOUR_D_GRID(mr_grid(isub)) ) listdims = 4
+	ENDIF
 
 	risc_buff = ' '
 
@@ -96,6 +104,7 @@
 ! ... assemble short name from beginning and end of full name 
 	   IF (lenbuff .GT. 8 ) THEN
 	      buff8 = buff128(1:3)//'-'//buff128(lenbuff-3:lenbuff)
+	      IF (buff128(1:1) .EQ. '{') buff8 = buff128(1:4)//'...'//'}'
 	   ELSE
 	      buff8 = buff128
 	   ENDIF
@@ -144,9 +153,9 @@
       ENDIF
 
  3000	FORMAT (1X,A,1X,A8,1X,A1,':',I3,' dset:',i4,
-     . ' I:',2I5,'  J:',2I5,'  K:',2I5,'  L:',2I5,'  M:',2I5,'  N:',2I5)
+     . ' I:',2I7,'  J:',2I5,'  K:',2I5,'  L:',2I7,'  M:',2I5,'  N:',2I5)
  3100	FORMAT (1X,A,1X,A8,1X,A1,':',I3,' dset:',i4,
-     . ' I:',2I5,'  J:',2I5,'  K:',2I5,'  L:',2I5)
+     . ' I:',2I7,'  J:',2I5,'  K:',2I5,'  L:',2I7)
 
 	RETURN
 	END	
diff --git a/fer/stk/eval_expr.F b/fer/stk/eval_expr.F
index 945905e..8c50194 100644
--- a/fer/stk/eval_expr.F
+++ b/fer/stk/eval_expr.F
@@ -1,4 +1,4 @@
-	SUBROUTINE EVAL_EXPR ( memory, dflt_cx, expression, apply_cx, 
+	SUBROUTINE EVAL_EXPR (  dflt_cx, expression, apply_cx, 
      .              status )
 
 *
@@ -66,6 +66,7 @@
 *                     of immed. mode expressions in the command.
 * V600 *acm* 3/06  fixing bugs 439&1390, pass apply_cx to get_new_cx to say whether
 *                  to apply command context to grave-accent expressions.
+* V702 *sh*  3/17 Dynamic memory
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -79,7 +80,6 @@
 * calling argument declarations
         LOGICAL apply_cx
 	INTEGER	dflt_cx, status
-	REAL	memory(*) 
 	CHARACTER*(*) expression
 
 * local variable declarations
@@ -91,6 +91,12 @@
 	tlen = LEN(expression)
 	grd_stk_ptr = max_grids
 
+* initialize memory usage diagnostic
+	completed_args_mem = 0
+	current_cmnd_uvar = 1
+	deferred_committed_mem = 0
+	nsplits = 0
+
 * delete any memory left-overs from last command
 	CALL DELETE_MRS_IN_PROGRESS
 
@@ -113,7 +119,7 @@
 
 * evaluate the expression
 	CALL TRANSFER_CONTEXT( cx_cmnd, cx_expr )
-	CALL INTERP_STACK( memory, 1, cx_expr, EXPR_NAME(1), status )
+	CALL INTERP_STACK(  1, cx_expr, EXPR_NAME(1), status )
 	IF ( status .NE. ferr_ok ) GOTO 5000
 
 ! temp diagnostic
diff --git a/fer/stk/exit_dependency_mode.F b/fer/stk/exit_dependency_mode.F
index 465bb80..2c17033 100644
--- a/fer/stk/exit_dependency_mode.F
+++ b/fer/stk/exit_dependency_mode.F
@@ -42,13 +42,14 @@
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 *
 * V685+ 11/13 *sh*  
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
 	include 'xdependency_tree.cmn'
 
 	dependency_tree_mode = .FALSE.
-	CALL RELEASE_WORK_SPC
+        CALL RELEASE_DYN_WORK_SPACE ! ?? needed ??
 
      	RETURN
 	END
diff --git a/fer/stk/explicit_uvar.F b/fer/stk/explicit_uvar.F
index 7e481f2..44a3da6 100644
--- a/fer/stk/explicit_uvar.F
+++ b/fer/stk/explicit_uvar.F
@@ -54,7 +54,10 @@
 * calling argument declarations:
 	INTEGER	uvar
 
-	EXPLICIT_UVAR = INDEX( uvar_name_code(uvar), '#' ) .EQ. 0
+	LOGICAL is_explicit  ! just for testing
+
+	is_explicit = INDEX( uvar_name_code(uvar), '#' ) .EQ. 0
+	EXPLICIT_UVAR = is_explicit
 
 	RETURN
 	END
diff --git a/fer/stk/get_cmnd_data.F b/fer/stk/get_cmnd_data.F
index 6e0337e..3678a46 100644
--- a/fer/stk/get_cmnd_data.F
+++ b/fer/stk/get_cmnd_data.F
@@ -1,4 +1,4 @@
-	SUBROUTINE GET_CMND_DATA ( memory, dflt_cx, dtype, status )
+	SUBROUTINE GET_CMND_DATA (  dflt_cx, dtype, status )
 
 *
 *
@@ -69,12 +69,11 @@
 
 * calling argument declarations
 	INTEGER	dflt_cx, dtype, status
-	REAL	memory(*)
 
 * local variable declarations
 * ...
 
-        CALL GET_PROT_CMND_DATA( memory, dflt_cx, dtype, status )
+        CALL GET_PROT_CMND_DATA(  dflt_cx, dtype, status )
         IF ( status .NE. ferr_ok ) RETURN
 
         CALL UNPROTECT_CMND_DATA
diff --git a/fer/stk/get_prot_cmnd_data.F b/fer/stk/get_prot_cmnd_data.F
index 1d0a769..46fd996 100644
--- a/fer/stk/get_prot_cmnd_data.F
+++ b/fer/stk/get_prot_cmnd_data.F
@@ -1,4 +1,4 @@
-	SUBROUTINE GET_PROT_CMND_DATA ( memory, dflt_cx, dtype, status )
+	SUBROUTINE GET_PROT_CMND_DATA (  dflt_cx, dtype, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -95,6 +95,10 @@
 *                  as seen in err694_inconsistent_quotes.jnl
 * V698 *acm*  3/16 Ticket 2278: add an attribute with time range when
 *                  saving a modulo-regridded variable to netCDF
+* V702 *acm* 11/16 Ticket 2489: Do not try to add the attribute when
+*                  it's an expression instead of a user-defined variable
+*		   - And trac enhancement #2369 -- dynamic memory management 
+* V702 *sh*  3/17 Dynamic memory
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -109,7 +113,6 @@
 
 * calling argument declarations
 	INTEGER	dflt_cx, dtype, status
-	REAL	memory(*) 
 
 * local variable declarations
 	LOGICAL		auto_auxvar_changed
@@ -127,6 +130,10 @@
 	max_usable_intrp = max_intrp
 	max_context = max_noframe_context  ! just to be clear (not needed)
 
+* initialize memory usage diagnostic
+	completed_args_mem = 0
+	nsplits = 0
+
 * determine if in auto-curvilinear mode
 	CALL SET_AUTO_CURVI_MODES( auto_auxvar_changed )
 
@@ -177,25 +184,45 @@
 	   cx_expr = cx_stack_ptr
 
 
-* ... a frame of size nferdims to hold aux vars needed for plotting and listing
-	   max_usable_intrp = max_usable_intrp - nferdims
-	   max_context      = max_context      - nferdims
-	   DO idim = 1, nferdims
-	      is_mr(max_usable_intrp+idim) = unspecified_int4
-	      is_cx(max_usable_intrp+idim) = unspecified_int4  ! bookkeeping
-	   ENDDO
+! *sh* 1/17
+! This block of code is experimental / untested from 2014.
+! It is connected to  CALL SET_AUTO_CURVI_MODES above (also half-baked).
+! For now I have commented it out, as it can eat up the context stack on
+! commands where num_uvars_in_cmnd is large
+! The logic here reserves a frame of nferdims slots at the top of the context
+! stack as the place to stash the contexts needed to describe the auxiliary
+! variables that are associated with each requested variable.
+! e.g. SHADE my_curvi_var should automate a 3-arg curvilinear plot.
+!  and LIST my_curvi_var should automatically list curvilinear coordinates
+! The stack frames detected by ITS_AUTO_CURVI (also temporarily disabled)
+! The code development only got as far as XEQ_LIST, (not SHADE, etc.) and
+! the relevant code is never triggered as long as ITS_AUTO_CURVI returns FALSE
+!* ... a frame of size nferdims to hold aux vars needed for plotting and listing
+!	   max_usable_intrp = max_usable_intrp - nferdims
+!	   max_context      = max_context      - nferdims
+!	   DO idim = 1, nferdims
+!	      is_mr(max_usable_intrp+idim) = unspecified_int4
+!	      is_cx(max_usable_intrp+idim) = unspecified_int4  ! bookkeeping
+!	   ENDDO
+
+* ... initialize memory diagnostics
+	   current_cmnd_uvar = nu
+	   deferred_committed_mem = 0
 
 * ... evaluate the next sub-expression
 	   CALL TRANSFER_CONTEXT( cx_cmnd, cx_expr )
-	   CALL INTERP_STACK( memory, nu, cx_expr,
+	   CALL INTERP_STACK(  nu, cx_expr,
      .			      EXPR_NAME(nu), status )
 	   IF ( status .NE. ferr_ok ) GOTO 5000
 
-* check for legal data type
+* ... check for legal data type
 	   IF ( dtype .NE. ptype_native ) THEN
 	      IF (mr_type(is_mr(isp)) .NE. dtype ) GOTO 5100
 	   ENDIF
 
+* ... add memory occupied by this result to the on-hold total of arguments
+	   completed_args_mem = completed_args_mem + mr_size(is_mr(isp))
+
 * tag the result for what it is
 * note that since aux vars may now be returned on the ISP stack, isp may be GT nu
 	   is_act(isp) = isact_var_ready
@@ -208,11 +235,18 @@
 
 	   IF (natt_computed_var .GT. 0) THEN
 
-	      IF (STR_SAME (attstr_computed_var(1:10), 'do not set') .NE. 0)  THEN
+	      IF (STR_SAME (attstr_computed_var(1:10), 'do not set') .EQ. 0)  GOTO 290
      
 * get the variable - will put an attrib onto it
 	      cat = cx_category(cx_expr)
 	      var = cx_variable(cx_expr)
+	      varcode = VAR_CODE( cat, var )
+
+* Ticket 2489: Skip this if it is an expression such as EX#2; There is 
+* no varid to attach the attribute to.
+
+	      IF (INDEX(varcode, '#') .GT. 0) GOTO 290
+
 	      dset = cx_data_set( cx_expr )
 	      varcode = SANITARY_VAR_CODE( cat, var )
 
@@ -246,10 +280,11 @@
 	         ENDIF
 	      ENDIF
 
+  290	      CONTINUE
 	      CALL RESET_CLIMAT_ATT
 
 	   ENDIF
-	   ENDIF
+
 
 ! temp diagnostic
 	   IF ( cx_stack_ptr .NE. cx_cmnd+nu ) CALL WARN( 'get_cmnd_???')
@@ -263,7 +298,7 @@
  5000	RETURN
  5100	buff = VAR_CODE(mr_category(is_mr(nu)),mr_variable(is_mr(nu)))
 * ... copied from INTERP_STACK error exit ... probably over-kill
-	CALL RELEASE_WORK_SPC
+	CALL RELEASE_DYN_WORK_SPACE
         CALL DELETE_MRS_IN_PROGRESS
         CALL UNPROTECT_ALL_MRS
         CALL DEALLO_ALL_GRIDS
diff --git a/fer/stk/init_dependencies.F b/fer/stk/init_dependencies.F
index a4149ef..392f106 100644
--- a/fer/stk/init_dependencies.F
+++ b/fer/stk/init_dependencies.F
@@ -49,6 +49,7 @@
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 *
 * V685+ 9/13 *sh*  
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -62,7 +63,8 @@
 	INTEGER	dflt_cx, base_isp, status
 
 * local variable declarations
-	INTEGER		mr, num_indices, j, uv, wkblk, total_items
+	INTEGER		mr, num_indices, j, uv, total_items
+	INTEGER*8	i8_size
 
 * initialize grid stack pointer (pushes down from top)
 	dependency_tree_mode = .TRUE.
@@ -95,14 +97,14 @@
 	dependency_max_recs = total_items/2
 	dependency_max_recs = (dependency_max_recs*dependency_max_recs)/4
 	dependency_max_recs = MAX(dependency_max_recs, 1000)
-	CALL GET_WORK_SPC( dependency_max_recs*dependency_nfields,
-     .			   wkblk, status )
+	i8_size = dependency_max_recs*dependency_nfields
+	CALL GET_DYN_WORK_SPACE( i8_size, status )
 	IF (status .NE. ferr_ok) GOTO 5000
 
 * initialize dependency COMMON
 	dependency_nrows      = 0
 	dependency_root_level = base_isp
-	dependency_block1     = wkblk
+!	dependency_block1     = wkblk    ! 1/17 pre-dynamic memory
 	dependency_status     = df_valid_var
 	IF (cx_data_set(cx_cmnd) .EQ. unspecified_int4) THEN
 	   dependency_dflt_dset  = pdset_irrelevant
diff --git a/fer/stk/interp_context.F b/fer/stk/interp_context.F
index 1e75acf..5fdb11c 100644
--- a/fer/stk/interp_context.F
+++ b/fer/stk/interp_context.F
@@ -50,6 +50,7 @@
 * V532: 6/01 *sh* bug fix:  CALL DEALLO_UNFORMED_GRID instead of DEALLO_GRID
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 * V685: 1/13 *sh* ensure that sst[L=@ave] is recognized as a compressed axis
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -166,7 +167,7 @@
 	RETURN
 
 * error exit - clean up
- 5000	CALL RELEASE_WORK_SPC
+ 5000	CALL RELEASE_DYN_WORK_SPACE
 	CALL DELETE_MRS_IN_PROGRESS
 	CALL UNPROTECT_ALL_MRS
 	CALL DEALLO_ALL_GRIDS
@@ -174,6 +175,3 @@
 	RETURN
 	END
 
-
-
-
diff --git a/fer/stk/interp_stack.F b/fer/stk/interp_stack.F
index f35b63b..6a11317 100644
--- a/fer/stk/interp_stack.F
+++ b/fer/stk/interp_stack.F
@@ -1,4 +1,4 @@
-	SUBROUTINE INTERP_STACK ( memory, isp_base, dflt_cx,
+	SUBROUTINE INTERP_STACK (  isp_base, dflt_cx,
      .				  name_code, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
@@ -108,6 +108,9 @@
 *                  variables, pre-defined axes and grids, cat_calc_var.
 * V680 *acm* 5/16  Fix ticket 2366, putting the subspan void point and modulo
 *                  replications before transformations.
+* V7    5/12 *acm* Union aggregations: DEFINE DATA/AGG/U
+* V702 11/16 *sh*  split/gather on compressed axes -- see IS_TRANS calls
+* V702  1/17 *sh*  for trac enhancement #2369 -- dynamic memory management
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -116,11 +119,11 @@
 	include	'xcontext.cmn'
 	include	'xvariables.cmn'
 	include	'xinterrupt.cmn'
+	include	'xprog_state.cmn'
 	include	'xfr_grid.cmn'
 
 * calling argument declarations:
 	INTEGER		isp_base, dflt_cx, status
-	REAL		memory(*)
 	CHARACTER*(*)	name_code
 
 * internal variable declarations:
@@ -128,10 +131,12 @@
      .			ITSA_MODULO_GCF, TM_ITS_SUBSPAN_MODULO,
      .			look_again, modulo_axes(nferdims), 
      .			explicit_qualifiers, is_remote_var
-	INTEGER		UVAR_NUMBER, KNOWN_GRID, CGRID_AXIS, 
+	INTEGER		UVAR_NUMBER, KNOWN_GRID, CGRID_AXIS,
      .			CAXIS_MODLEN, TM_AXES_REVERSED, rev_axes(nferdims),
      .			cx, mr, idim, cat, act, uvar_pointer,
-     .			com_mr, var, dset
+     .			com_mr, var, dset, slen, slen2
+!	INTEGER*8	CGRID_SIZE8, cxsize
+	CHARACTER	TM_FMT*12, num_str*12, num_str2*12
 
 * external routines passed
 	EXTERNAL	DO_SHIFT, DO_SMTH_BOX, DO_FILL_AVE, DO_AVERAGE,
@@ -291,20 +296,24 @@
 	var  = cx_variable( cx )
 	dset = cx_data_set( cx )
 
+! check that there are no corrupted string arrays in memory
+! use for help diagnosing string pointer errors
+!	CALL SANITY_CHECK_STRING_ARRAYS("INTERP_STACK")
+
 * constants and pseudo-variables and counter variables may be handled immediately
 * ... get user variable grids if unknown
 	IF     ( dset .EQ. pdset_dummy ) THEN
-	   CALL IS_DUMMY ( memory, *2000, status )
+	   CALL IS_DUMMY (  *2000, status )
 	   GOTO 5000
 	ELSEIF ( cat .EQ. cat_pseudo_var ) THEN
-	   CALL IS_PSEUDO ( memory, *2000, status )
+	   CALL IS_PSEUDO (  *2000, status )
 	   GOTO 5000
 	ELSEIF ( cat .EQ. cat_constant ) THEN
-	   CALL IS_CONSTANT( memory, *2000, status )
+	   CALL IS_CONSTANT(  *2000, status )
 	   GOTO 5000
 * ... get a counter variable
 	ELSEIF ( cat .EQ. cat_counter_var ) THEN
-	   CALL IS_COUNTER_VAR   (var, memory, *2000, status )
+	   CALL IS_COUNTER_VAR   (var,  *2000, status )
 	   GOTO 5000
 
         ENDIF
@@ -322,7 +331,7 @@
         CALL COMPLETE_MISSING_LIMITS( cx )
 
 * check in memory to see if we already have the data 
-	CALL FIND_MEM_VAR_INCL_C_CACHE( cx, mr, search_by_value, memory )
+	CALL FIND_MEM_VAR_INCL_C_CACHE( cx, mr, search_by_value )
 	IF ( mr .GT. mr_nonexist ) THEN
 * ... yes - already in memory
 	   is_mr( isp ) = mr
@@ -333,6 +342,31 @@
 	   GOTO 2000						! pop stack
 	ENDIF
 
+* check to make sure that this result can fit into memory.
+*   added 2/2017 just in order to generate earlier, friendlier error message
+! problem: the context, at least when a pseudo-variable is being evaluated
+! may contain context limits (inherited from SET REGION or command qualifiers)
+! that are actually irrelevant to the variable being evaluated.  The result is
+! that CGRID_SIZE8 may return a result that is much larger than what is correct
+! I left this block of code in just in case someone ever wants to follow this
+! path.  It would be nicer to issue an error message at this early point.
+!	IF (.NOT.mode_state(pmode_greedy,1)) THEN
+!	   cxsize = CGRID_SIZE8( cx )
+!	   IF (cxsize .GT. max_mem_allowed) THEN
+!	      IF (cxsize .EQ. 99999999 ) THEN
+!	         CALL ERRMSG(ferr_limits,status,
+!     .		"Did you use an ABSTRACT axis without specifying limits?",
+!     .			*5000)
+!	      ELSE
+!	         num_str  = TM_FMT( max_mem_allowed/1.E6, 3, 12, slen)
+!		 num_str2 = TM_FMT( cxsize/1.E6,          3, 12, slen2)
+!	         CALL ERRMSG( ferr_insuff_memory,status,
+!     .		 "Size of request="//num_str2(:slen2)//
+!     .		 " but currently SET MEMORY/SIZE="//num_str(:slen), *5000)
+!	      ENDIF
+!	   ENDIF
+!	ENDIF
+
 ******************************************************************************
 * * * * * * * * STRIP AWAY TRANSFORMATIONS ONTO STACK * * * * * * * * * * * * 
 ******************************************************************************
@@ -437,6 +471,10 @@
 	   CALL IS_STRIP( isact_class_aggregate_gather, f_dim, *10, status )
 	   GOTO 5000
 	ENDIF
+ 	IF ( cat .EQ. cat_agg_u_var ) THEN
+	   CALL IS_STRIP( isact_class_union_member, no_dim, *10, status )
+	   GOTO 5000
+	ENDIF
 
 * ... reduce algebraic expression to its components ?
 
@@ -447,11 +485,11 @@
 	   is_remote_var = ( uvar_remote(var) )
 
 	   IF (.NOT. is_remote_var) THEN
-	      CALL IS_ALGEBRA( memory, *10, *2000, isp_base, status )
+	      CALL IS_ALGEBRA(  *10, *2000, isp_base, status )
 	   ELSE
 	   
 	      CALL INIT_FTDS_DSET ( cx_data_set(cx), var, status)
-	      CALL IS_READ_REMOTE( memory, *10, *2000, status )
+	      CALL IS_READ_REMOTE(  *10, *2000, status )
 	   ENDIF
 
 	   GOTO 5000
@@ -477,8 +515,7 @@
  300	      CONTINUE
 	      IF ( look_again ) THEN
 * ...         check again in memory - maybe we already have it after all
-	         CALL FIND_MEM_VAR_INCL_C_CACHE( cx, mr,
-     .						search_by_value, memory )
+	         CALL FIND_MEM_VAR_INCL_C_CACHE( cx, mr, search_by_value)
 	         IF ( mr .GT. mr_nonexist ) THEN
 * ...            yes - already in memory ... worth the trouble
 	            is_mr( isp ) = mr
@@ -493,32 +530,32 @@
 	      ENDIF
 	   ENDIF
 
-	   CALL IS_READ( memory, *10, *2000, status )
+	   CALL IS_READ(  *10, *2000, status )
 	   GOTO 5000
 
 * ... get a python static variable ?
         ELSEIF ( cat .EQ. cat_pystat_var ) THEN
-           CALL IS_PYSTAT_VAR(memory, *10, *2000, status)
+           CALL IS_PYSTAT_VAR(*10, *2000, status)
            GOTO 5000
 
 * ... get a "constant variable" (say, "{1,3,5}")
 	ELSEIF ( cat .EQ. cat_const_var	) THEN
-	   CALL IS_CONST_VAR   ( memory, *10, *2000, status )
+	   CALL IS_CONST_VAR   (  *10, *2000, status )
 	   GOTO 5000
 
 * ... get a string in qouble quotes
 	ELSEIF ( cat .EQ. cat_string	) THEN
-	   CALL IS_STRING   ( memory, *10, *2000, status )
+	   CALL IS_STRING   (  *10, *2000, status )
 	   GOTO 5000
 
 * ... get an attribute value
 	ELSEIF ( cat .EQ. cat_attrib_val ) THEN
-	   CALL IS_ATTRIB_VAL   ( memory, *10, *2000, status )
+	   CALL IS_ATTRIB_VAL   (  *10, *2000, status )
 	   GOTO 5000
 
 * ... get a counter variable
 c	ELSEIF ( cat .EQ. cat_counter_var ) THEN
-c	   CALL IS_COUNTER_VAR   ( var, memory, *10, *2000, status )
+c	   CALL IS_COUNTER_VAR   ( var,  *10, *2000, status )
 c	   GOTO 5000
 
 	ELSE
@@ -553,7 +590,7 @@ c	   GOTO 5000
 	   STOP 'isp_undfl'	! IS stack underflowed
 	ELSEIF ( isp .EQ. isp_base ) THEN
 * ... yes - clean up and go home
-	   CALL RELEASE_WORK_SPC
+	   CALL RELEASE_DYN_WORK_SPACE
 	   RETURN
 	ELSE
 *    ... since the stack activity at this level is now completed it contains a
@@ -573,120 +610,122 @@ c	   GOTO 5000
 	   IF     ( act .EQ. isact_request		) THEN
 	      GOTO 10					! grid just obtained
 	   ELSEIF ( act .EQ. isact_reconcile		) THEN
-	      CALL IS_RECONCILE( memory, *10, *2500, status ) ! 11/95
+	      CALL IS_RECONCILE(  *10, *2500, status ) ! 11/95
 	   ELSEIF ( act .EQ. isact_algebra		) THEN
-	      CALL IS_ALGEBRA( memory, *10, *2500, isp_base, status )
+	      CALL IS_ALGEBRA(  *10, *2500, isp_base, status )
 	   ELSEIF ( act .EQ. isact_modulo		) THEN
-	      CALL IS_MODULO( memory, *10, *2500, status )     ! 12/94
+	      CALL IS_MODULO(  *10, *2500, status )     ! 12/94
 	   ELSEIF ( act .EQ. isact_subspan_fill		) THEN
-	      CALL IS_SUBSPAN_FILL( memory, *10, *2500, status )! 7/02
+	      CALL IS_SUBSPAN_FILL(  *10, *2500, status )! 7/02
 	   ELSEIF ( act .EQ. isact_reverse		) THEN
-	      CALL IS_REVERSE( memory, *10, *2500, status )     ! 2/95
+	      CALL IS_REVERSE(  *10, *2500, status )     ! 2/95
 	   ELSEIF ( act .EQ. isact_gather		) THEN
-	      CALL IS_GATHER( memory, *10, *2500, status )
+	      CALL IS_GATHER(  *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_aggregate_gather	) THEN
-	      CALL IS_AGGREGATE_GATHER( memory, *10, *2500, status )
+	      CALL IS_AGGREGATE_GATHER(  *10, *2500, status )
+	   ELSEIF ( act .EQ. isact_get_union_member	) THEN
+	      CALL IS_UNION_MEMBER(  *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_sample		) THEN
-	      CALL IS_SAMPLE( memory, *10, *2500, status )
+	      CALL IS_SAMPLE(  *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_interp		) THEN
-	      CALL IS_TRANS( memory, DO_INTERPOLATE, *2500, status )
+	      CALL IS_TRANS(  DO_INTERPOLATE, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_average		) THEN
-	      CALL IS_TRANS( memory, DO_AVERAGE, *2500, status )
+	      CALL IS_TRANS(  DO_AVERAGE, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_avg_wgt		) THEN
-	      CALL IS_TRANS( memory, DO_AVG_WGT, *2500, status )
+	      CALL IS_TRANS(  DO_AVG_WGT, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_4d_ave		) THEN	! 7/96
-	      CALL IS_TRANS( memory, DO_4D_AVE, *2500, status )
+	      CALL IS_TRANS(  DO_4D_AVE, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_avg_4d_wgt		) THEN	
-	      CALL IS_TRANS( memory, DO_4D_AVE_WGT, *2500, status )
+	      CALL IS_TRANS(  DO_4D_AVE_WGT, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_integ_def		) THEN	! 7/96
-	      CALL IS_TRANS( memory, DO_INTEG_DEF, *2500, status )
+	      CALL IS_TRANS(  DO_INTEG_DEF, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_4d_int_def		) THEN
-	      CALL IS_TRANS( memory, DO_4D_INT_DEF, *2500, status )
+	      CALL IS_TRANS(  DO_4D_INT_DEF, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_shift		) THEN
-	      CALL IS_TRANS( memory, DO_SHIFT, *2500, status )
+	      CALL IS_TRANS(  DO_SHIFT, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_smth_box		) THEN
-	      CALL IS_TRANS( memory, DO_SMTH_BOX, *2500, status )
+	      CALL IS_TRANS(  DO_SMTH_BOX, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_smth_box_p		) THEN
-	      CALL IS_TRANS( memory, DO_SMTH_BOX_P, *2500, status )
+	      CALL IS_TRANS(  DO_SMTH_BOX_P, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_smth_binml		) THEN
-	      CALL IS_TRANS( memory, DO_SMTH_BINML, *2500, status )
+	      CALL IS_TRANS(  DO_SMTH_BINML, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_smth_hanng		) THEN
-	      CALL IS_TRANS( memory, DO_SMTH_HANNG, *2500, status )
+	      CALL IS_TRANS(  DO_SMTH_HANNG, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_smth_max		) THEN
-	      CALL IS_TRANS( memory, DO_SMTH_MAX, *2500, status )
+	      CALL IS_TRANS(  DO_SMTH_MAX, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_smth_median		) THEN
-	      CALL IS_TRANS( memory, DO_SMTH_MEDIAN, *2500, status )
+	      CALL IS_TRANS(  DO_SMTH_MEDIAN, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_smth_min		) THEN
-	      CALL IS_TRANS( memory, DO_SMTH_MIN, *2500, status )
+	      CALL IS_TRANS(  DO_SMTH_MIN, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_smth_parzn		) THEN
-	      CALL IS_TRANS( memory, DO_SMTH_PARZN, *2500, status )
+	      CALL IS_TRANS(  DO_SMTH_PARZN, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_smth_welch		) THEN
-	      CALL IS_TRANS( memory, DO_SMTH_WELCH, *2500, status )
+	      CALL IS_TRANS(  DO_SMTH_WELCH, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_fill_ave		) THEN
-	      CALL IS_TRANS( memory, DO_FILL_AVE, *2500, status )
+	      CALL IS_TRANS(  DO_FILL_AVE, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_fill_interp		) THEN
-	      CALL IS_TRANS( memory, DO_FILL_INTERP, *2500, status )
+	      CALL IS_TRANS(  DO_FILL_INTERP, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_fill_near		) THEN
-	      CALL IS_TRANS( memory, DO_FILL_NEAR, *2500, status )
+	      CALL IS_TRANS(  DO_FILL_NEAR, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_deriv_fwrd		) THEN
-	      CALL IS_TRANS( memory, DO_DERIV_FRWD, *2500, status )
+	      CALL IS_TRANS(  DO_DERIV_FRWD, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_deriv_cntr		) THEN
-	      CALL IS_TRANS( memory, DO_DERIV_CNTR, *2500, status )
+	      CALL IS_TRANS(  DO_DERIV_CNTR, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_deriv_bkwd		) THEN
-	      CALL IS_TRANS( memory, DO_DERIV_BKWD, *2500, status )
+	      CALL IS_TRANS(  DO_DERIV_BKWD, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_min			) THEN
-	      CALL IS_TRANS( memory, DO_MIN, *2500, status )
+	      CALL IS_TRANS(  DO_MIN, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_max			) THEN
-	      CALL IS_TRANS( memory, DO_MAX, *2500, status )
+	      CALL IS_TRANS(  DO_MAX, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_integ_indef		) THEN
-	      CALL IS_TRANS( memory, DO_INT_INDEF, *2500, status )
+	      CALL IS_TRANS(  DO_INT_INDEF, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_locate		) THEN
-	      CALL IS_TRANS( memory, DO_LOCATE, *2500, status )
+	      CALL IS_TRANS(  DO_LOCATE, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_sum  		) THEN
-	      CALL IS_TRANS( memory, DO_SUM, *2500, status )
+	      CALL IS_TRANS(  DO_SUM, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_run_sum		) THEN
-	      CALL IS_TRANS( memory, DO_RUN_SUM, *2500, status )
+	      CALL IS_TRANS(  DO_RUN_SUM, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_variance		) THEN
-	      CALL IS_TRANS( memory, DO_VARIANCE, *2500, status )
+	      CALL IS_TRANS(  DO_VARIANCE, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_std_dev		) THEN
-	      CALL IS_TRANS( memory, DO_STDDEV, *2500, status )
+	      CALL IS_TRANS(  DO_STDDEV, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_good_pt		) THEN
-	      CALL IS_TRANS( memory, DO_NGOOD, *2500, status )
+	      CALL IS_TRANS(  DO_NGOOD, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_bad_pt		) THEN
-	      CALL IS_TRANS( memory, DO_NBAD, *2500, status )
+	      CALL IS_TRANS(  DO_NBAD, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_wgted_eq		) THEN
-	      CALL IS_TRANS( memory, DO_DIST_LOC, *2500, status )
+	      CALL IS_TRANS(  DO_DIST_LOC, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_regrid		) THEN
-	      CALL IS_REGRID( memory, *2500, status )
+	      CALL IS_REGRID( *2500, status )
 	   ELSEIF ( act .EQ. isact_auxvar_regrid
      .         .OR. act .EQ. isact_aux_plot_vars	) THEN
-	      CALL IS_AUXVAR_REGRID( memory, *10, *2500, status )
+	      CALL IS_AUXVAR_REGRID(  *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_autogrid		) THEN
 	      CALL IS_AUTOGRID( *2500, status )
 	   ELSEIF ( act .EQ. isact_4d_var		) THEN	! 7/96
-	      CALL IS_TRANS( memory, DO_4D_VAR, *2500, status )
+	      CALL IS_TRANS(  DO_4D_VAR, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_4d_good_pt		) THEN	! 7/96
-	      CALL IS_TRANS( memory, DO_4D_NGD, *2500, status )
+	      CALL IS_TRANS(  DO_4D_NGD, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_4d_bad_pt		) THEN	! 7/96
-	      CALL IS_TRANS( memory, DO_4D_NBD, *2500, status )
+	      CALL IS_TRANS(  DO_4D_NBD, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_4d_sum		) THEN	! 11/10
-	      CALL IS_TRANS( memory, DO_4D_SUM, *2500, status )
+	      CALL IS_TRANS(  DO_4D_SUM, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_std_4d		) THEN
-	      CALL IS_TRANS( memory, DO_4D_STD, *2500, status )
+	      CALL IS_TRANS(  DO_4D_STD, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_nrst_dist_abv	) THEN	! 9/97
-	      CALL IS_TRANS( memory, DO_NEAREST_DIST_ABOVE, *2500, status )
+	      CALL IS_TRANS(  DO_NEAREST_DIST_ABOVE, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_nrst_dist_blw	) THEN	! 9/97
-	      CALL IS_TRANS( memory, DO_NEAREST_DIST_BELOW, *2500, status )
+	      CALL IS_TRANS(  DO_NEAREST_DIST_BELOW, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_nrst_indx_abv	) THEN	! 9/97
-	      CALL IS_TRANS( memory, DO_NEAREST_INDEX_ABOVE, *2500, status )
+	      CALL IS_TRANS(  DO_NEAREST_INDEX_ABOVE, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_nrst_indx_blw	) THEN	! 9/97
-	      CALL IS_TRANS( memory, DO_NEAREST_INDEX_BELOW, *2500, status )
+	      CALL IS_TRANS(  DO_NEAREST_INDEX_BELOW, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_event_mask		) THEN	! 6/01
-	      CALL IS_TRANS( memory, DO_EVENT, *2500, status )
+	      CALL IS_TRANS(  DO_EVENT, *10, *2500, status )
 	   ELSEIF ( act .EQ. isact_read			) THEN
 	      WRITE (6,*) 'Tell FERRET programmer to check INTERP_STACK'
 * ...	      could set "cat" and branch to above IS_READ
-	      CALL IS_READ( memory, *10, *2000, status )    ! temp ?? needed ?
+	      CALL IS_READ(  *10, *2000, status )    ! temp ?? needed ?
 	   ELSE
               CALL ERRMSG( ferr_internal, status,
      .             'unknown transform', *5000 )
@@ -708,7 +747,7 @@ c	   GOTO 5000
 	GOTO 2000
 
 * error exit - clean up
- 5000	CALL RELEASE_WORK_SPC
+ 5000	CALL RELEASE_DYN_WORK_SPACE
 	CALL DELETE_MRS_IN_PROGRESS
 	CALL UNPROTECT_ALL_MRS
 	CALL DEALLO_ALL_GRIDS
diff --git a/fer/stk/is_aggregate_gather.F b/fer/stk/is_aggregate_gather.F
index 62398ba..fb98ff5 100644
--- a/fer/stk/is_aggregate_gather.F
+++ b/fer/stk/is_aggregate_gather.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_AGGREGATE_GATHER( memory, *, *, status )
+	SUBROUTINE IS_AGGREGATE_GATHER(  *, *, status )
 
 *
 *
@@ -61,7 +61,6 @@
 
 * calling argument declarations:
 	INTEGER	status
-	REAL	memory( mem_blk_size, max_mem_blks )
 * normal return is for error conditions
 * exit #1 is to request another member ( stack has been pushed )
 * exit #2 is to signal completion of the activity at this stack level
@@ -122,8 +121,8 @@
 
 * copy data just received into the result
 * bad data flag differences are resolved during this COPY operation
-	CALL COPY_AGG_INTO( memory(1,mr_blk1(com_mr)), com_mr, com_cx, agg_dim,
-     .			memory(1,mr_blk1(res_mr)), res_mr, is_phase(isp) )
+	CALL COPY_AGG_INTO( memry(com_mr)%ptr, com_mr, com_cx, agg_dim,
+     .			memry(res_mr)%ptr, res_mr, is_phase(isp) )
 
 * ... remove the component protection that signaled we needed it here
 	IF (cx_data_set(com_cx) .NE. pdset_dummy) THEN
diff --git a/fer/stk/is_aggregate_grid.F b/fer/stk/is_aggregate_grid.F
deleted file mode 100644
index 5af7f43..0000000
--- a/fer/stk/is_aggregate_grid.F
+++ /dev/null
@@ -1,286 +0,0 @@
-	SUBROUTINE IS_AGGREGATE_GRID(uvar, dset, cx, 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. 
-*
-*
-* examine members of an aggregate datset, getting grids for 
-* elements that are user-defined (LET/D) variables. Use the 
-* interpretation stack in order to determine a defining grid for the
-* overall aggregate dataset.
-* Detailed description of the underlying logic is in MERGE_CONTEXT
-* Note: When pseudo-variables are used (eg. LIST U/Z[K=1:3]) the grids for them
-*	may not be known until all other components are examined.  In this
-*	case a 2nd pass is required
-
-* programmer - Ansley Mankek (from is_uvar_grid)
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* V6.83 *acm* 11/30/2012 If variable isn't a file variable, get the right definition.
-
-* V685  4/13 *acm* Better grid handling.
-* V685 10/13 *acm* Fix ticket 1098, error defining ensemble when LET/D variables are present.
-* V698  3/16 *acm* Remove unneeded xdset_parms.cmn
-* V699  6/16 *sh*  replace variable uvar_grid with calls to c LIST structures
-
-* calling argument declarations:
-* uvar and dset point to the variable in the aggregate dataset
-* And cx_orig points to the context for that variable.
-
-	INTEGER	uvar, dset, cx, status
-
-* internal variable declarations:
-	LOGICAL its_dynamic
-	INTEGER NCF_GET_AGG_COUNT, TM_LENSTR1, STR_SAME, KNOWN_GRID,
-     .		cx_orig, agg_cx, hi_cx, big_cx, isp_orig, agg_dset, 
-     .		agg_len, imemb, fer_uvar, memb_dset, memb_grid, iline, 
-     .		nv, test_grid, this_grid, len_name, agg_dim, gnum, var,
-     .		varid, idim, i, igrid, lo_cx, slen
-
-	CHARACTER vname*512, buff*512, nm*3
-
-#include "netcdf.inc"
-	include	'tmap_errors.parm'
-	include 'tmap_dims.parm'
-	include	'xtm_grid.cmn_text'
-	external xgt_grid_data
-	include	'ferret.parm'
-	include	'errmsg.parm'
-	include	'interp_stack.parm'
-	include	'xcontext.cmn'
-	include	'xvariables.cmn'
-	include	'xprog_state.cmn'
-	include	'xfr_grid.cmn'
-	include 'xdset_info.cmn_text'
-	external xdset_info_data
-	include 'xdset_info.cd_equiv'
-
-*        ... interpretation stack setup at the time this is called ...
-*	stack level		stack contents
-*	isp+1	<--	level to get grids for components
-*	 isp	<--	current level: evaluate user-variable grid
-
-* --- end of introductory code ---
-
-* initialize
-
-	IF (ds_type(dset) .EQ. 'ENS') agg_dim = e_dim
-	IF (ds_type(dset) .EQ. 'FCT') agg_dim = f_dim
-
-	test_grid = unspecified_int4
-
-	agg_dset = dset
-	status = NCF_GET_AGG_COUNT (agg_dset, agg_len)
-
-	agg_cx = cx
-
-	vname = uvar_text(uvar)
-	len_name = TM_LENSTR1(vname)
-
-* are we pointing at a "LET var = [some expr with an agg var]"
-* If so then the vname is not in the agg dset. Find the 
-* var in the list of uvar_code, and get the right uvar_text
-* (this is a hack, something is wrong with my stack handling)
-
-	CALL CD_GET_VAR_ID (agg_dset, vname, varid, status)
-	IF (status .NE. ferr_ok) THEN 
-	   DO 30, i = uvar, 1, -1
- 	      IF (STR_SAME(vname, uvar_name_code(i)) .EQ. 0) THEN
-	         vname =  uvar_text(i)
-	         len_name = TM_LENSTR1(vname)
-	         CALL CD_GET_VAR_ID (agg_dset, vname, varid, status)
-	         IF (status .NE. ferr_ok) GOTO 5010 
-	         GOTO 40
-               ENDIF
-   30	   CONTINUE
-	   GOTO 5010 
-   40	   CONTINUE
-	ENDIF
-
-	DO 90 imemb = 1, agg_len
-
-* See if the previous two members have matching grids (except for aggretage direction)
-	   IF (test_grid.NE.unspecified_int4 .AND. test_grid.NE.this_grid) THEN
-	      DO 80 idim = 1, nferdims
-	         IF ( (idim .NE. agg_dim) .AND. 
-     .	              (grid_line(idim,this_grid) .NE. grid_line(idim,test_grid)) ) GOTO 5300
-
-   80	      CONTINUE
-	   ENDIF
-
-	   CALL CD_GET_AGG_VAR_INFO (agg_dset, vname, imemb, 
-     .         fer_uvar, memb_dset, memb_grid, iline, nv, status)
-	   IF (fer_uvar .EQ. cat_user_var .AND. memb_grid .EQ. unspecified_int4) 
-     .           memb_grid = KNOWN_GRID(memb_dset, cat_user_var, nv) 
-	   IF (memb_grid .NE. unspecified_int4) THEN
-	      test_grid = memb_grid
-	      this_grid = memb_grid
-	      GOTO 90
-	   ENDIF
-
-* Get ready to call is_uvar_grid. 
-* pre-load the variable info onto the CX stack
-
-	   cx_orig = cx_stack_ptr
-	   CALL STACK_PTR_UP( cx_stack_ptr, max_context, status )
-	   IF ( status .NE. ferr_ok ) GOTO 5000
-	   lo_cx  = is_cx( isp )
-	   hi_cx = cx_stack_ptr
-	   CALL GET_VAR_CONTEXT (  vname(:len_name),
-     .				lo_cx,
-     .				hi_cx,
-     .				status )
-
-	   cx_data_set(hi_cx) = memb_dset
-	   cx_grid(hi_cx) = memb_grid
-	   cx_variable(hi_cx) = nv
-	   cx_category(hi_cx) = cat_user_var
-
-* pre-load the variable info onto the IS stack
-	   isp_orig = isp
-	   CALL PUSH_INTERP_STACK( isp, status )
-	   IF ( status .NE. ferr_ok ) GOTO 5000
-	   is_cx   ( isp ) = hi_cx
-	   is_uvar ( isp ) = nv
-	   is_act  ( isp ) = isact_get_grid
-
-* initialize the stacks - (repeated for each component)
-
- 100	   CALL IS_GRID_MODE( status )
-           hi_cx = is_big_cx(isp) + 1  ! ???
-	   IF ( status .NE. ferr_ok ) GOTO 5000
-
-* evaluate the grid by merging component grids
-*  ... exit 100 is to evaluate the grid for a component uvar
-*  ... exit 300 means that a grid has been obtained
-*  ... "normal" return indicates an error has occurred
- 200	   CALL IS_UVAR_GRID( *100, *300, status )
-	   GOTO 5000
-
-* a grid has been obtained.  Are we done ?
- 300	   IF ( isp .EQ. isp_orig ) THEN
-* ... yes - clean up and go home
-              this_grid = cx_grid(hi_cx) 
-	      IF ( cx_stack_ptr .NE. cx_orig ) WRITE (6,*) 'agg_v_gd'	! temp
-	      GOTO 90
-	   ELSE
-* ... no - go back for more
-	      GOTO 200
-	   ENDIF
-
- 90	CONTINUE
-
-* Test that the grids match for the last aggregate member (except for ensemble direction)
-
-	IF (test_grid.NE.unspecified_int4 .AND. test_grid.NE.this_grid) THEN
-	   DO 180 idim = 1, nferdims
-	      IF ( (idim .NE. agg_dim) .AND. 
-     .	           (grid_line(idim,this_grid) .NE. grid_line(idim,test_grid)) ) GOTO 5300
- 180	CONTINUE
-	ENDIF
-
-* Define the aggregrate grid here. Need a new context?  Should this be done when
-* we get back to is_uvar_grid?
-
-	big_cx = is_big_cx( isp )
-	
-	igrid = cx_grid(big_cx)
-	DO 400 idim = 1, nferdims
-	   grid_line(idim, igrid) = grid_line(idim,test_grid)
-  400	CONTINUE
-	grid_line(agg_dim, igrid) = iline
-
-* catalog this result checking for matching previously existing grid
-	CALL TM_GET_LIKE_DYN_GRID(igrid, its_dynamic, gnum, 
-     .				grd_stk_ptr, status ) 
-
-* set context for aggregate grid
-	cx_grid(agg_cx) = gnum
-	uvar_grid( uvar, dset ) = gnum 
-	CALL SAVE_UVAR_GRID(uvar, gnum, ptype_float, dset)
-
-	cx_grid(agg_cx) = gnum
-	cx_data_set(agg_cx) = agg_dset
-	IF (agg_dim .EQ. e_dim) cx_category(agg_cx) = cat_agg_e_var
-	IF (agg_dim .EQ. f_dim) cx_category(agg_cx) = cat_agg_f_var
-
-!	uvar_grid( uvar, dset ) = gnum   ! deleteMe duplicate line
-	uvar_dset( uvar ) = dset
-	uvar_need_dset( uvar ) = .TRUE.
-
-	var = cx_variable(agg_cx)
-	ds_grid_number(var) = gnum 
-
-* Get ds_grid_start, ds_grid_end, ds_ordering from the last file variable
-
-	IF (test_grid .NE. unspecified_int4) THEN
-	   DO 720 nv = 1, maxvars
-	       IF (ds_grid_number(nv) .EQ. test_grid)  GOTO 725
- 720	   CONTINUE
- 725	   CONTINUE
-        ENDIF
-
-	IF (nv .GT. maxvars) GOTO 5010
-
-        DO 730 idim = 1, nferdims
-	   ds_grid_start(idim,var)= ds_grid_start(idim,nv)
-	   ds_grid_end(idim,var)  = ds_grid_end(idim,nv)
-	   ds_ordering(idim,var)  = ds_ordering(idim,nv)
- 730	CONTINUE
-        ds_ordering(agg_dim,var) = agg_dim
-        ds_grid_start(agg_dim,var) = 1
-        ds_grid_end(agg_dim,var) = line_dim(iline)
-
-	is_cx(isp) = agg_cx
-	is_uvar ( isp ) = uvar
-
-* Now we have the grid for the variable in the agg. dataset. Store the grid 
-* number for future use.
-
-CC dont think this is right. should be the MEMBER grids not the aggregate var grid.
-	DO 800 imemb = 1, agg_len
-	   CALL CD_PUT_AGG_MEMB_GRID (agg_dset, vname, imemb, gnum, status)
- 800	CONTINUE
-
-	RETURN
-
-* error exit
- 5000	CALL DEALLO_ALL_GRIDS
-	RETURN
- 5300	CALL ERRMSG( ferr_aggregate_error, status,
-     .   'grids for LET/D variables do not match for aggregate dataset'
-     .   //vname,*5000 )
- 5010	vname = uvar_text(uvar)
-	CALL ERRMSG( ferr_aggregate_error, status,
-     .   'error defining grid for variable in aggregate dataset'
-     .   //vname,*5000 )
-
-	END	
diff --git a/fer/stk/is_algebra.F b/fer/stk/is_algebra.F
index 4240980..12a4332 100644
--- a/fer/stk/is_algebra.F
+++ b/fer/stk/is_algebra.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_ALGEBRA( memory, *, *, isp_base, status )
+	SUBROUTINE IS_ALGEBRA(  *, *, isp_base, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -105,6 +105,11 @@
 *                  uses a function having numeric and string versions.
 * v698 5/16  *acm* ticket 2413: New attribute keywords ncoordvars, coordnames
 *                  return info about coordinate-variables in datasets
+* V7    5/16 *acm* See ticket 2352. For LET/D variables look for info under that dataset
+* V710 9/16  *acm* ticket 2465: Parsing expressions including attribute references.
+* V702 1/17 *sh* as a part of conversion to dynamic memory fixed bug that 
+*                CHECK_NAN_DATA_SUB was being called on string variables
+* V720: 4/17 *acm* Add direction-changing functions as a subset of grid-changing ones
 
 	include 'tmap_dims.parm'
 #include "netcdf.inc"
@@ -120,8 +125,7 @@
 
 * calling argument declarations:
 	INTEGER	isp_base, status
-!	REAL	memory( mem_blk_size, max_mem_blks )  ! old
-	REAL	memory( mem_blk_size, * )             ! experimental change
+!	REAL	memory( mem_blk_size, * )             ! experimental change
 * normal return is for error conditions
 * exit #1 is to request another grid ( stack has been pushed )
 * exit #2 is to signal completion of the activity at this stack level
@@ -281,7 +285,8 @@
      .	    .OR. itype .EQ. alg_log_struct
      .	    .OR. itype .EQ. alg_log_vstruct   ) THEN
 	   GOTO 500
-	ELSEIF ( itype .EQ. alg_grid_chg_fcn ) THEN
+	ELSEIF ( itype .EQ. alg_grid_chg_fcn
+     .	    .OR. itype .EQ. alg_dir_chg_fcn ) THEN
 	   GOTO 600
 	ELSEIF ( itype .EQ. alg_const_var ) THEN
 	   GOTO 700
@@ -455,7 +460,7 @@
 * ...compute new value replacing component(s) (if any) on stack
 * ...and changing variable protections appropriately
 * ...also pop the space they used on the context stack
- 500	CALL IS_DO_OP( memory, itype, uvar_text(uvar)(start:end),
+ 500	CALL IS_DO_OP(  itype, uvar_text(uvar)(start:end),
      .		       lo_isp, uvar_ifv(uvar), status )
 	IF ( status .NE. ferr_ok ) RETURN
 	GOTO 100
@@ -470,7 +475,7 @@
 * CALL ADD_RDC_XFORM is a test to see if we can get the right
 * context onto the context which will be used for the result
  600    CALL ADD_RDC_XFORM(is_big_cx(lo_isp), status)
-	CALL IS_DO_GC_FCN( memory, uvar, uvar_text(uvar)(start:end),
+	CALL IS_DO_GC_FCN(  uvar, uvar_text(uvar)(start:end),
      .		       lo_isp, status )
 	IF ( status .NE. ferr_ok ) RETURN
 	GOTO 100
@@ -513,7 +518,7 @@
  	cx_lo_ss(hi_cx, x_dim) = unspecified_int4
  	cx_hi_ss(hi_cx, x_dim) = unspecified_int4
 
-	CALL GET_VAR_CONTEXT (  uvar_text(uvar),
+	CALL GET_VAR_CONTEXT (  uvar_text(uvar)(start:end),
      .				lo_cx,
      .				hi_cx,
      .				status )
@@ -533,14 +538,24 @@
         IF (dot .GT. 0) name = uvar_text(uvar)(1:dot-1)
         CALL FIND_VAR_NAME(pdset_irrelevant, name, cat, ivar)
         IF (  ivar .NE. munknown_var_name .AND.
-     .        cat .EQ. cat_user_var) dset = pdset_uvars
+     .        cat .EQ. cat_user_var) THEN
+           dset = pdset_uvars
+
+* Check whether its a LET/D variable
+           CALL CD_GET_VAR_ID (dset, uvar_text(uvar)(1:dot-1), varid, status)
+           IF (dset.EQ.pdset_uvars .AND. status.NE.ferr_ok) THEN
+	      dset = cx_data_set(hi_cx)
+	      CALL CD_GET_VAR_ID (dset, uvar_text(uvar)(1:dot-1), varid, status)
+           ENDIF
+           IF (status.NE.ferr_ok) do_err = .TRUE. 
+        ENDIF
 
         IF (dset .NE. unspecified_int4 .AND. 
      .      dset .NE. pdset_irrelevant) THEN
 
 * do_err: issue error message if attrib does not exist on varname.attname
            do_err = .TRUE.
-           CALL  BREAK_VARATTNAME (  uvar_text(uvar), dset, 
+           CALL  BREAK_VARATTNAME (  uvar_text(uvar)(start:end), dset, 
      .                            name, attname, varid, do_err, status )
 
 * Is the *attr name* a pseudo-name for a variable: attnames, dimnames,
@@ -816,11 +831,11 @@
 * at this point the list of indices has been evaluated and is on the isp stack
 * (at lo_isp+1). Setup "sampling" activity on the stack, using that list to
 * guide obtaining the other arg
- 900	CALL SETUP_SAMPLE( memory, is_cx(lo_isp+1), is_mr(lo_isp+1),
+ 900	CALL SETUP_SAMPLE(  is_cx(lo_isp+1), is_mr(lo_isp+1),
      .			   ifcn, big_cx, status )
 	IF ( status .NE. ferr_ok ) GOTO 5000
 * ... setup to grab first chunk of sampling data
-	CALL IS_SAMPLE( memory, *910, *5900, status ) !	RETURN 2 means all done
+	CALL IS_SAMPLE(  *910, *5900, status ) !	RETURN 2 means all done
 	GOTO 5900
  910	RETURN 1
 
@@ -880,14 +895,15 @@
 * flags removed (otherwise done when they're used as operands)
 * (ticket 2291) Handle variables from attribute information the same way.
 
-	IF ( mr_category( hi_mr ) .EQ. cat_temp_var .OR.
-     .	     mr_category(hi_mr) .EQ. cat_attrib_val) THEN
+	IF ( mr_type(hi_mr) .NE. ptype_string
+     .	.AND. (mr_category(hi_mr) .EQ. cat_temp_var .OR.
+     .	       mr_category(hi_mr) .EQ. cat_attrib_val)    ) THEN
 * ... result of algebraic computation
 * ... if user set the missing value flag make sure it is used
 	   IF ( cx_bad_data(big_cx) .NE. mr_bad_data(hi_mr) ) THEN
 	      size = MGRID_SIZE( hi_mr )
 	      CALL REPLACE_BAD_DATA_SUB ( mr_bad_data(hi_mr),
-     .			                  memory(1,mr_blk1(hi_mr)), size,
+     .			                  memry(hi_mr)%ptr, size,
      .                                    cx_bad_data(big_cx)  )
 	   ENDIF
 
@@ -910,8 +926,8 @@ c Tentative fix for ticket 2234
 	   CALL CREATE_MEM_VAR( big_cx, new_mr, status )
 	   IF ( status .NE. ferr_ok ) GOTO 5000
 	   is_mr( lo_isp ) = new_mr
-	   CALL COPY_GRID( memory(1,mr_blk1(hi_mr)),  hi_mr,
-     .			   memory(1,mr_blk1(new_mr)), new_mr )
+	   CALL COPY_GRID( memry(hi_mr)%ptr,  hi_mr,
+     .			   memry(new_mr)%ptr, new_mr )
 	   CALL PASS_AMBIG_LIMS( lo_cx, new_mr, status )
 	   IF ( status .NE. ferr_ok ) GOTO 5000
 * component no longer needed
@@ -937,19 +953,20 @@ c Tentative fix for ticket 2234
 	ENDIF
 
 * if user set the missing value flag make sure it is used
-	IF ( mr_category(hi_mr) .NE. cat_attrib_val) THEN 
+	IF ( mr_category(hi_mr) .NE. cat_attrib_val
+     .	.AND.mr_type    (hi_mr) .NE. ptype_string   ) THEN 
 	   IF ( cx_bad_data(lo_cx) .NE. mr_bad_data(is_mr(lo_isp))) THEN  
 	      new_mr = is_mr(lo_isp)
 	      size = MGRID_SIZE( new_mr )
 	      CALL REPLACE_BAD_DATA_SUB ( mr_bad_data(new_mr),
-     .			               memory(1,mr_blk1(new_mr)), size,
+     .			               memry(new_mr)%ptr, size,
      .                                  cx_bad_data(lo_cx)  )
 	      mr_bad_data(new_mr) = cx_bad_data(lo_cx)
 
 	   ELSE
 	      new_mr = is_mr(lo_isp)
 	      size = MGRID_SIZE( new_mr )
-	      CALL CHECK_NAN_DATA_SUB ( memory(1,mr_blk1(new_mr)), size,
+	      CALL CHECK_NAN_DATA_SUB ( memry(new_mr)%ptr, size,
      .                                 mr_bad_data(new_mr) )
 	   ENDIF
 	ENDIF
diff --git a/fer/stk/is_attrib_val.F b/fer/stk/is_attrib_val.F
index c1c7215..69e4cce 100644
--- a/fer/stk/is_attrib_val.F
+++ b/fer/stk/is_attrib_val.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_ATTRIB_VAL( memory, *, *, status )
+	SUBROUTINE IS_ATTRIB_VAL(  *, *, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -52,6 +52,8 @@
 * V698 *acm* 1/16 Allow for Epic CDF files, ds_type = 'ECDF'
 * v698 5/16  *acm* ticket 2413: New attribute keywords ncoordvars, coordnames
 *                  return info about coordinate-variables in datasets
+* V710 9/16  *acm* ticket 2465: Parsing expressions including attribute references.
+* 712 2/17 *sh* fix latent bug when shifting an array of attribute values
 
         include 'tmap_dims.parm'
 #       include "tmap_dset.parm"
@@ -66,7 +68,6 @@
 
 * calling argument declarations:
 	INTEGER	status
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
         CHARACTER*512 varname, name
@@ -79,7 +80,10 @@
      .          ngatts, recdim, ivar, vartype, nvdims,
      .          vdims(8), dsdims(200), iatt, nvatts, idim, nd, vd, na,
      .          attoutflag, all_outflag, xdim, i1, i2, slen,
-     .          i, indx, nv, dot, cat, attid, npts, dimid, nddims
+     .          i, indx, nv, dot, cat, attid, npts, dimid, nddims, 
+     .          iitem, start, end, wk_buff
+
+	INTEGER*8 n8
 
 * --- end of introductory code ---
 * initialize
@@ -126,7 +130,20 @@
 
 * do_err: issue error message if attrib does not exist on varname.attname
         do_err = .TRUE. 
-        CALL BREAK_VARATTNAME ( uvar_text(uvar), dset, varname, 
+	
+	iitem = 0
+	DO i = 1, uvar_num_items(uvar)
+ 	   IF (dot .GE. uvar_item_start(i,uvar) .AND. 
+     .         dot .LT. uvar_item_end(i,uvar)) iitem = i
+	ENDDO
+	
+	start = 1
+	end = TM_LENSTR1(uvar_text(uvar))
+	IF (iitem .GT. 0) THEN
+	   start = uvar_item_start(iitem,uvar)
+	   end = uvar_item_end(iitem,uvar)
+	ENDIF
+        CALL BREAK_VARATTNAME ( uvar_text(uvar)(start:end), dset, varname, 
      .                          attname, varid, do_err, status )
  
         IF (STR_SAME (varname, '.') .EQ. 0) THEN
@@ -140,7 +157,7 @@
 
               n = i2 - i1 + 1
               CALL INIT_C_STRING_ARRAY( n,
-     .				     memory(1,mr_blk1(mr)),
+     .				     memry(mr)%ptr,
      .				     mr_c_pointer(mr)    )
               n = 0
               nv = 0
@@ -166,7 +183,7 @@
 
               n = i2 - i1 + 1
               CALL INIT_C_STRING_ARRAY( n,
-     .				     memory(1,mr_blk1(mr)),
+     .				     memry(mr)%ptr,
      .				     mr_c_pointer(mr)    )
               n = 0
               nv = 0
@@ -193,7 +210,7 @@
 
               n = i2 - i1 + 1
 	      CALL INIT_C_STRING_ARRAY( n,
-     .				     memory(1,mr_blk1(mr)),
+     .				     memry(mr)%ptr,
      .				     mr_c_pointer(mr)    )
                 IF (ds_type(dset).NE.'CDF' .AND. ds_type(dset).NE.'ECDF') GOTO 5200
 
@@ -220,7 +237,7 @@
                  CALL CD_GET_VAR_ID (dset, '.', varid, status)
 
 	         CALL INIT_C_STRING_ARRAY( ngatts,
-     .				     memory(1,mr_blk1(mr)),
+     .				     memry(mr)%ptr,
      .				     mr_c_pointer(mr)    )
                  n = 0
                  DO 300 iatt = i1, i2
@@ -236,11 +253,11 @@
            ELSE IF (STR_SAME(attname, 'ndims') .EQ. 0 ) THEN
               IF (ds_type(dset).NE.'CDF' .AND. ds_type(dset).NE.'ECDF') GOTO 5200
 
-              memory( 1, mr_blk1(mr)) = ndims
+              memry(mr)%ptr(1) = ndims
               got_it = .TRUE.
 
            ELSE IF (STR_SAME(attname, 'nattrs') .EQ. 0 ) THEN
-              memory( 1, mr_blk1(mr)) = ngatts
+              memry(mr)%ptr(1) = ngatts
               got_it = .TRUE.
 
            ELSE IF (STR_SAME(attname, 'nvars') .EQ. 0 .OR.
@@ -255,7 +272,7 @@
                  IF (.NOT. coordvar) n = n + 1
  400          CONTINUE
               IF (STR_SAME(attname, 'ncoordvars') .EQ. 0) n = nvars-n
-              memory( 1, mr_blk1(mr)) = n
+              memry(mr)%ptr(1) = n
               got_it = .TRUE.
            ENDIF
 
@@ -278,7 +295,7 @@
 * ... set up FORTRAN-independent pointer
 
 	            CALL INIT_C_STRING_ARRAY( 1,
-     .				     memory(1,mr_blk1(mr)),
+     .				     memry(mr)%ptr,
      .				     mr_c_pointer(mr)    )
 
 * ... string
@@ -286,7 +303,7 @@
      .			         varname, attname, status)
 	         ELSE
 * ... array of numbers
-	            CALL ATTRIB_VALS (memory( 1, mr_blk1(mr)), 
+	            CALL ATTRIB_VALS (memry(mr)%ptr, 
      .                size, n, dset, varid, varname, attname, status)
 	         ENDIF
                  IF ( status .NE. ferr_ok ) GOTO 5000
@@ -301,7 +318,7 @@
                  IF (attname(1:1) .EQ. "'" .AND. 
      .               attname(slen:slen) .EQ. "'" ) THEN
 
-	            CALL ATTRIB_VALS (memory( 1, mr_blk1(mr)), 
+	            CALL ATTRIB_VALS (memry(mr)%ptr, 
      .                 size, n, dset, varid, varname, attname, status)
                     IF (status .NE. ferr_ok ) CALL ATTRIB_STRING (cx, mr, 
      .	                      dset, varid,  varname, attname, status)
@@ -328,7 +345,7 @@
                  IF (nvatts .GT. 0) THEN
 
 	           CALL INIT_C_STRING_ARRAY( nvatts,
-     .				     memory(1,mr_blk1(mr)),
+     .				     memry(mr)%ptr,
      .				     mr_c_pointer(mr)    )
                    n = 0
                    DO 600 iatt = i1, i2
@@ -348,7 +365,7 @@
                 IF (nvdims .GT. 0) THEN
 
 	           CALL INIT_C_STRING_ARRAY( nvdims,
-     .				     memory(1,mr_blk1(mr)),
+     .				     memry(mr)%ptr,
      .				     mr_c_pointer(mr)    )
                 IF (ds_type(dset).NE.'CDF' .AND. ds_type(dset).NE.'ECDF') GOTO 5200
 
@@ -366,16 +383,16 @@
              ELSE IF (STR_SAME(attname, 'ndims') .EQ. 0 ) THEN
                 IF (ds_type(dset).NE.'CDF' .AND. ds_type(dset).NE.'ECDF') GOTO 5200
 
-                memory( 1, mr_blk1(mr)) = nvdims
+                memry(mr)%ptr(1) = nvdims
                 got_it = .TRUE.
 
              ELSE IF (STR_SAME(attname, 'nctype') .EQ. 0 ) THEN
 
-                memory( 1, mr_blk1(mr)) = vartype
+                memry(mr)%ptr(1) = vartype
                 got_it = .TRUE.
 
              ELSE IF (STR_SAME(attname, 'nattrs') .EQ. 0 ) THEN
-                memory( 1, mr_blk1(mr)) = nvatts
+                memry(mr)%ptr(1) = nvatts
                 got_it = .TRUE.
 
              ENDIF
@@ -406,7 +423,7 @@
  900	      IF ( attype .EQ. NCCHAR ) THEN
 * ... set up FORTRAN-independent pointer
 	         CALL INIT_C_STRING_ARRAY( 1,
-     .				     memory(1,mr_blk1(mr)),
+     .				     memry(mr)%ptr,
      .				     mr_c_pointer(mr)    )
 
 * ... string
@@ -414,15 +431,26 @@
      .			          status)
 	      ELSE
 * ... array of numbers
-	         CALL ATTRIB_VALS (memory( 1, mr_blk1(mr)), size, n, dset, 
+
+* 2/17 - for a case like 
+*	define att v.att = {1, 2, 3, 4, 5}
+*	load v.att[i=3:5]
+* the allocated memory will not be large enough to accommodate the full array
+* of attribute values, so we need to allocate a work array
+! since other calls are ignoring return status, we will, too ...
+	         n8 = attlen
+	         CALL CREATE_DYN_WRKSPC( n8, wk_buff, status )
+	         CALL ATTRIB_VALS (workmem(wk_buff)%ptr, size, n, dset, 
      .                varid, varname, attname, status)
      
-                 indx = 1
+* ... left-shift the results to start a context low limit
+                 indx = 0
                  DO 800 i = i1, i2
-                    memory(indx, mr_blk1(mr)) = memory(i,mr_blk1(mr))
                     indx = indx + 1
+                    memry(mr)%ptr(indx) = workmem(wk_buff)%ptr(i)
 800              CONTINUE
-                    
+
+	         CALL FREE_WS_DYNMEM( wk_buff )
 
 	      ENDIF
 	      IF ( status .NE. ferr_ok ) GOTO 5000
diff --git a/fer/stk/is_auxvar_regrid.F b/fer/stk/is_auxvar_regrid.F
index 04e7652..bc05d57 100644
--- a/fer/stk/is_auxvar_regrid.F
+++ b/fer/stk/is_auxvar_regrid.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_AUXVAR_REGRID( memory, *, *, status )
+	SUBROUTINE IS_AUXVAR_REGRID(  *, *, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -67,7 +67,6 @@
 
 * calling argument declarations:
 	INTEGER	status
-	REAL	memory( mem_blk_size, max_mem_blks )
 * normal exit is for error conditions
 * exit #1 is to signal completion of the activity at this stack level
 
@@ -219,9 +218,9 @@
 
 * create the context for the source data needed to perform the regrid
               CALL AUX_REGRID_LIMS( lo_cx, hi_cx, axis_list, naxis,
-     .                memory( 1, mr_blk1(mr1) ), mr1, cx1,
-     .                memory( 1, mr_blk1(mr2) ), mr2, cx2,
-     .                memory( 1, mr_blk1(mr3) ), mr3, cx3,
+     .                memry(mr1)%ptr, mr1, cx1,
+     .                memry(mr2)%ptr, mr2, cx2,
+     .                memry(mr3)%ptr, mr3, cx3,
      .                status )
               IF (status .NE. ferr_ok) GOTO 5000
 	   ENDIF
@@ -358,9 +357,7 @@
 	   is_mr( lo_isp ) = dst_mr
 
 * auxiliary regridding often creates ragged edges, so pre-fill with missing values
-           CALL FILL_MEMORY ( memory, mr_blk1 (dst_mr),
-     .                        mr_nblks(dst_mr),
-     .                        mr_bad_data(dst_mr) )
+           CALL FILL_MEMORY ( dst_mr, mr_bad_data(dst_mr) )
 
 * diagnostic message ?
 	   IF (mode_diagnostic) THEN
@@ -372,12 +369,12 @@
 	   aux_mr_list(5) = dst_mr
            CALL NON_ARRAY_SUBSC( aux_mr_list, 5 )    ! 5 arguments to pass
 
-	   CALL DO_AUX_VAR_REGRID( memory, axis_list, naxis, aux_has_cell_pts,
-     .	   		memory(1,mr_blk1(src_mr )), src_mr,  src_cx,
-     .			memory(1,mr_blk1(dst_mr )), dst_mr,  dst_cx,
-     .			memory(1,mr_blk1(mr1)), mr1, cx1,
-     .			memory(1,mr_blk1(mr2)), mr2, cx2,
-     .			memory(1,mr_blk1(mr3)), mr3, cx3,
+	   CALL DO_AUX_VAR_REGRID(  axis_list, naxis, aux_has_cell_pts,
+     .	   		memry(src_mr )%ptr, src_mr,  src_cx,
+     .			memry(dst_mr )%ptr, dst_mr,  dst_cx,
+     .			memry(mr1)%ptr, mr1, cx1,
+     .			memry(mr2)%ptr, mr2, cx2,
+     .			memry(mr3)%ptr, mr3, cx3,
      .			status )
 
 	   IF (status .NE. ferr_ok) GOTO 5000
diff --git a/fer/stk/is_const_var.F b/fer/stk/is_const_var.F
index 258830d..4940aed 100644
--- a/fer/stk/is_const_var.F
+++ b/fer/stk/is_const_var.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_CONST_VAR( memory, *, *, status )
+	SUBROUTINE IS_CONST_VAR(  *, *, status )
 
 * create a constant valued array  "variable" in memory
 
@@ -21,7 +21,6 @@
 
 * calling argument declarations:
 	INTEGER	status
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
 	INTEGER	CGRID_SIZE,
@@ -57,7 +56,7 @@
      .	.OR. INDEX(uvar_text(uvar)(start:end), "_SQ_") .GT. 0 ) THEN
 * ... set up FORTRAN-independent pointer
 	   CALL INIT_C_STRING_ARRAY( size,
-     .				     memory(1,mr_blk1(mr)),
+     .				     memry(mr)%ptr,
      .				     mr_c_pointer(mr)      )
 
 * ... array of strings
@@ -71,7 +70,7 @@
 * ... array of numbers
 ! ... as-of 12/98 limited to one block max array lentgh
 	   CALL PARSE_NUMBER_LIST(uvar_text(uvar)(start:end),
-     .			          memory( 1, mr_blk1(mr)),
+     .			          memry(mr)%ptr,
      .			          size,
      .			          n,
      .			          status)
diff --git a/fer/stk/is_constant.F b/fer/stk/is_constant.F
index 7abd025..feb2c14 100644
--- a/fer/stk/is_constant.F
+++ b/fer/stk/is_constant.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_CONSTANT( memory, *, status )
+	SUBROUTINE IS_CONSTANT(  *, status )
 
 *
 *
@@ -59,7 +59,6 @@
 
 * calling argument declarations:
 	INTEGER	status
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
 	INTEGER	mr, cx
@@ -81,7 +80,7 @@
 	IF (mode_diagnostic) CALL DIAGNOSTIC_OUT('constan',mr,point_to_mr)
 
 * insert the constant
-	memory( 1, mr_blk1(mr) ) = cx_value(cx)
+	memry(mr)%ptr(1) = cx_value(cx)
 
 * set the bad data flag to an unusual number
 	mr_bad_data( mr ) = -2.1E34
diff --git a/fer/stk/is_counter_var.F b/fer/stk/is_counter_var.F
index 07380fc..274bbd3 100644
--- a/fer/stk/is_counter_var.F
+++ b/fer/stk/is_counter_var.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_COUNTER_VAR( var, memory, *, status )
+	SUBROUTINE IS_COUNTER_VAR( var,  *, status )
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -55,7 +55,6 @@
 
 * calling argument declarations:
 	INTEGER	var, status
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
 	INTEGER	mr, cx, csp1, idim
@@ -99,7 +98,7 @@
 	IF (mode_diagnostic) CALL DIAGNOSTIC_OUT('constan',mr,point_to_mr)
 
 * insert the constant
-	memory( 1, mr_blk1(mr) ) = counter_const
+	memry(mr)%ptr(1) = counter_const
 
 * set context data
 	cx_bad_data( cx ) = bad_val4
diff --git a/fer/stk/is_dependencies.F b/fer/stk/is_dependencies.F
index 44291db..5b8b287 100644
--- a/fer/stk/is_dependencies.F
+++ b/fer/stk/is_dependencies.F
@@ -49,6 +49,7 @@
 *       later same month: tweak the repair to fix bug #2225
 *	and always report TWO (or more) dependency lines when regridding occurs
 * V695+ 2/15 *sh* - report target of regrid even if auxvar is involved 
+* V720  3/17 *acm*  clean up long commented-out code referring to aggregations 
 
 * calling argument declarations:
 	INTEGER	status
@@ -323,22 +324,6 @@
 	   cx_stack_ptr = cx_stack_ptr - 1
 	   GOTO 100
 	ENDIF
-
-* more aggregate variable support
-!* grid for this aggregate dataset is not known.  Back to get_uvar_grid and call
-!* is_aggregate_grid to get it
-!* ... repeat this phase again when we get back
-! 990	is_phase(isp) = is_phase(isp) - 1
-!* load the new variable info onto the IS stack
-!	CALL PUSH_INTERP_STACK( isp, status )
-!	IF ( status .NE. ferr_ok ) RETURN
-!c	is_sum( isp ) = isalg_merge_n
-!
-!	is_cx   ( isp ) = hi_cx
-!	is_uvar ( isp ) = cx_variable( hi_cx )
-!	is_act  ( isp ) = isact_get_agg_grid	! get aggregate grid on return.
-!
-!	RETURN 1
 	
 * clean up: release context and isp stack space
  1000	CONTINUE
diff --git a/fer/stk/is_do_gc_fcn.F b/fer/stk/is_do_gc_fcn.F
index 7285bd4..cba35e9 100644
--- a/fer/stk/is_do_gc_fcn.F
+++ b/fer/stk/is_do_gc_fcn.F
@@ -1,5 +1,5 @@
 	SUBROUTINE IS_DO_GC_FCN
-     .			( memory, uvar, alg_text, lo_isp, status )
+     .			(  uvar, alg_text, lo_isp, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -59,6 +59,13 @@
 *                   of argument/return-type variable and predimensional (data size)
 *                   array parameter (pointer size to one in double-precision Ferret).
 * V694  *acm* 1214 Fixing ticket 2220: varname.attname in a function argument
+* 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
+* 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
+
 
         IMPLICIT NONE
 	include 'tmap_dims.parm'
@@ -76,20 +83,22 @@
 
 * calling arguments
 	INTEGER		uvar, lo_isp, status
-	REAL		memory( mem_blk_size, max_mem_blks )
 	CHARACTER*(*)	alg_text
 
 * local variables
 	LOGICAL	ITS_UN_CACHED, not_reusable, check_alt_fcn
-	INTEGER	GCF_FIND_FCN, GCF_NUM_ARGS, GCF_ARG_TYPE,
+	INTEGER	GCF_FIND_FCN, GCF_find_dir_fcn, GCF_NUM_ARGS, GCF_ARG_TYPE,
      .		MGRID_SIZE_DELTA, GCF_ARG_EVAL_ORDER, EFCN_GET_RTN_TYPE,
      .		ifcn, icom, iarg, num_com, mr, res_cx,
      .		mr1, mr2, mr3, mr4, mr5, mr6, mr7, mr8, mr9, impl_grid,
      .          typ1, typ2, typ3, typ4, typ5, typ6, typ7, typ8, typ9,
      .          typr, pdim1, pdim2, pdim3, pdim4, pdim5, pdim6, pdim7,
      .          pdim8, pdim9, pdimr, frame_bottom, com_cx, res_mr,
-     .          itype, arg_first_mismatch, slen, iset
-        CHARACTER*40 TM_FMT, alt_name
+     .          itype, arg_first_mismatch, slen, iset, igrid, idim,
+     .          aux_cat(nferdims), aux_var(nferdims), 
+     .          idir_args(nferdims), idir_vals(nferdims), num_dirs, ival
+        CHARACTER*40 TM_FMT, GCF_NAME*40, alt_name
+	REAL	oneval
 
 * convenience equivalences
 	INTEGER	com(10), typ(9), pdim(9)
@@ -146,6 +155,15 @@
 	IF ( frame_bottom .LE. lo_isp ) CALL ERRMSG
      .		( ferr_syntax, status, 'RPN', *5000 )
 
+* point to the memory resident components
+* (if fewer than 9 components default extras to dummy)
+	DO icom = 1, num_com
+	   com(icom) = is_mr(frame_bottom+icom-1)
+	ENDDO
+	DO icom = num_com+1, 9
+	   com(icom) = dummy_mr
+	ENDDO
+
 * trap attempts to pass arguments of the wrong type (1/99)
 
         arg_first_mismatch = 0
@@ -199,7 +217,43 @@
  101	   CONTINUE
         ENDIF
 
-!* the merged context is already nearly complete
+
+* Does the function designate an alternate function depending on a 'direction' argument?
+* If so update alg_text and ifcn
+
+        has_uvar_dc = .FALSE.
+        IF ( ifcn .LE. GFCN_NUM_INTERNAL ) THEN
+
+	   CALL GCF_GET_ALT_FCN_DIR_ARG ( ifcn, idir_args )
+	   num_dirs = 0
+	   DO idim = 1, nferdims
+	      idir_vals(idim) = 0
+	   ENDDO
+
+* Collect the directions to use in determing the alt fcn. 
+* allow them to be out of dimension order.
+	   DO idim = 1, nferdims 
+	      IF (idir_args(idim) .GT. 0) THEN
+	         CALL RETURN_ONE_VAL (memry(com(idir_args(idim)))%ptr, oneval)
+	         ival = INT(oneval)
+		 IF (ival.GE.1 .AND. ival.LE.nferdims) THEN
+		    IF (idir_vals(ival) .NE. 0) GOTO 5300
+		    num_dirs = num_dirs + 1
+	            idir_vals(ival) = ival
+		 ELSE
+		    GOTO 5300  ! invalid value for a direction-setting arg
+		 ENDIF
+	      ENDIF
+	   ENDDO
+
+	   IF (num_dirs .GT. 0) THEN
+	      CALL GCF_SET_ALT_FCN_FOR_DIR (ifcn, idir_vals, num_dirs)
+	      IF (ifcn .EQ. unspecified_int4 ) GOTO 5400
+	      has_uvar_dc = .TRUE.
+	   ENDIF
+        ENDIF
+
+* the merged context is already nearly complete
 	res_cx = is_big_cx(lo_isp)
 
 * determine data type of result - and set pdimr and typr
@@ -207,7 +261,14 @@
 *          only truly-internal grid-changing functions get here
 *          Ferret already knows the return type since it may depend on argument type
 *          (under the get_uvar_grid - is_uvar_grid - merge_grid calling stack)
-           cx_type(res_cx) = uvar_data_type(uvar, cx_data_set(res_cx))
+
+           iset = cx_data_set(res_cx)
+           IF (iset .EQ. unspecified_int4) iset = pdset_irrelevant
+	   
+	   itype = ptype_unknown
+	   CALL GET_SAVED_UVAR_DTYPE(uvar, iset, itype) 
+
+           cx_type(res_cx) = itype
            IF ( cx_type(res_cx) .EQ. ptype_string ) THEN
               typr = pfcn_rtn_string
               pdimr = pptr_words
@@ -233,11 +294,24 @@
 
            iset = cx_data_set(res_cx)
            IF (iset .EQ. unspecified_int4) iset = pdset_irrelevant
-           uvar_data_type(uvar, iset) = cx_type(res_cx) 
+
+* Get the stored grid, then save the newly found type with it. The call to
+* SAVE_UVAR_GRID wipes out the grid information so also get and re-save the 
+* Auxiliary regridding info.
+	   
+	   CALL GET_SAVED_UVAR_DTYPE(uvar, iset, itype)
+	   IF (itype .NE. cx_type(res_cx)) THEN
+	      CALL GET_SAVED_UVAR_GRID(uvar, iset, igrid)
+	      CALL GET_SAVED_UVAR_AUX_INFO(uvar, iset, aux_cat, aux_var, status)
+
+	      CALL SAVE_UVAR_GRID( uvar, igrid, cx_type(res_cx), iset )
+	      CALL SAVE_UVAR_AUX_INFO(uvar, aux_cat, aux_var, iset)
+	   ENDIF
+
         ENDIF
 
 * need to fill in those axes that the function "imposes"
-	CALL GCF_IMPOSE_RESULT_LIMS( ifcn, memory, is_mr(lo_isp+1),
+	CALL GCF_IMPOSE_RESULT_LIMS( ifcn,  is_mr(lo_isp+1),
      .			 is_cx(lo_isp+1), res_cx, status )
 	IF ( status .NE. ferr_ok ) GOTO 5000
         
@@ -249,17 +323,10 @@
 	mr_variable( res_mr ) = res_mr	! cat_temp_var vars point to themselves
 	IF (cx_type(res_cx) .EQ. ptype_string) THEN
 	   CALL INIT_C_STRING_ARRAY( MGRID_SIZE_DELTA(res_mr),
-     .                               memory(1, mr_blk1(res_mr)),
+     .                               memry(res_mr)%ptr,
      .                               mr_c_pointer(res_mr)      )
 	ENDIF
 
-* point to the memory resident components
-* (if fewer than 9 components default extras to dummy)
-	DO 300 icom = 1, num_com
- 300	com(icom) = is_mr(frame_bottom+icom-1)
-	DO 310 icom = num_com+1, 9
- 310	com(icom) = dummy_mr
-
 * set up 6D array limits as unsubscripted variables in COMMON
 	CALL NON_ARRAY_SUBSC( com, 10 )
 
@@ -267,39 +334,38 @@
 
 	IF (IFCN .LE. GFCN_NUM_INTERNAL) THEN
 
-	  CALL DO_INTERNAL_GC_FCN( memory,
+	  CALL DO_INTERNAL_GC_FCN( 
      .		ifcn, num_com, is_cx(frame_bottom),
-     .		memory(1, mr_blk1(mr1) ), mr1, pdim1, typ1,
-     .		memory(1, mr_blk1(mr2) ), mr2, pdim2, typ2,
-     .		memory(1, mr_blk1(mr3) ), mr3, pdim3, typ3,
-     .		memory(1, mr_blk1(mr4) ), mr4, pdim4, typ4,
-     .		memory(1, mr_blk1(mr5) ), mr5, pdim5, typ5,
-     .		memory(1, mr_blk1(mr6) ), mr6, pdim6, typ6,
-     .		memory(1, mr_blk1(mr7) ), mr7, pdim7, typ7,
-     .		memory(1, mr_blk1(mr8) ), mr8, pdim8, typ8,
-     .		memory(1, mr_blk1(mr9) ), mr9, pdim9, typ9,
-     .		memory(1, mr_blk1(res_mr)), res_mr, pdimr, typr,
+     .		memry(mr1)%ptr, mr1, pdim1, typ1,
+     .		memry(mr2)%ptr, mr2, pdim2, typ2,
+     .		memry(mr3)%ptr, mr3, pdim3, typ3,
+     .		memry(mr4)%ptr, mr4, pdim4, typ4,
+     .		memry(mr5)%ptr, mr5, pdim5, typ5,
+     .		memry(mr6)%ptr, mr6, pdim6, typ6,
+     .		memry(mr7)%ptr, mr7, pdim7, typ7,
+     .		memry(mr8)%ptr, mr8, pdim8, typ8,
+     .		memry(mr9)%ptr, mr9, pdim9, typ9,
+     .		memry(res_mr)%ptr, res_mr, pdimr, typr,
      .		res_cx, status )
-	  IF ( status .NE. ferr_ok ) GOTO 5100
 
 	ELSE 
 
-	  CALL DO_EXTERNAL_GC_FCN( memory,
+	  CALL DO_EXTERNAL_GC_FCN( 
      .			ifcn, num_com, com, is_cx(frame_bottom),
-     .			memory(1, mr_blk1(mr1) ), mr1,
-     .			memory(1, mr_blk1(mr2) ), mr2,
-     .			memory(1, mr_blk1(mr3) ), mr3,
-     .			memory(1, mr_blk1(mr4) ), mr4,
-     .			memory(1, mr_blk1(mr5) ), mr5,
-     .			memory(1, mr_blk1(mr6) ), mr6,
-     .			memory(1, mr_blk1(mr7) ), mr7,
-     .			memory(1, mr_blk1(mr8) ), mr8,
-     .			memory(1, mr_blk1(mr9) ), mr9,
-     .			memory(1, mr_blk1(res_mr)), res_mr,
+     .			memry(mr1)%ptr, mr1,
+     .			memry(mr2)%ptr, mr2,
+     .			memry(mr3)%ptr, mr3,
+     .			memry(mr4)%ptr, mr4,
+     .			memry(mr5)%ptr, mr5,
+     .			memry(mr6)%ptr, mr6,
+     .			memry(mr7)%ptr, mr7,
+     .			memry(mr8)%ptr, mr8,
+     .			memry(mr9)%ptr, mr9,
+     .			memry(res_mr)%ptr, res_mr,
      .			status )
 
-
 	ENDIF
+	IF ( status .NE. ferr_ok ) GOTO 5100
 
 * clean up 
  
@@ -336,6 +402,7 @@
 * save the result context at the cx level previously used by the 1st component
 	cx_stack_ptr = cx_stack_ptr + 1
 	CALL TRANSFER_CONTEXT( res_cx, cx_stack_ptr )
+
 	is_cx( isp ) = cx_stack_ptr
 
 	RETURN
@@ -352,5 +419,21 @@
 	CALL ERRMSG( ferr_invalid_command, status,
      .		'string/numeric data type mix-up. Argument '//
      .		alt_name(:slen)//' : '//risc_buff, *5000 )
+
+ 5300	CONTINUE
+* Invalid value for for direction
+        risc_buff = alg_text
+	CALL ERRMSG( ferr_invalid_command, status,
+     . 'Arguments for direction of function must not repeat and be between 1 and 6 '//
+     .  risc_buff, *5000 )
+
+
+ 5400	CONTINUE
+* Could not find alternative function for direction
+        risc_buff = alg_text
+	CALL ERRMSG( ferr_invalid_command, status,
+     .		'Could not find alternative function for directions given '//
+     .		risc_buff, *5000 )
+
 	END
 
diff --git a/fer/stk/is_do_op.F b/fer/stk/is_do_op.F
index 0275af1..6f86982 100644
--- a/fer/stk/is_do_op.F
+++ b/fer/stk/is_do_op.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_DO_OP( memory, alg_type, alg_text, lo_isp, 
+	SUBROUTINE IS_DO_OP(  alg_type, alg_text, lo_isp, 
      ,                       ifv, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
@@ -96,7 +96,6 @@
 * calling arguments
 	LOGICAL		ifv
 	INTEGER		alg_type, lo_isp, status
-	REAL		memory( mem_blk_size, max_mem_blks )
 	CHARACTER*(*)	alg_text
 
 * local variables
@@ -224,7 +223,7 @@
 * special HACK to support "a"+"b" (see MERGE_GRID)
 	IF ( mr_type(res_mr) .EQ. ptype_string ) THEN
            CALL INIT_C_STRING_ARRAY( MGRID_SIZE_DELTA(res_mr),
-     .                               memory(1, mr_blk1(res_mr)),
+     .                               memry(res_mr)%ptr,
      .                               mr_c_pointer(res_mr)      )
 	ENDIF
 
@@ -248,9 +247,7 @@
 
 	IF (.NOT.arg_types_matched ) THEN 
 * ... allow mix of float and string arguments (lets us use symbols as numbers)
-	    CALL FILL_MEMORY ( memory, mr_blk1 (res_mr),
-     .                       mr_nblks(res_mr),
-     .                       mr_bad_data(res_mr) )
+	    CALL FILL_MEMORY ( res_mr, mr_bad_data(res_mr) )
 
 	ELSEIF ( arg_type.EQ.ptype_string .AND. numerical_op ) THEN 
 * ... inappropriate use of string arguments
@@ -262,33 +259,33 @@
 	  IF (op_num .EQ. 1 ) THEN  ! "+"
 	    CALL STRING_CONCATENATE
      .		       ( is_cx(frame_bottom),
-     .			 memory(1, mr_blk1(mr1) ),   mr1,
-     .			 memory(1, mr_blk1(mr2) ),   mr2,
-     .			 memory(1, mr_blk1(res_mr)), res_mr )
+     .			 memry(mr1)%ptr,   mr1,
+     .			 memry(mr2)%ptr,   mr2,
+     .			 memry(res_mr)%ptr, res_mr )
 	  ELSEIF (op_num .GT. offset_logic_struc) THEN
 	    CALL STRING_CONDITIONAL
      .		       ( op_num-offset_logic_struc,
      .			 num_com, is_cx(frame_bottom),
-     .			 memory(1, mr_blk1(mr1) ),   mr1,
-     .			 memory(1, mr_blk1(mr2) ),   mr2,
-     .			 memory(1, mr_blk1(mr3) ),   mr3,
-     .			 memory(1, mr_blk1(res_mr)), res_mr )
+     .			 memry(mr1)%ptr,   mr1,
+     .			 memry(mr2)%ptr,   mr2,
+     .			 memry(mr3)%ptr,   mr3,
+     .			 memry(res_mr)%ptr, res_mr )
 	  ELSE  ! "EQ", "NE", "LT", ...
 	    CALL STRING_OPERATE
      .		       ( op_num, is_cx(frame_bottom),
-     .			 memory(1, mr_blk1(mr1) ),   mr1,
-     .			 memory(1, mr_blk1(mr2) ),   mr2,
-     .			 memory(1, mr_blk1(res_mr)), res_mr )
+     .			 memry(mr1)%ptr,   mr1,
+     .			 memry(mr2)%ptr,   mr2,
+     .			 memry(res_mr)%ptr, res_mr )
             cx_type(res_cx) = ptype_float
             mr_type(res_mr) = ptype_float
 	  ENDIF
 	ELSE
 	  CALL OPERATE ( op_num, num_com, ifv, is_cx(frame_bottom),
-     .			 memory(1, mr_blk1(mr1) ),   mr1,
-     .			 memory(1, mr_blk1(mr2) ),   mr2,
-     .			 memory(1, mr_blk1(mr3) ),   mr3,
-     .			 memory(1, mr_blk1(mr4) ),   mr4,
-     .			 memory(1, mr_blk1(res_mr)), res_mr )
+     .			 memry(mr1)%ptr,   mr1,
+     .			 memry(mr2)%ptr,   mr2,
+     .			 memry(mr3)%ptr,   mr3,
+     .			 memry(mr4)%ptr,   mr4,
+     .			 memry(res_mr)%ptr, res_mr )
 	ENDIF
 
 * clean up 
diff --git a/fer/stk/is_dummy.F b/fer/stk/is_dummy.F
index edd6362..790acb2 100644
--- a/fer/stk/is_dummy.F
+++ b/fer/stk/is_dummy.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_DUMMY( memory, *, status )
+	SUBROUTINE IS_DUMMY(  *, status )
 
 *
 *
@@ -53,7 +53,6 @@
 
 * calling argument declarations:
 	INTEGER	status
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
 	INTEGER	mr, cx
@@ -71,8 +70,7 @@
 	IF (mode_diagnostic) CALL DIAGNOSTIC_OUT('dummy',mr,point_to_mr)
 
 * insert a block of missing value flags
-	CALL FILL_MEMORY( memory, mr_blk1(mr),
-     .			  mr_nblks(mr), mr_bad_data(mr) )
+	CALL FILL_MEMORY( mr, mr_bad_data(mr) )
 
 	RETURN 1
 
diff --git a/fer/stk/is_gather.F b/fer/stk/is_gather.F
index 25e865e..2b3b7d6 100644
--- a/fer/stk/is_gather.F
+++ b/fer/stk/is_gather.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_GATHER( memory, *, *, status )
+	SUBROUTINE IS_GATHER(  *, *, status )
 
 *
 *
@@ -56,7 +56,6 @@
 
 * calling argument declarations:
 	INTEGER	status
-	REAL	memory( mem_blk_size, max_mem_blks )
 * normal return is for error conditions
 * exit #1 is to request another grid ( stack has been pushed )
 * exit #2 is to signal completion of the activity at this stack level
@@ -100,8 +99,8 @@
 	ENDIF
 
 * copy data just received into the result
-	CALL COPY_INTO( memory(1,mr_blk1(com_mr)), com_mr, com_cx,
-     .			memory(1,mr_blk1(res_mr)), res_mr )
+	CALL COPY_INTO( memry(com_mr)%ptr, com_mr, com_cx,
+     .			memry(res_mr)%ptr, res_mr )
 
 * ... remove the component protection that signaled we needed it here
 	CALL MR_NOT_IN_USE( com_mr )
@@ -115,12 +114,7 @@
 	ENDIF
 
 * no - set up com_cx to get the next component grid
-	top = cx_hi_ss(com_cx,idim)
-	CALL TRANSFER_CONTEXT( dflt_cx, com_cx )
-	cx_lo_ss(com_cx,idim) = top + 1
-	cx_hi_ss(com_cx,idim) = MIN( top+frag, cx_hi_ss(dflt_cx,idim)	)
-	cx_by_ss(idim,com_cx) = .TRUE.
-	CALL FLESH_OUT_AXIS( idim, com_cx, status )
+	CALL DEFINE_NEXT_CHUNK_CX(idim, com_cx, dflt_cx, frag, status)
 	IF ( status .NE. ferr_ok ) GOTO 5000
 
 * push the interpretation stack and go get it
diff --git a/fer/stk/is_modulo.F b/fer/stk/is_modulo.F
index d9f38cc..49cedf3 100644
--- a/fer/stk/is_modulo.F
+++ b/fer/stk/is_modulo.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_MODULO( memory, *, *, status )
+	SUBROUTINE IS_MODULO(  *, *, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -64,7 +64,6 @@
 
 * calling argument declarations:
 	INTEGER	status
-	REAL	memory( mem_blk_size, max_mem_blks )
 * normal return is for error conditions
 * exit #1 is to request another grid ( stack has been pushed )
 * exit #2 is to signal completion of the activity at this stack level
@@ -153,7 +152,7 @@
 
 	   IF ( mr_type(res_mr) .EQ. ptype_string ) THEN
 	      CALL INIT_C_STRING_ARRAY( MGRID_SIZE_DELTA(res_mr),
-     .                               memory(1, mr_blk1(res_mr)),
+     .                               memry(res_mr)%ptr,
      .                               mr_c_pointer(res_mr)      )
 	      CALL SET_NULL_C_STRING_ARRAY(mr_c_pointer(res_mr),
      .                                     MGRID_SIZE_DELTA(res_mr) )
@@ -162,8 +161,7 @@
 * 11/95: if there might be voids in the result pre-fill with missing data flags
 	   IF ( CX_DIM_LEN(idim,com_cx) .LT. npts
      .	  .AND. mr_type(res_mr) .EQ. ptype_float  ) CALL FILL_MEMORY
-     .				( memory,mr_blk1(res_mr),mr_nblks(res_mr),
-     .                            mr_bad_data(res_mr) )
+     .				( res_mr, mr_bad_data(res_mr) )
 
 	   ENDIF
 
@@ -182,15 +180,17 @@
 * range(s) of the result.  For this purpose dual memory table entries are
 * created that will describe the component data.  The dual version will be
 * deleted before exiting this routine.
-	CALL FIND_MR_SLOT( com_cx, tmp_mr, status )
+! (could probably factor this code into CREATE_PERMUTATION for cleanup)
+	CALL FIND_MR_SLOT( tmp_mr, status )
 	IF ( status .NE. ferr_ok ) GOTO 5910
+	CALL HOOK_MR_SLOT( com_cx, tmp_mr )     ! 1/17 was inside FIND_MR_SLOT
 	CALL ASSIGN_MR_CX( com_cx, tmp_mr )     ! affects diag output, only
 	DO 100 i = 1, nferdims
 	   mr_lo_ss(tmp_mr,i) = mr_lo_ss(com_mr,i)
 	   mr_hi_ss(tmp_mr,i) = mr_hi_ss(com_mr,i)
  100	CONTINUE
-	mr_blk1 (tmp_mr) = mr_blk1 (com_mr)    ! just for good house-keeping
-	mr_nblks(tmp_mr) = mr_nblks(com_mr)    ! just for good house-keeping
+	mr_size(tmp_mr)   =  mr_size(com_mr)
+	memry(tmp_mr)%ptr => memry(com_mr)%ptr 
 	mr_protected(tmp_mr) = mr_table_entry_only
 
 * * * * *
@@ -205,7 +205,7 @@
 	   lo_parity = MODULO_PARITY(res_lo, npts, idel)
 	   res_hi = MIN(res_lo+(((npts-lo_parity)/idel)*idel),
      .		        cx_hi_ss(res_cx,idim))
-	   CALL SHORT_MOD_COPY( memory,
+	   CALL SHORT_MOD_COPY( 
      .				res_lo, res_hi, idim,
      .				com_cx, tmp_mr, res_cx, res_mr)
  300	CONTINUE
diff --git a/fer/stk/is_pseudo.F b/fer/stk/is_pseudo.F
index e9529fa..11a7e93 100644
--- a/fer/stk/is_pseudo.F
+++ b/fer/stk/is_pseudo.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_PSEUDO( memory, *, status )
+	SUBROUTINE IS_PSEUDO(  *, status )
 
 *
 *
@@ -48,6 +48,7 @@
 * V312: 5/94 - array "memory" as a calling argument
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 *       *acm* 4/12 Add new MODE FOURDEE to allow E,F,M,N,etc as user-vars
+*       *sh*  2/17 pre-check for 99999999 in order to issue nicer error message
 
 	include	'tmap_dims.parm'
 	include	'ferret.parm'
@@ -60,10 +61,9 @@
 
 * calling argument declarations:
 	INTEGER	status
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
-	INTEGER	mr, cx, idim
+	INTEGER	CX_DIM_LEN, mr, cx, idim, pvlen
 
 * --- end of introductory code ---
 * initialize
@@ -74,6 +74,13 @@
 * is no regridding)
 	cx_unstand_grid( cx ) = .FALSE.
 
+* Get the direction of the pseudo-variable.
+	idim = MOD( cx_variable(cx)-1, nferdims ) + 1
+
+* pre-check to make sure limits were given
+	pvlen = CX_DIM_LEN(idim, cx)
+	IF (pvlen .EQ. 99999999) GOTO 5100
+
 * reserve and catalog space for the result
 	CALL CREATE_TEMP_MEM_VAR( cx, mr, status )
 	IF ( status .NE. ferr_ok ) GOTO 5000
@@ -84,15 +91,16 @@
 
 * fill the space with the desired data
 
-* Get the direction of the pseudo-variable.
-
-	idim = MOD( cx_variable(cx)-1, nferdims ) + 1
 
-	CALL MAKE_PSEUDO_VAR( cx, idim, memory(1, mr_blk1(mr)), mr,
+	CALL MAKE_PSEUDO_VAR( cx, idim, memry(mr)%ptr, mr,
      .			      mr_lo_ss(mr,idim), mr_hi_ss(mr,idim) )
 
 	RETURN 1
 
 * error exit
  5000	RETURN
+
+ 5100	CALL ERRMSG(ferr_limits,status,
+     .         "Limits must be provided for pseudo-variable.", *5000)
+     .		
 	END	
diff --git a/fer/stk/is_pystat_var.F b/fer/stk/is_pystat_var.F
index d50e8f9..8a4f83c 100644
--- a/fer/stk/is_pystat_var.F
+++ b/fer/stk/is_pystat_var.F
@@ -33,7 +33,9 @@
 *
 *  Copy a pystat variable in ferret memory
 *
-      SUBROUTINE IS_PYSTAT_VAR(memory, *, *, sts)
+*  *kms* 07/16 use nferdims in tmap_dims.parm
+*
+      SUBROUTINE IS_PYSTAT_VAR(*, *, sts)
 
       IMPLICIT NONE
       INCLUDE 'ferret.parm'
@@ -48,7 +50,6 @@
 
 *     Calling argument declarations
       INTEGER sts
-      REAL    memory(mem_blk_size, max_mem_blks)
 
 *     Function declarations
       CHARACTER*128 VAR_CODE
@@ -69,7 +70,7 @@
       cx_variable(cx_var) = pyvar
       cx_grid(cx_var) = pyvar_grid_number(pyvar)
       cx_bad_data(cx_var) = pyvar_missing_flag(pyvar)
-      DO 100 idim = 1,4
+      DO 100 idim = 1,nferdims
          cx_lo_ss(cx_var, idim) = pyvar_grid_start(idim, pyvar)
          cx_hi_ss(cx_var, idim) = pyvar_grid_end(idim, pyvar)
          cx_by_ss(idim, cx_var) = .TRUE.
@@ -87,7 +88,7 @@
 *     the requested data and copy into it the given data where appropriate.
       newvar_needed = .FALSE.
       need_data = .TRUE.
-      DO 200 idim = 1,4
+      DO 200 idim = 1,nferdims
          IF ( cx_lo_ss(cx,idim) .LT. cx_lo_ss(cx_var,idim) ) THEN
 *           Limits exceeded so new expanded variable needed
             newvar_needed = .TRUE.
@@ -117,8 +118,7 @@
 *        Set the bad data flag
          mr_bad_data(mr_var) = pyvar_missing_flag(pyvar)
 *        Get all the given data from the python data array object
-         CALL COPY_PYSTAT_DATA(memory(1, mr_blk1(mr_var)),
-     .                         pyvar_ndarray_obj(pyvar))
+         CALL COPY_PYSTAT_DATA(memry(mr_var)%ptr, pyvar_ndarray_obj(pyvar))
       ENDIF
 
 
@@ -135,12 +135,11 @@
 *        Set the bad data flag
          mr_bad_data(mr) = pyvar_missing_flag(pyvar)
 *        Fill completely with the missing value
-         CALL FILL_MEMORY(memory, mr_blk1(mr), mr_nblks(mr), 
-     .                    mr_bad_data(mr))
+         CALL FILL_MEMORY(mr, mr_bad_data(mr))
          IF ( need_data ) THEN
 *           Trim the cx_lo_ss and cx_hi_ss limits in cx_var (given data)
 *           so they do not exceed the limits in cx (used to create mr)
-            DO 300 idim = 1,4
+            DO 300 idim = 1,nferdims
                IF ( cx_lo_ss(cx_var,idim) .LT. cx_lo_ss(cx,idim) ) THEN
                   cx_lo_ss(cx_var,idim) = cx_lo_ss(cx,idim)
                ENDIF
@@ -149,8 +148,8 @@
                ENDIF
   300       CONTINUE
 *           Copy over the given data where appropriate
-            CALL COPY_INTO(memory(1, mr_blk1(mr_var)), mr_var, cx_var,
-     .                     memory(1, mr_blk1(mr)),     mr)
+            CALL COPY_INTO( memry(mr_var)%ptr, mr_var, cx_var, 
+     .                      memry(mr)%ptr, mr )
 *           Delete the variable with the all the given data (cheap to recreate)
             CALL DELETE_VARIABLE(mr_var)
          ENDIF
diff --git a/fer/stk/is_read.F b/fer/stk/is_read.F
index b43d8fb..34f6c30 100644
--- a/fer/stk/is_read.F
+++ b/fer/stk/is_read.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_READ ( memory, *, *, status )
+	SUBROUTINE IS_READ (  *, *, status )
 
 *
 *
@@ -64,7 +64,6 @@
 
 * calling argument declarations:
 	INTEGER	status
-	REAL	memory(*)
 * normal exit is for error conditions
 * exit #1 is to request another grid ( stack has been pushed )
 * exit #2 is to signal completion of the activity at this stack level
@@ -118,17 +117,17 @@
 	IF ( ds_type( dset_num ) .EQ. pds_type_ez ) THEN
 * all stream formatted files now read with new fast binary reads
 	   IF ( ds_parm_text(1,dset_num)(:3) .eq. 'STR') THEN
-	      CALL READ_BINARY( memory, cx, is_mr(isp), status)
+	      CALL READ_BINARY(  cx, is_mr(isp), status)
 	   ELSEIF ( ds_parm_text(1,dset_num)(:4) .eq. 'DELI') THEN
-	      CALL READ_DELIMITED( memory, cx, is_mr(isp), status)
-	   ELSEIF ( ds_parm_text(1,dset_num)(:4) .eq. 'PERL') THEN
-	      CALL READ_PERL( memory, cx, is_mr(isp), status)
+	      CALL READ_DELIMITED(  cx, is_mr(isp), status)
+*	   ELSEIF ( ds_parm_text(1,dset_num)(:4) .eq. 'PERL') THEN
+*	      CALL READ_PERL(  cx, is_mr(isp), status)
 	   ELSE
-	      CALL READ_EZ( memory, cx, is_mr(isp), status )
+	      CALL READ_EZ(  cx, is_mr(isp), status )
 	   ENDIF
 	   IF ( status .EQ. ferr_ok ) GOTO 2
 	ELSE
-	   CALL READ_TM( memory, cx, is_mr(isp), status )
+	   CALL READ_TM(  cx, is_mr(isp), status )
 	   IF ( status .EQ. ferr_ok ) GOTO 2
 	ENDIF
 
diff --git a/fer/stk/is_read_remote.F b/fer/stk/is_read_remote.F
index a2a8db6..e48c27c 100644
--- a/fer/stk/is_read_remote.F
+++ b/fer/stk/is_read_remote.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_READ_REMOTE ( memory, *, *, status )
+	SUBROUTINE IS_READ_REMOTE (  *, *, status )
 
 *
 *
@@ -44,7 +44,6 @@
 
 * calling argument declarations:
 	INTEGER	status
-	REAL	memory(*)
 	REAL	baddat
 
 * normal exit is for error conditions
@@ -72,7 +71,7 @@
 	cat = cx_category(cx)
 	cx_category(cx) = cat_user_var
 
-	CALL READ_REMOTE(memory, baddat, cx, is_mr(isp), status )
+	CALL READ_REMOTE( baddat, cx, is_mr(isp), status )
         IF ( status .EQ. ferr_ok ) GOTO 2
 
 * error exit
diff --git a/fer/stk/is_reconcile.F b/fer/stk/is_reconcile.F
index 243ce33..684863f 100644
--- a/fer/stk/is_reconcile.F
+++ b/fer/stk/is_reconcile.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_RECONCILE( memory, *, *, status )
+	SUBROUTINE IS_RECONCILE(  *, *, status )
 
 *
 *
@@ -57,7 +57,6 @@
 
 * calling argument declarations:
 	INTEGER	status
-	REAL	memory( mem_blk_size, max_mem_blks )
 * normal return is for error conditions
 * exit #1 is to request another grid ( stack has been pushed )
 * exit #2 is to signal completion of the activity at this stack level
diff --git a/fer/stk/is_regrid.F b/fer/stk/is_regrid.F
index ce6b589..58b1c39 100644
--- a/fer/stk/is_regrid.F
+++ b/fer/stk/is_regrid.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_REGRID( memory, *, status )
+	SUBROUTINE IS_REGRID(  *, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -88,6 +88,7 @@
 * V696 *acm* 11/15 Added @BIN and @NBIN regridding transforms
 * 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 
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -100,7 +101,6 @@
 
 * calling argument declarations:
 	INTEGER	status
-	REAL	memory( mem_blk_size, max_mem_blks )
 * normal exit is for error conditions
 * exit #1 is to signal completion of the activity at this stack level
 
@@ -111,7 +111,8 @@
 	INTEGER hi_isp, lo_isp, axis, cx_valid, idim,
      .		rgrd_trans, mrlist(5), wk_size, wk_size2,
      .		dst_cx, src_cx, dst_mr, src_mr, ngd_mr, ave_mr,
-     .		blk1, axis_list(nferdims), naxis, i, nbd_mr, nxsrc
+     .		axis_list(nferdims), naxis, i, nbd_mr, nxsrc
+	INTEGER*8 i8_size
 	CHARACTER dtype*4
 
 *        ... interpretation stack setup at the time this is called ...
@@ -228,7 +229,7 @@ c     .    .AND. cx_has_impl_grid(dst_cx)
 	ENDIF
 
 * create a space for the new result possibly with the edges flagged as bad
-	CALL NEW_MR_W_EDGES( memory, cx_valid, dst_cx, dst_mr, status )
+	CALL NEW_MR_W_EDGES(  cx_valid, dst_cx, dst_mr, status )
 	IF ( status .NE. ferr_ok ) GOTO 5000
 	is_mr( lo_isp ) = dst_mr
 
@@ -251,52 +252,54 @@ c     .    .AND. cx_has_impl_grid(dst_cx)
 
 * reserve working array space
 	IF ( rgrd_trans .EQ. prgrd_xy_ave) THEN
-	   CALL GET_WORK_SPC( wk_size+wk_size2, blk1, status )
+	   i8_size = wk_size+wk_size2
 	ELSEIF (rgrd_trans .EQ. prgrd_xy_lin) THEN
 	   nxsrc = cx_hi_ss(src_cx,x_dim)-cx_lo_ss(src_cx,x_dim) + 1
-	   CALL GET_WORK_SPC( nxsrc*wk_size2+2*(wk_size+wk_size2), blk1, status )
+	   i8_size = nxsrc*wk_size2+2*(wk_size+wk_size2)
 	ELSE
-	   CALL GET_WORK_SPC( 2*wk_size, blk1, status )
+	   i8_size = 2*wk_size
 	ENDIF
+	CALL GET_DYN_WORK_SPACE( i8_size, status )
 	IF ( status .NE. ferr_ok ) GOTO 5000
 
 * do the regridding
 	IF ( done_by_strides ) THEN
-	   CALL COPY_GRID( memory(1,mr_blk1(src_mr)),  src_mr,
-     .			   memory(1,mr_blk1(dst_mr)),  dst_mr )
+	   CALL COPY_GRID( memry(src_mr)%ptr,  src_mr,
+     .			   memry(dst_mr)%ptr,  dst_mr )
 	ELSEIF ( rgrd_trans .EQ. prgrd_linear_interp ) THEN
 	   IF ( itsa_string ) GOTO 5010
 	   CALL DO_LIN_REGRID( cx_valid, axis,
-     .			memory(1,mr_blk1(src_mr)), src_mr,
-     .			memory(1,mr_blk1(dst_mr)), dst_mr,
-     .			memory(1, blk1), wk_size+1, 2*wk_size )
+     .			memry(src_mr)%ptr, src_mr,
+     .			memry(dst_mr)%ptr, dst_mr,
+     .			workmem(plegacy_work_buffer)%ptr,
+     .			wk_size+1, 2*wk_size )
 	ELSEIF ( rgrd_trans .EQ. prgrd_associate ) THEN
 	   CALL DO_ASN_REGRID( cx_valid, axis,
-     .			memory(1,mr_blk1(src_mr)), src_mr,
-     .			memory(1,mr_blk1(dst_mr)), dst_mr )
+     .			memry(src_mr)%ptr, src_mr,
+     .			memry(dst_mr)%ptr, dst_mr )
 	ELSEIF ( rgrd_trans .EQ. prgrd_average
      .	 .OR.    rgrd_trans .EQ. prgrd_variance
      .	 .OR.    rgrd_trans .EQ. prgrd_sum
      .	 .OR.    rgrd_trans .EQ. prgrd_good_pt ) THEN
 	   IF ( itsa_string ) GOTO 5010
 	   CALL DO_AVE_REGRID( cx_valid, axis, rgrd_trans,
-     .			memory(1,mr_blk1(src_mr)), src_mr,
-     .			memory(1,mr_blk1(dst_mr)), dst_mr,
-     .			memory(1, blk1), src_cx, dst_cx,
+     .			memry(src_mr)%ptr, src_mr,
+     .			memry(dst_mr)%ptr, dst_mr,
+     .			workmem(plegacy_work_buffer)%ptr, src_cx, dst_cx,
      .                  wk_size+1 )
 	ELSEIF ( rgrd_trans .EQ. prgrd_xy_ave ) THEN
 	   IF ( itsa_string ) GOTO 5010
 	   CALL DO_XYAVE_REGRID( cx_valid,
-     .			memory(1,mr_blk1(src_mr)), src_mr,
-     .			memory(1,mr_blk1(dst_mr)), dst_mr,
-     .			memory(1, blk1), src_cx, dst_cx,
+     .			memry(src_mr)%ptr, src_mr,
+     .			memry(dst_mr)%ptr, dst_mr,
+     .			workmem(plegacy_work_buffer)%ptr, src_cx, dst_cx,
      .                  wk_size+1, wk_size+wk_size2 )
 	ELSEIF ( rgrd_trans .EQ. prgrd_xy_lin ) THEN
 	   IF ( itsa_string ) GOTO 5010
 	   CALL DO_XYLIN_REGRID( cx_valid,
-     .			memory(1,mr_blk1(src_mr)), src_mr,
-     .			memory(1,mr_blk1(dst_mr)), dst_mr,
-     .			memory(1, blk1), src_cx, dst_cx,
+     .			memry(src_mr)%ptr, src_mr,
+     .			memry(dst_mr)%ptr, dst_mr,
+     .			workmem(plegacy_work_buffer)%ptr, src_cx, dst_cx,
      .                  wk_size+1, 2*wk_size+1, 
      .                  2*wk_size+wk_size2+1, 2*(wk_size+wk_size2)+1, 
      .                  nxsrc*wk_size2+2*(wk_size+wk_size2) )
@@ -304,25 +307,27 @@ c     .    .AND. cx_has_impl_grid(dst_cx)
      .	   .OR. rgrd_trans.EQ.prgrd_max ) THEN
 	   IF ( itsa_string ) GOTO 5010
 	   CALL DO_WINDOW_REGRID( cx_valid, axis, rgrd_trans,
-     .			memory(1,mr_blk1(src_mr)), src_mr,
-     .			memory(1,mr_blk1(dst_mr)), dst_mr,
-     .			memory(1, blk1), wk_size+1)
+     .			memry(src_mr)%ptr, src_mr,
+     .			memry(dst_mr)%ptr, dst_mr,
+     .			workmem(plegacy_work_buffer)%ptr, wk_size+1)
 	ELSEIF ( rgrd_trans .EQ. prgrd_xact_pts ) THEN
 	   CALL DO_XACT_REGRID( cx_valid, axis,
-     .			memory(1,mr_blk1(src_mr)), src_mr,
-     .			memory(1,mr_blk1(dst_mr)), dst_mr,
-     .			memory(1, blk1), wk_size+1, 2*wk_size )
+     .			memry(src_mr)%ptr, src_mr,
+     .			memry(dst_mr)%ptr, dst_mr,
+     .			workmem(plegacy_work_buffer)%ptr, wk_size+1,
+     .			2*wk_size )
 	ELSEIF ( rgrd_trans .EQ. prgrd_nearest ) THEN
 	   CALL DO_NEAREST_REGRID( cx_valid, axis,
-     .			memory(1,mr_blk1(src_mr)), src_mr,
-     .			memory(1,mr_blk1(dst_mr)), dst_mr,
-     .			memory(1, blk1), wk_size+1, 2*wk_size )
+     .			memry(src_mr)%ptr, src_mr,
+     .			memry(dst_mr)%ptr, dst_mr,
+     .			workmem(plegacy_work_buffer)%ptr, wk_size+1,
+     .			2*wk_size )
 	ELSEIF ( rgrd_trans .EQ. prgrd_bin
      .	 .OR.    rgrd_trans .EQ. prgrd_nbin ) THEN
 	   CALL DO_BIN_REGRID( cx_valid, axis, rgrd_trans,
-     .			memory(1,mr_blk1(src_mr)), src_mr,
-     .			memory(1,mr_blk1(dst_mr)), dst_mr,
-     .			memory(1, blk1), src_cx, dst_cx,
+     .			memry(src_mr)%ptr, src_mr,
+     .			memry(dst_mr)%ptr, dst_mr,
+     .			workmem(plegacy_work_buffer)%ptr, src_cx, dst_cx,
      .                  wk_size+1 )
 * modulo regridding
 	ELSE
@@ -337,15 +342,15 @@ c     .    .AND. cx_has_impl_grid(dst_cx)
 	   ave_mr = dummy_mr	! component 3 default
 
 	   CALL CREATE_TEMP_MEM_VAR(cx_valid,ngd_mr,status)
-	   IF ( status .NE. ferr_ok ) GOTO 5200
+	   IF ( status .NE. ferr_ok ) GOTO 5100
 	   mr_regrid_trans ( axis, ngd_mr ) =  prgrd_modngd
 
 	   CALL CREATE_TEMP_MEM_VAR(cx_valid,nbd_mr,status)
-	   IF ( status .NE. ferr_ok ) GOTO 5300
+	   IF ( status .NE. ferr_ok ) GOTO 5100
 	   mr_regrid_trans ( axis, nbd_mr ) =  prgrd_modnbd
 
 	   IF ( rgrd_trans .EQ. prgrd_modvar ) THEN
-	      CALL NEW_MR_W_EDGES(memory,cx_valid,dst_cx,ave_mr,status)
+	      CALL NEW_MR_W_EDGES(cx_valid,dst_cx,ave_mr,status)
 	      IF ( status .NE. ferr_ok ) GOTO 5100
 !	      mr_regrid_trans ( axis, ave_mr ) = prgrd_modulo	! bookkeeping
 	   ENDIF
@@ -356,11 +361,11 @@ c     .    .AND. cx_has_impl_grid(dst_cx)
 	   mrlist(5) = ave_mr
 	   CALL NON_ARRAY_SUBSC( mrlist, 5 )
 	   CALL MODULO_REGRID( cx_valid, axis, rgrd_trans,
-     .			memory(1,mr_blk1(src_mr)), src_mr,
-     .			memory(1,mr_blk1(dst_mr)), dst_mr,
-     .			memory(1,mr_blk1(ngd_mr)), ngd_mr,
-     .			memory(1,mr_blk1(nbd_mr)), nbd_mr,
-     .			memory(1,mr_blk1(ave_mr)), ave_mr )
+     .			memry(src_mr)%ptr, src_mr,
+     .			memry(dst_mr)%ptr, dst_mr,
+     .			memry(ngd_mr)%ptr, ngd_mr,
+     .			memry(nbd_mr)%ptr, nbd_mr,
+     .			memry(ave_mr)%ptr, ave_mr )
 
 * ... For modulo regrid in time, add an attribute listing the source dates
 
@@ -374,7 +379,7 @@ c     .    .AND. cx_has_impl_grid(dst_cx)
 	   ENDIF
 
 	ENDIF
-	CALL RELEASE_WORK_SPC
+        CALL  RELEASE_DYN_WORK_SPACE
 
 * indicate we are done with the component
  1000   CALL MR_NOT_IN_USE( src_mr )
@@ -397,9 +402,7 @@ c     .    .AND. cx_has_impl_grid(dst_cx)
  5010	CALL ERRMSG( ferr_invalid_command, status,
      .		'cant use this regrid transform on strings: @'
      .		//alg_regrid_code(rgrd_trans), *5000)
- 5100	CALL DELETE_VARIABLE( dst_mr )
- 5200	CALL DELETE_VARIABLE( ngd_mr )
- 5300	CALL DELETE_VARIABLE( nbd_mr )
+ 5100	CALL DELETE_MRS_IN_PROGRESS
 	GOTO 5000
 	END	
 
diff --git a/fer/stk/is_reverse.F b/fer/stk/is_reverse.F
index 2931f95..6cd1530 100644
--- a/fer/stk/is_reverse.F
+++ b/fer/stk/is_reverse.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_REVERSE( memory, *, *, status )
+	SUBROUTINE IS_REVERSE(  *, *, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -63,7 +63,6 @@
 
 * calling argument declarations:
 	INTEGER	status
-	REAL	memory( mem_blk_size, max_mem_blks )
 * normal return is for error conditions
 * exit #1 is to request another grid ( stack has been pushed )
 * exit #2 is to signal completion of the activity at this stack level
@@ -159,13 +158,13 @@
 
 * copy the source data into the result
 	CALL COPY_INTO(
-     .    memory( 1, mr_blk1(com_mr) ), com_mr, com_cx,
-     .    memory( 1, mr_blk1(res_mr) ), res_mr   )
+     .    memry(com_mr)%ptr, com_mr, com_cx,
+     .    memry(res_mr)%ptr, res_mr   )
 
 * reverse the result along all of the required axes
 	DO 400 i = 1, nrev
 	   CALL REVERSE_GRID_AXIS
-     .		( reversed(i), res_cx, res_mr,memory(1, mr_blk1(res_mr)) )
+     .		( reversed(i), res_cx, res_mr,memry(res_mr)%ptr )
  400	CONTINUE
 
 * successful completion of modulo operation
diff --git a/fer/stk/is_sample.F b/fer/stk/is_sample.F
index 9124e88..ccdcf76 100644
--- a/fer/stk/is_sample.F
+++ b/fer/stk/is_sample.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_SAMPLE( memory, *, *, status )
+	SUBROUTINE IS_SAMPLE(  *, *, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -56,7 +56,6 @@
 
 * calling argument declarations:
 	INTEGER	status
-	REAL	memory( mem_blk_size, max_mem_blks )
 * normal return is for error conditions
 * exit #1 is to request another grid ( stack has been pushed )
 * exit #2 is to signal completion of the activity at this stack level
@@ -114,15 +113,13 @@
 * pre-fill output with missing flags, in case a missing index was given
 	      IF ( mr_type(hold_mr) .EQ. ptype_string ) THEN
 	        CALL INIT_C_STRING_ARRAY( MGRID_SIZE_DELTA(hold_mr),
-     .                                    memory(1, mr_blk1(hold_mr)),
+     .                                    memry(hold_mr)%ptr,
      .                                    mr_c_pointer(hold_mr)      )
 	        CALL SET_NULL_C_STRING_ARRAY(mr_c_pointer(hold_mr),
      .					     MGRID_SIZE_DELTA(hold_mr) )
 
 	      ELSE
-	        CALL FILL_MEMORY ( memory, mr_blk1 (hold_mr),
-     .				   mr_nblks(hold_mr),
-     .				   mr_bad_data(hold_mr) )
+	        CALL FILL_MEMORY ( hold_mr, mr_bad_data(hold_mr) )
 	      ENDIF
 
 	   ENDIF
@@ -132,7 +129,7 @@
 * the ADJUST_COPY_LIMITS routine will modify "phase" to use all available data
 	     n = phase
 	     CALL ADJUST_COPY_LIMITS(axis, chunk_mr,
-     .				     memory(1,mr_blk1(mr_sorted_indices)),
+     .				     memry(mr_sorted_indices)%ptr,
      .				     phase, nvalid )
 	     IF (phase .GT. n) THEN
 * ... apply the optimization
@@ -145,10 +142,10 @@
 
 * copy data just received into the result
 	     CALL COPY_INTO_MAPPED(
-     .			memory(1,mr_blk1(chunk_mr)), chunk_mr, chunk_cx,
-     .			memory(1,mr_blk1(mr_sorted_indices)),
-     .			memory(1,mr_blk1(mr_index_map)), phase, axis,
-     .			memory(1,mr_blk1(hold_mr)), hold_mr )
+     .			memry(chunk_mr)%ptr, chunk_mr, chunk_cx,
+     .			memry(mr_sorted_indices)%ptr,
+     .			memry(mr_index_map)%ptr, phase, axis,
+     .			memry(hold_mr)%ptr, hold_mr )
 
 * ... remove the component protection that signaled we needed it here
 	   ENDIF
@@ -193,7 +190,7 @@
 	   hi_cx_lim = cx_hi_ss(chunk_cx,axis)
 	ELSE
 	   is_phase(hold_isp) = DENSE_CONTIG_REGION(
-     .				memory(1,mr_blk1(mr_sorted_indices)), 
+     .				memry(mr_sorted_indices)%ptr, 
      .				phase+1, nvalid,
      .				mr_bad_data(mr_sorted_indices),
      .				lo_cx_lim, hi_cx_lim )
diff --git a/fer/stk/is_string.F b/fer/stk/is_string.F
index 346e532..526fd43 100644
--- a/fer/stk/is_string.F
+++ b/fer/stk/is_string.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_STRING( memory, *, *, status )
+	SUBROUTINE IS_STRING(  *, *, status )
 
 * create a string  "variable" in memory
 
@@ -20,7 +20,6 @@
 
 * calling argument declarations:
 	INTEGER	status
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
 	INTEGER	MGRID_SIZE, mr, cx, uvar, item, start, end
@@ -47,7 +46,7 @@
 
 * save the pointer array address in cx_c_pointer
 	CALL INIT_C_STRING_ARRAY( MGRID_SIZE(mr),
-     .				  memory(1,mr_blk1(mr)),
+     .				  memry(mr)%ptr,
      .				  mr_c_pointer(mr)      )
 
 * determine the string to be stored
diff --git a/fer/stk/is_strip.F b/fer/stk/is_strip.F
index 36d2628..1c73d74 100644
--- a/fer/stk/is_strip.F
+++ b/fer/stk/is_strip.F
@@ -75,6 +75,9 @@
 * V698 1/16 *sh* fix to bug #2347 (agg res var no instead of com var on stack)
 *		 alter agg setup to detect LET/D vars at eval time
 *      4/16 *sh* Allow that SET VAR/NAME= has altered the agg varname
+* V7   5/12 *acm* Union aggregations: DEFINE DATA/AGG/U
+* V702 11/16 *sh* Allow split/gather logic to be used on axis of a compressing
+*                 transform.
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -104,12 +107,12 @@
      .		nrev, reversed(nferdims), idel,
      .		trans, grid, dset, lo_off, hi_off, aclass,
      .		lo_cx, hi_cx, big_cx, lo_isp, i, axis,
-     .		cxsize, split_ax, split_ax_len, frag, var, ss, lo_ss,
-     .		hi_ss, nmod, nmodhi, npts, xlate, dup_cx, i4d,
-     .          line, imemb, imemb_dset, grids_dset, len,
+     .		var, ss, lo_ss, hi_ss, res_size,
+     .		nmod, nmodhi, npts, xlate, dup_cx, i4d,
+     .          line, imemb, imemb_dset, grids_dset, len, ncomp,
      .		orig_grid, iline, attlen, maxlen, orig_cat, orig_var,
      .		memb_dset, hi_cat, hi_var, hi_grid, agg_vlen, memb_vlen, slen
-	REAL	ax_frac
+	INTEGER*8 available_mem, biggest_allowed
 	REAL*8	TM_WORLD, ww_given, ww_nrst
 	CHARACTER*128 VAR_CODE, agg_vname, memb_vname
 	CHARACTER*128 buff
@@ -128,6 +131,8 @@
 	is_sum  ( lo_isp ) = unspecified_int4	! diag housekeeping
 	itsa_uvar = cx_category(lo_cx) .EQ. cat_user_var
 	modulo_dest_regrid = .FALSE.		! if regrid requires modulo
+	big_cx = lo_cx   ! initialize default. Used in compressed split/gather
+	trans  = trans_no_transform
 
 * set up a context buffer to be modified for various grids needed
 	CALL CREATE_NEW_CONTEXT( lo_cx, hi_cx, status )	! pushes stack
@@ -235,13 +240,78 @@
 
 	   is_uvar(lo_isp) = hi_var ! relevant if component 1 is LET/D
 
+*-*-*-*-*-*-*-*-*-*-
+
+	ELSEIF (aclass .EQ. isact_class_union_member) THEN
+
+* SET UP TO RETURN A VARIABLE IN A UNION AGGREGATION
+	   is_act( lo_isp ) = isact_get_union_member
+
+* set result pointer to indicate no memory result has been created yet
+	   is_mr( lo_isp ) = unspecified_int4
+	   is_sum( lo_isp ) = 1  ! or something... Set these equal.
+	   is_phase( lo_isp ) = 1
+
+* Set up context (hi_cx) to get the requested aggregate member
+* Start with bookkeeping to prepare to request component
+	   CALL TRANSFER_CONTEXT( lo_cx, hi_cx )
+
+	   agg_vname = VAR_CODE (cat_file_var, cx_variable(hi_cx))
+	   agg_vlen = TM_LENSTR1(agg_vname)
+
+* Get the member dataset, and the grid. imemb is the variable # in the union.
+
+	   CALL CD_GET_VAR_ID (dset, agg_vname, imemb, status)
+	   CALL CD_GET_AGG_VAR_INFO (dset, agg_vname, imemb, orig_cat, 
+     .                memb_dset, orig_grid, iline, orig_var, status)
+
+* a couple of 'delayed mode' use cases to beware -- actions the user may have
+* taken **SINCE** the aggregation was defined:
+*  1) user may have issued a SET VAR/NAME= (rename) of the aggregated variable
+*  2) user may have issued a LET/D on a member variable
+* If 1, then agg_vname will differ from memb_vname 
+* If 2, then cat# and var# associated with member name may have changed
+* Do a fresh "find" for the original member variable name
+
+	      memb_vname = VAR_CODE(orig_cat, orig_var)
+	      memb_vlen = TM_LENSTR1(memb_vname)
+	      CALL FIND_VAR_NAME (memb_dset,memb_vname, hi_cat, hi_var )
+	      IF (hi_var .EQ. munknown_var_name) CALL ERRMSG(
+     .		  ferr_aggregate_error, status, 'variable '//
+     .		  memb_vname(:memb_vlen)//' no longer found in agg member '//
+     .		  LEFINT(imemb,slen), *5000)
+
+* confirm grid has not changed since stored during DEFINE DATA/AGG
+	      hi_grid = KNOWN_GRID(memb_dset, hi_cat, hi_var)
+	      IF (hi_grid .EQ. unspecified_int4) THEN   ! can only be a uvar
+* ... GET_UVAR_GRID uses the interp_stack, so bump isp
+	         isp = lo_isp + 1
+	         CALL GET_UVAR_GRID( hi_var, memb_dset, status )
+	         isp = lo_isp  ! restore to value at start of routine
+                 IF ( status .NE. ferr_ok ) GOTO 5000
+	         hi_grid = KNOWN_GRID(memb_dset, hi_cat, hi_var)
+	      ENDIF
+
+* set up the member variable
+	   cx_data_set(hi_cx) = memb_dset
+	   cx_category(hi_cx) = hi_cat
+	   cx_variable(hi_cx) = hi_var
+	   cx_grid    (hi_cx) = hi_grid
+	   CALL GET_CONTEXT_BAD_FLAG(hi_cx)
+
+c	   CALL TRANSFER_CONTEXT( hi_cx, lo_cx )
+
+	   is_uvar(lo_isp) = hi_var ! relevant if component 1 is LET/D
+
+*-*-*-*-*-*-*-*-*-*-
 
 **************
 	ELSEIF ( aclass .EQ. isact_class_trans) THEN
 
 * SET UP FOR A TRANSFORMATION
 	   trans  = cx_trans( axis, lo_cx )
-	   is_act( lo_isp ) = isact_trans_code + trans
+	   is_act  ( lo_isp ) = isact_trans_code + trans
+	   is_phase( lo_isp ) = isphase_allatonce
 	   cx_trans    ( axis, hi_cx ) = trans_no_transform
 	   cx_trans_arg( axis, hi_cx ) = bad_val4
 
@@ -346,7 +416,6 @@
 	   ENDIF
 	   aclass = isact_class_regrid
 
-
 	ELSEIF( aclass .EQ. isact_class_aux_plot_vars ) THEN
 * SET UP TO GET AUXILIARY ARGUMETS FOR 3-ARG PLOTS ONTO THE STACK
 * ...  set up to get the first aux var
@@ -507,73 +576,22 @@
 * size limits then try to split the calculation into fragments.
 * For example, TEMP[I=1:100 at DIN,J=1:100 at AVE,K=1:25 at AVE,L=1:100 at AVE]
 * the required data is 100x100x25x100 - TOO BIG !!
-* after the L and K transforms have been split off we will have
-* TEMP[I=1:100 at DIN,J=1:100 at AVE,K=1:25,L=1:100] which is a reasonable 2500 pts.
-* after the next strip, however, the request will be 100 times larger.  At this
-* time we would be better to split up the context, say, along the L axis so
-* that each requested component is a manageable size.
-* 11/95: similarly, modulo regrids may involve source data greatly in excess
+* Similarly, modulo regrids may involve source data greatly in excess
 * of the result
- 300	IF ( aclass.EQ.isact_class_trans
+	IF ( aclass.EQ.isact_class_trans
      .		.AND. trans.GT.trans_compress_code
+     .		.AND. trans.NE.trans_interpolate
      . .OR.  aclass.EQ.isact_class_regrid
      .		.AND. ITSA_MODULO_REGRID(lo_cx, axis)		) THEN
-	   IF ( aclass.EQ.isact_class_trans ) THEN 
-	      cxsize = CGRID_SIZE( hi_cx )	! well tested of old (11/95)
-	   ELSE
-	      cxsize = CGRID_SIZE_MAX( hi_cx )	! unknown lims get len=line_dim
-	   ENDIF
-
-* do we have a size problem ?
-	   IF ( cxsize .LE. mode_arg( pmode_desperate,1 ) ) GOTO 800
-* yes, too big ! can we split the calculation along some axis ?
-*  ( try to split along a slow access axis of the data )
-	   DO 500 i = nferdims, 1, -1
-	      IF ( dset.GT.pdset_irrelevant .AND. dset.LE.maxdsets ) THEN
-	         split_ax = ds_ax_speed(i, dset)
-	      ELSE
-	         split_ax = i
-	      ENDIF
-	      IF ( cx_trans(split_ax,lo_cx) .NE. trans_no_transform ) GOTO 500
-	      IF ( ITSA_MODULO_REGRID(lo_cx,split_ax) ) GOTO 500
-* ... beware user-defined vars with limits specified in definition
-	      IF ( itsa_uvar ) THEN
-	         IF ( uvar_given(split_ax,var) .NE. uvlim_needed ) GOTO 500
-	      ENDIF
-	      split_ax_len = CX_DIM_LEN(split_ax,lo_cx)
-	      IF ( split_ax_len .EQ. 1 ) GOTO 500
-* ... in desparation, only, consider splitting along the fastest access axis
-	      IF ( i.EQ.1 .AND. .NOT.mode_desperate )  GOTO 500
-	      GOTO 510
- 500	   CONTINUE	   
-* no way to split up the calculation
-	   GOTO 800
-* OK - lets divvie this baby up !
- 510	   aclass = isact_class_gather
-	   is_act(lo_isp) = isact_gather
-	   axis = split_ax
-* save the default context so it can be re-used at each chunk
-	   CALL CREATE_NEW_CONTEXT( lo_cx, big_cx, status )	! pushes stack
-	   IF ( status .NE. ferr_ok ) GOTO 5000
-	   is_big_cx( lo_isp ) = big_cx
-* cancel result pointer to indicate no result yet
-	   is_mr( lo_isp ) = unspecified_int4
-* determine the largest fragment satisfying the "desperate mode" argument
-* for compressing transforms consider here ALL of the axes that may expand 
-	   IF ( aclass.EQ.isact_class_trans ) cxsize = POTENT_SIZE(lo_cx)
-	   ax_frac = FLOAT(mode_arg(pmode_desperate,1)) / cxsize
-	   frag = MAX( 1, INT(split_ax_len*ax_frac) )
-	   is_sum( lo_isp ) = frag
-* set up context to get the first fragment
-	   CALL TRANSFER_CONTEXT( big_cx, hi_cx )
-	   cx_hi_ss(hi_cx,axis) = cx_lo_ss(hi_cx,axis) + frag - 1
-	   cx_by_ss(axis,hi_cx) = .TRUE.
-	   CALL FLESH_OUT_AXIS( axis, hi_cx, status )
-	   IF ( status .NE. ferr_ok ) GOTO 5000
+* ... create the context of the first chunk, if possible
+*     SETUP_GATHER may change nothing, or it may set up split/gather
+*     in hi_cx, axis and the is_* variables
+	   CALL SETUP_GATHER(aclass, lo_cx, hi_cx, lo_isp, axis, status)
+	   IF (status .NE. ferr_ok) GOTO 5000
 	ENDIF
 
 * diagnostic mode output: "strip --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
- 800	IF ( mode_diagnostic ) 	CALL DIAG_OP('strip', aclass, lo_cx, axis)
+	IF ( mode_diagnostic ) 	CALL DIAG_OP('strip', aclass, lo_cx, axis)
 
 * push stack to go after the requested component
 	is_axis ( lo_isp ) = axis
diff --git a/fer/stk/is_subspan_fill.F b/fer/stk/is_subspan_fill.F
index 7d36a56..13bca2d 100644
--- a/fer/stk/is_subspan_fill.F
+++ b/fer/stk/is_subspan_fill.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_SUBSPAN_FILL( memory, *, *, status )
+	SUBROUTINE IS_SUBSPAN_FILL(  *, *, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -54,7 +54,6 @@
 
 * calling argument declarations:
 	INTEGER	status
-	REAL	memory( mem_blk_size, max_mem_blks )
 * normal return is for error conditions
 * exit #1 is to request another grid ( stack has been pushed )
 * exit #2 is to signal completion of the activity at this stack level
@@ -114,7 +113,7 @@
 
 	IF ( mr_type(res_mr) .EQ. ptype_string ) THEN
 	   CALL INIT_C_STRING_ARRAY( MGRID_SIZE_DELTA(res_mr),
-     .                               memory(1, mr_blk1(res_mr)),
+     .                               memry(res_mr)%ptr,
      .                               mr_c_pointer(res_mr)      )
 	   CALL SET_NULL_C_STRING_ARRAY(mr_c_pointer(res_mr),
      .                                  MGRID_SIZE_DELTA(res_mr) )
@@ -124,14 +123,13 @@
 * 11/95: if there might be voids in the result pre-fill with missing data flags
 * to-do: could make this more efficient and fill only the "N+1" virtual point.
 	IF ( mr_type(res_mr) .EQ. ptype_float  ) CALL FILL_MEMORY
-     .				( memory,mr_blk1(res_mr),mr_nblks(res_mr),
-     .                            mr_bad_data(res_mr) )
+     .				( res_mr, mr_bad_data(res_mr) )
 
 * Copy the component data into the result (unless the silly user
 *  requested the void point, alone
 	IF ( cx_lo_ss(res_cx, idim) .LT. npts ) CALL COPY_INTO
-     .		       ( memory(1, mr_blk1(com_mr)), com_mr, com_cx,
-     .			 memory(1, mr_blk1(res_mr)) ,res_mr )
+     .		       ( memry(com_mr)%ptr, com_mr, com_cx,
+     .			 memry(res_mr)%ptr ,res_mr )
 
 * Successful completion of modulo operation
 	CALL MR_NOT_IN_USE( com_mr )	! remove memory protection on component
diff --git a/fer/stk/is_trans.F b/fer/stk/is_trans.F
index 8e11b75..fa7c6f2 100644
--- a/fer/stk/is_trans.F
+++ b/fer/stk/is_trans.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_TRANS( memory, ROUTINE, *, status )
+	SUBROUTINE IS_TRANS(  ROUTINE, *, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -69,15 +69,22 @@
 *		variables
 * V530:  8/00 *sh* changed string trap to be based on data type, not category
 * V533:  7/01 *sh* transform @SHF supported for strings
-* v552   4/03 *acm* up VAR_TRANS to 150 characters (variables are up to 128, plus
-*                   space for the transformation specifier)
-* V600  10/05 *acm* Fis bug 899: rather than the ungraceful STOP, issue an error
-*                   message if a 4-D transform was requested but the dimensions 
-*                   are not available in the grid.
+* v552   4/03 *acm* up VAR_TRANS to 150 characters (variables are up to 128,
+*                   plus space for the transformation specifier)
+* V600  10/05 *acm* is bug 899: rather than the ungraceful STOP, issue an
+*		    error message if a 4-D transform was requested but the
+*		    dimensions are not available in the grid.
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
-* V691+ *acm* 8/14 Fix ticket 2196. Fill transformations component index range should 
-*                  be limited to the range of the axis.
-
+* V691+ *acm* 8/14 Fix ticket 2196. Fill transformations component index range
+*		   should be limited to the range of the axis.
+* V710  *acm* 9/16 For ticket 2469: Allow an average of an average and likewise
+*		   @SUM, @MIN, @MAX 
+* V702 *sh* 11/16 mods for trac #2428 - calculation in gathered fragments
+*		   Compute transformations in 3 phases: i)initialize,
+*		   ii) accumulate, and iii) finalize so that compressed axes
+*		   may be split/gathered (in IS_STRIP and IS_GATHER)
+* V702 *sh*  1/17 for trac enhancement #2369 -- dynamic memory management 
+	
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
 	include	'ferret.parm'
@@ -88,10 +95,10 @@
 	include	'xtext_info.cmn'
 	include	'xalgebra.cmn'
 	include	'xfr_grid.cmn'
+	include 'xprog_state.cmn'
 
 * calling argument declarations:
 	INTEGER	status
-	REAL	memory( mem_blk_size, max_mem_blks )
 * normal exit is for error conditions
 * exit #1 is to signal completion of the activity at this stack level
 	INTEGER	ROUTINE		! (returns status )
@@ -99,30 +106,37 @@
 
 * internal variable declarations:
 * ... "res"="result" , "com"="component"
-	LOGICAL	ITSA_FILL_TRANS, ITSA_MODULO_AXIS, its_4d, string_bad_good, string_com
+	LOGICAL	ITSA_FILL_TRANS, ITSA_MODULO_AXIS, its_4d, string_bad_good,
+     .		string_com, need_init
 	INTEGER CX_DIM_LEN, MGRID_SIZE_DELTA, DO_4D_STRING_TRANS, CAXIS_LEN,
      .		slen, cx_valid,
      .		res_isp, com_isp, res_cx, com_cx, com_mr, res_mr, idim,
-     .		trans, grid, lo_off, hi_off, ss_lo, ss_hi, wksiz, wkblk,
-     .		mrlist(2), axes(nferdims), idim1, i, ndim, axis
+     .		trans, grid, lo_off, hi_off, ss_lo, ss_hi,
+     .		mrlist(2), axes(nferdims), idim1, i, ndim, axis, nbuffer,
+     .		dflt_cx, frag
+	INTEGER*8 i8_size
 	REAL	arg
-	REAL*8	TM_WORLD, ww, ww_lo, ww_hi
+	REAL*8	TM_WORLD, ww, ww_lo, ww_hi, init_val
 	CHARACTER VAR_TRANS*150, buff*150
 
 * --- end of introductory code ---
 
-* initialize
+* ***** initial set up and error checks *****
 	res_isp	= isp
 	com_isp	= res_isp + 1
 	res_cx  = is_cx( res_isp )
 	com_cx  = is_cx( com_isp )
+        res_mr  = is_mr( res_isp ) ! gets set in isphase_initialize_transform
 	com_mr	= is_mr( com_isp )
+ 	dflt_cx = is_big_cx( res_isp )
+	frag    = is_sum   ( res_isp )
 	idim1	= is_axis( res_isp )
 	trans	= cx_trans( idim1, res_cx )
 	arg	= cx_trans_arg( idim1, res_cx )
 	grid    = cx_grid( com_cx )
 	string_bad_good = .FALSE.
 	string_com = .FALSE.
+	need_init = .FALSE.
 
 * determine if this is a 1D or a 4D (multiple axis) transformation
 	its_4d = .FALSE.
@@ -155,7 +169,11 @@
 	DO 200 i = 1, ndim
 	  idim = axes(i)
 	  IF ( cx_lo_ss(com_cx,idim) .EQ. unspecified_int4 ) THEN
-             IF ( trans .NE. trans_interpolate ) GOTO 5100
+             IF ( trans .NE. trans_interpolate .AND.
+     .            trans .NE. trans_average .AND.
+     .            trans .NE. trans_max .AND.
+     .            trans .NE. trans_min .AND.
+     .            trans .NE. trans_sum) GOTO 5100
 	  ENDIF
  200	CONTINUE
 
@@ -170,17 +188,24 @@
               CALL CREATE_MEM_VAR( res_cx, res_mr, status )
               IF ( status .NE. ferr_ok ) GOTO 5000
               CALL COPY_GRID(
-     .           memory( 1, mr_blk1(com_mr) ) , com_mr,
-     .           memory( 1, mr_blk1(res_mr) ) , res_mr )
-              is_mr( res_isp ) = res_mr
+     .           memry(com_mr)%ptr , com_mr,
+     .           memry(res_mr)%ptr , res_mr )
+              is_mr   (res_isp) = res_mr
               GOTO 1000
             ENDIF
          ENDIF
 
+* ***** end of initial set up and error checks *****
+
+* This is_phase branch occurs only when additional data has arrived to be
+* accumulated in a split/gather operation
+	IF (is_phase(res_isp) .EQ. isphase_accumulate_transform) GOTO 500
+* 11111 start of isphase_initialize_transform 11111 *
+
 * create a result context based on the received component
 	cx_valid= cx_buff
 	CALL TRANSFER_CONTEXT( com_cx, cx_valid )
-		DO 300 i = 1, ndim
+	DO 300 i = 1, ndim
 	   idim = axes(i)
 * ... if the requested region was unknown use the component region
 
@@ -188,13 +213,22 @@
 
 	   IF ( cx_lo_ss(res_cx,idim).EQ.unspecified_int4
      .	   .AND.cx_lo_ww(idim,res_cx).NE.unspecified_val8 ) THEN
-	      IF (cx_grid(com_cx) .GE. mgrid_abstract .AND. cx_grid(com_cx) .LE. mgrid_fabstract ) THEN  
+	      IF (cx_grid(com_cx) .GE. mgrid_abstract
+     .	    .AND. cx_grid(com_cx) .LE. mgrid_fabstract ) THEN  
 	         cx_lo_ss( res_cx, idim ) = cx_lo_ss(com_cx,idim)
 	         cx_hi_ss( res_cx, idim ) = cx_hi_ss(com_cx,idim)
               ENDIF
 	   ENDIF
 
-	   IF ( cx_lo_ss(res_cx,idim).EQ.unspecified_int4
+	   IF (is_phase(res_isp) .EQ. isphase_initialize_transform
+     .	.AND. idim.EQ.idim1 ) THEN
+* 11/16 - we are initializing a result to be determined by a gather operation
+* along the transformed axis
+	      CONTINUE  ! leave result ax-s as-is
+! note that this is an imperfect solution.  Might the requested result region
+! be incorrect?  eg. LIST V[l=@ave], where v = v2[L=100:200]
+! check with totalview whether the result incorrectly has full axis span
+	   ELSEIF ( cx_lo_ss(res_cx,idim).EQ.unspecified_int4
      .	   .AND.cx_lo_ww(idim,res_cx).EQ.unspecified_val8 ) THEN
 * 11/95 - FLESH_OUT_AXIS cannot be trusted to flesh this out.
 *	  It puts responsibility for redundant limits onto the various interp
@@ -209,8 +243,8 @@
 	         cx_by_ss( idim, res_cx ) = .FALSE.
 	      ENDIF
 ! pre=11/95cx_lo_ss(res_cx,idim) = cx_lo_ss(com_cx,idim)
-!	      cx_hi_ss(res_cx,idim) = cx_hi_ss(com_cx,idim)
-!	      cx_by_ss(idim,res_cx) = .TRUE.
+!	         cx_hi_ss(res_cx,idim) = cx_hi_ss(com_cx,idim)
+!	         cx_by_ss(idim,res_cx) = .TRUE.
 
 * 11/95 - is interpolation the only case of a compressing transform
 * where the component ww range normally doesn't match the result?
@@ -252,22 +286,37 @@
      .         trans .EQ. trans_bad_pt     .OR.
      .         trans .EQ. trans_4d_good_pt .OR.
      .         trans .EQ. trans_4d_bad_pt ) THEN
-              string_bad_good = .TRUE.
-              cx_type(res_cx) = ptype_float
+               string_bad_good = .TRUE.
+               cx_type(res_cx) = ptype_float
            ENDIF
         ENDIF
 
-	CALL CREATE_MEM_VAR( res_cx, res_mr, status )
+* 11/16: allow extra buffer space for accumulating weight values or counts?
+	CALL TRANS_INIT_VALUE(idim1, res_cx,
+     .			             need_init, init_val, nbuffer)
+
+* allocate memory for the result
+	CALL CREATE_MEM_VAR_W_BUFFER( res_cx, res_mr, nbuffer, status )
 	IF ( status .NE. ferr_ok ) GOTO 5000
-	is_mr( res_isp ) = res_mr
+* ... no nonger deferred.  Memory allocation for result has just been done.
+	is_deferred_mem(res_isp  ) = 0  ! chunk  memory no longer deferred
+	IF (res_isp .GT.1) is_deferred_mem(res_isp-1) = 0  ! result mem
+	is_mr(res_isp) = res_mr
 	IF ( mr_type(res_mr) .EQ. ptype_string .AND.
-     .       (.NOT.string_bad_good)) THEN
+     .     (.NOT.string_bad_good)                    ) THEN
 * ... only applicable to @SHF transformation; else will return a null string.
            CALL INIT_C_STRING_ARRAY( MGRID_SIZE_DELTA(res_mr),
-     .                               memory(1, mr_blk1(res_mr)),
+     .                               memry(res_mr)%ptr,
      .                               mr_c_pointer(res_mr)      )
 	ENDIF
 
+* 11/16: pre-fill the result with an initialization value
+	IF (need_init) CALL FILL_MEMORY( res_mr, init_val )
+
+* if starting up a split/gather ...
+	IF (is_phase(res_isp).EQ.isphase_initialize_transform) 
+     .	    is_phase(res_isp)  = isphase_accumulate_transform
+
 !* diagnostic message ?
 !	IF (mode_diagnostic) CALL DIAGNOSTIC_OUT(
 !     .		'@'//ALG_TRANS_CODE(trans)//'   ', res_mr, point_to_mr )
@@ -303,24 +352,27 @@
 	   IF  ( .NOT. ITSA_MODULO_AXIS(com_cx, idim) ) THEN
 	      cx_lo_ss( cx_valid, idim ) = MAX(1,cx_lo_ss( cx_valid, idim ))
 	      cx_hi_ss( cx_valid, idim ) = MAX(1,cx_hi_ss( cx_valid, idim ))
-	      cx_lo_ss( cx_valid, idim ) = MIN(CAXIS_LEN(idim,com_cx), cx_lo_ss( cx_valid, idim ))
-	      cx_hi_ss( cx_valid, idim ) = MIN(CAXIS_LEN(idim,com_cx), cx_hi_ss( cx_valid, idim ))
+	      cx_lo_ss( cx_valid, idim ) = MIN(CAXIS_LEN(idim,com_cx),
+     .					       cx_lo_ss( cx_valid, idim ))
+	      cx_hi_ss( cx_valid, idim ) = MIN(CAXIS_LEN(idim,com_cx),
+     .					       cx_hi_ss( cx_valid, idim ))
 	   ENDIF 
 
+* insufficient component data to compute anything?
 	   IF ( cx_lo_ss(cx_valid,idim) .GT. cx_hi_ss(cx_valid,idim) ) THEN
-* ... insufficient component data to compute anything
 	      IF ( mr_type(res_mr) .EQ. ptype_string ) THEN
 	        CALL SET_NULL_C_STRING_ARRAY(mr_c_pointer(res_mr),
      .                                       MGRID_SIZE_DELTA(res_mr) )
 	      ELSE
-	        CALL FILL_MEMORY( memory,mr_blk1(res_mr),mr_nblks(res_mr),
-     .		  		  mr_bad_data(res_mr) )
+	        CALL FILL_MEMORY( res_mr, mr_bad_data(res_mr) )
 	      ENDIF
 	      GOTO 1000
-	   ELSEIF (  cx_lo_ss(res_cx,idim) .LT. cx_lo_ss(cx_valid,idim)
+	   ENDIF
+
+	   IF (  cx_lo_ss(res_cx,idim) .LT. cx_lo_ss(cx_valid,idim)
      .		.OR. cx_hi_ss(res_cx,idim) .GT. cx_hi_ss(cx_valid,idim) ) THEN
 * ... insufficient component data to compute the entire requested region
-	      CALL BAD_EDGES( cx_valid, memory(1,mr_blk1(res_mr)), res_mr )
+	      CALL BAD_EDGES( cx_valid, memry(res_mr)%ptr, res_mr )
 	   ELSEIF (  cx_lo_ss(res_cx,idim) .GT. cx_lo_ss(cx_valid,idim)
      .		.OR. cx_hi_ss(res_cx,idim) .LT. cx_hi_ss(cx_valid,idim) ) THEN
 * ... *1/98* component data is BIGGER than expected for requested result
@@ -348,8 +400,10 @@
 
 	      axis = grid_line( idim, cx_grid(com_cx) )
 	      IF (.NOT. line_modulo(axis)) THEN
-	         cx_lo_ss(com_cx,idim) = MAX(1, cx_lo_ss(com_cx,idim))
-	         cx_hi_ss(com_cx,idim) = MIN(line_dim(axis), cx_hi_ss(com_cx,idim))
+	         cx_lo_ss(com_cx,idim) = MAX(1,
+     .					     cx_lo_ss(com_cx,idim))
+	         cx_hi_ss(com_cx,idim) = MIN(line_dim(axis),
+     .				             cx_hi_ss(com_cx,idim))
 	      ENDIF
 
 	      cx_by_ss(idim,res_cx) = .TRUE.
@@ -358,6 +412,11 @@
 	   ENDIF
 	ENDIF
 
+* 11111 end of isphase_initialize_transform 11111 *
+
+ 500	CONTINUE
+* 22222 start of isphase_accumulate_transform 22222 *
+
 * set up 4D array limits as unsubscripted variables in COMMON
 	mrlist(1) = com_mr
 	mrlist(2) = res_mr
@@ -367,19 +426,19 @@
 	IF ( string_com ) THEN
 	   IF (trans .EQ. trans_shift) THEN
 	      CALL DO_STRING_SHIFT ( idim, arg,
-     .		memory( 1, mr_blk1(com_mr) ), com_mr, com_cx, ! component
-     .		memory( 1, mr_blk1(res_mr) ), res_mr, res_cx) ! result
+     .		memry(com_mr)%ptr, com_mr, com_cx, ! component
+     .		memry(res_mr)%ptr, res_mr, res_cx) ! result
 	   ELSEIF (string_bad_good) THEN
 	   
 	      IF (its_4d) THEN
 	         status = DO_4D_STRING_TRANS( trans,
-     .		 memory( 1, mr_blk1(com_mr) ), com_mr, com_cx, ! component
-     .		 memory( 1, mr_blk1(res_mr) ), res_mr, res_cx) ! result
+     .		 memry(com_mr)%ptr, com_mr, com_cx, ! component
+     .		 memry(res_mr)%ptr, res_mr, res_cx) ! result
 	         IF ( status .NE. ferr_ok ) GOTO 5000
               ELSE
  	         CALL DO_STRING_GOODBAD ( idim, trans,
-     .		 memory( 1, mr_blk1(com_mr) ), com_mr, com_cx, ! component
-     .		 memory( 1, mr_blk1(res_mr) ), res_mr, res_cx) ! result                            ! result
+     .		 memry(com_mr)%ptr, com_mr, com_cx, ! component
+     .		 memry(res_mr)%ptr, res_mr, res_cx) ! result                            ! result
 	      ENDIF
 	   ELSE
 	     CALL SET_NULL_C_STRING_ARRAY(mr_c_pointer(res_mr),
@@ -391,37 +450,65 @@
 * reserve working space for the transformation
 * Note: this logic is a loose hodge-podge to get an upper bound size for all
 * the different cases: 4D, 1D, with arguments, etc.
-	wksiz = 1
-	DO 500 i = 1, ndim
+	i8_size = 1
+	DO i = 1, ndim
 	   idim = axes(i)
-	   wksiz = wksiz + CX_DIM_LEN(idim,com_cx)
- 500	CONTINUE
+	   i8_size = i8_size + CX_DIM_LEN(idim,com_cx)
+	ENDDO
+
 * ... allow room for COS(lat) array during 4D transforms (8/96)
-	IF (ndim .GT. 1 )  wksiz = wksiz + CX_DIM_LEN(y_dim,com_cx)
+	IF (ndim .GT. 1 )  i8_size = i8_size + CX_DIM_LEN(y_dim,com_cx)
 * ... set minimum work size
-	wksiz = MAX( iswksiz, wksiz )
+	i8_size = MAX( iswksiz, i8_size )
 * ... for transforms like smoothers allow extra slop on each end 
-	IF ( arg .NE. bad_val4 )  wksiz =
-     .			MAX( wksiz, CX_DIM_LEN(idim1,res_cx)+INT(arg) )
-	CALL GET_WORK_SPC( wksiz, wkblk, status )
+	IF ( arg .NE. bad_val4 )  i8_size =
+     .			MAX( i8_size, CX_DIM_LEN(idim1,res_cx)+INT(arg) )
+	CALL GET_DYN_WORK_SPACE( i8_size, status )
 	IF ( status .NE. ferr_ok ) GOTO 5000
 
-* do the transform
-
+* do the transform (or at least accumulate results in preparation to finalize)
 	status = ROUTINE( idim, arg,
-     .		memory( 1, mr_blk1(com_mr) ), com_mr, com_cx, ! component
-     .		memory( 1, mr_blk1(res_mr) ), res_mr, res_cx, ! result
-     .		memory( 1, wkblk )			    ) ! work space
+     .		memry(com_mr)%ptr, com_mr, com_cx, ! component
+     .		memry(res_mr)%ptr, res_mr, res_cx, ! result
+     .		workmem(plegacy_work_buffer)%ptr ) ! work space
 	IF ( status .NE. ferr_ok ) GOTO 5000
 
+* go back for more input data to compress into the transform?
+	IF ( is_phase(res_isp) .EQ. isphase_accumulate_transform ) THEN
+
+	   IF (cx_hi_ss(com_cx,idim1).LT.cx_hi_ss(dflt_cx,idim1) ) THEN
+* yes - get next fragment
+
+* ... remove component protections that signaled this calculation needed it
+	      CALL MR_NOT_IN_USE( com_mr )	
+
+* ... adjust the component limits to get the next fragment as setup by IS_STRIP
+	      CALL DEFINE_NEXT_CHUNK_CX(idim1, com_cx, dflt_cx, frag, status)
+	      IF ( status .NE. ferr_ok ) GOTO 5000
+	      IF ( mode_diagnostic )
+     .		   CALL DIAG_OP('doing', isact_class_cmp_gather_dummy,
+     .							com_cx, idim1)
+* ... push the interpretation stack and go get it
+	      isp = com_isp
+	      RETURN 1
+	   ELSE
+* no - all fragments have been processed.  Get ready to finalize
+	      cx_stack_ptr = cx_stack_ptr - 1   ! free big_cx
+	   ENDIF
+	ENDIF
+
+* finialize (e.g. average = WEIGHTED_SUM(values) / SUM(weights)
+	CALL TRANS_FINALIZE( idim, arg,
+     .		memry(res_mr)%ptr, res_mr, res_cx )
+
 * remove component protections that signaled this calculation needed it
  1000	CALL MR_NOT_IN_USE( com_mr )	
 
-* free the context stack space
+* ... successful completion
+*     free the context stack space
 	cx_stack_ptr = cx_stack_ptr - 1
-
-* success
-	RETURN 1
+	is_phase(res_isp)  =   isphase_completed_transform ! housekeeping
+	RETURN 2
 
 * error exit
  5000	RETURN
diff --git a/fer/stk/is_gather.F b/fer/stk/is_union_member.F
similarity index 60%
copy from fer/stk/is_gather.F
copy to fer/stk/is_union_member.F
index 25e865e..fd7fb66 100644
--- a/fer/stk/is_gather.F
+++ b/fer/stk/is_union_member.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_GATHER( memory, *, *, status )
+	SUBROUTINE IS_UNION_MEMBER(  *, *, status )
 
 *
 *
@@ -35,16 +35,12 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* bring together a full data grid from fragmentary pieces by requesting those
-* pieces one by one on the interpretation stack
+* return the union member just read.
 
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
+* programmer - Ansley Manke
+* NOAA/PMEL, Seattle, WA - SDIG
 *
-* V200:  6/8/89
-* V312: 5/94 - array "memory" as a calling argument
-*       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V7   5/12 *acm* Union aggregations: DEFINE DATA/AGG/U
 
 	include	'tmap_dims.parm'
 	include	'ferret.parm'
@@ -53,12 +49,11 @@
 	include	'xcontext.cmn'
 	include	'xvariables.cmn'
 	include	'xprog_state.cmn'
+	include 'xtm_grid.cmn_text'   ! for grid_line
 
 * calling argument declarations:
 	INTEGER	status
-	REAL	memory( mem_blk_size, max_mem_blks )
 * normal return is for error conditions
-* exit #1 is to request another grid ( stack has been pushed )
 * exit #2 is to signal completion of the activity at this stack level
 
 *   ... interpretation stack setup at the time this is called ...
@@ -67,9 +62,13 @@
 *	 isp	<--	current stack level (for gathering )
 
 * internal variable declarations:
-	INTEGER com_mr, res_mr, com_cx, res_cx,	dflt_cx, com_isp, res_isp,
-     .		frag, idim, top
+	INTEGER NCF_GET_ATTR_FROM_ID, 
+     .		com_mr, res_mr, com_cx, res_cx, com_isp, res_isp,
+     .		res_grid, res_cat, res_var, imemb, memb_dset, iline,
+     .		varid, attlen, maxlen, agg_dset, slen
 
+	CHARACTER*128 VAR_CODE, agg_vname, memb_vname, buff
+	CHARACTER LEFINT*6
 
 * --- end of introductory code ---
 
@@ -80,55 +79,52 @@
 	com_mr     = is_mr( com_isp )
 	res_cx     = is_cx( res_isp )
 	com_cx     = is_cx( com_isp )
-	dflt_cx	   = is_big_cx( res_isp )
-	idim       = is_axis( res_isp )
-	frag	   = is_sum ( res_isp )
+        agg_dset   = cx_data_set(res_cx)
+	res_grid   = cx_grid(res_cx)
+	res_cat    = cx_category(res_cx)
+	res_var    = cx_variable(res_cx)
 
-* diagnostic mode output: " doing gather VAR_NAME[x=lo:hi at TRN:n,D=#]"
-	IF ( mode_diagnostic ) 	CALL DIAG_OP
-     .				( 'doing',isact_class_gather, com_cx, idim )
+* diagnostic mode output: " doing aggregate gather VAR_NAME[x=lo:hi at TRN:n,D=#]"
+* Put in the agg- index value just for this output
 
-* create context and mem. res. space if this is the first component recieved
+	IF ( mode_diagnostic ) THEN
+	   CALL DIAG_OP
+     .	    ( 'doing', isact_get_union_member, com_cx, no_dim )
+	ENDIF
+
+* create mem. result from result cx 
 	IF ( res_mr .EQ. unspecified_int4 ) THEN
-* ... use gathering axis from dflt_cx and everything else from component
-* ... (since all else may be altered during evaluation if its a user var)
-	   CALL TRANSFER_CONTEXT( com_cx, res_cx )
-	   CALL TRANSFER_AXIS( idim, dflt_cx, res_cx )
 	   CALL CREATE_MEM_VAR( res_cx, res_mr, status )
 	   IF ( status .NE. ferr_ok ) GOTO 5000
 	   is_mr( res_isp ) = res_mr
 	ENDIF
 
 * copy data just received into the result
-	CALL COPY_INTO( memory(1,mr_blk1(com_mr)), com_mr, com_cx,
-     .			memory(1,mr_blk1(res_mr)), res_mr )
+* bad data flag differences are resolved during this COPY operation
+	CALL COPY_INTO( memry(com_mr)%ptr, com_mr, com_cx,
+     .			memry(res_mr)%ptr, res_mr )
 
 * ... remove the component protection that signaled we needed it here
-	CALL MR_NOT_IN_USE( com_mr )
+	IF (cx_data_set(com_cx) .NE. pdset_dummy) THEN
+	   CALL MR_NOT_IN_USE( com_mr )
+* ... delete it altogether (avoid memory clogging) unless its in use elsewhere
+	   IF (mr_protected(com_mr) .EQ. mr_not_protected) 
+     .					CALL DELETE_VARIABLE( com_mr )
+	ELSE
+	   CALL DELETE_VARIABLE( com_mr )   ! delete dummy (missing vals) 
+	ENDIF
 
-* are we done ?
-	IF ( cx_hi_ss(com_cx,idim) .EQ. cx_hi_ss(dflt_cx,idim) ) THEN
-* ... yes - pop com_cx and dflt_cx from context stack
-	   IF ( dflt_cx .NE. cx_stack_ptr ) STOP 'GATH_STK_ERR'	! temp
-	   cx_stack_ptr = cx_stack_ptr - 2
+* we are done 
+* ... yes - pop com_cx from context stack
+
+	IF ( is_phase(isp) .EQ. is_sum(isp) ) THEN
+	   cx_stack_ptr = cx_stack_ptr - 1
 	   RETURN 2
 	ENDIF
 
-* no - set up com_cx to get the next component grid
-	top = cx_hi_ss(com_cx,idim)
-	CALL TRANSFER_CONTEXT( dflt_cx, com_cx )
-	cx_lo_ss(com_cx,idim) = top + 1
-	cx_hi_ss(com_cx,idim) = MIN( top+frag, cx_hi_ss(dflt_cx,idim)	)
-	cx_by_ss(idim,com_cx) = .TRUE.
-	CALL FLESH_OUT_AXIS( idim, com_cx, status )
-	IF ( status .NE. ferr_ok ) GOTO 5000
+**************************************
 
-* push the interpretation stack and go get it
-	isp = com_isp
-	status = ferr_ok
-	RETURN 1
 
 * error exit
  5000	RETURN
 	END	
-
diff --git a/fer/stk/is_uvar_grid.F b/fer/stk/is_uvar_grid.F
index 3b2a533..75ebaf4 100644
--- a/fer/stk/is_uvar_grid.F
+++ b/fer/stk/is_uvar_grid.F
@@ -116,6 +116,10 @@
 * v698 5/16  *acm* ticket 2413: New attribute keywords ncoordvars, coordnames
 *                  return info about coordinate-variables in datasets
 * V699  5/16 *sh*  replace variable uvar_grid with calls to c LIST structures
+* 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 
+* 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
 
 * calling argument declarations:
 	INTEGER	status
@@ -137,10 +141,10 @@
 	include	'xfr_grid.cmn'
 
 * internal variable declarations:
-	LOGICAL	ITSA_GCVAR, ITSA_CONST_VAR,
+	LOGICAL	ITSA_GCVAR, ITSA_CONST_VAR, ITSA_DCVAR,
      .		its_dynamic, its_gc, need_another_pass,
      .		saved_ifthen_type, do_err, ok_remote,
-     .		getting_aux_var, its_const_var
+     .		getting_aux_var, its_const_var, its_dc
 	INTEGER KNOWN_GRID, STR_SAME,
      .		TM_LENSTR1, GCF_PARENT_UVAR, GCF_PARENT_CHAR, 
      .		NCF_GET_AGG_COUNT, iaux,
@@ -152,6 +156,7 @@
      .          status_deallo, agg_grid, agg_line, agg_len, agg_dset,
      .		imemb, memb_cat, memb_dset, memb_grid, iline, nv,
      .		hi_cat, hi_var, vlen, slen, dummy_aux(nferdims)
+	INTEGER igrid_test
 
 	CHARACTER VAR_CODE*128, LEFINT*6,
      .		  name*512, buff*2048, varname*512, 
@@ -172,7 +177,9 @@
 	dset   = cx_data_set( lo_cx )
 	nitem  = uvar_num_items( uvar )
 	its_gc = ITSA_GCVAR(uvar)
+	its_dc = ITSA_DCVAR(uvar)
 	has_uvar_gc = has_uvar_gc .OR. its_gc  ! for repl_exprns fixing bug 1523
+	has_uvar_dc = .FALSE.                  ! function changes based on args
 	is_uvar_const = ITSA_CONST_VAR(uvar)   ! for repl_exprns fixing bug 2213
 * ... initialization to support 2/99 pass-2 changes
 	pass_number = 1
@@ -662,88 +669,59 @@ c	cx_hi_ss(hi_cx, x_dim) = attlen !!
 	is_uvar ( isp ) = cx_variable( hi_cx )
 	is_act  ( isp ) = isact_get_grid	! temp diagnostic
 	RETURN 1
-
-!* grid for at least 1 member variable of this aggregated dataset is not known.
-!* Go back to get_uvar_grid and call is_aggregate_grid to get it
-!* ... repeat this phase again when we get back
-! 990	is_phase(isp) = is_phase(isp) - 1
-!* load the new variable info onto the IS stack
-!	CALL PUSH_INTERP_STACK( isp, status )
-!	IF ( status .NE. ferr_ok ) RETURN
-!
-!	is_cx   ( isp ) = hi_cx
-!	is_uvar ( isp ) = cx_variable( hi_cx )
-!	is_act  ( isp ) = isact_get_agg_grid	! get aggregate grid on return.
-!
-!	RETURN 1
 	
 ***  DONE - clean up
  1000	CONTINUE
 * for grid-changing vars all of the arguments contextx are still on the stack 
 	IF ( its_gc ) THEN
-	   DO 1010 i = 1, nitem - 1	! 3/99 - strings not on stack
+	   DO 1010 i = 1, nitem - 1
 	      cx_stack_ptr = cx_stack_ptr - 1
-!	      IF (uvar_item_type(i,uvar).NE. alg_string)
-!     .			cx_stack_ptr = cx_stack_ptr - 1
  1010	   CONTINUE
 	ENDIF
 * have any variables been encountered ?
 * is this a completely abstract expression like X+Y*2 ?
 * ... 8/95 check uvar_dset: LET/D variable needs uvar_need_dset always true 
+
 	IF ( is_sum(isp) .EQ. isalg_transfer ) THEN
 	   IF ( uvar_dset(uvar).EQ.unspecified_int4 ) THEN
 	      uvar_need_dset(uvar) = .FALSE.
-	      uvar_grid(uvar, pdset_irrelevant) = mgrid_abstract
-	      uvar_data_type(uvar, pdset_irrelevant) = ptype_float
 	      CALL SAVE_UVAR_GRID(uvar, mgrid_abstract, ptype_float,
      .				  pdset_irrelevant)
-* ... 6/26 init aux info just for house-keeping
-	      DO idim = 1, nferdims
-	         uvar_aux_cat(uvar,idim,pdset_irrelevant) = dummy_aux(idim)
-	         uvar_aux_var(uvar,idim,pdset_irrelevant) = dummy_aux(idim)
-	      ENDDO
+* ... 6/16 init aux info just for house-keeping
 	      CALL SAVE_UVAR_AUX_INFO(uvar,
      .                         dummy_aux, dummy_aux, pdset_irrelevant)
 	   ELSE		! defined with LET/D
 !	      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
-		 uvar_grid(uvar, pdset_irrelevant) = mgrid_abstract
-	         uvar_data_type(uvar, pdset_irrelevant) = ptype_float
+
 	         CALL SAVE_UVAR_GRID(uvar, mgrid_abstract, ptype_float,
      .				     pdset_irrelevant)
 * ... 6/16 init aux info just for house-keeping
-	         DO idim = 1, nferdims
-	            uvar_aux_cat(uvar,idim,pdset_irrelevant) = dummy_aux(idim)
-	            uvar_aux_var(uvar,idim,pdset_irrelevant) = dummy_aux(idim)
-	         ENDDO
 	         CALL SAVE_UVAR_AUX_INFO(uvar,
      .                         dummy_aux, dummy_aux, pdset_irrelevant)
               ELSE
-                 uvar_grid(uvar, dset) = mgrid_abstract
-	         uvar_data_type(uvar, dset) = ptype_float
 	         CALL SAVE_UVAR_GRID(uvar, mgrid_abstract, ptype_float, dset)
 * ... 6/16 init aux info just for house-keeping
-	         DO idim = 1, nferdims
-	            uvar_aux_cat(uvar,idim,dset) = dummy_aux(idim)
-	            uvar_aux_var(uvar,idim,dset) = dummy_aux(idim)
-	         ENDDO
 	         CALL SAVE_UVAR_AUX_INFO(uvar, dummy_aux, dummy_aux, dset)
 	      ENDIF
 	   ENDIF
 	   gnum = mgrid_abstract
 	   CALL TM_USE_DYN_GRID( mgrid_abstract )
 	   GOTO 2000
-	ELSEIF (uvar_grid(uvar,pdset_irrelevant).EQ.mgrid_abstract) THEN
-* ... abstract grid after second pass
-* (2/99 comment this out since pseudo-vars now determine their own grids:
-*	XABSTRACT, YABSTRACT, ZABSTRACT, or TABSTRACT
-!	   GOTO 2000	! removed 2/99
 	ENDIF
 
 * catalog this result checking for matching previously existing grid
-	CALL TM_GET_LIKE_DYN_GRID(grid, its_dynamic, gnum, 
+
+* For dimension-changing function, make a new grid and copy gnum to it
+* The function will change the grid so we do not want to use existing one.
+
+	IF (its_dc) THEN
+	   CALL TM_MAKE_NEW_DYN_GRID(grid, gnum, status )
+ 	ELSE     
+	   CALL TM_GET_LIKE_DYN_GRID(grid, its_dynamic, gnum, 
      .				grd_stk_ptr, status )  
+ 	ENDIF
 	IF (status .NE. merr_ok) GOTO 5000
 	IF ( its_dynamic ) THEN
 	   IF ( mode_diagnostic )  CALL DIAG_OP
@@ -763,11 +741,6 @@ c	cx_hi_ss(hi_cx, x_dim) = attlen !!
         IF ( uvar_dset(uvar).EQ.unspecified_int4 )
      .            uvar_need_dset(uvar) = .NOT.cx_dset_gvn(big_cx)
 
-c        IF ( itype .EQ. alg_attrib_val  ) THEN
-c           uvar_dset(uvar) = dset
-c           uvar_need_dset(uvar) = .TRUE.
-c        ENDIF
-
 	IF ( uvar_need_dset(uvar) .AND. dset .NE. unspecified_int4) THEN
 	   this_dset = dset
 	ELSE
@@ -775,14 +748,7 @@ c        ENDIF
 	ENDIF
 
 * store the important stuff!
-	uvar_grid( uvar, this_dset ) = gnum
-	uvar_data_type(uvar, this_dset) = cx_type(big_cx)
 	CALL SAVE_UVAR_GRID(uvar, gnum, cx_type(big_cx), this_dset)
-	DO  i = 1, nferdims
-           uvar_aux_var (uvar, i, this_dset) = cx_aux_var (i, big_cx)
-           uvar_aux_cat (uvar, i, this_dset) = cx_aux_cat (i, big_cx)
-	   uvar_aux_stat(uvar, i           ) = cx_aux_stat(i, big_cx)
-	ENDDO
 	CALL SAVE_UVAR_AUX_INFO(uvar,
      .       cx_aux_cat(1,big_cx), cx_aux_var(1,big_cx), this_dset)
 
@@ -793,8 +759,7 @@ c        ENDIF
 	   IF ( pass_number .GT. 1 ) GOTO 9000	! caught in a loop ...
 	   DO 1110 i = 1, nferdims
  1110	   uvar_given(i,uvar) = uvlim_irrelevant
-	   uvar_grid( uvar, this_dset ) = unspecified_int4 ! 10/00
-	   uvar_data_type(uvar, this_dset) =  unspecified_int4 ! housekeeping
+
 * 6/16 comment as we switch to LIST-based management of uvar grids:
 * ... the following commented-out SAVE_UVAR_GRID call was initially inserted
 *     for consistency with the pre-LIST code. Studying the comments we see
diff --git a/fer/stk/its_auto_curvi.F b/fer/stk/its_auto_curvi.F
index 3ae9527..3017351 100644
--- a/fer/stk/its_auto_curvi.F
+++ b/fer/stk/its_auto_curvi.F
@@ -56,11 +56,12 @@
 	frame_bottom = is_aux_ptr(is_ptr)
 	ITS_AUTO_CURVI = .FALSE.
 
-* count the stored auxiliary variables in the designated stack frame
-	DO idim = 1, nferdims
-	   which_axes(idim) = is_mr(frame_bottom+idim) .NE. unspecified_int4
-	   IF ( which_axes(idim) ) ITS_AUTO_CURVI = .TRUE.
-	ENDDO
+! 1/17 this code temporarily comments out
+!* count the stored auxiliary variables in the designated stack frame
+!	DO idim = 1, nferdims
+!	   which_axes(idim) = is_mr(frame_bottom+idim) .NE. unspecified_int4
+!	   IF ( which_axes(idim) ) ITS_AUTO_CURVI = .TRUE.
+!	ENDDO
 
 	RETURN
 	END
diff --git a/fer/stk/known_grid.F b/fer/stk/known_grid.F
index 0f7e31f..de4daaa 100644
--- a/fer/stk/known_grid.F
+++ b/fer/stk/known_grid.F
@@ -47,6 +47,8 @@
 * v554: 1/04 *acm* Counter variables for REPEAT/RANGE=/NAME=
 * V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
 * V698  3/16 *sh* added logic for cat_ef_time2d (ACTS_LIKE_FVAR)
+* 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 
 
 	include	'tmap_dims.parm'
 #       include "tmap_dset.parm"
@@ -84,7 +86,8 @@
 	   ELSE
 	      dset = data_set
 	   ENDIF
-	   KNOWN_GRID = uvar_grid( variable, dset )
+	   
+	   CALL GET_SAVED_UVAR_GRID(variable, dset, KNOWN_GRID)
 
 	ELSEIF ( category .EQ. cat_temp_var ) THEN
 
diff --git a/fer/stk/make_pseudo_var.F b/fer/stk/make_pseudo_var.F
index a03cecf..44da953 100644
--- a/fer/stk/make_pseudo_var.F
+++ b/fer/stk/make_pseudo_var.F
@@ -48,6 +48,8 @@
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 *       *acm*      more 4s that should have been nferdims
 *      *acm* 4/12 Add new MODE FOURDEE to allow E,F,M,N,etc as user-vars
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
+*                 (no actual changes, just modernizing the code a bit.)
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -61,14 +63,14 @@
 	REAL	pvar( lo_ss:hi_ss )
 
 * internal variable declarations:
-	INTEGER	grid, pv, i
-	REAL	BOX_SIZE
-	REAL*8	TM_WORLD
+	INTEGER	grid, dset, pv, i, iaxis
+	REAL	BOX_SIZE, TM_WORLD
 
 * initialize
 
 * defining grid for output data
 	grid = cx_grid( cx )
+	dset = cx_data_set( cx )
 
 	pv = (mr_variable(mr)-1) / nferdims  + 1
 
@@ -82,23 +84,29 @@
 	RETURN
 
 * "X", "Y", "Z", "T", "E", "F"
- 200	DO 210 i = lo_ss, hi_ss
- 210	pvar( i ) = TM_WORLD( i,grid,idim,box_middle )
+* TM_WORLD returns days if it is a true-month time axis
+
+ 200	DO i = lo_ss, hi_ss
+	   pvar( i ) = TM_WORLD( i,grid,idim,box_middle )
+	ENDDO
 	RETURN
 
 * "XBOX", "YBOX", "ZBOX", "TBOX", "EBOX", "FBOX"
- 300	DO 310 i = lo_ss, hi_ss
- 310	pvar( i ) = BOX_SIZE( i, grid, idim )
+ 300	DO i = lo_ss, hi_ss
+	   pvar( i ) = BOX_SIZE( i, grid, idim )
+	ENDDO
 	RETURN
 
 * "XBOXLO", "YBOXLO", "ZBOXLO", "TBOXLO", "EBOXLO", "FBOXLO"
- 400	DO 410 i = lo_ss, hi_ss
- 410	pvar( i ) =  TM_WORLD( i,grid,idim,box_lo_lim )
+ 400	DO i = lo_ss, hi_ss
+	   pvar( i ) =  TM_WORLD( i,grid,idim,box_lo_lim )
+	ENDDO
 	RETURN
 
 * "XBOXHI", "YBOXHI", "ZBOXHI", "TBOXHI", "EBOXHI", "FBOXHI"
- 500	DO 510 i = lo_ss, hi_ss
- 510	pvar( i ) =  TM_WORLD( i,grid,idim,box_hi_lim )
+ 500	DO i = lo_ss, hi_ss
+	   pvar( i ) =  TM_WORLD( i,grid,idim,box_hi_lim )
+	ENDDO
 	RETURN
 
 	END
diff --git a/fer/stk/pass_ambig_lims.F b/fer/stk/pass_ambig_lims.F
index a93730f..ddd36d8 100644
--- a/fer/stk/pass_ambig_lims.F
+++ b/fer/stk/pass_ambig_lims.F
@@ -94,6 +94,7 @@
 *       *acm* 4/12 6D Ferret: time axis may be in t or f direction.
 * V683  *acm*10/12 Improve handling of F axes and info about the calendar of the grid.
 * V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
+* V720: 4/17 *acm* Add direction-changing functions as a subset of grid-changing ones
 
         include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -121,7 +122,7 @@
 	
 * take data type from the memory resident result
 	cx_type( cx ) = mr_type( mr )
-	
+
 * axis limits and subscripts:
 	DO 100 idim = 1, nferdims
 
@@ -191,7 +192,18 @@
 	      cx_lo_ww(idim,cx) = mr_lo_ww(idim,mr)
 	      cx_hi_ww(idim,cx) = mr_hi_ww(idim,mr)
 
+* If the computation has a grid-changing fcn chosen at run-time, we still need
+* to use the limits as loaded
+	   ELSEIF (has_uvar_dc .AND. uvar_given(idim,uvar) .EQ. uvlim_needed
+     .		  .AND. .NOT.cx_given(idim,cx) 	    ) THEN
+
+	         cx_lo_ss(cx,idim) = mr_lo_ss(mr,idim)
+	         cx_hi_ss(cx,idim) = mr_hi_ss(mr,idim)
+	         cx_lo_ww(idim,cx) = mr_lo_ww(idim,mr)
+	         cx_hi_ww(idim,cx) = mr_hi_ww(idim,mr)
+
 	   ENDIF
+ 
 
 * 8/12/91 bug fix during Unix port
 * this is not known to be the perfect fix (kludge)...
diff --git a/fer/stk/is_dummy.F b/fer/stk/potent_ax_lims.F
similarity index 68%
copy from fer/stk/is_dummy.F
copy to fer/stk/potent_ax_lims.F
index edd6362..9cff810 100644
--- a/fer/stk/is_dummy.F
+++ b/fer/stk/potent_ax_lims.F
@@ -1,4 +1,4 @@
-	SUBROUTINE IS_DUMMY( memory, *, status )
+	SUBROUTINE POTENT_AX_LIMS ( cx, axis, lo_ss, hi_ss )
 
 *
 *
@@ -35,47 +35,41 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* create a "dummy" result -- all missing values
-* for use with forecast aggregations, in cases of a missing forecast
+* determine the "potential" limits of axis in context cx - that is,
+* the subscript limits that would exist if we ignored compressing transforms  
+* note: uses cx_buff
 
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 *
-* V698  12/15 - *sh*
+* V702 *sh* 11/16 - using technique employed in POTENT_SIZE
  
-	include 'tmap_dims.parm'
-	include	'ferret.parm'
-	include	'errmsg.parm'
-	include	'interp_stack.parm'
-	include	'xvariables.cmn'
-	include	'xcontext.cmn'
-	include	'xprog_state.cmn'
+        include 'tmap_dims.parm'
+	include 'ferret.parm'
+	include 'xcontext.cmn'
 
 * calling argument declarations:
-	INTEGER	status
-	REAL	memory( mem_blk_size, max_mem_blks )
+	INTEGER cx, axis, lo_ss, hi_ss
 
 * internal variable declarations:
-	INTEGER	mr, cx
-
-* --- end of introductory code ---
-* initialize
-	cx = is_cx( isp )
-
-* reserve and catalog space for the result
-	CALL CREATE_TEMP_MEM_VAR( cx, mr, status )
-	IF ( status .NE. ferr_ok ) GOTO 5000
-	is_mr( isp ) = mr
-
-* diagnostic output
-	IF (mode_diagnostic) CALL DIAGNOSTIC_OUT('dummy',mr,point_to_mr)
+	INTEGER	status
 
-* insert a block of missing value flags
-	CALL FILL_MEMORY( memory, mr_blk1(mr),
-     .			  mr_nblks(mr), mr_bad_data(mr) )
 
-	RETURN 1
+	IF (cx_trans(axis, cx) .GT. trans_compress_code) THEN
+* make a copy of the context axis in a scratch buffer
+	   cx_variable( cx_buff ) = cx_variable( cx )
+	   cx_category( cx_buff ) = cx_category( cx )
+	   cx_grid    ( cx_buff ) = cx_grid    ( cx )
+	   CALL TRANSFER_AXIS( axis, cx, cx_buff )
+	   cx_trans(axis,cx_buff) = trans_no_transform
+	   cx_by_ss(axis,cx_buff) = .FALSE.
+	   CALL FLESH_OUT_AXIS( axis, cx_buff, status )	! ignore status
+	   lo_ss = cx_lo_ss(cx_buff,axis)
+	   hi_ss = cx_hi_ss(cx_buff,axis)
+	ELSE
+	   lo_ss = cx_lo_ss(cx,axis)
+	   hi_ss = cx_hi_ss(cx,axis)
+	ENDIF
 
-* error exit
- 5000	RETURN
-	END	
+	RETURN
+	END
diff --git a/fer/stk/setup_gather.F b/fer/stk/setup_gather.F
new file mode 100644
index 0000000..3d7a3a5
--- /dev/null
+++ b/fer/stk/setup_gather.F
@@ -0,0 +1,518 @@
+	SUBROUTINE SETUP_GATHER( aclass, res_cx, src_cx, lo_isp,
+     .				  axis, 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. 
+*
+*
+* GATHER CHECK !!!
+* This routine is called, to determine if a split/gather operation is needed,
+* and if so to create the context descriping the "chunks" to
+* be gathered and the axis (or axes) along which gathering will occur
+
+* If the grid we are about to request (hi_cx) is going to exceed reasonable
+* size limits then try to split the calculation into fragments.
+* For example, TEMP[I=1:100 at DIN,J=1:100 at AVE,K=1:25 at AVE,L=1:100 at AVE]
+* the required data is 100x100x25x100 - TOO BIG !!
+* after the L and K transforms have been split off we will have
+* TEMP[I=1:100 at DIN,J=1:100 at AVE,K=1:25,L=1:100] which is a reasonable 2500 pts.
+* after the next strip, however, the request will be 100 times larger.  At this
+* time we would be better to split up the context, say, along the L axis so
+* that each requested component is a manageable size.
+* Similarly, modulo regrids may involve source data greatly in excess
+* of the result
+
+* NOTE that this routine does a precice job for a single transformation
+* (including "4d" transforms) and modulo regridding. Where it is weak is
+* when a single expression contains more than one transform -- e.g.
+* "V[x=@ave,t=@sum]" or "V[gt=clim at mod,x=@ave]".  In general such syntaxes
+* should be discouraged.
+
+* V702  3/17 *sh* Code extracted from IS_STRIP and several refinements added
+
+	include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include	'errmsg.parm'
+	include	'interp_stack.parm'
+	include	'xcontext.cmn'
+	include	'xvariables.cmn'
+	include	'xprog_state.cmn'
+	include	'xalgebra.cmn'
+	include	'xax_speed.cmn'
+        include 'xtm_grid.cmn_text'
+
+* calling arguments:
+*  res_cx - (input) (aka lo_cx) context of the result, including
+*                   the transform (e.g. @AVE)
+*  src_cx - (inout) (aka hi_cx) On input the full context that must
+*                   be processed in order for Ferret to compute the transform.
+*                   On output it is the context of the first chunk
+*  axis   - (inout) If splitting occurs it may not be along the transform axis 
+ 
+* calling argument declarations:
+	INTEGER	aclass, res_cx, src_cx, lo_isp, axis, status
+
+* internal variable declarations:
+	LOGICAL ITSA_MODULO_REGRID,
+     .		itsa_uvar, split_on_compressed_ax, dup_split,
+     .		inadequate_split_length, use_caution, no_axis_found,
+     .		multiax_trans(nferdims),
+     .		ax_splittable(nferdims),
+     .		ax_compressed(nferdims)
+	INTEGER	POTENT_SIZE, CGRID_UVAR_SIZE, CGRID_SIZE_MAX,
+     .		i, i1, i2, dset, var, cat, big_cx, split_ax, ax_trans,
+     .		frag, lo_ss, hi_ss, trans, nbuffers, ax1, ax2,
+     .		split_ax_len, ncomp, nsplittable,
+     .		n_dfrnt_xforms, ax_len(nferdims)
+	INTEGER*8 available_mem, set_aside_mem, free_mem,
+     .		deferred_essential_mem, min_mem_used, res_size, src_size,
+     .		ax_min_mem(nferdims)
+	REAL	rsrc_size, reduction_factor_needed
+
+******
+* logic in this routine goes in 4 phases
+* 0. Initialize: amount of memory available, the size of the result, etc.
+* 1. Determine if splitting is needed              (exit if no)
+* 2. Find the slowest single axis split that fits  (skip to step 4 if found)
+* 3. Find the slowest 2-axis split that fits       (skip to step 4 if found)
+*      If no solution so far, reduce the memory held in reserve and goto 2
+* 4. Setup the split/gather
+******
+
+* initialize
+	dset = cx_data_set( res_cx )
+	var  = cx_variable( res_cx )
+	cat  = cx_category( res_cx )
+	itsa_uvar = cat .EQ. cat_user_var
+	use_caution = mode_state(pmode_frugal,1)
+	status = ferr_ok
+
+* if we are returning here as part of a multi-axis split, then the isp stack
+* level just above us will also be isact_gather.  If so, learn the amount of
+* memory of memory that the previous axes have committed
+	IF (lo_isp .LT. 2) RETURN ! should never happen. Playing it safe.
+	IF (is_act(lo_isp-1) .EQ. isact_gather) THEN
+	   deferred_essential_mem = is_deferred_mem(lo_isp-1)
+	ELSE
+	   deferred_essential_mem = 0
+	ENDIF	
+
+****************************************************************
+* ***** PHASE 1. Determine if splitting is needed   (exit if no)
+
+* how much memory will be needed for the full source data of the transform?
+	IF ( aclass.EQ.isact_class_trans ) THEN 
+!	   src_size = CGRID_SIZE( src_cx )
+! ... have to use POTENT_SIZE because of cases like V[X=@SUM,T=@AVE]
+	   src_size = POTENT_SIZE( res_cx )
+	   trans  = cx_trans( axis, res_cx )
+	ELSE					! modulo regrid
+! ... FIXME: CGRID_SIZE_MAX is buggy, and a calc like POTENT_SIZE is needed
+!            if modulo regridding and @AVE are combined on a single variable
+	   src_size = CGRID_SIZE_MAX( src_cx )	! unknown lims get len=line_dim
+	   trans = trans_no_transform
+	ENDIF
+
+* locate other axes of a multi-axis transform (e.g. xy average)
+* and determine how many *different* compressing transforms there are
+	n_dfrnt_xforms = 0
+        DO i = 1, nferdims
+           multiax_trans(i) = cx_trans(i, res_cx) .EQ. trans
+	   IF (.NOT.multiax_trans(i)
+     .    .AND. (cx_trans(i,res_cx) .GT. trans_compress_code) )
+     .		n_dfrnt_xforms = n_dfrnt_xforms + 1
+        ENDDO
+
+* how many result buffers are needed?
+* ... to split/gather on a compressed axis requires
+*     1) the result
+*     2) the accumulation buffer (e.g. @ave requires a running sum)
+*     3) additional accumulation buffer for @VAR
+* ... modulo regrids require 3 buffers, plus one more for modvar (see IS_TRANS)
+*     If split/gather occurs on the compressed axis, then the buffers are
+*     part of the result size.  If the split/gather occurs on another axis
+*     then the buffers are part of the chunk size (the "source" data - src)
+	IF (aclass .EQ. isact_class_trans) THEN
+	   IF (trans .EQ. trans_variance) THEN
+	      nbuffers = 3
+	   ELSE
+	      nbuffers = 2
+	   ENDIF
+	ELSE
+	   IF (cx_regrid_trans(axis,res_cx) .EQ. prgrd_modvar) THEN
+	      nbuffers = 4   ! see IS_REGRID
+	   ELSE
+	      nbuffers = 3
+	   ENDIF
+	ENDIF
+
+*  ...to compute a user variable often requires temporary vars and other
+*     component vars to be held in memory at once as function arguments
+*     As a default cautious assumption we will allow a uvar to use only
+*     1/4 as much memory, figuring there may be 4 of them in memory at once
+*     NOTE: This is the crudest heuristic used in this memory management (3/17)
+*     It forces Ferret to use much less memory on a uvar, even if its
+*     definition is simply V=fvar, which needs no extra memory at all because
+*     it uses RE_ASSIGN_VARIABLE in IS_ALGEBRA.  The best improvement I have
+*     been able to come up with for this would be that during get_grid phase
+*     in addition to a grid we compute a "max_significant_stack_depth" for
+*     each uvar.  This would count only the fvars and uvars (not constants and
+*     pseudo-vars which are small) that need to be on the stack simultaneously
+*     In pyramids of definitions, the stack requirements of child vars would
+*     need to factor into this calculation (heuristically, cuz the exact stack
+*     max cannot be determined in this simple way).
+	IF (itsa_uvar) THEN
+	   ncomp = 4   ! a pretty cautious choice
+	ELSE
+	   ncomp = 1
+	ENDIF
+* ... if there are multiple transforms on the expression, each acts like
+*     another component to be evaluated (at least I think so ...)
+	ncomp = ncomp + n_dfrnt_xforms
+
+* how much memory is there that is not already committed
+	free_mem = max_mem_allowed
+     .		- (permanent_mem + essential_mem + deferred_essential_mem)
+
+* ... if the available memory is so small that even the result cannot fit, 
+*     abort now where we can give the most informative error report
+*     Note that IS_STRIP (and this routine) gets called up a second time
+*     whenever an uncompressed axis has been chosen for splitting.  At that
+*     time deferred_committed_mem will reflect the size of the result buffer
+*     from the first pass.
+	res_size = CGRID_UVAR_SIZE( res_cx )   ! size of result
+	IF (free_mem .LE. res_size) GOTO 5100 
+
+* how much memory to set aside as hedge against running out?
+	IF (use_caution) THEN
+	   set_aside_mem = (mode_arg(pmode_frugal,1)/100.) * free_mem
+	   available_mem = free_mem - set_aside_mem
+	ELSE
+	   available_mem = free_mem
+	ENDIF
+
+* do we need to split up the calculation ?
+	IF ( ((ncomp*src_size)+(nbuffers*res_size))
+     .	 .LE. available_mem                           ) RETURN
+
+****************************************************************
+* ***** PHASE 2. Find the best single axis split    (skip 3 if yes)
+
+* Init phase 2 variables
+ 100	nsplittable       = 0
+	inadequate_split_length = .FALSE.
+
+* Loop through the potential spliattable axes, giving preference to
+* axes of slower access
+	DO i = nferdims, 1, -1
+	   IF ( dset.GT.pdset_irrelevant .AND. dset.LE.maxdsets ) THEN
+              split_ax = ds_ax_speed(i, dset)
+	   ELSE
+	      split_ax = i
+	   ENDIF
+
+	   ax_splittable(split_ax) = .FALSE.  ! default until proven other
+
+* Cannot split/gather on axes that are transformed with an algorithm
+*       that depends upon looking at neighboring data points (well, not so
+*       easily, anyway). smoothers, fillers, @LOC, etc.
+	   ax_trans = cx_trans(split_ax,res_cx)
+	   IF    (ax_trans .NE. trans_no_transform) THEN
+	      IF (ax_trans .LE. trans_compress_code
+     .       .OR. ax_trans .EQ. trans_locate        ) CYCLE
+	   ENDIF
+
+* Cannot split along a modulo regrid axis
+	   IF ( ITSA_MODULO_REGRID(res_cx,split_ax) ) CYCLE
+
+* Beware user-defined vars with limits specified in definition
+	   IF ( itsa_uvar ) THEN
+	      IF ( uvar_given(split_ax,var) .NE. uvlim_needed ) CYCLE
+	   ENDIF
+
+	   CALL POTENT_AX_LIMS(res_cx, split_ax, lo_ss, hi_ss)
+	   split_ax_len = hi_ss - lo_ss + 1
+	   IF (split_ax_len .EQ. 1) CYCLE
+
+* The only compressed axes allowed for splitting are THE trans
+* If there is more than one compressing transform (e.g. V[z=@AVE,T=@VAR])
+* reordering them may give a wrong result due to non-linearity
+* If res_cx includes other compressing transformations
+* INTERP_STACK & IS_STRIP will return us here for those in turn
+	   split_on_compressed_ax = ax_trans .GT. trans_compress_code
+	   IF (split_on_compressed_ax
+     .    .AND. .NOT.multiax_trans(split_ax)  )   CYCLE
+
+* By how much does the source data exceed the available space?
+* For a compressing calculation like @AVE
+*     available_mem must hold   [nbuffers*res_size+src_size]  at one time
+* If we split along the compressed axis there must be room for the result
+* with its buffers and a chunk of source data reduced along the compressed axis
+* ==> mem_used     = nbuffers*res_size + src_size/reduction_factor
+* The maximum reduction factor is when we split into chunks of a single index
+* ==> min_mem_used = nbuffers*res_size + src_size/split_ax_len
+* If we split along an uncompressed axis, each chunk of the calculation
+* acts like a smaller version of the full transformation, where the length
+* of the split axis has been reduced
+* ==> mem_used     = res_size + (nbuffers*res_size+src_size)/reduction_factor
+* ==> min_mem_used = res_size + (nbuffers*res_size+src_size)/split_ax_len
+	   rsrc_size = src_size    ! force calculations into floating point
+	   IF (split_on_compressed_ax) THEN
+	      min_mem_used = nbuffers*res_size
+     .			   + (ncomp*rsrc_size)/split_ax_len
+	   ELSE
+	      min_mem_used = res_size
+     .			   + (nbuffers*res_size+ncomp*rsrc_size)/split_ax_len
+	   ENDIF
+
+* We found a splittable axis!
+* If this axis is long enough to do the job, then use it
+	   IF (available_mem .GE. min_mem_used ) GOTO 1000
+
+* save a summary of this axis to use later if a multi-axis split is needed
+	   nsplittable = nsplittable + 1
+	   ax_splittable(split_ax) = .TRUE.
+	   ax_compressed(split_ax) = split_on_compressed_ax
+	   ax_len       (split_ax) = split_ax_len
+	   ax_min_mem   (split_ax) = min_mem_used
+	ENDDO
+
+****************************************************************
+* ***** PHASE 3. Find the best multiple axis split
+
+* Done looping through the axes with no axis long enough to do the job, alone.
+	inadequate_split_length = .TRUE.
+
+* Now the hard case -- select the best two axes to split on:
+* Splitting on multiple axes means that we will be returning here again
+* When we split along the compressed axis the transform gets removed from
+* the individual chunks, so further splitting of the chunk becomes impossible
+* Therefore we must choose to split on an uncompressed axis first
+
+* The optimal strategy is to choose the two slowest axes that together will
+* provide the required requction factor.
+* ax1 is the axis that will be chosen for splitting, so it must be uncompressed
+	IF (nsplittable .GE. 2) THEN
+	   DO i1 = nferdims, 1, -1
+	      IF ( dset.GT.pdset_irrelevant .AND. dset.LE.maxdsets ) THEN
+                 ax1 = ds_ax_speed(i1, dset)
+	      ELSE
+	         ax1 = i1
+	      ENDIF
+
+	      IF (.NOT.ax_splittable(ax1)) CYCLE
+	      IF (ax_compressed(ax1)) CYCLE
+
+	      DO i2 = nferdims, 1, -1
+	         IF ( dset.GT.pdset_irrelevant .AND. dset.LE.maxdsets ) THEN
+                    ax2 = ds_ax_speed(i2, dset)
+	         ELSE
+	            ax2 = i2
+	         ENDIF
+
+	         IF (ax2 .EQ. ax1) CYCLE
+	         IF (.NOT.ax_splittable(ax2)) CYCLE
+
+* ... can these two axes together provide the needed reduction in size?
+*     the minimum memory needed for the 2-level nested gather is
+*     ax_min_mem(ax1) + ax_min_mem(ax2)/ax_len(ax1)
+	         IF (available_mem .GE. ncomp*
+     .		     (ax_min_mem(ax1) + ax_min_mem(ax2)/ax_len(ax1))  ) THEN
+* ... we found a 2-level split/gather that will work
+	            split_ax = ax1
+	            split_on_compressed_ax = .FALSE.
+	            GOTO 1000
+	         ENDIF
+	      ENDDO
+	   ENDDO
+	ENDIF
+
+* We did not find two axes that can fit this transformation into avail_mem
+* Try again with less caution, if wiggle room still exists
+	IF (use_caution) GOTO 2000
+
+* Boy, we're in a tough spot. 
+* No answer was found that was guaranteed to fit into available_mem
+* Instead choose a strategy that represents a reasonable college try
+* ... Whatever axis we choose, at this point we are guaranteed that the frag
+*     size will be 1 (else we wouldn;t be at this point)
+*     so there is no reason to adjust available_mem back to its cautious level
+* Choose an uncompressed axis if one is available, because it can be
+* part of a 2-axis split.  Choose the longest one.  It reduces the most.
+	no_axis_found = .TRUE.
+	DO i = 1, nferdims
+	   IF (.NOT.ax_splittable(i)) CYCLE
+	   IF (ax_compressed(i)) CYCLE
+* ... found an uncompressed axis
+	   IF (no_axis_found) THEN
+	      split_ax = i
+	      no_axis_found = .FALSE.
+	   ELSEIF (ax_len(i) .GT. ax_len(split_ax)) THEN
+	      split_ax = i
+	   ENDIF
+	ENDDO
+
+* If no uncompressed axis is available, then choose the longest compressed axis
+	IF (no_axis_found) THEN
+	   DO i = 1, nferdims
+	      IF (.NOT.ax_splittable(i)) CYCLE
+* ... found an uncompressed axis
+	      IF (no_axis_found) THEN
+	         split_ax = i
+	         no_axis_found = .FALSE.
+	      ELSEIF (ax_len(i) .GT. ax_len(split_ax)) THEN
+	         split_ax = i
+	      ENDIF
+	   ENDDO
+	ENDIF
+
+* skunked?
+	IF (no_axis_found) RETURN ! mod regrid w no other axes available?
+
+	split_on_compressed_ax = ax_compressed(split_ax)
+!	GOTO 1000
+
+****************************************************************
+* ***** PHASE 4. Setup the split/gather
+
+* OK - lets divvie this baby up into chunks!
+* save the default context so it can be re-used at each chunk
+* a compressed axis is represented as lo/hi_ss=-999, which is not what we want
+* so if splitting on a compressed axis, store src_cx
+ 1000	axis = split_ax
+	IF (split_on_compressed_ax) THEN
+* ... when splitting on a compressed axis the stack activity remains the 
+*     compressing transform.  It is IS_TRANS, instead of IS_GATHER, that
+*     will control the fetching of fragment after fragment
+	   CALL CREATE_NEW_CONTEXT( src_cx, big_cx, status )	! pushes stack
+	   is_phase( lo_isp ) = isphase_initialize_transform
+	ELSE
+	   aclass = isact_class_gather
+	   is_act(lo_isp) = isact_gather
+	   CALL CREATE_NEW_CONTEXT( res_cx, big_cx, status )	! pushes stack
+	ENDIF
+	IF ( status .NE. ferr_ok ) GOTO 5000
+	is_big_cx( lo_isp ) = big_cx
+* cancel result pointer to indicate no result yet
+	is_mr( lo_isp ) = unspecified_int4
+* determine the number of subscripts that can be processed in each chunk
+	CALL POTENT_AX_LIMS(res_cx, axis, lo_ss, hi_ss)
+	split_ax_len = hi_ss - lo_ss + 1
+	IF (split_on_compressed_ax) THEN
+	   reduction_factor_needed = ncomp*rsrc_size
+     .				   / (available_mem-nbuffers*res_size)
+	ELSE
+	   reduction_factor_needed = (nbuffers*res_size + ncomp*rsrc_size)
+     .				   / (available_mem-res_size)
+	ENDIF
+	frag = split_ax_len / reduction_factor_needed
+	IF (frag .LT. 1) frag = 1
+	is_sum( lo_isp ) = frag
+* set the subscript range for the first gather fragment
+	CALL TRANSFER_CONTEXT( big_cx, src_cx )
+	cx_hi_ss(src_cx,axis) = lo_ss + frag - 1
+	cx_by_ss(axis,src_cx) = .TRUE.
+	CALL FLESH_OUT_AXIS( axis, src_cx, status )
+	IF ( status .NE. ferr_ok ) GOTO 5000
+
+* diagnostic output about split on compressed axis
+*    (this is a "dummy" interp stack activity in the sense that is_act is
+*     never actually given this activity.  It exists only to generate an
+*     informative diagnostic report)
+	IF ( mode_diagnostic .AND. split_on_compressed_ax ) THEN
+	   CALL DIAG_OP('strip', isact_class_cmp_gather_dummy, big_cx, axis)
+	   CALL DIAG_OP('doing', isact_class_cmp_gather_dummy, src_cx, axis)
+	ENDIF
+
+* at this point we have obligated the use of memory for the result,
+* but we have not yet actually created the memory objects.
+* That will occur in IS_TRANS during its initiailzation phase.
+* So here we plant a record of what we have obligated into the stack, so that
+* when multi-axis strip-gather operations are needed, the next (nested) call
+* to this routine will know of the deferred memory allocations
+* We only alert to deferred memory usage if the frag we have selected is
+* inadequate to fillfill the memory reduction with a single axis split
+	IF (inadequate_split_length) THEN
+	   IF (split_on_compressed_ax) THEN
+	      is_deferred_mem(lo_isp) = nbuffers*res_size
+	   ELSE
+	      is_deferred_mem(lo_isp) = res_size
+	   ENDIF
+	ELSE
+	      is_deferred_mem(lo_isp) = 0
+	ENDIF
+
+* store diagnostic information about the splitting (see SHOW MEM split)
+	IF (nsplits .LE. max_splits) THEN
+	   IF (nsplits .EQ. 0) THEN
+	      dup_split = .FALSE.
+	   ELSE
+	      dup_split = var     .EQ. split_var  (nsplits)
+     .             .AND. cat      .EQ. split_cat  (nsplits)
+     .             .AND. trans    .EQ. split_trans(nsplits)
+     .             .AND. split_ax .EQ. split_axis (nsplits)
+	   ENDIF
+	   IF (dup_split) THEN
+	      split_repeats(nsplits) = split_repeats(nsplits) + 1
+	   ELSE
+	      nsplits = nsplits + 1
+	      split_var  (nsplits) = var
+	      split_cat  (nsplits) = cat
+	      split_axis (nsplits) = split_ax
+	      split_trans(nsplits) = trans
+	      split_frag(nsplits)  = frag
+	      split_repeats(nsplits) = 1
+	   ENDIF
+	ENDIF
+
+* successful completion
+	RETURN
+
+* prepare to go back for another pass
+* ... pass 1 tries to succeed with mode_frugal percent held in reserve
+* ... pass 2 tries again half that much in reserve
+* ... pass 3 tries again using all available memory
+ 2000	available_mem = available_mem + 0.500001*set_aside_mem
+	IF (available_mem .GE. free_mem) THEN
+	   available_mem = free_mem
+	   use_caution = .FALSE.
+	ENDIF
+	GOTO 100
+
+* error exits
+ 5000	RETURN
+ 5100	CALL ERRMSG( ferr_insuff_memory,status,
+     .	    'Requested result is larger than the available memory', *5110)
+ 5110	CALL SHOW_ABORTED_MEM_STATE(res_size)
+	GOTO 5000
+
+	END
diff --git a/fer/stk/setup_sample.F b/fer/stk/setup_sample.F
index 06afe56..970804a 100644
--- a/fer/stk/setup_sample.F
+++ b/fer/stk/setup_sample.F
@@ -1,4 +1,4 @@
-	SUBROUTINE SETUP_SAMPLE( memory, cx_indices, mr_indices,
+	SUBROUTINE SETUP_SAMPLE(  cx_indices, mr_indices,
      .				 ifcn, big_cx, status )
 
 *
@@ -57,7 +57,6 @@
 
 * calling argument declarations:
 	INTEGER	cx_indices, ifcn, mr_indices, big_cx, status
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * ... interpretation stack setup at the time this is called ...
 *	stack level		stack contents
@@ -69,6 +68,7 @@
 	INTEGER n, dims(nferdims), ndim, hold_isp, cx_holder,
      .		min_ss, max_ss, res_grid,
      .		mr_sorted_indices, mr_index_map, axis, nvalid
+	INTEGER*8 n8
 
 * --- end of introductory code ---
 
@@ -83,17 +83,18 @@
 
 * create memory managed work arrays for the sorted_indices and index_map
 	n = CGRID_SIZE(cx_indices)
-	CALL GET_WORK_MR(n,mr_sorted_indices, status)
+	n8 = n     ! promote to INTEGER*8
+	CALL GET_WORK_MR(n8,mr_sorted_indices, status)
 	IF ( status .NE. ferr_ok ) GOTO 5000
-	CALL GET_WORK_MR(n,mr_index_map, status)
+	CALL GET_WORK_MR(n8,mr_index_map, status)
 	IF ( status .NE. ferr_ok ) GOTO 5000
 !	mr_hi_ss(mr_index_map,x_dim) = n	! done in GET_WORK_MR
 
 * extract the 1D list of indices to be obtained
         CALL EXTRACT_LINE ( cx_indices,
-     .                      memory( 1, mr_blk1(mr_indices) ),
+     .                      memry(mr_indices)%ptr,
      .                      mr_indices,
-     .                      memory( 1, mr_blk1(mr_sorted_indices) ),
+     .                      memry(mr_sorted_indices)%ptr,
      .                      dims,
      .                      ndim,
      .                      n,
@@ -109,8 +110,8 @@
 	CALL SORT_LIST(n, min_ss, max_ss,  
      .			   mr_bad_data(mr_indices),
      .			   mr_bad_data(mr_sorted_indices),
-     .			   memory(1,mr_blk1(mr_sorted_indices)),
-     .			   memory(1,mr_blk1(mr_index_map)), nvalid )
+     .			   memry(mr_sorted_indices)%ptr,
+     .			   memry(mr_index_map)%ptr, nvalid )
 
 * pass the number of valid points through the (irrelevant) T axis indices
 * of the (one-dimensional) mr_index_map array
diff --git a/fer/stk/trans_init_value.F b/fer/stk/trans_init_value.F
new file mode 100644
index 0000000..44d5043
--- /dev/null
+++ b/fer/stk/trans_init_value.F
@@ -0,0 +1,126 @@
+	SUBROUTINE TRANS_INIT_VALUE( idim, cx,
+     .			             need_init, init_val, nbuffer)
+
+*  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. 
+*
+*
+* determine the value to use when initializing the output buffer in preparation
+* for performing a transformation
+* @AVE and @DIN, for example, require the result array to be initialized to
+* zero so that sums can be accumulated
+* @SUM needs to count up the number of good-values - an all-bad chunk contributes
+* 0 to the sum; we need to know if there's no valid data over the accumulated sum.
+* @AVE requires nbuffer=2, because it accumulates both weighted sum of values
+* and sum of weights (to be divided in the finalize stage), whereas @DIN
+* requires only nbuffer = 1
+
+
+* programmer - steve hankin
+* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+*
+* V702 11/16 *sh* for enhancement ticket 2428: split/gather on compressed axes
+*       3/17 *sh* nbuffers must be 2 (or more) whenever there is an
+*                 accumulation operation implied (e.g. summing, min, max, ...)
+
+* calling argument declarations:
+	LOGICAL need_init
+	INTEGER idim, cx, nbuffer
+	REAL	init_val
+
+	include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include	'errmsg.parm'
+	include	'xcontext.cmn'
+
+* internal variable declarations:
+	INTEGER	trans
+
+* internal parameter declaration
+        REAL            too_small
+        PARAMETER     ( too_small = -1.E33 )
+        REAL            too_large
+        PARAMETER     ( too_large = 1.E33 )
+
+* --- end of introductory code ---
+* initiailize
+	trans = cx_trans( idim, cx )
+
+	IF ( trans .EQ. trans_average
+     .  .OR. trans .EQ. trans_4d_ave   
+     .  .OR. trans .EQ. trans_integ_def
+     .  .OR. trans .EQ. trans_4d_int_def  ) THEN
+* ... integration accumulates weights, too, so a zero accumulated weight
+*     results in a missing value, instead of a zero
+	   need_init = .TRUE.
+	   init_val = 0.0
+	   nbuffer = 2
+	ELSEIF (trans .EQ. trans_4d_good_pt
+     .      .OR. trans .EQ. trans_bad_pt
+     .      .OR. trans .EQ. trans_4d_bad_pt
+     .      .OR. trans .EQ. trans_sum
+     .      .OR. trans .EQ. trans_4d_sum
+     .      .OR. trans .EQ. trans_good_pt
+     .      .OR. trans .EQ. trans_4d_good_pt
+     .      .OR. trans .EQ. trans_bad_pt
+     .      .OR. trans .EQ. trans_4d_bad_pt   ) THEN
+	   need_init = .TRUE.
+	   init_val = 0.0
+	   nbuffer = 2
+	ELSEIF ( trans .EQ. trans_variance
+     .      .OR. trans .EQ. trans_4d_var
+     .	    .OR. trans .EQ. trans_std_dev
+     .      .OR. trans .EQ. trans_4d_std ) THEN
+	   need_init = .TRUE.
+	   init_val = 0.0
+	   nbuffer = 3
+	ELSEIF ( trans .EQ. trans_max ) THEN
+	   need_init = .TRUE.
+	   init_val = too_small
+	   nbuffer = 2
+	ELSEIF ( trans .EQ. trans_min ) THEN
+	   need_init = .TRUE.
+	   init_val = too_large
+	   nbuffer = 2
+	ELSE
+* all other transformations do not require initialization
+*      trans_locate - potentially could, but would need added machinery during
+*                     split gather since it is locating a result that lies
+*                     *between* two points
+	   need_init = .FALSE.
+	   init_val = unspecified_val8
+	   nbuffer = 1
+	ENDIF
+
+	RETURN
+
+	END
diff --git a/fer/utl/SOURCE_FILES b/fer/utl/SOURCE_FILES
index 48e5fe8..b230552 100644
--- a/fer/utl/SOURCE_FILES
+++ b/fer/utl/SOURCE_FILES
@@ -51,6 +51,7 @@ define_climat_att.F\
 dense_contig_region.F\
 depend_stat_var.F\
 depend_stat_var_sub.F\
+dir_line.F\
 display_dependency.F\
 display_dependency_sub.F\
 ensemble_member_dset.F\
@@ -62,12 +63,14 @@ extract_arg4_line.F\
 extract_line_sub.F\
 extract_z_line.F\
 field_minmax.F\
+four_d_grid.F\
 field_minmax_sub.F\
 free_uvar_grids.F\
 full_scan_indices.F\
 gcf_arg_type.F\
 gcf_child_var_name.F\
 gcf_find_fcn.F\
+gcf_get_alt_fcn_dir_arg.F\
 gcf_get_arg_lims.F\
 gcf_get_arg_parms.F\
 gcf_get_axis_srcs.F\
@@ -80,6 +83,9 @@ gcf_num_args.F\
 gcf_parent_char.F\
 gcf_parent_uvar.F\
 gcf_rtn_type.F\
+gcf_set_abstract_axis.F\
+gcf_set_alt_fcn_for_dir.F\
+gcf_set_normal_axis.F\
 geog_var.F\
 get_abstract_line.F\
 get_ave_lims.F\
@@ -87,6 +93,7 @@ get_dependency_status.F\
 get_max_string_len.F\
 get_max_string_len_sub.F\
 get_saved_uvar_aux_info.F\
+get_saved_uvar_dtype.F\
 get_saved_uvar_grid.F\
 get_saved_uvar_grid_list_len.F\
 get_string_element.F\
@@ -113,12 +120,15 @@ isubscript.F\
 its_fmrc.F\
 itsa_1lineif.F\
 itsa_const_var.F\
+itsa_dcvar.F\
+itsa_dirc_fcn.F\
 itsa_fill_trans.F\
 itsa_gcvar.F\
 itsa_modulo_axis.F\
 itsa_modulo_gcf.F\
 itsa_modulo_regrid.F\
 itsa_pure_sum_var.F\
+itsa_truemonth_axis.F\
 legal_chars.F\
 make_axis.F\
 make_step_axis.F\
@@ -149,6 +159,7 @@ reset_climat_att.F\
 reset_secs_from_bc.F\
 reverse_grid_axis.F\
 reverse_grid_axis_sub.F\
+return_one_val.F\
 save_uvar_aux_info.F\
 save_uvar_grid.F\
 secs_from_bc.F\
@@ -160,6 +171,7 @@ set_auto_curvi_modes.F\
 sort_list.F\
 shellr.F\
 short_mod_copy.F\
+shrink_for_modulo.F\
 split_list.F\
 ss_neighbors.F\
 store_dependency.F\
@@ -173,6 +185,7 @@ t0_adjust_init.F\
 t_deriv.F\
 tdest_world.F\
 tdest_world_init.F\
+tplot_axis_ends.F\
 transfer_axis.F\
 transfer_cx_axis_to_uv.F\
 transfer_grid.F\
@@ -185,5 +198,6 @@ unit_chg_ax.F\
 update_attributes.F\
 upper_case.F\
 valid_grid.F\
+warn_occasionally.F\
 which_gcfcn.F \
 get_date_and_time.F
diff --git a/fer/utl/acts_like_fvar.F b/fer/utl/acts_like_fvar.F
index 2e30fae..35aa3d7 100644
--- a/fer/utl/acts_like_fvar.F
+++ b/fer/utl/acts_like_fvar.F
@@ -36,6 +36,7 @@
 * return TRUE for any variable category that stores its info in XDSET_INFO
 
 * V698 3/16 *sh* to accommodate added logic of cat_ef_time2d
+* V7   *acm*  6/12 Add Union aggregations: DEFINE DATA/AGG/U, ds_type 'UNI'
 
 
       include 'ferret.parm'
@@ -47,6 +48,7 @@
      .              .OR. category.EQ.cat_agg_e_var
      .              .OR. category.EQ.cat_agg_f_var
      .              .OR. category.EQ.cat_ef_time2d
+     .              .OR. category.EQ.cat_agg_u_var
 
       RETURN
       END
diff --git a/fer/utl/box_size.F b/fer/utl/box_size.F
index 5191cab..18a9feb 100644
--- a/fer/utl/box_size.F
+++ b/fer/utl/box_size.F
@@ -53,6 +53,8 @@
 *      6/00 *sh* -- bug fix: children of irregular modulo axes 
 * V533 6/01 *sh* -- using TM_AXIS_RECURSIVE
 * V541  2/02 *sh* -- support for subspan modulo axes
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
+
 
 	include 'tmap_dims.parm'
 	include	'xtm_grid.cmn_text'
@@ -64,8 +66,8 @@
 	INTEGER	isubscript, grid, idim
 
 * internal variable declarations:
-	LOGICAL TM_AXIS_RECURSIVE, TM_ITS_SUBSPAN_MODULO,
-     .		recursive, modulo, regular
+	LOGICAL TM_AXIS_RECURSIVE, TM_ITS_SUBSPAN_MODULO, ITSA_TRUEMONTH_AXIS,
+     .		recursive, modulo, regular, true_month
 	INTEGER	TM_MODULO_LINE_DIM, axis, isub0, llen
 	REAL*8	TM_WORLD, lo_point, hi_point
 
@@ -76,6 +78,8 @@
 	   RETURN
 	ENDIF
 
+	true_month = ITSA_TRUEMONTH_AXIS(axis)
+
 * special consideration for sub-span modulo axis outside its core range
 	llen = TM_MODULO_LINE_DIM(axis)
 	IF (TM_ITS_SUBSPAN_MODULO(axis) ) THEN
@@ -88,6 +92,7 @@
 	   regular = line_regular( axis )
 	ENDIF
 
+	IF (true_month) regular = .FALSE.
 
 	IF ( regular ) THEN
 * regularly spaced points all have same grid box size
@@ -110,7 +115,7 @@
 
 * only dynamic lines have the possibility of recursive definitions
 * (since FORTRAN doesn't protect "AND" clauses this test in 2 steps)
-	   recursive = TM_AXIS_RECURSIVE(axis)
+	   recursive = TM_AXIS_RECURSIVE(axis, true_month)
 
 * use modulo logic if the parent line is modulo (6/00)
 	   modulo = line_modulo(axis)
@@ -120,6 +125,7 @@
 	   ENDIF
 
 * use TM_WORLD to compute BOX_SIZE for recursive defs (10/95)
+
 	   IF ( recursive ) THEN
 * ... every nth point from an irregular axis --> use midpoints as box bounds
 	      IF (isub0.EQ.1 .AND. .NOT.modulo ) THEN
diff --git a/fer/utl/calendar_axis.F b/fer/utl/calendar_axis.F
index eb6d067..ba9b087 100644
--- a/fer/utl/calendar_axis.F
+++ b/fer/utl/calendar_axis.F
@@ -40,25 +40,31 @@
 
 * Reset time step if axis is a different calendar than Gregorian.
 * V683  *acm*10/12 Improve handling of F axes and info about the calendar of the grid.
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
 	include	'xtm_grid.cmn_text'
 	external xgt_grid_data
+	include 'xunits.cmn_text'
+	external xunits_data
 	include	'ferret.parm'
 	include	'errmsg.parm'
 	include	'xvariables.cmn'
 	include	'xcontext.cmn'
 
+* calling argument declarations:
 	INTEGER idim, grid, cx, status
 
-	REAL*8	SECS_FROM_BC, bc_to_t0, ww, lo_ww, hi_ww,
-     .		new_lo_ww, new_hi_ww
-	INTEGER TM_GET_CALENDAR_ID, axis, cal_id, prev_cal_id, istat
+* internal variable declarations:
+	LOGICAL ITSA_TRUEMONTH_AXIS, true_month
+	REAL*8	SECS_FROM_BC, bc_to_t0, ww, new_lo_ww, new_hi_ww, 
+     .		new_lo, new_hi, timefac, tcoord
+	INTEGER TM_GET_CALENDAR_ID, axis, cal_id, prev_cal_id, istat, ndec
+	CHARACTER datestring*20, day_of_mo*2
 
 * axis for this dimension
 	axis = grid_line( idim, grid )
-
 * Is it really a calendar axis? Might be an F axis in a grid with a 
 * calendar T axis.
 
@@ -89,6 +95,45 @@
 	cx_lo_ww(idim,cx) = (new_lo_ww-bc_to_t0)/line_tunit(axis)
 	cx_hi_ww(idim,cx) = (new_hi_ww-bc_to_t0)/line_tunit(axis)
 
+* For a true-month axis, set the coordinate accurately.
+
+	true_month = ITSA_TRUEMONTH_AXIS(axis)
+
+	IF (true_month) THEN
+	
+	
+	   CALL TM_MONTH_TIME_FACTOR (grid, true_month, timefac)
+
+* Hack: Make the request lie inside the cell, if the upper limit is on 
+* the boundary. A request for 01-jan-yyy1 to 01-oct-yyy2 should end with
+* the grid cell of sep-yyy2, not in the cell that starts at 1-oct-yyy2
+* Shift the upper-limit by one second.
+
+           tcoord = (new_lo_ww-bc_to_t0)/line_tunit(axis)
+	   CALL TM_TCOORD_TRUMONTH (axis, tcoord, box_middle, new_lo)
+
+* See if the upper limit corresponds to 01-mmm-yyyy 00:00:00
+	   ndec = 6
+	   tcoord = cx_hi_ww(idim,cx) * timefac
+           CALL TRANSLATE_TO_WORLD( tcoord, idim, 
+     .                      dgrid_buff, ndec, datestring )
+	   day_of_mo = datestring
+
+	   tcoord = (new_hi_ww-bc_to_t0)/line_tunit(axis)
+	   IF (day_of_mo .EQ. '01' .AND. 
+     .         INDEX(datestring, '00:00:00') .GT. 0) 
+     .          tcoord = (new_hi_ww-bc_to_t0-1)/line_tunit(axis)
+
+	   CALL TM_TCOORD_TRUMONTH (axis, tcoord, box_middle, new_hi)
+
+* Convert to days
+	   CALL TM_MONTH_TIME_FACTOR (grid, true_month, timefac)
+
+	   cx_lo_ww(idim,cx) = timefac* new_lo
+	   cx_hi_ww(idim,cx) = timefac* new_hi
+        ENDIF
+ 
+
 * also fix the world limits for cx_cmnd, if they were originally set 
 * using default calendar
 * Fix for bug 1365: if the limits for cx_cmnd were not set, do not set them here
diff --git a/fer/stk/exit_dependency_mode.F b/fer/utl/dir_line.F
similarity index 73%
copy from fer/stk/exit_dependency_mode.F
copy to fer/utl/dir_line.F
index 465bb80..3a0b27b 100644
--- a/fer/stk/exit_dependency_mode.F
+++ b/fer/utl/dir_line.F
@@ -1,7 +1,6 @@
-	SUBROUTINE EXIT_DEPENDENCy_MODE
+	INTEGER FUNCTION DIR_LINE (dircode)
 
 *
-*
 *  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),
@@ -34,21 +33,25 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*
-* reset COMMON values that indicate the special mode used for assesing 
-* user variable dependency trees
 
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-*
-* V685+ 11/13 *sh*  
+* Given a 2-letter line_direction code, return the integer parameter for the direction
+* V7    acm  6/16 Ticket 2437: 
 
-	include 'tmap_dims.parm'
 	include	'ferret.parm'
-	include 'xdependency_tree.cmn'
+	CHARACTER*(*)	dircode
 
-	dependency_tree_mode = .FALSE.
-	CALL RELEASE_WORK_SPC
+	DIR_LINE = x_dim
+	IF ( dircode(1:2) .EQ. 'WE') DIR_LINE = x_dim
+	IF ( dircode(1:2) .EQ. 'SN') DIR_LINE = y_dim
+	IF ( dircode(1:2) .EQ. 'UD') DIR_LINE = z_dim
+	IF ( dircode(1:2) .EQ. 'DU') DIR_LINE = z_dim
+	IF ( dircode(1:2) .EQ. 'TI') DIR_LINE = t_dim
+	IF ( dircode(1:1) .EQ. 'X')  DIR_LINE = x_dim
+	IF ( dircode(1:1) .EQ. 'Y')  DIR_LINE = y_dim
+	IF ( dircode(1:1) .EQ. 'Z')  DIR_LINE = z_dim
+	IF ( dircode(1:1) .EQ. 'T')  DIR_LINE = t_dim
+	IF ( dircode(1:1) .EQ. 'E')  DIR_LINE = e_dim
+	IF ( dircode(1:1) .EQ. 'F')  DIR_LINE = f_dim
 
-     	RETURN
+	RETURN
 	END
diff --git a/fmt/src/tm_close_set.F b/fer/utl/four_d_grid.F
similarity index 80%
copy from fmt/src/tm_close_set.F
copy to fer/utl/four_d_grid.F
index b130c61..8ed4d38 100644
--- a/fmt/src/tm_close_set.F
+++ b/fer/utl/four_d_grid.F
@@ -1,5 +1,5 @@
-	SUBROUTINE TM_CLOSE_SET ( ds_num, status )
-*
+	LOGICAL FUNCTION FOUR_D_GRID (grid)
+
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -34,16 +34,23 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
+* Return TRUE if the grid does not have E or F dimensions.
 
-* 2/2016 *sh*
-* all of the guts of this routine were moved to TM_CLOSE_SET_COND_DEALLO
-* allowing the de-allocation of grids to become a conditional matter
+* V7    acm  6/16 Ticket 2437
+* V7.02 acm 11/16 ticket 2487, initialize FOUR_D_GRID. 
 
-* calling argument declarations
-	INTEGER ds_num, status
-	
+        include 'tmap_dims.parm'
+#include "tmap_dset.parm"
+        include 'xtm_grid.cmn_text'
+	include 'ferret.parm'
+	INTEGER grid
+	   	
+	FOUR_D_GRID = .FALSE.
+	IF (grid .EQ. unspecified_int4) RETURN
 
-	CALL TM_CLOSE_SET_COND_DEALLO( ds_num, .TRUE., status)
+	FOUR_D_GRID =  
+     .  ( grid_line(e_dim,grid).EQ.mnormal  .AND. 
+     .    grid_line(f_dim,grid).EQ.mnormal  )
 
 	RETURN
 	END
diff --git a/fer/utl/gcf_get_alt_fcn_dir_arg.F b/fer/utl/gcf_get_alt_fcn_dir_arg.F
new file mode 100644
index 0000000..b993926
--- /dev/null
+++ b/fer/utl/gcf_get_alt_fcn_dir_arg.F
@@ -0,0 +1,22 @@
+	SUBROUTINE GCF_GET_ALT_FCN_DIR_ARG( gcfcn, idir_args )
+
+* return the argument that sets a direction indicating 
+* an alternative function.
+
+
+	include	'tmap_dims.parm'
+	include 'ferret.parm'
+	include 'grid_chg_fcns.parm' 
+	include 'xgrid_chg_fcns.cmn'
+
+* calling argument declarations
+	INTEGER		gcfcn, idir_args(*)
+
+	INTEGER idim
+
+	DO idim = 1, nferdims
+	   idir_args(idim) = gfcn_dir_args (idim, gcfcn)
+	ENDDO
+
+	RETURN
+	END
diff --git a/fer/utl/gcf_impose_axes.F b/fer/utl/gcf_impose_axes.F
index d5c0503..32e83b5 100644
--- a/fer/utl/gcf_impose_axes.F
+++ b/fer/utl/gcf_impose_axes.F
@@ -111,13 +111,15 @@
 	         uvar_given(idim,uvar) = uvlim_hidden	! 12/99
 	      ELSEIF ( gcfcn .EQ. p_spawn ) THEN
 	         uvar_given(idim,uvar) = uvlim_hidden   ! 7/01
+	      ELSEIF ( gcfcn .EQ. p_reshape ) THEN
+	         uvar_given(idim,uvar) = uvlim_hidden   ! 3/17
 	      ELSE
 * ... allows XSEQUENCE, etc. context to be determined w/out full evaluation
 *     This can make some scripts more efficient ... others maybe less because
 *     uvlim_hidden would make caching more effective.  Example like
 *       "let a = XSEQUENCE(J[j=1:5]); say `a[i=100:200],return=isize`"
 *     can actually yield a wrong answer
-	         uvar_given(idim,uvar) = uvlim_needed ! for fcns like RESHAPE
+	         uvar_given(idim,uvar) = uvlim_needed ! 3/17 - not for RESHAPE
 	      ENDIF
 	   ELSE
 * ... it is evidently, a mergible axis ... continue on
diff --git a/fer/utl/gcf_impose_result_lims.F b/fer/utl/gcf_impose_result_lims.F
index 4b6a0d8..64f40b6 100644
--- a/fer/utl/gcf_impose_result_lims.F
+++ b/fer/utl/gcf_impose_result_lims.F
@@ -1,4 +1,4 @@
-      SUBROUTINE GCF_IMPOSE_RESULT_LIMS( gcfcn, memory, mr_list,
+      SUBROUTINE GCF_IMPOSE_RESULT_LIMS( gcfcn,  mr_list,
      .     cx_list, res_cx, status )
 
 *  This software was developed by the Thermal Modeling and Analysis
@@ -63,6 +63,7 @@
 * V533: 7/01 *sh* - added SPAWN function
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 * V6.8  *acm* 5/12 Add EUNRAVEL, FUNRAVEL
+* V720: 4/17 *acm* Add direction-changing functions as a subset of grid-changing ones
 
 * debug declarations for TIMES2
 !	INTEGER	n_com1, n_grid, com1_grid
@@ -78,7 +79,6 @@
 
 * calling argument declarations
 	INTEGER	gcfcn, cx_list(*), mr_list(*), res_cx, status
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations
 	LOGICAL fix_me(nferdims)
@@ -359,7 +359,7 @@
      .          .OR. axis_will_be(4) .EQ. pgc_axis_is_abstract
      .          .OR. axis_will_be(5) .EQ. pgc_axis_is_abstract
      .          .OR. axis_will_be(6) .EQ. pgc_axis_is_abstract)	THEN
-              CALL EFCN_GET_RESULT_LIMITS(gcfcn, memory, mr_list, 
+              CALL EFCN_GET_RESULT_LIMITS(gcfcn,  mr_list, 
      .             cx_list, status)
               IF (status .NE. ferr_ok) CALL ERRMSG
      .                          ( status, status,' ', *5000 )
@@ -367,7 +367,6 @@
 
 	   DO 450 idim = 1, nferdims
 
-
 * If the axis is abstract ... 
 *   get the lo and hi limits for this axis
 *   create one as in *SEQUENCE above
@@ -378,15 +377,21 @@
 		 cx_lo_ss(res_cx,idim) = lo_lim
 		 cx_hi_ss(res_cx,idim) = hi_lim
 		 cx_by_ss(idim, res_cx) = .TRUE.
+		 IF (has_uvar_dc) CALL GCF_SET_ABSTRACT_AXIS (res_grd, idim)
 		 CALL FLESH_OUT_AXIS( idim, res_cx, status )
 		 IF ( status .NE. ferr_ok ) GOTO 5000
 
+		 IF (has_uvar_dc) uvar_given(idim,uvar) = uvlim_hidden
+
 
 * If the axis is normal ... nothing needs to be done
+*  - if the function set using a dimension argument, limits need resetting  
 
-*	      ELSEIF (axis_will_be(idim) .EQ. pgc_axis_is_normal) THEN
-*       do nothing
+	      ELSEIF (axis_will_be(idim) .EQ. pgc_axis_is_normal) THEN
 
+		 CALL GCF_SET_NORMAL_AXIS (res_grd, idim)
+		 CALL FLESH_OUT_AXIS (idim, res_cx, status)  ! set everything needed in the cx
+		 IF (has_uvar_dc) uvar_given(idim,uvar) = uvlim_irrelevant
 
 * If the axis is custom
 
diff --git a/fmt/src/tm_axis_recursive.F b/fer/utl/gcf_set_abstract_axis.F
similarity index 83%
copy from fmt/src/tm_axis_recursive.F
copy to fer/utl/gcf_set_abstract_axis.F
index 0f5a9ef..80089ce 100644
--- a/fmt/src/tm_axis_recursive.F
+++ b/fer/utl/gcf_set_abstract_axis.F
@@ -1,4 +1,4 @@
-	LOGICAL FUNCTION TM_AXIS_RECURSIVE (axis)
+	SUBROUTINE GCF_SET_ABSTRACT_AXIS( grid, idim )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -33,23 +33,23 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* Return flag indicating if the parent axis definition is required in order
-* to evaluate coordinates on this axis
+* A grid has been determined to need an abstract axis in a particular direction,
+* when setting an alternate function to run depending on direction arguments.
 
+* 
+* V720 3/16 *acm* 
 
-* V533 *sh* 6/01
-
+	include 'ferret.parm'
 	include 'tmap_dims.parm'
-	include 'implicit.parm'
 	include	'xtm_grid.cmn_text'
+	external xgt_grid_data
+	include 'xfr_grid.cmn'       ! w/ mgrid_abstract
 
-* calling argument declarations
-	INTEGER axis
 
-* internal variable declarations
+* calling argument declarations
+	INTEGER		grid, idim
 
-	TM_AXIS_RECURSIVE = line_parent(axis) .NE.0
-     .		      .AND. .NOT.line_regular(axis)
+	grid_line(idim, grid) = grid_line(idim,mgrid_abstract)
 
 	RETURN
 	END
diff --git a/fer/utl/get_saved_uvar_grid_list_len.F b/fer/utl/gcf_set_alt_fcn_for_dir.F
similarity index 64%
copy from fer/utl/get_saved_uvar_grid_list_len.F
copy to fer/utl/gcf_set_alt_fcn_for_dir.F
index 8ccb5c7..22f603c 100644
--- a/fer/utl/get_saved_uvar_grid_list_len.F
+++ b/fer/utl/gcf_set_alt_fcn_for_dir.F
@@ -1,5 +1,5 @@
-      SUBROUTINE GET_SAVED_UVAR_GRID_LIST_LEN( uvar, ngrids )
-*
+	SUBROUTINE GCF_SET_ALT_FCN_FOR_DIR( gcfcn, idirs, num_dirs)
+
 *  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),
@@ -32,39 +32,51 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
+* Find the correct function name and update to the right function number
+* for direction-changing functions which have arguments that specifies the
+* direction of operation.
 
-* return the number of grids that have been saved for this uvar 
-* (one per associated dataset)
-
-* V699 5/16 *sh* new routine created to avoid the 2d uvar_grid array
-
+* V7.20 *acm* 4/2017
 
-        include 'ferret.parm'
         include 'tmap_dims.parm'
-        include 'xvariables.cmn'
+        include 'ferret.parm'
+	include 'grid_chg_fcns.parm' 
+	include 'xgrid_chg_fcns.cmn'
+
 
 * calling argument declarations
-        INTEGER uvar, ngrids
+	INTEGER		gcfcn, idirs(*), num_dirs
 
-* internal variable declarations
-        INTEGER NCF_GET_UVAR_GRID_LIST_LEN, status, c_list_dset
+* Local declarations
+	INTEGER	TM_LENSTR1, GCF_FIND_FCN, nlen, isubst, idim
+	CHARACTER name*40, buff*40, axdir(nferdims)*1
+        DATA axdir / 'X', 'Y', 'Z', 'T', 'E', 'F' /
 
-* 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
+	IF (num_dirs .EQ. 0)  GOTO 5100
 
-        IF ( uvar_dset(uvar) .GT. pdset_irrelevant) THEN
-* ... LET/D= variable
-          c_list_dset  = uvar_dset(uvar) ! the dset that owns this LET/D
-        ELSE
-* ... global LET variable
-          c_list_dset  = pdset_uvars  ! fake dataset of global uvars
-        ENDIF
+	name = gfcn_alt_name_base(gcfcn)
+	nlen = TM_LENSTR1( name )
+	isubst = INDEX(name, '%')
+	IF (isubst .EQ. 0) GOTO 5100
 
-* store the grid
-        status = NCF_GET_UVAR_GRID_LIST_LEN( c_list_dset, uvar, ngrids)
+* substitute axis direction names to get the new function
 
-* check status
-        IF (status.EQ.atom_not_found) ngrids = 0
+	DO idim = 1, nferdims
+	   IF (idirs(idim) .NE. 0) THEN
+	      buff = name
+	      nlen = TM_LENSTR1( buff )
+	      isubst = INDEX(buff, '%')
+	      IF (isubst .EQ. 0) GOTO 5100
+	      buff = buff(:isubst-1)//axdir(idirs(idim))//
+     .          buff(isubst+1:nlen)
+              name = buff
+	   ENDIF
+        ENDDO
+	   
+	nlen = TM_LENSTR1( name )
+	gcfcn = GCF_FIND_FCN( name )
 
-        RETURN
-        END
+	RETURN
+5100    gcfcn = unspecified_int4
+	RETURN
+	END
diff --git a/fmt/src/tm_axis_recursive.F b/fer/utl/gcf_set_normal_axis.F
similarity index 85%
copy from fmt/src/tm_axis_recursive.F
copy to fer/utl/gcf_set_normal_axis.F
index 0f5a9ef..3a0ed70 100644
--- a/fmt/src/tm_axis_recursive.F
+++ b/fer/utl/gcf_set_normal_axis.F
@@ -1,4 +1,4 @@
-	LOGICAL FUNCTION TM_AXIS_RECURSIVE (axis)
+	SUBROUTINE GCF_SET_NORMAL_AXIS( grid, idim )
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -33,23 +33,22 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* Return flag indicating if the parent axis definition is required in order
-* to evaluate coordinates on this axis
+* A grid has been determined to need a normal axis in a particular direction,
+* when setting an alternate function to run depending on direction arguments.
 
+* 
+* V720 3/16 *acm* 
 
-* V533 *sh* 6/01
-
+	include 'ferret.parm'
 	include 'tmap_dims.parm'
-	include 'implicit.parm'
 	include	'xtm_grid.cmn_text'
+	external xgt_grid_data
 
 * calling argument declarations
-	INTEGER axis
-
-* internal variable declarations
+	INTEGER		grid, idim
 
-	TM_AXIS_RECURSIVE = line_parent(axis) .NE.0
-     .		      .AND. .NOT.line_regular(axis)
+	grid_line(idim, grid) = mnormal
+! anything else?
 
 	RETURN
 	END
diff --git a/fer/utl/get_dependency_status.F b/fer/utl/get_dependency_status.F
index dd9154f..e7416ce 100644
--- a/fer/utl/get_dependency_status.F
+++ b/fer/utl/get_dependency_status.F
@@ -1,5 +1,5 @@
 	SUBROUTINE GET_DEPENDENCY_STATUS
-     .			( memory, expr, status_string, slen, status )
+     .			(  expr, status_string, slen, status )
 
 *
 *
@@ -44,6 +44,7 @@
 
 * V685+  *sh* 11/13 
 * V690  *sg* 5/14 - bug fix: changed declaraation type of "memory"
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -53,7 +54,6 @@
 
 * calling argument declarations:
 	INTEGER status, slen
-	REAL	memory(mem_blk_size, max_mem_blks )
 	CHARACTER*(*) expr, status_string
 
 * internal variable declarations:
@@ -64,7 +64,7 @@
         CALL INIT_DEPENDENCIES( cx_last, .TRUE., base_isp, status )
         IF (status.NE. ferr_ok) GOTO 5000
 
-        CALL CRAWL_DEPENDENCIES (memory, expr, base_cx, status)
+        CALL CRAWL_DEPENDENCIES ( expr, base_cx, status)
         IF (status .NE. ferr_ok) GOTO 5000
 
 	IF (    dependency_status .EQ. df_valid_var) THEN
@@ -89,12 +89,12 @@
 * if status incicates a problem, append a substring from the variable definitions
 	IF (dependency_status .NE. df_valid_var ) THEN
 	   status_string(slen+1:slen+2) = ': '
-	   CALL DEPEND_STAT_VAR( memory(1,dependency_block1),
+	   CALL DEPEND_STAT_VAR( workmem(plegacy_work_buffer)%ptr,
      .					status_string(slen+3:) )
 	   slen = TM_LENSTR1(status_string)
 	ENDIF
 
- 5000	CALL RELEASE_WORK_SPC
+ 5000	CALL RELEASE_DYN_WORK_SPACE
 	RETURN
 	END
 
diff --git a/fer/utl/get_saved_uvar_aux_info.F b/fer/utl/get_saved_uvar_aux_info.F
index bf6a6b8..46da2fd 100644
--- a/fer/utl/get_saved_uvar_aux_info.F
+++ b/fer/utl/get_saved_uvar_aux_info.F
@@ -1,4 +1,4 @@
-      SUBROUTINE GET_SAVED_UVAR_AUX_INFO( uvar, dset, aux_cat, aux_var)
+      SUBROUTINE GET_SAVED_UVAR_AUX_INFO( uvar, dset, aux_cat, aux_var, status)
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -37,6 +37,7 @@
 * uvar grid/dset pair.
 
 * V699 5/16 *sh* new routine created to avoid the 2d uvar_grid array
+* V71 10/16 *acm* Send back a status flag.
 
 * arguments:
 *     uvar - the Ferret user variable number (input)
@@ -50,11 +51,10 @@
         include 'xvariables.cmn'
 
 * calling argument declarations
-        INTEGER uvar, aux_cat(nferdims), aux_var(nferdims), dset
+        INTEGER uvar, aux_cat(nferdims), aux_var(nferdims), dset, status
 
 * internal variable declarations
-        INTEGER NCF_GET_UVAR_AUX_INFO, c_list_dset, context_dset,
-     .          status
+        INTEGER NCF_GET_UVAR_AUX_INFO, c_list_dset, context_dset
 
 * 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
@@ -73,9 +73,5 @@
         status = NCF_GET_UVAR_AUX_INFO( c_list_dset, uvar,
      .                          context_dset, aux_cat, aux_var )
 
-* check that we were successful
-        IF (status .NE. ferr_ok) CALL WARN(
-     .                  'corruption getting uvar aux info')
-
         RETURN
         END
diff --git a/fer/utl/get_saved_uvar_grid.F b/fer/utl/get_saved_uvar_dtype.F
similarity index 79%
copy from fer/utl/get_saved_uvar_grid.F
copy to fer/utl/get_saved_uvar_dtype.F
index 61911df..abea2d3 100644
--- a/fer/utl/get_saved_uvar_grid.F
+++ b/fer/utl/get_saved_uvar_dtype.F
@@ -1,4 +1,4 @@
-      SUBROUTINE GET_SAVED_UVAR_GRID( uvar, dset, uvgrid )
+      SUBROUTINE GET_SAVED_UVAR_DTYPE( uvar, dset, uvdtype )
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -33,22 +33,23 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 
-* return the grid that has been saved for this
+* return the uvdtype that has been saved 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
-
+* V710 10/16 *acm* new routine created to avoid the 2d uvar_data_type array
+* 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 
 
         include 'ferret.parm'
         include 'tmap_dims.parm'
         include 'xvariables.cmn'
 
 * calling argument declarations
-        INTEGER uvar, dset, uvgrid
+        INTEGER uvar, dset, uvdtype
 
 * internal variable declarations
         INTEGER NCF_GET_UVAR_GRID, status,
-     .          c_list_dset, context_dset
+     .          c_list_dset, context_dset, uvgrid
 
 * 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,12 +64,12 @@
           context_dset = dset
         ENDIF
 
-* store the grid
-        status = NCF_GET_UVAR_GRID( c_list_dset, uvar,
-     .                              context_dset, uvgrid)
+* get the grid and dtype
+        status = NCF_GET_UVAR_GRID( c_list_dset, uvar, context_dset, 
+     .                              uvgrid, uvdtype)
 
-* error return?
-        IF (status .EQ. atom_not_found) uvgrid = unspecified_int4
+* error return? Should we return the status??
+        IF (status .EQ. atom_not_found) uvdtype = unspecified_int4
 
         RETURN
         END
diff --git a/fer/utl/get_saved_uvar_grid.F b/fer/utl/get_saved_uvar_grid.F
index 61911df..617adf6 100644
--- a/fer/utl/get_saved_uvar_grid.F
+++ b/fer/utl/get_saved_uvar_grid.F
@@ -37,7 +37,8 @@
 * uvar (a LET expression), when evaluated in the given dset
 
 * V699 5/16 *sh* new routine created to avoid the 2d uvar_grid array
-
+* 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 
 
         include 'ferret.parm'
         include 'tmap_dims.parm'
@@ -48,7 +49,7 @@
 
 * internal variable declarations
         INTEGER NCF_GET_UVAR_GRID, status,
-     .          c_list_dset, context_dset
+     .          c_list_dset, context_dset, uvdtype
 
 * 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
@@ -57,17 +58,20 @@
 * ... LET/D= variable
           c_list_dset  = uvar_dset(uvar) ! the dset that owns this LET/D
           context_dset = uvar_dset(uvar) ! only one dset is possible
+	  IF (context_dset .NE. dset) THEN
+	     context_dset = dset
+	  ENDIF
         ELSE
 * ... global LET variable
           c_list_dset  = pdset_uvars  ! fake dataset of global uvars
           context_dset = dset
         ENDIF
 
-* store the grid
-        status = NCF_GET_UVAR_GRID( c_list_dset, uvar,
-     .                              context_dset, uvgrid)
+* get the grid and dtype
+        status = NCF_GET_UVAR_GRID( c_list_dset, uvar, context_dset, 
+     .                              uvgrid, uvdtype)
 
-* error return?
+* error return? Should we return the status??
         IF (status .EQ. atom_not_found) uvgrid = unspecified_int4
 
         RETURN
diff --git a/fer/utl/get_saved_uvar_grid_list_len.F b/fer/utl/get_saved_uvar_grid_list_len.F
index 8ccb5c7..854a770 100644
--- a/fer/utl/get_saved_uvar_grid_list_len.F
+++ b/fer/utl/get_saved_uvar_grid_list_len.F
@@ -50,7 +50,6 @@
         INTEGER NCF_GET_UVAR_GRID_LIST_LEN, status, c_list_dset
 
 * 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
 
         IF ( uvar_dset(uvar) .GT. pdset_irrelevant) THEN
 * ... LET/D= variable
@@ -60,7 +59,7 @@
           c_list_dset  = pdset_uvars  ! fake dataset of global uvars
         ENDIF
 
-* store the grid
+* get the number of grids
         status = NCF_GET_UVAR_GRID_LIST_LEN( c_list_dset, uvar, ngrids)
 
 * check status
diff --git a/fer/utl/grid_world_extremes.F b/fer/utl/grid_world_extremes.F
index 3cee85f..9b94e19 100644
--- a/fer/utl/grid_world_extremes.F
+++ b/fer/utl/grid_world_extremes.F
@@ -50,6 +50,7 @@
 * Unix/RISC port - 7/91   - eliminated unneeded *variables common
 * V4.20 - 10/95 - remove references to line_mem to permit recursive line defs
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
+* V72   11/16 *acm* Ticket 2158: working with true monthly time axes.
 
 	include 'tmap_dims.parm'
 	include	'xtm_grid.cmn_text'
@@ -61,6 +62,7 @@
 	REAL*8	lo,hi
 
 * local variable declarations
+	LOGICAL ITSA_TRUEMONTH_AXIS
 	INTEGER line_num, line_len
 	REAL*8	TM_WORLD
 
@@ -84,7 +86,7 @@
 
 	ELSE
 
-	   IF ( line_regular( line_num ) ) THEN
+	   IF ( line_regular( line_num ) .AND. .NOT.ITSA_TRUEMONTH_AXIS (line_num)) THEN
 	      lo = line_start( line_num ) - line_delta( line_num )/2.
 	      hi = lo + line_delta( line_num ) * line_dim( line_num )
 
@@ -93,7 +95,6 @@
 	      lo = TM_WORLD(       1, grid, idim, box_lo_lim)
 	      hi = TM_WORLD(line_len, grid, idim, box_hi_lim)
 
-
 	   ENDIF
 
 	ENDIF
diff --git a/fer/utl/igrid.F b/fer/utl/igrid.F
index b827c6c..78a3f65 100644
--- a/fer/utl/igrid.F
+++ b/fer/utl/igrid.F
@@ -53,6 +53,8 @@
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V698  3/16 *acm* Removed Philander-Seigel code including diagnostic 
 *                  variables, pre-defined axes and grids, cat_calc_var.
+* 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 
 
 	include	'tmap_dims.parm'
 	include	'ferret.parm'
@@ -101,7 +103,7 @@
 *  case, the dset to use is pdset_irrelevant
 	IF ( .NOT.uvar_need_dset(variable) )  dset = pdset_irrelevant
 
-	IGRID = uvar_grid( variable, dset )
+	CALL GET_SAVED_UVAR_GRID(variable,dset, IGRID)
 
 	RETURN
 
diff --git a/fer/utl/inherit_attrs.F b/fer/utl/inherit_attrs.F
index 8ab2865..78a103d 100644
--- a/fer/utl/inherit_attrs.F
+++ b/fer/utl/inherit_attrs.F
@@ -41,6 +41,8 @@
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
 * V698  2/16 *acm* For ticket 2352: variables defined with LET/D are
 *                  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.
 
       INCLUDE 'tmap_dims.parm'
       INCLUDE 'ferret.parm'
@@ -55,10 +57,10 @@
 
 * Local variable declarations
       LOGICAL coordvar
-      INTEGER TM_LENSTR, slen, tlen, dset1, dset2, 
+      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
+     .  all_outflag, cat, iflag, attnum
       CHARACTER*128 attname, buff1, buff2
 
 * Check that neither buffer contains varname.attname (If it is in 
@@ -137,11 +139,19 @@
       IF (coordvar) GOTO 5020
 
 * Remove attributes from variable 2
+* When an attribute is deleted, the following attributes move forward
+* so need to keep asking for the first attribute not skipped
 
+      attnum = 1
       DO 100 iatt = 1, nvatts2
-         CALL CD_GET_VAR_ATT_NAME (dset2, varid2, iatt, attname, status)
-         CALL CD_DELETE_ATTRIBUTE (dset2, varid2, attname, status)
-         IF (status .NE. ferr_ok) GOTO 5030
+         CALL CD_GET_VAR_ATT_NAME (dset2, varid2, attnum, attname, status)
+         IF ( STR_SAME(attname, 'missing_value')  .NE. 0 .AND.
+     .        STR_SAME(attname, '_FillValue') .NE. 0 ) THEN
+            CALL CD_DELETE_ATTRIBUTE (dset2, varid2, attname, status)
+            IF (status .NE. ferr_ok) GOTO 5030
+         ELSE
+            attnum = attnum + 1
+         ENDIF
  100  CONTINUE
 
 * Get attribute information from variable 1 and put onto variable 2.
@@ -150,12 +160,16 @@
 
       iflag = 1
       DO 200 iatt = 1, nvatts1
-         CALL CD_TRANSFER_ATTRIBUTE (dset1, varid1, iatt, 
-     .        dset2, varid2, status)
-         IF (status .NE. ferr_ok) GOTO 5040
          CALL CD_GET_VAR_ATT_NAME (dset1, varid1, iatt, attname, status)
-	 CALL CD_SET_ATT_FLAG (dset2, varid2, attname, iflag, status)
-         IF (status .NE. ferr_ok) GOTO 5040
+	 IF (STR_SAME(attname, 'missing_value')  .NE. 0 .AND.
+     .       STR_SAME(attname, '_FillValue') .NE. 0) THEN
+
+            CALL CD_TRANSFER_ATTRIBUTE (dset1, varid1, iatt, 
+     .        dset2, varid2, status)
+            IF (status .NE. ferr_ok) GOTO 5040
+	    CALL CD_SET_ATT_FLAG (dset2, varid2, attname, iflag, status)
+            IF (status .NE. ferr_ok) GOTO 5040
+	 ENDIF
  200  CONTINUE
 
 * Update attribute information used by plotting etc (ds_units, ...)
diff --git a/fer/utl/isubscr_cx.F b/fer/utl/isubscr_cx.F
index f86e76f..6f67f85 100644
--- a/fer/utl/isubscr_cx.F
+++ b/fer/utl/isubscr_cx.F
@@ -60,6 +60,7 @@
 *                   to be returned.
 * V683  *acm*10/12 Improve handling of F axes and info about the calendar of the grid.
 * V695  *acm* 2/15 cx_calendar stores info about calendar formatting of T and F axes
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
 	include 'tmap_dims.parm'
 #      include "tmap_dset.parm"
@@ -74,12 +75,12 @@
 
 * internal variable declarations:
 	LOGICAL	TM_DFPEQ, TM_ITS_SUBSPAN_MODULO, TM_FPEQ_SNGL, 
-     .		is_regular, calendar
+     .		ITSA_TRUEMONTH_AXIS, is_regular, calendar, true_month
 	INTEGER	lo_look, hi_look, axis, ibot, itop, look,
      .		line_len, isubsc, num_mod
 	REAL*8	SECS_TO_TSTEP, TM_WORLD, TM_WW_AXLEN,
      .		wwindex, wcoord, half_way, start, aend, span, 
-     .		first, last, dsubsc
+     .		first, last, dsubsc, timefac
 	REAL*4  delsubsc, half
 
 * initialize
@@ -118,10 +119,11 @@
 	      line_len = line_len + 1
 	      is_regular = .FALSE.
 	   ELSE
-	      is_regular = line_regular( axis )
+	      is_regular = line_regular(axis) .AND. .NOT.ITSA_TRUEMONTH_AXIS(axis)
+
 	   ENDIF
 	ELSE
-	   is_regular = line_regular( axis )
+	   is_regular = line_regular(axis) .AND. .NOT.ITSA_TRUEMONTH_AXIS(axis)
 	ENDIF
 
 * initialize pointers for axes with irregularly spaced points
@@ -135,6 +137,14 @@
 * ... begin by computing axis limits as outer edges of end boxes
 	   span = TM_WW_AXLEN(axis)
 	   CALL TM_WW_AXLIMS(axis, start, aend)
+	    
+	   IF ( ITSA_TRUEMONTH_AXIS(axis) ) THEN 
+	      CALL TM_MONTH_TIME_FACTOR (grid, true_month, timefac)
+	      start = start * timefac
+	      aend = aend * timefac
+	      span = span * timefac
+	   ENDIF
+
 	   IF (TM_ITS_SUBSPAN_MODULO(axis)) THEN
 	      span = line_modulo_len(axis)
 	      aend = start + span
diff --git a/fer/utl/isubscript.F b/fer/utl/isubscript.F
index 17480a5..eafdc90 100644
--- a/fer/utl/isubscript.F
+++ b/fer/utl/isubscript.F
@@ -67,6 +67,7 @@
 *                   * quick sol'n if axis points are regularly spaced
 *                   did not give enough accuracy for axes defined in terms of 
 *                   seconds.  Convert all this to double-precision calculations.
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
 	include 'tmap_dims.parm'
 	include	'xtm_grid.cmn_text'
@@ -78,7 +79,8 @@
 	REAL*8	world_coord
 
 * internal variable declarations:
-	LOGICAL	TM_DFPEQ, TM_ITS_SUBSPAN_MODULO, regular
+	LOGICAL	TM_DFPEQ, TM_ITS_SUBSPAN_MODULO, ITSA_TRUEMONTH_AXIS, 
+     .		regular
 	INTEGER	lo_look, hi_look, axis, ibot, itop, look,
      .		line_len, isubsc, num_mod
 	REAL*8	TM_WORLD, TM_WW_AXLEN, 
@@ -108,10 +110,10 @@
 	      line_len = line_len + 1
 	      regular = .FALSE.
 	   ELSE
-	      regular = line_regular( axis )
+	      regular = line_regular(axis) .AND. .NOT.ITSA_TRUEMONTH_AXIS(axis)
 	   ENDIF
 	ELSE
-	   regular = line_regular( axis )
+	   regular = line_regular(axis) .AND. .NOT.ITSA_TRUEMONTH_AXIS(axis)
 	ENDIF
 
 * initialize pointers for axes with irregularly spaced points
diff --git a/fer/utl/itsa_gcvar.F b/fer/utl/itsa_dcvar.F
similarity index 84%
copy from fer/utl/itsa_gcvar.F
copy to fer/utl/itsa_dcvar.F
index aecc437..45dff5d 100644
--- a/fer/utl/itsa_gcvar.F
+++ b/fer/utl/itsa_dcvar.F
@@ -1,4 +1,4 @@
-	LOGICAL FUNCTION ITSA_GCVAR( uvar )
+	LOGICAL FUNCTION ITSA_DCVAR( uvar )
 
 *
 *
@@ -35,10 +35,8 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* is the indicated variable one which is contains a grid changing function?
-
-* V450: 1/97
-*       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* is the indicated variable one which is contains a direction-changing function?
+* V720: 4/17 *acm* Add direction-changing functions as a subset of grid-changing ones
 
 * calling argument declarations
 	INTEGER	uvar
@@ -51,10 +49,11 @@
 
 
 * in reverse Polish order the final item of a grid changing variable will
-* always be a grid changing function
+* always be a grid changing function.
+* A direction changing function is a subset of the grid-changing functions.
 
-	ITSA_GCVAR = uvar_item_type( uvar_num_items(uvar), uvar )
-     .		.EQ. alg_grid_chg_fcn
+	ITSA_DCVAR = uvar_item_type( uvar_num_items(uvar), uvar )
+     .		.EQ. alg_dir_chg_fcn
 
 	RETURN
 	END
diff --git a/fer/utl/itsa_gcvar.F b/fer/utl/itsa_dirc_fcn.F
similarity index 80%
copy from fer/utl/itsa_gcvar.F
copy to fer/utl/itsa_dirc_fcn.F
index aecc437..cbd45d7 100644
--- a/fer/utl/itsa_gcvar.F
+++ b/fer/utl/itsa_dirc_fcn.F
@@ -1,4 +1,4 @@
-	LOGICAL FUNCTION ITSA_GCVAR( uvar )
+	LOGICAL FUNCTION ITSA_DIRC_FCN( ifcn )
 
 *
 *
@@ -35,26 +35,29 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* is the indicated variable one which is contains a grid changing function?
+* Is the indicated function a grid-changing function which depends on arguments
+* to determine the directions of operations and potentially the grid?
 
-* V450: 1/97
-*       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V720: 4/17 Ansley Manke
 
 * calling argument declarations
-	INTEGER	uvar
+	INTEGER	ifcn
 
 * internal variable declarations
 
-	include	'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'xvariables.cmn'
+        include 'tmap_dims.parm'
+        include 'ferret.parm'
+        include 'grid_chg_fcns.parm'
+        include 'xgrid_chg_fcns.cmn'
 
+	INTEGER	idim, ndims
 
-* in reverse Polish order the final item of a grid changing variable will
-* always be a grid changing function
+	ndims = 0
+	DO idim = 1, nferdims
+	   ndims = ndims + gfcn_dir_args(idim, ifcn)
+	ENDDO
 
-	ITSA_GCVAR = uvar_item_type( uvar_num_items(uvar), uvar )
-     .		.EQ. alg_grid_chg_fcn
+	ITSA_DIRC_FCN = ndims .GT. 0
 
 	RETURN
 	END
diff --git a/fer/utl/itsa_gcvar.F b/fer/utl/itsa_gcvar.F
index aecc437..282eccd 100644
--- a/fer/utl/itsa_gcvar.F
+++ b/fer/utl/itsa_gcvar.F
@@ -36,6 +36,7 @@
 *
 *
 * is the indicated variable one which is contains a grid changing function?
+* V720: 4/17 *acm* Add direction-changing functions as a subset of grid-changing ones
 
 * V450: 1/97
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
@@ -51,10 +52,12 @@
 
 
 * in reverse Polish order the final item of a grid changing variable will
-* always be a grid changing function
+* always be a grid changing function.
+* The direction changing functions are a subset of the grid-changing functions.
 
-	ITSA_GCVAR = uvar_item_type( uvar_num_items(uvar), uvar )
-     .		.EQ. alg_grid_chg_fcn
+	ITSA_GCVAR = 
+     .    uvar_item_type( uvar_num_items(uvar), uvar ).EQ. alg_grid_chg_fcn .OR. 
+     .    uvar_item_type( uvar_num_items(uvar), uvar ).EQ. alg_dir_chg_fcn
 
 	RETURN
 	END
diff --git a/fer/utl/itsa_pure_sum_var.F b/fer/utl/itsa_pure_sum_var.F
index 00cf302..7ffab72 100644
--- a/fer/utl/itsa_pure_sum_var.F
+++ b/fer/utl/itsa_pure_sum_var.F
@@ -41,6 +41,7 @@
 * V533 *sh* 7/01
 * v554: 1/04 *acm* Counter variables for REPEAT/RANGE=/NAME=
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V720: 4/17 *acm* Add direction-changing functions as a subset of grid-changing ones
 
 * calling argument declarations
 	INTEGER	uvar
@@ -87,7 +88,8 @@
 	  ELSEIF (
      .		 itype .EQ. alg_child_var   
      .	  .OR.   itype .EQ. alg_variable   
-     .	  .OR.   itype .EQ. alg_grid_chg_fcn 
+     .	  .OR.   itype .EQ. alg_grid_chg_fcn  
+     .	  .OR.   itype .EQ. alg_dir_chg_fcn 
      .	  .OR.   itype .EQ. alg_const_var
      .	  .OR.   itype .EQ. alg_string    
      .	  .OR.   itype .EQ. alg_attrib_val  ) THEN
diff --git a/ppl/tmapadds/get_pix.F b/fer/utl/itsa_truemonth_axis.F
similarity index 76%
rename from ppl/tmapadds/get_pix.F
rename to fer/utl/itsa_truemonth_axis.F
index 8ef78cf..c3878b6 100644
--- a/ppl/tmapadds/get_pix.F
+++ b/fer/utl/itsa_truemonth_axis.F
@@ -1,4 +1,5 @@
-	SUBROUTINE get_pix(wsid,x_pixel_dim, y_pixel_dim)
+	LOGICAL FUNCTION ITSA_TRUEMONTH_AXIS( iaxis )
+
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -34,28 +35,27 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* ACM 8/26/04
-*	Routine to get window size in pixels, saved by set_window_size,
-*       for gif windows where gqpxad does not work.
-*       
+* determine whether a particular context grid axis is a modulo one
 
-        IMPLICIT NONE
-	INCLUDE 'gkscm2.cmn'
+* programmer - Ansley Manke
+* NOAA/PMEL, Seattle, WA - TMAP
 
-* Calling arguments
+* 11/2016
+* 1/2017 *acm* Ticket 2498 Do not report a true-month axis when it's 
+*              actually an unitialized one.
 
-        INTEGER wsid
-        INTEGER x_pixel_dim, y_pixel_dim
+#include "tmap_dset.parm"
+        include 'tmap_dims.parm'
+	include 'xtm_grid.cmn_text'
+	include 'xunits.cmn_text'
+        external xunits_data
 
-* Internal variables
-        INTEGER ierr,conid,wstype
 
-*******************************************************************************
-c	call FGD_GQWKC(wsid,ierr,conid,wstype)
+* calling argument declarations:
+	INTEGER	iaxis
 
-        x_pixel_dim = pixx
-        y_pixel_dim = pixy
+	ITSA_TRUEMONTH_AXIS =  (line_unit_code(iaxis) .LE. pun_trumonths
+     .			  .AND. line_unit_code(iaxis) .NE. int4_init)
 
 	RETURN
 	END
-
diff --git a/fer/ccr/sizeof_pointer.c b/fer/utl/return_one_val.F
similarity index 89%
rename from fer/ccr/sizeof_pointer.c
rename to fer/utl/return_one_val.F
index aea188e..3cdcf99 100644
--- a/fer/ccr/sizeof_pointer.c
+++ b/fer/utl/return_one_val.F
@@ -1,4 +1,6 @@
-/*
+	SUBROUTINE RETURN_ONE_VAL (com, val)
+
+*
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -30,17 +32,20 @@
 *  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.  
-*/
+*  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
+*
+*
+* Return one value from the memory object pointed to by argument 1
+
+* programmer - Ansley Manke
+* NOAA/PMEL, Seattle, WA - SDIG
+
+*  6/04/ 2017
 
-#include <Python.h> /* make sure Python.h is first */
+	REAL com, val
 
-/* 
- *  return the size (in units of bytes) of a pointer to a character
- */
+	val = com
 
-int sizeof_pointer_()
-{
-  return (int) sizeof(char*);
-}
+	RETURN
+	END
 
diff --git a/fer/utl/save_uvar_aux_info.F b/fer/utl/save_uvar_aux_info.F
index 5dd70fb..0415942 100644
--- a/fer/utl/save_uvar_aux_info.F
+++ b/fer/utl/save_uvar_aux_info.F
@@ -37,6 +37,7 @@
 * uvar grid/dset pair.
 
 * V699 5/16 *sh* new routine created to avoid the 2d uvar_grid array
+* V702 3/17 *sh* standardize corruption messages
 
 * arguments:
 *     uvar - the Ferret user variable number (input)
@@ -74,8 +75,7 @@
      .                              aux_cat, aux_var, context_dset )
 
 * check that we were successful
-        IF (status .NE. ferr_ok) CALL WARN(
-     .                  'corruption setting uvar aux info')
+        IF (status .NE. ferr_ok) CALL WARN('crptn??: save_uvar_aux_info')
 
         RETURN
         END
diff --git a/fer/utl/secs_to_tstep.F b/fer/utl/secs_to_tstep.F
index 6e18a96..a5c604a 100644
--- a/fer/utl/secs_to_tstep.F
+++ b/fer/utl/secs_to_tstep.F
@@ -47,10 +47,12 @@
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
 *       *acm* 4/12 6D Ferret: time axis may be in t or f direction. The time 
 *                  dimension is now an arg to SECS_TO_TSTEP.
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
 	include 'tmap_dims.parm'
         include 'xtm_grid.cmn_text'
 	external xgt_grid_data
+	include 'xunits.cmn_text'
         include 'ferret.parm'
 
 * calling argument declarations:
@@ -58,9 +60,10 @@
 	REAL*8	secs
 
 * internal variable declarations:
+	LOGICAL		ITSA_TRUEMONTH_AXIS
 	INTEGER		TM_GET_CALENDAR_ID, axis, cal_id, status
 	CHARACTER*20	date
-	REAL*8		SECS_FROM_BC, bc_to_t0
+	REAL*8		SECS_FROM_BC, bc_to_t0, unit_convert
 
 * determine time axis of grid
 	axis = grid_line( idim, grid )
@@ -77,7 +80,10 @@
 	   bc_to_t0 = SECS_FROM_BC( line_t0(axis), cal_id, status )
 
 * convert to units used on this time axis
-	   SECS_TO_TSTEP = ( secs - bc_to_t0 ) / line_tunit(axis)
+
+	   unit_convert = line_tunit(axis)
+	   IF (ITSA_TRUEMONTH_AXIS(axis)) unit_convert =  un_convert(pun_day)
+	   SECS_TO_TSTEP = ( secs - bc_to_t0 ) / unit_convert
 
 	ELSE
 
diff --git a/fer/utl/short_mod_copy.F b/fer/utl/short_mod_copy.F
index abba080..1922e4a 100644
--- a/fer/utl/short_mod_copy.F
+++ b/fer/utl/short_mod_copy.F
@@ -1,4 +1,4 @@
-	SUBROUTINE SHORT_MOD_COPY( memory, res_lo, res_hi, idim,
+	SUBROUTINE SHORT_MOD_COPY(  res_lo, res_hi, idim,
      .				   tcom_cx, tcom_mr, res_cx, res_mr)
 
 *  This software was developed by the Thermal Modeling and Analysis
@@ -65,7 +65,6 @@
 
 * calling argument declarations:
 	INTEGER	res_lo, res_hi, idim, tcom_cx, tcom_mr, res_cx, res_mr
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
 	INTEGER CAXIS_MODLEN, MODULO_PARITY,
@@ -142,9 +141,9 @@
 	   mr_hi_ss(tcom_mr, idim) = mr_hi_sav + xlate
 	   IF ( MODULO_PARITY(cx_lo_sav,             npts,idel)
      .	   .EQ. MODULO_PARITY(cx_lo_ss(tcom_cx,idim),npts,idel) ) THEN
-	      CALL COPY_INTO( memory(1,mr_blk1(tcom_mr)), tcom_mr,
+	      CALL COPY_INTO( memry(tcom_mr)%ptr, tcom_mr,
      .			      tcom_cx,
-     .			      memory(1,mr_blk1(res_mr)), res_mr )
+     .			      memry(res_mr)%ptr, res_mr )
 	   ENDIF
 * NOTE:  it is KNOWN that sometimes this routine needlessle copies the same
 *	 region of component into the same region of result at both STEP 1
@@ -167,9 +166,9 @@
 	   mr_hi_ss(tcom_mr, idim) = mr_hi_sav + xlate
 	   IF ( MODULO_PARITY(cx_lo_sav,             npts,idel)
      .	   .EQ. MODULO_PARITY(cx_lo_ss(tcom_cx,idim),npts,idel) ) THEN
-	      CALL COPY_INTO( memory(1,mr_blk1(tcom_mr)), tcom_mr,
+	      CALL COPY_INTO( memry(tcom_mr)%ptr, tcom_mr,
      .			   tcom_cx,
-     .			   memory(1,mr_blk1(res_mr)), res_mr )
+     .			   memry(res_mr)%ptr, res_mr )
 	   ENDIF
 	ENDIF
 
diff --git a/fer/utl/shrink_for_modulo.F b/fer/utl/shrink_for_modulo.F
new file mode 100644
index 0000000..29f263f
--- /dev/null
+++ b/fer/utl/shrink_for_modulo.F
@@ -0,0 +1,48 @@
+	SUBROUTINE SHRINK_FOR_MODULO (cx, msrc, do_cdf, do_shrink)
+
+* If the region was specified with world coordinates, e.g. X=0:360, but this makes
+* the region just one cell too large to be corrrectly a modulo axis, then shrink
+* the data by one, when writing a netCDF file. This way if the intent was, for
+* instance, to shift a 20:380 axis to 0:360, we don't lose the correct modulo
+* behavior and length.
+* - If the region is larger than one cell over the modulo length, 
+*   then the axis will be written as a non-modulo axis.
+* - If the region was specified using indices, then the limits will be 
+*   as specified, a non-modulo axis.
+
+* Flag do_shrink is returned TRUE if one or more axes are shrunk
+
+
+	include 'tmap_dims.parm'
+	include	'ferret.parm'
+	include 'xvariables.cmn'
+	include 'xcontext.cmn'
+
+* Calling argument declarations	
+	LOGICAL do_cdf, do_shrink
+	INTEGER cx, msrc
+
+* Local declarations	
+	LOGICAL ITSA_MODULO_AXIS
+	INTEGER	grid, idim, dimsiz, ax_min_ss, ax_max_ss
+	   
+	do_shrink = .FALSE.
+	IF (.NOT. do_cdf) RETURN
+
+* Adjust the context index range, only in the limted case defined above.
+
+	grid = cx_grid ( cx )
+	DO 100 idim = 1, nferdims
+	   IF (.NOT.  ITSA_MODULO_AXIS( cx, idim )) GOTO 100
+	   IF ( cx_by_ss(idim,cx) ) GOTO 100
+
+	   dimsiz = mr_hi_ss(msrc,idim) - mr_lo_ss(msrc,idim)
+	   CALL GRID_SUBSCRIPT_EXTREMES_NO_MOD(ax_min_ss, ax_max_ss, grid, idim)
+	   IF (ax_max_ss-ax_min_ss .EQ. dimsiz-1) THEN
+	      do_shrink = .TRUE.
+	      cx_hi_ss(cx,idim) = cx_hi_ss(cx,idim) - 1
+	   ENDIF
+ 100	CONTINUE
+	      
+	RETURN
+	END
diff --git a/fer/utl/ss_neighbors.F b/fer/utl/ss_neighbors.F
index 093335a..ee4a260 100644
--- a/fer/utl/ss_neighbors.F
+++ b/fer/utl/ss_neighbors.F
@@ -58,6 +58,7 @@
 * V541 - *sh* 2/02 - added support for subspan modulo axes
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
 	include 'tmap_dims.parm'
 	include	'xtm_grid.cmn_text'
@@ -70,7 +71,7 @@
 	REAL	world_coord, factor
 
 * internal variable declarations:
-	LOGICAL	TM_ITS_SUBSPAN_MODULO, regular
+	LOGICAL	TM_ITS_SUBSPAN_MODULO, ITSA_TRUEMONTH_AXIS, regular
 	INTEGER	lo_look, hi_look, axis, ibot, itop, look,
      .		isub0, line_len, isubsc, num_mod, point
 	REAL 	subsc
@@ -100,10 +101,10 @@
 	      last = TM_WORLD(line_len, grid, idim, box_middle)
 	      regular = .FALSE.
 	   ELSE
-	      regular = line_regular( axis )  ! optimization - simple treatment
+	      regular = line_regular(axis) .AND. .NOT.ITSA_TRUEMONTH_AXIS(axis)
 	   ENDIF
 	ELSE
-	   regular = line_regular( axis )
+	   regular = line_regular(axis) .AND. .NOT.ITSA_TRUEMONTH_AXIS(axis)
 	ENDIF
 
 * initialize pointers for axes with irregularly spaced points
diff --git a/fer/utl/store_sys_strings.F b/fer/utl/store_sys_strings.F
index 4b73390..06a64e0 100644
--- a/fer/utl/store_sys_strings.F
+++ b/fer/utl/store_sys_strings.F
@@ -55,7 +55,7 @@
 
 * internal variable declarations:
 	INTEGER	TM_LENSTR1,clen, old_len, istat, new_mr
-	REAL*8	 ADD_C_POINTER, sysout_ptr
+	REAL*8	 sysout_ptr
 
 * --- end of introductory code ---
 
@@ -86,15 +86,24 @@
 	cx_hi_ww(x_dim, cx) = cx_hi_ss(cx, x_dim)
 
 * do we need to allocate a larger block of memory?
-	IF ( cx_hi_ss(cx, x_dim) .GT. mr_nblks(mr)*mem_blk_size ) THEN
+	IF ( cx_hi_ss(cx, x_dim) .GT. mr_size(mr) ) THEN
+* ... this is effectively a "reallocate" of a larger memory block
 	   CALL CREATE_TEMP_MEM_VAR( cx, new_mr, status )
 	   IF ( status .NE. ferr_ok ) GOTO 5000
-	   mr_c_pointer(new_mr) = ADD_C_POINTER(mr_c_pointer(mr), 0,
-     .				(mr_blk1(new_mr)-mr_blk1(mr))*mem_blk_size)
-	   CALL XFER_C_PTRS( mr_c_pointer(mr),     1, 0,
-     .			     mr_c_pointer(new_mr), 1, 0, old_len )
+	   CALL GET_C_POINTER(memry(new_mr)%ptr, mr_c_pointer(new_mr))
+! 2/2017 - there are no string pointers in the too-short mr yet, so why are
+!          we attempting to transfer the string pointers?
+!          Looks like this is a left-over from some earlier logic. 
+!	   CALL XFER_C_PTRS( mr_c_pointer(mr),     1, 0,
+!     .			     mr_c_pointer(new_mr), 1, 0, old_len )
+* 2/2017 -- because a pointer to the original mr was passed as an argument
+* the routine that called this, freeing that memory from here would corrupt
+* runtime stack and crash the program.  So in lieu of deleting the variable
+* here, we set it to be deleted later and make it non-cache retrievable
 	   mr_type(mr) = ptype_float ! a trick so that C strings are not freed
-	   CALL DELETE_VARIABLE(mr)  ! when DELETE_VARIABLE is called
+!	   CALL DELETE_VARIABLE(mr)  ! when DELETE_VARIABLE is called
+	   CALL MR_AVAILABLE(mr)     ! put it onto the deletable chain
+	   CALL UN_CACHE(mr)         ! set to non-retreivable
 	   mr = new_mr
 	ELSE
 	   mr_hi_ss(mr, x_dim) = cx_hi_ss(cx, x_dim)
diff --git a/fer/utl/tdest_world_init.F b/fer/utl/tdest_world_init.F
index fcf9d55..c99ee14 100644
--- a/fer/utl/tdest_world_init.F
+++ b/fer/utl/tdest_world_init.F
@@ -50,6 +50,7 @@
 *             to be done in DOUBLE precision.
 *       *acm* 4/12 6D Ferret: time axis may be in t or f direction. 
 * V695+ *sh* 5/15 calendar factor adjustments only if src/dst calendars differ
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
@@ -64,7 +65,7 @@
 	INTEGER	src_grid, dst_grid, idim, status
 
 * internal variable declarations:
-	LOGICAL TM_DATE_OK
+	LOGICAL TM_DATE_OK, ITSA_TRUEMONTH_AXIS
 	INTEGER	TM_GET_CALENDAR_ID ,
      .          src_line, dst_line, src_cal_id, dst_cal_id
 	REAL	CAL_FACTR
@@ -102,7 +103,9 @@
 
 * determine the units and absolute T0 for the two axes
 	usrc = un_convert( line_unit_code(src_line) )
+	IF ( ITSA_TRUEMONTH_AXIS(src_line) ) usrc = un_convert(pun_day)
 	udst = un_convert( line_unit_code(dst_line) )
+	IF ( ITSA_TRUEMONTH_AXIS(dst_line) ) udst = un_convert(pun_day)
 
 	at0src = SECS_FROM_BC( line_t0(src_line), src_cal_id, status )
 	IF ( status .NE. ferr_ok ) RETURN
diff --git a/fer/gnl/finalize.F b/fer/utl/tplot_axis_ends.F
similarity index 61%
copy from fer/gnl/finalize.F
copy to fer/utl/tplot_axis_ends.F
index fdfb9c9..8bb300f 100644
--- a/fer/gnl/finalize.F
+++ b/fer/utl/tplot_axis_ends.F
@@ -1,8 +1,5 @@
+	SUBROUTINE TPLOT_AXIS_ENDS (plt_ax_lo, plt_ax_hi, cal_id, tstyle)
 
-
-	SUBROUTINE FINALIZE
-
-*
 *
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -36,43 +33,59 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-* prepare for shutdown of ferret
-*
-*     *kms* 11/10 - added cat_pystat_var string_array_clear
-*                   cleared out VMS-specific includes
-*       *acm* 3/12 cleanup ifdefs and unnecessary include files
+* 11/2016 ACM, see ticket 2483
+
+* Reset plt_ax_lo, plt_ax_hi to the values that PPLUS will use for the
+* ends of the time axis that it draws. plt_ax_lo are in seconds since 0000
+* This must be preceded by a call to TAXIS_STYLE to set t_axtyp.
+
 
-        include 'tmap_errors.parm'  ! error codes
 	include 'tmap_dims.parm'
-	include 'xio.cmn_text'
-        include 'xdset_info.cmn_text'
-	external xio_data
-	include 'xtm_grid.cmn_text'
-	external xgt_grid_data
-	include	'ferret.parm'
-	include	'gfdl_vms.parm'
-	include	'errmsg.parm'
-	include	'gfdl.parm'			! from phil/sieg
-	include	'xonedim.cmn'		! from phil.sieg
-	include 'xprog_state.cmn'
-        include 'xalgebra.cmn'
-	include 'xvariables.cmn'
-	include 'xtoday.cmn'
-        include 'xpyvar_info.cmn'
-
-        CALL string_array_clear(alg_pvar_head)
-
-        CALL string_array_clear(countervar_name_head)
-
-        CALL string_array_clear(uvar_name_code_head)
- 
-        CALL string_array_clear(ds_var_code_head)
-
-        CALL string_array_clear(pyvar_code_head)
-
-        CALL deleted_list_clear(uvar_num_items_head)
+	include 'xplot_setup.cmn'
 
-	RETURN
+	REAL plt_ax_lo, plt_ax_hi
+	INTEGER cal_id
+	CHARACTER*3 tstyle
 
-	END
+	INTEGER t_axtyp
+	REAL	WHOI2BC
+	CHARACTER*14 ABS_WHOI_DATE, whoimin, whoimax, 
+     .			whoimin_axlo, whoimax_axhi
+
+
+* only need this call once for a line plot.
 
+	IF (adjust_time) RETURN
+
+* translate to WHOI-formatted dates
+	whoimin =  ABS_WHOI_DATE( plt_ax_lo, cal_id )
+	whoimax =  ABS_WHOI_DATE( plt_ax_hi, cal_id )
+
+* put the century digits at the end, as FIXTIM expects
+	whoimin = whoimin(3:14)//whoimin(1:2)
+	whoimax = whoimax(3:14)//whoimax(1:2)
+
+* t_axtyp is the time style used by PPLUS
+
+	if (tstyle.EQ.'MIN') then
+	   t_axtyp=0
+	else if (tstyle(1:1).EQ.'H') then
+	   t_axtyp=0
+	else if (tstyle(1:1).EQ.'D') then
+	   t_axtyp=0
+	else if (tstyle(1:1).EQ.'M') then
+	   t_axtyp=1
+	else
+	   t_axtyp=3
+	endif
+
+	CALL FIXTIM (whoimin, whoimax, whoimin_axlo, whoimax_axhi, t_axtyp)
+
+* Translate back to seconds-since 0000
+	plt_ax_lo = 60.* WHOI2BC( whoimin_axlo )
+	plt_ax_hi = 60.* WHOI2BC( whoimax_axhi ) 
+
+	adjust_time = .TRUE.
+
+	RETURN
+	END
diff --git a/fer/utl/tstep_to_date.F b/fer/utl/tstep_to_date.F
index a5e7125..79d873f 100644
--- a/fer/utl/tstep_to_date.F
+++ b/fer/utl/tstep_to_date.F
@@ -54,6 +54,7 @@
 *       *acm* 3/12 6D Ferret: Add E and F dimensions 
 *                  A time axis may be a T axis or F axis.
 * V698  *acm* 5/16 Ticket 2405: MODE CALENDAR:auto
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
 * Arguments:
 *	grid	 - grid containing a time axis
@@ -68,6 +69,8 @@
 	external xgt_grid_data
 	include 'ferret.parm'
 	include 'xtext_info.cmn'
+        include 'xunits.cmn_text'
+        external xunits_data
 
 * calling argument declarations
 	CHARACTER*(*)	date
@@ -75,7 +78,7 @@
 	REAL*8		tstep
 *
 * Local definitions
-        LOGICAL         modulo
+        LOGICAL         ITSA_TRUEMONTH_AXIS, modulo
 	CHARACTER*20	SECS_TO_DATE_OUT, buff, dms
 	INTEGER		TM_GET_CALENDAR_ID, DATE_PREC, axis, status, prec, 
      .                  cal_id
@@ -123,6 +126,9 @@
 * Find the number of seconds since start of data set for this time step
 	offset_secs = tstep*line_tunit( axis )
 
+* True-month axis? A true-month step has been converted from month to days
+	IF (ITSA_TRUEMONTH_AXIS(axis)) offset_secs = tstep* un_convert(pun_day)  
+
 * Total seconds to this time step since 01-JAN-0000 00:00:00
 	this_secs = start_secs + offset_secs
 
diff --git a/fer/utl/tstep_to_secs.F b/fer/utl/tstep_to_secs.F
index 83a88f2..817dbd1 100644
--- a/fer/utl/tstep_to_secs.F
+++ b/fer/utl/tstep_to_secs.F
@@ -48,10 +48,12 @@
 * V530: *acm* 12/00 add calendar types; cal_id
 *       *acm* 3/12 6D Ferret: Add E and F dimensions 
 *                  A time axis may be a T axis or F axis, so idim is now an arg.
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
 	include 'tmap_dims.parm'
         include 'xtm_grid.cmn_text'
 	external xgt_grid_data
+	include 'xunits.cmn_text'
         include 'ferret.parm'
 
 * calling argument declarations:
@@ -59,11 +61,12 @@
 	REAL*8	tstep
 
 * internal variable declarations:
+	LOGICAL		ITSA_TRUEMONTH_AXIS
 	INTEGER		TM_GET_CALENDAR_ID, axis, status, cal_id,
      .                  prev_cal_id
 !	CHARACTER*20	date
 	REAL*8		SECS_FROM_BC, start_secs, offset_secs,
-     .                  tstep_new
+     .                  tstep_new, unit_convert
 
 * internal parameter declarations:
 	INTEGER		seconds
@@ -102,8 +105,10 @@ c           ENDIF
 
 * Find the number of seconds since start of data set for this time step
 
-c	   offset_secs = tstep_new*line_tunit( axis )
-	   offset_secs = tstep*line_tunit( axis )
+	   unit_convert = line_tunit(axis)
+	   IF (ITSA_TRUEMONTH_AXIS(axis)) unit_convert =  un_convert(pun_day)
+
+	   offset_secs = tstep* unit_convert
 
 * Total seconds to this time step since 01-JAN-0000 00:00:00
 	   TSTEP_TO_SECS = start_secs + offset_secs
diff --git a/fer/gnl/warn_occasionally.F b/fer/utl/warn_occasionally.F
similarity index 100%
rename from fer/gnl/warn_occasionally.F
rename to fer/utl/warn_occasionally.F
diff --git a/fer/xeq/xeq_cancel.F b/fer/xeq/xeq_cancel.F
index b98f0cd..cc6baf8 100644
--- a/fer/xeq/xeq_cancel.F
+++ b/fer/xeq/xeq_cancel.F
@@ -1,4 +1,4 @@
-	SUBROUTINE XEQ_CANCEL( memory )
+	SUBROUTINE XEQ_CANCEL
 
 *
 *
@@ -151,6 +151,9 @@
 * V698  2/16 *acm* For ticket 2352: variables defined with LET/D are
 *                  added to that dataset in the attribute structure.
 * 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
+
 
 	include 'tmap_dims.parm'
 #	include "tmap_dset.parm"
@@ -183,7 +186,6 @@
         include 'pyfonts.cmn'
 
 * calling argument declarations:
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * local variable declarations:
 	INTEGER		REGION_NUMBER, FIND_DSET_NUMBER,
@@ -291,10 +293,20 @@
 	   DO 410 mr = 1,max_mr_avail
 	      IF ( mr_protected( mr ) .EQ. mr_deleted ) GOTO 410
 	      perm_var = mr_protected(mr) .EQ. mr_perm_protected
-	      IF ( del_perm .AND. perm_var
-     .	      .OR. del_temp .AND. .NOT.perm_var )
-     .				CALL DELETE_VARIABLE( mr )
- 410	   CONTINUE
+	      IF ( del_perm .AND. perm_var ) THEN
+* ... permanent_mem could more efficiently be set after all deletions are
+*     done, but this way we are performing a sanity check as well
+	         permanent_mem = permanent_mem - mr_size(mr)
+	         CALL DELETE_VARIABLE( mr )
+	      ELSEIF ( del_temp .AND. .NOT.perm_var ) THEN  ! same as "ELSE"?
+	         CALL DELETE_VARIABLE( mr )
+	      ENDIF
+ 410       CONTINUE
+* ... /ALL resets to peaks indicators
+	IF (slash_all) THEN
+           peak_mem = 0
+           peak_essential_mem = 0
+	ENDIF
 	IF ( del_perm ) CALL SPLIT_LIST(pttmode_ops, err_lun, 
      .			' PERMANENT data cleared from memory', 0)
 	IF ( del_temp ) CALL SPLIT_LIST(pttmode_ops, err_lun, 
@@ -514,6 +526,14 @@
 !	            CALL GUI_PIPE_CLOSE( status )
 !		    IF ( status .NE. ferr_ok ) GOTO 5000
 
+                 ELSEIF ( mode .EQ. pmode_6d_lab ) THEN
+	            CALL WARN( 'MODE 6D_lab is deprecated. '//
+     .                'Leave the mode set; output '//
+     .                'automatically adjusts to 4D or 6D grids') 
+
+                 ELSEIF ( mode .EQ. pmode_desperate ) THEN
+	            CALL WARN("MODE DESPERATE is deprecated. Use MODE FRUGAL")
+
 	         ENDIF
 		 GOTO 820
 	      ENDIF
diff --git a/fer/xeq/xeq_contour.F b/fer/xeq/xeq_contour.F
index d481aa9..b5792fa 100644
--- a/fer/xeq/xeq_contour.F
+++ b/fer/xeq/xeq_contour.F
@@ -1,4 +1,4 @@
-	SUBROUTINE XEQ_CONTOUR( memory )
+	SUBROUTINE XEQ_CONTOUR
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -129,6 +129,8 @@
 * V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
 *                  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
+* 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
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -148,7 +150,6 @@
         include 'GKSCM1.INC'    ! wsid
 	
 * calling argument declarations:
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
 	LOGICAL	TM_HAS_STRING, 
@@ -156,8 +157,8 @@
      .            do_key, spectrum, set_up, noaxes, axes, pattern, 
      .		  no_data, is_logh, is_logv, inc_grid
 	INTEGER	  TM_LENSTR, TM_LENSTR1, status, slen, sp, ipen, icolor, 
-     .		  ax1_blks, ax1_start, loc, sigdig,
-     .		  ax2_blks, ax2_start, patt, i, nparm, num_it, 
+     .		  ax1_work, ax2_work, loc, sigdig,
+     .		  patt, i, nparm, num_it, 
      .		  s1, s2, it_start(4), it_end(4), iax(4), density,
      .            loch, locv
         INTEGER   STR_UPCASE, i1
@@ -179,8 +180,7 @@
 
 * get the data (possibly ?? on a slightly oversized region)
 !	cx_ovsiz(cx_last) = ovsiz_plane	! ... causes too many headaches !
-	CALL DISP_DATA_SET_UP( memory,
-     .		ax1_start, ax1_blks, ax2_start, ax2_blks, status )
+	CALL DISP_DATA_SET_UP(  ax1_work, ax2_work, status )
 	IF ( status .NE. ferr_ok ) GOTO 5100
 
 * initialize
@@ -366,7 +366,7 @@
 
 * set up the axes and title and load the data into PPLUS
 	inc_grid = set_up
-	CALL DISP_SET_UP   ( 	memory,
+	CALL DISP_SET_UP   ( 	
      . 			 	not_vector,
      .				is_shade,
      .				use_cell,
@@ -383,8 +383,8 @@
      .				num_uvars_in_cmnd,
      .				is_cx,		! pass list
      .				is_uvar,	
-     .				memory( 1, ax1_start ),
-     .				memory( 1, ax2_start ),
+     .				workmem(ax1_work)%ptr,
+     .				workmem(ax2_work)%ptr,
      .				ipen,
      .				inc_grid,
      .				status )
@@ -638,15 +638,9 @@ c done in disp_set_up. If mode_nodata_lab is false then leave this off.
 * interrupt occurred during plot ?
 	IF ( ppl_interrupted ) GOTO 1000
 
-* capture the bit map ? (discontinued with v6.6)
-	IF ( qual_given( slash_cont_frame ) .GT. 0 ) THEN
-	   CALL SAVE_FRAME( frame_file, "HDF", status )
-	   IF ( status .NE. ferr_ok ) GOTO 5000
-	ENDIF
-
 * release the memory used for axis buffers
- 1000 	CALL FREE_MEMORY( ax2_start, ax2_blks )
- 	CALL FREE_MEMORY( ax1_start, ax2_blks )
+ 1000 	CALL FREE_WS_DYNMEM( ax1_work )
+	CALL FREE_WS_DYNMEM( ax2_work )
 	CALL UNPROTECT_CMND_DATA			! 1/94
  5100	RETURN
 
diff --git a/fer/xeq/xeq_define.F b/fer/xeq/xeq_define.F
index 4d2c301..4a301fd 100644
--- a/fer/xeq/xeq_define.F
+++ b/fer/xeq/xeq_define.F
@@ -1,4 +1,4 @@
- 	SUBROUTINE XEQ_DEFINE( memory )
+ 	SUBROUTINE XEQ_DEFINE
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -251,7 +251,17 @@
 *                  (commented out for now.)
 * V698  5/16 *acm* Ticket 2416 allow all output types for DEFINE ATT.
 * V7    5/16 *acm* See ticket 2352. For LET/D variables look for info under that dataset
-
+* V7   *acm*  6/12 Add Union aggregations: DEFINE DATA/AGG/U
+* V710 12/16 *acm* Ticket 2158: working with true monthly time axes.
+*                  Add DEFINE AXIS /MONTHLY /LIKE=
+* V710  4/16 *acm* new TM_UNITS_CAL to account for calendar in units id
+* V702 12/16 *acm* handling modulo true-month axes added after merge back to trunk.
+* V7022 1/17 *acm* ticket 2497, Back off the auto-detection of monthly axes.
+* 1/13/2017 *acm* Do the repeated-coordinates checking in the new routine
+*                 TM_CHECK_COORDS, also called by cd_get_1_axis, to consistently
+*                 handle almost-equal coordinates, differing by machine precision.
+* 1/24/2017 *acm* Ticket 2504: If Ferret is computuing axis bounds, set them such 
+*                 that the axis lies within the given modulo length.
 
 	include	'tmap_errors.parm'
 #	include	"tmap_dset.parm"
@@ -271,6 +281,7 @@
 	include 'xtext_info.cmn'
 	include 'xcommand.cmn'
         include 'xgrid_chg_fcns.cmn'
+	include 'xinterrupt.cmn'
 	include 'calendar.decl'
 	include 'calendar.cmn'	
         include 'netcdf.inc'
@@ -293,6 +304,8 @@
      .		    slash_npoints,
      .		    slash_edges,
      .		    slash_calendar,
+     .		    slash_monthly,
+     .		    slash_def_ax_like,
      .		    slash_text,
      .		    slash_xlimits,
      .		    slash_ylimits,
@@ -320,7 +333,8 @@
      .              slash_def_agg_e,
      .              slash_def_agg_f,
      .              slash_def_agg_hide,
-     .              slash_def_annot_nlab
+     .              slash_def_annot_nlab,
+     .              slash_def_agg_u
 
 	LOGICAL	    explct_defn
 	PARAMETER ( slash_dflt   = 1 + 12,
@@ -336,9 +350,11 @@
      .		    slash_npoints= 1 + 13,
      .		    slash_edges  = 1 + 14,
      .		    slash_calendar = 1 + 15,
-     .              slash_bounds     = 1+16,
-     .              slash_def_ax_quiet = 1+17,
-     .              slash_text   = 1 + 0,
+     .		    slash_bounds = 1+16,
+     .		    slash_def_ax_quiet = 1+17,
+     .		    slash_monthly= 1 + 18,
+     .		    slash_def_ax_like  = 1+19,
+     .		    slash_text   = 1 + 0,
      .		    slash_xlimits= 1 + 1,
      .		    slash_ylimits= 1 + 2,
      .		    slash_size   = 1 + 3,
@@ -363,28 +379,30 @@
      .              slash_def_agg_title = 1 + 7,
      .              slash_def_agg_quiet = 1 + 8,
      .              slash_def_agg_hide  = 1 + 9,
+     .              slash_def_agg_u     = 1 + 10,
      .              slash_def_annot_nlab = 10,		! must be slash_annotate_siz+1
      .		    explct_defn  = .FALSE. )
 
 * calling argument declarations:
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * local variable declarations:
 
 	LOGICAL	  TM_DIGIT, TM_LEGAL_NAME, TM_LINE_MATCH, TM_GRID_MATCH,
      .		  TM_FPEQ, TM_DFPEQ, TM_CHECK_BNDS, MATCH_NAME,
      .            NC_GET_ATTRIB, TM_LEGAL_NAME_OP, TM_HAS_STRING,
-     .            ITSA_1LINEIF, MATCH4, GO_FILE_INPUT, IS_AGG_MEMBER,
-     .            TM_ITS_SUBSPAN_MODULO,
+     .            ITSA_1LINEIF, MATCH4, GO_FILE_INPUT, IS_AGG_MEMBER, 
+     .            MATCH_TEMPLATE, TM_ITS_SUBSPAN_MODULO,
      .            dup_name, delta_given, create, irreg, its_reg, its_edges, 
      .            its_calendar, its_modulo, has_repeated, has_bounds,
      .            new_att, new_att_modulo, got_it, orient_t, agg_quiet,
      .            letdset, its_remote, agg_hide, def_att_quiet, purge_all,
-     .            user, norm, nouser, t_regular, use_strict, have_expr, original
+     .            user, norm, nouser, t_regular, use_strict, have_expr, 
+     .            original, true_month, line_allocated, truemonth_noted,
+     .            is_double, misordered, bnds_or_edges, okmod
 	INTEGER   REGION_NUMBER, GRID_FROM_NAME, VIEWPORT_NUMBER, STR_UPCASE,
      .		  CX_DIM_LEN, ALIAS_ID, EFCN_SCAN,
      .		  TM_GET_LINENUM, TM_LENSTR1, 
-     .		  TM_GET_GRIDNUM, TM_UNIT_ID,
+     .		  TM_GET_GRIDNUM, TM_UNIT_ID, TM_UNITS_CAL, 
      .		  ALLO_MANAGED_AXIS, ALLO_MANAGED_GRID, FIND_DSET_NUMBER,
      .            TM_GET_CALENDAR_ID, STR_SAME,
      .		  tmap_status, npoints, i, 
@@ -399,18 +417,20 @@
      .            prev_cal_id, j, num_indices, varid, attype_spec,
      .            attoutflag, attlen, coordvar, 
      .            dset_to_add, dir, type, attype, attid, ibuff, i0,  
-     .            agg_dim, nagfiles, ivar, item, nlab, ierr, nlen, llen
+     .            agg_dim, nagfiles, ivar, item, nlab, ierr, nlen,  
+     .            llen, line, dstart, units, npts, ipt1, ipte
 
 	REAL	  rbuff, bad_flag, yeardays, 
-     .            val, dummy, val_buf, xloc, yloc, halign, angle, size
+     .            val, dummy, val_buf, xloc, yloc, halign, angle, size,
+     .            epsilon
 
 	REAL*4	  r4_unspec, scale, xlovp, ylovp,  xhivp, yhivp,
      .            xoei,  yoei,   xcei,  ycei
 	REAL*8	  SECS_FROM_BC, TM_WW_AXLEN,
      .		  bc_to_t0, start, new_ww, delta, end, secs2start,
      .            micro_adj, axwwlen, rmod_len, secsperyear, small, 
-     .            new_att_modulo_len, madj
-	CHARACTER TM_FMT*16, TM_CLEAN_FILENAME*512,
+     .            new_att_modulo_len, madj, firs_coord, last_coord, timefac
+	CHARACTER TM_FMT*16, TM_CLEAN_FILENAME*512,SECS_TO_DATE_OUT*11,
      .            reg_name*24, buff1*128, buff2*512, buff3*512, 
      .            buffsym*120, cal_name*32, buff*512,
      .            basic_orients(nferdims)*2, err_string*2048, replmsg*24,
@@ -418,7 +438,7 @@
      .            new_att_units*128, new_att_calendar*128,
      .            new_att_t0*128, dcode*2, axdir*1, t0string*128, 
      .            ustring*128, reserved_flow_name(3)*4, is_nan*3,
-     .            buff4*16, buff5*16
+     .            buff4*16, buff5*16, datestr*11, likename*64
 
         CHARACTER*1 tab
 #ifdef NO_INTRINSIC_IN_PARAMETER
@@ -828,6 +848,9 @@
 * ... /FILE=
  500	IF ( qual_given( slash_file ) .GT. 0 ) GOTO 300 ! like DEFINE GRID/FILE
 
+* initialize	
+	buff2 = ' '
+
 * DEFINE AXIS - what is "axisname" ?
 	iqual = qual_given( slash_name )
 	IF ( iqual .GT. 0 ) THEN
@@ -877,6 +900,7 @@
 	   rmod_len = 0.0D0
 	ENDIF
 
+
 * is this to be a regular or irregular definition?
 	irreg = qual_given(slash_name) .GT. 0
      .	  .OR. (qual_given(slash_name) .EQ. 0
@@ -909,6 +933,44 @@ c	IF ( .NOT.TM_LEGAL_NAME( buff3 ) ) GOTO 5100
      .				status	)
 	IF ( status .NE. ferr_ok ) GOTO 5000
 
+* /LIKE
+
+	line_allocated = .FALSE.
+
+	iqual = qual_given( slash_def_ax_like )
+	IF ( iqual .GT. 0 ) THEN
+	  
+	   i1 = STR_UPCASE(likename,cmnd_buff(item_start(i):item_end(i)))
+*  ... first look in the static lines
+	   DO line = 1, max_lines
+	      IF ( interrupted ) CALL ERRMSG
+     .			( ferr_interrupt, status, ' ', *5000 )
+	      IF ( line_name(line) .EQ. char_init16 ) CYCLE 
+	      IF ( line_name(line)(1:1) .EQ. '(' ) CYCLE 
+	      IF (MATCH_TEMPLATE(line_name(line),likename)) GOTO 450
+ 	   ENDDO 
+
+*  ... then the dynamic lines
+              line = 0
+ 435          CALL TM_NEXT_DYN_LINE( line, *440)
+                 IF ( interrupted ) CALL ERRMSG
+     .			( ferr_interrupt, status, ' ', *5000 )
+                 IF (MATCH_TEMPLATE(line_name(line),likename)) GOTO 450
+	         GOTO 435
+ 440          CONTINUE
+           GOTO 5760
+ 450	   CONTINUE
+
+* find a space to catalog it
+	   status = ALLO_MANAGED_AXIS( iline )
+	   IF ( status .NE. merr_ok ) GOTO 5000
+	   line_allocated = .TRUE.
+
+* copy the line definition
+	   CALL TM_COPY_LINE ( line, iline )
+
+	ENDIF
+
 * orientation must be uniquely defined
 
 	orient = unspecified_int4
@@ -947,6 +1009,16 @@ c	IF ( .NOT.TM_LEGAL_NAME( buff3 ) ) GOTO 5100
 	has_bounds =  qual_given( slash_bounds ) .GT. 0
         IF (has_bounds .AND. its_edges) GOTO 5730
 
+	bnds_or_edges = has_bounds .OR. its_edges
+
+* is it a calendar axis definition?
+	its_calendar =  orient_t .AND. cx_calendar(orient,mods_cx)
+
+* /MONTHLY - set the true_month flag, time axes only. (what about F axes?)
+	true_month = qual_given( slash_monthly ) .GT. 0
+
+	IF (true_month .AND. orient.NE.t_dim) GOTO 5820
+
 * /UNITS = DEGREES,METERS, ... SECONDS (or supply defaults)
         buff1 = ' '
         new_att_units = ' ' 
@@ -962,15 +1034,67 @@ c	IF ( .NOT.TM_LEGAL_NAME( buff3 ) ) GOTO 5100
 	   buff1 = 'degrees'	! infer from input like "X=130E:80W"
 	ELSEIF ( orient_t
 * 8/97 *kob* use cx_calender to check if time is date rather than time step
-     .  .AND.  (     qual_given(slash_T0) .GT. 0
+     .  .AND.  (  qual_given( slash_t0 ) .GT. 0
      .		.OR. cx_calendar(orient,mods_cx))) THEN
-	   buff1 = 'HOURS'
+	    IF ( .NOT. true_month ) buff1 = 'HOURS'
 	ELSE
 	   buff1 = 'NONE'
 	ENDIF
 
-* is it a calendar axis definition?
-	its_calendar =  orient_t .AND. cx_calendar(orient,mods_cx)
+* /MONTHLY
+
+	timefac = 1.
+	IF ( true_month ) THEN
+	   IF (qual_given(slash_units) .GT. 0) THEN
+	      IF (STR_SAME(buff1,      ' '   ) .EQ. 0 .OR.
+     .		  STR_SAME(buff1(1:4), 'NONE') .EQ. 0 .OR.
+     .		  STR_SAME(buff1(1:3), 'MON' ) .EQ. 0) THEN
+	         buff1 = 'TRUMONTH'
+	      ELSE
+	         GOTO 5770
+	      ENDIF
+	   
+	   ENDIF
+
+* Do not allow /BOUNDS, /NPOINTS, irregular, 
+
+	   IF (has_bounds) GOTO 5780 
+	   IF (irreg) GOTO 5790
+
+* maybe later allow def axis/monthly/npoints=120/t0=1-jan-2001.  Not allowed now.
+	   IF (qual_given(slash_npoints) .GT. 0) GOTO 5800
+
+* Check that any delta given in /t=LO:HI:DELTA has value of 1
+* Should be able to handle that...
+
+	   delta = cx_delta (orient,mods_cx)
+	   IF ( delta.EQ.unspecified_val8 .OR. delta.LE.0.D0) GOTO 5810
+
+	   buff1 = 'TRUMONTH'
+
+* Edges is implied.  Issue a note if they didn't give /EDGES
+	   
+	   truemonth_noted = .FALSE.
+	   IF (.NOT. its_edges) THEN
+	      CALL WARN ('True monthly axis has an implicit /EDGES qualifier')
+	      truemonth_noted = .TRUE.
+	   ENDIF
+	   its_edges = .TRUE.
+	   
+* Will use a default if t0 not given
+
+	   IF (qual_given( slash_T0 ) .EQ. 0) THEN
+	      IF (its_calendar) THEN 
+	         CALL WARN (
+     .          'True monthly axis, T0 not specified. Using start of first year of axis')
+	      ELSE
+	         CALL WARN (
+     .          'True monthly axis, T0 not specified. Using 01-jan-0000')
+	      ENDIF
+	      truemonth_noted = .TRUE.
+	   ENDIF
+
+	ENDIF
 
 * *acm* other calendar names* /CALENDAR = GREGORIAN, NOLEAP, JULIAN, 360_DAY, ALL_LEAP
 *       Gregorian is the default, also may be called STANDARD.
@@ -1000,6 +1124,7 @@ c	IF ( .NOT.TM_LEGAL_NAME( buff3 ) ) GOTO 5100
         IF (cal_name(1:6) .EQ. 'COMMON') cal_name = 'NOLEAP' 
         IF (cal_name(1:6) .EQ. '365_DA') cal_name = 'NOLEAP' 
         IF (cal_name(1:6) .EQ. '366_DA') cal_name = 'ALL_LEAP' 
+
         cal_id = TM_GET_CALENDAR_ID (cal_name)
 	IF (cal_id .LE. 0  .OR. cal_id .GT. max_calendars ) GO TO 5720
         CALL TM_GET_CALENDAR_ATTRIBUTES (cal_id, nmonths, 
@@ -1007,51 +1132,75 @@ c	IF ( .NOT.TM_LEGAL_NAME( buff3 ) ) GOTO 5100
      .                 d_before_mon, mon_by_d)
         IF (new_att_calendar .NE. " ") new_att_calendar = cal_name
 
+* True-month calendar:
+* If no time origin given, by default the monthly axis origin will be 
+* the beginning of the first month of the axis, if calendar date range 
+* given, or 1-jan-0000
+
+	IF (true_month) THEN
+	   IF (qual_given( slash_T0 ) .EQ. 0) THEN
+	      IF (its_calendar) THEN
+	         start = ABS(cx_lo_ww(orient,mods_cx))
+	         datestr = SECS_TO_DATE_OUT (start, cal_id, .FALSE., 1)
+                 buff2 = '01-JAN-'//datestr(1:4)
+	      ELSE
+	         buff2 = '01-JAN-0000'
+	      ENDIF
+	   ENDIF
+
+	ENDIF 
+
 * interpret the line units
 	IF ( buff1 .EQ. 'NONE' .OR. buff1 .EQ. ' ' ) THEN
 	   buff1 = ' '
 	   iunit = 0
+	   
 	ELSE
 	   iunit = TM_UNIT_ID( buff1 )
 	   IF ( iunit .EQ. 0 ) THEN
 	       CALL WARN('(fyi) units are not subject to auto-conversion: '
      .			//buff1)
 
-C /calendar=/unit=year gets length of year in that calendar.
-           ELSEIF (iunit .EQ. -6 .OR. iunit .EQ. -10) THEN  
-	      IF (cal_id .EQ. d360) iunit = -9
-	      IF (cal_id .EQ. julian) iunit = -12
-	      IF (cal_id .EQ. noleap) iunit = -11
-	      IF (cal_id .EQ. all_leap) iunit = -8
+C /calendar=/unit=year gets length of year in that calendar 
+C                      (true_month flag unused for yr axis)
+           ELSEIF (iunit .EQ. -6 .OR. iunit .EQ. -10) THEN
+	      iunit = TM_UNITS_CAL( iunit, cal_id, true_month )
 
 C /units=months  is 1/12 of the length of the year
 	   ELSEIF (iunit .EQ. -5) THEN    ! 1/97: "-5" is "MONTHS"
-              IF (cal_id .eq. GREGORIAN) THEN
-                 WRITE (err_string,3544) yeardays
-              ELSE
-                 WRITE (err_string,3540) yeardays
-                 IF (cal_id .eq. 2) THEN	! noleap
-                    iunit = -13
-                 ELSE IF (cal_id .eq. 3) THEN	! Julian
-		    iunit = -15
-		 ELSE IF (cal_id .eq. 4) THEN	! 360_DAY
-		    iunit = -14
-		 ELSE IF (cal_id .eq. 5) THEN	! ALL_LEAP
-		    iunit = -16
-	         ENDIF
+              WRITE (err_string,3540) yeardays
+	      IF (cal_id .EQ. GREGORIAN) 
+     .            WRITE (err_string,3544) yeardays
+ 
+* Named calendar with unit=month or year gets length according to calendar's year length.
+
+	      iunit = TM_UNITS_CAL( iunit, cal_id, true_month )
+
 *  Append calendar name to units string.
+              IF (cal_id .NE. GREGORIAN) THEN
 		 slen = TM_LENSTR1 (buff1)
 		 len_cal = TM_LENSTR1 (cal_name)
 		 buff1 = buff1(:slen)//'('//cal_name(:len_cal)//')'
               ENDIF
 	      
+* issue a note about monthly axes
+
+	      IF (true_month) THEN
+	         WRITE (err_string,3546) 
+		 IF (.NOT. truemonth_noted) CALL WARN (err_string) 
+	      ELSE
+	         CALL WARN (err_string)
+	      ENDIF
+	      
  3540         FORMAT 
      .        ('/UNIT=MONTHS  ... using 1/12 of ',F6.2,' days')
  3544         FORMAT 
      .        ('/UNIT=MONTHS is ambiguous ... using 1/12 of '
-     .                                                  ,F8.4,' days')
-	         CALL WARN (err_string) 
+     .                                           ,F8.4,' days')
+ 3546         FORMAT ('True monthly axis')
+
 	   ELSE
+
 * ... Issue warning for inappropriate units like HOURS on X ax
 *     and render the units unconvertible
  	      IF ( (  orient_t .AND.
@@ -1068,9 +1217,11 @@ C /units=months  is 1/12 of the length of the year
 	   ENDIF
  	ENDIF
 
-* find a space to catalog it
-	status = ALLO_MANAGED_AXIS( iline )
-	IF ( status .NE. merr_ok ) GOTO 5000
+* find a space to catalog it (may already be done above with DEF AX/LIKE=)
+	IF (.NOT. line_allocated) THEN
+	   status = ALLO_MANAGED_AXIS( iline )
+	   IF ( status .NE. merr_ok ) GOTO 5000
+	ENDIF
 
 * was /NPOINTS given ?
 * Read as an INTEGER then it can be really large and retain accuracy.
@@ -1089,7 +1240,7 @@ C /units=months  is 1/12 of the length of the year
 	IF ( irreg ) THEN
            line_regular( iline ) = .FALSE.  ! this may be reset to true later.
 * ... get axis points from a memory variable
-	   CALL GET_CMND_DATA ( memory, cx_last, ptype_float, status )
+	   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
@@ -1126,7 +1277,7 @@ C /units=months  is 1/12 of the length of the year
                  n2 = n+1
               ELSEIF (num_uvars_in_cmnd .EQ. 3) THEN
                  IF (n2 .NE. n3) GOTO 5745
-                 IF (n2 .NE. n) GOTO 5745
+			 IF (n2 .NE. n) GOTO 5745
               ELSE
                  GOTO 5740
               ENDIF
@@ -1155,57 +1306,36 @@ C /units=months  is 1/12 of the length of the year
 * ... "/edges" definition - 4/99
 	      n = n - 1  ! edges array is one longer than points
 	      IF (n .LE. 0) GOTO 5520
-	      CALL EXTRACT_DP_LINE( cx, memory(1, mr_blk1(mr)),
+	      CALL EXTRACT_DP_LINE( cx, memry(mr)%ptr,
      .				 line_mem(frst_pt+n), idim, n+1 )
 	      npoints = n
-	      micro_adj = 1E-6 *
-     .		(line_mem(frst_pt+n+n) - line_mem(frst_pt+n))
+
+
+* ... monotonic?
+	      DO 527 i1 = frst_pt+n+1, frst_pt+n+n
+	         IF (.NOT. TM_FPEQ( line_mem(i1-1), line_mem(i1) ).AND. 
+     .               line_mem(i1-1) .GT. line_mem(i1)) GOTO 5570
+ 527	      CONTINUE
+
 * ... are there repeated values?
+
 	      has_repeated = .FALSE.
-	      DO 515 i1 = frst_pt+1, frst_pt+n
-	         IF      (line_mem(i1+n-1) .GT. line_mem(i1+n)) THEN
-	           GOTO 5570
-	         ELSEIF  (line_mem(i1+n-1) .EQ. line_mem(i1+n)) THEN
-	           has_repeated = .TRUE.
-		 ENDIF
- 515	      CONTINUE
-* ... make micro-adjustments if axis has repeated values (4/99)
-	      IF ( has_repeated ) THEN
-	         CALL WARN('Axis has repeated values -- micro-adjusting ...')
-	         IF (micro_adj .EQ. 0.D0) GOTO 5560
-		 i0 = frst_pt+n
-	         DO 526  i1 = frst_pt+n+1, frst_pt+n+n
-	             IF  (line_mem(i1-1) .EQ. line_mem(i1)) THEN
-*    ... locate end of repeating block
-	                DO 520 i2 = i1, frst_pt+n+n
-	                   IF (line_mem(i2) .GT. line_mem(i1)) GOTO 521
- 520		        CONTINUE
-	                i2 =  frst_pt+n+n+1    ! one beyond last value
-                        i0 = i1 - 2
-		        i3 = i2 - 1
-*    ... micro-adjust repeating values and edges from i1 to i2-1
- 521		        CONTINUE
-                        IF (line_mem(i2) .GT. line_mem(i1)) THEN
-                           i0 = i1-1
-                           i3 = i2
-                        ENDIF
-
-                        madj = micro_adj
-                        IF (micro_adj*(i2-i1+1) .GT. 
-     .	                     line_mem(i3) - line_mem(i0) ) THEN
-     	                   madj = (line_mem(i3) - line_mem(i0))/(i2-i1+1)
-			   IF (madj .EQ. 0.D0) GOTO 5560
-                        ENDIF
-  		        DO 522 i3 = i1, i2-1
-	                   line_mem(i3) = line_mem(i3) +
-     .	                     (i3-i1+1)* madj
- 522		        CONTINUE
-	                IF ( i2 .LE. frst_pt+n+n
-     .		       .AND. (line_mem(i2-1) .GE. line_mem(i2))) GOTO 5560
-	             ENDIF
- 526	          CONTINUE
-	      ENDIF
+	      is_double = .TRUE.
+	      misordered = .FALSE. 
+
+	      use_strict = .FALSE.  ! unused for DEFINE AXIS
+	      micro_adj = 1E-6 *
+     .		(line_mem(frst_pt+n+n) - line_mem(frst_pt+n))
+
+	      CALL TM_CHECK_COORDS (frst_pt+n, frst_pt+n+n, is_double, 
+     .                              use_strict, has_repeated, misordered, 
+     .                              micro_adj, epsilon, epsilon)
+	      IF (misordered) GOTO 5560
+	      IF (has_repeated) 
+     .		CALL WARN('Axis has repeated values -- micro-adjusting ...')
+
 * ... store points: midway between box boundaries ...
+
 	      has_repeated = .FALSE.
 	      DO 528 i1 = frst_pt+1, frst_pt+n
 	         line_mem(i1-1) = (line_mem(i1+n-1)+line_mem(i1+n)) * 0.5
@@ -1214,6 +1344,7 @@ C /units=months  is 1/12 of the length of the year
 * Fix ticket 2400: Def of start was pointing to the lower grid cell edge not the
 * lower coordinate. The loop start and stop were one off, so most axes detected
 * as irregular as the last comparison took us beyond the upper edge of the axis.
+
 	      its_reg = .TRUE.	! until proven otherwise
 	      start = line_mem(frst_pt)
               delta = line_mem(frst_pt+1) - start
@@ -1233,9 +1364,10 @@ C /units=months  is 1/12 of the length of the year
 
 * NOT EDGES -- POINTS
 
-	      CALL EXTRACT_DP_LINE( cx, memory(1, mr_blk1(mr)),
+	      CALL EXTRACT_DP_LINE( cx, memry(mr)%ptr,
      .				 line_mem(frst_pt), idim, n )
 	      IF ( npoints .EQ. unspecified_int4 ) npoints = n
+
 * ... a single point is always "regular" (unless definition has BOUNDS!!)
 	      IF (n .EQ. 1 .AND. .NOT.has_bounds) THEN
 	         start = line_mem(frst_pt)
@@ -1243,53 +1375,30 @@ C /units=months  is 1/12 of the length of the year
 	         its_reg = .TRUE.
 	         GOTO 560
 	      ENDIF
-	      micro_adj = 1E-6 *
-     .		(line_mem(frst_pt+n-1) - line_mem(frst_pt))
-* ... are there repeated values?
-	      has_repeated = .FALSE.
+	      
+* ... monotonic?	      
+
 	      DO 532 i1 = frst_pt+1, frst_pt+npoints-1
-	         IF      (line_mem(i1-1) .GT. line_mem(i1)) THEN
-	            GOTO 5570
-	         ELSEIF  (line_mem(i1-1) .EQ. line_mem(i1)) THEN
-	            has_repeated = .TRUE.
-	         ENDIF
+	         IF (.NOT. TM_FPEQ( line_mem(i1-1), line_mem(i1) ).AND. 
+     .               line_mem(i1-1) .GT. line_mem(i1)) GOTO 5570
  532	      CONTINUE
-* ... make micro-adjustments if axis has repeated values (4/99)
-	      IF ( has_repeated ) THEN
-	         CALL WARN('Axis has repeated values -- micro-adjusting ...')
-	         IF (micro_adj .EQ. 0.D0) GOTO 5560
-
-		 i0 = frst_pt
-	         DO 538  i1 = frst_pt+1, frst_pt+npoints-1
-	            IF  (line_mem(i1-1) .EQ. line_mem(i1)) THEN
-*    ... locate end of repeating block
-	               DO 534 i2 = i1, frst_pt+npoints-1
-	                  IF (line_mem(i2) .GT. line_mem(i1)) GOTO 535
- 534		       CONTINUE
-	               i2 = frst_pt+npoints    ! one beyond last value
-                       i0 = i1 - 2
-		       i3 = i2 - 1
-*    ... micro-adjust repeating values from i1 to i2-1
- 535		       CONTINUE
-                       IF (line_mem(i2) .GT. line_mem(i1)) THEN
-		          i0 = i1-1
-		          i3 = i2
-		       ENDIF
-                       madj = micro_adj
-                       IF (micro_adj*(i2-i1+1) .GT. 
-     .	                     line_mem(i3) - line_mem(i0) ) THEN
-     	                  madj = (line_mem(i3)-line_mem(i0))/(i2-i1+1)
-                       IF (madj .EQ. 0.D0) GOTO 5560
-                       ENDIF
-  		       DO 536 i3 = i1, i2-1
-	                  line_mem(i3) = line_mem(i3) +
-     .	                    (i3-i1+1)* madj
- 536		       CONTINUE
-	               IF ( i2 .LT. frst_pt+npoints .AND. 
-     .		       (line_mem(i2-1) .GE. line_mem(i2))) GOTO 5560
-	            ENDIF
- 538	         CONTINUE
-	      ENDIF
+
+* ... are there repeated values?
+
+	      has_repeated = .FALSE.
+	      is_double = .TRUE.
+	      misordered = .FALSE. 
+
+	      use_strict = .FALSE.  ! unused for DEFINE AXIS
+	      micro_adj = 1E-6 *
+     .		(line_mem(frst_pt+n-1) - line_mem(frst_pt))
+
+	      CALL TM_CHECK_COORDS (frst_pt, frst_pt+npoints-1, is_double, 
+     .                              use_strict, has_repeated, misordered, 
+     .                              micro_adj, epsilon, epsilon)
+	      IF (misordered) GOTO 5560
+	      IF (has_repeated) 
+     .		CALL WARN('Axis has repeated values -- micro-adjusting ...')
 
 * Bounds specified by user
 
@@ -1298,7 +1407,7 @@ C /units=months  is 1/12 of the length of the year
                  cx = is_cx(2)
                  mr = is_mr(2)
 
-	         CALL EXTRACT_DP_LINE2( cx, memory(1, mr_blk1(mr)),
+	         CALL EXTRACT_DP_LINE2( cx, memry(mr)%ptr,
      .	  	    line_mem(next_line_mem_pos + n), idim, n2 )
 
 * If given as coords, lo_bounds, hi_bounds, then
@@ -1309,7 +1418,7 @@ C /units=months  is 1/12 of the length of the year
                  IF (num_uvars_in_cmnd .EQ. 3) THEN
                     cx = is_cx(3)
                     mr = is_mr(3)
-                    CALL EXTRACT_DP_LINE2( cx, memory(1, mr_blk1(mr)),
+                    CALL EXTRACT_DP_LINE2( cx, memry(mr)%ptr,
      .	 	       line_mem(next_line_mem_pos + n+n2), idim, n3 )
                     DO i = 1, n3-1
                        IF (line_mem(next_line_mem_pos + n+i) .NE.
@@ -1405,6 +1514,10 @@ C /units=months  is 1/12 of the length of the year
 	     IF ( npoints .EQ. unspecified_int4 ) THEN
 	       delta = cx_delta (orient,mods_cx)
 	       IF ( delta.EQ.unspecified_val8 .OR. delta.LE.0.D0) GOTO 5520
+	       
+* Check for delta of 1 on true-month axis (for now)
+	       IF (true_month .AND. delta .NE. 1) GOTO 5810 
+
 	       IF ( .NOT.its_calendar ) THEN
 	          npoints = ( (end - start) / delta ) + 0.9999
 	       ENDIF
@@ -1414,12 +1527,13 @@ C /units=months  is 1/12 of the length of the year
 	       IF ( delta .LE. 0.0D0 ) GOTO 5520
 	     ENDIF
 	     IF ( its_calendar ) THEN
-	       start = start - delta/2.0*un_convert(iunit)
-	       end   = end   + delta/2.0*un_convert(iunit)
+	       start = start - (delta/2.0)*un_convert(iunit)
+	       end   = end   + (delta/2.0)*un_convert(iunit)
 	     ELSE
 	       start = start + delta/2.0
 	       end   = end   - delta/2.0
 	     ENDIF
+
 	   ELSE
 	     IF ( npoints .EQ. unspecified_int4 ) THEN
 	       delta = cx_delta (orient,mods_cx)
@@ -1448,9 +1562,11 @@ C /units=months  is 1/12 of the length of the year
 
 * /T0 = date (or supply default)
 	iqual = qual_given( slash_T0 )
-        new_att_t0 = " "
+        new_att_t0 = ' '
+	IF (true_month .AND. buff2 .NE. ' ') iqual = 1
 	IF ( iqual .GT. 0 ) THEN
-	   CALL EQUAL_STRING( cmnd_buff(qual_start(iqual):qual_end(iqual)),
+	   IF (buff2 .EQ. ' ') 
+     .       CALL EQUAL_STRING( cmnd_buff(qual_start(iqual):qual_end(iqual)),
      .			      buff2, status )
 	   IF ( status .NE. ferr_ok ) RETURN
 	   CALL TM_BREAK_DATE( buff2, cal_id, i1,i2,i3,i4,i5,i6, 
@@ -1458,6 +1574,7 @@ C /units=months  is 1/12 of the length of the year
 	   IF ( buff2 .EQ. ' ' .OR. status .NE. ferr_ok ) GOTO 5540
            new_att_t0 = buff2
 	ELSE
+	   
 	   WRITE (buff2,3550) mon_names(1)
  3550      FORMAT ('15-', A3, '-1901')		! default
 	   IF (its_calendar ) THEN
@@ -1472,6 +1589,7 @@ C /units=months  is 1/12 of the length of the year
 	         GOTO 580
 	      ENDIF
 	   ENDIF
+
 	ENDIF
 
 * Combine new attribute units and/or time origin to express
@@ -1495,6 +1613,8 @@ C /units=months  is 1/12 of the length of the year
 	line_direction( iline ) = 'NA'
 	IF ( orient_t ) line_tunit(iline) = un_convert( iunit )
 
+
+
 * is it a formattable axis ?
 	IF ( orient .EQ. x_dim ) THEN
 	   line_direction( iline ) = 'XX'
@@ -1528,6 +1648,7 @@ C /units=months  is 1/12 of the length of the year
 	      bc_to_t0 = SECS_FROM_BC( line_t0(iline), cal_id, status)
 	      line_dim  (iline) = (start-end) / (line_tunit(iline)*delta) + 1.9999
 	      line_start(iline) = (-line_start(iline)-bc_to_t0)/line_tunit(iline)
+
 	   ENDIF
 	   IF ( qual_given(slash_T0).GT.0 ) line_direction(iline) = 'FI'
 
@@ -1545,14 +1666,15 @@ C /units=months  is 1/12 of the length of the year
 	   line_direction(iline) = 'TT'
 	ENDIF
 
-* ... coordinate pointer for next line to save
-* Bounds are stored as edges, so increase by N coordinates and N+1 edges
-
-* acm move this to before purge_mr_axis, which also resets next_line_mem_pos
-*     after it deletes old_line.
+* ... true-month calendar given without calendar date range, fill in
+*     start, count, direction.
 
-	IF (irreg .AND. .NOT.line_regular(iline))
-     .			next_line_mem_pos = frst_pt + 2*n+1
+	IF (true_month .AND. .NOT.its_calendar) THEN
+	    line_start(iline) = cx_lo_ww(orient,mods_cx) - delta/2
+	    line_direction(iline) = 'TI'
+	    line_dim(iline) = 1 + 
+     .       ( cx_hi_ww(orient,mods_cx) - cx_lo_ww(orient,mods_cx) )/ delta
+	ENDIF
 
 * automatic longitude modulo
 	axwwlen = TM_WW_AXLEN(iline)
@@ -1562,40 +1684,129 @@ C /units=months  is 1/12 of the length of the year
 	     IF (rmod_len .EQ. 0.0D0)  rmod_len = 360.D0
 	     new_att_modulo = .TRUE.
 	     new_att_modulo_len = rmod_len
-
+	  ELSE IF (.NOT.has_bounds .AND. .NOT.line_regular(iline)) THEN 
+	    CALL TM_ADJUST_BOUNDS(iline, 360.0, axwwlen, its_modulo)
+	     IF (its_modulo) THEN
+	        rmod_len = 360.D0
+	        new_att_modulo = .TRUE.
+	        new_att_modulo_len = rmod_len
+	     ENDIF   
 	  ENDIF
-*  automatic calendar modulo
-	ELSEIF (line_direction(iline) .EQ. 'TI' .OR.
-     .          line_direction(iline) .EQ. 'FI' ) THEN
+
+*  Calendar modulo
+	ELSEIF (.NOT.its_modulo .AND. 
+     .          (line_direction(iline) .EQ. 'TI' .OR.
+     .           line_direction(iline) .EQ. 'FI') ) THEN
 	  secsperyear = DBLE(cals_yeardays(cal_id)) * (24.D0 * 60.D0 * 60.D0)
 	  bc_to_t0 = SECS_FROM_BC( line_t0(iline), cal_id, status)
 	  CALL TM_WW_AX_1_N(iline, start, end)
 	  secs2start = bc_to_t0 + start*line_tunit(iline)
+	  
+* Set the conversion factor for true-month, months to days
+	   grid_line(t_dim, dgrid_buff) = iline
+	   CALL TM_MONTH_TIME_FACTOR (dgrid_buff, true_month, timefac)
+
+	  IF (true_month) secs2start = secs2start/ timefac
+
 	  IF ( (secs2start .LE. secsperyear)
      .	 .AND. (axwwlen*line_tunit(iline) .LE. secsperyear) ) THEN
 	     its_modulo = .TRUE.
 	     IF (rmod_len .EQ. 0.0D0)  rmod_len =
-     .				       secsperyear/line_tunit(iline)
+     .				       timefac* secsperyear/line_tunit(iline)
 	     new_att_modulo = .TRUE.
 	     new_att_modulo_len = rmod_len
+
+* Is this an axis where we added bounds?  If so they might be adjustable
+* to make the axis modulo
+
+           ELSEIF (.NOT.line_regular(iline) .AND. .NOT.bnds_or_edges) THEN  
+	      delta = end - start
+              IF ( (secs2start .LE.  2*secsperyear)
+     .	           .AND. (delta*line_tunit(iline) .LE. secsperyear) ) THEN
+	         CALL TM_ADJUST_BOUNDS(iline, 
+     .                        secsperyear/line_tunit(iline), axwwlen, okmod)
+	         IF (okmod) THEN
+		    its_modulo = .TRUE.
+	            rmod_len = axwwlen
+	            new_att_modulo = .TRUE.
+	            new_att_modulo_len = rmod_len
+		 ENDIF
+              ENDIF
 	  ENDIF
+
+	ENDIF
+
+* Ticket 2504: If the coordinates on an irregular axis lie within the modulo 
+* length but bounds that were automatically computed from coordinate midpoints 
+* make the axis too long, reset the bounds so the axis is the modulo length.
+* (may have been done for special cases above)
+
+	IF (its_modulo .AND. .NOT.bnds_or_edges .AND. rmod_len.GT.0.) THEN
+	   CALL TM_ADJUST_BOUNDS(iline, rmod_len, axwwlen, okmod)
+	   IF (.NOT.okmod) its_modulo = .FALSE.
 	ENDIF
+
 * set modulo and sanity check it
+
 	line_modulo( iline) = its_modulo
 	line_modulo_len( iline ) = rmod_len
 	IF (rmod_len .NE. 0.0D0) THEN
 	   IF (axwwlen .GT. rmod_len) THEN
              IF (TM_DFPEQ(axwwlen, rmod_len)) THEN
-	       line_modulo_len( iline ) = 0.0D0
+	       line_modulo_len( iline ) = 0.0
              ELSE
                GOTO 5525
 	     ENDIF
            ENDIF
 	ENDIF
 
+
+* If the user said /monthly and /modulo, store the modulo length in months
+
+	IF (true_month .AND. its_modulo) THEN
+	   axwwlen = TM_WW_AXLEN(iline)  ! months, make it an integer
+	   IF (INT(axwwlen+0.5) .LE. 12.) THEN
+	      rmod_len = DFLOAT(INT(axwwlen+0.5))
+	      axwwlen = rmod_len
+	   ENDIF
+	   line_modulo_len(iline) = rmod_len
+	ENDIF
+
 * Write a note when subspan modulo axis length within a grid cell of modulo length
 c	CALL TM_WARN_SUBSPAN (iline)
 
+
+* ... Was it a true-month axis (defined in the classic way without the /MONTHLY qualifier)?
+* 1/13/2017 ticket 2497, Back off this auto-detection of monthly axes for now.
+
+c	IF (.NOT. true_month .AND. irreg .AND. .NOT.line_modulo( iline)) THEN
+c           units = TM_UNIT_ID( line_units(iline) )
+c	   CALL TM_CHECK_MONTHLY_AXIS (line_mem(frst_pt), line_dim(iline), 
+c     .              cal_id, line_t0(iline), units, line_units(iline),
+c     .              start, delta, line_tunit(iline), true_month)
+c	   IF (true_month) THEN
+c	      line_regular(iline) = .TRUE.
+c	      line_start  (iline) = start !* line_tunit(iline)/ un_convert(pun_day)
+c	      line_delta  (iline) = delta
+c	      line_subsc1 (iline) = unspecified_int4
+c	      last_coord = line_start(iline) + DBLE(npts-1)*line_delta(iline)
+c	      firs_coord = start
+c	      line_unit_code (iline) = units
+c	      line_tunit  (iline) = un_convert(units)
+c	      its_edges = .FALSE.
+c	      irreg = .FALSE.
+c	   ENDIF
+c	ENDIF
+
+
+* ... coordinate pointer for next line to save
+* Bounds are stored as edges, so increase by N coordinates and N+1 edges
+
+* acm move this to before purge_mr_axis, which also resets next_line_mem_pos
+*     after it deletes old_line.
+
+	IF (irreg .AND. .NOT.line_regular(iline))
+     .			next_line_mem_pos = frst_pt + 2*n+1
 * check for redefinitions
 	IF ( dup_name ) THEN
 	   IF ( TM_LINE_MATCH( old_line, iline ) ) THEN
@@ -1656,7 +1867,9 @@ c	CALL TM_WARN_SUBSPAN (iline)
            attname = 'point_spacing'
            attype = NCCHAR
            attoutflag = 1
-           IF ( line_regular(iline) ) THEN
+	   its_reg = .NOT.irreg .AND. .NOT.true_month
+	   IF (true_month .AND. cal_name .EQ. '360_DAY') its_reg = .TRUE.
+           IF ( its_reg ) THEN
               attlen = 4
               CALL CD_PUT_NEW_ATTR (dset_to_add, varid, attname, 
      .        attype, attlen, attoutflag, 'even', dummy, status) 
@@ -1697,7 +1910,7 @@ c	CALL TM_WARN_SUBSPAN (iline)
 
 * Bounds on irregular axis output by default.
 
-           IF (irreg) THEN
+           IF (.NOT.its_reg) THEN
               attname = 'bounds'
               attype = NCCHAR
               attoutflag = 1
@@ -2078,7 +2291,7 @@ c	CALL TM_WARN_SUBSPAN (iline)
 * get the requested data somehow
 
         IF (arg_start(1) .LT. pos) arg_start(1) = pos
-	CALL GET_PROT_CMND_DATA ( memory, cx_last, ptype_native, status )
+	CALL GET_PROT_CMND_DATA (  cx_last, ptype_native, status )
         mr = is_mr(1)
 
         IF ( status .NE. ferr_ok ) THEN      ! 8/6/92
@@ -2153,13 +2366,13 @@ c	CALL TM_WARN_SUBSPAN (iline)
      .                               varid, status )
         IF (status .NE. ferr_ok) goto 5920
 
-        CALL ADD_ATTRIBUTE(  memory(1, mr_blk1(mr)), mr, 
+        CALL ADD_ATTRIBUTE(  memry(mr)%ptr, mr, 
      .         buff1, dset, attype_spec, attoutflag, new_att, status )
         IF (status .NE. ferr_ok) GOTO 6500
 
 * Change attribute value
         IF (.NOT. new_att) THEN
-           CALL EDIT_ATTRIBUTE(  memory(1, mr_blk1(mr)), mr, 
+           CALL EDIT_ATTRIBUTE(  memry(mr)%ptr, mr, 
      .               buff1, dset, attype_spec, def_att_quiet, status )
            IF (status .NE. ferr_ok) GOTO 6500
         ENDIF
@@ -2332,9 +2545,20 @@ c	CALL TM_WARN_SUBSPAN (iline)
            ENDIF
         ENDIF
 
+* Is there a /U  (ag_dim will be set to unspecified_int4)
+
+	IF (qual_given( slash_def_agg_u ) .GT. 0) THEN
+           IF (agg_dim .EQ. unspecified_int4) THEN
+              agg_dim = f_dim + 1
+           ELSE
+              GOTO 5510
+           ENDIF
+        ENDIF
+
 * default aggregation orientation
 	IF (agg_dim .EQ. unspecified_int4) agg_dim = t_dim
 
+
 * define data/hide
 	agg_hide = qual_given( slash_def_agg_hide ) .GT. 0
 
@@ -2374,8 +2598,10 @@ c	CALL TM_WARN_SUBSPAN (iline)
                  buff1 = 'TSERIES'
               ELSEIF (agg_dim.EQ.e_dim) THEN
                  buff1 = 'ENSEMBLE'
-              ELSE                   
+              ELSEIF (agg_dim.EQ.f_dim) THEN       
                  buff1 = 'FMRC'
+              ELSEIF (agg_dim.EQ.f_dim+1) THEN       
+                 buff1 = 'UNION'
               ENDIF
               buff3 = buff1    ! use dname as dpath, too
            ENDIF
@@ -2415,7 +2641,7 @@ c	CALL TM_WARN_SUBSPAN (iline)
            CALL ALL_1_ARG
 	   num_args = 1	 ! used by GET_CMND_DATA
 	   arg_start(1) = pos ! skip over "name ="
-	   CALL GET_CMND_DATA ( memory, cx_last, ptype_string, status )
+	   CALL GET_CMND_DATA (  cx_last, ptype_string, status )
 	   IF ( status .NE. ferr_ok ) RETURN
            IF ( num_uvars_in_cmnd .NE. 1 ) GOTO 6400
            cx = is_cx(1)
@@ -2434,11 +2660,16 @@ c	CALL TM_WARN_SUBSPAN (iline)
         IF (agg_dim .EQ. t_dim) THEN
            t_regular  = .FALSE.   ! ToDo /REGULART -- not yet implemented
            use_strict = .FALSE.   ! ToDo ?? T coordinate micro-adjustment ??
-           CALL INIT_T_AGGREGATE_DSET(memory(1, mr_blk1(mr)),
+           CALL INIT_T_AGGREGATE_DSET(memry(mr)%ptr,
      .                  nagfiles, have_expr, buff1, buff3, buff2, 
      .                  t_regular, use_strict, dset, status)
+        ELSEIF (agg_dim .EQ. f_dim+1) THEN
+	   agg_dim = unspecified_int4
+	   CALL INIT_U_AGGREGATE_DSET (memry(mr)%ptr,
+     .                  nagfiles, have_expr, buff1, buff3, buff2, dset,
+     .                  agg_quiet, agg_hide, agg_dim, status)
         ELSE
-	   CALL INIT_EF_AGGREGATE_DSET (memory(1, mr_blk1(mr)),
+	   CALL INIT_EF_AGGREGATE_DSET (memry(mr)%ptr,
      .                  nagfiles, have_expr, buff1, buff3, buff2, dset,
      .                  agg_quiet, agg_hide, agg_dim, status)
 
@@ -2527,7 +2758,7 @@ c ?? if nlab=0, use next avail slot?
  5505	CALL ERRMSG( ferr_invalid_command, status,
      .		'DEFINE AXIS/DEPTH needs /Z=lo:hi:del', *5000 )
  5510	CALL ERRMSG( ferr_invalid_command, status,
-     .		'Conflicting /X,/Y,/Z or /T axis orientations given',
+     .		'Conflicting /X,/Y,/Z/T/E or /F axis orientations given',
      .								*5000 )
  5520	CALL ERRMSG( ferr_grid_definition, status,
      .			'error in start,end,delta', *5000 )
@@ -2600,11 +2831,31 @@ c ?? if nlab=0, use next avail slot?
 5750	CALL ERRMSG( ferr_grid_definition, status,
      .   'BOUNDS specified do not correctly enclose coordinate points', 
      .   *5000 )
-
+5760	CALL ERRMSG( ferr_grid_definition, status,
+     .   'DEFINE AXIS/LIKE= Axis not found '//likename(:TM_LENSTR1(likename)),
+     .   *5000 )
+5770	CALL ERRMSG( ferr_grid_definition, status,
+     .   'DEFINE AXIS/MONTHLY specify /UNITS=month or omit /UNITS (MONTH is default)', 
+     .   *5000 )
+5780	CALL ERRMSG( ferr_grid_definition, status,
+     .   'DEFINE AXIS/MONTHLY True-month axis: /BOUNDS not allowed. Use /T=lo:hi:del', *5000 )
+5790	CALL ERRMSG( ferr_grid_definition, status,
+     .    'DEFINE AXIS/MONTHLY True-month axis: Definition /FROMDATA not allowed. '//
+     .    'Use /T=LO:HI:DEL', *5000 )
+5800	CALL ERRMSG( ferr_grid_definition, status,
+     .   'DEFINE AXIS/MONTHLY True-month axis: /NPOINTS not allowed. Use /T=lo:hi:del', *5000 )
+5810	CALL ERRMSG( ferr_grid_definition, status,
+     .   'DEFINE AXIS/MONTHLY True-month axis delta-t must be 1', *5000 )
+5820	CALL ERRMSG( ferr_grid_definition, status,
+     .   'DEFINE AXIS/MONTHLY True-month axis: needs /T=lo:hi:del', *5000 )
+5830	CALL ERRMSG( ferr_grid_definition, status,
+     .   'DEFINE AXIS/MONTHLY month boundaries cannot be day '//datestr(1:2)//
+     .   '. Day does not exist in all months.', *5000 )
+5840	CALL ERRMSG( ferr_grid_definition, status,
+     .   'DEFINE AXIS/MONTHLY must use calendar-time definition', *5000 )
 5900	CALL ERRMSG( ferr_invalid_command, status,
      .		'DEFINE what name.attribute?', *5000 )
 5920    slen = TM_LENSTR1(varname)
-
         IF (dset .GT. 0) THEN
            CALL ERRMSG( ferr_invalid_command, status,
      .		'variable or axis undefined or not in dataset '//
diff --git a/fer/xeq/xeq_frame.F b/fer/xeq/xeq_frame.F
index f7d79f2..6747cb3 100644
--- a/fer/xeq/xeq_frame.F
+++ b/fer/xeq/xeq_frame.F
@@ -192,7 +192,7 @@
         CALL TM_PARK_LAST_VERSION(filename(:flen), sts)
 
 * save that baby
-        CALL SAVE_FRAME(memory, filename(:flen), fformat, annovar,
+        CALL SAVE_FRAME(filename(:flen), fformat, annovar,
      .                  xinches, yinches, xpixels, ypixels, sts)
 
  5000   RETURN
diff --git a/fer/xeq/xeq_list.F b/fer/xeq/xeq_list.F
index e21f878..4588de2 100644
--- a/fer/xeq/xeq_list.F
+++ b/fer/xeq/xeq_list.F
@@ -1,4 +1,4 @@
-	SUBROUTINE XEQ_LIST( memory )
+	SUBROUTINE XEQ_LIST
 
 *
 *
@@ -150,6 +150,13 @@
 * V685 *acm*  6/13 Dont add SAVE/NOCOORDS
 * V690 *sh*   1/14 Automated 3-argument auxiliary (curvilinear) plotting
 * V693+ 11/14 *sh* renaming 'sigma' as 'layerz' throughout
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
+* V710 *acm*  1/17 Ticket 1480: When writing to netCDF, check whether the region on 
+*                  modulo axes is just one grid-cell longer than the axis length,e.g. 
+*                  if they gave a region of /X=0:360.  If so, write one grid-cell less 
+*                  data so the axis can still be a valid modulo axis.
+* v720 2/2017 *acm* Ticket 2513. If /RIGID write edges but do not write bounds or 
+*                  bounds attribute.
 
 	include 'tmap_dims.parm'
         include 'tmap_errors.parm'
@@ -165,7 +172,6 @@
         include 'xrisc.cmn'
 
 * calling argument declarations:
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * local variable declarations
 	LOGICAL		is_secure
@@ -174,17 +180,19 @@
      .			do_epic, do_cdf, do_unform, do_stream,
      .			do_comma_del, do_tab_del, do_dods, do_xml,
      .			permute, all_at_once, list_at_eof, head_enh,
-     .			clobber, quiet, have_outtype, curvi_axes(nferdims)
+     .			clobber, quiet, have_outtype, curvi_axes(nferdims), 
+     .			do_shrink
 
 	INTEGER		TM_LENSTR1, CX_DIM_LEN, STR_CASE_BLIND_COMPARE,
      .                  STR_UPCASE, GET_MAX_STRING_LEN,
      .			status, mr, cx, inext, ilist, wsize, vax_code,
      .			rlen, flen, reclen, i, cx1, qfile, idim,
-     .			ndim, wkblk, perm(7), mr_perm(max_intrp),
+     .			ndim, perm(7), mr_perm(max_intrp),
      .                  npermuted, recsofar, do_stream_phase, nvars,
      .                  edges_flag, keepax_flag, nn, slen, do_bounds,
      .			my_mr(max_intrp), my_cx(max_intrp), frame_bottom,
      .			nvars2list
+	INTEGER*8	i8_size
 
 	CHARACTER	AUTO_FILENAME*2048, filename*2048, raw_name*2048, 
      .			buff*2048, fstatus*8, faccess*12, fformatted*12,
@@ -222,13 +230,13 @@
 	   list_fmt_type = plist_default ! restore for next command
 	   num_uvars_in_cmnd = 0	 ! wipe out past memory of expressions
 	   CALL CDF_PREP_CACHE( cx_last, filename, nvars,
-     .			  memory, is_mr, is_cx, clobber, status )
+     .			   is_mr, is_cx, clobber, status )
 	   IF ( status .NE. ferr_ok ) RETURN
            edges_flag = 0
            do_bounds = 0
 	   keepax_flag = 0
 	   out_type = "DFLT"
-	   CALL CDF_LIST( memory, filename( 1:TM_LENSTR1(filename)), 
+	   CALL CDF_LIST(  filename( 1:TM_LENSTR1(filename)), 
      .                    .FALSE., 'N', nvars, is_mr, is_cx,
      .			   ' ', .TRUE., pcdf_mode_cache, clobber, 
      .                    edges_flag, do_bounds, keepax_flag, out_type,  
@@ -271,7 +279,11 @@
      .		( ferr_not_implemented, status,
      .			'cannot /APPEND with STREAM format', *4999)
 
-* /RIGID for netCDF ?
+* /RIGID for netCDF ?  
+* As of 2/2017, write bounds if /RIGID and irregular, rather than edges,
+* unless they say /EDGES. So bounds are now treated in the default way when
+* /RIGID is given.
+
         i = qual_given( slash_rigid )
         IF ( i .GT. 0 ) THEN
            cdf_recax = 'N'   ! no record axis
@@ -290,7 +302,6 @@
 * /EDGES for netCDF ?
         edges_flag = 0
         IF ( qual_given(slash_list_edges) .GT. 0) edges_flag = 1
-        IF ( qual_given( slash_rigid ) .GT. 0) edges_flag = 2 
 
 * /BOUNDS for netCDF ?
 	do_bounds = 0
@@ -306,17 +317,13 @@
              IF (qual_given( slash_list_edges ) .GT. 0)
      .            CALL WARN('Cannot have both /BOUNDS and /EDGES '//
      .           'Ignoring /EDGES')
-             IF (qual_given( slash_rigid ) .GT. 0)
-     .            CALL WARN('Cannot have both /BOUNDS and /RIGID '//
-     .           'Ignoring /RIGID')
-              cdf_recax = 'T'   ! "T" is record axis
               edges_flag = 0
            ENDIF
         ENDIF
 
 * get the requested data somehow
 * (leave the variables flagged as "in-use" 7/92)
-	CALL GET_PROT_CMND_DATA ( memory, cx_last, ptype_native, status )
+	CALL GET_PROT_CMND_DATA (  cx_last, ptype_native, status )
 	IF ( status .NE. ferr_ok ) THEN      ! 8/6/92
            list_fmt_type = plist_default ! restore for next command
 	   list_format_given = .FALSE.
@@ -331,7 +338,7 @@ c     .		 .AND. .NOT.do_comma_del
 	all_at_once  = do_multi.OR.do_epic.OR.do_cdf
 
 * permutation requested ?
-        DO 10 idim = 1, 7 ! 3/92 SUN port addition
+        DO 10 idim = 1, nferdims+1
  10     perm(idim) = idim
 	IF ( permute ) THEN
 * ... user-specified permutation
@@ -435,8 +442,10 @@ c     .		 .AND. .NOT.do_comma_del
 
 * Get any settings for netcdf-4 output
 
-        CALL NETCDF4_LIST_SETTINGS (status)
-        IF ( status .NE. ferr_ok ) GOTO 5000
+        IF (do_cdf) THEN
+	   CALL NETCDF4_LIST_SETTINGS (status)
+           IF ( status .NE. ferr_ok ) GOTO 5000
+	ENDIF
 
 * set up the output device
 	IF ( list_to_tty ) THEN
@@ -552,7 +561,7 @@ c     .		 .AND. .NOT.do_comma_del
 	         IF ( mr_type(my_mr(i)) .EQ. ptype_string ) THEN
 	            reclen = MAX(reclen,
      .			GET_MAX_STRING_LEN(my_cx(i), my_mr(i),
-     .					   memory(1,mr_blk1(my_mr(i))))+1 )
+     .					   memry(my_mr(i))%ptr)+1 )
 	         ELSE
 	            reclen = MAX(reclen,4)
 	         ENDIF
@@ -600,28 +609,34 @@ c     .		 .AND. .NOT.do_comma_del
      .             wsize = wsize * CX_DIM_LEN(idim,cx)
 	   ENDIF
 	ENDIF
-	CALL GET_WORK_SPC( wsize, wkblk, status )
+	i8_size = wsize
+	CALL GET_DYN_WORK_SPACE( i8_size, status )
 	IF ( status .NE. ferr_ok ) GOTO 1000
 
 * special handling of EPIC data - no permutations
 	IF ( do_epic ) THEN
 	   CALL EPIC_LIST( raw_name, my_mr, my_cx, 
-     .			   memory(1, wkblk), wsize, status )
+     .			   workmem(plegacy_work_buffer)%ptr, wsize, status )
 	   GOTO 1000
 	ENDIF
 
 * permute data to the desired output order
+
 	IF ( all_at_once ) THEN
 * ... if no axis order was specified determine the permutation
 c bug fix: see err540_write_order.jnl move inside loop:
+* ... Ticket 1480: When writing to netCDF, test the region 
+*     on modulo axes 
+
 c	   IF (.NOT.permute) CALL GET_CX_DIMS(cx,ndim, perm )
 	   DO 200 ilist = 1, nvars2list
 	      IF (.NOT.permute) CALL GET_CX_DIMS(my_cx(ilist),ndim,perm)
-	      CALL CREATE_PERMUTATION(	memory,
-     .					my_cx  (ilist),
+	      CALL SHRINK_FOR_MODULO (my_cx(ilist), my_mr(ilist), do_cdf,
+     .				      do_shrink)
+	      CALL CREATE_PERMUTATION(	my_cx  (ilist),
      .					my_mr  (ilist),
-     .					perm,
-     .					mr_perm(ilist), status )
+     .					perm, 
+     .					mr_perm(ilist), do_shrink, status )
 	      IF ( status .NE. ferr_ok ) GOTO 500
               npermuted = npermuted + 1
  200	   CONTINUE
@@ -639,7 +654,7 @@ c	   IF (.NOT.permute) CALL GET_CX_DIMS(cx,ndim, perm )
 	         perm(2) = i
 	      ENDIF
 	   ENDIF
-	   CALL CREATE_PERMUTATION(memory,cx,mr,perm,mr_perm,status)
+	   CALL CREATE_PERMUTATION(cx,mr,perm,mr_perm,do_cdf,status)
 	   IF ( status .NE. ferr_ok ) GOTO 500
            npermuted = npermuted + 1
 	ENDIF
@@ -655,27 +670,27 @@ c	   IF (.NOT.permute) CALL GET_CX_DIMS(cx,ndim, perm )
 *     .                          clobber, raw_name, status)
 
 	ELSEIF ( do_cdf ) THEN
-	   CALL CDF_LIST( memory, raw_name( 1:TM_LENSTR1(raw_name)), 
+	   CALL CDF_LIST(  raw_name( 1:TM_LENSTR1(raw_name)), 
      .                    list_at_eof, cdf_recax, nvars2list,
      .			  mr_perm, my_cx, buff, head_enh,
      .			  pcdf_mode_normal, clobber, edges_flag, do_bounds,
      .                    keepax_flag, out_type, quiet, status )
 
 	ELSEIF( all_at_once ) THEN
-	   CALL LIST_MULTI( memory, mr_perm, my_cx, heading, perm,
-     .			    wsize, memory(1, wkblk), status )
+	   CALL LIST_MULTI(  mr_perm, my_cx, heading, perm,
+     .			    wsize, workmem(plegacy_work_buffer)%ptr,status )
 	ELSE
 	   CALL NON_ARRAY_SUBSC( mr_perm, 1 )
            nn = mr_perm(1)
-	   CALL LIST_CMND_DATA( memory(1, mr_blk1(mr_perm(1))),
-     .                          nn, cx, memory(1, wkblk), 
+	   CALL LIST_CMND_DATA( memry(mr_perm(1))%ptr,
+     .                          nn, cx,  workmem(plegacy_work_buffer)%ptr, 
      .                          heading, head_enh, recsofar, perm, 
      .                          clobber, raw_name, status)
 	ENDIF
 
 * EXIT sequence
 * ... relinquish working space
- 500	CALL RELEASE_WORK_SPC
+ 500	CALL RELEASE_DYN_WORK_SPACE
 
 * ... close any special output device
 	IF ( normal_file ) CLOSE ( UNIT = list_lun, ERR = 5010 )
diff --git a/fer/xeq/xeq_load.F b/fer/xeq/xeq_load.F
index d7c5730..d625d0a 100644
--- a/fer/xeq/xeq_load.F
+++ b/fer/xeq/xeq_load.F
@@ -1,4 +1,4 @@
-	SUBROUTINE XEQ_LOAD( memory )
+	SUBROUTINE XEQ_LOAD
 
 *
 *
@@ -60,6 +60,7 @@
 * V312: 5/94 - array "memory" as a calling argument
 * V530: *sh* 9/00 - added initial data type support in get_cmnd_data 
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V702 2/17 *sh* keep track of LOAD/PERM memory usage
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -74,7 +75,6 @@
      .			slash_name = 16 )
 
 * calling argument declarations:
-	REAL	memory(*)
 
 * local variable declarations:
 	LOGICAL		EXPLICIT_UVAR, permanent, named, temp
@@ -90,7 +90,7 @@
      .		'/NAME= no longer supported - use DEFINE VARIABLE', *5000 )
 	
 * get the requested data somehow
-	CALL GET_CMND_DATA ( memory, cx_last, ptype_native, status )
+	CALL GET_CMND_DATA (  cx_last, ptype_native, status )
 	IF ( status .NE. ferr_ok ) GOTO 5000
 
 * set protections as indicated (check for already protected 8/92)
@@ -110,12 +110,12 @@
 	         next = mr_del_flink(mr)
 	         mr_del_flink(prev) = next
 	         mr_del_blink(next) = prev
-	         mr_del_flink( mr ) = unspecified_int4	! temp diag
-	         mr_del_blink( mr ) = unspecified_int4	! temp diag
+	         mr_del_flink( mr ) = unspecified_int4	! important 12/16
+	         mr_del_blink( mr ) = unspecified_int4	! important 12/16
+	         permanent_mem = permanent_mem + mr_size(mr)
               ENDIF
  400	   CONTINUE
 
-* LOAD/TEMPORARY - explicitly specified to reverse /PERMANENT
 	ELSEIF ( temp ) THEN
 	   DO 500 iload = 1, num_uvars_in_cmnd
 	      mr = is_mr( iload )
@@ -127,7 +127,9 @@
 	         mr_del_flink(mr) = last_head
 	         mr_del_flink(0)  = mr
 	         mr_del_blink(last_head) = mr
+	         permanent_mem = permanent_mem - mr_size(mr)
 	      ENDIF
+	      
  500	   CONTINUE
 
 	ENDIF
diff --git a/fer/xeq/xeq_plot.F b/fer/xeq/xeq_plot.F
index a30f2df..020668c 100644
--- a/fer/xeq/xeq_plot.F
+++ b/fer/xeq/xeq_plot.F
@@ -1,4 +1,4 @@
-	SUBROUTINE XEQ_PLOT( memory )
+	SUBROUTINE XEQ_PLOT
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -117,6 +117,9 @@
 * V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
 *                  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
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
+* V71  *acm* 2/17  More on ticket 2231. Initialize flag use_keys.
+* PyFr *kms*  4/17 Remove SAVE_FRAME for HDF format since no longer supported
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
@@ -143,7 +146,6 @@
         include 'CONT.INC'
 
 * calling argument declarations:
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
 	LOGICAL		TM_HAS_STRING, 
@@ -154,8 +156,7 @@
 	INTEGER		TM_LENSTR1, TM_LENSTR, STR_UPCASE, STR_SAME,
      .                  symbol, icolor, ipen, icolor1, ipen1, status,
      .			loc, limit, slen, thick, step_inc,
-     .			ax1_blks, ax1_start,
-     .			ax2_blks, ax2_start,
+     .			ax1_work, ax2_work,
      .			do_dash, s1, s2, it_start(4), it_end(4),
      .			nparm, dot_sym, num_it, i, iax(4), i1,
      .                  loch, locv, nvs, skipsym
@@ -171,8 +172,7 @@
 
 * set up the graphics environment and get the data
 	CALL START_PPLUS(.FALSE.)
-	CALL DISP_DATA_SET_UP( memory,
-     .		ax1_start, ax1_blks, ax2_start, ax2_blks, status )
+	CALL DISP_DATA_SET_UP(  ax1_work, ax2_work, status )
 	IF ( status .NE. ferr_ok ) GOTO 5100
 
         ncolors = mode_arg(pmode_linecolors,1)
@@ -367,6 +367,7 @@ CC       => Set values here instead.
 * ... /KEY[=title]  for control over labeling the multi-line legend
 
 	loc = qual_given( slash_plot_key )
+	use_keys = .TRUE.
 
 	IF ( loc .GT. 0) THEN
 	   CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
@@ -652,7 +653,7 @@ CC       => Set values here instead.
 
 * set up the axes and title and load the data into PPLUS
 
-	CALL PLOT_SET_UP   ( 	memory,
+	CALL PLOT_SET_UP   ( 	
      .				overlay,
      .				transpz,
      .				versus,
@@ -675,8 +676,8 @@ CC       => Set values here instead.
      .				is_mr,
      .				is_cx,
      .				num_uvars_in_cmnd,
-     .				memory( 1, ax1_start ),
-     .				memory( 1, ax2_start ),
+     .				workmem(ax1_work)%ptr,
+     .				workmem(ax2_work)%ptr,
      .				status )
 	IF ( status .NE. ferr_ok ) GOTO 5000
 	
@@ -778,12 +779,6 @@ c done in plot_set_up.
 * interrupt occurred during plot ?
 	IF ( ppl_interrupted ) GOTO 1000
 
-* capture the bit map ?
-	IF ( qual_given( slash_plot_frame ) .GT. 0 ) THEN
-	   CALL SAVE_FRAME( frame_file, "HDF", status )
-	   IF ( status .NE. ferr_ok ) GOTO 5000
-	ENDIF
-
 *  Save log axis state
 
 	IF (overlay) THEN
@@ -806,8 +801,8 @@ c done in plot_set_up.
 ! PLOT/ALONG does a hack to num_uvars_in_cmnd that can lead to a problem
 ! in GET_PROT_CMND_DATA if the same argument string is re-used in the next cmnd
  1000	IF (along) num_uvars_in_cmnd = 1
-	CALL FREE_MEMORY( ax2_start, ax2_blks )
- 	CALL FREE_MEMORY( ax1_start, ax2_blks )
+ 	CALL FREE_WS_DYNMEM( ax1_work )
+	CALL FREE_WS_DYNMEM( ax2_work )
 	CALL UNPROTECT_CMND_DATA			! 1/94
  5100	RETURN
 
diff --git a/fer/xeq/xeq_polygon.F b/fer/xeq/xeq_polygon.F
index d06682b..4d1e649 100644
--- a/fer/xeq/xeq_polygon.F
+++ b/fer/xeq/xeq_polygon.F
@@ -1,4 +1,4 @@
-	SUBROUTINE XEQ_POLYGON( memory )
+	SUBROUTINE XEQ_POLYGON
 
 *
 *
@@ -78,6 +78,8 @@
 * V697 *acm* 12/15 Fixes for bug 1237 move call of PPL_AXES_RESTORE back to end of plot routines
 * v697 *acm* 12/15 Ticket 2331, add flag changed_key to common, to restore the color key
 *                  style after a color plot and also after SHADE/SET; SHADE.
+* 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
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -105,7 +107,6 @@
 
 	
 * calling argument declarations:
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
 	LOGICAL     TM_HAS_STRING, no_range, do_key, spectrum, pattern,
@@ -115,8 +116,7 @@
 	INTEGER         sp, patt, TM_LENSTR1, TM_LENSTR, STR_UPCASE
 	INTEGER		symbol, icolor, ipen, status,
      .			loc, limit, slen, coord_ax,
-     .			ax1_blks, ax1_start,
-     .			ax2_blks, ax2_start,
+     .			ax1_work, ax2_work,
      .			s1, s2, it_start(4), it_end(4),
      .			nparm,  num_it, i, iax(4), i1, loch, locv
 	REAL		val, only_val, sym_size, add_lon
@@ -131,8 +131,7 @@
 * set up the graphics environment and get the data
 	CALL START_PPLUS(.FALSE.)
 
-	CALL DISP_DATA_SET_UP( memory,
-     .		ax1_start, ax1_blks, ax2_start, ax2_blks, status )
+	CALL DISP_DATA_SET_UP(  ax1_work, ax2_work, status )
 	IF ( status .NE. ferr_ok ) GOTO 5100
 
 * Initialize the lines buffer in PPL before setting up
@@ -338,7 +337,7 @@ CC       => Set values here instead.
 * set up the axes and title and load the data into PPLUS
 
  220	CONTINUE 
-	CALL POLYGON_SET_UP   ( memory,
+	CALL POLYGON_SET_UP   ( 
      .				overlay,
      .				transpz,
      .				coord_ax,
@@ -357,8 +356,8 @@ CC       => Set values here instead.
      .				do_mod_minus, 
      .				do_mod_plus,
      .				add_lon,
-     .				memory( 1, ax1_start ),
-     .				memory( 1, ax2_start ),
+     .				workmem(ax1_work)%ptr,
+     .				workmem(ax2_work)%ptr,
      .				status )
 	IF ( status .NE. ferr_ok ) GOTO 5000
 
@@ -530,12 +529,6 @@ C Reset pplus lines
 * interrupt occurred during plot ?
 	IF ( ppl_interrupted ) GOTO 1000
 
-* capture the bit map ?
-	IF ( qual_given( slash_shad_frame ) .GT. 0 ) THEN
-	   CALL SAVE_FRAME( frame_file, "HDF", status )
-	   IF ( status .NE. ferr_ok ) GOTO 5000
-	ENDIF
-
 *  Save log axis state
 
 	IF (overlay) THEN
@@ -547,8 +540,8 @@ C Reset pplus lines
 	ENDIF
 
 * release the memory used for axis buffers
- 1000	CALL FREE_MEMORY( ax2_start, ax2_blks )
- 	CALL FREE_MEMORY( ax1_start, ax2_blks )
+ 1000 	CALL FREE_WS_DYNMEM( ax1_work )
+	CALL FREE_WS_DYNMEM( ax2_work )
 	CALL UNPROTECT_CMND_DATA			! 1/94
  5100	RETURN
 
diff --git a/fer/xeq/xeq_set.F b/fer/xeq/xeq_set.F
index 2455b74..a654f10 100644
--- a/fer/xeq/xeq_set.F
+++ b/fer/xeq/xeq_set.F
@@ -1,4 +1,4 @@
-	SUBROUTINE XEQ_SET( memory, reconfig )
+	SUBROUTINE XEQ_SET
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -194,6 +194,15 @@
 *                  added to that dataset in the attribute structure.
 * V698  4/16 *acm* For ticket 2399: Apply MODE CALENDAR settings to F axes too
 * V7    5/16 *acm* See ticket 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'
+* V701 *acm*  7/12 Ticket 2455: On a SET AXIS/NAME=, save the original spelling and 
+*                  an up-cased spelling of the axis name, as is done with DEFINE AXIS.
+* V710  4/16 *acm* new TM_UNITS_CAL to account for calendar in units id
+* V702  3/17 *sh* added MODE FRUGAL
+*		  Fixed bug in error message for invalid SET LIST/OUT
+* V720 3/17 *acm* Fix ticket 2521; do not call TM_LEGAL_UNIX_NAME for path and 
+*                file name on SET REDIRECT.
+ 
 
 	include 'tmap_dims.parm'
 	include 'tmap_errors.parm'
@@ -236,13 +245,12 @@
 
       
 * calling argument declarations:
-	INTEGER	reconfig
-	REAL	memory( mem_blk_size, max_mem_blks )
+!	INTEGER	reconfig   ! removed for dynamic memory management 2/2017
 
 * local variable declarations:
 	INTEGER		REGION_NUMBER, VIEWPORT_NUMBER, GRID_FROM_NAME,
      .                  TM_GET_LINENUM, TM_LENSTR, TM_LENSTR1, 
-     .                  TM_UNIT_ID, TM_GET_CALENDAR_ID, 
+     .                  TM_UNIT_ID, TM_UNITS_CAL, TM_GET_CALENDAR_ID,
      .			FIND_DSET_NUMBER, STR_UPCASE, STR_SAME, 
      .                  equal_pos, colon_pos, dset_num, ich, status,
      .			tmap_status, mode, idim, iarg, item, lp, iv, 
@@ -255,6 +263,7 @@
      .                  dset, istat, cache_size, cache_nelems, 
      .                  cache_preemption, numpts, redir_file_lun, 
      .                  iline, iset, n, igrp
+	INTEGER*8	i8_val
         REAL*8          TM_WW_AXLEN, axwwlen, new_att_modulo_len
         REAL*8          delta, dlo, dhi, firstval, lastval
 	REAL		val_buf, cache_size_mb, v1
@@ -263,10 +272,10 @@
      .                  varname*512, attname*128, new_att_calendar*10, 
      .                  new_att_t0*128, new_att_units*128, buff3*512,
      .                  t0string*128, ustring*128, faccess*16, 
-     .                  fposition*16, fstatus*16, c1*1, typflag*10
+     .                  fposition*16, fstatus*16, c1*1, typflag*10  
 	LOGICAL		TM_LEGAL_UNIX_NAME, MATCH4, TM_DIGIT, 
      .                  TM_DIGIT_ONLY,
-     .                  TM_HAS_STRING, TM_LEGAL_NAME, MATCH_NAME,
+     .                  TM_HAS_STRING, TM_LEGAL_NAME, MATCH_NAME, TM_FPEQ,
      .                  NC_GET_ATTRIB, set_last, any_delta, dset_cdf,
      .			do_laser_movie, past_laser_movie, start_frame,
      .                  do_ez, tregular, its_changed, ok_cal,
@@ -286,7 +295,7 @@
 	LOGICAL is_secure
 
 * initialize
-	reconfig = 0   	! zero signals NO memory reconfigure
+!	reconfig = 0   	! zero signals NO memory reconfigure
 
 * select subcommand
 	GOTO ( 100,200,300,400,500,600,700,800,900,1000,
@@ -750,6 +759,9 @@ c *kob* 4/97
 	         ax_dec_pt(f_dim) = ax_dec_pt(t_dim)  
 	         ax_fmt(f_dim) = ax_fmt(t_dim) 
 
+              ELSEIF ( mode .EQ. pmode_desperate ) THEN
+	         CALL WARN("MODE DESPERATE is deprecated. Use MODE FRUGAL")
+
 	      ENDIF
 	      GOTO 820
 	   ENDIF
@@ -889,6 +901,23 @@ c *kob* 4/97
 	   ELSE
 	      val_buf = ABS(val_buf)  ! ABS to tolerate negatives
 	   ENDIF
+	   
+* Don't allow the modulo length be set longer than the axis length.
+
+	   IF (val_buf .NE. 0.0) THEN
+	      axwwlen = TM_WW_AXLEN(axis)
+
+	      IF (.NOT.TM_FPEQ(axwwlen, val_buf) .AND. 
+     .			   axwwlen .GT. val_buf) THEN
+                 arg = TM_FMT(val_buf, 8, 12, len)
+	         show_str = TM_FMT(axwwlen, 8, 12, slen)
+                 buff1 = 'illegal modulo value '//arg(:len) //
+     .             ' is less than axis length '//show_str(:slen)
+		 buff_len = TM_LENSTR1(buff1)
+	         GOTO 6220
+	      ENDIF
+	   ENDIF
+
 	   its_changed = .NOT.line_modulo(axis)
      .		    .OR.  val_buf .NE. line_modulo_len(axis)
            line_modulo( axis ) = .TRUE.
@@ -1045,7 +1074,7 @@ c *kob* 4/97
 * Replace the name in the linked-list structure.
 
           iset = pdset_coordvars  ! stored info on user-defined axes
-          CALL CD_GET_VAR_ID (iset, line_name(axis), varid, status )
+          CALL CD_GET_VAR_ID (iset, cmnd_buff(item_start(1):item_end(1)), varid, status )
 	  IF (varid .GT. 0) CALL CD_RENAME_VAR(iset, varid, buff1, status)
 
 	   DO 1240 iset = 1, maxdsets
@@ -1055,12 +1084,12 @@ c *kob* 4/97
  1240	   CONTINUE
 
 * Replace the name in Ferret's line storage.
+	   line_name_orig(axis) = buff1
+	   istat =  STR_UPCASE (buff1, buff1)
 	   line_name(axis) = buff1
 
         ENDIF
 
-
-
 *  /UNITS
 * Note we do not change line direction with a resetting of units; line
 * direction UD, DU, WE, SN stay as they were when they were input.
@@ -1085,15 +1114,10 @@ c *kob* 4/97
 
            units = TM_UNIT_ID( line_units(axis) )
 
-* Named calendar with unit=year gets length of year in that calendar.
+* Named calendar with unit=month or year gets length according to calendar's year length.
 
            cal_id = TM_GET_CALENDAR_ID (line_cal_name(axis))
-           IF (units .EQ. -6 .OR. units .EQ. -10) THEN
-              IF (cal_id .EQ. d360) units = -9
-              IF (cal_id .EQ. julian) units = -12
-              IF (cal_id .EQ. noleap) units = -11
-              IF (cal_id .EQ. all_leap) units = -8
-           ENDIF
+           units = TM_UNITS_CAL( units, cal_id, .FALSE. )
 
            line_unit_code(axis) = units
            IF  ( units.EQ.0 .AND. line_units(axis) .NE. ' ' ) THEN
@@ -1299,7 +1323,8 @@ c *kob* 4/97
                     IF (ds_grid_number(i) .EQ. igrd) THEN 
 		       is_nc = (ds_type(ds_var_setnum(i)).EQ.'CDF') .OR.
      .                         (ds_type(ds_var_setnum(i)).EQ.'ENS') .OR.
-     .                         (ds_type(ds_var_setnum(i)).EQ.'FCT')
+     .                         (ds_type(ds_var_setnum(i)).EQ.'FCT') .OR.
+     .                         (ds_type(ds_var_setnum(i)).EQ.'UNI')
                        IF (.NOT. is_nc)  
      .                   GOTO 6088
                     ENDIF
@@ -1381,8 +1406,8 @@ c *kob* 4/97
 * SET MEMORY/MWORDS=megawords
  1300	IF ( num_args .GT. 0 ) GOTO 5800
 	if (is_secure()) then
-	   call SPLIT_LIST(pttmode_help, err_lun,
-     1	        'This command is not allowed.', 0)
+	   CALL SPLIT_LIST(pttmode_help, err_lun,
+     1	        'This command is not allowed in secure mode.', 0)
 	   return
 	endif
         lp = qual_given( slash_set_memory_words )
@@ -1391,31 +1416,15 @@ c *kob* 4/97
      .			   val_buf, status )
            IF ( status .NE. ferr_ok ) RETURN
 	ELSE
-	   val_buf = 0
-	ENDIF
-	IF ( val_buf .GT. 0.0 ) THEN
-* for neatness make mem_blk_size always be a multiple of 100
-* If val_buf is small, make it the minimum size for the block size
-* When val_buf is large, the calculation can overflow.
-* Check for this...
-
-	   reconfig = INT(val_buf*1E6/(max_mem_blks*100))
-	   IF (reconfig .EQ. 0) reconfig = 1
-	   reconfig = reconfig * 100
-
-           IF (reconfig .LT. 0) THEN
-              reconfig = 0
-              CALL WARN('internal overflow expressing '//
-     .          cmnd_buff(qual_start(lp)+4:qual_end(lp))//
-     .		' Mwords as words. Restoring previous memory size.')
-           ENDIF
+	   val_buf = max_mem_allowed / 1E6    ! retain current size
 	ENDIF
-* clear the current contents of memory
-	DO 1310 i = 1,max_mr_avail
-	   IF ( mr_protected(i) .NE. mr_deleted ) CALL DELETE_VARIABLE(i)
- 1310	CONTINUE
-	CALL SPLIT_LIST(pttmode_ops, err_lun,
-     .			' Cached data cleared from memory', 0)
+	IF ( val_buf .LE. 0.0 ) GOTO 5805
+	i8_val = (val_buf*1.0000000001D0) * 1000000  ! int tuncation issues ...
+
+* reset the memory size
+	max_mem_allowed = i8_val 
+	peak_mem = 0
+	peak_essential_mem = 0
 
         RETURN
 
@@ -1593,7 +1602,7 @@ c *kob* 4/97
         IF (arg_start(1) .LT. pos) arg_start(1) = pos
         IF ( (iflag .EQ. 1 .AND. arg_end(1) .LT. len_cmnd) .OR. 
      .       (isetout .EQ. 0) ) THEN
-           CALL GET_PROT_CMND_DATA ( memory, cx_last, ptype_native, 
+           CALL GET_PROT_CMND_DATA (  cx_last, ptype_native, 
      .              status )
            IF ( status .NE. ferr_ok ) THEN      ! 8/6/92
               list_fmt_type = plist_default ! restore for next command
@@ -1663,7 +1672,7 @@ c *kob* 4/97
         IF ( (iflag .EQ. 1 .AND. arg_end(1) .LT. len_cmnd) .OR.
      .       (isetout .EQ. 0) ) THEN 
            mr = is_mr( 1 )
-           CALL EDIT_ATTRIBUTE(  memory(1, mr_blk1(mr)), mr, 
+           CALL EDIT_ATTRIBUTE(  memry(mr)%ptr, mr, 
      .               buff1, dset_num, attype_spec, set_att_quiet, status )
   
 ! errmsg already called in edit_attribute so just exit
@@ -1870,10 +1879,13 @@ c *kob* 4/97
               CALL ERRMSG( ferr_invalid_command, status,
      .                     'SET REDIRECT /FILE= what name?', *5000 )
            ENDIF
-           IF ( .NOT. TM_LEGAL_UNIX_NAME(title) ) THEN
-              CALL ERRMSG( ferr_invalid_command, status, 
-     .            'Illegal file name: ' // title, *5000 )
-           ENDIF
+
+c This check is not made for other file specifications e.g. writing data or graphics
+c files, or opening datasets. (ticket 2521).
+c           IF ( .NOT. TM_LEGAL_UNIX_NAME(title) ) THEN
+c              CALL ERRMSG( ferr_invalid_command, status, 
+c     .            'Illegal file name: ' // title, *5000 )
+c           ENDIF
 *
 *          Open or create the file
            INQUIRE( FILE = title, EXIST = fexist )
@@ -1982,7 +1994,7 @@ c *kob* 4/97
 
 	IF (num_items .EQ. 0) THEN 
 	   igroup = fnt_all
-	   CALL SET_PYTEXT_GROUP (fnt_all, buff1, status)
+	   CALL SET_PYTEXT_GROUP (igroup, buff1, status)
 
 	ELSE
 
@@ -2068,6 +2080,9 @@ c *kob* 4/97
  5800	CALL ERRMSG( ferr_syntax, status,
      .		     'To reconfigure use SET MEMORY/SIZE=megawords'
      .		     //pCR//cmnd_buff(:len_cmnd), *5000 )
+ 5805	CALL ERRMSG( ferr_invalid_command, status,
+     .		     'Negative SET MEMORY/SIZE= value: '
+     .		     //pCR//cmnd_buff(item_start(1):item_end(1)), *5000)
  5810	CALL ERRMSG( ferr_invalid_command, status,
      .		     'SET MODE REMOTE_X requires a node name argument',
      .			*5000 )
@@ -2089,6 +2104,9 @@ c *kob* 4/97
  6210	CALL ERRMSG( ferr_invalid_command, status,
      .		 'unknown axis: '//cmnd_buff(item_start(1):item_end(1)),
      .               *5000 )
+ 6220	CALL ERRMSG( ferr_invalid_command, status,
+     .		     buff1(:buff_len)//pCR//cmnd_buff(:len_cmnd),
+     .               *5000 )
  6310	CALL ERRMSG( ferr_invalid_command, status,
      .	         'SET AXIS/CALENDAR=what? ', 
      .               *5000 )
@@ -2181,8 +2199,8 @@ c *kob* 4/97
  6800   CALL ERRMSG( ferr_erreq, status, title, *5000 )
  6810	CALL ERRMSG( ferr_invalid_command, status,
      .		'Unrecognized option/'//
-     .          cmnd_buff(qual_start(i):qual_end(i)) //pCR//
-     .		' Valid options are /OUTTYPE=DOUBLE,FLOAT,INT,SHORT,or BYTE', *5000 )
+     .          cmnd_buff(qual_start(lp):qual_end(lp)) //pCR//
+     .          ' Valid options are /OUTTYPE=DOUBLE,FLOAT,INT,SHORT,or BYTE', *5000 )
      
  6900	CALL ERRMSG( ferr_unknown_arg, status,
      .'Can SET AXIS/OUTTYPE=INPUT, DOUBLE, FLOAT, INT, SHORT, BYTE, or NONE',
diff --git a/fer/xeq/xeq_shade.F b/fer/xeq/xeq_shade.F
index 6dbaae5..44d3e4b 100644
--- a/fer/xeq/xeq_shade.F
+++ b/fer/xeq/xeq_shade.F
@@ -1,4 +1,4 @@
- 	SUBROUTINE XEQ_SHADE( memory )
+ 	SUBROUTINE XEQ_SHADE
 
 *
 *
@@ -114,6 +114,8 @@
 * V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
 *                  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
+* 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
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -132,7 +134,6 @@
 
 
 * calling argument declarations:
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
 	LOGICAL	  TM_HAS_STRING, 
@@ -141,8 +142,7 @@
      .		  is_logh, is_logv, is_shade, use_cell, inc_grid
 
 	INTEGER	  TM_LENSTR1, TM_LENSTR, STR_UPCASE, status, slen, sp, patt,
-     .		  ax1_blks, ax1_start,
-     .		  ax2_blks, ax2_start, i, nparm, num_it, 
+     .		  ax1_work, ax2_work, i, nparm, num_it, 
      .		  loc, s1, s2, it_start(4), it_end(4), iax(4),
      .            density, i1, loch, locv, grid, mvx
 	REAL	  only_val, aspect, val, vbuf
@@ -159,8 +159,7 @@
 
 * set up the graphics environment and get the data
 	CALL START_PPLUS(.FALSE.)
-	CALL DISP_DATA_SET_UP( memory,
-     .		ax1_start, ax1_blks, ax2_start, ax2_blks, status )
+	CALL DISP_DATA_SET_UP(  ax1_work, ax2_work, status )
 	IF ( status .NE. ferr_ok ) GOTO 5100
 
 * initialize
@@ -251,7 +250,7 @@
 
 * set up the axes and title and load the data into PPLUS
 	inc_grid = set_up
-	CALL DISP_SET_UP   (    memory,
+	CALL DISP_SET_UP   (    
      .				not_vector,
      .				is_shade,
      .				use_cell,
@@ -268,8 +267,8 @@
      .				num_uvars_in_cmnd,
      .				is_cx,
      .				is_uvar,
-     .				memory( 1, ax1_start ),
-     .				memory( 1, ax2_start ),
+     .				workmem(ax1_work)%ptr,
+     .				workmem(ax2_work)%ptr,
      .				-1, 			! auto pen select,
      .				inc_grid,
      .				status )
@@ -506,19 +505,12 @@ c done in disp_set_up. If mode_nodata_lab is false then leave this off.
 * interrupt occurred during plot ?
 	IF ( ppl_interrupted ) GOTO 1000
 
-* capture the bit map ? Well, OK...
-	   IF ( qual_given( slash_shad_frame ) .GT. 0 ) THEN
-	      CALL SAVE_FRAME( frame_file, "HDF", status )
-	      IF ( status .NE. ferr_ok ) GOTO 5000
-	   ENDIF
-
-
 * release the memory used for axis buffers
  1000 	CONTINUE
  
 
-	CALL FREE_MEMORY( ax2_start, ax2_blks )
- 	CALL FREE_MEMORY( ax1_start, ax2_blks )
+ 	CALL FREE_WS_DYNMEM( ax1_work )
+	CALL FREE_WS_DYNMEM( ax2_work )
 	CALL UNPROTECT_CMND_DATA			! 1/94
  5100	RETURN
 
diff --git a/fer/xeq/xeq_show.F b/fer/xeq/xeq_show.F
index f89459a..f57e9c0 100644
--- a/fer/xeq/xeq_show.F
+++ b/fer/xeq/xeq_show.F
@@ -1,4 +1,4 @@
-    	SUBROUTINE XEQ_SHOW( memory )
+    	SUBROUTINE XEQ_SHOW
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -174,7 +174,7 @@
 * v675  *acm  4/12 Fix ticket 1934, simpler SHOW ATTRIBUTE syntax.
 * V6.8  acm  6/12 Implement mode_6d_lab, set by default. If canceled, the 
 *                 various SHOW commnands will not list info for E,F dimensions.
-*                 SHOW with 6D variable and mode_6d_lab cancelled, is an error.
+*                 SHOW with 6D variable and mode_6d_lab canceled, is an error.
 * V683 *acm*  8/12 On SHOW LIST, show the output-type setting from SET LIST/OUTTYPE=  
 * V685 *acm*  2/13 LET/REMOTE changes: show internally-defined climatological axes
 *                  in xml output.
@@ -205,6 +205,10 @@
 * V698  3/16 *acm* Changes for ticket 2078: improved SHOW COMMANDS
 * V698  4/16 *acm* For ticket 2399: Apply MODE CALENDAR settings to F axes too
 * V7    5/16 *acm* See ticket 2352. For LET/D variables look for info under that dataset
+* V701 *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 
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management
+* V720 3/17 *acm* Ticket 2132, attribute of user-defined variable, do not try to show dataset info
 
         IMPLICIT NONE
 
@@ -243,6 +247,7 @@
 	LOGICAL	    brief
 	INTEGER	    len_show_str,
      .		    slash_mem_free,
+     .		    slash_mem_diag,
      .		    slash_mem_temp,
      .		    slash_mem_perm,
      .		    slash_brief,
@@ -263,6 +268,7 @@
      .              
 	PARAMETER ( len_show_str = 2048,		! length of output line buffer
      .		    brief	 = .TRUE.,
+     .		    slash_mem_diag = 1 + 1,
      .		    slash_mem_temp = 1 + 2,
      .		    slash_mem_perm = 1 + 3,
      .		    slash_mem_free = 1 + 4,
@@ -283,7 +289,6 @@
      .		    slash_attr_output = 1 + 2)
 
 * calling argument declarations:
-	REAL memory( mem_blk_size, max_mem_blks )
 
 * local variable declarations:
 	LOGICAL	MATCH4, MATCH_TEMPLATE, IS_TEMPLATE, TM_HAS_STRING,
@@ -295,11 +300,11 @@
 	INTEGER TM_LENSTR1, TM_LENSTR, UVAR_NUMBER, STR_UPCASE,
      .		REGION_NUMBER, GRID_FROM_NAME, FIND_DSET_NUMBER,
      .		EFCN_MATCH_TEMPLATE, TM_GET_LINENUM, STR_SAME, TM_GET_GRIDNUM,
-     .		category, mods_cx, v1_blk1, v1_nblks, grid, cx,
+     .		category, mods_cx, grid, cx,
      .		status, iqual, mode, iset, i, icmnd, isub, n,
      .		len, len0, iuvar, ivar, dset, line, ivp, i1, i2,
      .		rqst_dset, tmp_grid, num_predefined_axes, 
-     .          flen, wsize, wkblk, len_test, len_mchars, outlist_file,
+     .          flen, wsize, len_test, len_mchars, outlist_file,
      .          j, num_indices, varid, attlen, maxlen, attype,
      .          vtype, nvdims, vdims(8), nvatts, iatt, dset_last,
      .          llen, loc, cat, var, attoutflag, all_outflag, dot, brkt,
@@ -310,9 +315,11 @@
      .          base_cx, base_isp, grid_blocks, lensub, len_msubs
         INTEGER saved_num_indices, saved_index_list(max_uvar),
      .                             arr_buff(max_uvar)
+	INTEGER aux_cat(nferdims), aux_var(nferdims)  ! get info from LIST 
+
 	REAL	xtemp, ytemp, attvals(100), cache_mb, cache_n, cache_p, rsize,
      .		v1, v2, v3
-	CHARACTER EXPR_NAME*8, TM_FMT*12, VAR_CODE*128,
+	CHARACTER EXPR_NAME*8, TM_FMT*12, VAR_CODE*128, ALG_TRANS_CODE*3,
      .		default*10, show_str*2048, arg*128, name*128, argsym*120
 	CHARACTER	varatt*641, varname*512, attname*128,
      .			efname*40, upname*40, aname*128, outstring*2048,
@@ -729,7 +736,7 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
 	   IF ( mode_state( mode, 1 ) ) THEN
 	      show_str(24:) = 'SET'
 	   ELSE
-	      show_str(21:) = 'CANCELLED'
+	      show_str(21:) = 'CANCELED'
 	   ENDIF
 	   IF ( mode .EQ. pmode_time_lab ) THEN
 	      show_str(36:) = date_labels( ABS(ax_dec_pt(t_dim)) )
@@ -888,28 +895,37 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
      .			              cat, var, mods_cx, status )
                  IF (cat .EQ. cat_user_var) THEN
 * ... trigger grid-getting, which also gets layerz associations
-	           grid = GRID_FROM_NAME
+
+                    grid = GRID_FROM_NAME
      .                    (cmnd_buff(item_start(i1):item_end(i1)),
      .			  cx_last, status )
-                   IF (uvar_aux_stat(var, z_dim).EQ.paux_stat_conflict) THEN
-                      show_str = '   Components in the definition of ' // 
-     .                  varname(:len) //
-     .                  ' have conflicting LAYERZ references'
-                   ELSEIF (uvar_aux_stat(var,z_dim).EQ.paux_stat_passed
-     .                .OR. uvar_aux_stat(var,z_dim).EQ.paux_stat_needed) THEN
-                      risc_buff = VAR_CODE(uvar_aux_cat(var,z_dim,dset),
-     .                                     uvar_aux_var(var,z_dim,dset))
-                      attlen = TM_LENSTR1(risc_buff)
-                      show_str = '  ' // risc_buff(:attlen) //
-     .                  ' holds the vertical (layerz) coordinates of ' //
-     .                  varname(:len)
-                   ELSEIF (uvar_aux_stat(var,z_dim).EQ.paux_stat_used) THEN
-                      show_str = '  The definition of ' // 
-     .                  varname(:len) //
-     .                  ' contains explicit regrids of'//
-     .                  ' its LAYERZ coordinates'
-                   ENDIF 
-                 ENDIF
+
+c                    CALL GET_SAVED_UVAR_AUX_INFO(var, dset,
+c     .				           aux_cat, aux_var, status)
+c
+c                    IF (status .EQ. ferr_ok) THEN
+c		       IF (uvar_aux_stat(var, z_dim).EQ.paux_stat_conflict) THEN
+c		          show_str = '   Components in the definition of ' // 
+c     .		          varname(:len) //
+c     .		           ' have conflicting LAYERZ references'
+c		       ELSEIF (uvar_aux_stat(var,z_dim).EQ.paux_stat_passed
+c     .		          .OR. uvar_aux_stat(var,z_dim).EQ.paux_stat_needed) THEN
+c
+c		          risc_buff = VAR_CODE(aux_cat(idim), aux_var(idim))
+c		          attlen = TM_LENSTR1(risc_buff)
+c		          show_str = '  ' // risc_buff(:attlen) //
+c     .		           ' holds the vertical (layerz) coordinates of ' //
+c     .		            varname(:len)
+c		       ELSEIF (uvar_aux_stat(var,z_dim).EQ.paux_stat_used) THEN
+c		          show_str = '  The definition of ' // 
+c     .                            varname(:len) //
+c     .                     ' contains explicit regrids of'//
+c     .                     ' its LAYERZ coordinates'
+c		       ENDIF 
+c                    ELSE ! status from GET_SAVED_UVAR_AUX_INFO
+c		       PRINT *, 'ERROR getting saved uvar_aux info !!!!!'
+c                    ENDIF ! status from GET_SAVED_UVAR_AUX_INFO
+                 ENDIF   ! is a uvar
               ELSE
 * ... show the explicit __layerz_ref_ attribute value
                 show_str = '  ' // risc_buff(:attlen) //
@@ -934,24 +950,24 @@ c     .           (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
 	   IF (status .NE. ferr_ok ) GOTO 5000
 	ENDIF
 
-* ... SHOW VARIABLES/DIAGNOSTIC
-        IF ( (slash_all .AND. .NOT.sho_tree)
-     .  .OR. qual_given(slash_show_var_diag) .GT. 0 ) THEN
-	   IF ( num_args .GT. 0 ) THEN
-	      arg = cmnd_buff(arg_start(1):arg_end(1))
-	   ELSE
-	      arg = unspecified_name4
-	   ENDIF
-	   rsize = FLOAT(max_mrs)
-	   
-* COMPUTE # BLOCKS NEEDED
-	   grid_blocks = ( INT(rsize) + mem_blk_size - 1 ) / mem_blk_size
-
-	   CALL GET_MEMORY( INT(rsize), grid_blocks, v1_blk1, v1_nblks, status )
-	   IF ( status .NE. ferr_ok ) GOTO 5000
-c	   CALL SHOW_DIAG_VARS( arg, memory(1,v1_blk1) )
-	   CALL FREE_MEMORY( v1_blk1, v1_nblks )
-	ENDIF
+!* ... SHOW VARIABLES/DIAGNOSTIC
+!        IF ( (slash_all .AND. .NOT.sho_tree)
+!     .  .OR. qual_given(slash_show_var_diag) .GT. 0 ) THEN
+!	   IF ( num_args .GT. 0 ) THEN
+!	      arg = cmnd_buff(arg_start(1):arg_end(1))
+!	   ELSE
+!	      arg = unspecified_name4
+!	   ENDIF
+!	   rsize = FLOAT(max_mrs)
+!	   
+!* COMPUTE # BLOCKS NEEDED
+!	   grid_blocks = ( INT(rsize) + mem_blk_size - 1 ) / mem_blk_size
+!
+!	   CALL GET_MEMORY( INT(rsize), grid_blocks, v1_blk1, v1_nblks, status )
+!	   IF ( status .NE. ferr_ok ) GOTO 5000
+!c	   CALL SHOW_DIAG_VARS( arg, memory(1,v1_blk1) )
+!	   CALL FREE_MEMORY( v1_blk1, v1_nblks )
+!	ENDIF
 
 * ... SHOW VARIABLE/TREE [expr]
         IF ( sho_tree ) THEN 
@@ -992,7 +1008,7 @@ c	   CALL SHOW_DIAG_VARS( arg, memory(1,v1_blk1) )
  1007         saved_index_list(i) = deleted_list_result(i)
               DO 1008 i = 1, saved_num_indices
                  CALL CRAWL_DEPENDENCIES
-     .                          ( memory,
+     .                          ( 
      .                          uvar_name_code(saved_index_list(i)), 
      .                          base_cx, status )
                  IF (status .NE. ferr_ok) GOTO 5050
@@ -1001,12 +1017,12 @@ c	   CALL SHOW_DIAG_VARS( arg, memory(1,v1_blk1) )
 *       SHOW VAR/TREE  expr1, expr2, ...
 *  ... multiplicity of items is handled by BREAK_UP_EXPR in CRAWL_DEPENDENCIES
               CALL CRAWL_DEPENDENCIES
-     .                   ( memory,
+     .                   ( 
      .                     cmnd_buff(item_start(1):item_end(num_items)), 
      .                     base_cx, status )
               IF (status .NE. ferr_ok) GOTO 5050
            ENDIF
-           CALL DISPLAY_DEPENDENCY( memory(1,dependency_block1) )
+           CALL DISPLAY_DEPENDENCY( workmem(plegacy_work_buffer)%ptr )
  1010      CALL EXIT_DEPENDENCY_MODE
             IF (sho_file .GT. 0) CLOSE( UNIT = show_lun, ERR = 5000 )
            RETURN
@@ -1363,21 +1379,46 @@ c	   CALL SHOW_DIAG_VARS( arg, memory(1,v1_blk1) )
  1199	IF ( limited_show ) RETURN
 
 * SHOW MEMORY
- 1200   show_str = TM_FMT( FLOAT(mem_blk_size) * 
-     .                     FLOAT(max_mem_blks) / 1.E6, 3, 12, len)
-     
-#ifdef double_p
-	WRITE (risc_buff, *)
-     .	   'Current size of FERRET memory cache: '
-     .		//show_str(:len)//' MegaWords  (1 word = 8 bytes)'
-#else
-	WRITE (risc_buff, *)
-     .	   'Current size of FERRET memory cache: '
-     .		//show_str(:len)//' MegaWords  (1 word = 4 bytes)'
-#endif
+ 1200   IF ( qual_given(slash_mem_diag) .GT. 0 ) THEN
+* ... SHOW MEMORY/DIAGNOSTIC
+           IF (nsplits .EQ. 0) THEN
+	      CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .             '    No split/gather occurred in the last evaluation', 0)
+           ELSE
+	      CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .             '    Last gather', 0)
+	      CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .             '        Variable    Axis   Xform     '
+     .             //'Chunk    Repeated', 0)
+              DO i = 1, nsplits
+                 name = VAR_CODE(split_cat(i), split_var(i))
+                 WRITE (risc_buff, 4201)
+     .                          name,
+     .                          ww_dim_name(split_axis(i)),
+     .                          ALG_TRANS_CODE(split_trans(i)),
+     .                          split_frag(i),
+     .                          split_repeats(i)
+	         CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
+
+                 IF (i .EQ. max_splits) THEN
+                    CALL SPLIT_LIST(pttmode_explct, show_lun,
+     .                      " ... and others", 0)
+                    EXIT
+                 ENDIF
+              ENDDO
+           ENDIF
+* ... run the memory diagnostic as part of /DIAGNOSTIC
+	   CALL CHECK_MEMORY( show_lun )
+        ENDIF
+ 4201   FORMAT(8x,A15,A1,A8,I10,I12)
+
+        CALL SHOW_MEM_USAGE_LINE('SET MEMORY/SIZE', max_mem_allowed)
+        CALL SHOW_MEM_USAGE_LINE('Peak demand', peak_essential_mem)
+        CALL SHOW_MEM_USAGE_LINE('Current cache', total_mem)
+        IF (permanent_mem .NE. 0 ) THEN
+           CALL SHOW_MEM_USAGE_LINE('Permanent', permanent_mem)
+        ENDIF
 
-	CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
-	risc_buff = ' '
 	IF ( qual_given( slash_mem_free ) .GT. 0 ) THEN
 	   CALL CHECK_MEMORY( show_lun )
 	ELSEIF( slash_all
@@ -1943,8 +1984,9 @@ c	   CALL SHOW_DIAG_VARS( arg, memory(1,v1_blk1) )
      .                              all_outflag, status)
 
 * Write header line
+
               IF (.NOT. sxml) THEN
-                 IF (dset .NE. dset_last ) THEN
+                 IF (dset.NE.dset_last .AND. dset.GT.pdset_irrelevant) THEN
                     llen = TM_LENSTR1(ds_des_name(dset))
                     WRITE (risc_buff, 4800) ds_des_name(dset)(:llen)
                     CALL SPLIT_LIST(pttmode_explct, show_lun, 
@@ -2189,7 +2231,7 @@ c* ... Font
 
 
 * error exit
- 5050   CALL RELEASE_WORK_SPC
+ 5050   CALL RELEASE_DYN_WORK_SPACE
  5000	RETURN
  5071	name = cmnd_buff(arg_start(1):arg_end(1))
 	CALL ERRMSG( ferr_unknown_data_set, status,
diff --git a/fer/xeq/xeq_spawn.F b/fer/xeq/xeq_spawn.F
index 7a5c39d..45e4586 100644
--- a/fer/xeq/xeq_spawn.F
+++ b/fer/xeq/xeq_spawn.F
@@ -52,15 +52,20 @@
 *                  commands via SPLIT_LIST to std error rather than std out.
 *       *acm* 3/12 cleanup ifdefs and unnecessary include files
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+*    *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)
 
 	include 'tmap_dims.parm'
 	include 'ferret.parm'
+	include 'errmsg.parm'
 	include 'xprog_state.cmn'
 	include 'xplot_state.cmn'
 
 	LOGICAL IS_SECURE
+	INTEGER	status, slen
 
-	CALl ALL_1_ARG
+	CALL ALL_1_ARG
 	IF ( num_args .GT. 0 ) THEN
 	   if (IS_SECURE()) then
 	      call SPLIT_LIST(pttmode_help, err_lun,
@@ -70,7 +75,15 @@
 *             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)) )
+	      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
 	ELSE
 * user can get choice of shells with "SPAWN csh", or whatever.
@@ -81,7 +94,21 @@
      .    	//'and "exit" to return', 0)
 	ENDIF
 
+5000	CONTINUE
 	RETURN
 
+
+
+* The return is the return flag from the command, which might be non-zero
+* if they look for a file that's non-existent. 
+* (Should this really be an ERROR!?  I'm thinking not) 
+*   sp rm nothing.dat >> returns 256. 
+*   sp ls nofile.dat  >> returns 512
+*   sp cat file.dat | grep "this text not in the file"  >> returns 256
+*   sp notAcommand >> returns 32512
+
+!5100	CALL ERRMSG(ferr_sys_return, status, 
+!     .            'SPAWN '//cmnd_buff(arg_start(1):arg_end(1)), *5000)
+
 	END
 
diff --git a/fer/xeq/xeq_stat.F b/fer/xeq/xeq_stat.F
index e7f8dc3..afd2207 100644
--- a/fer/xeq/xeq_stat.F
+++ b/fer/xeq/xeq_stat.F
@@ -1,4 +1,4 @@
-	SUBROUTINE XEQ_STAT( memory )
+	SUBROUTINE XEQ_STAT
 
 *
 *
@@ -49,6 +49,7 @@
 * V420	 2/7/96  - added STAT/BRIEF
 * V530: *sh* 9/00 - added initial data type support in get_cmnd_data 
 *       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V720 *acm*  3/17 Ticket 2512: Add STAT/PRECICISION=
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -58,17 +59,28 @@
 	include 'xprog_state.cmn'
 
 * calling argument declarations:
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * local variable declarations:
 	LOGICAL	full
-	INTEGER	mv, cx, istat, status
+	INTEGER	mv, cx, istat, lp, stat_digits, status
+	REAL	value
 	
 * decode the qualifiers
 	full = qual_given( slash_stat_brief ) .EQ. 0
 
+* determine precision for outputting values
+* First, use STAT/PREC= setting.
+	stat_digits = 0
+	lp = qual_given( slash_stat_precision ) 
+	IF ( lp .GT. 0 ) THEN
+	   CALL EQUAL_VAL( cmnd_buff(qual_start(lp):qual_end(lp)),
+     .                     value, status )
+           IF ( status .NE. ferr_ok ) GOTO 5000
+	   stat_digits = MAX(1.,MIN(value, 16.))	! 1 to 16	   
+	ENDIF
+
 * get the requested data somehow
-	CALL GET_CMND_DATA ( memory, cx_last, ptype_native, status )
+	CALL GET_CMND_DATA (  cx_last, ptype_native, status )
 	IF ( status .NE. ferr_ok ) GOTO 5000
 
 * compute and display the results
@@ -76,8 +88,8 @@
 	   mv = is_mr( istat )
 	   cx = is_cx( istat )
 	   CALL NON_ARRAY_SUBSC( mv, 1 )
-	   CALL VAR_STAT( memory(1, mr_blk1(mv)), mv, cx,
-     .			  ttout_lun, full, status )
+	   CALL VAR_STAT( memry(mv)%ptr, mv, cx,
+     .			  ttout_lun, full, stat_digits, status )
            IF (status .NE. ferr_ok) GOTO 5000
  400	CONTINUE
 
diff --git a/fer/xeq/xeq_user_command.F b/fer/xeq/xeq_user_command.F
deleted file mode 100644
index f48f68a..0000000
--- a/fer/xeq/xeq_user_command.F
+++ /dev/null
@@ -1,103 +0,0 @@
-	SUBROUTINE XEQ_USER_COMMAND( memory )
-
-*
-*
-*  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. 
-*
-*
-* execute the USER_COMMAND command
-* this is a template routine that can be modified to include any code of
-* a user's choice, thereby customizing the FERRET program
-
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* V200:  1/21/90
-* V301:  11/93 - bug fix:  was passing element 2 of var 2 element 3 of 3, etc.
-*			: command string decoded by user routines
-*         1/94 - need to pass at least 5 arguments for COMMAND=SAMPLE
-* V312: 5/94 - array "memory" as a calling argument
-*	(and passed to USER_SUB - fixed 6/1/94)
-* V530: *sh* 9/00 - added initial data type support in get_cmnd_data 
-
-#ifdef unix
-	include	'ferret.parm'
-	include 'errmsg.parm'
-	include 'xvariables.cmn'
-	include 'xprog_state.cmn'
-#else
-	INCLUDE	'FERRET_CMN:FERRET.PARM'
-	INCLUDE 'FERRET_CMN:ERRMSG.PARM'
-	INCLUDE 'FERRET_CMN:XVARIABLES.CMN'
-	INCLUDE 'FERRET_CMN:XPROG_STATE.CMN'
-#endif
-
-* calling argument declarations:
-	REAL	memory( mem_blk_size, max_mem_blks )
-
-* local variable declarations:
-	INTEGER	ivar, mr_list(6), cx_list(6), status
-	
-* get the requested data somehow - possibly several grids of data
-	CALL GET_CMND_DATA ( memory, cx_last, ptype_float, status )
-	IF ( status .NE. ferr_ok ) GOTO 5000
-
-* set up dummies if fewer than 4 components
-	DO 100 ivar = 1, num_uvars_in_cmnd
-	  mr_list(ivar) = is_mr(ivar)
-	  cx_list(ivar) = is_cx(ivar)
- 100	CONTINUE
-	DO 110 ivar = num_uvars_in_cmnd+1, 6    ! 4->6 2/25 bug found on SUN
-	  mr_list(ivar) = dummy_mr
-	  cx_list(ivar) = cx_buff
- 110	CONTINUE
-
-* compute and display the results
-	CALL NON_ARRAY_SUBSC( mr_list, num_uvars_in_cmnd )
-
-* pass control to the user's routine
-	CALL USER_SUB(    memory,
-     .			  memory(1, mr_blk1(mr_list(1))), 
-     .			  memory(1, mr_blk1(mr_list(2))), 
-     .			  memory(1, mr_blk1(mr_list(3))), 
-     .			  memory(1, mr_blk1(mr_list(4))), 
-     .			  memory(1, mr_blk1(mr_list(5))), 
-     .			  memory(1, mr_blk1(mr_list(6))), 
-     .			  mr_list, cx_list, num_uvars_in_cmnd,
-     .			  ttout_lun, status )
-	RETURN
-
-* error exit(s)
- 5000	RETURN
-	END
diff --git a/fer/xeq/xeq_vector.F b/fer/xeq/xeq_vector.F
index 72a003d..b3f5915 100644
--- a/fer/xeq/xeq_vector.F
+++ b/fer/xeq/xeq_vector.F
@@ -1,4 +1,4 @@
-	SUBROUTINE XEQ_VECTOR( memory )
+	SUBROUTINE XEQ_VECTOR
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -112,6 +112,8 @@
 *                   Do not draw axes on an overlay unless they
 *                   ask for it with /AXES or a ppl axis command
 * V697 *acm* 12/15 Fixes for bug 1237 move call of PPL_AXES_RESTORE back to end of plot routines
+* 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
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -132,7 +134,6 @@
         include 'xrevision.cmn'
 
 * calling argument declarations:
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
 	LOGICAL		overlay, transpz, no_labels, no_x_rng,
@@ -142,8 +143,7 @@
 	INTEGER		TM_LENSTR1, status, cx, 
      .			loc, icolor, ipen,
      .			dim1, dim2, asp,
-     .			ax1_blks, ax1_start,
-     .			ax2_blks, ax2_start,
+     .			ax1_work, ax2_work,
      .			x_skip, y_skip,
      .                  density, slen, i, nparm, num_it, 
      .			s1, s2, it_start(4), it_end(4), iax(4),
@@ -162,8 +162,7 @@
 
 * set up the graphics environment and get the data
 	CALL START_PPLUS(.FALSE.)
-	CALL DISP_DATA_SET_UP( memory,
-     .		ax1_start, ax1_blks, ax2_start, ax2_blks, status )
+	CALL DISP_DATA_SET_UP(  ax1_work, ax2_work, status )
 	IF ( status .NE. ferr_ok ) GOTO 5100
 
 * make sure the number of expressions given is even ( x and y components )
@@ -323,7 +322,7 @@
 * set up title and load the x component data into PPLUS
 
 	inc_grid = .FALSE.
-	CALL DISP_SET_UP   ( 	memory,
+	CALL DISP_SET_UP   ( 	
      . 			 	vector,
      .				is_shade,
      .				use_cell,
@@ -340,8 +339,8 @@
      .				num_uvars_in_cmnd,
      .				is_cx,
      .				is_uvar,	
-     .				memory( 1, ax1_start ),
-     .				memory( 1, ax2_start ),
+     .				workmem(ax1_work)%ptr,
+     .				workmem(ax2_work)%ptr,
      .				ipen,
      .				inc_grid,
      .				status )
@@ -555,15 +554,9 @@ C   Save the skip values in a symbol PPL_VEC_XSKIP, PPL_VEC_YSKIP
 * interrupt occurred during plot ?
 	IF ( ppl_interrupted ) GOTO 1000
 
-* capture the bit map ?
-	IF ( qual_given( slash_vect_frame ) .GT. 0 ) THEN
-	   CALL SAVE_FRAME( frame_file, "HDF", status )
-	   IF ( status .NE. ferr_ok ) GOTO 5000
-	ENDIF
-
 * release the memory used for axis buffers
- 1000 	CALL FREE_MEMORY( ax2_start, ax2_blks )
- 	CALL FREE_MEMORY( ax1_start, ax2_blks )
+ 1000 	CALL FREE_WS_DYNMEM( ax1_work )
+	CALL FREE_WS_DYNMEM( ax2_work )
 	CALL UNPROTECT_CMND_DATA			! 1/94
  5100	RETURN
 
diff --git a/fer/xeq/xeq_wire.F b/fer/xeq/xeq_wire.F
index 7fbbbee..4e923a8 100644
--- a/fer/xeq/xeq_wire.F
+++ b/fer/xeq/xeq_wire.F
@@ -1,4 +1,4 @@
-	SUBROUTINE XEQ_WIRE( memory )
+	SUBROUTINE XEQ_WIRE
 
 *
 *
@@ -57,6 +57,8 @@
 * V552: *acm* 5/03 add argument use_cell to DISP_SET_UP call (not used by wire)
 *       *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
 *                  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
 
 	include 'tmap_dims.parm'
 	include	'ferret.parm'
@@ -71,14 +73,12 @@
 
 	
 * calling argument declarations:
-	REAL	memory( mem_blk_size, max_mem_blks )
 
 * internal variable declarations:
 	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_blks, ax1_start,
-     .		  ax2_blks, ax2_start, density
+     .		  ax1_work, ax2_work, density
 	REAL	  only_val, aspect
 	PARAMETER (aspect = 0.0) 		!kob 12/96
 	CHARACTER vpoint*24, zlims*24, zscale*24
@@ -92,8 +92,7 @@
 	CALL START_PPLUS(.FALSE.)
 
 * get the data (possibly ?? on a slightly oversized region)
-	CALL DISP_DATA_SET_UP( memory,
-     .		ax1_start, ax1_blks, ax2_start, ax2_blks, status )
+	CALL DISP_DATA_SET_UP(  ax1_work, ax2_work, status )
 	IF ( status .NE. ferr_ok ) GOTO 5100
 
 * initialize
@@ -150,7 +149,7 @@
 * set up the axes and title and load the data into PPLUS
 
 	inc_grid = set_up
-	CALL DISP_SET_UP   ( 	memory,
+	CALL DISP_SET_UP   ( 	
      .				not_vector,
      .                          is_shade,
      .                          use_cell,
@@ -167,8 +166,8 @@
      .				num_uvars_in_cmnd,
      .				is_cx,		! pass list
      .				is_uvar,	
-     .				memory( 1, ax1_start ),
-     .				memory( 1, ax2_start ),
+     .				workmem(ax1_work)%ptr,
+     .				workmem(ax2_work)%ptr,
      .				-1, 			! auto pen select
      .				set_up,
      .				status )
@@ -198,15 +197,9 @@
 * interrupt occurred during plot ?
 	IF ( ppl_interrupted ) GOTO 1000
 
-* capture the bit map ?
-	IF ( qual_given( slash_wire_frame ) .GT. 0 ) THEN
-	   CALL SAVE_FRAME( frame_file, "HDF", status )
-	   IF ( status .NE. ferr_ok ) GOTO 5000
-	ENDIF
-
 * release the memory used for axis buffers
- 1000 	CALL FREE_MEMORY( ax2_start, ax2_blks )
- 	CALL FREE_MEMORY( ax1_start, ax2_blks )
+ 1000 	CALL FREE_WS_DYNMEM( ax1_work )
+	CALL FREE_WS_DYNMEM( ax2_work )
 	CALL UNPROTECT_CMND_DATA			! 1/94
  5100	RETURN
 
diff --git a/ferretmagic.py b/ferretmagic.py
deleted file mode 100644
index 2cc75fc..0000000
--- a/ferretmagic.py
+++ /dev/null
@@ -1,479 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-===========
-ferretmagic
-===========
-
-Magics for interacting with ferret via pyferret.
-
-.. note::
-
-  The ``pyferret`` module needs to be installed first
-
-Usage
-=====
-
-``%%ferret``
-
-{ferret_DOC}
-
-``%ferret_run``
-
-{ferret_RUN_DOC}
-
-``%ferret_getdata``
-
-{ferret_GETDATA_DOC}
-
-``%ferret_putdata``
-
-{ferret_PUTDATA_DOC}
-
-``%ferret_lock``
-
-{ferret_LOCK_DOC}
-
-``%ferret_unlock``
-
-{ferret_UNLOCK_DOC}
-
-"""
-
-#-----------------------------------------------------------------------------
-#  Patrick.Brockmann at lsce.ipsl.fr
-#  Started 2013/08/28 then put on github.com 2013/09/06
-#  https://github.com/PBrockmann/ipython-ferretmagic
-#
-#  Lock functions are taken from ipythonPexpect magic
-#  https://cdcvs.fnal.gov/redmine/projects/ipython_ext/repository/revisions/master/raw/ipythonPexpect.py
-#-----------------------------------------------------------------------------
-
-import os.path
-import tempfile
-import math
-import pyferret
-from shutil import rmtree
-
-from IPython.core.displaypub import publish_display_data
-from IPython.core.magic import Magics, magics_class, line_magic, cell_magic, needs_local_scope
-from IPython.core.magic_arguments import argument, magic_arguments, parse_argstring
-from IPython.utils.py3compat import unicode_to_str
-from pexpect import ExceptionPexpect
-
-_PUBLISH_KEY = 'ferretMagic.ferret'
-_DEFAULT_PLOTSIZE = '756.0,612.0'
-_DEFAULT_MEMSIZE = 400.0
-
-#----------------------------------------------------
-class ferretMagicError(Exception):
-    pass
-
- at magics_class
-class ferretMagics(Magics):
-    """
-    A set of magics useful for interactive work with ferret via pyferret.
-    """
-#----------------------------------------------------
-    def __init__(self, shell):
-        """
-        Parameters
-        ----------
-        shell : IPython shell
-        """
-        super(ferretMagics, self).__init__(shell)
-        try:
-            pyferret.start(memsize=(_DEFAULT_MEMSIZE/8.0), verify=False, journal=False, unmapped=True, quiet=True)
-        except ExceptionPexpect:
-            raise ferretMagicError('pyferret cannot be started')
-
-        self._shell = shell
-        self._shell.ferret_locked = False
-
-#----------------------------------------------------
-    def ferret_run_code(self, args, code):
-        """
-        Parameters
-        ----------
-        args : control arguments for running (py)ferret
-        code : ferret commands to run
-        """
-
-        # Temporary directory; create under the current directory 
-        # so PDF link files are accessible
-        temp_dir = tempfile.mkdtemp(dir='.', prefix='ipyferret_').replace('\\', '/')
-
-        # Redirect stdout and stderr to file
-        out_filename = temp_dir + '/output.txt' 
-        if not(args.quiet):
-            (errval, errmsg) = pyferret.run('set redirect /clobber /file="%s" stdout' % out_filename)
-
-        # Filename for saving the final plot (if any)
-        if args.plotname:
-            plot_filename = str(args.plotname)
-            if args.pdf:
-                if not plot_filename.endswith('.pdf'):
-                    plot_filename += '.pdf'
-            else:
-                if not plot_filename.endswith('.png'):
-                    plot_filename += '.png'
-        elif args.pdf:
-            plot_filename = temp_dir + '/image.pdf'
-        else:
-            plot_filename = temp_dir + '/image.png'
-
-
-        # Make it quiet by default
-        (errval, errmsg) = pyferret.run('cancel mode verify')
-
-        if args.memory:
-            # Reset memory size in megabytes
-            mem_size = float(args.memory)
-            if mem_size > 0.0:
-                (errval, errmsg) = pyferret.run('set memory /size=%f' % (mem_size/8.0))
-
-        # Get image size and aspect ratio
-        if args.size:
-            plot_size = args.size.split(',')
-        else:
-            plot_size = _DEFAULT_PLOTSIZE.split(',')
-        plot_width  = float(plot_size[0])
-        plot_height = float(plot_size[1])
-        plot_aspect = plot_height / plot_width
-
-        # Set window size with the required aspect ratio; 
-        # always anti-alias with windows of these sizes
-        canvas_width = math.sqrt(plot_width * plot_height / plot_aspect)
-        if args.bigger:
-            # Double the width and height of the window, but the image will
-            # be saved at the original requested size.  
-            # Reducing the raster image when saving it sharpens the image.
-            canvas_width *= 2.0
-        (errval, errmsg) = pyferret.run('set window /xpixel=%f /aspect=%f 1' % \
-                                        (canvas_width, plot_aspect))
-
-        # Run code
-        pyferret_error = False
-        for input in code:
-            # Ignore blank lines
-            if input:
-                input = unicode_to_str(input)
-                (errval, errmsg) = pyferret.run(input)
-                if errval != pyferret.FERR_OK:
-                    errmsg = errmsg.replace('\\', '<br />')
-                    publish_display_data(_PUBLISH_KEY, {'text/html': 
-                        '<pre style="background-color:#F79F81; border-radius: 4px 4px 4px 4px; font-size: smaller">' +
-                        'yes? %s\n' % input +
-                        '%s' % errmsg +
-                        '</pre>' 
-			})
-                    pyferret_error = True
-                    break
-
-        # Create the image file; if no final image, no image file will be created.
-        # Any existing image with that filename will be versioned away ('.~n~' appended)
-        if not pyferret_error:
-            if args.pdf:
-                (errval, errmsg) = pyferret.run('frame /xinch=%f /file="%s" /format=PDF' % (plot_width/72.0, plot_filename) )
-            else:
-                (errval, errmsg) = pyferret.run('frame /xpixel=%f /file="%s" /format=PNG' % (plot_width, plot_filename))
-            if errval != pyferret.FERR_OK:
-                pyferret_error = True
-
-        # Close the window
-        (errval, errmsg) = pyferret.run('cancel window 1')
-
-        # Close the stdout and stderr redirect file
-        if not(args.quiet):
-        	(errval, errmsg) = pyferret.run('cancel redirect')
-
-        #-------------------------------
-
-        # Publish
-        display_data = []
-
-        # Publish captured stdout text, if any
-        if os.path.isfile(out_filename) and (os.path.getsize(out_filename) > 0): 
-            try:
-                text_outputs = []
-                text_outputs.append('<pre style="background-color:#ECF6CE; border-radius: 4px 4px 4px 4px; font-size: smaller">')
-                f = open(out_filename, "r")
-                for line in f:
-                    text_outputs.append(line)
-                f.close()
-                text_outputs.append("</pre>")
-                text_output = "".join(text_outputs)
-                display_data.append((_PUBLISH_KEY, {'text/html': text_output}))
-            except:
-                pass
-
-        # Publish image if present
-        if not pyferret_error:
-           if args.pdf:
-               if os.path.isfile(plot_filename):
-                   # Create link to pdf; file visible from cell from files directory
-                   text_outputs = []
-                   text_outputs.append('<pre style="background-color:#F2F5A9; border-radius: 4px 4px 4px 4px; font-size: smaller">')
-                   text_outputs.append('Message: <a href="files/%s" target="_blank">%s</a> created.' % (plot_filename, plot_filename))
-                   text_outputs.append('</pre>')
-                   text_output = "".join(text_outputs)
-                   display_data.append((_PUBLISH_KEY, {'text/html': text_output}))
-                   # If the user did not provide the PDF filename, 
-                   # do not delete the temporary directory since the PDF is in there.
-                   if args.plotname:
-                       rmtree(temp_dir)
-               else:
-                   # Delete temporary directory - nothing to preserve
-                   rmtree(temp_dir)
-           else:
-               # Display the image in the notebook
-               try:
-                   f = open(plot_filename, 'rb')
-                   image = f.read().encode('base64')
-                   f.close()
-                   display_data.append((_PUBLISH_KEY, {'text/html': '<div class="myoutput">' + 
-                       '<img src="data:image/png;base64,%s"/></div>' % image}))
-               except:
-                   pass
-               # Delete temporary directory - PNG encoded in the string
-               rmtree(temp_dir)
-
-	# Error in ferret code - Delete temporary directory 
-	else: 
-           rmtree(temp_dir)
-
-        # Publication
-        for source, data in display_data:
-              publish_display_data(source, data)
-
-
-#----------------------------------------------------
-    @magic_arguments()
-    @argument(
-        '-m', '--memory', type=float,
-        help='Memory, in megabytes, to be used by ferret henceforth. Startup default is %s' % str(_DEFAULT_MEMSIZE)
-        )
-    @argument(
-        '-s', '--size',
-        help='Pixel size of PNG images, or point size of PDF images, as "width,height". Default is ' + _DEFAULT_PLOTSIZE
-        )
-    @argument(
-        '-b', '--bigger', default=False, action='store_true',
-        help='Produce a sharper plot by doubling the standard plot window size before scaling.'
-        )
-    @argument(
-        '-p', '--pdf', default=False, action='store_true',
-        help='Generate the output plot as a PDF file.'
-        )
-    @argument(
-        '-q', '--quiet', default=False, action='store_true',
-        help='Do not display stdout.'
-        )
-    @argument(
-        '-f', '--plotname',
-        help='Name of the image file to create.  If not given, a name will be generated.'
-        )
-    @cell_magic
-    def ferret(self, line, cell):
-        '''
-            In [10]: %%ferret
-               ....: let a=12
-               ....: list a
-
-        The size of output plots can be specified:
-            In [18]: %%ferret -s 800,600 
-                ...: plot i[i=1:100]
-
-        '''
-        args = parse_argstring(self.ferret, line)
-        code = cell.split('\n')
-        self.ferret_run_code(args, code)
-
-#----------------------------------------------------
-    @magic_arguments()
-    @argument(
-        '-m', '--memory', type=float,
-        help='Memory, in megabytes, to be used by ferret henceforth. Startup default is %s' % str(_DEFAULT_MEMSIZE)
-        )
-    @argument(
-        '-s', '--size',
-        help='Pixel size of PNG images, or point size of PDF images, as "width,height". Default is ' + _DEFAULT_PLOTSIZE
-        )
-    @argument(
-        '-b', '--bigger', default=False, action='store_true',
-        help='Produce a sharper plot by doubling the standard plot window size before scaling.'
-        )
-    @argument(
-        '-p', '--pdf', default=False, action='store_true',
-        help='Generate the output plot as a PDF file.'
-        )
-    @argument(
-        '-q', '--quiet', default=False, action='store_true',
-        help='Do not display stdout.'
-        )
-    @argument(
-        '-f', '--plotname',
-        help='Name of the image file to create.  If not given, a name will be generated.'
-        )
-    @argument(
-        'string',
-        nargs='*'
-        )
-    @needs_local_scope
-    @line_magic
-    def ferret_run(self, line, local_ns=None):
-        '''
-        Line-level magic to run a command in ferret. 
-
-            In [12]: for val in [100,500,1000]:
-               ....:     %ferret_run -s 400,400 -b 'plot sin(i[i=1:%(val)s]*0.1)' % locals()
-
-        '''
-        args = parse_argstring(self.ferret_run, line)
-        #code = [self.shell.ex(" ".join(args.string))]
-        code = [eval(" ".join(args.string), local_ns)]
-        self.ferret_run_code(args, code)
-
-#----------------------------------------------------
-    @magic_arguments()
-    @argument(
-        '--create_mask', default=False, action='store_true',
-        help='The data array associated with the "data" key will be a MaskedArray NumPy array instead an ordinary NumPy array.'
-        )
-    @argument(
-        'code',
-        nargs='*'
-        )
-    @line_magic
-    def ferret_getdata(self, line):
-        '''
-        Line-level magic to get data from ferret.
-
-            In [18]: %%ferret
-               ....: use levitus_climatology
-            In [19]: %ferret_getdata tempdict = temp
-           ....: Message: tempdict is now available in python as a dictionary containing the variable's metadata and data array.
-            In [20]: print tempdict.keys()
-           ....: ['axis_coords', 'axis_types', 'data_unit', 'axis_units', 'title', 'axis_names', 'missing_value', 'data']
-
-        '''
-
-        args = parse_argstring(self.ferret_getdata, line)
-
-        code = unicode_to_str(''.join(args.code))
-        pythonvariable = code.split('=')[0]
-        ferretvariable = code.split('=')[1]
-        exec('%s = pyferret.getdata("%s", %s)' % (pythonvariable, ferretvariable, args.create_mask) )
-        self.shell.push("%s" % pythonvariable)
-        publish_display_data('ferretMagic.ferret', {'text/html': 
-            '<pre style="background-color:#F2F5A9; border-radius: 4px 4px 4px 4px; font-size: smaller">' +
-            'Message: ' + pythonvariable + " is now available in python as a dictionary containing the variable's metadata and data array."
-            '</pre>' 
-        })
-
-#----------------------------------------------------
-    @magic_arguments()
-    @argument(
-        '--axis_pos', default=None, 
-        help='Order of the axes. Default mode uses a reasonable guess from examining the axis types.'
-        )
-    @argument(
-        'code',
-        nargs='*'
-        )
-    @line_magic
-    def ferret_putdata(self, line):
-        '''
-        Line-level magic to put data to ferret.
-
-            In [31]: import numpy as np
-               ....: b = {}
-               ....: b['name']='myvar'
-               ....: b['name']='myvar'
-               ....: x=np.linspace(-np.pi*4, np.pi*4, 500)
-               ....: b['data']=np.sin(x)/x
-               ....: b.keys()
-            Out[31]: ['data', 'name']
-        In [32]: %ferret_putdata --axis_pos (1,0,2,3,4,5) b
-           ....: Message: b is now available in ferret as myvar
-
-        '''
-        args = parse_argstring(self.ferret_putdata, line)
-
-        ferretvariable = unicode_to_str(args.code[0])
-        if args.axis_pos:
-            axis_pos_variable = eval(args.axis_pos)
-        else:
-            axis_pos_variable = None
-        pyferret.putdata(self.shell.user_ns[ferretvariable], axis_pos=axis_pos_variable)
-        publish_display_data('ferretMagic.ferret', {'text/html': 
-            '<pre style="background-color:#F2F5A9; border-radius: 4px 4px 4px 4px; font-size: smaller">' +
-            'Message: ' + ferretvariable + ' is now available in ferret as ' + self.shell.user_ns[ferretvariable]['name'] + 
-            '</pre>' 
-        })
-
-    @line_magic
-    def ferret_lock(self, line):
-        '''
-        Lock the notebook to send EVERY executed cell through pyferret
-      
-        Do %ferret_unlock to unlock
-
-        '''
-    
-        self._shell.ferret_locked = True
-
-        print 'WARNING: All future cell execution will be processed through pyferret!'
-        print 'To return to IPython, issue %ferret_unlock'
-
-    @line_magic
-    def ferret_unlock(self, line):
-        '''
-          Unlock the notebook to return to regular IPython
-        '''
-
-    
-        self._shell.ferret_locked = False
-    
-        print 'Notebook will use IPython'
-
-# Let's rewrite InteractiveShell.run_cell to do automatic processing with pyferret,
-# if desired
-from IPython.core.interactiveshell import InteractiveShell
-
-# Let's copy the original "run_cell" method (we do this only once so we can reload)
-if not getattr(InteractiveShell, "run_cell_a", False):
-  InteractiveShell.run_cell_a = InteractiveShell.run_cell
-
-# Now rewrite run_cell
-def run_cell_new(self, raw_cell, store_history=False, silent=False, shell_futures=True):
-  
-  # Are we locked in pyferret?
-  if getattr(self, "ferret_locked", False):
-  
-    # Don't alter cells that start with %%ferret or with %ferret_unlock
-    if raw_cell[:8] == '%%ferret' or raw_cell[:15] == '%ferret_unlock':
-      pass
-    else:
-      # We're going to add a %%ferret to the top
-      raw_cell = "%%ferret\n" + raw_cell
-
-  self.run_cell_a(raw_cell, store_history, silent, shell_futures)
-
-# And assign it
-InteractiveShell.run_cell = run_cell_new
-
-
-#----------------------------------------------------
-__doc__ = __doc__.format(
-    ferret_DOC = ' '*8 + ferretMagics.ferret.__doc__,
-    ferret_RUN_DOC = ' '*8 + ferretMagics.ferret_run.__doc__,
-    ferret_GETDATA_DOC = ' '*8 + ferretMagics.ferret_getdata.__doc__,
-    ferret_PUTDATA_DOC = ' '*8 + ferretMagics.ferret_putdata.__doc__,
-    ferret_LOCK_DOC = ' '*8 + ferretMagics.ferret_lock.__doc__,
-    ferret_UNLOCK_DOC = ' '*8 + ferretMagics.ferret_unlock.__doc__
-    )
-
-def load_ipython_extension(ip):
-    """Load the extension in IPython."""
-    ip.register_magics(ferretMagics)
-
diff --git a/fmt/cmn/NCF_Util.h b/fmt/cmn/NCF_Util.h
index a64e020..233ab78 100644
--- a/fmt/cmn/NCF_Util.h
+++ b/fmt/cmn/NCF_Util.h
@@ -37,7 +37,7 @@
  *
  * Ansley Manke
  * Ferret V600 April 2005
-/* *acm*  5/12 Additions for creating aggregate datasets
+ * *acm*  5/12 Additions for creating aggregate datasets
  *
  * This is the header file to be included by routines which
  * are part of the Ferret NetCDF attribute handling library.
@@ -47,8 +47,16 @@
  *                 defined with LET/D=n are stored with dataset n. A flag in the ncvar 
  *                 structure tells that the variable is a user-var. 
  * V699 5/16 *sh* added grid management for uvars: gridList and uvarGrid
+ * V701 8/16 *kms* enclose in #ifndef _NCF_UTIL_H_ ... #endif so this is included only once per file;
+ *                 include netcdf.h to make sure the NC_... values are defined;
+ *                 remove the ...list_initialized... values - just check the list against NULL
  */
 
+#ifndef _NCF_UTIL_H_
+#define _NCF_UTIL_H_
+
+#include <netcdf.h>   /* for many NC_... values */
+
 /* .................... Defines ..................... */
 
 #define TRUE  1
@@ -61,7 +69,6 @@
 
 #define ATOM_NOT_FOUND 0  /* This should match the atom_not_found parameter in ferret.parm. */
 #define FERR_OK 3  /* This should match the ferr_ok parameter in errmsg.parm. */
-#define NC_GLOBAL -1    /* This should match the NC_GLOBAL parameter in netcdf.h */
 #define PDSET_UVARS -1  /* This should match pdset_uvars ferret.parm */
 
 /* Ferret-defined "netcdf error status" when a read was interrupted by Crtl-C */
@@ -98,14 +105,12 @@ typedef struct  {
 	int ngatts;
 	int recdim;
 	int nvars;
-	int vars_list_initialized;
 	int fer_dsetnum;
 	int fer_current;
 	int its_epic;
 	int its_agg;
 	int num_agg_members;
 	LIST *agg_dsetlist;
-	int agg_list_initialized;
 } ncdset;
 
 typedef struct  {          /* variable */
@@ -127,11 +132,9 @@ typedef struct  {          /* variable */
 	                          2 write all attrs,
 	                          3 reset attr flags to Ferret defaults */
 	double fillval;
-	int attrs_list_initialized;
 	LIST *varagglist;      /* if an aggregate dataset, for each var,
 	                          list the members of the aggregate components. */
         LIST *uvarGridList;    /* if a uvar, keep track of its grid(s) */
-	int agg_list_initialized;
 	int nmemb;
 } ncvar;
 
@@ -174,3 +177,6 @@ typedef struct {     /* for uvars: grid/dataset pairs*/
 #else
 #define FORTRAN(a) a##_
 #endif
+
+#endif   /* _NCF_UTIL_H_ */
+
diff --git a/fmt/cmn/descript.def b/fmt/cmn/descript.def
index cd7f3d0..d69a92c 100644
--- a/fmt/cmn/descript.def
+++ b/fmt/cmn/descript.def
@@ -37,7 +37,7 @@
 *	      DODS multi-mc files
 	CHARACTER*5	s_regvarflag
 	CHARACTER*23	s_index
-	CHARACTER*512	s_filename
+	CHARACTER*2048  s_filename
 	INTEGER*4	s_aux_set_num, s_num_of_files
 	REAL*8		s_start, s_end, s_delta
 
diff --git a/fmt/cmn/ez_delimited_read.h b/fmt/cmn/ez_delimited_read.h
index 9a4682e..46cf837 100644
--- a/fmt/cmn/ez_delimited_read.h
+++ b/fmt/cmn/ez_delimited_read.h
@@ -9,6 +9,8 @@
  *
  *  *acm*  1/12      - Ferret 6.8 ifdef double_p for double-precision ferret.
 
+  V701 7/16 *acm*   ticket 2450: add date-time and euro-date-time field types
+                    ticket 2449: report incorrect choice of date/ eurodate as an error
  */
 #include "ferretmacros.h"
 
@@ -20,6 +22,8 @@
 #define FTYP_DATE 6
 #define FTYP_EURODATE 7
 #define FTYP_TIME 8
+#define FTYP_DATIME 9
+#define FTYP_EDATIME 10
 
 #define FANAL_OK 0
 #define FANAL_HAS_MISSING 1
@@ -39,37 +43,43 @@ void analRec(char *recptr, char *delims, int* nfields, int field_type[],
 #ifdef double_p
 int decodeRec(char *recptr, char *delims, int* nfields, int field_type[],
 	      int nrec,
-	      double** numeric_fields, char*** text_fields, double bad_flags[]);
+	      double** numeric_fields, char*** text_fields, double bad_flags[], 
+	      int* status);
 int decode_file (char* fname, char *recptr, char *delims, int* skip,
 	       int *maxrec, int* reclen, int* nfields, int field_type[],
 	       int* nrec,
-	       double** numeric_fields, char*** text_fields, double bad_flags[]);
+	       double** numeric_fields, char*** text_fields, double bad_flags[], 
+	      int* status);
 
-double FORTRAN(days_from_day0) (double *days1900, int* iyr, int* imon, int* iday, double* rdum);
+double FORTRAN(days_from_day0) (double *days1900, int* iyr, int* imon, int* iday, double* rdum, 
+	      int* status);
 
 void FORTRAN(decode_file_jacket)
 		( char* fname, char *recptr, char *delims, int *skip,
 		  int* maxrec, int* reclen, int* nfields,
 		  int field_type[], int* nrec,
-		  int mrlist[], double *memptr, int mr_blk1[], int* mblk_size,
-		  double mr_bad_flags[], char ***mr_c_ptr);
+		  int mrlist[], long* mr_ptrs_val,
+		  double mr_bad_flags[], char ***mr_c_ptr, int* status);
 #else
 int decodeRec(char *recptr, char *delims, int* nfields, int field_type[],
 	      int nrec,
-	      float** numeric_fields, char*** text_fields, float bad_flags[]);
+	      float** numeric_fields, char*** text_fields, float bad_flags[], 
+		  int* status);
 int decode_file (char* fname, char *recptr, char *delims, int* skip,
 	       int *maxrec, int* reclen, int* nfields, int field_type[],
 	       int* nrec,
-	       float** numeric_fields, char*** text_fields, float bad_flags[]);
+	       float** numeric_fields, char*** text_fields, float bad_flags[], 
+		   int* status);
 
-float FORTRAN(days_from_day0) (double *days1900, int* iyr, int* imon, int* iday, float* rdum);
+float FORTRAN(days_from_day0) (double *days1900, int* iyr, int* imon, int* iday, 
+	      float* rdum, int* status);
 
 void FORTRAN(decode_file_jacket)
 		( char* fname, char *recptr, char *delims, int *skip,
 		  int* maxrec, int* reclen, int* nfields,
 		  int field_type[], int* nrec,
-		  int mrlist[], float *memptr, int mr_blk1[], int* mblk_size,
-		  float mr_bad_flags[], char ***mr_c_ptr);
+		  int mrlist[], int* mr_ptrs_val,
+		  float mr_bad_flags[], char ***mr_c_ptr, int* status);
 #endif
 
 int FORTRAN(anal_file) (char *fname, char *recptr, char *delims, int *skip,
diff --git a/fmt/cmn/ez_lib.parm b/fmt/cmn/ez_lib.parm
index 87901a6..50e0e89 100644
--- a/fmt/cmn/ez_lib.parm
+++ b/fmt/cmn/ez_lib.parm
@@ -7,6 +7,8 @@
 * 2/95 *sh* increased maxezvars from 10 to 20
 * V530 - 10/00 *sh* ==> added field type parameters for delimited reads
 *		        and maxezfreefmtvars
+* V710 -  7/16*acm*     Add DATIME and EuroDate (same changes in ez_delimited_read.h)
+* V701    7/16 *acm*   ticket 2450: add date-time and euro-date-time field types
 
 * EZ lib parameters
 	INTEGER*4	maxezvars, maxezinput, maxezfreefmtvars
@@ -24,8 +26,10 @@
      .		FTYP_DATE,
      .		FTYP_EURODATE,
      .		FTYP_TIME,
-     .		FTYP_ANAL_MISSING
-	PARAMETER ( FTYP_NUM_TYPES = 8,
+     .		FTYP_ANAL_MISSING,
+     .		FTYP_DATIME,
+     .		FTYP_EDATIME
+	PARAMETER ( FTYP_NUM_TYPES = 10,
      .		FTYP_MISSING = 1,
      .		FTYP_NUMERIC = 2,
      .		FTYP_CHARACTER = 3,
@@ -34,5 +38,7 @@
      .		FTYP_DATE = 6,
      .		FTYP_EURODATE = 7,
      .		FTYP_TIME = 8,
+     .		FTYP_DATIME = 9,
+     .		FTYP_EDATIME = 10,
      .		FTYP_ANAL_MISSING = -FTYP_MISSING )
 
diff --git a/fmt/cmn/tmap_dims.parm b/fmt/cmn/tmap_dims.parm
index 42fd13e..f6d4a83 100644
--- a/fmt/cmn/tmap_dims.parm
+++ b/fmt/cmn/tmap_dims.parm
@@ -27,6 +27,11 @@
 * v698  *sh* 12/15  creating hidden dataset space above maxdsets
 *             3/16  increase maxdsets to accommodate EF aggs
 *             3/16  increase num_dyn_grids to accommodate EF aggs
+* V710 *acm* 10/16 Ticket 2422: variables uvar_grid, uvar_data_type, uvar_aux_cat, 
+*                  uvar_aux_var replaced with calls to LIST routines in NCF_Util.c 
+*                  Increase size of max_gfdl_dsets and max_grids
+*                  Also clean up long-unused lines that were commented out.
+* V710 *acm*  3/16  add dgrid_buff, for a fake grid to use in computing coordinates
 
 * for TMAP formatted files:
 	INTEGER	nrec_codes,ngrid_prenamed,nvari_prenamed,maxdsets,
@@ -36,13 +41,16 @@
      .		num_dyn_grids, max_dyn_grids, num_dyn_lines,
      .		max_dyn_lines, line_ceiling, grid_ceiling,
      .		tmp_line_hook, tmp_grid_hook, nferdims, maxvar2,
-     .		pdsetalloc, pdsets_addl, pdset_dummy, pdset_global
+     .		pdsetalloc, pdsets_addl, pdset_dummy, pdset_global, 
+     .		dgrid_buff
 
 * parameters used for dimensioning arrays
+	PARAMETER (dgrid_buff = 0)	! scratch buffer for grids (as in ferret.parm)
 	PARAMETER (nrec_codes = 11)	! # of different record codes
 	PARAMETER (ngrid_prenamed=11)	! # of pre-defined grids
 	PARAMETER (nvari_prenamed=7)	! # of pre-named variables
-	PARAMETER (maxdsets = 400)	! maximum # of data sets simultaneously
+	PARAMETER (maxdsets = 5000)	! maximum # of data sets simultaneously
+					! must equal max_gfdl_dsets in ferret.parm
 	PARAMETER (pdsets_addl = 2)	! addl dsets hidden above maxdsets
 	PARAMETER (pdsetalloc = maxdsets + pdsets_addl)
 	PARAMETER (pdset_dummy  = maxdsets + 1)	! dummy  (missing) dataset
@@ -52,33 +60,16 @@
 	PARAMETER (maxvar2 = 2*maxvars)	! max # *2, for dimension equivalenced to real*8 arrays
 	PARAMETER (maxvarfiles = 500)	! # of files with time step data
 	PARAMETER (maxaux = 50)		! max # of ALL auxiliary sets
-!	PARAMETER (max_grids = 60)	! max # of grids *parmchg: pre 7/92
-!	PARAMETER (max_grids = 200)	! max # of grids *parmchg: pre 11/95
-!	PARAMETER (max_grids = 500)	! max # of **static** grids: pre 7/99
-!	PARAMETER (max_grids = 1000)	! max # of **static** grids: pre 3/00
-	PARAMETER (max_grids = 500)	! max # of **static** grids
-!	PARAMETER (num_dyn_grids = 100) ! max # of "implicit" grids: pre 5/00
-!	PARAMETER (num_dyn_grids = 500) ! max # of "implicit" grids: pre 3/2016
+	PARAMETER (max_grids = 5000)	! max # of **static** grids
 	PARAMETER (num_dyn_grids = 5000)! max # of "implicit" grids
 	PARAMETER (max_dyn_grids = max_grids + num_dyn_grids)
 	PARAMETER (tmp_grid_hook = max_dyn_grids + 1)
 	PARAMETER (grid_ceiling  = tmp_grid_hook )
-!	PARAMETER (max_lines = 100)	! max # of lines *parmchg: pre 7/92
-!	PARAMETER (max_lines = 200)	! max # of lines *parmchg: pre 7/97
-!	PARAMETER (max_lines = 500)	! max # of lines: pre 7/99
-!	PARAMETER (max_lines = 2500)	! max # of lines: pre 3/00
 	PARAMETER (max_lines = 1000)	! max # of *static* lines
-!	PARAMETER (num_dyn_lines = 100)! max # of *dynamic* lines: pre 3/00
 	PARAMETER (num_dyn_lines = 1500)! max # of *dynamic* lines
 	PARAMETER (max_dyn_lines = max_lines + num_dyn_lines)
 	PARAMETER (tmp_line_hook = max_dyn_lines + 1)
 	PARAMETER (line_ceiling  = tmp_line_hook )
-!	PARAMETER (maxlinestore = 10000)! max # of coords *parmchg: pre 7/92
-!	PARAMETER (maxlinestore = 20000)! max # of coords *parmchg: pre 10/95
-!	PARAMETER (maxlinestore = 50000)! max # of coords *parmchg: pre 7/97
-!	PARAMETER (maxlinestore = 100000)! max # of coords : pre 7/99
-!	PARAMETER (maxlinestore = 250000)! max # of coords 
-!	PARAMETER (maxlinestore = 500000)! max # of coords : temporary!!!
 	PARAMETER (maxlinestore = 750000)! max # of coords 
 	PARAMETER (maxgridfiles = 10)	! maximum number of grids
 	PARAMETER (max_axis_orients = 9)! maximum number of axis orients
diff --git a/fmt/cmn/tmap_dset.parm b/fmt/cmn/tmap_dset.parm
index a52706c..a0e75ed 100644
--- a/fmt/cmn/tmap_dset.parm
+++ b/fmt/cmn/tmap_dset.parm
@@ -10,6 +10,8 @@
 *			char_init*N are effectively the same definition
 * V581 - 3/05 *acm* add char_init_1024
 * V68  *acm* 1/12 Real variables should be declared REAL (conversion to double prec.)
+* V701  7/16 *kms* Add char_init2048 (for ds_name and ds_des_name) 
+*                  and increase char_init to CHARACTER*2048
 
 
 * codes for data sets
@@ -30,7 +32,7 @@
 	PARAMETER	(end_of_grids = '**END OF GRIDS**')
 
 * codes for common block initialization
-	CHARACTER*80	char_init
+	CHARACTER*2048  char_init
 	CHARACTER*20	sevens
 	CHARACTER	char_init01*01, char_init02*02, char_init04*04,
      .			char_init08*08,	char_init12*12, char_init16*16,
@@ -38,7 +40,7 @@
      .			char_init30*30, char_init40*40, char_init60*60,
      .			char_init64*64, char_init80*80, char_init128*128,
      .                  char_init256*256, char_init512*512, 
-     .                  char_init1024*1024
+     .                  char_init1024*1024, char_init2048*2048
 	INTEGER*2	int2_init
 	INTEGER*4	int4_init
 	REAL		real4_init
@@ -67,6 +69,7 @@
 	PARAMETER	(char_init256= char_init)
 	PARAMETER	(char_init512= char_init)
 	PARAMETER	(char_init1024= char_init)
+	PARAMETER	(char_init2048= char_init)
 	PARAMETER	(int2_init = -7777)
 	PARAMETER	(int4_init = -7777)
 	PARAMETER	(real4_init = -7.77E-07)
diff --git a/fmt/cmn/xstep_files.cmn_text b/fmt/cmn/xstep_files.cmn_text
index c6d9e10..be18c3b 100644
--- a/fmt/cmn/xstep_files.cmn_text
+++ b/fmt/cmn/xstep_files.cmn_text
@@ -8,6 +8,7 @@
 *             path names
 * v5.81 *acm* 4/2005  Add sf_ndxs and sf_ndxe to use indices rather than timesteps
 *                     for indexing mc datasets in mc_read.
+* V701  7/16 *kms* sf_name and vf_name increased to CHARACTER*2048 to match ds_name and s_filename
 
 	COMMON /XSTEP_FILES/
      .				sf_name   	(maxstepfiles),	! names of 'em
@@ -39,7 +40,7 @@
 	LOGICAL*1	sf_valid,sf_regvars,sf_regtimes,
      .			sf_compress
 
-	CHARACTER*512	vf_name(maxvarfiles)         ! ???same as s_filename in descript.def
+	CHARACTER*2048  vf_name(maxvarfiles)         ! ???same as s_filename in descript.def
 	CHARACTER*23	vf_index(maxvarfiles)
 	INTEGER		vf_setnum(maxvarfiles),vf_firstvar,
      .			vf_lastvar,vf_skip(maxvarfiles),
diff --git a/fmt/cmn/xunits.cmn_text b/fmt/cmn/xunits.cmn_text
index ddf00b1..b069f25 100644
--- a/fmt/cmn/xunits.cmn_text
+++ b/fmt/cmn/xunits.cmn_text
@@ -11,9 +11,13 @@
 *             secs per 365.25 days (change xunits_data.F too)
 *             also add all types of months: 1/12 of seconds/year 
 * 4/2016 *sh* added unit names for ensemble and forecast axes
+* V698  3/16 *acm* Ticket 2158: working with true monthly time axes.
+* V72  11/16 *acm* Add codes for seconds/minute, hour, day. (Add more
+*                  for different year definitions if needed.)
 
 	INTEGER		pun_1st_time,
      .			pun_last_time,
+     .			pun_trumonths,
      .			pun_1st_len,
      .			pun_last_len,
      .			pun_1st_unit,
@@ -22,34 +26,38 @@
      .			pun_degrees,
      .			pun_meters,
      .			pun_millibars,
-     .			pun_decibars
+     .			pun_decibars,
+     .			pun_minute,
+     .			pun_hour,
+     .			pun_day
 
-	PARAMETER     ( pun_1st_time  = -16,
+	PARAMETER     ( pun_1st_time  = -21,
      .			pun_last_time = -1,
+     .			pun_trumonths = -17,
      .			pun_1st_len   = 1,
      .			pun_last_len  = 15, 
      .			pun_1st_unit  = pun_1st_time,
      .			pun_last_unit = pun_last_len,
-     .			pun_num_alt   = 20,
+     .			pun_num_alt   = 21,
      .			pun_degrees   = 4,
      .			pun_meters    = 9,	! formerly 3
      .			pun_millibars = 3,	! formerly 9
-     .			pun_decibars  = 10 )
-
-
+     .			pun_decibars  = 10,
+     .			pun_minute    = -2,
+     .			pun_hour      = -3,
+     .			pun_day       = -4)
 	
 	INTEGER		un_alt_subsc( pun_num_alt )
 	REAL		un_convert  ( pun_1st_unit:pun_last_unit )
 	CHARACTER*12	un_name     ( pun_1st_unit:pun_last_unit ),
      .			un_alt_name ( pun_num_alt )
 
-	COMMON/ XUNIT /	un_alt_subsc,		! subscripts of unit names
-     .			un_convert,		! conversion factors
+	COMMON/ XUNIT /	un_convert,		! conversion factors
+     .			un_alt_subsc,		! subscripts of unit names
      .			un_name,		! unit names
      .			un_alt_name		! alternative unit names
 
 * units for E and F axes
 	CHARACTER	plag_ax_units_e*12, plag_ax_units_f*10
 	PARAMETER     ( plag_ax_units_e = 'realization',
-     .			plag_ax_units_f = 'run no.'    )
-
+     .			plag_ax_units_f = 'run no.'    )
\ No newline at end of file
diff --git a/fmt/src/NCF_Util.c b/fmt/src/NCF_Util.c
index bdcb2d4..aef5ca2 100644
--- a/fmt/src/NCF_Util.c
+++ b/fmt/src/NCF_Util.c
@@ -1,135 +1,124 @@
 /*
-*  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 granteHd 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.
-*
-*/
+ * 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 granteHd 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.
+ */
 
 /* NCF_Util.c
-*
-* Ansley Manke
-* Ferret V600 April 26, 2005
-* V5600 *acm* fix declarations of fillc and my_len as required by solaris compiler
-*
-* This file contains all the utility functions which Ferret
-* needs in order to do attribute handling. Based on code for EF's.
-* calls are made to nc_ routines from netcdf library.
-*
-*
-* *acm   9/06 v600 - add stdlib.h wherever there is stdio.h for altix build
-* *acm  10/06 v601 - Fix by Remik for bug 1455, altix. For string attributes,
-*                    allocate one more than the att.len, presumably for the null
-*                    terminator for the string. Also double check the string length
-*                    that is returned from the call to nc_inq_att, and make sure
-*                    we allocate the correct amount of memory for the string.
-*
-* *acm  11/06 v601 - ncf_delete_var_att didnt reset the attribute id's.  Fix this.
-*
-* *acm  11/06 v601 - new routine ncf_add_var_num_att_dp
-* *acm  11/06 v601 - new routine ncf_repl_var_att_dp
-* *acm  11/06 v601 - in ncf_init_other_dset, set the name of the global attribute
-*                    to history, and define its attribute type and outflag.
-* *acm  11/06 v601 - new routine ncf_rename_var, for fix of bug 1471
-* *acm  11/06 v601 - in ncf_delete_var_att, renumber the attid for the remaining attributes.
-* *acm* 12/06 v602 - new attribute assigned to coordinate vars on input, orig_file_axname
-* *acm*  2/07 V602 - Fix bug 1492, changing attributes of coordinate variables; use pseudo-dataset
-*                       of user-defined axes to keep track of attributes.
-* *acm* 10 07      - Patches for memory-leak fixes from Remiz Ziemlinski
-* *acm* 10/07      - Further fixes by Remik, initializing att.vals, att.string to NULL,
-*                      set var.ndims = 0 in ncf_init_other_dset
-* *acm*  3/08      - Fix bug 1534; needed to initialize attribute output flag for
-*                    the bounds attribute on coordinate axes.
-* *acm*  1/09      - If adding a new global attribute, also increment ngatts.
-* *acm*  1/09      - Fix bug 1620; In ncf_add_var, which is used when defining user
-*                    variables, and also for reading in EZ datasets, I had the default
-*                    attribute type for missing_value attribute set to NC_DOUBLE. There's no
-*                    reason for this as these variables are always single precision.
-* *acm*  5/09      - Fix bug 1664. For user variables, varid matches the uvar from Ferret.
-*                    therefore it may be larger than nc_ptr->nvars
-* *acm*  3/11      - Fix bug 1825. Routine ncf_get_var_seq no longer called
-* *acm*  1/12      - Ferret 6.8 ifdef double_p for double-precision ferret, see the
-*                    definition of macro DFTYPE in ferretmacros.h.
-* *acm*  5/12 V6.8 - Additions for creating aggregate datasets
-* *acm*  8/13        Fix bug 2089. Mark the scale_factor and add_offset attributes  
-*                    to-be-output when writing variables.
-* *acm*  8/13        Fix bug 2091. If a string variable has the same name as a dimension,
-*                    DO NOT mark it as an axis.
-* *acm*  v694 1/15   For ticket 2227: if a dimension from a nc file is not also a 
-*                    1-D coordinate var, don't write the axis Ferret creates. Do report
-*                    in dimnames outputs the dimension names as used by Ferret e.g. a
-*                    renamed axis TIME -> TIME1
-* *sh*  12/15        Bug fix: ncf_get_agg_member is called with the sequence number of the
-*                    desired dataset. So store that in order to locate the right member 
-* *acm*  2/16        Additions for ticket 2352: LET/D variables and attributes. User-variables
-*                    defined with LET/D=n are stored with dataset n. A flag in the ncvar 
-*                    structure tells that the variable is a user-var. A new subroutine call,
-*                    ncf_get_var_uvflag returns this flag, so that SHOW DATA/ATTRIBUTES can 
-*                    list these variables. When user variables are canceled, the varids for 
-*                    user-variables remaining in the dataset are adjusted.
-* *sh*  5/16         added grid management for uvars -- dset/grid paris stored in a LIST
-*                    replaced uvflag with uvarid
-*/
+ *
+ * Ansley Manke
+ * Ferret V600 April 26, 2005
+ * V5600 *acm* fix declarations of fillc and my_len as required by solaris compiler
+ *
+ * This file contains all the utility functions which Ferret
+ * needs in order to do attribute handling. Based on code for EF's.
+ * calls are made to nc_ routines from netcdf library.
+ */
+
+/* *acm   9/06 v600 - add stdlib.h wherever there is stdio.h for altix build */
+/* *acm  10/06 v601 - Fix by Remik for bug 1455, altix. For string attributes,  */
+/*                    allocate one more than the att.len, presumably for the null  */
+/*                    terminator for the string. Also double check the string length */
+/*                    that is returned from the call to nc_inq_att, and make sure */
+/*                    we allocate the correct amount of memory for the string.*/
+/* */
+/* *acm  11/06 v601 - ncf_delete_var_att didnt reset the attribute id's.  Fix this. */
+/*   */
+/* *acm  11/06 v601 - new routine ncf_add_var_num_att_dp */
+/* *acm  11/06 v601 - new routine ncf_repl_var_att_dp */
+/* *acm  11/06 v601 - in ncf_init_other_dset, set the name of the global attribute  */
+/*                    to history, and define its attribute type and outflag.*/
+/* *acm  11/06 v601 - new routine ncf_rename_var, for fix of bug 1471 */
+/* *acm  11/06 v601 - in ncf_delete_var_att, renumber the attid for the remaining attributes. */
+/* *acm* 12/06 v602 - new attribute assigned to coordinate vars on input, orig_file_axname */
+/* *acm*  2/07 V602   Fix bug 1492, changing attributes of coordinate variables; use pseudo-dataset */
+/*                    of user-defined axes to keep track of attributes. */
+/* *acm* 10 07        Patches for memory-leak fixes from Remiz Ziemlinski */
+/* *acm* 10/07        Further fixes by Remik, initializing att.vals, att.string to NULL, */
+/*                    set var.ndims = 0 in ncf_init_other_dset */
+/* *acm*  3/08        Fix bug 1534; needed to initialize attribute output flag for */
+/*                    the bounds attribute on coordinate axes.*/
+/* *acm*  1/09        If adding a new global attribute, also increment ngatts. */
+/* *acm*  1/09        Fix bug 1620; In ncf_add_var, which is used when defining user  */
+/*                    variables, and also for reading in EZ datasets, I had the default */
+/*                    attribute type for missing_value attribute set to NC_DOUBLE. There's no  */
+/*                    reason for this as these variables are always single precision.*/
+/* *acm* 5/09 *acm*   Fix bug 1664. For user variables, varid matches the uvar from Ferret. */
+/*                    therefore it may be larger than nc_ptr->nvars */
+/* *acm* 3/11 *acm*   Fix bug 1825. Routine ncf_get_var_seq no longer called */
+/* *acm*  1/12      - Ferret 6.8 ifdef double_p for double-precision ferret, see the */
+/*                    definition of macro DFTYPE in ferretmacros.h. */
+/* *acm*  5/12        V6.8 Additions for creating aggregate datasets */
+/* *acm*  8/13        Fix bug 2089. Mark the scale_factor and add_offset attributes   */
+/*                    to-be-output when writing variables. */
+/* *acm*  8/13        Fix bug 2091. If a string variable has the same name as a dimension, */
+/*                    DO NOT mark it as an axis.
+*  *acm*  v694 1/15   For ticket 2227: if a dimension from a nc file is not also a
+*                     1-D coordinate var, don't write the axis Ferret creates. Do report
+*                     in dimnames outputs the dimension names as used by Ferret e.g. a
+*                     renamed axis TIME -> TIME1 */
+/* *sh*  12/15        Bug fix: ncf_get_agg_member is called with the sequence number of the
+ *                    desired dataset. So store that in order to locate the right member */
+/* *acm*  2/16        Additions for ticket 2352: LET/D variables and attributes. User-variables
+*                     defined with LET/D=n are stored with dataset n. A flag in the ncvar
+*                     structure tells that the variable is a user-var. A new subroutine call,
+*                     ncf_get_var_uvflag returns this flag, so that SHOW DATA/ATTRIBUTES can
+*                     list these variables. When user variables are canceled, the varids for
+*                     user-variables remaining in the dataset are adjusted. */
+/* *sh*  5/16         added grid management for uvars -- dset/grid paris stored in a LIST
+                      replaced uvflag with uvarid */
+/* *acm* 6/16         Make sure var.nmemb is initialized when adding a new variable. */
+/* *kms* 8/16         Rework the entire file to remove memory leaks and improve consistent initialization */
+/* *acm* 10/16        ncf_get_uvar_grid now returns the datatype as well as the grid  */
 
 #include <Python.h> /* make sure Python.h is first */
-#include "ferretmacros.h"
-#include <stddef.h>  /* size_t, ptrdiff_t; gfortran on linux rh5*/
-#include <unistd.h>		/* for convenience */
-#include <stdlib.h>		/* for convenience */
-#include <stdio.h>		/* for convenience */
-#include <string.h>		/* for convenience */
-#include <fcntl.h>		/* for fcntl() */
+#include <stddef.h>             /* size_t, ptrdiff_t; gfortran on linux rh5*/
+#include <unistd.h>             /* for convenience */
+#include <stdlib.h>             /* for convenience */
+#include <stdio.h>              /* for convenience */
+#include <string.h>             /* for convenience */
+#include <fcntl.h>              /* for fcntl() */
 #include <assert.h>
-#include <sys/types.h>	        /* required for some of our prototypes */
+#include <sys/types.h>          /* required for some of our prototypes */
 #include <sys/stat.h>
 #include <sys/errno.h>
 #include "ferretmacros.h"
 
 #include "netcdf.h"
 #include "nc.h"
-#include "list.h"  /* locally added list library */
+#include "list.h"               /* locally added list library */
 #include "NCF_Util.h"
 
-/* ................ Global Variables ................ */
-
-static LIST  *GLOBAL_ncdsetList;
-static int list_initialized = FALSE;
-
-/* ............. Function Declarations .............. */
-/*
- * 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 
- * an underscore.
- */
-
+/* List of all datasets (static, so only visible locally) */
+static LIST *GLOBAL_ncdsetList = NULL;
 
 /* .... Functions called by Ferret .... */
 int  FORTRAN(ncf_inq_ds)( int *, int *, int *, int *, int *);
@@ -138,16 +127,14 @@ int  FORTRAN(ncf_inq_var) (int *, int *, char *, int *, int *, int *, int *, int
 
 int  FORTRAN(ncf_inq_var_att)( int *, int *, int *, char *, int *, int *, int *, int *);
 
-void FORTRAN(ncf_free_attlist)(ncvar*);
-
 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_id)( int *, int*, char *); 
-int  FORTRAN(ncf_get_var_id_case)( int *, int*, char *); 
-int  FORTRAN(ncf_get_var_axflag)( int *, int *, int *, 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 *);
 int  FORTRAN(ncf_get_var_attr_name) (int *, int *, int *, int *, char*);
 int  FORTRAN(ncf_get_var_attr_id) (int *, int *, char* , int*);
 int  FORTRAN(ncf_get_var_attr_id_case) (int *, int *, char* , int*);
@@ -156,11 +143,12 @@ int  FORTRAN(ncf_get_var_attr) (int *, int *, char* , char* , int *, double *);
 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_outtype) (int *, int *, int *);
 int  FORTRAN(ncf_get_var_uvflag) (int *, int *, int *);
 
 int  FORTRAN(ncf_init_uvar_dset)( int *);
 int  FORTRAN(ncf_init_uax_dset)( int *);
+void FORTRAN(ncf_datasets_list_clear)(void);
 int  FORTRAN(ncf_add_dset)( int *, int *, char *, char *);
 int  FORTRAN(ncf_init_other_dset)( int *, char *, char *);
 int  FORTRAN(ncf_delete_dset)( int *);
@@ -184,7 +172,7 @@ int  FORTRAN(ncf_set_var_out_flag)( int *, int *, int *);
 int  FORTRAN(ncf_set_var_outtype)( int *, int *, int *);
 int  FORTRAN(ncf_set_axdir)(int *, int *, int *);
 int  FORTRAN(ncf_transfer_att)(int *, int *, int *, int *, int *);
- 
+
 int  FORTRAN(ncf_init_agg_dset)( int *, char *);
 int  FORTRAN(ncf_add_agg_member)( int *, int *, int *);
 int  FORTRAN(ncf_get_agg_count)( int *, int *);
@@ -195,507 +183,371 @@ int  FORTRAN(ncf_put_agg_memb_grid)( int *, int *, int *, int *);
 /* uvar grid management functions */
 int  FORTRAN(ncf_free_uvar_grid_list)( int *, int *);
 int  FORTRAN(ncf_set_uvar_grid)( int *, int *, int *, int *, int *);
-int  FORTRAN(ncf_get_uvar_grid)( int *, int *, int *, int *);
+int  FORTRAN(ncf_get_uvar_grid)( int *, int *, int *, int *, int *);
 int  FORTRAN(ncf_set_uvar_aux_info)( int *, int *, int *, int *, int *);
 int  FORTRAN(ncf_get_uvar_aux_info)( int *, int *, int *, int *, int *);
 int  FORTRAN(ncf_get_uvar_grid_list_len)( int *, int *, int *);
 int  FORTRAN(ncf_delete_uvar_grid)( int *, int *, int *);
+int  FORTRAN(ncf_next_uvar_grid_in_list)( int *, int *, int *, int *);
 
-/* .... Functions called internally .... */
+/* .... Functions only called internally (thus static) .... */
 
-ncdset *ncf_ptr_from_dset(int *);
-LIST *ncf_get_ds_varlist( int *);
-LIST *ncf_get_ds_agglist( int *);
-LIST *ncf_get_ds_var_attlist (int *, int *);
-LIST *ncf_get_ds_var_gridlist (int *, int *);
+static ncdset *ncf_get_ds_ptr(int *);
+static LIST *ncf_get_ds_varlist(int *);
+static ncvar *ncf_get_ds_var_ptr(int *, int *);
+static void ncf_init_attribute(ncatt *att_ptr);
+static void ncf_free_attribute(char *);
+static void ncf_free_attlist(ncvar *);
+static void ncf_init_variable(ncvar *);
+static void ncf_free_variable(char *);
+static void ncf_init_dataset(ncdset *);
+static void ncf_free_dataset(char *);
 
 static int initialize_output_flag (char *, int);
-int NCF_ListTraverse_FoundDsetName( char *, char * );
-int NCF_ListTraverse_FoundDsetID( char *, char * );
-int NCF_ListTraverse_FoundVarName( char *, char * );
-int NCF_ListTraverse_FoundVarNameCase( char *, char * );
-int NCF_ListTraverse_FoundVarID( char *, char * );
-int NCF_ListTraverse_FoundUvarID( char *, char * );
-int NCF_ListTraverse_FoundVarAttName( char *, char * );
-int NCF_ListTraverse_FoundVarAttNameCase( char *, char * );
-int NCF_ListTraverse_FoundVarAttID( char *, char * );
-int NCF_ListTraverse_FoundVariMemb( char *, char * );
-int NCF_ListTraverse_FoundDsMemb( char *, char * );
-int NCF_ListTraverse_FoundDsMemb( char *, char * );
-int NCF_ListTraverse_FoundGridDset( char *, char * );
+static int NCF_ListTraverse_FoundDsetName( char *, char * );
+static int NCF_ListTraverse_FoundDsetID( char *, char * );
+static int NCF_ListTraverse_FoundVarName( char *, char * );
+static int NCF_ListTraverse_FoundVarNameCase( char *, char * );
+static int NCF_ListTraverse_FoundVarID( char *, char * );
+static int NCF_ListTraverse_FoundUvarID( char *, char * );
+static int NCF_ListTraverse_FoundVarAttName( char *, char * );
+static int NCF_ListTraverse_FoundVarAttNameCase( char *, char * );
+static int NCF_ListTraverse_FoundVarAttID( char *, char * );
+static int NCF_ListTraverse_FoundVariMemb( char *, char * );
+static int NCF_ListTraverse_FoundDsMemb( char *, char * );
+static int NCF_ListTraverse_FoundDsMemb( char *, char * );
+static int NCF_ListTraverse_FoundGridDset( char *, char * );
 
-/*
+/* ----
  * Find a dataset based on its integer ID and return the scalar information:
  * ndims, nvars, ngatts, recdim.
  */
-
 int FORTRAN(ncf_inq_ds)( int *dset, int *ndims, int *nvars, int *ngatts, int *recdim )
 {
-  ncdset *nc_ptr=NULL;
-  int return_val;
+    ncdset *nc_ptr;
 
-  return_val = ATOM_NOT_FOUND;
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL ) { return return_val; }
+    nc_ptr = ncf_get_ds_ptr(dset);
+    if ( nc_ptr == NULL )
+        return ATOM_NOT_FOUND;
 
-  *ndims = nc_ptr->ndims;
-  *nvars = nc_ptr->nvars;
-  *ngatts = nc_ptr->ngatts;
+    *ndims = nc_ptr->ndims;
+    *nvars = nc_ptr->nvars;
+    *ngatts = nc_ptr->ngatts;
 
-/* dimension for Fortran, add 1 */
-  *recdim = nc_ptr->recdim+1;
+    /* dimension for Fortran, add 1 */
+    *recdim = nc_ptr->recdim+1;
 
-  return_val = FERR_OK; 
-  return return_val; 
+    return FERR_OK;
 }
 
 /* ----
  * Find a dataset based on its integer ID and return the dimension info for
  * dimension given.
  */
-int  FORTRAN(ncf_inq_ds_dims)( int *dset, int *idim, char dname[], int *namelen, int *dimsize)
+int FORTRAN(ncf_inq_ds_dims)( int *dset, int *idim, char dname[], int *namelen, int *dimsize)
 {
-  ncdset *nc_ptr=NULL;
-  int return_val;
-
-  return_val = ATOM_NOT_FOUND;
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL ) { return return_val; }
-  
-  strcpy (dname, nc_ptr->dims[*idim-1].name);
-  *namelen = strlen(dname);
-  *dimsize = nc_ptr->dims[*idim-1].size;
-
-  return_val = FERR_OK; 
-  return return_val; 
+    ncdset *nc_ptr;
+
+    nc_ptr = ncf_get_ds_ptr(dset);
+    if ( nc_ptr == NULL )
+        return ATOM_NOT_FOUND;
+
+    strcpy (dname, nc_ptr->dims[*idim-1].name);
+    *namelen = strlen(dname);
+    *dimsize = nc_ptr->dims[*idim-1].size;
+
+    return FERR_OK;
 }
 
 /* ----
- * Find a variable in a dataset based on the dataset integer ID and 
- * variable id. Return the variable name (in its original upper/lower 
-   case form), type, nvdims, vdims, nvatts.
+ * Find a variable in a dataset based on the dataset integer ID and
+ * variable id. Return the variable name (in its original upper/lower
+     case form), type, nvdims, vdims, nvatts.
  */
+int FORTRAN(ncf_inq_var)( int *dset, int *varid, char newvarname[], int *len_newvarname, int *vtype,
+                          int *nvdims, int *nvatts, int* coord_var, int *outflag, int *vdims )
+{
+    ncvar *var_ptr;
+    int i;
 
- int FORTRAN(ncf_inq_var) (int *dset, int *varid, char newvarname[], int *len_newvarname, int *vtype, int *nvdims,
-     int *nvatts, int* coord_var, int *outflag, int *vdims)
+    /*
+     * Get the list of variables.
+     */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
+
+    strcpy(newvarname, var_ptr->name);
+    *len_newvarname = strlen(newvarname);
+    *vtype = var_ptr->type;
+    *nvdims = var_ptr->ndims;
+    *nvatts = var_ptr->natts;
+    *outflag = var_ptr->all_outflag;
+    *coord_var = var_ptr->is_axis;
+
+    for (i = 0; i < var_ptr->ndims; i++) {
+        vdims[i] = var_ptr->dims[i];
+    }
 
-{
-  ncdset *nc_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  int i, ivar;
-  int ndx;
-  int the_dim;
-  int outdims;
-  int status=LIST_OK;
-  int return_val;
-  LIST *varlist;
-	LIST_ELEMENT *lp;
-
-  return_val = ATOM_NOT_FOUND;  
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL )return return_val;
-
-   /*
-   * Get the list of variables.  
-   */
-  varlist = ncf_get_ds_varlist(dset);
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
-  }
-
-  var_ptr=(ncvar *)list_curr(varlist); 	
-
-  strcpy(newvarname, var_ptr->name);
-  *len_newvarname = strlen(newvarname);
-  *vtype = var_ptr->type;
-  *nvdims = var_ptr->ndims;
-  *nvatts = var_ptr->natts;
-  *outflag = var_ptr->all_outflag;
-  *coord_var = var_ptr->is_axis;
-
-   for (i=0; i <var_ptr->ndims ;i++ )
-  {
-	  the_dim =  var_ptr->dims[i];
-	  vdims[i] = the_dim ;
-  }
-
-  return_val = FERR_OK;
-  return return_val;
+    return FERR_OK;
 }
 
 /* ----
- * Find a variable in a dataset based on the dataset integer ID and 
+ * Find a variable in a dataset based on the dataset integer ID and
  * variable id. Return the variable output type.
  */
-
- int FORTRAN(ncf_get_var_outtype) (int *dset, int *varid,  int *outtype)
-
+int FORTRAN(ncf_get_var_outtype)( int *dset, int *varid,    int *outtype )
 {
-  ncdset *nc_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  LIST *varlist;
-
+    ncvar *var_ptr;
 
-  return_val = ATOM_NOT_FOUND;
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
 
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL )return return_val;
-
-   /*
-   * Get the list of variables.  
-   */
-  varlist = ncf_get_ds_varlist(dset);
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
-  }
-  
-  var_ptr=(ncvar *)list_curr(varlist); 
-
-  *outtype = var_ptr->outtype;
-   
-  return_val = FERR_OK;
-  return return_val;
+    *outtype = var_ptr->outtype;
+    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
  */
-int  FORTRAN(ncf_inq_var_att)( int *dset, int *varid, int *attid, char attname[], int *namelen, int *attype, int *attlen, int *attoutflag)
-
+int FORTRAN(ncf_inq_var_att)( int *dset, int *varid, int *attid, char attname[],
+                              int *namelen, int *attype, int *attlen, int *attoutflag )
 {
-  ncatt *att_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  int i;
-  LIST *varlist;
-  LIST *varattlist;
-	LIST_ELEMENT* lp;
-
-   /*
-   * Get the list of variables.  
-   */
-  varlist = ncf_get_ds_varlist(dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
-  if (var_ptr->natts < 1) return ATOM_NOT_FOUND;
-
-   /*
-   * Get the list of attributes for the variable in the dataset
-   */
-  varattlist = ncf_get_ds_var_attlist(dset, varid);
-
-  status = list_traverse(varattlist, (char *) attid, NCF_ListTraverse_FoundVarAttID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
-    }
+    ncatt *att_ptr;
+    ncvar *var_ptr;
+    int status;
+    LIST *varattlist;
+
+    /* Get the variable */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
+    if ( var_ptr->natts < 1 )
+        return ATOM_NOT_FOUND;
+
+    /*
+     * The list of attributes for the variable in the dataset
+     */
+    varattlist = var_ptr->varattlist;
+    if ( varattlist == NULL )
+         return ATOM_NOT_FOUND;
 
-  att_ptr=(ncatt *)list_curr(varattlist); 
+    /* Get the attribute from this list */
+    status = list_traverse(varattlist, (char *) attid, NCF_ListTraverse_FoundVarAttID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+    att_ptr=(ncatt *)list_curr(varattlist);
 
-  strcpy(attname, att_ptr->name);
-  *namelen = strlen(attname);
-  *attype = att_ptr->type; 
-  *attlen = att_ptr->len;
-  *attoutflag = att_ptr->outflag;
+    strcpy(attname, att_ptr->name);
+    *namelen = strlen(attname);
+    *attype = att_ptr->type;
+    *attlen = att_ptr->len;
+    *attoutflag = att_ptr->outflag;
 
-  return_val = FERR_OK;
-  return return_val;
+    return FERR_OK;
 }
 
 /* ----
  * Find a dataset based on its name and
  * return the ferret dataset number.
  */
-
 int FORTRAN(ncf_get_dsnum)( char name[] )
 {
-  ncdset *nc_ptr=NULL;
-  int status=LIST_OK;
-
-  static int return_val=0; /* static because it needs to exist after the return statement */
-
-  /*
-   * Find the dataset.
-   */
+    ncdset *nc_ptr;
+    int status;
 
-  status = list_traverse(GLOBAL_ncdsetList, name, NCF_ListTraverse_FoundDsetName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-
-  /*
-   * If the search failed, set the dset to ATOM_NOT_FOUND.
-   */
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
-  }
+    /*
+     * Find the dataset.
+     */
+    status = list_traverse(GLOBAL_ncdsetList, name, NCF_ListTraverse_FoundDsetName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
 
-  nc_ptr=(ncdset *)list_curr(GLOBAL_ncdsetList); 
+    /*
+     * If the search failed, set the dset to ATOM_NOT_FOUND.
+     */
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
 
-  return_val = nc_ptr->fer_dsetnum;
-  return return_val;
+    nc_ptr=(ncdset *)list_curr(GLOBAL_ncdsetList);
+    return nc_ptr->fer_dsetnum;
 }
 
 /* ----
  * Find a dataset based on its integer ID and return the name.
  */
-
 int FORTRAN(ncf_get_dsname)( int *dset, char name[] )
 {
-  ncdset *nc_ptr=NULL;
-  int return_val;
-
-  return_val = ATOM_NOT_FOUND;
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL ) { return return_val; }
+    ncdset *nc_ptr;
 
-  strcpy(name, nc_ptr->fername);
+    nc_ptr = ncf_get_ds_ptr(dset);
+    if ( nc_ptr == NULL )
+        return ATOM_NOT_FOUND;
 
-  return_val = FERR_OK;
-  return return_val;
+    strcpy(name, nc_ptr->fername);
+    return FERR_OK;
 }
 
 /* ----
  * Find a dataset based on its integer ID and a dimension name. Return the dimension ID.
  */
-int FORTRAN(ncf_get_dim_id)( int *dset, char dname[])
+int FORTRAN(ncf_get_dim_id)( int *dset, char dname[] )
 {
-  ncdset *nc_ptr=NULL;
-  int return_val;
-  int idim;
-  int sz;
-  int szdim;
-
-  return_val = ATOM_NOT_FOUND;
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL ) { return return_val; }
-  
-  for (idim = 0; idim < nc_ptr->ndims; idim++) {
-	sz = strlen(dname);
-	szdim = strlen(nc_ptr->dims[idim].name);
-    if ( (sz == szdim) &&
-		 (nc_ptr->dims[idim].size !=0) && 
-		 (strncmp(dname, nc_ptr->dims[idim].name, sz) == 0) )
-    { return_val = idim + 1;
-	  return return_val;
-    } 
-  }
-  return return_val;
+    ncdset *nc_ptr;
+    int idim;
+    int sz;
+    int szdim;
+
+    nc_ptr = ncf_get_ds_ptr(dset);
+    if ( nc_ptr == NULL )
+        return ATOM_NOT_FOUND;
+
+    for (idim = 0; idim < nc_ptr->ndims; idim++) {
+        sz = strlen(dname);
+        szdim = strlen(nc_ptr->dims[idim].name);
+        if ( (sz == szdim) &&
+                 (nc_ptr->dims[idim].size !=0) &&
+                 (strncmp(dname, nc_ptr->dims[idim].name, sz) == 0) ) {
+            return (idim + 1);
+        }
+    }
+
+    return ATOM_NOT_FOUND;
 }
 
 /* ----
- * Find a variable in a dataset based on the dataset integer ID and 
+ * 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 )
 {
-  ncdset *nc_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  int i;
-  int status=LIST_OK;
-  int return_val;
-  LIST *varlist;
-  LIST *dummy;
-
-  return_val = ATOM_NOT_FOUND;  
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL )return return_val;
-
-   /*
-   * Get the list of variables.  
-   */
-  varlist = ncf_get_ds_varlist(dset);
-  dummy = list_mvfront(varlist);
-  var_ptr=(ncvar *)list_front(varlist); 
-
-  for (i = 0; i < *ivar; i++) {
-     strcpy(string, var_ptr->name); 
-     dummy = list_mvnext(varlist);
-     var_ptr=(ncvar *)list_curr(varlist);  
-  }
-  
-  free(dummy);
-  return_val = FERR_OK;
-  return return_val;
+    ncvar *var_ptr;
+
+    /* Get the variable */
+    var_ptr = ncf_get_ds_var_ptr(dset, ivar);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
+
+    strcpy(string, var_ptr->name);
+
+    return FERR_OK;
 }
 
 /* ----
- * Find a variable in a dataset based on the dataset integer ID and 
+ * Find a variable in a dataset based on the dataset integer ID and
  * variable name. Return the variable id, or NOT FOUND if it does not exist
  */
- int FORTRAN(ncf_get_var_id) (int *dset, int *varid, char string[])
-
+int FORTRAN(ncf_get_var_id)( int *dset, int *varid, char string[] )
 {
-  ncdset *nc_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  LIST *varlist;
-
-  return_val = ATOM_NOT_FOUND;  
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL )return return_val;
-
-   /*
-   * Get the list of variables.  
-   */
-
-  varlist = ncf_get_ds_varlist(dset);
-  status = list_traverse(varlist, string, NCF_ListTraverse_FoundVarName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
-  }
-  
-  var_ptr=(ncvar *)list_curr(varlist); 
-  *varid = var_ptr->varid;
-  return_val = FERR_OK;
+    ncvar *var_ptr;
+    int status;
+    LIST *varlist;
+
+    /*
+     * Get the list of variables.
+     */
+    varlist = ncf_get_ds_varlist(dset);
+    if ( varlist == NULL )
+        return ATOM_NOT_FOUND;
+    status = list_traverse(varlist, string, NCF_ListTraverse_FoundVarName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
 
-  return return_val;
+    var_ptr=(ncvar *)list_curr(varlist);
+    *varid = var_ptr->varid;
+
+    return FERR_OK;
 }
+
 /* ----
- * Find a variable in a dataset based on the dataset integer ID and 
+ * Find a variable in a dataset based on the dataset integer ID and
  * variable name. Return the variable id, or NOT FOUND if it does not exist
  */
- int FORTRAN(ncf_get_var_id_case) (int *dset, int *varid, char string[])
-
+int FORTRAN(ncf_get_var_id_case)( int *dset, int *varid, char string[] )
 {
-  ncdset *nc_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  LIST *varlist;
-
-  return_val = ATOM_NOT_FOUND;  
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL )return return_val;
-
-   /*
-   * Get the list of variables.  
-   */
-
-  varlist = ncf_get_ds_varlist(dset);
-  status = list_traverse(varlist, string, NCF_ListTraverse_FoundVarNameCase, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
-  }
-  
-  var_ptr=(ncvar *)list_curr(varlist); 
-  *varid = var_ptr->varid;
-  return_val = FERR_OK;
+    ncvar *var_ptr;
+    int status;
+    LIST *varlist;
+
+    /*
+     * Get the list of variables.
+     */
+    varlist = ncf_get_ds_varlist(dset);
+    if ( varlist == NULL )
+        return ATOM_NOT_FOUND;
+    status = list_traverse(varlist, string, NCF_ListTraverse_FoundVarNameCase, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+
+    var_ptr=(ncvar *)list_curr(varlist);
+    *varid = var_ptr->varid;
 
-  return return_val;
+    return FERR_OK;
 }
+
 /* ----
- * Find a variable in a dataset based on the dataset integer ID and 
+ * Find a variable in a dataset based on the dataset integer ID and
  * variable ID. Return the coordinate-axis flag.
  */
- int FORTRAN(ncf_get_var_axflag) (int *dset, int *varid, int* coord_var, int* ax_dir)
-
+int FORTRAN(ncf_get_var_axflag)( int *dset, int *varid, int* coord_var, int* ax_dir )
 {
-  ncdset *nc_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  int i;
-  int status=LIST_OK;
-  int return_val;
-  LIST *varlist;
-
-  return_val = FALSE;  
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL )return return_val;
-
-   /*
-   * Get the list of variables.  
-   */
-  varlist = ncf_get_ds_varlist(dset);
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
-  }
-  
-  var_ptr=(ncvar *)list_curr(varlist); 
-  
-  *coord_var = var_ptr->is_axis;
-  *ax_dir = var_ptr->axis_dir;
-
-  return_val = FERR_OK;
-  return return_val;
+    ncvar *var_ptr;
+
+    /*
+     * Get the list of variables.
+     */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
+
+    *coord_var = var_ptr->is_axis;
+    *ax_dir = var_ptr->axis_dir;
+
+    return FERR_OK;
 }
 
 /* ----
- * Find a variable in a dataset based on the dataset integer ID and 
+ * Find a variable in a dataset based on the dataset integer ID and
  * variable ID. Return the variable all_outflag for attributes
  */
- int FORTRAN(ncf_get_var_outflag) (int *dset, int *varid, int *iflag)
-
+int FORTRAN(ncf_get_var_outflag)( int *dset, int *varid, int *iflag )
 {
-  ncdset *nc_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  int i;
-  int status=LIST_OK;
-  int return_val;
-  LIST *varlist;
-
-  return_val = 0;  
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL )return return_val;
-
-   /*
-   * Get the list of variables and the variable based on its id
-   */
-  varlist = ncf_get_ds_varlist(dset);
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
-  }
-  
-  var_ptr=(ncvar *)list_curr(varlist); 
-  *iflag = var_ptr->all_outflag;
+    ncvar *var_ptr;
 
-  return FERR_OK;
+    /*
+     * Get the list of variables and the variable based on its id
+     */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
+
+    *iflag = var_ptr->all_outflag;
+
+    return FERR_OK;
 }
 
 /* ----
- * Find a variable in a dataset based on the dataset integer ID and 
- * variable ID. Return the return the flag indicating file 
-*  variable vs user-variable
+ * Find a variable in a dataset based on the dataset integer ID and
+ * variable ID. Return the return the flag indicating file
+ * variable vs user-variable
  */
- int FORTRAN(ncf_get_var_uvflag) (int *dset, int *varid, int *uvflag)
-
+int FORTRAN(ncf_get_var_uvflag)( int *dset, int *varid, int *uvflag )
 {
-  ncdset *nc_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  int i;
-  int status=LIST_OK;
-  int return_val;
-  LIST *varlist;
-  int flag;
-
-  return_val = 0;  
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL )return return_val;
-
-   /*
-   * Get the list of variables and the variable based on its id
-   */
-  varlist = ncf_get_ds_varlist(dset);
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
-  }
-  
-  var_ptr=(ncvar *)list_curr(varlist); 
-  if (var_ptr->uvarid == 0)
-    flag = 0;
-  else
-    flag = 1;
+    ncvar *var_ptr;
+
+    /*
+     * Get the list of variables and the variable based on its id
+     */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
 
-  *uvflag = flag;
+    if (var_ptr->uvarid == 0)
+        *uvflag = 0;
+    else
+        *uvflag = 1;
 
-  return FERR_OK;
+    return FERR_OK;
 }
 
 
@@ -703,143 +555,110 @@ int FORTRAN(ncf_get_dim_id)( int *dset, char dname[])
  * Find a variable attribute based on the dataset ID and variable ID and attribute name
  * Return the attribute ID
  */
- int FORTRAN(ncf_get_var_attr_id) (int *dset, int *varid, char* attname, int* attid)
-
+int FORTRAN(ncf_get_var_attr_id)( int *dset, int *varid, char* attname, int* attid )
 {
-  ncdset *nc_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  ncatt *att_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  int i;
-  LIST *varlist;
-  LIST *varattlist;
-  LIST *dummy;
-
-   /*
-   * Get the list of variables.  
-   */
-  varlist = ncf_get_ds_varlist(dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
-  if (var_ptr->natts < 1) return ATOM_NOT_FOUND;
-
-   /*
-   * Get the list of attributes for the variable in the dataset. find attname.
-   */
-  varattlist = ncf_get_ds_var_attlist(dset, varid);
-
-  status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
-    }
+    ncvar *var_ptr;
+    ncatt *att_ptr;
+    int status;
+    LIST *varattlist;
+
+    /* Get the variable */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
+
+    /*
+     * The list of attributes for the variable in the dataset.
+     */
+    if ( var_ptr->natts < 1 )
+        return ATOM_NOT_FOUND;
+    varattlist = var_ptr->varattlist;
+    if ( varattlist == NULL )
+        return ATOM_NOT_FOUND;
 
-  att_ptr=(ncatt *)list_curr(varattlist); 
-  *attid = att_ptr->attid;
+    /* Find attname */
+    status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
 
-  return_val = FERR_OK;
-  return return_val;
+    att_ptr = (ncatt *) list_curr(varattlist);
+    *attid = att_ptr->attid;
+
+    return FERR_OK;
 }
 
 /* ----
  * Find a variable attribute based on the dataset ID and variable ID and attribute name
  * Return the attribute ID
  */
- int FORTRAN(ncf_get_var_attr_id_case) (int *dset, int *varid, char* attname, int* attid)
-
+int FORTRAN(ncf_get_var_attr_id_case)( int *dset, int *varid, char* attname, int* attid )
 {
-  ncdset *nc_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  ncatt *att_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  int i;
-  LIST *varlist;
-  LIST *varattlist;
-  LIST *dummy;
-
-   /*
-   * Get the list of variables.  
-   */
-  varlist = ncf_get_ds_varlist(dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
-  if (var_ptr->natts < 1) return ATOM_NOT_FOUND;
-
-   /*
-   * Get the list of attributes for the variable in the dataset. find attname.
-   */
-  varattlist = ncf_get_ds_var_attlist(dset, varid);
-
-  status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttNameCase, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
-    }
+    ncvar *var_ptr;
+    ncatt *att_ptr;
+    int status;
+    LIST *varattlist;
+
+    /*
+     * Get the list of variables.
+     */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
+
+    /*
+     * The list of attributes for the variable in the dataset.
+     */
+    if ( var_ptr->natts < 1 )
+        return ATOM_NOT_FOUND;
+    varattlist = var_ptr->varattlist;
+    if ( varattlist == NULL )
+        return ATOM_NOT_FOUND;
 
-  att_ptr=(ncatt *)list_curr(varattlist); 
-  *attid = att_ptr->attid;
+    /* Find attname */
+    status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttNameCase, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
 
-  return_val = FERR_OK;
-  return return_val;
+    att_ptr = (ncatt *) list_curr(varattlist);
+    *attid = att_ptr->attid;
+
+    return FERR_OK;
 }
 
 /* ----
  * Find a variable attribute based on the dataset ID and variable ID and attribute ID.
  * Return the attribute name.
  */
- int FORTRAN(ncf_get_var_attr_name) (int *dset, int *varid, int* attid, int *namelen, char* attname)
-
+int FORTRAN(ncf_get_var_attr_name)( int *dset, int *varid, int* attid, int *namelen, char* attname )
 {
-  ncdset *nc_ptr=NULL;
-  ncvar *var_ptr=NULL;
-
-  ncatt *att_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  int i;
-  LIST *varlist;
-  LIST *varattlist;
-  LIST *dummy;
-
-   /*
-   * Get the list of variables.  
-   */
-  varlist = ncf_get_ds_varlist(dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
-  if (var_ptr->natts < 1) return ATOM_NOT_FOUND;
-
-   /*
-   * Get the list of attributes for the variable in the dataset
-   */
-  varattlist = ncf_get_ds_var_attlist(dset, varid);
-
-  dummy = list_mvfront(varattlist);
-  att_ptr=(ncatt *)list_front(varattlist); 
-
-  for (i = 0; i < *attid; i++) {
-     strcpy(attname, att_ptr->name);
-	 dummy = list_mvnext(varattlist);
-     att_ptr=(ncatt *)list_curr(varattlist);  
-  }
-  
-  
-  *namelen = strlen(attname);
-  return_val = FERR_OK;
-  return return_val;
+    ncvar *var_ptr;
+    ncatt *att_ptr;
+    int status;
+    LIST *varattlist;
+
+    /* Get the variable */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
+
+    /*
+     * The list of attributes for the variable in the dataset
+     */
+    if ( var_ptr->natts < 1 )
+        return ATOM_NOT_FOUND;
+    varattlist = var_ptr->varattlist;
+    if ( varattlist == NULL )
+        return ATOM_NOT_FOUND;
+
+    status = list_traverse(varattlist, (char *) attid, NCF_ListTraverse_FoundVarAttID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+
+    att_ptr = (ncatt *) list_curr(varattlist);
+    strcpy(attname, att_ptr->name);
+    *namelen = strlen(attname);
+
+    return FERR_OK;
 }
 
 /*----
@@ -847,3408 +666,2799 @@ int FORTRAN(ncf_get_dim_id)( int *dset, char dname[])
  * On input, len is the max len to load.
  * Return the attribute, len, and its string or numeric value.
  */
- int FORTRAN(ncf_get_var_attr) (int *dset, int *varid, char* attname, char* string, int *len, double* val)
-
+int FORTRAN(ncf_get_var_attr)( int *dset, int *varid, char* attname, char* string, int *len, double* val )
 {
-  ncdset *nc_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  ncatt *att_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  int i;
-  LIST *varlist;
-  LIST *varattlist;
-
-   /*
-   * Get the list of variables.  
-   */
-  varlist = ncf_get_ds_varlist(dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
-  if (var_ptr->natts < 1) return ATOM_NOT_FOUND;
-
-   /*
-   * Get the list of attributes for the variable in the dataset
-   */
-  varattlist = ncf_get_ds_var_attlist(dset, varid);
-
-  status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
+    ncvar *var_ptr;
+    ncatt *att_ptr;
+    int status;
+    int i;
+    LIST *varattlist;
+
+    /* Get the variable */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
+
+    /*
+     * The list of attributes for the variable in the dataset
+     */
+    if ( var_ptr->natts < 1 )
+        return ATOM_NOT_FOUND;
+    varattlist = var_ptr->varattlist;
+    if ( varattlist == NULL )
+        return ATOM_NOT_FOUND;
+
+    /* Get the attribute from this list */
+    status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+
+    att_ptr = (ncatt *) list_curr(varattlist);
+    if ( att_ptr->type == NC_CHAR ) {
+        strncpy(string, att_ptr->string, *len);
+        val[0] = NC_FILL_DOUBLE;
     }
-  
-  strcpy(string, "");
-  val[0] = NC_FILL_DOUBLE;
-
-  att_ptr=(ncatt *)list_curr(varattlist); 
-
-  if (att_ptr->type == NC_CHAR)
-  { 
-
-	  strncpy(string, att_ptr->string, *len); 
-  }
-  else 
-  { for (i = 0; i < att_ptr->len; i++) {
-	  val[i] = att_ptr->vals[i]; }
-  }
-  *len = att_ptr->len;
-  return_val = FERR_OK;
-  return return_val;
-}
+    else {
+        strcpy(string, "");
+        for (i = 0; i < att_ptr->len; i++) {
+            val[i] = att_ptr->vals[i];
+        }
+    }
+    *len = att_ptr->len;
 
+    return FERR_OK;
+}
 
 /*----
  * Find a numeric attribute based on the dataset ID and variable ID and attribute id.
  * On input, len is the max len to load.
  * Return the attribute, len, and or numeric value.
  */
- int FORTRAN(ncf_get_attr_from_id) (int *dset, int *varid, int *attid, int *len, double* val)
-
+int FORTRAN(ncf_get_attr_from_id)( int *dset, int *varid, int *attid, int *len, double* val )
 {
-  ncdset *nc_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  ncatt *att_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  int i;
-  LIST *varlist;
-  LIST *varattlist;
-
-   /*
-   * Get the list of variables.  
-   */
-  varlist = ncf_get_ds_varlist(dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
-  if (var_ptr->natts < 1) return ATOM_NOT_FOUND;
-
-   /*
-   * Get the list of attributes for the variable in the dataset. 
-   * Find the attribute from its ID
-   */
-  varattlist = ncf_get_ds_var_attlist(dset, varid);
-
-  status = list_traverse(varattlist, (char *) attid, NCF_ListTraverse_FoundVarAttID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
+    ncvar *var_ptr;
+    ncatt *att_ptr;
+    int status;
+    int i;
+    LIST *varattlist;
+
+    /* Get the variable */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
+
+    /*
+     * The list of attributes for the variable in the dataset.
+     */
+    if ( var_ptr->natts < 1 )
+        return ATOM_NOT_FOUND;
+    varattlist = var_ptr->varattlist;
+    if ( varattlist == NULL )
+        return ATOM_NOT_FOUND;
+
+    /* Find the attribute from its ID */
+    status = list_traverse(varattlist, (char *) attid, NCF_ListTraverse_FoundVarAttID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+    att_ptr = (ncatt *) list_curr(varattlist);
+
+    if ( att_ptr->type == NC_CHAR ) {
+        val[0] = NC_FILL_DOUBLE;
+        fprintf(stderr, "ERROR: ncf_get_attr_from_id: Atribute is CHAR. This function only for numeric.\n");
+        return -1;
+    }
+
+    for (i = 0; i < att_ptr->len; i++) {
+        val[i] = att_ptr->vals[i];
     }
-  
-  att_ptr=(ncatt *)list_curr(varattlist); 
-
-  val[0] = NC_FILL_DOUBLE;
-  if (att_ptr->type == NC_CHAR)
-	{
-	  fprintf(stderr, "ERROR: ncf_get_attr_from_id: Atribute is CHAR. This function only for numberic.\n");
-	  return_val = -1;
-	  return return_val; 
-          }
-  else 
-  { for (i = 0; i < att_ptr->len; i++) {
-	  val[i] = att_ptr->vals[i]; }
-  }
-  *len = att_ptr->len;
-  return_val = FERR_OK;
-  return return_val;
+    *len = att_ptr->len;
+
+    return FERR_OK;
 }
 
 /* ----
- * Initialize new dataset to contain user variables and 
- * save in GLOBAL_ncdsetList for attribute handling 
+ * Initialize new dataset to contain user variables and
+ * save in GLOBAL_ncdsetList for attribute handling
  */
-
-int FORTRAN(ncf_init_uvar_dset)(int *setnum)
-
+int FORTRAN(ncf_init_uvar_dset)( int *setnum )
 {
-  ncdset nc; 
-  static int return_val=FERR_OK; /* static because it needs to exist after the return statement */
-  
-    int i;				/* loop controls */
-	int ia;
-	int iv;
-    int nc_status;		/* return from netcdf calls */
-    ncatt att;			/* attribute */
-    ncvar var;			/* variable */
-		att.vals = NULL;
-		att.string = NULL;
+    ncdset nc;
+    ncvar var;            /* variable */
+    ncatt att;            /* attribute */
+
+    ncf_init_dataset(&nc);
     strcpy(nc.fername, "UserVariables");
     strcpy(nc.fullpath, " ");
     nc.fer_dsetnum = *setnum;
-
     nc.ngatts = 1;
-    nc.nvars = 0;
-	nc.recdim = -1;   /* never used, but initialize anyway*/
-	nc.ndims = 6;     /* never used, but initialize anyway*/
-	nc.its_agg = 0;
-	nc.num_agg_members = 0;
-    nc.vars_list_initialized = FALSE;
-
-   /* set one global attribute, treat as pseudo-variable . the list of variables */
-
-       strcpy(var.name, ".");
-
-       var.attrs_list_initialized = FALSE;
-
-       var.type = NC_CHAR;
-       var.outtype = NC_CHAR;
-       var.varid = 0;
-	   var.natts = nc.ngatts;
-       var.has_fillval = FALSE;
-	   var.fillval = NC_FILL_FLOAT;
-	   var.all_outflag = 1;
-	   var.is_axis = FALSE;
-	   var.axis_dir = 0;
-
-	   var.attrs_list_initialized = FALSE; 
-
-		 att.outflag = 1;
-		 att.type = NC_CHAR;
-		 att.outtype = NC_CHAR;
-		 att.len = 21;
-		 strcpy(att.name, "FerretUserVariables" );
-		 att.string = (char*)malloc(2*sizeof(char));
-		 strcpy(att.string, " ");
-
-      /*Save attribute in linked list of attributes for variable .*/	
-       if (!var.attrs_list_initialized) {
-          if ( (var.varattlist = list_init()) == NULL ) {
-            fprintf(stderr, "ERROR: ncf_init_uvar_dset: Unable to initialize GLOBAL attributes list.\n");
-            return_val = -1;
-            return return_val; 
-          }
-          var.attrs_list_initialized = TRUE;
-	  }
-
-       list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
-
-       /* global attributes list complete */
-
-      /*Save variable in linked list of variables for this dataset */	
-       if (!nc.vars_list_initialized) {
-          if ( (nc.dsetvarlist = list_init()) == NULL ) {
-            fprintf(stderr, "ERROR: ncf_init_uvar_dset: Unable to initialize variable list.\n");
-            return_val = -1;
-            return return_val; 
-          }
-          nc.vars_list_initialized = TRUE;
-        }
 
-       list_insert_after(nc.dsetvarlist, (char *) &var, sizeof(ncvar));
+    /* set one global attribute, treat as pseudo-variable . the list of variables */
+    ncf_init_variable(&var);
+    strcpy(var.name, ".");
+    var.type = NC_CHAR;
+    var.outtype = NC_CHAR;
+    var.varid = 0;
+    var.natts = 1;
+    var.varattlist = list_init();
+    if ( var.varattlist == NULL ) {
+        fprintf(stderr, "ERROR: ncf_init_uvar_dset: Unable to initialize GLOBAL attributes list.\n");
+        return -1;
+    }
 
-/* Add dataset to global nc dataset linked list*/ 
-  if (!list_initialized) {
-    if ( (GLOBAL_ncdsetList = list_init()) == NULL ) {
-      fprintf(stderr, "ERROR: ncf_init_uvar_dset: Unable to initialize GLOBAL_ncDsetList.\n");
-      return_val = -1;
-      return return_val; 
-	}
-    list_initialized = TRUE;
-  }
+    ncf_init_attribute(&att);
+    att.outflag = 1;
+    att.type = NC_CHAR;
+    att.outtype = NC_CHAR;
+    att.len = 21;
+    strcpy(att.name, "FerretUserVariables" );
+    att.string = (char*)malloc(2*sizeof(char));
+    strcpy(att.string, " ");
+
+    /* Save attribute in linked list of attributes for variable */
+    list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
 
-  list_insert_after(GLOBAL_ncdsetList, (char *) &nc, sizeof(ncdset));
-  return_val = FERR_OK;
-  return return_val;
-  }
+    /* global attributes list complete */
 
-/* ----
- * Initialize new dataset to contain user-defined coordinate variables and 
- * save in GLOBAL_ncdsetList for attribute handling 
- */
+    /*Save variable in linked list of variables for this dataset */
+    nc.dsetvarlist = list_init();
+    if ( nc.dsetvarlist == NULL ) {
+        fprintf(stderr, "ERROR: ncf_init_uvar_dset: Unable to initialize variable list.\n");
+        return -1;
+    }
+    list_insert_after(nc.dsetvarlist, (char *) &var, sizeof(ncvar));
+
+    /* Add dataset to global nc dataset linked list*/
+    if ( GLOBAL_ncdsetList == NULL ) {
+        GLOBAL_ncdsetList = list_init();
+        if ( GLOBAL_ncdsetList == NULL ) {
+            fprintf(stderr, "ERROR: ncf_init_uvar_dset: Unable to initialize GLOBAL_ncDsetList.\n");
+            return -1;
+        }
+    }
+    list_insert_after(GLOBAL_ncdsetList, (char *) &nc, sizeof(ncdset));
 
-int FORTRAN(ncf_init_uax_dset)(int *setnum)
+    return FERR_OK;
+}
 
+/* ----
+ * Initialize new dataset to contain user-defined coordinate variables and
+ * save in GLOBAL_ncdsetList for attribute handling
+ */
+int FORTRAN(ncf_init_uax_dset)( int *setnum )
 {
-  ncdset nc; 
-  static int return_val=FERR_OK; /* static because it needs to exist after the return statement */
-  
-    int i;				/* loop controls */
-	int ia;
-	int iv;
-    int nc_status;		/* return from netcdf calls */
-    ncatt att;			/* attribute */
-    ncvar var;			/* variable */
-		att.vals = NULL;
-		att.string = NULL;
+    ncdset nc;
+    ncvar var;            /* variable */
+    ncatt att;            /* attribute */
+
+    ncf_init_dataset(&nc);
     strcpy(nc.fername, "UserCoordVariables");
     strcpy(nc.fullpath, " ");
     nc.fer_dsetnum = *setnum;
-
     nc.ngatts = 1;
-    nc.nvars = 0;
-	nc.recdim = -1;   /* never used, but initialize anyway*/
-	nc.its_agg = 0;
-    nc.vars_list_initialized = FALSE;
-
-   /* set one global attribute, treat as pseudo-variable . the list of variables */
-
-       strcpy(var.name, "."); /*is this a legal name?*/
-
-       var.attrs_list_initialized = FALSE;
-
-       var.type = NC_CHAR;
-       var.outtype = NC_CHAR;
-       var.varid = 0;
-	   var.natts = nc.ngatts;
-       var.has_fillval = FALSE;
-       var.fillval = NC_FILL_FLOAT;
-	   var.all_outflag = 1;
-	   var.is_axis = FALSE;
-	   var.axis_dir = 0;
-
-	   var.attrs_list_initialized = FALSE; 
-
-		 att.outflag = 1;
-		 att.type = NC_CHAR;
-		 att.outtype = NC_CHAR;
-		 att.len = 21;
-		 strcpy(att.name, "FerretUserCoordVariables" );
-     att.string = (char*)malloc(2*sizeof(char));
-		 strcpy(att.string, " ");
-
-      /*Save attribute in linked list of attributes.*/	
-       if (!var.attrs_list_initialized) {
-          if ( (var.varattlist = list_init()) == NULL ) {
-            fprintf(stderr, "ERROR: ncf_init_uax_dset: Unable to initialize GLOBAL attributes list.\n");
-            return_val = -1;
-            return return_val; 
-          }
-          var.attrs_list_initialized = TRUE;
-	  }
-
-       list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
-
-       /* global attributes list complete */
-
-      /*Save variable in linked list of variables for this dataset */	
-       if (!nc.vars_list_initialized) {
-          if ( (nc.dsetvarlist = list_init()) == NULL ) {
-            fprintf(stderr, "ERROR: ncf_init_uax_dset: Unable to initialize variable list.\n");
-            return_val = -1;
-            return return_val; 
-          }
-          nc.vars_list_initialized = TRUE;
-        }
 
-       list_insert_after(nc.dsetvarlist, (char *) &var, sizeof(ncvar));
-
-/* Add dataset to global nc dataset linked list*/ 
-  if (!list_initialized) {
-    if ( (GLOBAL_ncdsetList = list_init()) == NULL ) {
-      fprintf(stderr, "ERROR: ncf_init_uax_dset: Unable to initialize GLOBAL_ncDsetList.\n");
-      return_val = -1;
-      return return_val; 
-	}
-    list_initialized = TRUE;
-  }
+    /* set one global attribute, treat as pseudo-variable . the list of variables */
 
-  list_insert_after(GLOBAL_ncdsetList, (char *) &nc, sizeof(ncdset));
-  return_val = FERR_OK;
-  return return_val;
-  }
+    ncf_init_variable(&var);
+    strcpy(var.name, "."); /*is this a legal name?*/
+    var.type = NC_CHAR;
+    var.outtype = NC_CHAR;
+    var.varid = 0;
+    var.natts = 1;
 
-/* ----
- * Get file info for a dataset and save in GLOBAL_ncdsetList for attribute handling 
- */
+    ncf_init_attribute(&att);
+    att.outflag = 1;
+    att.type = NC_CHAR;
+    att.outtype = NC_CHAR;
+    att.len = 21;
+    strcpy(att.name, "FerretUserCoordVariables" );
+    att.string = (char*)malloc(2*sizeof(char));
+    strcpy(att.string, " ");
+
+    /* Save attribute in linked list of attributes. */
+    var.varattlist = list_init();
+    if ( var.varattlist == NULL ) {
+        fprintf(stderr, "ERROR: ncf_init_uax_dset: Unable to initialize GLOBAL attributes list.\n");
+        return -1;
+    }
+    list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
 
-int FORTRAN(ncf_add_dset)(int *ncid, int *setnum, char name[], char path[])
+    /* global attributes list complete */
 
-{
-  ncdset nc; 
-  static int return_val=FERR_OK; /* static because it needs to exist after the return statement */
-	
-	/* code lifted liberally from ncdump.c Calls in nc library.*/
-	
-	char fillc;
-	int i;				/* loop controls */
-	int ia;
-	int iv;
-	int ilen;
-	int nc_status;		/* return from netcdf calls */
-	ncdim fdims;		/* name and size of dimension */
-	ncatt att;			/* attribute */
-	ncatt att0;			/* initialize attribute */
-	ncvar var;			/* variable */
-	int bad_file_attr = 243; /* matches merr_badfileatt in tmap_errors.parm*/
-	size_t len;
-
-	att.vals = NULL;
-	att.string = NULL;
-	strcpy(nc.fername, name);
-	strcpy(nc.fullpath, path);
-	nc.fer_dsetnum = *setnum;
-	nc.its_agg = 0;
-	nc.num_agg_members = 0;
-	
-	/* Set attribute with initialization values*/
-	
-	strcpy(att0.name, " ");
-	att0.type = NC_CHAR;
-	att0.outtype = NC_CHAR;
-	att0.attid = 0;
-	att0.outflag = 0;
-	att0.len = 1;
-	att0.string = (char *) malloc((att0.len+1)* sizeof(char*));
-	strcpy (att0.string," ");
-	att0.vals = (double *) malloc(1 * sizeof(double));
-	att0.vals[0] = 0;
-	
-	/*
-	 * get number of dimensions, number of variables, number of global
-	 * atts, and dimension id of unlimited dimension, if any
-	 */
-	nc_status = nc_inq(*ncid, &nc.ndims, &nc.nvars, &nc.ngatts, &nc.recdim) ;
-	if (nc_status != NC_NOERR) return nc_status;
-	
-	/* get dimension info */
-	if (nc.ndims > 0) {
-		for (i = 0; i < nc.ndims; i++) {
-			nc_status = nc_inq_dim(*ncid, i, fdims.name, &fdims.size); 
-			if (nc_status != NC_NOERR) return nc_status;
-			
-			if (nc_status != NC_NOERR) return nc_status;
-			strcpy (nc.dims[i].name, fdims.name);
-			nc.dims[i].size = fdims.size;
-/*			strcpy (nc.dimname[i], fdims.name);
-			nc.dimsize = fdims.size; */
-		}
-	}
-	
-	nc.vars_list_initialized = FALSE;
-	nc_status = NC_NOERR;
-	
-	/* get info on global attributes, treat as pseudo-variable . list of attributes*/
-	
-	
-	/* get global attributes */
-	
-	if (nc.ngatts > 0)
-		{
-			strcpy(var.name, ".");
-			
-			var.attrs_list_initialized = FALSE;
-			
-			var.type = NC_CHAR;
-			var.outtype = NC_CHAR;
-			var.varid = 0;
-			var.natts = nc.ngatts;
-			var.ndims = 1;
-			var.dims[0] = 1;
-			var.has_fillval = FALSE;
-			var.fillval = NC_FILL_FLOAT;
-			var.all_outflag = 1;
-			var.is_axis = FALSE;
-			var.axis_dir = 0;
-			var.uvarid = 0;
-			
-			var.attrs_list_initialized = FALSE;
-			for (i = 0; i < nc.ngatts; i++)
-				{
-					
-					/* initialize 
-						 att = att0;*/
-					
-          nc_status = nc_inq_attname(*ncid, NC_GLOBAL, i, att.name);            
-					/*		  if (nc_status != NC_NOERR) fprintf(stderr, " ***NOTE: error reading global attribute id %d from file %s\n", i, nc.fullpath);  */
-          if (nc_status == NC_NOERR) {
-						
-            att.attid = i+1;
-            nc_status = nc_inq_att(*ncid, NC_GLOBAL, att.name, &att.type, &len);
-						att.len = (int)len;
-
-						/*            if (nc_status != NC_NOERR) fprintf(stderr, " ***NOTE: error reading global attribute %s from file %s\n",att.name, nc.fullpath); */
-            if (nc_status == NC_NOERR) {
-							
-							/* Set output flag. By default only the global history attribute is written.
-							 *  For string attributes, allocate one more than the att.len, 
-							 *  presumably for the null terminator for the string (?) */
-							
-							att.outflag = 0;
-							if (strcmp(att.name,"history")==0)
-								{att.outflag = 1;
-								}
-							
-              if (att.len == 0) {	/* show 0-length attributes as empty strings */
-								att.type = NC_CHAR;
-								att.outtype = NC_CHAR;
-								att.len = 1;
-								att.string = (char *) malloc(2* sizeof(char));
-								strcpy (att.string," ");
-              }
-              switch (att.type) {
-              case NC_CHAR:
-								att.string = (char *) malloc((att.len+1)* sizeof(char));
-								
-								nc_status = nc_get_att_text(*ncid, NC_GLOBAL, att.name, att.string );
-								if (nc_status != NC_NOERR) return nc_status;
-								
-								break;
-              default:
-								att.vals = (double *) malloc(att.len * sizeof(double));
-								
-								nc_status = nc_get_att_double(*ncid, NC_GLOBAL, att.name, att.vals );
-								if (nc_status != NC_NOERR) return nc_status;
-								
-								break;
-              }
-							
-						}  /* end of the  if (nc_status == NC_NOERR) */
-					}
-					/*Save attribute in linked list of attributes for variable . (global attributes)*/	
-					if (!var.attrs_list_initialized) {
-						if ( (var.varattlist = list_init()) == NULL ) {
-							fprintf(stderr, "ERROR: ncf_add_dset: Unable to initialize GLOBAL attributes list.\n");
-							return_val = -1;
-							return return_val; 
-						}
-            var.attrs_list_initialized = TRUE;
-  	      }
-					
-					list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
-				}    /* global attributes list complete */
-			
-      /*Save variable in linked list of variables for this dataset */	
-			if (!nc.vars_list_initialized) {
-				if ( (nc.dsetvarlist = list_init()) == NULL ) {
-					fprintf(stderr, "ERROR: ncf_add_dset: Unable to initialize variable list.\n");
-					return_val = -1;
-					return return_val; 
-				}
-				nc.vars_list_initialized = TRUE;
-			}
-			
-			list_insert_after(nc.dsetvarlist, (char *) &var, sizeof(ncvar));
-			
-		}    
-	
-	/* get info on variables */
-	
-	if (nc.nvars > 0)
-		for (iv = 0; iv < nc.nvars; iv++)
-			{
-				nc_status = nc_inq_var(*ncid, iv, var.name, &var.type, &var.ndims,
-									     var.dims, &var.natts);
-				if (nc_status != NC_NOERR) return nc_status;
-				
-				var.varid = iv+1;  
-				var.outtype = NC_FLOAT;
-				if (var.type == NC_CHAR) var.outtype = NC_CHAR;
-				var.outtype = var.type;  /* ?? */
-				var.uvarid = 0;
-				
-				/* Is this a coordinate variable? If not a string, set the flag.
-				/* A multi-dimensional variable that shares a dimension name is not a coord. var.
-				 */
-				if (nc.ndims > 0) {
-					var.is_axis = FALSE;
-					var.axis_dir = 0;
-					i = 0;
-					while (i < nc.ndims && var.is_axis == FALSE) {
-						if  (strcasecmp(var.name, nc.dims[i].name) == 0) var.is_axis = TRUE;
-						if  (var.type == NC_CHAR) var.is_axis = FALSE;
-						if  (var.ndims > 1) var.is_axis = FALSE;
-						i = i + 1;
-					}
-				}
-				
-				/* get _FillValue attribute */
-				
-				nc_status =  nc_inq_att(*ncid,iv,"_FillValue",&att.type, &len);
-				att.len = (int)len;
-				
-				if(nc_status == NC_NOERR &&
-					 att.type == var.type && att.len == 1) {
-					
-					att.outflag = 1;
-					att.outtype = var.type;
-					var.has_fillval = TRUE;
-					if(var.type == NC_CHAR) {
-						att.outtype = NC_CHAR;
-						nc_status = nc_get_att_text(*ncid, iv, "_FillValue",
-																				&fillc );
-						if (nc_status != NC_NOERR)  /* on error set attr to empty string */
-							{ att.type = NC_CHAR;
-								att.outtype = NC_CHAR;
-								att.len = 1;
-								att.string = (char *) malloc((att.len+1)* sizeof(char));
-								strcpy (att.string," ");
-								att.vals = (double *) malloc(1 * sizeof(double));
-								att.vals[0] = 0;
-								return_val = bad_file_attr;
-							}
-					} else {
-						nc_status = nc_get_att_double(*ncid, iv, "_FillValue",
-																					&var.fillval ); }
-					att.string = (char *) malloc(2*sizeof(char));
-					strcpy(att.string," ");
-		    }
-				else  /* set to default NC value*/ 
-					{
-						var.has_fillval = FALSE;
-						switch (var.type) {
-						case NC_BYTE:
-							/* don't do default fill-values for bytes, too risky */
-							var.has_fillval = 0;
-							break;
-						case NC_CHAR:
-							var.fillval = NC_FILL_CHAR;
-							break;
-						case NC_SHORT:
-							var.fillval = NC_FILL_SHORT;
-							break;
-						case NC_INT:
-							var.fillval = NC_FILL_INT;
-							break;
-						case NC_FLOAT:
-							var.fillval = NC_FILL_FLOAT;
-							break;
-						case NC_DOUBLE:
-							var.fillval = NC_FILL_DOUBLE;
-							break;
-						default:
-							break;
-							att.string = (char *) malloc(2*sizeof(char));
-							strcpy (att.string, " ");
-						}
-					}
-				
-				var.all_outflag = 1;
-				
-				/* get all variable attributes 
-				 *  For string attributes, allocate one more than the att.len, 
-				 *  presumably for the null terminator for the string. See Netcdf User's Guide, nc_get_att_text.
-				 */
-				var.attrs_list_initialized = FALSE;
-				
-				ia = 0;
-				if (var.natts > 0)
-          {
-						for (ia = 0; ia < var.natts; ia++)
-							
-							{
-								
-								/* initialize
-									 att = att0; */
-								
-								nc_status = nc_inq_attname(*ncid, iv, ia, att.name);
-								/*		  if (nc_status != NC_NOERR) fprintf(stderr, " ***NOTE: error reading attribute id %d for variable %s, file %s\n", ia, var.name, nc.fullpath); */
-								if (nc_status == NC_NOERR) {
-									att.attid = ia+1;
-									
-									nc_status = nc_inq_att(*ncid, iv, att.name, &att.type, &len);
-									att.len = (int)len;
-
-									/*            if (nc_status != NC_NOERR) fprintf(stderr, " ***NOTE: error reading attribute %s for variable %s, file %s\n",att.name, var.name, nc.fullpath); */
-									if (nc_status == NC_NOERR) {
-										
-										if (att.len == 0) {	/* set 0-length attributes to empty strings */
-											att.type = NC_CHAR;
-											att.outtype = NC_CHAR;
-											att.len = 1;
-											att.string = (char *) malloc(2*sizeof(char));
-											strcpy (att.string," ");
-										}
-										switch (att.type) {
-										case NC_CHAR:
-											/* Plus one for end-of-string delimiter. */
-											att.string = (char *) malloc((att.len+1)*sizeof(char));
-											strcpy (att.string, " ");
-											nc_status = nc_get_att_text(*ncid, iv, att.name, att.string );											
-											
-											if (nc_status != NC_NOERR) /* on error set attr to empty string*/
-												{att.type = NC_CHAR;
-													att.outtype = NC_CHAR;
-													att.len = 1;
-													att.string = (char *) malloc((att.len+1)*sizeof(char));
-													strcpy (att.string, " ");
-													return_val = bad_file_attr;
-												} else {
-												/* Ensure end-of-string delimiter because Netcdf API doesn't store automatically; it's up to the file's author. */
-												att.string[att.len] = '\0';
-												
-												/* Check the actual string length (one example file has
-													 attribute units="m" but gets att.len = 128 from nc_inq_att above) because user probably used some arbitrarily large string buffer and partially populated the string leaving the remainder filled with '\0'.
-												*/
-												ilen = strlen(att.string);
-												if (ilen < att.len)
-													{ 
-														att.len = ilen;
-													}											
-											}
-											
-											att.vals = (double *) malloc(1 * sizeof(double));
-											att.vals[0] = 0;
-											
-											break;
-										default:
-#ifdef double_p
-											att.outtype = NC_DOUBLE;
-#else
-											att.outtype = NC_FLOAT;
-#endif
-											att.vals = (double *) malloc(att.len * sizeof(double));
-											
-											nc_status = nc_get_att_double(*ncid, iv, att.name, att.vals );
-											if (nc_status != NC_NOERR) /* on error set attr to empty string*/
-												{att.type = NC_CHAR;
-													att.outtype = NC_CHAR;
-													att.len = 1;
-													att.string = (char *) malloc((att.len+1)* sizeof(char));
-													strcpy (att.string, " ");
-													return_val = bad_file_attr;
-												}
-											att.string = (char *) malloc(2*sizeof(char));
-											strcpy(att.string, " ");
-											break;
-										}
-										
-										/* Initialize output flag. Attributes written by default by Ferret
-											 will be set to outflag = 1. 
-										*/
-										att.outflag = initialize_output_flag (att.name, var.is_axis);
-										
-									} /* end of the if (nc_status == NC_NOERR)  */
-								}
-								/*Save attribute in linked list of attributes for this variable */	
-								if (!var.attrs_list_initialized) {
-									if ( (var.varattlist = list_init()) == NULL ) {
-										fprintf(stderr, "ERROR: ncf_add_dset: Unable to initialize variable attributes list.\n");
-										return_val = -1;
-										return return_val; 
-									}
-									var.attrs_list_initialized = TRUE;
-								}
-								
-								list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
-							}    /* variable attributes from file complete */
-					}  /* if var.natts > 0*/ 
-				
-/*                    /* If this is a coordinate variable, add an attribute orig_file_axname which 
-/*				          contains the axis name, and is used to preserve the original name if 
-/*						  Ferret detects a duplicate axis name and changes the axis name.*/
-					if (var.is_axis)
-					{
-
-
-						/* initialize
-									 att = att0; */
-								
-						var.natts = var.natts + 1;
-						strcpy (att.name, "orig_file_axname");
-						att.attid = ia+1;
-						att.type = NC_CHAR;
-						att.len = strlen(var.name);
-						att.string = (char *) malloc((att.len+1)*sizeof(char));
-
-						strcpy (att.string,var.name);
-		                                
-						/* Ensure end-of-string delimiter because Netcdf API doesn't store automatically; it's up to the file's author. */
-						att.string[att.len] = '\0';
-											
-						att.vals = (double *) malloc(1 * sizeof(double));
-						att.vals[0] = 0;
-								
-						/* Output flag always false for this attribute */
-						att.outflag = -1;
-	
-						/*Save attribute in linked list of attributes for this variable */	
-						if (!var.attrs_list_initialized) 
-							{
-							if ( (var.varattlist = list_init()) == NULL ) 
-								{
-								fprintf(stderr, "ERROR: ncf_add_dset: Unable to initialize variable attributes list.\n");
-								return_val = -1;
-								return return_val; 
-								}
-							var.attrs_list_initialized = TRUE;
-							}
-								
-							list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
-					}
-
-				/*Save variable in linked list of variables for this dataset */	
-				if (!nc.vars_list_initialized) {
-          if ( (nc.dsetvarlist = list_init()) == NULL ) {
-            fprintf(stderr, "ERROR: ncf_add_dset: Unable to initialize variable list.\n");
-            return_val = -1;
-            return return_val; 
-          }
-          nc.vars_list_initialized = TRUE;
+    /* Save variable in linked list of variables for this dataset */
+    nc.dsetvarlist = list_init();
+    if ( nc.dsetvarlist == NULL ) {
+        fprintf(stderr, "ERROR: ncf_init_uax_dset: Unable to initialize variable list.\n");
+        return -1;
+    }
+    list_insert_after(nc.dsetvarlist, (char *) &var, sizeof(ncvar));
+
+    /* Add dataset to global nc dataset linked list*/
+    if ( GLOBAL_ncdsetList == NULL ) {
+        GLOBAL_ncdsetList = list_init();
+        if ( GLOBAL_ncdsetList == NULL ) {
+            fprintf(stderr, "ERROR: ncf_init_uax_dset: Unable to initialize GLOBAL_ncDsetList.\n");
+            return -1;
         }
-				
-				list_insert_after(nc.dsetvarlist, (char *) &var, sizeof(ncvar));
-				
-			}    /* variables list complete */
-	
-	/* Add dataset to global nc dataset linked list*/ 
-  if (!list_initialized) {
-    if ( (GLOBAL_ncdsetList = list_init()) == NULL ) {
-      fprintf(stderr, "ERROR: ncf_add_dset: Unable to initialize GLOBAL_ncDsetList.\n");
-      return_val = -1;
-      return return_val; 
-		}
-    list_initialized = TRUE;
-  }
-	
-  list_insert_after(GLOBAL_ncdsetList, (char *) &nc, sizeof(ncdset));
-  return return_val;
+    }
+    list_insert_after(GLOBAL_ncdsetList, (char *) &nc, sizeof(ncdset));
+
+    return FERR_OK;
 }
 
 /* ----
- * Initialize new dataset to contain a non-netcdf dataset 
- * save in GLOBAL_ncdsetList for attribute handling 
+ * Get file info for a dataset and save in GLOBAL_ncdsetList for attribute handling
  */
+int FORTRAN(ncf_add_dset)( int *ncid, int *setnum, char name[], char path[] )
+{
+    ncdset nc;
 
-int FORTRAN(ncf_init_other_dset)(int *setnum, char name[], char path[])
+    /* code lifted liberally from ncdump.c Calls in nc library.*/
 
-{
-  ncdset nc; 
-  static int return_val=FERR_OK; /* static because it needs to exist after the return statement */
-  
-    int i;				/* loop controls */
-	int ia;
-	int iv;
-    int nc_status;		/* return from netcdf calls */
-    ncatt att;			/* attribute */
-    ncvar var;			/* variable */
-		att.vals = NULL;
-		att.string = NULL;
+    char fillc;
+    int i;    /* loop controls */
+    int ia;
+    int iv;
+    int ilen;
+    int nc_status;    /* return from netcdf calls */
+    ncdim fdims;    /* name and size of dimension */
+    ncatt att;    /* attribute */
+    ncvar var;    /* variable */
+    int bad_file_attr = 243;    /* matches merr_badfileatt in tmap_errors.parm*/
+    int return_val=FERR_OK;
+    size_t len;
+
+    ncf_init_dataset(&nc);
     strcpy(nc.fername, name);
     strcpy(nc.fullpath, path);
     nc.fer_dsetnum = *setnum;
 
-    nc.ngatts = 1;
-    nc.nvars = 0;
-	nc.recdim = -1;   /* not used, but initialize anyway*/
-	nc.ndims = 6;
-	nc.its_agg = 0;
-	nc.num_agg_members = 0;
-    nc.vars_list_initialized = FALSE;
+    /*
+     * get number of dimensions, number of variables, number of global
+     * atts, and dimension id of unlimited dimension, if any
+     */
+    nc_status = nc_inq(*ncid, &nc.ndims, &nc.nvars, &nc.ngatts, &nc.recdim);
+    if ( nc_status != NC_NOERR )
+        return nc_status;
+
+    /* get dimension info */
+    if ( nc.ndims > 0 ) {
+        for (i = 0; i < nc.ndims; i++) {
+            nc_status = nc_inq_dim(*ncid, i, fdims.name, &fdims.size);
+            if ( nc_status != NC_NOERR )
+                return nc_status;
+            strcpy (nc.dims[i].name, fdims.name);
+            nc.dims[i].size = fdims.size;
+        }
+    }
+
+    /* Go ahead and create the variable list - dataset with nothing not very likely */
+    nc.dsetvarlist = list_init();
+    if ( nc.dsetvarlist == NULL ) {
+        fprintf(stderr, "ERROR: ncf_add_dset: Unable to initialize variable list.\n");
+        return -1;
+    }
+
+    /* get info on global attributes, treat as pseudo-variable . list of attributes */
+
+    /* get global attributes */
+
+    if ( nc.ngatts > 0 ) {
+        ncf_init_variable(&var);
+        strcpy(var.name, ".");
+        var.type = NC_CHAR;
+        var.outtype = NC_CHAR;
+        var.varid = 0;
+        var.natts = nc.ngatts;
+        var.ndims = 1;
+        var.dims[0] = 1;
+        /* Create the list of attributes since there are going to be attributes added */
+        var.varattlist = list_init();
+        if ( var.varattlist == NULL ) {
+            fprintf(stderr, "ERROR: ncf_add_dset: Unable to initialize GLOBAL attributes list.\n");
+            return -1;
+        }
+
+        for (i = 0; i < nc.ngatts; i++) {
+            ncf_init_attribute(&att);
+            nc_status = nc_inq_attname(*ncid, NC_GLOBAL, i, att.name);
+            if ( nc_status == NC_NOERR ) {
+                att.attid = i+1;
+                nc_status = nc_inq_att(*ncid, NC_GLOBAL, att.name, &att.type, &len);
+                att.len = (int)len;
+                if ( nc_status == NC_NOERR ) {
+                    /* Set output flag. By default only the global history attribute is written.
+                     * For string attributes, allocate one more than the att.len,
+                     * for the null terminator for the string */
+                    if ( strcmp(att.name,"history") == 0 ) {
+                        att.outflag = 1;
+                    }
+                    if (att.len == 0) {    /* show 0-length attributes as empty strings */
+                        att.type = NC_CHAR;
+                        att.outtype = NC_CHAR;
+                        att.len = 1;
+                        att.string = (char *) malloc(2* sizeof(char));
+                        strcpy(att.string, " ");
+                    }
+                    else {
+                        switch (att.type) {
+                        case NC_CHAR:
+                            att.string = (char *) malloc((att.len+1)* sizeof(char));
+                            nc_status = nc_get_att_text(*ncid, NC_GLOBAL, att.name, att.string);
+                            if ( nc_status != NC_NOERR )
+                                return nc_status;
+                            break;
+                        default:
+                            att.vals = (double *) malloc(att.len * sizeof(double));
+                            nc_status = nc_get_att_double(*ncid, NC_GLOBAL, att.name, att.vals);
+                            if ( nc_status != NC_NOERR )
+                                return nc_status;
+                            break;
+                        }
+                    }
+                }    /* end of the    if (nc_status == NC_NOERR) */
+            }
+            /*Save attribute in linked list of attributes for variable . (global attributes)*/
+            list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
+        }        /* global attributes list complete */
 
-   /* set up pseudo-variable . the list of variables */
+        /*Save variable in linked list of variables for this dataset */
+        list_insert_after(nc.dsetvarlist, (char *) &var, sizeof(ncvar));
+    }
+
+    /* get info on variables */
+    for (iv = 0; iv < nc.nvars; iv++) {
+        ncf_init_variable(&var);
+        nc_status = nc_inq_var(*ncid, iv, var.name, &var.type, &var.ndims, var.dims, &var.natts);
+        if ( nc_status != NC_NOERR )
+            return nc_status;
+
+        var.varid = iv+1;
+        var.outtype = var.type;
+
+        /* Is this a coordinate variable? If not a string, set the flag.
+         * A multi-dimensional variable that shares a dimension name is not a coord. var.
+         */
+        if ( nc.ndims > 0 ) {
+            var.is_axis = FALSE;
+            var.axis_dir = 0;
+            i = 0;
+            while ( (i < nc.ndims) && (var.is_axis == FALSE) ) {
+                if    ( strcasecmp(var.name, nc.dims[i].name) == 0 )
+                    var.is_axis = TRUE;
+                if    ( var.type == NC_CHAR )
+                    var.is_axis = FALSE;
+                if    ( var.ndims > 1 )
+                    var.is_axis = FALSE;
+                i = i + 1;
+            }
+        }
+
+        /* get _FillValue attribute */
+        nc_status =    nc_inq_att(*ncid,iv,"_FillValue",&att.type, &len);
+        att.len = (int)len;
+        if ( (nc_status == NC_NOERR) &&
+                 (att.type == var.type) &&
+                 (att.len == 1) ) {
+            var.has_fillval = TRUE;
+            if ( var.type == NC_CHAR ) {
+                nc_status = nc_get_att_text(*ncid, iv, "_FillValue", &fillc);
+                if ( nc_status != NC_NOERR ) {
+                    return_val = bad_file_attr;
+                }
+                else {
+                    var.fillval = (double) fillc;
+                }
+            }
+            else {
+                nc_status = nc_get_att_double(*ncid, iv, "_FillValue", &var.fillval);
+            }
+        }
+        else    { /* set to default NC value*/
+            var.has_fillval = FALSE;
+            switch (var.type) {
+            case NC_BYTE:
+                /* don't do default fill-values for bytes, too risky */
+                var.has_fillval = 0;
+                break;
+            case NC_CHAR:
+                var.fillval = NC_FILL_CHAR;
+                break;
+            case NC_SHORT:
+                var.fillval = NC_FILL_SHORT;
+                break;
+            case NC_INT:
+                var.fillval = NC_FILL_INT;
+                break;
+            case NC_FLOAT:
+                var.fillval = NC_FILL_FLOAT;
+                break;
+            case NC_DOUBLE:
+                var.fillval = NC_FILL_DOUBLE;
+                break;
+            default:
+                break;
+            }
+        }
+        var.all_outflag = 1;
 
-       strcpy(var.name, ".");
+        /* Go ahead and create the list for variable attributes */
+        var.varattlist = list_init();
+        if ( var.varattlist == NULL ) {
+            fprintf(stderr, "ERROR: ncf_add_dset: Unable to initialize variable attributes list.\n");
+            return -1;
+        }
 
-       var.attrs_list_initialized = FALSE;
+        /* get all variable attributes
+         * For string attributes, allocate one more than the att.len,
+         * for the null terminator for the string. See Netcdf User's Guide, nc_get_att_text.
+         */
 
-       var.type = NC_CHAR;
-       var.outtype = NC_CHAR;
-       var.varid = 0;
-	   var.natts = nc.ngatts;
-       var.has_fillval = FALSE;
+        for (ia = 0; ia < var.natts; ia++) {
+            ncf_init_attribute(&att);
+            nc_status = nc_inq_attname(*ncid, iv, ia, att.name);
+            if (nc_status == NC_NOERR) {
+                att.attid = ia+1;
+
+                nc_status = nc_inq_att(*ncid, iv, att.name, &att.type, &len);
+                att.len = (int)len;
+                if ( nc_status == NC_NOERR ) {
+                    if ( att.len == 0 ) {    /* set 0-length attributes to empty strings */
+                        att.type = NC_CHAR;
+                        att.outtype = NC_CHAR;
+                        att.len = 1;
+                        att.string = (char *) malloc(2*sizeof(char));
+                        strcpy(att.string," ");
+                    }
+                    else {
+                        switch ( att.type ) {
+                        case NC_CHAR:
+                            /* Plus one for end-of-string delimiter. */
+                            att.string = (char *) malloc((att.len+1)*sizeof(char));
+                            strcpy (att.string, " ");
+                            nc_status = nc_get_att_text(*ncid, iv, att.name, att.string);
+                            if ( nc_status != NC_NOERR ) {    /* on error set attr to empty string*/
+                                att.type = NC_CHAR;
+                                att.outtype = NC_CHAR;
+                                att.len = 1;
+                                /* att.string already allocated to at least 2 */
+                                strcpy(att.string, " ");
+                                return_val = bad_file_attr;
+                            }
+                            else {
+                                /* Ensure end-of-string delimiter because Netcdf API doesn't store automatically; it's up to the file's author. */
+                                att.string[att.len] = '\0';
+
+                                /* Check the actual string length (one example file has attribute units="m"
+                                 * but gets att.len = 128 from nc_inq_att above) because user probably used
+                                 * some arbitrarily large string buffer and partially populated the string
+                                 * leaving the remainder filled with '\0'.    */
+                                ilen = strlen(att.string);
+                                if ( ilen < att.len )
+                                    att.len = ilen;
+                            }
+                            break;
+                        default:
 #ifdef double_p
-	   var.fillval = NC_FILL_DOUBLE;
+                            att.outtype = NC_DOUBLE;
 #else
-	   var.fillval = NC_FILL_FLOAT;
+                            att.outtype = NC_FLOAT;
 #endif
-	   var.all_outflag = 1;
-	   var.is_axis = FALSE;
-	   var.axis_dir = 0;		
-		 var.ndims = 0;
-	   var.attrs_list_initialized = FALSE; 
-
-   /* set one global attribute, history */
-
-		  att.outflag = 1;
-          att.type = NC_CHAR;
-          att.outtype = NC_CHAR;
-          att.outflag = 0;
-          att.attid = 1;
-		  att.len = strlen(name);
-          strcpy(att.name, "history" );
-
-	      att.string = (char *) malloc((att.len+1)* sizeof(char));
-		  strcpy(att.string, name );
-
-      /*Save attribute in linked list of attributes for variable .*/	
-       if (!var.attrs_list_initialized) {
-          if ( (var.varattlist = list_init()) == NULL ) {
-            fprintf(stderr, "ERROR: ncf_init_other_dset: Unable to initialize GLOBAL attributes list.\n");
-            return_val = -1;
-            return return_val; 
-          }
-          var.attrs_list_initialized = TRUE;
-	  }
-
-       list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
-
-       /* global attributes list complete */
-
-      /*Save variable in linked list of variables for this dataset */	
-       if (!nc.vars_list_initialized) {
-          if ( (nc.dsetvarlist = list_init()) == NULL ) {
-            fprintf(stderr, "ERROR: ncf_init_uvar_dset: Unable to initialize variable list.\n");
-            return_val = -1;
-            return return_val; 
-          }
-          nc.vars_list_initialized = TRUE;
+                            att.vals = (double *) malloc(att.len * sizeof(double));
+                            nc_status = nc_get_att_double(*ncid, iv, att.name, att.vals);
+                            if ( nc_status != NC_NOERR ) {    /* on error set attr to empty string*/
+                                free(att.vals);
+                                att.vals = NULL;
+                                att.type = NC_CHAR;
+                                att.outtype = NC_CHAR;
+                                att.len = 1;
+                                att.string = (char *) malloc((att.len+1)* sizeof(char));
+                                strcpy (att.string, " ");
+                                return_val = bad_file_attr;
+                            }
+                            break;
+                        }
+                    }
+
+                    /* Initialize output flag. Attributes written by default by Ferret
+                     * will be set to outflag = 1.
+                     */
+                    att.outflag = initialize_output_flag(att.name, var.is_axis);
+
+                } /* end of the if (nc_status == NC_NOERR)    */
+            }
+
+            /*Save attribute in linked list of attributes for this variable */
+            list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
+        }        /* variable attributes from file complete */
+
+        /* If this is a coordinate variable, add an attribute orig_file_axname which
+         * contains the axis name, and is used to preserve the original name if
+         * Ferret detects a duplicate axis name and changes the axis name.*/
+        if ( var.is_axis ) {
+            var.natts = var.natts + 1;
+            ncf_init_attribute(&att);
+            strcpy (att.name, "orig_file_axname");
+            att.attid = ia+1;
+            att.type = NC_CHAR;
+            att.len = strlen(var.name);
+            att.string = (char *) malloc((att.len+1)*sizeof(char));
+            strcpy (att.string,var.name);
+
+            /* Ensure end-of-string delimiter because Netcdf API doesn't store automatically; it's up to the file's author. */
+            att.string[att.len] = '\0';
+
+            /* Output flag always false for this attribute */
+            att.outflag = -1;
+
+            /*Save attribute in linked list of attributes for this variable */
+            list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
         }
 
-       list_insert_after(nc.dsetvarlist, (char *) &var, sizeof(ncvar));
+        /*Save variable in linked list of variables for this dataset */
+        list_insert_after(nc.dsetvarlist, (char *) &var, sizeof(ncvar));
+    }        /* variables list complete */
 
-/* Add dataset to global nc dataset linked list*/ 
-  if (!list_initialized) {
-    if ( (GLOBAL_ncdsetList = list_init()) == NULL ) {
-      fprintf(stderr, "ERROR: ncf_init_uvar_dset: Unable to initialize GLOBAL_ncDsetList.\n");
-      return_val = -1;
-      return return_val; 
-	}
-    list_initialized = TRUE;
-  }
+    /* Add dataset to global nc dataset linked list*/
+    if ( GLOBAL_ncdsetList == NULL ) {
+        GLOBAL_ncdsetList = list_init();
+        if ( GLOBAL_ncdsetList == NULL ) {
+            fprintf(stderr, "ERROR: ncf_add_dset: Unable to initialize GLOBAL_ncDsetList.\n");
+            return -1;
+        }
+    }
+    list_insert_after(GLOBAL_ncdsetList, (char *) &nc, sizeof(ncdset));
 
-  list_insert_after(GLOBAL_ncdsetList, (char *) &nc, sizeof(ncdset));
-  return_val = FERR_OK;
-  return return_val;
-  }
+    return return_val;
+}
 
 /* ----
- * Find a dataset based on an integer id and return the nc_ptr.
+ * Initialize new dataset to contain a non-netcdf dataset
+ * save in GLOBAL_ncdsetList for attribute handling
  */
-ncdset *ncf_ptr_from_dset(int *dset)
+int FORTRAN(ncf_init_other_dset)( int *setnum, char name[], char path[] )
 {
-  static ncdset *nc_ptr=NULL;
-  int status=LIST_OK;
-
-  status = list_traverse(GLOBAL_ncdsetList, (char *) dset, NCF_ListTraverse_FoundDsetID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-
-  /*
-   * If the search failed, print a warning message and return.
-   */
-  if ( status != LIST_OK ) {
-    /* fprintf(stderr, "\nERROR: in ncf_ptr_from_dset: No dataset of id %d was found.\n\n", *dset); */
-    return NULL;
-  }
-
-  nc_ptr=(ncdset *)list_curr(GLOBAL_ncdsetList); 
-  
-  return nc_ptr;
+    ncdset nc;
+    ncvar var; /* variable */
+    ncatt att; /* attribute */
+
+    ncf_init_dataset(&nc);
+    strcpy(nc.fername, name);
+    strcpy(nc.fullpath, path);
+    nc.fer_dsetnum = *setnum;
+    nc.ngatts = 1;
+
+    /* set up pseudo-variable . the list of variables */
+    ncf_init_variable(&var);
+    strcpy(var.name, ".");
+    var.type = NC_CHAR;
+    var.outtype = NC_CHAR;
+    var.varid = 0;
+    var.natts = 1;
+    var.ndims = 0;
+
+    /* set one global attribute, history */
+    ncf_init_attribute(&att);
+    att.outflag = 1;
+    att.type = NC_CHAR;
+    att.outtype = NC_CHAR;
+    att.outflag = 0;
+    att.attid = 1;
+    att.len = strlen(name);
+    strcpy(att.name, "history");
+    att.string = (char *) malloc((att.len+1)* sizeof(char));
+    strcpy(att.string, name);
+
+    /* Save attribute in linked list of attributes for variable */
+    var.varattlist = list_init();
+    if ( var.varattlist == NULL ) {
+        fprintf(stderr, "ERROR: ncf_init_other_dset: Unable to initialize GLOBAL attributes list.\n");
+        return -1;
+    }
+    list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
+
+    /* global attributes list complete */
+
+    /*Save variable in linked list of variables for this dataset */
+    nc.dsetvarlist = list_init();
+    if ( nc.dsetvarlist == NULL ) {
+        fprintf(stderr, "ERROR: ncf_init_uvar_dset: Unable to initialize variable list.\n");
+        return -1;
+    }
+    list_insert_after(nc.dsetvarlist, (char *) &var, sizeof(ncvar));
+
+    /* Add dataset to global nc dataset linked list */
+    if ( GLOBAL_ncdsetList == NULL ) {
+        GLOBAL_ncdsetList = list_init();
+        if ( GLOBAL_ncdsetList == NULL ) {
+            fprintf(stderr, "ERROR: ncf_init_uvar_dset: Unable to initialize GLOBAL_ncDsetList.\n");
+            return -1;
+        }
+    }
+    list_insert_after(GLOBAL_ncdsetList, (char *) &nc, sizeof(ncdset));
+
+    return FERR_OK;
 }
 
 /* ----
- * Find a dataset based on its integer ID and return a pointer to its variable list
+ * Find a dataset based on an integer id and return the pointer to the dataset.
  */
-
-LIST *ncf_get_ds_varlist( int *dset)
+static ncdset *ncf_get_ds_ptr( int *dset )
 {
-  ncdset *nc_ptr=NULL;
-  static LIST *list_ptr=NULL;
+    int status;
+    ncdset *nc_ptr;
 
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL ) { return NULL; }
+    status = list_traverse(GLOBAL_ncdsetList, (char *) dset, NCF_ListTraverse_FoundDsetID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return NULL;
 
-  list_ptr=nc_ptr->dsetvarlist; 
-  return list_ptr;
+    nc_ptr = (ncdset *) list_curr(GLOBAL_ncdsetList);
+    return nc_ptr;
 }
 
 /* ----
- * Find a variable based on its dataset and variable IDs 
- * and return a pointer to its attribute list
+ * Find a dataset based on its integer ID and return a pointer to its variable list
  */
-
-LIST *ncf_get_ds_var_attlist( int *dset, int *varid)
+static LIST *ncf_get_ds_varlist( int *dset )
 {
-  ncdset *nc_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  static LIST *varlist=NULL;
-  static LIST *att_ptr=NULL;
-  int status;
+    ncdset *nc_ptr;
+    LIST *varlist;
 
-   /*
-   * Get the list of variables.  
-   */
-  varlist = ncf_get_ds_varlist(dset);
+    nc_ptr = ncf_get_ds_ptr(dset);
+    if ( nc_ptr == NULL )
+        return NULL;
 
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return NULL;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
-
-  att_ptr=var_ptr->varattlist; 
-  return att_ptr;
+    varlist = nc_ptr->dsetvarlist;
+    return varlist;
 }
 
 /* ----
- * Find a dataset based on its integer ID and return a pointer to its aggregate member list
+ * Find a variable in a dataset based on its dataset integer ID and variable integer ID.
+ * Return a pointer to the variable.
  */
-
-LIST *ncf_get_ds_agglist( int *dset)
+static ncvar *ncf_get_ds_var_ptr( int *dset, int *varid )
 {
-  ncdset *nc_ptr=NULL;
-  static LIST *list_ptr=NULL;
+    LIST *varlist;
+    int status;
+    ncvar *var_ptr;
 
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL ) { return NULL; }
+    varlist = ncf_get_ds_varlist(dset);
+    if ( varlist == NULL )
+        return NULL;
+    status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return NULL;
 
-  list_ptr=nc_ptr->agg_dsetlist; 
-  return list_ptr;
+    var_ptr = (ncvar *) list_curr(varlist);
+    return var_ptr;
 }
 
 /* ----
- * Find a variable based on its dataset and variable IDs 
- * and return a pointer to its aggregate-grid list
+ * Initialize an ncatt to default values just to make sure
+ * there are no random garbage values in the structure.
  */
-
-LIST *ncf_get_ds_var_gridlist( int *dset, int *varid)
+static void ncf_init_attribute( ncatt *att_ptr )
 {
-  ncdset *nc_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  static LIST *varlist=NULL;
-  static LIST *grids_ptr=NULL;
-  int status;
-
-   /*
-   * Get the list of variables.  
-   */
-  varlist = ncf_get_ds_varlist(dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return NULL;
+    /* Just set everything to 0/NULL/FALSE/empty string */
+    memset(att_ptr, 0, sizeof(ncatt));
+    /* No fields to adjust */
+}
 
-  var_ptr=(ncvar *)list_curr(varlist); 
+/* ----
+ * Free the fields in an ncatt, then the ncatt itself
+ * For using with list_free.
+ */
+static void ncf_free_attribute( char *attptr ) {
+    ncatt *att;
 
-  grids_ptr=var_ptr->varagglist; 
-  return grids_ptr;
+    att = (ncatt *)attptr;
+    if ( att->string != NULL ) {
+        free(att->string);
+        att->string = NULL;
+    }
+    if ( att->vals != NULL ) {
+        free(att->vals);
+        att->vals = NULL;
+    }
+    free(att);
 }
 
 /* ----
-/*
  * Deallocates ncatts for a ncvar.
  */
-void ncf_free_attlist(ncvar* varptr)
+static void ncf_free_attlist( ncvar* varptr )
 {
-	LIST_ELEMENT *lp, *prev;
-	int status = TRUE;
-	ncatt* att;
+    if (varptr == NULL)
+        return;
+    if ( varptr->varattlist == NULL )
+        return;
 
-	if (varptr == NULL) 
-		return;
-
-	/* Traverse list */
-	lp = varptr->varattlist->front;
+    /*
+     * Free the attribute list using ncf_free_attribute
+     * to free each data element in the list
+     */
+    list_free(varptr->varattlist, ncf_free_attribute);
+    varptr->varattlist = NULL;
+    varptr->natts = 0;
+}
 
-	if (lp == NULL) 
-		return;
-
-	while(status) {		
-		att = (ncatt*) lp->data;
-
-		if (att->string != NULL) {
-		 	free(att->string);
-	 	}
-
- 		if (att->vals != NULL) {
-	 		free(att->vals);
-		}
+/* ----
+ * Initialize an ncvar to default values just to make sure
+ * there are no random garbage values in the structure.
+ */
+static void ncf_init_variable( ncvar *var_ptr )
+{
+    /* Just set everything to 0/NULL/FALSE/empty string */
+    memset(var_ptr, 0, sizeof(ncvar));
+    /* Adjust a few fields */
+    var_ptr->ndims = 6;
+    var_ptr->all_outflag = 1;
+#ifdef double_p
+    var_ptr->fillval = NC_FILL_DOUBLE;
+#else
+    var_ptr->fillval = NC_FILL_FLOAT;
+#endif
+}
 
-		if (lp->next  == NULL) {
-			status = FALSE;
-		} else {
-			lp = lp->next;
-		}
-	}
+/* ----
+ * Free the fields in an ncvar, then the ncvar itself
+ * For using with list_free.
+ * This does NOT reset the varid's or reset the number
+ * of vars in the dataset.
+ */
+static void ncf_free_variable( char *varptr )
+{
+    ncvar *var;
+
+    if (varptr == NULL)
+        return;
+    var = (ncvar *)varptr;
+    /* Free the list of attributes */
+    ncf_free_attlist(var);
+    if ( var->varagglist != NULL ) {
+        list_free(var->varagglist, LIST_DEALLOC);
+        var->varagglist = NULL;
+    }
+    /* Free the list of uvarGrids */
+    if ( var->uvarGridList != NULL ) {
+        list_free(var->uvarGridList, LIST_DEALLOC);
+        var->uvarGridList = NULL;
+    }
+    /* Free thr variable itself */
+    free(var);
 }
 
 /* ----
- * Remove a dataset from the global dataset list
+ * Initialize an ncdset to default values just to make sure
+ * there are no random garbage values in the structure.
  */
+static void ncf_init_dataset( ncdset *dset_ptr )
+{
+    /* Just set everything to 0/NULL/FALSE/empty string */
+    memset(dset_ptr, 0, sizeof(ncdset));
+    /* Adjust a few fields */
+    dset_ptr->ndims = 6;
+    dset_ptr->recdim = -1;
+}
 
-int FORTRAN(ncf_delete_dset)(int *dset)
+/* ----
+ * Free the fields in an ncdset, then the ncdset itself.
+ * For use with list_free.
+ * Does not remove the ncdset from the global list.
+ */
+static void ncf_free_dataset( char *nc_ptr )
 {
+    ncdset *nc;
+    LIST *varlist;
+
+    if ( nc_ptr == NULL )
+        return;
+    nc = (ncdset *) nc_ptr;
 
-  ncdset *nc_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  ncatt *att_ptr=NULL;
-  static int return_val;
-  LIST *varlist;
-  LIST *dummy;
-  int ivar;
-	LIST_ELEMENT *lp;
+    /* Free the ncvar's associated with this dataset */
+    varlist = nc->dsetvarlist;
+    list_free(varlist, ncf_free_variable);
+    nc->dsetvarlist = NULL;
+    nc->nvars = 0;
+    nc->ngatts = 0;
 
-/* Find the dataset
- */ 
+    /* Free the ncdset itself */
+    free(nc);
+}
+
+/* ----
+ * Remove all datasets for the global datasets list
+ * and remove the global datasets list.
+ */
+void FORTRAN(ncf_datasets_list_clear)( void )
+{
+     list_free(GLOBAL_ncdsetList, ncf_free_dataset);
+     GLOBAL_ncdsetList = NULL;
+}
 
-  return_val = ATOM_NOT_FOUND;
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL ) { return return_val; }
+/* ----
+ * Remove a dataset from the global dataset list
+ */
+int FORTRAN(ncf_delete_dset)( int *dset )
+{
+    ncdset *nc_ptr;
+    LIST *varlist;
 
-  /* For each variable, deallocate the list of attributes, 
-   * and remove the variable from the dataset list
-   */
+    /* Find the dataset */
+    nc_ptr = ncf_get_ds_ptr(dset);
+    if ( nc_ptr == NULL )
+        return ATOM_NOT_FOUND;
 
-  varlist = ncf_get_ds_varlist(dset);
-  var_ptr=(ncvar *)list_front(varlist); 
-  for (ivar = 0; ivar< nc_ptr->nvars ;ivar ++ )
-  {  
-/*	 list_free(var_ptr->varattlist, LIST_DEALLOC); */ /* removed here just for testing...*/
-     list_remove_curr(varlist);
+    /* Free the list of variables for this dataset */
+    varlist = nc_ptr->dsetvarlist;
+    list_free(varlist, ncf_free_variable);
+    nc_ptr->dsetvarlist = NULL;
+    nc_ptr->nvars = 0;
+    nc_ptr->ngatts = 0;
 
-     /* Point to next variable */
-     dummy = list_mvnext(varlist);
-     var_ptr=(ncvar *)list_curr(varlist); 
-  }
+    /* Remove the dataset from dataset list */
+    if ( nc_ptr != (ncdset *) list_remove_curr(GLOBAL_ncdsetList) ) {
+        fprintf(stderr, "ERROR: ncf_delete_dset: Unexpected mismatch of current dataset in global list.\n");
+        return -1;
+    }
 
-	/* Remove dataset from dataset list */
-  list_remove_curr(GLOBAL_ncdsetList);
+    /* Free the ncdset itself */
+    free(nc_ptr);
 
-  return_val = FERR_OK;
-  return return_val;
-  }
+    return FERR_OK;
+}
 
 /* ----
  * Add a new variable to a dataset.
  * If varid is < 0, set it to nvars+1 for this dataset, return varid
  * and store -1*varid as the user variable ID (uvarid)
  */
-int  FORTRAN(ncf_add_var)( int *dset, int *varid, int *type, int *coordvar, char *varname, char title[], char units[], double *bad)
-
+int FORTRAN(ncf_add_var)( int *dset, int *varid, int *type, int *coordvar,
+                          char *varname, char title[], char units[], double *bad )
 {
-  ncdset *nc_ptr=NULL;
-  ncatt att;
-  ncvar var;
-  ncagg_var_descr vdescr;
-  int status=LIST_OK;
-  static int return_val;
-  int *i;
-  int newvar;
-  int my_len;
-  LIST *vlist=NULL;
-	ncvar* var_ptr;
-	LIST_ELEMENT *lp;
-	ncatt* att_ptr;
-	att.vals = NULL;
-	att.string = NULL;
-
-   /*
-   * Get the dataset pointer.  
-   */
-  return_val = ATOM_NOT_FOUND;  
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL )return return_val;
-
-   /*
-   * Get the list of variables.  See if this variable already exists.
-   */
-  newvar = FALSE;
-  vlist = ncf_get_ds_varlist(dset);
-  status = list_traverse(vlist, varname, NCF_ListTraverse_FoundVarName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) {
-    newvar = TRUE;
-  }
-
-  if (newvar != TRUE) {
-		/* If this variable is not new, remove the old definition of it		 */
-		FORTRAN(ncf_delete_var)(dset, varname);
-  }
-	
-	nc_ptr->nvars = nc_ptr->nvars + 1;
-
-   /*
-    * Set variable structure and insert the new variable at the end of the 
-	* variable list. The type is not known at this time.
-    */
-
-  strcpy(var.name,varname);
-  var.type = *type;
-  var.outtype = *type;
-  var.ndims = 6;
-  var.natts = 0;
-     
-  if (*varid < 0)
-    {
-      /* user variable (aka "LET") */
-      var.uvarid = -1* *varid;  /* value of uvar as found in Ferret */
-      if (*dset == PDSET_UVARS)
-        /* for global uvars,  varid always matches uvarid */
-        /* which means that gaps may occur in the varid sequence */
-         var.varid = var.uvarid;
-      else
-        /* for LET/D uvars, varid is the var count */
-        /* ==> gaps in varid must be compacted when LET/D vars are deleted */
-        var.varid = nc_ptr->nvars;
+    ncdset *nc_ptr;
+    ncatt att;
+    ncvar var;
+    ncagg_var_descr vdescr;
+    int status;
+    int newvar;
+    LIST *vlist;
+    LIST_ELEMENT *lp;
+
+    /*
+     * Get the dataset pointer.
+     */
+    nc_ptr = ncf_get_ds_ptr(dset);
+    if ( nc_ptr == NULL )
+        return ATOM_NOT_FOUND;
+
+    /*
+     * Get the list of variables.    See if this variable already exists.
+     */
+    newvar = FALSE;
+    vlist = nc_ptr->dsetvarlist;
+    status = list_traverse(vlist, varname, NCF_ListTraverse_FoundVarName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK ) {
+        newvar = TRUE;
     }
-  else
-    /* file variable */
-    {
-      var.varid = nc_ptr->nvars;
-      var.uvarid = 0;   /* 0 signals a file var */ 
+
+    if ( ! newvar ) {
+        /*
+         * If this variable is not new, remove the old definition of it.
+         * This decrements the appropriate varids as well as
+         * the number of vars in the dataset.
+         */
+        FORTRAN(ncf_delete_var)(dset, varname);
     }
 
-  var.is_axis = *coordvar;
-  var.axis_dir = 0;
-  var.has_fillval = FALSE;
-  var.all_outflag = 1;
-  var.fillval = 0;  /* initialize this */
-  var.attrs_list_initialized = FALSE;
+    nc_ptr->nvars = nc_ptr->nvars + 1;
 
-  if ( (var.varattlist = list_init()) == NULL ) {
-      fprintf(stderr, "ERROR: ncf_add_var: Unable to initialize attributes list.\n");
-      return_val = -1;
-      return return_val; 
-      }
-  var.attrs_list_initialized = TRUE;
+    /*
+     * Set variable structure and insert the new variable
+     * at the end of the variable list.
+     */
+    ncf_init_variable(&var);
+    strcpy(var.name,varname);
+    var.type = *type;
+    var.outtype = *type;
+    if ( *varid < 0 ) {
+        /* user variable (aka "LET") */
+        var.uvarid = -1 * (*varid);    /* value of uvar as found in Ferret */
+        if ( *dset == PDSET_UVARS ) {
+            /* for global uvars,    varid always matches uvarid */
+            /* which means that gaps may occur in the varid sequence */
+             var.varid = var.uvarid;
+        }
+        else {
+            /* for LET/D uvars, varid is the var count */
+            /* ==> gaps in varid must be compacted when LET/D vars are deleted */
+            var.varid = nc_ptr->nvars;
+        }
+    }
+    else {
+        /* file variable */
+        var.varid = nc_ptr->nvars;
+        var.uvarid = 0;     /* 0 signals a file var */
+    }
 
-   /* Set up initial set of attributes*/
+    var.is_axis = *coordvar;
 
-/*  Save the long_name, all variables
- *  For string attributes, allocate one more than the att.len, 
- *  presumably for the null terminator for the string (?) */
+    /* Set up initial set of attributes*/
+    var.varattlist = list_init();
+    if ( var.varattlist == NULL ) {
+        fprintf(stderr, "ERROR: ncf_add_var: Unable to initialize attributes list.\n");
+        return -1;
+    }
 
+    /* Save the long_name, all variables.
+     * For string attributes, allocate one more than the att.len,
+     * for the null terminator for the string
+     */
     var.natts = var.natts+1;
-    strcpy(att.name, "long_name");    
-	att.type = NC_CHAR; 
-	att.outtype = NC_CHAR;
+    ncf_init_attribute(&att);
+    strcpy(att.name, "long_name");
+    att.type = NC_CHAR;
+    att.outtype = NC_CHAR;
     att.attid = var.natts;
     att.outflag = 1;
     att.len = strlen(title);
     att.string = (char *) malloc((att.len+1)* sizeof(char));
     strcpy(att.string, title);
-	
-    att.vals = (double *) malloc(1 * sizeof(double));
-    att.vals[0] = 0; 
-
-    /*Save attribute in linked list of attributes for variable .*/
+    /* Save attribute in linked list of attributes for this variable */
     list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
 
-/*  Now the units, if given
- *  For the units string, allocate one more than the att.len, 
- *  presumably for the null terminator for the string (?)*/
-
-    if (strlen(units) > 0 )
-		{
-		var.natts = var.natts+1;
-
-		att.attid = var.natts;
-		strcpy(att.name, "units");
-		att.len = strlen(units);
-		att.outflag = 1;
-		att.type = NC_CHAR;
-		att.outtype = NC_CHAR;
-		att.string = (char *) malloc((att.len+1)* sizeof(char));
-		strcpy(att.string, units);
-
-        my_len = 1;
-	    att.vals = (double *) malloc(my_len * sizeof(double)); 
-        att.vals[0] = 0;
-
-
-/*Save attribute in linked list of attributes for this variable */	
-	  list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
-		}
-
-
-/* Now the missing_value, for numeric variables*/
-/*    if (*type != NC_CHAR)
-    { */
-		var.natts = var.natts+1;
-                var.fillval = *bad;
+    /* Now the units, if given
+     * For the units string, allocate one more than the att.len,
+     * for the null terminator for the string
+     */
+    if (strlen(units) > 0 ) {
+        var.natts = var.natts+1;
+        ncf_init_attribute(&att);
+        att.attid = var.natts;
+        strcpy(att.name, "units");
+        att.len = strlen(units);
+        att.outflag = 1;
+        att.type = NC_CHAR;
+        att.outtype = NC_CHAR;
+        att.string = (char *) malloc((att.len+1)* sizeof(char));
+        strcpy(att.string, units);
+        /* Save attribute in linked list of attributes for this variable */
+        list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
+    }
 
-		att.attid = var.natts;
-		strcpy(att.name,"missing_value");
-		att.len = 1;
-		att.string = NULL;
+    /* Now the missing_value, for numeric variables */
+    var.natts = var.natts+1;
+    var.fillval = *bad;
+    ncf_init_attribute(&att);
+    att.attid = var.natts;
+    strcpy(att.name,"missing_value");
+    att.len = 1;
 #ifdef double_p
-		att.type = NC_FLOAT;
-		att.outtype = NC_FLOAT;
+    att.type = NC_FLOAT;
+    att.outtype = NC_FLOAT;
 #else
-		att.type = NC_DOUBLE;
-		att.outtype = NC_DOUBLE;
+    att.type = NC_DOUBLE;
+    att.outtype = NC_DOUBLE;
 #endif
-		att.vals = (double *) malloc(att.len * sizeof(double));
-		att.vals[0] = *bad;
-
+    att.vals = (double *) malloc(att.len * sizeof(double));
+    att.vals[0] = *bad;
     /* Initialize output flag. Attributes written by default by Ferret
-	   will be set to outflag = 1. 
-	*/
-          att.outflag = initialize_output_flag (att.name, var.is_axis);
+     * will be set to outflag = 1.
+     */
+    att.outflag = initialize_output_flag (att.name, var.is_axis);
+    /*Save attribute in linked list of attributes for this variable */
+    list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
 
-      /*Save attribute in linked list of attributes for this variable */	
+    /* If this is an aggregate dataset, initialize the list of member-info
+     * for the variable. The values will be filled in later.
+     */
+    var.varagglist = list_init();
+    if ( var.varagglist == NULL ) {
+        fprintf(stderr, "ERROR: ncf_add_var: Unable to initialize aggregate info list.\n");
+        return -1;
+    }
 
-       list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
- /* 
+    vdescr.imemb = 0;
+    vdescr.gnum = 0;
+    list_insert_after(var.varagglist, (char *) &vdescr, sizeof(ncatt));
 
-    /* If this is an aggregate dataset, initialize the list of member-info
-	    for the variable. The values will be filled in later. */
-
-       var.agg_list_initialized = FALSE;
-
-         if ( (var.varagglist = list_init()) == NULL ) {
-             fprintf(stderr, "ERROR: ncf_add_var: Unable to initialize aggregate info list.\n");
-             return_val = -1;
-             return return_val; 
-             }
-         var.agg_list_initialized = TRUE;
-
-         vdescr.imemb = 0;
-         vdescr.gnum = 0;
-         list_insert_after(var.varagglist, (char *) &vdescr, sizeof(ncatt));
-
-/* if it's a uvar, then initialize a grid LIST for it */ 
-  if (var.uvarid == 0) 
-    var.uvarGridList = 0;
-  else
-    {
-      if ( (var.uvarGridList = list_init()) == NULL ) {
-	fprintf(stderr, "ERROR: ncf_add_var: Unable to initialize uvar grid list.\n");
-	return_val = -1;
-	return return_val; 
-      }
+    /* if it's a uvar, then initialize a grid LIST for it */
+    if ( var.uvarid != 0 ) {
+        var.uvarGridList = list_init();
+        if ( var.uvarGridList == NULL ) {
+            fprintf(stderr, "ERROR: ncf_add_var: Unable to initialize uvar grid list.\n");
+            return -1;
+        }
     }
-/*Save variable in linked list of variables for this dataset */
 
-  list_insert_after(nc_ptr->dsetvarlist, (char *) &var, sizeof(ncvar));
+    /* Save variable in linked list of variables for this dataset */
+    list_mvrear(nc_ptr->dsetvarlist);
+    list_insert_after(nc_ptr->dsetvarlist, (char *) &var, sizeof(ncvar));
 
-  return_val = FERR_OK;
-  return return_val;
+    return FERR_OK;
 }
 
 /* ----
  * Add a new variable to the pseudo user-defined coordinate variable dataset.
  */
-int  FORTRAN(ncf_add_coord_var)( int *dset, int *varid, int *type, int *coordvar, char varname[], char units[], double *bad)
-
+int FORTRAN(ncf_add_coord_var)( int *dset, int *varid, int *type, int *coordvar,
+                                char varname[], char units[], double *bad )
 {
-  ncdset *nc_ptr=NULL;
-  ncatt att;
-  ncvar var;
-  int status=LIST_OK;
-  static int return_val;
-  int *i;
-  int newvar;
-  int my_len;
-  LIST *vlist=NULL;
-	att.vals = NULL;
-	att.string = NULL;
-   /*
-   * Get the dataset pointer.  
-   */
-  return_val = ATOM_NOT_FOUND;  
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL )return return_val;
-
-   /*
-   * Get the list of variables.  See if this variable already exists.
-   */
-  newvar = FALSE;
-  vlist = ncf_get_ds_varlist(dset);
-  status = list_traverse(vlist, varname, NCF_ListTraverse_FoundVarName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) {
-    newvar = TRUE;
-  }
-  nc_ptr->nvars = nc_ptr->nvars + 1;
-
-  if (newvar == TRUE)
-  {
-  }
-  else
-   /* If this variable is not new, remove the old definition of it
-   */
-  {
-  list_remove_curr(vlist);
-
-  }
-  
-/*
-   * initialize the variable definition.
-   */
-       strcpy(var.name, " ");
-
-       var.attrs_list_initialized = FALSE;
-
-       var.type = NC_CHAR;
-       var.outtype = NC_CHAR;
-       var.varid = 0;
-	   var.natts = 0;
-       var.has_fillval = FALSE;
-       var.fillval = NC_FILL_FLOAT;
-	   var.all_outflag = 1;
-	   var.is_axis = FALSE;
-	   var.axis_dir = 0;
-
-
-   /*
-    * Set variable structure and insert the new variable at the end of the 
-	* variable list.
-    */
-
-  strcpy(var.name,varname);
-  var.type = *type;
-  var.outtype = *type;
-  var.ndims = 6;
-  var.natts = 0;  
-  var.varid = nc_ptr->nvars;
-  *varid = nc_ptr->nvars;
-  var.is_axis = *coordvar;
-  var.axis_dir = 0;
-  var.has_fillval = FALSE;
-  var.all_outflag = 1;
-  var.fillval = *bad;
-  var.attrs_list_initialized = FALSE;
-
-  if ( (var.varattlist = list_init()) == NULL ) {
-      fprintf(stderr, "ERROR: ncf_add_coord_var: Unable to initialize attributes list.\n");
-      return_val = -1;
-      return return_val; 
-      }
-  var.attrs_list_initialized = TRUE;
-
-   /* Set up initial set of attributes*/
-
-/*  Units, if given
- *  For the units string, allocate one more than the att.len, 
- *  presumably for the null terminator for the string (?)*/
-
-    if (strlen(units) > 0 )
-		{
-		var.natts = var.natts+1;
-
-		att.attid = var.natts;
-		strcpy(att.name, "units");
-		att.len = strlen(units);
-		att.outflag = 1;
-		att.type = NC_CHAR;
-		att.outtype = NC_CHAR;
-		att.string = (char *) malloc((att.len+1)* sizeof(char));
-		strcpy(att.string, units);
-
-        my_len = 1;
-	    att.vals = (double *) malloc(my_len * sizeof(double)); 
-        att.vals[0] = 0;
-
-      /*Save attribute in linked list of attributes for this variable */	
-
-          var.attrs_list_initialized = TRUE;
-          list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
-        }
+    ncdset *nc_ptr;
+    ncatt att;
+    ncvar var;
+    int status;
+    int newvar;
+    LIST *vlist;
+    ncvar *var_ptr;
+
+    /*
+     * Get the dataset pointer.
+     */
+    nc_ptr = ncf_get_ds_ptr(dset);
+    if ( nc_ptr == NULL )
+        return ATOM_NOT_FOUND;
+
+    /*
+     * Get the list of variables.    See if this variable already exists.
+     */
+    newvar = FALSE;
+    vlist = nc_ptr->dsetvarlist;
+    status = list_traverse(vlist, varname, NCF_ListTraverse_FoundVarName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK ) {
+        newvar = TRUE;
+    }
+
+    if ( ! newvar ) {
+        /*
+         * If this variable is not new, remove the old definition of it.
+         * Do not decrement varids or nvars !
+         */
+        var_ptr = (ncvar *) list_remove_curr(vlist);
+        ncf_free_variable((char *) var_ptr);
+    }
+
+    nc_ptr->nvars = nc_ptr->nvars + 1;
 
- /*   } */
+    /*
+     * Set variable structure and insert the new variable at the end of the
+     * variable list.
+     */
+    ncf_init_variable(&var);
+    strcpy(var.name, varname);
+    var.type = *type;
+    var.outtype = *type;
+    var.varid = nc_ptr->nvars;
+    *varid = nc_ptr->nvars;
+    var.is_axis = *coordvar;
+    var.fillval = *bad;
+    var.varattlist = list_init();
+    if ( var.varattlist == NULL ) {
+        fprintf(stderr, "ERROR: ncf_add_coord_var: Unable to initialize attributes list.\n");
+        return -1;
+    }
+
+    /* Set up initial set of attributes*/
 
-/*Save variable in linked list of variables for this dataset */
+    /* Units, if given
+     * For the units string, allocate one more than the att.len,
+     * for the null terminator for the string
+     */
+    if ( strlen(units) > 0 ) {
+        var.natts = var.natts+1;
+        ncf_init_attribute(&att);
+        att.attid = var.natts;
+        strcpy(att.name, "units");
+        att.len = strlen(units);
+        att.outflag = 1;
+        att.type = NC_CHAR;
+        att.outtype = NC_CHAR;
+        att.string = (char *) malloc((att.len+1)* sizeof(char));
+        strcpy(att.string, units);
+        list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
+    }
 
+    /* Save variable in linked list of variables for this dataset */
+    list_mvrear(nc_ptr->dsetvarlist);
     list_insert_after(nc_ptr->dsetvarlist, (char *) &var, sizeof(ncvar));
-  
-  return_val = FERR_OK;
-  return return_val;
+
+    return FERR_OK;
 }
 
 /* ----
  * Find a variable based on its variable ID and dataset ID
  * Add a new numeric attribute.
  */
-int  FORTRAN(ncf_add_var_num_att)( int *dset, int *varid, char attname[], 
-int *attype, int *attlen, int *outflag, DFTYPE *vals)
-
+int FORTRAN(ncf_add_var_num_att)( int *dset, int *varid, char attname[],
+                                  int *attype, int *attlen, int *outflag, DFTYPE *vals )
 {
-  ncatt *att_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  ncatt att;
-  int status=LIST_OK;
-  static int return_val;
-  int i;
-  LIST *varlist;
-  LIST *varattlist;
-	att.vals = NULL;
-	att.string = NULL;
-   /*
-    * Get the list of variables, find pointer to variable varid.
-    */
-  varlist = ncf_get_ds_varlist(dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
-  if (var_ptr->natts < 1) return ATOM_NOT_FOUND;
+    ncvar *var_ptr;
+    LIST *varattlist;
+    ncatt *att_ptr;
+    ncatt att;
+    int status;
+    int i;
 
     /*
-    * Get the list of attributes for the variable in the dataset
-    * If the attribute is already defined, return -1* attid
-    */
-  varattlist = ncf_get_ds_var_attlist(dset, varid);
-
-  status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status == LIST_OK ) {
-    att_ptr=(ncatt *)list_curr(varattlist); 
-    return_val = -1* att_ptr->attid; 
-    return return_val;
-    }
+     * Get the list of variables, find pointer to variable varid.
+     */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
 
-   /* Increment number of attributes.  
-   */
+    /*
+     * Get the list of attributes for the variable in the dataset
+     * If the attribute is already defined, return -1* attid
+     */
+    varattlist = var_ptr->varattlist;
+    if ( varattlist == NULL )
+        return ATOM_NOT_FOUND;
+
+    status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status == LIST_OK ) {
+        att_ptr = (ncatt *) list_curr(varattlist);
+        return (-1 * att_ptr->attid);
+    }
 
-  var_ptr->natts = var_ptr->natts + 1;
+    /* Increment number of attributes. */
 
-   /*
-    * Set attribute structure and insert the new attribute at 
-	* the end of the attribute list. 
-    */
+    var_ptr->natts = var_ptr->natts + 1;
 
-  strcpy(att.name,attname);
-  att.attid = var_ptr->natts;
-  att.type = *attype;
+    /*
+     * Set attribute structure and insert the new attribute at
+     * the end of the attribute list.
+     */
+    ncf_init_attribute(&att);
+    strcpy(att.name, attname);
+    att.attid = var_ptr->natts;
+    att.type = *attype;
 #ifdef double_p
-  att.outtype = NC_FLOAT;
+    att.outtype = NC_FLOAT;
 #else
-  att.outtype = NC_DOUBLE;
+    att.outtype = NC_DOUBLE;
 #endif
-  att.len = *attlen;
-  att.outflag = *outflag;
-	att.string = NULL;
-  att.vals = (double *) malloc(*attlen * sizeof(double));
+    att.len = *attlen;
+    att.outflag = *outflag;
+    att.vals = (double *) malloc(*attlen * sizeof(double));
 
-  for (i = 0; i<*attlen;i++ )
-  {att.vals[i] = vals[i];
-  }
-
-   /*Save attribute in linked list of attributes for this variable */	
+    for (i = 0; i < *attlen; i++) {
+        att.vals[i] = vals[i];
+    }
 
-  list_insert_after(var_ptr->varattlist, (char *) &att, sizeof(ncatt));
+    /* Save attribute in linked list of attributes for this variable */
+    list_insert_after(varattlist, (char *) &att, sizeof(ncatt));
 
-  return_val = FERR_OK;
-  return return_val;
+    return FERR_OK;
 }
 
 /* ----
  * Find a variable based on its variable ID and dataset ID
  * Add a new numeric attribute.
  */
-int  FORTRAN(ncf_add_var_num_att_dp)( int *dset, int *varid, char attname[], int *attype, int *attlen, int *outflag, double *vals)
-
+int FORTRAN(ncf_add_var_num_att_dp)( int *dset, int *varid, char attname[],
+                                     int *attype, int *attlen, int *outflag, double *vals )
 {
-  ncatt *att_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  ncatt att;
-  int status=LIST_OK;
-  static int return_val;
-  int i;
-  LIST *varlist;
-  LIST *varattlist;
-	att.vals = NULL;
-	att.string = NULL;
-   /*
-    * Get the list of variables, find pointer to variable varid.
-    */
-  varlist = ncf_get_ds_varlist(dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
-  if (var_ptr->natts < 1) return ATOM_NOT_FOUND;
-
-    /*
-    * Get the list of attributes for the variable in the dataset
-    * If the attribute is already defined, return -1* attid
-    */
-  varattlist = ncf_get_ds_var_attlist(dset, varid);
-
-  status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status == LIST_OK ) {
-    att_ptr=(ncatt *)list_curr(varattlist); 
-    return_val = -1* att_ptr->attid; 
-    return return_val;
-    }
+    ncvar *var_ptr;
+    ncatt *att_ptr;
+    ncatt att;
+    int status;
+    int i;
+    LIST *varattlist;
 
-   /* Increment number of attributes.  
-   */
+    /* Get the variable */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
+    if ( var_ptr->natts < 1 )
+        return ATOM_NOT_FOUND;
 
-  var_ptr->natts = var_ptr->natts + 1;
+    /*
+     * Get the list of attributes for the variable in the dataset
+     * If the attribute is already defined, return -1* attid
+     */
+    varattlist = var_ptr->varattlist;
+    if ( varattlist == NULL )
+        return ATOM_NOT_FOUND;
 
-   /*
-    * Set attribute structure and insert the new attribute at 
-	* the end of the attribute list. 
-    */
+    status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status == LIST_OK ) {
+        att_ptr = (ncatt *) list_curr(varattlist);
 
-  strcpy(att.name,attname);
-  att.attid = var_ptr->natts;
-  att.type = *attype;
-  att.outtype = NC_DOUBLE;
-  att.len = *attlen;
-  att.outflag = *outflag;
-	att.string = NULL;
-  att.vals = (double *) malloc(*attlen * sizeof(double));
+        return (-1 * att_ptr->attid);
+    }
 
-  for (i = 0; i<*attlen;i++ )
-  {att.vals[i] = vals[i];
-  }
+    /* Increment number of attributes. */
+    var_ptr->natts = var_ptr->natts + 1;
 
-   /*Save attribute in linked list of attributes for this variable */	
+    /*
+     * Set attribute structure and insert the new attribute at
+     * the end of the attribute list.
+     */
+    ncf_init_attribute(&att);
+    strcpy(att.name, attname);
+    att.attid = var_ptr->natts;
+    att.type = *attype;
+    att.outtype = NC_DOUBLE;
+    att.len = *attlen;
+    att.outflag = *outflag;
+    att.vals = (double *) malloc(*attlen * sizeof(double));
+    for (i = 0; i < *attlen; i++) {
+        att.vals[i] = vals[i];
+    }
 
-  list_insert_after(var_ptr->varattlist, (char *) &att, sizeof(ncatt));
+    /*Save attribute in linked list of attributes for this variable */
+    list_insert_after(varattlist, (char *) &att, sizeof(ncatt));
 
-  return_val = FERR_OK;
-  return return_val;
+    return FERR_OK;
 }
 
 /* ----
- * Find a variable  based on its variable ID and dataset ID
+ * Find a variable    based on its variable ID and dataset ID
  * Add a new string attribute.
  */
-int  FORTRAN(ncf_add_var_str_att)( int *dset, int *varid, char attname[], int *attype, int *attlen, int *outflag, char attstring[])
-
+int FORTRAN(ncf_add_var_str_att)( int *dset, int *varid, char attname[], int *attype,
+                                  int *attlen, int *outflag, char attstring[])
 {
-  ncdset *nc_ptr=NULL;
-  ncatt *att_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  ncatt att;
-  int status=LIST_OK;
-  int return_val;
-  int i;
-  LIST *varlist;
-  LIST *varattlist;
-	att.vals = NULL;
-	att.string = NULL;
-
-   /*
-   * Get the dataset pointer.  
-   */
-  return_val = ATOM_NOT_FOUND;  
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL )return return_val;
-
-   /*
-    * Get the list of variables, find pointer to variable varid.
-    */
-  varlist = ncf_get_ds_varlist(dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
-  
-    /*
-    * here if natts < 1 we should initialize the list!
-    */
-      /*Save attribute in linked list of attributes for variable */	
-  if (!var_ptr->attrs_list_initialized) {
-    if ( (var_ptr->varattlist = list_init()) == NULL ) {
-      fprintf(stderr, "ERROR: add_var_str_att: Unable to initialize attributes list.\n");
-      return_val = -1;
-      return return_val; 
-     }
-    var_ptr->attrs_list_initialized = TRUE;
-  }
+    ncdset *nc_ptr;
+    ncvar *var_ptr;
+    ncatt *att_ptr;
+    ncatt att;
+    int status;
+    LIST *varlist;
+    LIST *varattlist;
 
     /*
-    * Get the list of attributes for the variable in the dataset
-    * If the attribute is already defined, return -1* attid
-    */
-  varattlist = ncf_get_ds_var_attlist(dset, varid);
-
-  status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status == LIST_OK ) {
-    att_ptr=(ncatt *)list_curr(varattlist); 
-    return_val = -1* att_ptr->attid; 
+     * Get the dataset pointer.
+     */
+    nc_ptr = ncf_get_ds_ptr(dset);
+    if ( nc_ptr == NULL )
+        return ATOM_NOT_FOUND;
 
-    return return_val;
+    /*
+     * Get the list of variables, find pointer to variable varid.
+     */
+    varlist = nc_ptr->dsetvarlist;
+    status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+    var_ptr = (ncvar *) list_curr(varlist);
+
+    /* Save attribute in linked list of attributes for variable */
+    if ( var_ptr->varattlist == NULL ) {
+        var_ptr->varattlist = list_init();
+        if ( var_ptr->varattlist == NULL ) {
+            fprintf(stderr, "ERROR: add_var_str_att: Unable to initialize attributes list.\n");
+            return -1;
+        }
+    }
+    else {
+        varattlist = var_ptr->varattlist;
+        /*
+         * Get the list of attributes for the variable in the dataset
+         * If the attribute is already defined, return -1* attid
+         */
+        status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+        if ( status == LIST_OK ) {
+            att_ptr = (ncatt *) list_curr(varattlist);
+            return (-1 * att_ptr->attid);
+        }
     }
 
-   /* Increment number of attributes.  
-   */
-  if (*varid == 0)
-  { nc_ptr->ngatts = nc_ptr->ngatts + 1; 
-  }
-
-  var_ptr->natts = var_ptr->natts + 1;
-
-   /*
-    * Set attribute structure and insert the new attribute at 
-	* the end of the attribute list. 
-	
-    *  For string attributes, allocate one more than the att.len, 
-    *  presumably for the null terminator for the string (?)
-    */
-
-  strcpy(att.name,attname);
-  att.attid = var_ptr->natts;
-  att.type = *attype;
-  att.outtype = NC_CHAR;
-  att.len = *attlen;
-  att.outflag = *outflag;
-  att.string = (char *) malloc((att.len+1)* sizeof(char));
-  strcpy(att.string, attstring);
-
-      /*Save attribute in linked list of attributes for this variable */	
+    /* Increment number of attributes. */
+    if ( *varid == 0 ) {
+        nc_ptr->ngatts = nc_ptr->ngatts + 1;
+    }
+    var_ptr->natts = var_ptr->natts + 1;
 
+    /*
+     * Set attribute structure and insert the new attribute at
+     * the end of the attribute list.
+     *
+     *    For string attributes, allocate one more than the att.len,
+     *    for the null terminator for the string
+     */
+    ncf_init_attribute(&att);
+    strcpy(att.name,attname);
+    att.attid = var_ptr->natts;
+    att.type = *attype;
+    att.outtype = NC_CHAR;
+    att.len = *attlen;
+    att.outflag = *outflag;
+    att.string = (char *) malloc((att.len+1)* sizeof(char));
+    strcpy(att.string, attstring);
 
- list_insert_after(var_ptr->varattlist, (char *) &att, sizeof(ncatt));
+    /*Save attribute in linked list of attributes for this variable */
+    list_insert_after(var_ptr->varattlist, (char *) &att, sizeof(ncatt));
 
-  return_val = FERR_OK;
-  return return_val;
+    return FERR_OK;
 }
 
 /* ----
  * Find a variable based on its variable ID and dataset ID
  * Replace the variable name with the new one passed in.
  */
-
-int  FORTRAN(ncf_rename_var)( int *dset, int *varid, char newvarname[])
-
+int FORTRAN(ncf_rename_var)( int *dset, int *varid, char newvarname[] )
 {
-  ncvar *var_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  int i;
-  LIST *varlist;
-
-   /*
-    * Get the list of variables, find pointer to variable varid.
-    */
-  varlist = ncf_get_ds_varlist(dset);
+    ncvar *var_ptr;
 
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
+    /* Get the variable */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
 
-  var_ptr=(ncvar *)list_curr(varlist); 
+    /* Insert the new name. */
+    strcpy(var_ptr->name, newvarname);
 
-  /* Insert the new name. */
-  strcpy( var_ptr->name, newvarname); 
-
-  return_val = FERR_OK;
-  return return_val;
+    return FERR_OK;
 }
 
-
 /* ----
  * Find a dimension in the datset using dataset ID
  * Replace the dimension name with the new one passed in.
  */
-
-int  FORTRAN(ncf_rename_dim)( int *dset, int *dimid, char newdimname[])
-
+int FORTRAN(ncf_rename_dim)( int *dset, int *dimid, char newdimname[] )
 {
-  ncdset *nc_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-	
-   /*
-   * Get the dataset pointer.  
-   */
-  return_val = ATOM_NOT_FOUND;  
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL ) return return_val;
-
-  /* Insert the new name. */
-  
-  strcpy (nc_ptr->dims[*dimid-1].name, newdimname);
-
-/* just return for now. */
-  return_val = FERR_OK;
-  return return_val;
-}
+    ncdset *nc_ptr;
+    int status;
+
+     /*
+     * Get the dataset pointer.
+     */
+    nc_ptr = ncf_get_ds_ptr(dset);
+    if ( nc_ptr == NULL )
+        return ATOM_NOT_FOUND;
 
+    /* Insert the new name. */
+    strcpy(nc_ptr->dims[*dimid-1].name, newdimname);
 
+    return FERR_OK;
+}
 
 /* ----
  * Find an attribute based on its variable ID and dataset ID
  * Replace the type, length, and/or value(s).
  */
-int  FORTRAN(ncf_repl_var_att)( int *dset, int *varid, char attname[], int *attype, int *attlen, DFTYPE *vals, char attstring[])
-
+int FORTRAN(ncf_repl_var_att)( int *dset, int *varid, char attname[], int *attype,
+                               int *attlen, DFTYPE *vals, char attstring[] )
 {
-  ncatt *att_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  int i;
-  LIST *varlist;
-  LIST *varattlist;
-
-   /*
-    * Get the list of variables, find pointer to variable varid.
-    */
-  varlist = ncf_get_ds_varlist(dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
-  if (var_ptr->natts < 1) return ATOM_NOT_FOUND;
-
-   /*
-    * Get the list of attributes for the variable in the dataset
-    * If the attribute is not defined, return
-    */
-  varattlist = ncf_get_ds_var_attlist(dset, varid);
-
-  status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
+    ncatt *att_ptr;
+    ncvar *var_ptr;
+    int status;
+    int i;
+    LIST *varattlist;
+
+    /* Get the variable */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
+
+    /*
+     * Get the list of attributes for the variable in the dataset
+     * If the attribute is not defined, return
+     */
+    if ( var_ptr->natts < 1 )
+        return ATOM_NOT_FOUND;
+    varattlist = var_ptr->varattlist;
+    if ( varattlist == NULL )
+        return ATOM_NOT_FOUND;
+
+    status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+
+    att_ptr = (ncatt *) list_curr(varattlist);
+
+    /*
+     * Free the memory used by the string or values
+     */
+    if ( att_ptr->string != NULL ) {
+        free(att_ptr->string);
+        att_ptr->string = NULL;
+    }
+    if ( att_ptr->vals != NULL ) {
+        free(att_ptr->vals);
+        att_ptr->vals = NULL;
     }
 
-   /*
-    * Get the attribute.
-    */
-  att_ptr=(ncatt *)list_curr(varattlist); 
-
-   /*
-    * Free the memory used by the string or values 
-    */
-  if (att_ptr->type == NC_CHAR)
-  {
-	  /*free(att_ptr->string);
-  }
-  else
-  {
-	  free(att_ptr->vals);*/
-  }
-  
-
-   /*
-    * Keep the name and ID. Reset type, length, and values
-    *  For string attributes, allocate one more than the att.len, 
-    *  presumably for the null terminator for the string (?)
-    */
-
-  att_ptr->type = *attype;
-  att_ptr->outtype = NC_FLOAT;
-  att_ptr->len = *attlen;
-
-  if (*attlen == 0) /* set 0-length attributes to empty strings */
-	  {
-		  att_ptr->type = NC_CHAR;
-		  att_ptr->outtype = NC_CHAR;
-		  att_ptr->len = 1;
-			att_ptr->string = (char *) malloc(2*sizeof(char));
-		  strcpy(att_ptr->string," ");
-	  }
-   else
-	  {
-	   switch (*attype) 
-		   {
-		   case NC_CHAR:
-			   i = (*attlen+1);   /* this line for debugging*/
-	        att_ptr->string = (char *) malloc((*attlen+1)* sizeof(char));
+    /*
+     * Keep the name and ID. Reset type, length, and values
+     * For string attributes, allocate one more than the att.len
+     * for the null terminator for the string
+     */
+    att_ptr->type = *attype;
+    att_ptr->outtype = NC_FLOAT;
+    att_ptr->len = *attlen;
+    if (*attlen == 0) { /* set 0-length attributes to empty strings */
+        att_ptr->type = NC_CHAR;
+        att_ptr->outtype = NC_CHAR;
+        att_ptr->len = 1;
+        att_ptr->string = (char *) malloc(2*sizeof(char));
+        strcpy(att_ptr->string," ");
+    }
+    else {
+        switch (*attype) {
+        case NC_CHAR:
+            att_ptr->string = (char *) malloc((*attlen+1)* sizeof(char));
             strcpy(att_ptr->string,attstring);
             break;
-			
-		   default:
+        default:
             att_ptr->vals = (double *) malloc(*attlen * sizeof(double));
-	        for (i = 0; i<*attlen;i++ )
-            {
-				att_ptr->vals[i] = vals[i];
+            for (i = 0; i < *attlen; i++) {
+                att_ptr->vals[i] = vals[i];
             }
             break;
-         }
-	  }
+        }
+    }
 
-  return_val = FERR_OK;
-  return return_val;
+    return FERR_OK;
 }
 
 /* ----
  * Find an attribute based on its variable ID and dataset ID
  * Replace the type, length, and/or value(s).
  */
-int  FORTRAN(ncf_repl_var_att_dp)( int *dset, int *varid, char attname[], int *attype, int *attlen, double *vals, char attstring[])
-
+int FORTRAN(ncf_repl_var_att_dp)( int *dset, int *varid, char attname[], int *attype,
+                                  int *attlen, double *vals, char attstring[] )
 {
-  ncatt *att_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  int i;
-  LIST *varlist;
-  LIST *varattlist;
-
-   /*
-    * Get the list of variables, find pointer to variable varid.
-    */
-  varlist = ncf_get_ds_varlist(dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
-  if (var_ptr->natts < 1) return ATOM_NOT_FOUND;
-
-   /*
-    * Get the list of attributes for the variable in the dataset
-    * If the attribute is not defined, return
-    */
-  varattlist = ncf_get_ds_var_attlist(dset, varid);
-
-  status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
+    ncatt *att_ptr;
+    ncvar *var_ptr;
+    int status;
+    int i;
+    LIST *varattlist;
+
+    /* Get the variable */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
+
+    /*
+     * Get the list of attributes for the variable in the dataset
+     * If the attribute is not defined, return
+     */
+    if ( var_ptr->natts < 1 )
+        return ATOM_NOT_FOUND;
+    varattlist = var_ptr->varattlist;
+    if ( varattlist == NULL )
+        return ATOM_NOT_FOUND;
+
+    status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+
+    /*
+     * Get the attribute.
+     */
+    att_ptr = (ncatt *) list_curr(varattlist);
+
+    /*
+     * Free the memory used by the string or values
+     */
+    if ( att_ptr->string != NULL ) {
+        free(att_ptr->string);
+        att_ptr->string = NULL;
+    }
+    if ( att_ptr->vals != NULL ) {
+        free(att_ptr->vals);
+        att_ptr->vals = NULL;
     }
 
-   /*
-    * Get the attribute.
-    */
-  att_ptr=(ncatt *)list_curr(varattlist); 
-
-   /*
-    * Free the memory used by the string or values 
-    */
-  /*
-  if (att_ptr->type == NC_CHAR)
-  {
-	  free(att_ptr->string);
-  }
-  else
-  {
-	  free(att_ptr->vals);
-  }
-  */
-  
-
-   /*
-    * Keep the name and ID. Reset type, length, and values
-    *  For string attributes, allocate one more than the att.len, 
-    *  presumably for the null terminator for the string (?)
-    */
-
-  att_ptr->type = *attype;
+    /*
+     * Keep the name and ID. Reset type, length, and values
+     *    For string attributes, allocate one more than the att.len,
+     *    presumably for the null terminator for the string (?)
+     */
+
+    att_ptr->type = *attype;
 #ifdef double_p
-  att_ptr->outtype = NC_DOUBLE;
+    att_ptr->outtype = NC_DOUBLE;
 #else
-  att_ptr->outtype = NC_FLOAT;
+    att_ptr->outtype = NC_FLOAT;
 #endif
-  att_ptr->len = *attlen;
-
-  if (*attlen == 0) /* set 0-length attributes to empty strings */
-	  {
-		  att_ptr->type = NC_CHAR;
-		  att_ptr->outtype = NC_CHAR;
-		  att_ptr->len = 1;
-			att_ptr->string = (char *) malloc(2* sizeof(char));
-		  strcpy(att_ptr->string," ");
-	  }
-   else
-	  {
-	   switch (*attype) 
-		   {
-		   case NC_CHAR:
-			   i = (*attlen+1);   /* this line for debugging*/
-	        att_ptr->string = (char *) malloc((*attlen+1)* sizeof(char));
+    att_ptr->len = *attlen;
+
+    if ( *attlen == 0 ) {    /* set 0-length attributes to empty strings */
+        att_ptr->type = NC_CHAR;
+        att_ptr->outtype = NC_CHAR;
+        att_ptr->len = 1;
+        att_ptr->string = (char *) malloc(2* sizeof(char));
+        strcpy(att_ptr->string," ");
+    }
+    else {
+        switch (*attype) {
+        case NC_CHAR:
+            att_ptr->string = (char *) malloc((*attlen+1)* sizeof(char));
             strcpy(att_ptr->string,attstring);
             break;
-			
-		   default:
+        default:
             att_ptr->vals = (double *) malloc(*attlen * sizeof(double));
-	        for (i = 0; i<*attlen;i++ )
-            {
-				att_ptr->vals[i] = vals[i];
+            for (i = 0; i < *attlen; i++) {
+                att_ptr->vals[i] = vals[i];
             }
             break;
-         }
-	  }
+        }
+    }
 
-  return_val = FERR_OK;
-  return return_val;
+    return FERR_OK;
 }
 
-/* ---- 
+/* ----
  * Find an attribute based on its variable ID and dataset ID
  * Delete it.
  */
-int  FORTRAN(ncf_delete_var_att)( int *dset, int *varid, char attname[])
-
+int FORTRAN(ncf_delete_var_att)( int *dset, int *varid, char attname[] )
 {
-  ncatt *att_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  int i;
-  int att_to_remove;
-  LIST *varlist;
-  LIST *varattlist;
-
-   /*
-    * Get the list of variables, find pointer to variable varid.
-    */
-  varlist = ncf_get_ds_varlist(dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
-  if (var_ptr->natts < 1) return ATOM_NOT_FOUND;
-
-   /*
-    * Get the list of attributes for the variable in the dataset
-    * If the attribute is not defined, return
-    */
-  varattlist = ncf_get_ds_var_attlist(dset, varid);
-
-   /*
-    * Get the attribute.
-    */
-
-  status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
-    }
-
-	  att_ptr=(ncatt *)list_curr(varattlist); 
-      att_to_remove = att_ptr->attid;
+    ncatt *att_ptr;
+    ncvar *var_ptr;
+    int status;
+    int att_to_remove;
+    LIST *varlist;
+    LIST *varattlist;
 
-  /* 
-   * reset the attribute id for remaining attributes
-   */
-
-  for (i = 1; i <= var_ptr->natts; i++ )
-	  {
-
-	  status = list_traverse(varattlist, (char *) &i, NCF_ListTraverse_FoundVarAttID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-	  if ( status != LIST_OK ) 
-		  {
-		  return_val = ATOM_NOT_FOUND;
-		  return return_val;
-		  }
-
-	  att_ptr=(ncatt *)list_curr(varattlist); 
-
-	  /*
-	  * Reset the attribute id?
-	  */
-
-	  if (i > att_to_remove) att_ptr->attid = att_ptr->attid -1;
+    /*
+     * Get the list of variables, find pointer to variable varid.
+     */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
 
-	  }  /* end of iatt loop*/   
+    /*
+     * Get the list of attributes for the variable in the dataset
+     * If the attribute is not defined, return
+     */
+    if ( var_ptr->natts < 1 )
+        return ATOM_NOT_FOUND;
+    varattlist = var_ptr->varattlist;
+    if ( varattlist == NULL )
+        return ATOM_NOT_FOUND;
 
-   /*
-    * Now get and remove the attribute.
-    */
+    /*
+     * Get the attribute.
+     */
+    status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
 
-  status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
-    }
-  list_remove_curr(varattlist);
-  
-   /* Decrement number of attributes for the variable.  
-   */
+    /* Remove the attribute, saving its attribute number */
+    att_ptr = (ncatt *) list_remove_curr(varattlist);
+    att_to_remove = att_ptr->attid;
+    ncf_free_attribute((char *) att_ptr);
 
-  var_ptr->natts = var_ptr->natts - 1;
+    /* Decrement number of attributes for the variable. */
+    var_ptr->natts = var_ptr->natts - 1;
 
+    /*
+     * Reset the attribute id for remaining attributes
+     */
+    list_mvfront(varattlist);
+    do {
+        att_ptr = (ncatt *) list_curr(varattlist);
+        if ( (att_ptr != NULL) && (att_ptr->attid > att_to_remove) ) {
+            att_ptr->attid = att_ptr->attid -1;
+        }
+    } while ( list_mvnext(varattlist) != NULL );
 
-  return_val = FERR_OK;
-  return return_val;
-  }
+    return FERR_OK;
+}
 
-/* ---- 
+/* ----
  * Find an attribute based on its variable ID and dataset ID
  * Change its output flag: 1=output it, 0=dont.
  */
-int  FORTRAN(ncf_set_att_flag)( int *dset, int *varid, char attname[], int *attoutflag)
-
+int FORTRAN(ncf_set_att_flag)( int *dset, int *varid, char attname[], int *attoutflag )
 {
-  ncatt *att_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  int i;
-  LIST *varlist;
-  LIST *varattlist;
-
-   /*
-    * Get the list of variables, find pointer to variable varid.
-    */
-  varlist = ncf_get_ds_varlist(dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
-  if (var_ptr->natts < 1) return ATOM_NOT_FOUND;
-
-   /*
-    * Get the list of attributes for the variable in the dataset
-    * If the attribute is not defined, return
-    */
-  varattlist = ncf_get_ds_var_attlist(dset, varid);
-
-  status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
-    }
-
-   /*
-    * Get the attribute.
-    */
-  att_ptr=(ncatt *)list_curr(varattlist); 
+    ncatt *att_ptr;
+    ncvar *var_ptr;
+    int status;
+    LIST *varattlist;
 
-   /*
-    * Keep the attribute as is, but reset its output flag.
-    */
+    /*
+     * Get the list of variables, find pointer to variable varid.
+     */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
 
-  att_ptr->outflag = *attoutflag;
+    /*
+     * Get the list of attributes for the variable in the dataset
+     * If the attribute is not defined, return
+     */
+    if ( var_ptr->natts < 1 )
+        return ATOM_NOT_FOUND;
+    varattlist = var_ptr->varattlist;
+    if ( varattlist == NULL )
+        return ATOM_NOT_FOUND;
+
+    /* Get the attribute */
+    status = list_traverse(varattlist, attname, NCF_ListTraverse_FoundVarAttName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+    att_ptr = (ncatt *) list_curr(varattlist);
 
+    /*
+     * Keep the attribute as is, but reset its output flag.
+     */
+    att_ptr->outflag = *attoutflag;
 
-  return_val = FERR_OK;
-  return return_val;
+    return FERR_OK;
 }
 
-/* ---- 
+/* ----
  * Find variable based on its variable ID and dataset ID
- * Change the variable flag: 
- * 1=output no attributes, 
-   0=check individual attribute output flags,
-   2=write all attributes, except any internal Ferret
-     attributes, marked with outflag=-1.
-*  3=reset attr flags to defaults
+ * Change the variable flag:
+ * 1=output no attributes,
+ * 0=check individual attribute output flags,
+ * 2=write all attributes, except any internal Ferret
+ *     attributes, marked with outflag=-1.
+ * 3=reset attr flags to defaults
  */
-int  FORTRAN(ncf_set_var_out_flag)( int *dset, int *varid, int *all_outflag)
-
+int FORTRAN(ncf_set_var_out_flag)( int *dset, int *varid, int *all_outflag )
 {
-  ncvar *var_ptr=NULL;
-  ncatt *att_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  int i;
-  int *iatt;
-  LIST *varlist;
-  LIST *varattlist;
-
-   /*
-    * Get the list of variables, find pointer to variable varid.
-    */
-  varlist = ncf_get_ds_varlist(dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
+    ncvar *var_ptr;
+    ncatt *att_ptr;
+    int status;
+    LIST *varattlist;
 
-   /*
-    * Keep the default if there are no attributes
-    */
+    /* Get the variable */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
 
-  if (var_ptr->natts < 1)
-  {
-	  var_ptr->all_outflag = 1;
-	  return FERR_OK;
-  }
-
-   /*
-    * Reset the variable output flag.
-    */
-  var_ptr->all_outflag = *all_outflag;
-  if (*all_outflag == 0)
-
-  {
-   /*
-    * Get the list of attributes for the variable varid
-    */
-  varattlist = ncf_get_ds_var_attlist(dset, varid);
-
-  /* 
-   * reset the output flag for each attribute
-   */
-  for (i = 1; i <= var_ptr->natts; i++ )
-	  {
-	  /* *iatt = i; */
-
-	  status = list_traverse(varattlist, (char *) &i, NCF_ListTraverse_FoundVarAttID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-	  if ( status != LIST_OK ) 
-		  {
-		  return_val = ATOM_NOT_FOUND;
-		  return return_val;
-		  }
-
-   /*
-    * Get the attribute.
-    */
-	  att_ptr=(ncatt *)list_curr(varattlist); 
-
-	  /*
-	  * Reset the attribute output flag.
-	  */
-
-	  att_ptr->outflag = 0;
-
-	  }  /* end of iatt loop*/   
-
-  }
-
-
-  else if (*all_outflag == 2)
-
-  {
-   /*
-    * Get the list of attributes for the variable varid
-    */
-  varattlist = ncf_get_ds_var_attlist(dset, varid);
-
-  /* 
-   * reset the output flag for each attribute
-   */
-
-  for (i = 1; i <= var_ptr->natts; i++ )
- {
-	 /* *iatt = i; */
-	 status = list_traverse(varattlist, (char *) &i, NCF_ListTraverse_FoundVarAttID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-	  if ( status != LIST_OK ) 
-		  {
-		  return_val = ATOM_NOT_FOUND;
-		  return return_val;
-		  }
-
-   /*
-    * Get the attribute.
-    */
-
-	  att_ptr=(ncatt *)list_curr(varattlist); 
-
-	  /*
-	  * Reset the attribute output flag.
-	  */
-
-	  if (att_ptr->outflag != -1) att_ptr->outflag = 1;
-
-
-	  }  /* end of iatt loop*/   
-
- }
-
-  else if  (*all_outflag == 3)
-
-  {
-
-   /*
-    * Get the list of attributes for the variable varid
-    */
-  varattlist = ncf_get_ds_var_attlist(dset, varid);
-
-  /* 
-   * reset the output flag for each attribute to the default Ferret value 
-   */
-  for (i = 1; i <= var_ptr->natts; i++ )
-	  {
-	  /* *iatt = i; */
-	  status = list_traverse(varattlist, (char *) &i, NCF_ListTraverse_FoundVarAttID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-	  if ( status != LIST_OK ) {
-	    return_val = ATOM_NOT_FOUND;
-	    return return_val;
-	  }
+    /*
+     * Keep the default if there are no attributes
+     */
+    if ( var_ptr->natts < 1 ) {
+        var_ptr->all_outflag = 1;
+        return FERR_OK;
+    }
+    varattlist = var_ptr->varattlist;
+    if ( varattlist == NULL ) {
+        var_ptr->all_outflag = 1;
+        return FERR_OK;
+    }
 
-   /*
-    * Get the attribute.
-    */
-	  att_ptr=(ncatt *)list_curr(varattlist); 
+    /*
+     * Reset the variable output flag.
+     */
+    var_ptr->all_outflag = *all_outflag;
+    if ( *all_outflag == 0 ) {
+
+        /*
+         * reset the output flag for each attribute
+         */
+        list_mvfront(varattlist);
+        do {
+            att_ptr = (ncatt *) list_curr(varattlist);
+            if ( att_ptr != NULL ) {
+                att_ptr->outflag = 0;
+            }
+        } while ( list_mvnext(varattlist) != NULL );
 
-	  /*
-	  * Reset the attribute output flag to the Ferret default value
-	    (output missing flag, etc, but not nonstd attributes from
-		the input file or user definitions.)
-	  */
+    }
+    else if ( *all_outflag == 2 ) {
+
+        /*
+         * reset the output flag for each attribute
+         */
+        list_mvfront(varattlist);
+        do {
+            att_ptr = (ncatt *) list_curr(varattlist);
+            if ( (att_ptr != NULL) && (att_ptr->outflag != -1) ) {
+                att_ptr->outflag = 1;
+            }
+        } while ( list_mvnext(varattlist) != NULL );
 
-	  att_ptr->outflag = initialize_output_flag(att_ptr->name, var_ptr->is_axis);
+    }
+    else if ( *all_outflag == 3 ) {
+
+        /*
+         * reset the output flag for each attribute to the default Ferret value
+         */
+        list_mvfront(varattlist);
+        do {
+            att_ptr = (ncatt *) list_curr(varattlist);
+            if ( att_ptr != NULL ) {
+                /*
+                 * Reset the attribute output flag to the Ferret default value
+                 * (output missing flag, etc, but not nonstd attributes from
+                 * the input file or user definitions.)
+                 */
+                att_ptr->outflag = initialize_output_flag(att_ptr->name, var_ptr->is_axis);
+            }
+        } while ( list_mvnext(varattlist) != NULL );
 
-	  }  /* end of iatt loop*/   
-  }
+    }
 
-  return_val = FERR_OK;
-  return return_val;
+    return FERR_OK;
 }
 
-/* ---- 
+/* ----
  * Find variable based on its variable ID and dataset ID
  * Change the variable output type.
  */
-int  FORTRAN(ncf_set_var_outtype)( int *dset, int *varid, int *outtype)
-
+int FORTRAN(ncf_set_var_outtype)( int *dset, int *varid, int *outtype )
 {
-  ncvar *var_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  LIST *varlist;
-
-   /*
-    * Get the list of variables, find pointer to variable varid.
-    */
-  varlist = ncf_get_ds_varlist(dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
+    ncvar *var_ptr;
 
-  var_ptr=(ncvar *)list_curr(varlist); 
+    /* Get the variable */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
 
-   /*
-    * Reset the variable output type.
-    */
-  var_ptr->outtype = *outtype;
+    /* Reset the variable output type */
+    var_ptr->outtype = *outtype;
 
-  return_val = FERR_OK;
-  return return_val;
+    return FERR_OK;
 }
 
 
-/* ---- 
+/* ----
  * Find variable based on its variable ID and dataset ID
  * Check that its a coordinate variable and set the axis direction.
  */
+int FORTRAN(ncf_set_axdir)( int *dset, int *varid, int *axdir )
+{
+    ncvar *var_ptr;
 
-int  FORTRAN(ncf_set_axdir)( int *dset, int *varid, int *axdir)
+    /* Get the variable */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
+    if ( ! var_ptr->is_axis )
+        return ATOM_NOT_FOUND;
 
-{
-  ncvar *var_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  LIST *varlist;
-
-   /*
-    * Get the list of variables, find pointer to variable varid.
-    */
-  varlist = ncf_get_ds_varlist(dset);
-
-  return_val = ATOM_NOT_FOUND;
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
-
-   /*
-    * Reset the variable output type.
-    */
-  return_val = ATOM_NOT_FOUND;
-  if (var_ptr->is_axis)
-  {
-	 var_ptr->axis_dir = *axdir;
-	 return_val = FERR_OK;
-  }
-
-  return return_val;
+    /* Reset the variable output type */
+    var_ptr->axis_dir = *axdir;
+
+    return FERR_OK;
 }
 
-/* ---- 
+/* ----
  * Find an attribute based on its dataset ID, variable ID and attribute ID
  * Add the attribute to variable 2 in dataset 2
  */
-int  FORTRAN(ncf_transfer_att)(int *dset1, int *varid1, int *iatt, int *dset2, int *varid2)
-
+int FORTRAN(ncf_transfer_att)( int *dset1, int *varid1, int *iatt, int *dset2, int *varid2 )
 {
-  ncatt *att_ptr1=NULL;
-  ncatt att;
-  ncvar *var_ptr1=NULL;
-  ncvar *var_ptr2=NULL;
-  int status=LIST_OK;
-  int return_val;
-  int i;
-  LIST *varlist1;
-  LIST *varlist2;
-  LIST *varattlist1;
-  LIST *varattlist2;
-	att.vals = NULL;
-	att.string = NULL;
-   /*
-    * Get the list of variables in dset1, find pointer to variable varid1.
-    */
-  varlist1 = ncf_get_ds_varlist(dset1);
-
-  status = list_traverse(varlist1, (char *) varid1, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr1=(ncvar *)list_curr(varlist1); 
-  if (var_ptr1->natts < 1) return ATOM_NOT_FOUND;
-
-   /*
-    * Get the list of attributes for the variable varid1
-    * If the attribute is not defined, return
-    */
-  varattlist1 = ncf_get_ds_var_attlist(dset1, varid1);
-
-  status = list_traverse(varattlist1, (char *) iatt, NCF_ListTraverse_FoundVarAttID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
+    ncatt *att_ptr1;
+    ncatt att;
+    ncvar *var_ptr1;
+    ncvar *var_ptr2;
+    int status;
+    int i;
+    LIST *varattlist1;
+    LIST *varattlist2;
+
+    /* Get the variable varid1 in dset1 */
+    var_ptr1 = ncf_get_ds_var_ptr(dset1, varid1);
+    if ( var_ptr1 == NULL )
+        return ATOM_NOT_FOUND;
+
+    /*
+     * Get the list of attributes for the variable varid1
+     * If the attribute is not defined, return
+     */
+    varattlist1 = var_ptr1->varattlist;
+    if ( varattlist1 == NULL )
+        return ATOM_NOT_FOUND;
+    status = list_traverse(varattlist1, (char *) iatt, NCF_ListTraverse_FoundVarAttID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+
+    /* Get the attribute */
+    att_ptr1 = (ncatt *) list_curr(varattlist1);
+
+    /* Get the variable varid2 in dset2 */
+    var_ptr2 = ncf_get_ds_var_ptr(dset2, varid2);
+    if ( var_ptr2 == NULL )
+        return ATOM_NOT_FOUND;
+
+    /*
+     * Get the list of attributes for the variable varid2
+     */
+    if ( var_ptr2->varattlist == NULL ) {
+        var_ptr2->varattlist = list_init();
+        if ( var_ptr2->varattlist == NULL ) {
+            fprintf(stderr, "ERROR: ncf_add_dset: Unable to initialize variable attributes list.\n");
+            return -1;
+        }
+    }
+    varattlist2 = var_ptr2->varattlist;
+
+    /* Increment number of attributes for varid2 */
+    var_ptr2->natts = var_ptr2->natts + 1;
+
+    /*
+     * Set attribute structure and insert the new attribute at
+     * the end of the attribute list.
+     * For string attributes, allocate one more than the att.len,
+     * for the null terminator for the string
+     */
+    ncf_init_attribute(&att);
+    strcpy(att.name, att_ptr1->name);
+    att.attid = var_ptr2->natts;
+    att.type = att_ptr1->type;
+    att.outtype = att_ptr1->type;
+    att.len = att_ptr1->len;
+    att.outflag = att_ptr1->outflag;
+
+    if (att_ptr1->type == NC_CHAR) {
+        att.string = (char *) malloc((att_ptr1->len+1)* sizeof(char));
+        strcpy(att.string, att_ptr1->string);
+    }
+    else {
+        att.vals = (double *) malloc(att_ptr1->len * sizeof(double));
+        for (i = 0; i<att_ptr1->len;i++ ) {
+            att.vals[i] = att_ptr1->vals[i];
+        }
     }
 
-   /*
-    * Get the attribute.
-    */
-  att_ptr1=(ncatt *)list_curr(varattlist1); 
-
-   /*
-    * Get the list of variables in dset2, find pointer to variable varid2
-    */
-  varlist2 = ncf_get_ds_varlist(dset2);
-
-  status = list_traverse(varlist2, (char *) varid2, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr2=(ncvar *)list_curr(varlist2); 
-  
-   /*
-    * Get the list of attributes for the variable varid2
-    */
-  varattlist2 = ncf_get_ds_var_attlist(dset2, varid2);
-
-   /* Increment number of attributes for varid2
-   */
-
-  var_ptr2->natts = var_ptr2->natts + 1;
-
-   /*
-    * Set attribute structure and insert the new attribute at 
-	* the end of the attribute list. 
-    *  For string attributes, allocate one more than the att.len, 
-    *  presumably for the null terminator for the string (?)
-    */
-  strcpy(att.name, att_ptr1->name);
-  att.attid = var_ptr2->natts;
-  att.type = att_ptr1->type;
-  att.outtype = att_ptr1->type;
-  att.len = att_ptr1->len;
-  att.outflag = att_ptr1->outflag;
-  
-  if (att_ptr1->type == NC_CHAR)
-  {
-	  att.string = (char *) malloc((att_ptr1->len+1)* sizeof(char)); 
-	  strcpy(att.string, att_ptr1->string);
-  }
-  else
-  {
-	  att.vals = (double *) malloc(att_ptr1->len * sizeof(double));
-	  for (i = 0; i<att_ptr1->len;i++ )
-		  {att.vals[i] = att_ptr1->vals[i];
-		  }
-  }
-
-  /*Save attribute in linked list of attributes for this variable */	
-
-  list_insert_after(var_ptr2->varattlist, (char *) &att, sizeof(ncatt));
-
-  return_val = FERR_OK;
-  return return_val;
+    /* Save attribute in linked list of attributes for this variable */
+    list_insert_after(var_ptr2->varattlist, (char *) &att, sizeof(ncatt));
+
+    return FERR_OK;
 }
 
-/* ---- 
+/* ----
  * Find variable based on the dataset ID and variable name
- * Delete it.
+ * Delete it.    This includes resetting the varids.
  */
-int  FORTRAN(ncf_delete_var)( int *dset, char *varname)
-
+int FORTRAN(ncf_delete_var)( int *dset, char *varname )
 {
-  ncdset *nc_ptr=NULL;
-  ncvar *var_ptr=NULL;
-  ncatt *att_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  int ivar;
-  int i;
-  LIST *varlist;
-  LIST *uvgridList;
-  LIST *dummy;
-  LIST_ELEMENT *lp;
-
- /* Find the dataset based on its integer ID 
- */
-  return_val = ATOM_NOT_FOUND;  
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL )return return_val;
-
-   /*
-   * Get the list of variables. Find varname in the dataset.
-   */
-  varlist = ncf_get_ds_varlist(dset);
-  status = list_traverse(varlist, varname, NCF_ListTraverse_FoundVarName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
-  }
-  
-  /* Deallocate the list of attributes */
-	lp = varlist->curr;
-	var_ptr = (ncvar*)lp->data;
-	ivar = var_ptr->varid;
-	/* Free the attributes for this var (list data). */
-	ncf_free_attlist(var_ptr);
-	/* Free the attributes list. */
-	list_free(var_ptr->varattlist, LIST_DEALLOC);
-
-  /* Free the list of uvarGrids */
-	if (var_ptr->uvarid != 0) 
-	  {
-	    uvgridList = var_ptr->uvarGridList;
-	    while (!list_empty(uvgridList))
-	      {
-		list_remove_front(uvgridList);
-	      }
-	    list_free(uvgridList, LIST_DEALLOC);
-	  }
-  /* remove the variable from the dataset list */
-	list_remove_curr(varlist);
-	free(var_ptr);
-
-   /* Reset the varids for variables added to external datasets with LET/D
-    * For the virtual user-variable datset, leave varids alone.
-    */
-
-   if (*dset > PDSET_UVARS)
-   {
-	   for (i=ivar; i <nc_ptr->nvars ;i++ )
-	   {
-		   var_ptr=(ncvar *)list_curr(varlist);  /* Point to next variable */
-		   var_ptr->varid = var_ptr->varid - 1;
-		   dummy = list_mvnext(varlist);
-	   }
-   }
-
-   /* Decrement number of variables in the dataset. 
-    */
-  nc_ptr->nvars = nc_ptr->nvars - 1;
-
-  return_val = FERR_OK;
-  return return_val;
-  }
+    ncdset *nc_ptr;
+    ncvar *var_ptr;
+    int status;
+    int ivar;
+    LIST *varlist;
+    LIST *uvgridList;
 
-/* ----
- * Initialize new dataset to contain an aggregate dataset 
- * save in GLOBAL_ncdsetList for attribute handling 
- */
+    /* Find the dataset based on its integer ID */
+    nc_ptr = ncf_get_ds_ptr(dset);
+    if ( nc_ptr == NULL )
+        return ATOM_NOT_FOUND;
 
-int FORTRAN(ncf_init_agg_dset)(int *setnum, char name[])
+    /*
+     * Get the list of variables. Find varname in the dataset.
+     */
+    varlist = nc_ptr->dsetvarlist;
+    status = list_traverse(varlist, varname, NCF_ListTraverse_FoundVarName, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
 
-{
-  ncdset nc; 
-  static int return_val=FERR_OK; /* static because it needs to exist after the return statement */
-  
-    int i;				/* loop controls */
-	int ia;
-	int iv;
-    ncatt att;			/* attribute */
-    ncvar var;			/* variable */
-	ncagg agg;			/* list of aggregate datset members */
-	att.vals = NULL;
-	att.string = NULL;
-    strcpy(nc.fername, name);
-    nc.fer_dsetnum = *setnum;
+    /*
+     * Remove the variable from the dataset list and free it
+     * (and its lists) after getting its varid
+     */
+    var_ptr = (ncvar *) list_remove_curr(varlist);
+    ivar = var_ptr->varid;
+    ncf_free_variable((char *) var_ptr);
 
-    nc.ngatts = 1;
-    nc.nvars = 0;
-	nc.recdim = -1;
-	nc.ndims = 6;
-	nc.its_agg = 1;
-	nc.num_agg_members = 0;
-    nc.vars_list_initialized = FALSE;
-    nc.agg_list_initialized = FALSE;
+    /* Reset the varids for variables added to external datasets with LET/D
+     * For the virtual user-variable dataset, leave varids alone.
+     */
+    if ( *dset > PDSET_UVARS ) {
+        list_mvfront(varlist);
+        do {
+            var_ptr = (ncvar *) list_curr(varlist);
+            if ( (var_ptr != NULL) && (var_ptr->varid > ivar) ) {
+                var_ptr->varid = var_ptr->varid - 1;
+            }
+        } while ( list_mvnext(varlist) != NULL );
+    }
 
-   /* set up pseudo-variable . the list of variables */
+    /* Decrement number of variables in the dataset. */
+    nc_ptr->nvars = nc_ptr->nvars - 1;
 
-       strcpy(var.name, ".");
+    return FERR_OK;
+}
 
-       var.attrs_list_initialized = FALSE;
+/* ----
+ * Initialize new dataset to contain an aggregate dataset
+ * save in GLOBAL_ncdsetList for attribute handling
+ */
+int FORTRAN(ncf_init_agg_dset)( int *setnum, char name[] )
+{
+    ncdset nc;
+    ncvar var;
+    ncatt att;
 
-       var.type = NC_CHAR;
-       var.outtype = NC_CHAR;
-       var.varid = 0;
-	   var.natts = nc.ngatts;
-       var.has_fillval = FALSE;
-#ifdef double_p
-	   var.fillval = NC_FILL_DOUBLE;
-#else
-	   var.fillval = NC_FILL_FLOAT;
-#endif
-	   var.all_outflag = 1;
-	   var.is_axis = FALSE;
-	   var.axis_dir = 0;		
-	   var.ndims = 0;
-	   var.attrs_list_initialized = FALSE; 
-
-   /* set global attribute, aggregate name */
-
-		  att.outflag = 1;
-          att.type = NC_CHAR;
-          att.outtype = NC_CHAR;
-          att.outflag = 0;
-          att.attid = 1;
-		  att.len = strlen(name);
-          strcpy(att.name, "aggregate name" );
-
-	      att.string = (char *) malloc((att.len+1)* sizeof(char));
-		  strcpy(att.string, name );
-
-      /*Save attribute in linked list of attributes for variable .*/	
-       if (!var.attrs_list_initialized) {
-          if ( (var.varattlist = list_init()) == NULL ) {
-            fprintf(stderr, "ERROR: ncf_init_agg_dset: Unable to initialize GLOBAL attributes list.\n");
-            return_val = -1;
-            return return_val; 
-          }
-          var.attrs_list_initialized = TRUE;
-       }
+    ncf_init_dataset(&nc);
+    strcpy(nc.fername, name);
+    nc.fer_dsetnum = *setnum;
+    nc.ngatts = 1;
+    nc.its_agg = 1;
+    nc.num_agg_members = 0;
+
+    /* set up pseudo-variable . the list of variables */
+    ncf_init_variable(&var);
+    strcpy(var.name, ".");
+    var.type = NC_CHAR;
+    var.outtype = NC_CHAR;
+    var.varid = 0;
+    var.natts = 1;
+    var.ndims = 0;
+
+    /* set global attribute, aggregate name */
+    ncf_init_attribute(&att);
+    att.type = NC_CHAR;
+    att.outtype = NC_CHAR;
+    att.attid = 1;
+    strcpy(att.name, "aggregate name" );
+    att.len = strlen(name);
+    att.string = (char *) malloc((att.len+1)* sizeof(char));
+    strcpy(att.string, name);
 
-		  list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
+    /*Save attribute in linked list of attributes for variable .*/
+    if ( var.varattlist == NULL ) {
+        var.varattlist = list_init();
+        if ( var.varattlist == NULL ) {
+            fprintf(stderr, "ERROR: ncf_init_agg_dset: Unable to initialize GLOBAL attributes list.\n");
+            return -1;
+        }
+    }
+    list_insert_after(var.varattlist, (char *) &att, sizeof(ncatt));
 
-       /* global attributes list complete */
+    /* global attributes list complete */
 
-   /* Initialize linked list of variables for this dataset */	
-       if (!nc.vars_list_initialized) {
-          if ( (nc.dsetvarlist = list_init()) == NULL ) {
+    /* Initialize linked list of variables for this dataset */
+    if ( nc.dsetvarlist == NULL ) {
+        nc.dsetvarlist = list_init();
+        if ( nc.dsetvarlist == NULL ) {
             fprintf(stderr, "ERROR: ncf_init_agg_dset: Unable to initialize variable list.\n");
-            return_val = -1;
-            return return_val; 
-          }
-          nc.vars_list_initialized = TRUE;
+            return -1;
         }
+    }
+    list_insert_after(nc.dsetvarlist, (char *) &var, sizeof(ncvar));
 
-       list_insert_after(nc.dsetvarlist, (char *) &var, sizeof(ncvar));
-
-  /*Initialize list of aggregate members for this dataset */	
-       if (!nc.agg_list_initialized) {
-          if ( (nc.agg_dsetlist = list_init()) == NULL ) {
+    /*Initialize list of aggregate members for this dataset */
+    if ( nc.agg_dsetlist == NULL ) {
+        nc.agg_dsetlist = list_init();
+        if ( nc.agg_dsetlist == NULL ) {
             fprintf(stderr, "ERROR: ncf_init_agg_dset: Unable to initialize aggregate list.\n");
-            return_val = -1;
-            return return_val; 
-          }
-          nc.agg_list_initialized = TRUE;
+            return -1;
         }
-       
-
-/* Add dataset to global nc dataset linked list*/ 
-  if (!list_initialized) {
-    if ( (GLOBAL_ncdsetList = list_init()) == NULL ) {
-      fprintf(stderr, "ERROR: ncf_init_uvar_dset: Unable to initialize GLOBAL_ncDsetList.\n");
-      return_val = -1;
-      return return_val; 
-	}
-    list_initialized = TRUE;
-  }
+    }
 
-  list_insert_after(GLOBAL_ncdsetList, (char *) &nc, sizeof(ncdset));
-  return_val = FERR_OK;
-  return return_val;
-  }
+    /* Add dataset to global nc dataset linked list*/
+    if ( GLOBAL_ncdsetList == NULL ) {
+        GLOBAL_ncdsetList = list_init();
+        if ( GLOBAL_ncdsetList == NULL ) {
+            fprintf(stderr, "ERROR: ncf_init_uvar_dset: Unable to initialize GLOBAL_ncDsetList.\n");
+            return -1;
+        }
+    }
+    list_insert_after(GLOBAL_ncdsetList, (char *) &nc, sizeof(ncdset));
+
+    return FERR_OK;
+}
 
 /* ----
  * Add a new aggregate member to an aggregate dataset.
  */
-int  FORTRAN(ncf_add_agg_member)( int *dset, int *sequence_number, int *member_dset)
-
+int FORTRAN(ncf_add_agg_member)( int *dset, int *sequence_number, int *member_dset )
 {
-  ncdset *nc_ptr=NULL;
-  int status=LIST_OK;
-  static int return_val;
-  LIST *elist=NULL;
-  ncagg agg_ptr;
-  int i;
-
-   /*
-   * Get the dataset pointer.  
-   */
-  return_val = ATOM_NOT_FOUND;  
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL )return return_val;
-
-  /*Save aggregate member number in linked list of aggregate members for this dataset */	
-
-   /*
-   * Get the list of aggregate members. Put the new info at the end.
-   */
-  elist = ncf_get_ds_agglist(dset);
-  agg_ptr.dsetnum = *member_dset;
-  agg_ptr.aggSeqNo = *sequence_number;  // added 12/15 //
-
-  list_insert_after(nc_ptr->agg_dsetlist, (char *) &agg_ptr, sizeof(agg_ptr));
-
-  nc_ptr->num_agg_members = nc_ptr->num_agg_members + 1;
-
-  return_val = FERR_OK;
-  return return_val;
+    ncdset *nc_ptr;
+    ncagg agg;
+
+    /*
+     * Get the dataset pointer.
+     */
+    nc_ptr = ncf_get_ds_ptr(dset);
+    if ( nc_ptr == NULL )
+        return ATOM_NOT_FOUND;
+
+    /*
+     * Get the list of aggregate members. Put the new info at the end.
+     * The add_dsetlist should already exist.
+     */
+    if ( nc_ptr->agg_dsetlist == NULL )
+        return ATOM_NOT_FOUND;
+
+    /* Save aggregate member number in linked list of aggregate members for this dataset */
+    agg.dsetnum = *member_dset;
+    agg.aggSeqNo = *sequence_number;
+    list_mvrear(nc_ptr->agg_dsetlist);
+    list_insert_after(nc_ptr->agg_dsetlist, (char *) &agg, sizeof(agg));
+    nc_ptr->num_agg_members = nc_ptr->num_agg_members + 1;
+
+    return FERR_OK;
 }
 
 /* ----
- * Find a dataset based on its integer ID and return the 
+ * Find a dataset based on its integer ID and return the
  * number of aggregate member datasets
  */
-
-int  FORTRAN(ncf_get_agg_count)( int *dset, int *num_agg_dsets)
+int FORTRAN(ncf_get_agg_count)( int *dset, int *num_agg_dsets )
 {
-  ncdset *nc_ptr=NULL;
-  int return_val;
+    ncdset *nc_ptr;
 
-  return_val = ATOM_NOT_FOUND;
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL ) { return return_val; }
+    nc_ptr = ncf_get_ds_ptr(dset);
+    if ( nc_ptr == NULL )
+        return ATOM_NOT_FOUND;
 
-  *num_agg_dsets = nc_ptr->num_agg_members;
+    *num_agg_dsets = nc_ptr->num_agg_members;
 
-  return_val = FERR_OK; 
-  return return_val; 
+    return FERR_OK;
 }
 
 
 /* ----
  * Find a dataset based on its integer ID and for a given member number
  * return the Ferret dataset number
- * 
  */
-
-int  FORTRAN(ncf_get_agg_member)( int *dset, int *imemb, int *membset)
+int FORTRAN(ncf_get_agg_member)( int *dset, int *imemb, int *membset )
 {
-  ncdset *nc_ptr=NULL;
-  ncagg *agg_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  int num_agg_dsets;
-  
-  LIST *agglist;
-
-  return_val = ATOM_NOT_FOUND;
-  if ( (nc_ptr = ncf_ptr_from_dset(dset)) == NULL ) { return return_val; }
-
-   /*
-   * Get the list of aggregation members.  
-   */
-
-  agglist = ncf_get_ds_agglist(dset);
-
-  status = list_traverse(agglist, (char *) imemb, NCF_ListTraverse_FoundDsMemb, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) {
-    return_val = ATOM_NOT_FOUND;
-    return return_val;
-  }
-  
-  agg_ptr=(ncagg *)list_curr(agglist); 
+    ncdset *nc_ptr;
+    LIST *agglist;
+    int status;
+    ncagg *agg_ptr;
+
+    nc_ptr = ncf_get_ds_ptr(dset);
+    if ( nc_ptr == NULL )
+        return ATOM_NOT_FOUND;
+
+    /*
+     * Get the list of aggregation members.
+     */
+    agglist = nc_ptr->agg_dsetlist;
+    if ( agglist == NULL )
+        return ATOM_NOT_FOUND;
+    status = list_traverse(agglist, (char *) imemb, NCF_ListTraverse_FoundDsMemb, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
 
-  *membset = agg_ptr->dsetnum;
+    agg_ptr = (ncagg *) list_curr(agglist);
 
-  return_val = FERR_OK; 
-  return return_val; 
+    *membset = agg_ptr->dsetnum;
+
+    return FERR_OK;
 }
 
 
 /* ----
  * Add description for variable in aggregate dataset.
- * Given the aggregate dataset, and the varid of the variable, and 
- * the aggregate sequence-number, save the variable type (1=file-variable, 
+ * Given the aggregate dataset, and the varid of the variable, and
+ * the aggregate sequence-number, save the variable type (1=file-variable,
  * 3=user-var), the Ferret datset id, the grid, the Ferret line number
- * for the aggregate dimension, and the sequence number in ds_var_code 
+ * for the aggregate dimension, and the sequence number in ds_var_code
  * or uvar_name_code.
  */
-int  FORTRAN(ncf_add_agg_var_info)( int *dset, int *varid, int *imemb,
-int *vtype, int *datid, int *igrid, int *iline, int *nv)
-
+int FORTRAN(ncf_add_agg_var_info)( int *dset, int *varid, int *imemb,
+                                   int *vtype, int *datid, int *igrid, int *iline, int *nv )
 {
-  ncvar *var_ptr=NULL;
-  ncagg_var_descr vdescr;
-  int status=LIST_OK;
-  static int return_val;
-  int i;
-  LIST *varlist;
-  LIST *varagglist;
-
-   /*
-    * Get the list of variables, find pointer to variable varid.
-    */
-
-  varlist = ncf_get_ds_varlist(dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
+    ncvar *var_ptr;
+    LIST *varagglist;
+    ncagg_var_descr vdescr;
 
     /*
-    * Get the list of members for the variable in the dataset
-    */
-  varagglist = ncf_get_ds_var_gridlist(dset, varid);
-
-  vdescr.imemb = *imemb;
-  vdescr.vtype = *vtype;
-  vdescr.datid = *datid;
-  vdescr.gnum  = *igrid;
-  vdescr.iline  = *iline;
-  vdescr.nv    = *nv;
-
-   /* Increment number of grid values saved.  
-   */
+     * Get the list of variables, find pointer to variable varid.
+     */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
 
-  var_ptr->nmemb = var_ptr->nmemb + 1;
+    /*
+     * Get the list of members for the variable in the dataset
+     */
+    varagglist = var_ptr->varagglist;
+    if ( varagglist == NULL )
+        return ATOM_NOT_FOUND;
 
-   /*Save grid number in linked list of grid for this variable */	
+    vdescr.imemb = *imemb;
+    vdescr.vtype = *vtype;
+    vdescr.datid = *datid;
+    vdescr.gnum    = *igrid;
+    vdescr.iline = *iline;
+    vdescr.nv        = *nv;
 
-  list_insert_after(var_ptr->varagglist, (char *) &vdescr, sizeof(ncagg_var_descr));
+    /* Increment number of grid values saved */
+    var_ptr->nmemb = var_ptr->nmemb + 1;
 
+    /*Save grid number in linked list of grid for this variable */
+    list_insert_after(var_ptr->varagglist, (char *) &vdescr, sizeof(ncagg_var_descr));
 
-  return_val = FERR_OK;
-  return return_val;
+    return FERR_OK;
 }
-	  
+
 /* ----
  * For a variable in aggregate aggregate dataset, store its grid.
- * Given the aggregate dataset, the varid of the variable, and 
+ * Given the aggregate dataset, the varid of the variable, and
  * the aggregate sequence-number, save the grid of the variable.
  */
-int  FORTRAN(ncf_put_agg_memb_grid)( int *dset, int *varid, int *imemb, int *igrid)
-
+int FORTRAN(ncf_put_agg_memb_grid)( int *dset, int *varid, int *imemb, int *igrid )
 {
-  ncvar *var_ptr=NULL;
-  ncagg_var_descr vdescr;
-  int status=LIST_OK;
-  static int return_val;
-  int i;
-  LIST *varlist;
-  LIST *varagglist;
-
-   /*
-    * Get the list of variables, find pointer to variable varid.
-    */
+    ncvar *var_ptr;
+    LIST *varagglist;
+    int status;
+    ncagg_var_descr *vdescr_ptr;
 
-  varlist = ncf_get_ds_varlist(dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
+    /* Get the variable */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
 
     /*
-    * Get the list of members for the variable in the dataset. Reset grid number.
-    */
-  varagglist = ncf_get_ds_var_gridlist(dset, varid);
-  vdescr.gnum  = *igrid;
+     * Get the list of members for the variable in the dataset. Reset grid number.
+     */
+    varagglist = var_ptr->varagglist;
+    if ( varagglist == NULL )
+        return ATOM_NOT_FOUND;
+    status = list_traverse(varagglist, (char *) imemb, NCF_ListTraverse_FoundVariMemb, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+
+    vdescr_ptr = (ncagg_var_descr *) list_curr(varagglist);
+    vdescr_ptr->gnum = *igrid;
 
-  return_val = FERR_OK;
-  return return_val;
+    return FERR_OK;
 }
 
 /* ----
- *
- * Given the aggregate dataset, varid, and member number, return the 
- * variable type (1=file-variable, 3=user-var), the Ferret datset id, 
+ * Given the aggregate dataset, varid, and member number, return the
+ * variable type (1=file-variable, 3=user-var), the Ferret datset id,
  * the grid and the sequence number in ds_var_code or uvar_name_code.
  */
-int  FORTRAN(ncf_get_agg_var_info)( int *dset, int *varid, int *imemb, int* vtype, 
- int* datid, int *igrid, int *iline, int *nv)
-
+int FORTRAN(ncf_get_agg_var_info)( int *dset, int *varid, int *imemb, int* vtype,
+                                   int *datid, int *igrid, int *iline, int *nv)
 {
-	
-  ncvar *var_ptr=NULL;
-  ncagg_var_descr *vdescr_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  LIST *varlist;
-  LIST *varagglist;
-
-   /*
-   * Get the list of variables, find variable varid.
-   */
-  varlist = ncf_get_ds_varlist(dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundVarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
-
-   /*
-   * Get the list of aggregate-grids for the variable in the dataset
-   */
-  varagglist = ncf_get_ds_var_gridlist(dset, varid);
-
-  status = list_traverse(varagglist, (char *) imemb, NCF_ListTraverse_FoundVariMemb, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  vdescr_ptr=(ncagg_var_descr *)list_curr(varagglist); 
-
-  *vtype = vdescr_ptr->vtype;
-  *datid = vdescr_ptr->datid;
-  *igrid = vdescr_ptr->gnum;
-  *iline = vdescr_ptr->iline;
-  *nv    = vdescr_ptr->nv;
-  return_val = FERR_OK;
-  return return_val;
+    ncvar *var_ptr;
+    ncagg_var_descr *vdescr_ptr;
+    int status;
+    LIST *varagglist;
+
+    /* Get the variable */
+    var_ptr = ncf_get_ds_var_ptr(dset, varid);
+    if ( var_ptr == NULL )
+        return ATOM_NOT_FOUND;
+
+    /*
+     * Get the list of aggregate-grids for the variable in the dataset
+     */
+    varagglist = var_ptr->varagglist;
+
+    status = list_traverse(varagglist, (char *) imemb, NCF_ListTraverse_FoundVariMemb, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+
+    vdescr_ptr = (ncagg_var_descr *) list_curr(varagglist);
+
+    *vtype = vdescr_ptr->vtype;
+    *datid = vdescr_ptr->datid;
+    *igrid = vdescr_ptr->gnum;
+    *iline = vdescr_ptr->iline;
+    *nv        = vdescr_ptr->nv;
+
+    return FERR_OK;
 }
 
-/* ---- 
+/* ----
  * For attributes that Ferret always writes, set the output flag to 1
-   All others are not written by default. The flag can be set to 1 by the user.
-   The modulo flag is set to 0. This will be overriden ni the Ferret code
-   depending on the value of the modulo attribute.
-  */
+ * All others are not written by default. The flag can be set to 1 by
+ * the user.    The modulo flag is set to 0. This will be overriden in
+ * the Ferret code depending on the value of the modulo attribute.
+ */
 
-static int initialize_output_flag (char *attname, int is_axis)
+static int initialize_output_flag( char *attname, int is_axis )
 {
-	int return_val;
-    return_val = 0;
-
     /* attributes on coordinate variables */
-	if (strcmp(attname,"axis")==0)
-	{return_val = 1;
-	}
-	if (strcmp(attname,"units")==0)
-	{return_val = 1;
-	}
-	if (strcmp(attname,"calendar")==0)
-	{return_val = 1;
-	}
-	if (strcmp(attname,"positive")==0)
-	{return_val = 1;
-	}
-	if (strcmp(attname,"point_spacing")==0)
-	{return_val = 1;
-	}
-	if (strcmp(attname,"modulo")==0)
-	{return_val = 1;
-	}
-	if (strcmp(attname,"time_origin")==0)
-	{return_val = 1;
-	}
+    if ( strcmp(attname, "axis") == 0 ) {
+        return 1;
+    }
+    if ( strcmp(attname, "units") == 0 ) {
+        return 1;
+    }
+    if ( strcmp(attname, "calendar") == 0 ) {
+        return 1;
+    }
+    if ( strcmp(attname, "positive") == 0 ) {
+        return 1;
+    }
+    if ( strcmp(attname, "point_spacing") == 0 ) {
+        return 1;
+    }
+    if ( strcmp(attname, "modulo") == 0 ) {
+        return 1;
+    }
+    if ( strcmp(attname, "time_origin") == 0 ) {
+        return 1;
+    }
     /* attributes on variables */
-	if (strcmp(attname,"missing_value")==0)
-	{return_val = 1;
-	}
-	if (strcmp(attname,"_FillValue")==0)
-	{return_val = 1;
-	}
-	if (strcmp(attname,"long_name")==0)
-	{return_val = 1;
-	}
-	if (strcmp(attname,"title")==0)
-	{return_val = 1;
-	}
-	if (strcmp(attname,"history")==0)
-	{return_val = 1;
-	}
-	if (strcmp(attname,"bounds")==0)
-	{return_val = 1;
-	}
+    if ( strcmp(attname, "missing_value") == 0 ) {
+        return 1;
+    }
+    if ( strcmp(attname, "_FillValue") == 0 ) {
+        return 1;
+    }
+    if ( strcmp(attname, "long_name") == 0 ) {
+        return 1;
+    }
+    if ( strcmp(attname, "title") == 0 ) {
+        return 1;
+    }
+    if ( strcmp(attname, "history") == 0 ) {
+        return 1;
+    }
+    if ( strcmp(attname, "bounds") == 0 ) {
+        return 1;
+    }
     /* write scale attributes on non-coordinate variables */
-	if (is_axis==0)
-	{
-	   if (strcmp(attname,"scale_factor")==0)
-	   {return_val = 1;
-	   }
-	   if (strcmp(attname,"add_offset")==0)
-	   {return_val = 1;
-	   }
-	}
-	return return_val;
-
+    if ( is_axis == 0 ) {
+        if ( strcmp(attname, "scale_factor") == 0 ) {
+            return 1;
+        }
+        if ( strcmp(attname, "add_offset") == 0 ) {
+            return 1;
+        }
+    }
+    return 0;
 }
 
 
 /* *******************************
- *  uvar grid management routines
+ *    uvar grid management routines
  * *******************************
  */
 
 
-/* ---- 
+/* ----
  * Find variable based on its variable ID and LIST_dset ID
  * Free ("purge" in Ferret-speak) the entire list of uvar grids
  */
-int  FORTRAN(ncf_free_uvar_grid_list)( int *LIST_dset, int *uvarid)
+int FORTRAN(ncf_free_uvar_grid_list)( int *LIST_dset, int *uvarid )
+{
+    LIST *varlist;
+    int status;
+    ncvar *var_ptr;
+    LIST *uvgridList;
+    uvarGrid *uvgrid_ptr;
+
+    /*
+     * Get the list of variables, find pointer to variable varid.
+     */
+    varlist = ncf_get_ds_varlist(LIST_dset);
+    if ( varlist == NULL )
+        return ATOM_NOT_FOUND;
+
+    /* find the relevant LET var (i.e. uvar) */
+    status = list_traverse(varlist, (char *) uvarid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+    var_ptr = (ncvar *) list_curr(varlist);
+
+    /* remove all elements from the uvar grid list but do not remove the list itself */
+    uvgridList = var_ptr->uvarGridList;
+    if ( uvgridList != NULL ) {
+        while ( ! list_empty(uvgridList) ) {
+            uvgrid_ptr = (uvarGrid *)list_remove_front(uvgridList);
+            free(uvgrid_ptr);
+        }
+    }
+
+    return FERR_OK;
+}
+
 
+/* ----
+ * Find variable based on its variable ID and LIST_dset ID
+ * return the grid corresponding to the ith element in the grid list
+ */
+int FORTRAN(ncf_next_uvar_grid_in_list)( int *LIST_dset, int *uvarid, int *ith, int *grid )
 {
-  ncvar *var_ptr=NULL;
-  int status=LIST_OK;
-  LIST *varlist;
-  LIST *uvgridList;
+    LIST *varlist;
+    int status;
+    ncvar *var_ptr;
+    LIST *uvgridList;
+    uvarGrid *uvgrid_ptr;
+	int count;
+	int i;
 
-   /*
-    * Get the list of variables, find pointer to variable varid.
-    */
-  varlist = ncf_get_ds_varlist(LIST_dset);
+    /*
+     * Get the list of variables, find pointer to variable varid.
+     */
+    varlist = ncf_get_ds_varlist(LIST_dset);
+    if ( varlist == NULL )
+        return ATOM_NOT_FOUND;
 
     /* find the relevant LET var (i.e. uvar) */
-  status = list_traverse(varlist, (char *) uvarid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
+    status = list_traverse(varlist, (char *) uvarid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+    var_ptr = (ncvar *) list_curr(varlist);
+
+    /* remove all elements from the uvar grid list but do not remove the list itself */
+    uvgridList = var_ptr->uvarGridList;
+    if ( uvgridList != NULL ) {
 
-  var_ptr=(ncvar *)list_curr(varlist); 
 
-  /* remove all elements from the uvar grid list */
-  uvgridList = var_ptr->uvarGridList;
-  while (!list_empty(uvgridList))
-    {
-      list_remove_front(uvgridList);
+    /*
+     * Return the ith grid
+     */
+    list_mvfront(uvgridList);
+	count = 1;
+    for (i = 0; i < *ith; i++) {
+		uvgrid_ptr = (uvarGrid *) list_curr(uvgridList);
+        *grid = uvgrid_ptr->grid;
+		list_mvnext(uvgridList); 
+        } 
+
     }
 
-  return FERR_OK;
+    return FERR_OK;
 }
 
 
-/* ---- 
- * Find variable based on its variable ID and LIST_dset ID
- * Store a grid/context_dset pair for the variable 
 
+/* ----
+ * Find variable based on its variable ID and LIST_dset ID
+ * Store a grid/context_dset pair for the variable
+ *
  * The dual dataset arguments arise because Ferret's global uvars are managed
  * in the c LIST structures as a special dataset -- PDSET_UVARS
  * By contrast LET/D uvars are managed in the c LIST structure of the parent dataset
- * So we refer to the dataset that owns (parents) the uvar as LIST_dset 
+ * So we refer to the dataset that owns (parents) the uvar as LIST_dset
  * and we refer to the dataset in which Ferret is evaluating the uvar is as context_dset
  */
-int  FORTRAN(ncf_set_uvar_grid)( int *LIST_dset, int *varid, int *grid, int *datatype, int *context_dset)
-
+int FORTRAN(ncf_set_uvar_grid)( int *LIST_dset, int *varid, int *grid, int *datatype, int *context_dset )
 {
-  ncvar *var_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  LIST *varlist;
-  LIST *uvgridlist;
-  uvarGrid uvgrid;
-  int i;
-
-   /*
-    * Get the list of variables, find pointer to variable varid.
-    */
-  varlist = ncf_get_ds_varlist(LIST_dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
-
-   /*  
-    * if a grid already exists for this context dataset
-    * remove it before continuing
-    */
-   /* I dunno why other routines are calling internal routines such
-       as ncf_get_ds_var_attlist to get the LIST pointers they need.
-       am I missing something? *sh* */
-  uvgridlist = var_ptr->uvarGridList;
-  status = list_traverse(uvgridlist, (char *) context_dset, NCF_ListTraverse_FoundGridDset, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status == LIST_OK)
-    {
-      list_remove_curr(uvgridlist);
+    LIST *varlist;
+    int status;
+    ncvar *var_ptr;
+    LIST *uvgridlist;
+    uvarGrid *uvgrid_ptr;
+    uvarGrid uvgrid;
+	int uvgrid_list_len;
+    int i;
+
+    /*
+     * Get the list of variables, find pointer to variable varid.
+     */
+    varlist = ncf_get_ds_varlist(LIST_dset);
+    if ( varlist == NULL )
+        return ATOM_NOT_FOUND;
+    status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+    var_ptr=(ncvar *)list_curr(varlist);
+
+    /*
+     * if a grid already exists for this context dataset
+     * remove it before continuing
+     */
+    uvgridlist = var_ptr->uvarGridList;
+    if ( uvgridlist == NULL )
+        return ATOM_NOT_FOUND;
+    status = list_traverse(uvgridlist, (char *) context_dset, NCF_ListTraverse_FoundGridDset, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status == LIST_OK ) {
+        uvgrid_ptr = (uvarGrid *) list_remove_curr(uvgridlist);
+        free(uvgrid_ptr);
     }
 
-   /*
-    * Fill the uvarGrid structure
-    */
-  /*  not needed: uvgrid = (uvarGrid *) malloc(sizeof(uvarGrid)); */
-  uvgrid.grid  = *grid;
-  uvgrid.dset  = *context_dset;
-  uvgrid.dtype = *datatype;
-
-   /*
-    * Set the auxiliary variables as unspecified at this point
-    */
-  for (i=0; i<NFERDIMS ;i++ )
-    {
-      uvgrid.auxCat[i] = 0;
-      uvgrid.auxVar[i] = 0;
+    /*
+     * Fill the uvarGrid structure
+     */
+    uvgrid.grid  = *grid;
+    uvgrid.dset  = *context_dset;
+    uvgrid.dtype = *datatype;
+
+    /*
+     * Set the auxiliary variables as unspecified at this point
+     */
+    for (i = 0; i < NFERDIMS; i++) {
+        uvgrid.auxCat[i] = 0;
+        uvgrid.auxVar[i] = 0;
     }
 
-   /*
-    * Save it in the grid list of this uvar
-    */
-  list_insert_after(uvgridlist, (char *) &uvgrid, sizeof(uvarGrid));
+    /*
+     * Save it in the grid list of this uvar
+     */
+    list_insert_after(uvgridlist, (char *) &uvgrid, sizeof(uvarGrid));
+	
+    uvgrid_list_len = (int) list_size(uvgridlist);
+	if (uvgrid_list_len > 1)
+	{ i = 1;
+	}
 
-  return_val = FERR_OK;
-  return return_val;
+    return FERR_OK;
 }
 
-/* ---- 
+/* ----
  * Find variable based on its variable ID and LIST_dset ID
- * Return the grid that corresponds to the context_dset pair 
-
+ * Return the grid and variable datatype that corresponds to the context_dset pair
+ *
  * The dual dataset arguments arise because Ferret's global uvars are managed
  * in the c LIST structures as a special dataset -- PDSET_UVARS
  * By contrast LET/D uvars are managed in the c LIST structure of the parent dataset
- * So we refer to the dataset that owns (parents) the uvar as LIST_dset 
+ * So we refer to the dataset that owns (parents) the uvar as LIST_dset
  * and we refer to the dataset in which Ferret is evaluating the uvar is as context_dset
  */
-int  FORTRAN(ncf_get_uvar_grid)( int *LIST_dset, int *uvarid, int *context_dset, int *uvgrid)
-
+int FORTRAN(ncf_get_uvar_grid)( int *LIST_dset, int *uvarid, int *context_dset, int *uvgrid, int *uvdtype )
 {
-  ncvar *var_ptr=NULL;
-  int status=LIST_OK;
-  LIST *varlist;
-  LIST *uvgridlist;
-  uvarGrid *uvgrid_ptr=NULL;
+    LIST *varlist;
+    int status;
+    ncvar *var_ptr;
+    LIST *uvgridlist;
+    uvarGrid *uvgrid_ptr;
 
-   /*
-    * Get the list of variables, find pointer to variable varid.
-    */
-  varlist = ncf_get_ds_varlist(LIST_dset);
+    /*
+     * Get the list of variables, find pointer to variable varid.
+     */
+    varlist = ncf_get_ds_varlist(LIST_dset);
+    if ( varlist == NULL )
+        return ATOM_NOT_FOUND;
 
     /* find the relevant LET var (i.e. uvar) */
-  status = list_traverse(varlist, (char *) uvarid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
+    status = list_traverse(varlist, (char *) uvarid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+    var_ptr = (ncvar *) list_curr(varlist);
 
     /* find the relevant grid/dataset pair owned by this uvar */
-    /* I dunno why other routines are calling internal routines such
-     * as ncf_get_ds_var_attlist to get the LIST pointers they need.
-     * am I missing something? *sh*
-     */
-  uvgridlist = var_ptr->uvarGridList;
-  if (list_empty(uvgridlist)) return ATOM_NOT_FOUND;
+    uvgridlist = var_ptr->uvarGridList;
+    if ( uvgridlist == NULL )
+        return ATOM_NOT_FOUND;
 
-  status = list_traverse(uvgridlist, (char *) context_dset, NCF_ListTraverse_FoundGridDset, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
+    status = list_traverse(uvgridlist, (char *) context_dset, NCF_ListTraverse_FoundGridDset, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
 
-  uvgrid_ptr=(uvarGrid *)list_curr(uvgridlist); 
+    uvgrid_ptr = (uvarGrid *) list_curr(uvgridlist);
+    *uvgrid = uvgrid_ptr->grid;
+    *uvdtype = uvgrid_ptr->dtype;
 
-  *uvgrid = uvgrid_ptr->grid;
-  
-  return FERR_OK;
+    return FERR_OK;
 }
 
-/* ---- 
+/* ----
  * Find variable based on its variable ID and LIST_dset ID
- * Store a grid/context_dset pair for the variable 
-
+ * Store a grid/context_dset pair for the variable
+ *
  * The dual dataset arguments arise because Ferret's global uvars are managed
  * in the c LIST structures as a special dataset -- PDSET_UVARS
  * By contrast LET/D uvars are managed in the c LIST structure of the parent dataset
- * So we refer to the dataset that owns (parents) the uvar as LIST_dset 
+ * So we refer to the dataset that owns (parents) the uvar as LIST_dset
  * and we refer to the dataset in which Ferret is evaluating the uvar is as context_dset
  */
-int  FORTRAN(ncf_set_uvar_aux_info)( int *LIST_dset, int *varid, int aux_cat[], int aux_var[], int *context_dset)
-
+int FORTRAN(ncf_set_uvar_aux_info)( int *LIST_dset, int *varid, int aux_cat[], int aux_var[], int *context_dset )
 {
-  ncvar *var_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  LIST *varlist;
-  LIST *uvgridlist;
-  uvarGrid *uvgrid;
-  int i;
-
-   /*
-    * Get the list of variables, find pointer to variable varid.
-    */
-  varlist = ncf_get_ds_varlist(LIST_dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
-
-   /*  
-    * a grid must already exists for this context dataset
-    */
-  uvgridlist = var_ptr->uvarGridList;
-  status = list_traverse(uvgridlist, (char *) context_dset, NCF_ListTraverse_FoundGridDset, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK)
-    {
-      return_val = ATOM_NOT_FOUND;
-      return return_val;
-    }
+    ncvar *var_ptr;
+    int status;
+    LIST *varlist;
+    LIST *uvgridlist;
+    uvarGrid *uvgrid;
+    int i;
+
+    /*
+     * Get the list of variables, find pointer to variable varid.
+     */
+    varlist = ncf_get_ds_varlist(LIST_dset);
+    if ( varlist == NULL )
+        return ATOM_NOT_FOUND;
+
+    status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+
+    var_ptr = (ncvar *) list_curr(varlist);
+
+    /*
+     * a grid must already exist for this context dataset
+     */
+    uvgridlist = var_ptr->uvarGridList;
+    if ( uvgridlist == NULL )
+        return ATOM_NOT_FOUND;
+    status = list_traverse(uvgridlist, (char *) context_dset, NCF_ListTraverse_FoundGridDset, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
 
-  uvgrid=(uvarGrid *)list_curr(uvgridlist); 
+    uvgrid = (uvarGrid *) list_curr(uvgridlist);
 
-   /*
-    * Fill the uvar aux arrays
-    */
-  for (i=0; i<NFERDIMS ;i++ )
-    {
-      uvgrid->auxCat[i] = aux_cat[i];
-      uvgrid->auxVar[i] = aux_var[i];
+    /*
+     * Fill the uvar aux arrays
+     */
+    for (i = 0; i < NFERDIMS; i++) {
+        uvgrid->auxCat[i] = aux_cat[i];
+        uvgrid->auxVar[i] = aux_var[i];
     }
 
-  return_val = FERR_OK;
-  return return_val;
+    return FERR_OK;
 }
 
-/* ---- 
+/* ----
  * Find variable based on its variable ID and LIST_dset ID
- * Store a grid/context_dset pair for the variable 
-
+ * Store a grid/context_dset pair for the variable
+ *
  * The dual dataset arguments arise because Ferret's global uvars are managed
  * in the c LIST structures as a special dataset -- PDSET_UVARS
  * By contrast LET/D uvars are managed in the c LIST structure of the parent dataset
- * So we refer to the dataset that owns (parents) the uvar as LIST_dset 
+ * So we refer to the dataset that owns (parents) the uvar as LIST_dset
  * and we refer to the dataset in which Ferret is evaluating the uvar is as context_dset
  */
-int  FORTRAN(ncf_get_uvar_aux_info)( int *LIST_dset, int *varid, int *context_dset,
-                                     int aux_cat[], int aux_var[])
-
+int FORTRAN(ncf_get_uvar_aux_info)( int *LIST_dset, int *varid, int *context_dset,
+                                    int aux_cat[], int aux_var[] )
 {
-  ncvar *var_ptr=NULL;
-  int status=LIST_OK;
-  int return_val;
-  LIST *varlist;
-  LIST *uvgridlist;
-  uvarGrid *uvgrid;
-  int i;
-
-   /*
-    * Get the list of variables, find pointer to variable varid.
-    */
-  varlist = ncf_get_ds_varlist(LIST_dset);
-
-  status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
-
-   /*  
-    * a grid must already exists for this context dataset
-    */
-  uvgridlist = var_ptr->uvarGridList;
-  status = list_traverse(uvgridlist, (char *) context_dset, NCF_ListTraverse_FoundGridDset, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK)
-    {
-      return_val = ATOM_NOT_FOUND;
-      return return_val;
-    }
+    ncvar *var_ptr;
+    int status;
+    LIST *varlist;
+    LIST *uvgridlist;
+    uvarGrid *uvgrid;
+    int i;
 
-  uvgrid=(uvarGrid *)list_curr(uvgridlist); 
+    /*
+     * Get the list of variables, find pointer to variable varid.
+     */
+    varlist = ncf_get_ds_varlist(LIST_dset);
+    if ( varlist == NULL )
+        return ATOM_NOT_FOUND;
+
+    status = list_traverse(varlist, (char *) varid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+
+    var_ptr = (ncvar *) list_curr(varlist);
+
+    /*
+     * a grid must already exists for this context dataset
+     */
+    uvgridlist = var_ptr->uvarGridList;
+    if ( uvgridlist == NULL )
+        return ATOM_NOT_FOUND;
+    status = list_traverse(uvgridlist, (char *) context_dset, NCF_ListTraverse_FoundGridDset, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+
+    uvgrid = (uvarGrid *) list_curr(uvgridlist);
 
-   /*
-    * Return the uvar aux arrays
-    */
-  for (i=0; i<NFERDIMS ;i++ )
-    {
-      aux_cat[i] = uvgrid->auxCat[i];
-      aux_var[i] = uvgrid->auxVar[i];
+    /*
+     * Return the uvar aux arrays
+     */
+    for (i = 0; i < NFERDIMS; i++) {
+        aux_cat[i] = uvgrid->auxCat[i];
+        aux_var[i] = uvgrid->auxVar[i];
     }
 
-  return_val = FERR_OK;
-  return return_val;
+    return FERR_OK;
 }
 
-/* ---- 
+/* ----
  * Find variable based on its variable ID and LIST_dset ID
  * Return the length of the LIST of saved grids
-
+ *
  * The dual dataset arguments arise because Ferret's global uvars are managed
  * in the c LIST structures as a special dataset -- PDSET_UVARS
  * By contrast LET/D uvars are managed in the c LIST structure of the parent dataset
- * So we refer to the dataset that owns (parents) the uvar as LIST_dset 
+ * So we refer to the dataset that owns (parents) the uvar as LIST_dset
  * and we refer to the dataset in which Ferret is evaluating the uvar is as context_dset
  */
-int  FORTRAN(ncf_get_uvar_grid_list_len)( int *LIST_dset, int *uvarid, int *uvgrid_list_len)
-
+int FORTRAN(ncf_get_uvar_grid_list_len)( int *LIST_dset, int *uvarid, int *uvgrid_list_len )
 {
-  ncvar *var_ptr=NULL;
-  int status=LIST_OK;
-  LIST *varlist;
-  LIST *uvgridlist;
-  uvarGrid *uvgrid_ptr=NULL;
+    ncvar *var_ptr;
+    int status;
+    LIST *varlist;
+    LIST *uvgridlist;
+    uvarGrid *uvgrid_ptr;
 
-   /*
-    * Get the list of variables, find pointer to variable varid.
-    */
-  varlist = ncf_get_ds_varlist(LIST_dset);
+    /*
+     * Get the list of variables, find pointer to variable varid.
+     */
+    varlist = ncf_get_ds_varlist(LIST_dset);
+    if ( varlist == NULL )
+        return ATOM_NOT_FOUND;
 
     /* find the relevant LET var (i.e. uvar) */
-  status = list_traverse(varlist, (char *) uvarid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
+    status = list_traverse(varlist, (char *) uvarid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+    var_ptr = (ncvar *) list_curr(varlist);
 
-  var_ptr=(ncvar *)list_curr(varlist); 
+    uvgridlist = var_ptr->uvarGridList;
+    if ( uvgridlist == NULL )
+        return ATOM_NOT_FOUND;
+    *uvgrid_list_len = (int) list_size(uvgridlist);
 
-  uvgridlist = var_ptr->uvarGridList;
-  *uvgrid_list_len = (int)list_size(uvgridlist);
-  
-  return FERR_OK;
+    return FERR_OK;
 }
 
-
-/* ---- 
+/* ----
  * Find variable based on its variable ID and LIST_dset ID
  * Delete the grid that corresponds to the context_dset
  * from the uvarGridList
  */
-int  FORTRAN(ncf_delete_uvar_grid)( int *LIST_dset, int *uvarid, int *context_dset)
-
+int FORTRAN(ncf_delete_uvar_grid)( int *LIST_dset, int *uvarid, int *context_dset )
 {
-  ncvar *var_ptr=NULL;
-  int status=LIST_OK;
-  LIST *varlist;
-  LIST *uvgridlist;
-  int return_val;
+    LIST *varlist;
+    int status;
+    ncvar *var_ptr;
+    LIST *uvgridlist;
+    uvarGrid *uvgrid_ptr;
 
-   /*
-    * Get the list of variables, find pointer to variable varid.
-    */
-  varlist = ncf_get_ds_varlist(LIST_dset);
+    /*
+     * Get the list of variables, find pointer to variable varid.
+     */
+    varlist = ncf_get_ds_varlist(LIST_dset);
+    if ( varlist == NULL )
+        return ATOM_NOT_FOUND;
 
     /* find the relevant LET var (i.e. uvar) */
-  status = list_traverse(varlist, (char *) uvarid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
-
-  var_ptr=(ncvar *)list_curr(varlist); 
+    status = list_traverse(varlist, (char *) uvarid, NCF_ListTraverse_FoundUvarID, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
+    var_ptr = (ncvar *) list_curr(varlist);
 
     /* find the relevant grid/dataset pair owned by this uvar */
-    /* I dunno why other routines are calling internal routines such
-     * as ncf_get_ds_var_attlist to get the LIST pointers they need.
-     * am I missing something? *sh*
-     */
-  uvgridlist = var_ptr->uvarGridList;
-  if (list_empty(uvgridlist)) return ATOM_NOT_FOUND;
+    uvgridlist = var_ptr->uvarGridList;
+    if ( uvgridlist == NULL )
+        return ATOM_NOT_FOUND;
 
-  status = list_traverse(uvgridlist, (char *) context_dset, NCF_ListTraverse_FoundGridDset, (LIST_FRNT | LIST_FORW | LIST_ALTR));
-  if ( status != LIST_OK ) return ATOM_NOT_FOUND;
+    status = list_traverse(uvgridlist, (char *) context_dset, NCF_ListTraverse_FoundGridDset, (LIST_FRNT | LIST_FORW | LIST_ALTR));
+    if ( status != LIST_OK )
+        return ATOM_NOT_FOUND;
 
-	/* Remove this grid from uvaGridList list */
-  list_remove_curr(uvgridlist);
+    /* Remove this grid from uvaGridList list */
+    uvgrid_ptr = (uvarGrid *) list_remove_curr(uvgridlist);
+    free(uvgrid_ptr);
 
-  return_val = FERR_OK;
-  return return_val;
+    return FERR_OK;
 }
 
 
 /* ***********************************
- *  search routines for LIST traversal
+ *    search routines for LIST traversal
  * ***********************************
+ * Note that a return value of zero means a match was found
+ * (as with strcmp).    Any non-zero value indicated not a match,
+ * and sign does not matter.
  */
 
-/* ---- 
- * See if the name in data matches the ferret dset name in 
+/* ----
+ * See if the name in data matches the ferret dset name in
  * curr. Ferret always capitalizes everything so be case INsensitive.
  */
-int NCF_ListTraverse_FoundDsetName( char *data, char *curr )
+static int NCF_ListTraverse_FoundDsetName( char *data, char *curr )
 {
-  ncdset *nc_ptr=(ncdset *)curr; 
+    ncdset *nc_ptr = (ncdset *) curr;
 
-  if ( !strcasecmp(data, nc_ptr->fername) ) {
-    return FALSE; /* found match */
-  } else
-    return TRUE;
+    return strcasecmp(data, nc_ptr->fername);
 }
 
-/* ---- 
+/* ----
  * See if the dataset id in data matches the ferret dset id in curr.
  */
-int NCF_ListTraverse_FoundDsetID( char *data, char *curr )
+static int NCF_ListTraverse_FoundDsetID( char *data, char *curr )
 {
-  ncdset *nc_ptr=(ncdset *)curr; 
-  int ID=*((int *)data);
+    ncdset *nc_ptr = (ncdset *) curr;
+    int ID = *((int *) data);
 
-  if ( ID == nc_ptr->fer_dsetnum ) {
-    return FALSE; /* found match */
-  } else
-    return TRUE;
+    if ( ID == nc_ptr->fer_dsetnum ) {
+        return 0; /* found match */
+    }
+    return 1;
 }
 
-/* ---- 
- * See if the name in data matches the variable name in 
+/* ----
+ * See if the name in data matches the variable name in
  * curr. Ferret always capitalizes everything so be case INsensitive,
  * unless the string has been passed in inside single quotes.
  */
-int NCF_ListTraverse_FoundVarName( char *data, char *curr )
+static int NCF_ListTraverse_FoundVarName( char *data, char *curr )
 {
-  ncvar *var_ptr=(ncvar*)curr;
+    ncvar *var_ptr = (ncvar*) curr;
 
-  if ( !strcasecmp(data, var_ptr->name) ) {
-    return FALSE; /* found match */
-  } else
-    return TRUE;
+    return strcasecmp(data, var_ptr->name);
 }
 
-/* ---- 
- * See if the name in data matches the variable name in 
+/* ----
+ * See if the name in data matches the variable name in
  * curr. Make the string comparison case-sensive.
  */
-int NCF_ListTraverse_FoundVarNameCase( char *data, char *curr )
+static int NCF_ListTraverse_FoundVarNameCase( char *data, char *curr )
 {
-  ncvar *var_ptr=(ncvar*)curr;
+    ncvar *var_ptr = (ncvar*) curr;
 
-  if ( !strcmp(data, var_ptr->name) ) {
-    return FALSE; /* found match */
-  } else
-    return TRUE;
+    return strcmp(data, var_ptr->name);
 }
 
-/* ---- 
- * See if the ID in data matches the variable ID in curr. 
+/* ----
+ * See if the ID in data matches the variable ID in curr.
  */
-int NCF_ListTraverse_FoundVarID( char *data, char *curr )
+static int NCF_ListTraverse_FoundVarID( char *data, char *curr )
 {
-  ncvar *var_ptr=(ncvar*)curr; 
-  int ID=*((int *)data);
+    ncvar *var_ptr = (ncvar*) curr;
+    int ID = *((int *) data);
 
-   if ( ID == var_ptr->varid)  {
-    return FALSE; /* found match */
-  } else
-    return TRUE;
+    if ( ID == var_ptr->varid)    {
+        return 0; /* found match */
+    }
+    return 1;
 }
 
-/* ---- 
- * See if the ID in data matches the uvar ID in curr. 
+/* ----
+ * See if the ID in data matches the uvar ID in curr.
  */
-int NCF_ListTraverse_FoundUvarID( char *data, char *curr )
+static int NCF_ListTraverse_FoundUvarID( char *data, char *curr )
 {
-  ncvar *var_ptr=(ncvar*)curr; 
-  int ID=*((int *)data);
+    ncvar *var_ptr = (ncvar*) curr;
+    int ID = *((int *) data);
 
-   if ( ID == var_ptr->uvarid)  {
-    return FALSE; /* found match */
-  } else
-    return TRUE;
+    if ( ID == var_ptr->uvarid ) {
+        return 0; /* found match */
+    }
+    return 1;
 }
 
-/* ---- 
+/* ----
  * See if the name in data matches the attribute name in curr.
  */
-int NCF_ListTraverse_FoundVarAttName( char *data, char *curr )
+static int NCF_ListTraverse_FoundVarAttName( char *data, char *curr )
 {
-  ncatt *att_ptr=(ncatt *)curr;
+    ncatt *att_ptr = (ncatt *) curr;
 
-  if ( !strcasecmp(data, att_ptr->name) ) {
-    return FALSE; /* found match */
-  } else
-    return TRUE;
+    return strcasecmp(data, att_ptr->name);
 }
 
-/* ---- 
- * See if the name in data matches the attribute name in curr. 
+/* ----
+ * See if the name in data matches the attribute name in curr.
  * Make the string comparison case-sensive.
  */
-int NCF_ListTraverse_FoundVarAttNameCase( char *data, char *curr )
+static int NCF_ListTraverse_FoundVarAttNameCase( char *data, char *curr )
 {
-  ncatt *att_ptr=(ncatt *)curr;
+    ncatt *att_ptr = (ncatt *) curr;
 
-  if ( !strcmp(data, att_ptr->name) ) {
-    return FALSE; /* found match */
-  } else
-    return TRUE;
+    return strcmp(data, att_ptr->name);
 }
-/* ---- 
+
+/* ----
  * See if there is an ID in data matches the attribute id in curr.
  */
-int NCF_ListTraverse_FoundVarAttID( char *data, char *curr )
+static int NCF_ListTraverse_FoundVarAttID( char *data, char *curr )
 {
-  ncatt *att_ptr=(ncatt *)curr;
-  int ID=*((int *)data);
+    ncatt *att_ptr = (ncatt *) curr;
+    int ID = *((int *) data);
 
-  if ( ID== att_ptr->attid)  {
-    return FALSE; /* found match */
-  } else
-    return TRUE;
+    if ( ID == att_ptr->attid ) {
+        return 0; /* found match */
+    }
+    return 1;
 }
 
-/* ---- 
+/* ----
  * See if there is an ID in data matches the dset-member id.
  */
-int NCF_ListTraverse_FoundVariMemb( char *data, char *curr )
+static int NCF_ListTraverse_FoundVariMemb( char *data, char *curr )
 {
-  ncagg_var_descr *vdescr_ptr=(ncagg_var_descr *)curr;
-  int ID=*((int *)data);
+    ncagg_var_descr *vdescr_ptr = (ncagg_var_descr *) curr;
+    int ID = *((int *) data);
 
-  if ( ID== vdescr_ptr->imemb)  {
-    return FALSE; /* found match */
-  } else
-    return TRUE;
+    if ( ID == vdescr_ptr->imemb ) {
+        return 0; /* found match */
+    }
+    return 1;
 }
 
 
-/* ---- 
+/* ----
  * See if there is a match on the dset sequence number.
  */
-int NCF_ListTraverse_FoundDsMemb( char *data, char *curr )
+static int NCF_ListTraverse_FoundDsMemb( char *data, char *curr )
 {
+    ncagg *agg_ptr = (ncagg *) curr;
+    int ID = *((int *) data);
 
-  ncagg *agg_ptr=(ncagg *)curr;
-  int ID=*((int *)data);
-
-  /* 12/15 -- search is successful if sequence number (FORTRAN index) matches */
-  if ( ID== agg_ptr->aggSeqNo)  {
-    return FALSE;
-  } else
-    return TRUE; /* found match */
+    /* 12/15 -- search is successful if sequence number (FORTRAN index) matches */
+    if ( ID == agg_ptr->aggSeqNo ) {
+        return 0; /* found match */
+    }
+    return 1;
 }
 
-/* ---- 
+/* ----
  * See if there is a match on the context dset
  */
-int NCF_ListTraverse_FoundGridDset( char *data, char *curr )
+static int NCF_ListTraverse_FoundGridDset( char *data, char *curr )
 {
 
-  uvarGrid *uvgrid_ptr=(uvarGrid *)curr;
-  int ID=*((int *)data);
+    uvarGrid *uvgrid_ptr = (uvarGrid *) curr;
+    int ID = *((int *) data);
 
-  if ( ID== uvgrid_ptr->dset)  {
-    return FALSE;
-  } else
-    return TRUE;  /* found match  (are the other comments like this wrong?)*/
+    if ( ID == uvgrid_ptr->dset ) {
+        return 0; /* found match */
+    }
+    return 1;
 }
+
diff --git a/fmt/src/SOURCE_FILES b/fmt/src/SOURCE_FILES
index c1957c6..7e63fe2 100644
--- a/fmt/src/SOURCE_FILES
+++ b/fmt/src/SOURCE_FILES
@@ -7,6 +7,7 @@ cd_add_var.F\
 cd_assoc_grids.F\
 cd_axis_name.F\
 cd_axis_outname.F\
+cd_axname_to_write.F\
 cd_axlen.F\
 cd_childax_name.F\
 cd_clean_grids.F\
@@ -41,6 +42,7 @@ cd_get_missing_flag.F\
 cd_get_parent_grids.F\
 cd_get_t0.F\
 cd_get_time_axis.F\
+cd_get_time_units.F\
 cd_get_tmap_parms.F\
 cd_get_var_att_id.F\
 cd_get_var_att_info.F\
@@ -131,6 +133,7 @@ nc_get_attrib_float.F\
 nc_get_attrib_string.F\
 tm_abstract_axis.F\
 tm_add_message.F\
+tm_adjust_bounds.F\
 tm_allo_dyn_grid.F\
 tm_allo_dyn_line.F\
 tm_allo_dyn_grid_sub.F\
@@ -150,9 +153,11 @@ tm_break_str.F\
 tm_check_box_loc.F\
 tm_check_bnds.F\
 tm_check_bnds_attrib.F\
+tm_check_coords.F\
 tm_check_fmrc_bnds_attrib.F\
 tm_check_bnds_centered.F\
 tm_check_edges_attrib.F\
+tm_check_monthly_axis.F\
 tm_choose_read.F\
 tm_clean_filename.F\
 tm_close_set.F\
@@ -199,6 +204,7 @@ tm_fmt_sngl.F\
 tm_fmt_user.F\
 tm_fp_convert.F\
 tm_fpeq_eps.F\
+tm_fpeq_eps_sngl.F\
 tm_fpeq.F\
 tm_fpeq_sngl.F\
 tm_friendly_read.F\
@@ -248,10 +254,12 @@ tm_make_4d_grids.F\
 tm_make_basic_axis.F\
 tm_make_dyn_line.F\
 tm_make_fmt_date.F\
+tm_make_new_dyn_grid.F\
 tm_bad_epic.F\
 tm_mod.F\
 tm_modulo_axlen.F\
 tm_modulo_line_dim.F\
+tm_month_time_factor.F\
 tm_new_grid_name.F\
 tm_new_line_name.F\
 tm_next_dyn_grid.F\
@@ -281,14 +289,17 @@ tm_scale_all.F\
 tm_scale_nobad.F\
 tm_secs_from_bc.F\
 tm_secs_to_date.F\
+tm_secs_to_ymdhms.F\
 tm_set_current_calendar.F\
 tm_split_message.F\
 tm_step_to_date.F\
 tm_string.F\
 tm_subsc.F\
+tm_tcoord_trumonth.F\
 tm_translate_axis.F\
 tm_translate_lat_long.F\
 tm_unit_id.F\
+tm_units_cal.F\
 tm_use_dyn_grid.F\
 tm_use_line.F\
 tm_warn_subspan.F\
diff --git a/fmt/src/cd_axis_name.F b/fmt/src/cd_axis_name.F
index df7945d..52d4e62 100644
--- a/fmt/src/cd_axis_name.F
+++ b/fmt/src/cd_axis_name.F
@@ -48,6 +48,7 @@
 *                 needed to rename an axis on file initialization for uniqueness;
 *                 we use the Ferret name throughout, restoring it only on output.
 * V697 12/15 *acm* Fix ticket 2336: consistent application of CAN MODE UPCASE
+* V710 9/16 *acm* Use ww_dim_name from xtext_info.cmn
 
 * argument definitions:
 *     dset    - dset (if netcdf file, for getting name and attribute 
@@ -63,6 +64,7 @@
 #include "gt_lib.parm"
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
+	include 'xtext_info.cmn'  ! with ww_dim_name
 
 * argument declarations
       INTEGER dset, grid, idim, nlen
@@ -72,9 +74,8 @@
       INTEGER TM_LENSTR1, iaxis, varid, vartype, nvdims, vdims(8), 
      .        nvatts, status, llen, ic, all_outflag
 
-      CHARACTER*1 ww_dim_name(nferdims), c
+      CHARACTER*1 c
       CHARACTER*130 buff
-      DATA ww_dim_name/'X', 'Y', 'Z', 'T', 'E', 'F'/
 
 * initialize
       iaxis = grid_line(idim, grid)
diff --git a/fmt/src/cd_axis_outname.F b/fmt/src/cd_axis_outname.F
index 260d842..c1ce382 100644
--- a/fmt/src/cd_axis_outname.F
+++ b/fmt/src/cd_axis_outname.F
@@ -46,6 +46,7 @@
 * V63   9/09 *acm* Fixing bug 1686: if line_name_orig is not set, use line_name
 * V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
 * V6.85+ 12/13*acm* catch up to 6-D Ferret
+* V710 9/16 *acm* Use ww_dim_name from xtext_info.cmn
 
 * argument definitions:
 *     dset    - dset (if netcdf file, for getting name and attribute 
@@ -62,6 +63,7 @@
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
         include 'netcdf.inc'
+	include 'xtext_info.cmn'  ! with ww_dim_name
 
 * argument declarations
       INTEGER dset, grid, idim, nlen
@@ -72,9 +74,7 @@
      .  attlen, maxlen, attoutflag, alen
       REAL val
 
-      CHARACTER*1 ww_dim_name(nferdims)
       CHARACTER varname*130, buff*128, attname*128
-      DATA ww_dim_name/'X', 'Y', 'Z', 'T', 'E', 'F'/
 
 * initialize
       iaxis = grid_line(idim, grid)
diff --git a/fer/utl/save_uvar_aux_info.F b/fmt/src/cd_axname_to_write.F
similarity index 52%
copy from fer/utl/save_uvar_aux_info.F
copy to fmt/src/cd_axname_to_write.F
index 5dd70fb..8137f4a 100644
--- a/fer/utl/save_uvar_aux_info.F
+++ b/fmt/src/cd_axname_to_write.F
@@ -1,5 +1,5 @@
-      SUBROUTINE SAVE_UVAR_AUX_INFO( uvar, aux_cat, aux_var, dset )
-*
+	SUBROUTINE CD_AXNAME_TO_WRITE (cdfid, idim, name, nlen, cdfstat)
+
 *  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),
@@ -33,49 +33,68 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 
-* store the auxiliary variable info that is associated with a saved
-* uvar grid/dset pair.
+* Programmer Ansley Manke
+* NOAA/PMEL, Seattle, WA - SDIG group
+* revision 0.0 - 9/16
+* For Ticket 2459
+
+* Given cdfid for an open netCDF file we are writing, the dimension direction,
+* and an axis name, return the name for writing, perhaps with a direction 
+* appended. If there is already an axis with the same name but a different 
+* direction. nlen on input is the length of name, on output
+* it will be the length of the resulting name.
+
+        include 'netcdf.inc'
+	include 'tmap_dims.parm'
+	include 'xtext_info.cmn'  ! with ww_dim_name
+
+* Declare netcdf function names. 
+* The ones without trailing underscore are declared in netcdf.inc
+#include "netcdf_declareUnderscore.inc"
+
+	INTEGER cdfstat, cdfid, idim, nlen
+	CHARACTER*(*) name
 
-* V699 5/16 *sh* new routine created to avoid the 2d uvar_grid array
+	INTEGER   cvarid, local_status
+	CHARACTER buff*5, axis_dir*1
 
-* arguments:
-*     uvar - the Ferret user variable number (input)
-*     aux_cat - array of nferdims category's for auxiliary regrid variables
-*     aux_var - array of nferdims variables for auxiliary regridding
-*     dset    - the dset in which this uvar is being evaluated (see below)
 
-        include 'ferret.parm'
-        include 'errmsg.parm'
-        include 'tmap_dims.parm'
-        include 'xvariables.cmn'
+#ifdef usingDODSf2cUnderscore
+	local_status = NF_INQ_VARID_( cdfid, name(:nlen), cvarid)
+#else
+	local_status = NF_INQ_VARID( cdfid, name(:nlen), cvarid)
+#endif
 
-* calling argument declarations
-        INTEGER uvar, aux_cat(nferdims), aux_var(nferdims), dset
+	buff = ' '	 
+	IF (local_status .EQ. NF_NOERR) THEN
+#ifdef usingDODSf2cUnderscore
+           local_status = NF_GET_ATT_TEXT_ (cdfid, cvarid, 'axis', buff)
+#else
+           local_status = NF_GET_ATT_TEXT (cdfid, cvarid, 'axis', buff)
+#endif
+	ENDIF
 
-* internal variable declarations
-        INTEGER NCF_SET_UVAR_AUX_INFO, c_list_dset, context_dset,
-     .          status
+* If we change the axis name, mark status as 'dimension not found' in the
+* file, then Ferret will go on and write the axis with the new name.
 
-* 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
+	IF (local_status .EQ. NF_NOERR) THEN
+	    CALL STR_UPCASE(axis_dir, buff(:1))
+	    IF (axis_dir .NE. ww_dim_name(idim))  THEN
+	       name = name(:nlen)//ww_dim_name(idim)
+	       nlen = nlen+1
+	       cdfstat = NF_EBADDIM
+	    ENDIF
+	ENDIF
 
-        IF ( uvar_dset(uvar) .GT. pdset_irrelevant) THEN
-* ... LET/D= variable
-          c_list_dset  = uvar_dset(uvar) ! the dset that owns this LET/D
-          context_dset = uvar_dset(uvar) ! only one dset is possible
-        ELSE
-* ... global LET variable
-          c_list_dset  = pdset_uvars  ! fake dataset of global uvars
-          context_dset = dset
-        ENDIF
+* Is this axis already in the file?  Then we are done.
 
-* store the grid
-        status = NCF_SET_UVAR_AUX_INFO( c_list_dset, uvar,
-     .                              aux_cat, aux_var, context_dset )
+#ifdef usingDODSf2cUnderscore
+	local_status = NF_INQ_VARID_( cdfid, name(:nlen), cvarid)
+#else
+	local_status = NF_INQ_VARID( cdfid, name(:nlen), cvarid)
+#endif
 
-* check that we were successful
-        IF (status .NE. ferr_ok) CALL WARN(
-     .                  'corruption setting uvar aux info')
+	IF (local_status .EQ. NF_NOERR) cdfstat = NF_NOERR
 
-        RETURN
-        END
+	RETURN
+	END
diff --git a/fmt/src/cd_get_1_axis.F b/fmt/src/cd_get_1_axis.F
index 5ffd57a..f6cc588 100644
--- a/fmt/src/cd_get_1_axis.F
+++ b/fmt/src/cd_get_1_axis.F
@@ -1,6 +1,6 @@
         SUBROUTINE CD_GET_1_AXIS(dset, cdfid, ivar, iaxis, its_epic,
      .                           reversed, tregular, use_strict, 
-     .                           bad_bndsid, status)
+     .                           bad_bndsid, has_gdef, status)
 
 
 *  This software was developed by the Thermal Modeling and Analysis
@@ -188,6 +188,25 @@
 * V698  5/16 *acm* for ticket 1432, could write a note when encountering a 
 *                  supbspan modolo axis with length almost the modulo length.
 *                  (commented out for now.)
+* v7+   7/16 *acm* Ticket 2445, regular-spacing attribute and repeated or missing values
+*                  in the first 2 coordinates
+* V710  4/16 *acm* new TM_UNITS_CAL to account for calendar in units id
+* V710  4/16 *acm* Remove the 2-day shift correction. CDC does not seem to 
+*                  consistenly applythis logic to current files
+* V71 12/16 *acm* Ticket 2158: working with true monthly time axes.
+* V7022 1/17 *acm* ticket 2497, Back off the auto-detection of monthly axes.
+* 1/13/2017 *acm* Do the repeated-coordinates checking in the new routine
+*                 TM_CHECK_COORDS, also called by xeq_define, to consistently
+*                 handle almost-equal coordinates, differing by machine precision.
+* 1/24/2017 *acm* Ticket 2504: If Ferret is computuing axis bounds, set them such 
+*                 that the axis lies within the given modulo length.
+* 1/26/2017 *acm* Ticket 1480. change the message if the modulo length is 
+*                 less than the axis length. The rest of that ticket is 
+*                 addressed in cd_write_axis.
+* v720 2/2017 *acm* Ticket 2513. Check that bounds or edges data is in the file when 
+*                 attribute is found, before trying to use it.
+* v720 3/2017 *acm* Ticket 2246. Call CD_GET_TIME_UNITS routine to get t0 date and time units 
+
 
 * argument definitions:
 *       cdfid    - netCDF id number for already opened CDF file  (to go away with new attr. hanling)
@@ -219,7 +238,7 @@
 
 * argument declarations
         LOGICAL  its_epic, reversed(max_lines:line_ceiling), tregular, 
-     .           use_strict
+     .           use_strict, has_gdef
         INTEGER  cdfid, dset, ivar, iaxis, bad_bndsid, status
 
 * local parameter definitions:
@@ -238,10 +257,11 @@
      .        epic_time, west_lon, yyyymmdd_time, 
      .        got_mod, mod_tf, setmodfalse, ok_cal, ok,
      .        got_edges, got_bnds, coordvar, its_irregular, 
-     .        do_scale, do_offset, scale_is_dp, 
-     .        has_repeated, misordered, is_double
+     .        do_scale, do_offset, scale_is_dp, reg,
+     .        has_repeated, misordered, has_missing, is_double, 
+     .        true_month, okmod
 
-      INTEGER TM_UNIT_ID, TM_LENSTR1,TM_GET_CALENDAR_ID,      
+      INTEGER TM_UNIT_ID, TM_UNITS_CAL, TM_LENSTR1, TM_GET_CALENDAR_ID,      
      .        STR_CASE_BLIND_COMPARE, STR_UPCASE, STR_SAME,
      .        soft_err, 
      .        ipt1, ipte, vartype, vback, npts, vlen, cdfstat, istat,
@@ -254,7 +274,7 @@
      .        i1, i2, i3, i0
 
       REAL    rbuff, delta, first_delta, val, epsilon, lm_len, 
-     .        scale, offset
+     .        scale, offset, start
       REAL*4  r4delta
       REAL*8  TM_LONW2LONE, TM_WW_AXLEN, tmp8, axwwlen, 
      .        dscale, doffset,  micro_adj, madj
@@ -263,7 +283,6 @@
      .        spacing_attr*14, bname*128, TM_FMT*32
       CHARACTER*13 TM_STRING
       CHARACTER*1 axis_dir
-      CHARACTER*3 dbuf
       CHARACTER*2 dcode
 
       INTEGER tt  ! nice short name
@@ -273,12 +292,8 @@
       PARAMETER (bufflen = 256)
       CHARACTER*256 buff
       REAL*8   TM_SECS_FROM_BC, first, secs2firststep, secs1590,
-     .         t0_secs, last_coord, firs_coord, secsperyear, secs2start,
-     .         days_neg4713, days_1901_may68, secs_to_1901, secs_to_1968 
-
-* parameter declarations
-        REAL*8          psecs_per_day
-        PARAMETER     ( psecs_per_day = 60.*60.*24. )
+     .         t0_secs, last_coord, firs_coord, secsperyear, secs2start, 
+     .         days_neg4713
 
 * initialize for EPIC
       do_warn = .NOT.its_epic     ! EPIC files can get away with anything
@@ -291,6 +306,9 @@
       days_neg4713 = 0.D0
       next_line_storage = next_line_mem_pos
       bad_bndsid = 0
+      cal_id = 1
+      misordered = .FALSE.
+      has_missing = .FALSE.
 
 * (From Wikipedia on precision:)
 * Single precision, called "float" in the C language family, and "real" 
@@ -301,7 +319,6 @@
 * and its significand has a precision of 53 bits (about 16 decimal digits).
 
       epsilon_23 =  2.**(-23) 
-      depsilon_46 =  2.**(-52)
       depsilon_46 =  2.**(-46) 
 
 * get the vital statistics of the axis 
@@ -417,12 +434,44 @@
      .                       do_warn, vname(:vlen), maxlen,
      .                       attlen, attoutflag, ename, val)
 
-* Cannot have both "edges" and "bounds" atrtributes
-      IF ( got_bnds .AND. got_edges )THEN
-         CALL TM_NOTE(
-     .     'Axis has both edges and bounds attributes: '//
-     .      vname(:vlen)//' - edges definition ignored', tt )
-         GOTO 500
+* Cannot have both "edges" and "bounds" attributes
+* Ticket 2513
+* Check that the file has the bounds or edges listed in the attribute.
+* Use bounds if they are in the file, else edges.
+
+      IF ( got_bnds .AND. got_edges ) THEN
+         bndid = 0
+	 edgid = 0
+	 CALL CD_GET_VAR_ID (dset, bname, bndid, status)
+	 CALL CD_GET_VAR_ID (dset, ename, edgid, status)
+
+* If bounds or edges are in the file, use bounds preferentially, else edges
+
+	 IF (bndid + edgid .GT. 0) THEN
+	    IF (bndid .GT. 0) THEN
+               CALL TM_NOTE(
+     .          'Axis has both edges and bounds attributes: '//
+     .           vname(:vlen)//' - edges definition ignored', tt )
+               got_bnds = .FALSE.
+	    ENDIF
+	    IF (edgid .GT. 0 .AND. bndid.EQ.0) THEN
+               CALL TM_NOTE(
+     .          'Axis has both edges and bounds attributes: '//
+     .           vname(:vlen)//'. Bounds not in file. Ignore bounds definition', tt )
+               got_bnds = .FALSE.
+	    ENDIF
+	 ENDIF ! at least one of bounds and edges is in the file
+	 
+* If attributes but not data for bounds/edges, issue a note	    
+	 IF (bndid + edgid .EQ. 0) THEN
+            CALL TM_NOTE(
+     .           'Axis has both edges and bounds attributes: '//
+     .           vname(:vlen)//'. Bounds and edges not in file, '//
+     .           'ignore bounds and edges attributes', tt )
+            got_bnds = .FALSE.
+            got_edges = .FALSE.
+	 ENDIF
+
       ENDIF
 
 * We will be checking bounds or edges. Read the coords too
@@ -484,31 +533,12 @@
       IF ( since_T0 .GT. 2 ) THEN
          line_units(iaxis) = buff(:since_T0-1)  ! just the "tunits" part 
 
-         istat = STR_UPCASE( dbuf, buff(1:3) )
-
          slen = TM_LENSTR1(buff)
          IF ( slen .GT. since_T0 + 5) THEN
-            IF (buff(since_T0+6:since_T0+10) .EQ. '-4713' .AND.
-     .          dbuf .EQ. 'DAY')  THEN
-
-c  This is the simple conversion; but we will reset the origin to 1901.
-c               buff = 'DAYS since 1968-05-23 00:00:00'
-c               days_neg4713 = 2440000.D0
-
-               buff = 'DAYS since 1901-01-15 00:00:00'
-               secs_to_1901 = TM_SECS_FROM_BC 
-     .                        (GREGORIAN, 1901,1,15,0,0,0,status)
-               secs_to_1968 = TM_SECS_FROM_BC 
-     .                        (GREGORIAN, 1968,5,23,0,0,0,status)
-               days_1901_may68 = (secs_to_1968 - secs_to_1901)/
-     .                             psecs_per_day
-               days_neg4713 = 2440000.D0 - days_1901_may68
-
-            ENDIF
-            got_torg = .TRUE.
-            CALL TM_DATE_REFORMAT(buff(since_T0+6:),pdate_numslashnum,
-     .                            cal_id, line_t0(iaxis), 
-     .                            pdate_vax, .FALSE., status )
+	 
+	    got_torg = .TRUE.
+	    CALL CD_GET_TIME_UNITS (buff, cal_id, line_units(iaxis), 
+     .			            line_t0(iaxis), days_neg4713, status)
 
 c fix for bug 1394
 c If the part after since is not a date/time, just keep the whole
@@ -547,22 +577,9 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
 
       units = TM_UNIT_ID( line_units(iaxis) )
 
-* Named calendar with unit=year gets length of year in that calendar.
-
-      IF (units .EQ. -6 .OR. units .EQ. -10) THEN
-         IF (cal_id .EQ. d360) units = -9
-         IF (cal_id .EQ. julian) units = -12
-	 IF (cal_id .EQ. noleap) units = -11
-	 IF (cal_id .EQ. all_leap) units = -8
-      ENDIF
-
-* Named calendar with unit=month gets length of month in that calendar.
+* Named calendar with unit=month or year gets length according to calendar's year length.
 
-      IF (units .EQ. -5) THEN
-         IF (cal_id .EQ. d360) units = -14
-         IF (cal_id .EQ. julian) units = -15
-	 IF (cal_id .EQ. noleap) units = -13
-      ENDIF
+      units = TM_UNITS_CAL( units, cal_id, .FALSE. )
 
       line_unit_code(iaxis) = units
       IF  (   units.EQ.0
@@ -717,6 +734,16 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
      .                       line_delta(iaxis), status )
          ENDIF
          IF ( status .NE. merr_ok ) GOTO 1000   ! 3/99 soft error
+
+* Invalid points. Cannot compute line_delta
+         IF (ABS(line_start(iaxis)) .GE. ABS(bad_r8)   .OR. 
+     .       ABS(line_delta(iaxis)) .GE. ABS(bad_r8) ) THEN 
+	    misordered = .TRUE.
+	    has_missing = .TRUE.
+	    words(1) = '2'
+	    GOTO 540
+	 ENDIF
+
 	 IF (do_scale) THEN
 	    IF (scale_is_dp) THEN
 	       line_start(iaxis) = line_start(iaxis)*dscale + doffset
@@ -748,6 +775,15 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
             reversed(iaxis) = .FALSE.
             line_delta(iaxis) = 1
          ENDIF
+
+* Ticket 2445: repeated coordinates on axis marked as regular is an invalid axis
+      
+	 IF (line_delta(iaxis) .EQ. 0.) THEN
+	    misordered = .TRUE.
+	    words(1) = '2'
+	    GOTO 540
+	 ENDIF
+
          line_subsc1(iaxis) = unspecified_int4
          last_coord = line_start(iaxis) + DBLE(npts-1)*line_delta(iaxis)
          firs_coord = line_start(iaxis)
@@ -849,75 +885,21 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
          micro_adj = 1E-7 *
      .		(line_mem(ipte) - line_mem(ipt1))
 
+	is_double = vartype .EQ. ncdouble
+
 * ... are there repeated values?
-         has_repeated = .FALSE.
-         DO 532 i1 = ipt1+1, ipte
-            IF (line_mem(i1-1) .EQ. line_mem(i1)) has_repeated = .TRUE.
- 532     CONTINUE
-
-* ... make micro-adjustments if axis has repeated values (4/99)
-         IF ( has_repeated ) THEN
-            IF (micro_adj .EQ. 0.D0) THEN
-	       i1 = ipt1+1
-	       misordered = .TRUE.
-	       GOTO 540
-	    ENDIF
 
-            i0 = ipt1
-            DO 538  i1 = ipt1+1, ipte
-               IF  (line_mem(i1-1) .EQ. line_mem(i1)) THEN
-*    ... locate end of repeating block
-                  DO 534 i2 = i1, ipte
-                     IF (line_mem(i2) .GT. line_mem(i1)) GOTO 535
- 534              CONTINUE
-                  i2 = ipte + 1    ! one beyond last value
-                  i0 = i1 - 2
-                  i3 = i2 - 1
-*    ... micro-adjust repeating values from i1 to i2-1
- 535              CONTINUE
-
-                  IF (line_mem(i2) .GT. line_mem(i1)) THEN
-                     i0 = i1-1
-                     i3 = i2
-                  ENDIF
-
-* Check and readjust the size of micro_adj if too small
-                  madj = micro_adj
-                  IF (micro_adj*(i2-i1+1) .GT. 
-     .                line_mem(i3) - line_mem(i0) ) THEN
-                     madj = (line_mem(i3)-line_mem(i0))/(i2-i1+1)
-                     IF (madj .EQ. 0.D0)  THEN
-	                misordered = .TRUE.
-	                GOTO 540
-	             ENDIF
-                  ENDIF
-                  DO 536 i3 = i1, i2-1
-                     line_mem(i3) = line_mem(i3) + (i3-i1+1)* madj
- 536              CONTINUE
-                  IF ( i2 .LT. ipte .AND. 
-     .		       (line_mem(i2-1) .GE. line_mem(i2)))  THEN
-	             misordered = .TRUE.
-	             GOTO 540
-                  ENDIF
-               ENDIF
- 538        CONTINUE
-         ENDIF
+*	 micro_adj = -1. ! Or send this to compute this value inside the routine
+	 CALL TM_CHECK_COORDS (ipt1, ipte, is_double, use_strict, 
+     .                         has_repeated, misordered, micro_adj, 
+     .                         epsilon, depsilon)
 
+	 IF (misordered) GOTO 540
          IF ( has_repeated .AND. .NOT.misordered ) THEN
             CALL TM_NOTE('Axis has repeated values -- micro-adjusting '//
      .           vname(:vlen), tt)
          ENDIF
 
- 540	 IF (misordered) THEN
-	    words(1) = TM_LEFINT(i1-ipt1+1, istat)
-	    CALL TM_NOTE(
-     .           'unrepairable repeated axis coords on axis '//
-     .           vname(:vlen)//' at subscript '//words(1), tt)
-	    CALL TM_NOTE(
-     .           'A dummy axis of subscripts will be used', tt)
-	    GOTO 1000
-	 ENDIF
-
 * Check if axis is actually regularly spaced (though not flagged as "even")
 * Fix bug 1483; look at each delta rather than trying to compare with first delta.
 
@@ -926,12 +908,8 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
 * See if double-precision coordinates are regularly-spaced
 	epsilon = 0.
 	depsilon = 0.
-	
-	is_double = vartype .EQ. ncdouble
 
         IF (is_double) THEN
-           dlast_coord = line_mem(ipte)
-           dfirs_coord = line_mem(ipt1)
            dfirst_delta = line_mem(ipt1+1) - line_mem(ipt1)
            depsilon = depsilon_46 * 2.*(ABS(line_mem(ipte)) / first_delta )
            depsilon = depsilon_46 * 2.*(ABS(line_mem(ipt1)) / first_delta )
@@ -997,6 +975,9 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
      .         'Reversing ordering for axis '//vname(:vlen), tt)
       ENDIF
 
+* 4/2016 remove this correction. CDC does not seem to consistenly apply
+* this logic to current files
+
 * hack to cope with Gregorian/Julian calendar ambiguities (used by NOAA/CDC)
 * Comments from Roland Schweitzer about CDC files:
 * These CDCfiles have units of the form: days since 1-1-1 00:00:00 or
@@ -1026,7 +1007,7 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
            secs1590 = TM_SECS_FROM_BC (GREGORIAN, 1590,1,1,0,0,0,status)
             IF ( status .NE. merr_ok ) GOTO 5900
 
-* ... correct axis if crosses 1590 threshhold
+* ... correct axis if crosses 1590 threshold
            IF (secs2firststep .GT. secs1590) THEN
               line_t0(iaxis) = '30-DEC-0000 00:00:00'
               line_shift_origin(iaxis) = .TRUE.
@@ -1202,9 +1183,6 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
                     line_delta(iaxis) = line_mem(ibx1+1)-line_mem(ibx1)
                  ENDIF
                  line_subsc1 (iaxis) = unspecified_int4
-                 last_coord = line_start(iaxis) + 
-     .                DBLE(npts-1)*line_delta(iaxis)
-                 firs_coord = line_start(iaxis)
               ENDIF
            ELSE
               line_regular(iaxis) = .FALSE.
@@ -1214,6 +1192,35 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
 
  600    CONTINUE
 
+ 
+* Check if axis is a monthly axis for this calendar.  If so store as a 'true-month' 
+* axis, stored internally as if regular, but coordinates returned on true axis.
+* Do not call this if the file has enhanced header, with parent and child grids. 
+* (at least for now.)
+* 1/13/2017 ticket 2497, Back off this auto-detection of monthly axes for now.
+
+
+	true_month = .FALSE.
+c	IF (line_direction(iaxis) .EQ. 'TI' .AND. 
+c     .      .NOT.line_regular(iaxis) .AND.
+c     .      .NOT.has_gdef ) 
+c     .       CALL TM_CHECK_MONTHLY_AXIS (line_mem(ipt1), line_dim(iaxis), cal_id, 
+c     .                                   line_t0(iaxis), units, line_units(iaxis),
+c     .                                   start, delta, line_tunit(iaxis), true_month)
+c
+c        IF (true_month) THEN
+c           line_regular(iaxis) = .TRUE.
+c           line_start  (iaxis) = start !* line_tunit(iaxis)/ un_convert(pun_day)
+c           line_delta  (iaxis) = delta
+c           line_subsc1 (iaxis) = unspecified_int4
+c           last_coord = line_start(iaxis) + DBLE(npts-1)*line_delta(iaxis)
+c           firs_coord = start
+c           line_unit_code (iaxis) = units
+c           line_tunit  (iaxis) = un_convert(units)
+c           got_edges = .FALSE.
+c           got_bnds  = .FALSE.
+c	ENDIF
+
 * Save the axis name (upper case) and memory storage.  For all irregular axes, 
 * we have saved N+1 edges for the axis cells. Increment the pointer.   
 
@@ -1241,16 +1248,22 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
               line_modulo(iaxis) = .TRUE.
               IF (line_modulo_len(iaxis).EQ.0.0D0)
      .                    line_modulo_len(iaxis) = 360.D0
-           ENDIF
+           ELSE
 
-	   IF (vartype.NE.ncdouble .AND. .NOT.line_modulo(iaxis) .AND. epsilon.NE.0.) THEN	      
-              IF (TM_FPEQ_EPS(epsilon, delta, 360.0) .OR. delta.LT.360.0) THEN
-                 line_modulo(iaxis) = .TRUE.
-                 IF (line_modulo_len(iaxis).EQ.0.0D0)
-     .                    line_modulo_len(iaxis) = 360.D0
-              ENDIF
+* Ticket 2504: Are the coordinates within a 360 deg but the bounds not?
+
+              IF (.NOT.line_regular(iaxis)) THEN
+	         IF (.NOT.got_bnds .AND. .NOT.got_edges .AND. 
+     .               line_mem(ipte) - line_mem(ipt1).LE.360.D0 ) THEN
+	            CALL TM_ADJUST_BOUNDS(iaxis, 360.0,
+     .                                    axwwlen, okmod)
+	            IF (okmod) THEN
+		       line_modulo(iaxis) = .TRUE.
+		       line_modulo_len(iaxis) = 360.D0
+		    ENDIF
+	         ENDIF
+	      ENDIF
            ENDIF
-
         ENDIF
 
 * if it is a calendar time axis and the first point is in year 0000 or 0001
@@ -1274,10 +1287,37 @@ c           secsperyear = cals_yeardays(cal_id)* 24*60*60
               line_modulo(iaxis) = .TRUE.
               IF (line_modulo_len(iaxis).EQ.0.0D0)
      .          line_modulo_len(iaxis) = secsperyear/line_tunit(iaxis)
+
+* Ticket 2504: Are the coordinates within a year but the bounds not?
+           ELSEIF (.NOT.line_regular(iaxis) .AND. .NOT.got_bnds .AND. .NOT.got_edges) THEN  
+	      delta = tmp8 - first
+              IF ( (secs2start .LE.  2*secsperyear)
+     .	           .AND. (delta*line_tunit(iaxis) .LE. secsperyear) ) THEN
+	         CALL TM_ADJUST_BOUNDS(iaxis, 
+     .                    secsperyear/line_tunit(iaxis), axwwlen, okmod)
+	         IF (okmod) THEN
+		    line_modulo(iaxis) = .TRUE.
+		    line_modulo_len(iaxis) = axwwlen
+	         ENDIF
+              ENDIF
            ENDIF
         ENDIF
 
 * sanity check the modulo length
+
+* Ticket 2504: If the coordinates lie within the modulo length but the auto-
+* generated midpoint bounds make the axis too long, reset them so the axis 
+* is the prescribed length. (may have been done for special cases above)
+
+	IF (line_modulo(iaxis) .AND. .NOT.got_bnds .AND. .NOT.got_edges) THEN
+	   CALL TM_ADJUST_BOUNDS(
+     .                   iaxis, line_modulo_len(iaxis), axwwlen, okmod)
+	   IF (.NOT.okmod ) THEN
+	      line_modulo(iaxis) = .FALSE.
+	      line_modulo_len(iaxis) = 0.
+	   ENDIF
+	ENDIF
+
 * a whisker too small is assumed a precision error
 * a whisker larger is assumed to be deliberate
 * ACM 1/08 
@@ -1288,10 +1328,11 @@ c           secsperyear = cals_yeardays(cal_id)* 24*60*60
 
 * Ticket 2172: If the axis is actually too long, reset the modulo flags
 * so it is treated as not modulo.
+* Ticket 1480, change the message; the modulo length is invalid if 
+* it's shorter than the axis.
 
         IF (line_modulo(iaxis).AND.line_modulo_len(iaxis).NE.0.D0) THEN
            IF (line_modulo_len(iaxis) .LT. axwwlen) THEN
-c             line_modulo_len(iaxis) = 0.0D0
              IF (is_double) THEN
                 ok = TM_DFPEQ(axwwlen, line_modulo_len(iaxis)) 
              ELSE
@@ -1304,7 +1345,7 @@ c             line_modulo_len(iaxis) = 0.0D0
 	        line_modulo_len(iaxis) = 0
 		line_modulo(iaxis) = .FALSE.
                 CALL TM_NOTE(
-     .          'Ignored modulo length exceeding axis length: '
+     .          'Ignored modulo length less than axis length: '
      .          //vname(:vlen), tt )
              ENDIF
            ENDIF
@@ -1329,8 +1370,26 @@ c	CALL TM_WARN_SUBSPAN (iaxis)
         status = merr_ok
         RETURN
 
+
+ 540	IF (misordered) THEN
+	    words(1) = TM_LEFINT(i1-ipt1+1, istat)
+	    IF (has_missing) THEN
+	       CALL TM_NOTE(
+     .           'Coordinates missing on axis '//
+     .           vname(:vlen)//' at subscript '//words(1), tt)
+	    ELSE
+	       CALL TM_NOTE(
+     .           'unrepairable repeated axis coords on axis '//
+     .           vname(:vlen)//' at subscript '//words(1), tt)
+	    ENDIF
+	    CALL TM_NOTE(
+     .           'A dummy axis of subscripts will be used', tt)
+	 ENDIF
+
 * 3/99-style "soft" error - invalid axis but CDF file need not be rejected
- 1000   CALL TM_DEALLO_DYN_LINE(iaxis)
+ 1000   CONTINUE
+
+	CALL TM_DEALLO_DYN_LINE(iaxis)
 
         iaxis = 0
         status = merr_ok
diff --git a/fmt/src/cd_get_1_dep_var.F b/fmt/src/cd_get_1_dep_var.F
index 15d974b..18477ac 100644
--- a/fmt/src/cd_get_1_dep_var.F
+++ b/fmt/src/cd_get_1_dep_var.F
@@ -276,7 +276,7 @@ c        ENDIF
 *
 * The CF standard says: 
 * The missing values of a variable with scale_factor and/or add_offset 
-* attributes (see section Section 8.1, �Packed Data�) are interpreted 
+* attributes (see section Section 8.1, Packed Data) are interpreted 
 * relative to the variable's external values, i.e., the values stored 
 * in the netCDF file. Applications that process variables that have 
 * attributes to indicate both a transformation (via a scale and/or 
diff --git a/fmt/src/cd_get_generic_grids.F b/fmt/src/cd_get_generic_grids.F
index 19ae5d4..957cc47 100644
--- a/fmt/src/cd_get_generic_grids.F
+++ b/fmt/src/cd_get_generic_grids.F
@@ -73,6 +73,8 @@
 * V697 11/15 *sh* return the line number of the native time axis of this dset
 * V697 12/15 *am* Fix the logic around checking the calendar attributes when 
 *                 grid has both T and F axes
+* V710 12/16 *am* If the dimension is not a coordinate variable don't try to 
+*                 check its calendar attribute
 
 * argument definitions:
 *       dset        - TMAP data set pointer
@@ -269,11 +271,15 @@
  150          IF (idim.LE.nferdims) tmplines(idim) = iaxis
 
               CALL CD_GET_VAR_ID (dset, name, axid, status)
-	      blen = 24
-              got_it = CD_GET_ATTRIB( cdfid, axid, 'calendar',
-     .                  do_warn, vname(:vlen), cal_str, attlen, blen )
-	      IF (got_it .AND. line_direction(iaxis)(1:1).EQ.'T') cal_t = cal_str
-	      IF (got_it .AND. line_direction(iaxis)(1:1).EQ.'F') cal_f = cal_str
+
+* Check the calendar attribute 
+	      IF (status .EQ. merr_ok) THEN 
+	         blen = 24
+                 got_it = CD_GET_ATTRIB( cdfid, axid, 'calendar',
+     .                  do_warn, name, cal_str, attlen, blen )
+	         IF (got_it .AND. line_direction(iaxis)(1:1).EQ.'T') cal_t = cal_str
+	         IF (got_it .AND. line_direction(iaxis)(1:1).EQ.'F') cal_f = cal_str
+	      ENDIF
 
  200       CONTINUE
 
diff --git a/fmt/src/cd_get_t0.F b/fmt/src/cd_get_t0.F
index d14176d..5755759 100644
--- a/fmt/src/cd_get_t0.F
+++ b/fmt/src/cd_get_t0.F
@@ -43,6 +43,7 @@
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 
 * V695+  10/15 *sh* new routine extracted from code in cd_get_1_axis
+* V698  4/16 *acm* new TM_UNITS_CAL to account for calendar in units id
 
 * argument definitions:
 *       filename (input)
@@ -68,8 +69,9 @@
         CHARACTER*(*) filename, units_string, calendar_string, t0_string
 
 * local variable declarations:
-        LOGICAL ok_cal, yyyymmdd_time
-        INTEGER TM_LENSTR1, TM_UNIT_ID, TM_GET_CALENDAR_ID, STR_UPCASE,
+        LOGICAL ok_cal, yyyymmdd_time, true_month
+        INTEGER TM_LENSTR1, TM_UNIT_ID, TM_UNITS_CAL, 
+     .           TM_GET_CALENDAR_ID, STR_UPCASE,
      .           flen, clen, slen, istat, since_T0
         CHARACTER cal_name*32, tunits*32, dbuf*3, buff*128
         REAL*8 TM_SECS_FROM_BC, 
@@ -151,7 +153,6 @@ c string as the units.  i.e., "days_since_event".
 
 * decode the units
         unit_code = TM_UNIT_ID( tunits )
-        IF ( unit_code.EQ.0 .AND. tunits .NE. ' ' ) GOTO 5100
 
 * Named calendar with unit=year gets length of year in that calendar.
       IF (unit_code .EQ. -6 .OR. unit_code .EQ. -10) THEN
@@ -168,6 +169,13 @@ c string as the units.  i.e., "days_since_event".
 	 IF (agg_cal_id .EQ. noleap) unit_code = -13
       ENDIF
 
+* Named calendar with unit=month or year gets length according to calendar's year length.
+
+        true_month = .FALSE. ! initialize
+	unit_code = TM_UNITS_CAL( unit_code, agg_cal_id, true_month )
+
+        IF ( unit_code.EQ.0 .AND. tunits .NE. ' ' ) GOTO 5100
+
 * successful completion
         status = merr_ok
         RETURN
diff --git a/fmt/src/tm_warn_subspan.F b/fmt/src/cd_get_time_units.F
similarity index 51%
copy from fmt/src/tm_warn_subspan.F
copy to fmt/src/cd_get_time_units.F
index f57e9c4..3d10337 100755
--- a/fmt/src/tm_warn_subspan.F
+++ b/fmt/src/cd_get_time_units.F
@@ -1,4 +1,6 @@
-	SUBROUTINE TM_WARN_SUBSPAN (iaxis)
+	SUBROUTINE CD_GET_TIME_UNITS (buff, cal_id, units_str, 
+     .			              t0_str, days_neg4713, status)
+
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -32,52 +34,67 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-* 5/2016 Ansley Manke
-* See ticket 1432.
-* Write a NOTE if an axis definition is a subspan modulo axis
-* but its length is within a grid cell of the full modulo length.
+* 2/2017 acm
+* Get the time units from a string 'since date', set units_str
+* and t0_str if the string is valid.
+* 
+* The return days_neg4713 is returned non-zero if the axis is from 
+* a Matlab-generatedfile with "Julian astronomical date".
+*
+* Code taken fron cd_get_1_axis.F, new routine for ticket 2246;
+* Drawing formatted time axes on a PLOT/VS plot.
 
         include 'tmap_dims.parm'
-#include "tmap_dset.parm"
-#include "gt_lib.parm"
-        include 'xio.cmn_text'
-        external xio_data
         include 'xtm_grid.cmn_text'
         external xgt_grid_data
+        include 'xunits.cmn_text'
+        external xunits_data
+#include "gt_lib.parm"
+        include 'calendar.decl'
+        include 'calendar.cmn'
 
-* argument declarations
-	INTEGER iaxis
+	CHARACTER*(*) buff, units_str, t0_str
+	INTEGER cal_id, status
+	REAL*8	days_neg4713
 
+	CHARACTER*3 dbuf
+	INTEGER	TM_LENSTR1, STR_UPCASE, since_T0, slen, istat
+	REAL*8	TM_SECS_FROM_BC, secs_to_1901, secs_to_1968, 
+     .		days_1901_may68 
+	
+* parameter declarations
+        REAL*8          psecs_per_day
+        PARAMETER     ( psecs_per_day = 60.*60.*24. )
 
-* local variable declarations:
-	LOGICAL	TM_ITS_SUBSPAN_MODULO
-	INTEGER TM_LENSTR1, alen, blen, vlen
-	REAL	TM_WW_AXLEN, axwwlen, delta
-	CHARACTER*16 TM_FMT, buff1, buff2
+	since_T0 = MAX( INDEX(buff,'since'), INDEX(buff,'SINCE') )
+	units_str = buff(:since_T0-1)  ! just the "tunits" part 
 
-	INTEGER tt  ! nice short name
-	EQUIVALENCE (tt,lunit_errors)
+	istat = STR_UPCASE( dbuf, buff(1:3) )
 
-	vlen = TM_LENSTR1(line_name(iaxis))
-        axwwlen = TM_WW_AXLEN(iaxis)
+	slen = TM_LENSTR1(buff)
 
-* get the nominal delta grid cell length for comparison
+	IF (buff(since_T0+6:since_T0+10) .EQ. '-4713' .AND.
+     .      dbuf .EQ. 'DAY')  THEN
+
+c  Matlab Julian date encoding
+c  This is the simple conversion; but we will reset the origin to 1901.
+c       buff = 'DAYS since 1968-05-23 00:00:00'
+c       days_neg4713 = 2440000.D0
+
+	   buff = 'DAYS since 1901-01-15 00:00:00'
+           secs_to_1901 = TM_SECS_FROM_BC 
+     .                        (GREGORIAN, 1901,1,15,0,0,0,status)
+           secs_to_1968 = TM_SECS_FROM_BC 
+     .                        (GREGORIAN, 1968,5,23,0,0,0,status)
+           days_1901_may68 = (secs_to_1968 - secs_to_1901)/
+     .                             psecs_per_day
+           days_neg4713 = 2440000.D0 - days_1901_may68
 
-	IF (line_delta(iaxis) .NE. unspecified_val8) THEN
-	   delta = line_delta(iaxis)
-	ELSE
-	   delta = line_mem(line_subsc1(iaxis)+1) - line_mem(line_subsc1(iaxis))
 	ENDIF
 
-        IF (line_modulo(iaxis) .AND. TM_ITS_SUBSPAN_MODULO(iaxis) .AND.
-     .	    (line_modulo_len(iaxis)-axwwlen) .LE. delta )  THEN
-           buff1 = TM_FMT( SNGL(axwwlen),7,32,alen )
-           buff2 = TM_FMT( SNGL(line_modulo_len(iaxis)),7,32,blen )
-           CALL TM_NOTE('Subspan modulo axis '//line_name(iaxis)(:vlen)//
-     .		'. Axis span = '//buff1(:alen)//
-     .		', modulo length = ' //buff2(:blen)//
-     .		'. Is this intended to be a full-span axis?', tt)
-        ENDIF
-	
+	CALL TM_DATE_REFORMAT(buff(since_T0+6:),pdate_numslashnum,
+     .                            cal_id, t0_str, 
+     .                            pdate_vax, .FALSE., status )
+
 	RETURN
 	END
diff --git a/fmt/src/cd_get_var_info.F b/fmt/src/cd_get_var_info.F
index 7359f6d..285abbc 100644
--- a/fmt/src/cd_get_var_info.F
+++ b/fmt/src/cd_get_var_info.F
@@ -80,7 +80,7 @@
       dset_num = dset
       cdfstat = NCF_INQ_VAR(dset_num, ivar, fhol, slen, vartype, 
      .            nvdims, nvatts, coordvar, outflag, rev)
-        IF (cdfstat .NE. pcd_ferr_ok) CALL WARN('ERROR in CD_GET_VAR_INFO')
+      IF (cdfstat .NE. pcd_ferr_ok) GOTO 5000  ! not found
       slen = MIN(slen, flen)
 
 * Return vname in original upper/lower case
@@ -97,10 +97,3 @@
 
 5000  RETURN
       END
-
-c   for (i=0; i <var_ptr->ndims ;i++ )
-c  {
-c	  ndx = var_ptr->ndims - i - 1; 
-c	  the_dim =  var_ptr->dims[i];
-c	  vdims[ var_ptr->ndims - i - 1] = the_dim + 1;
-c  }
diff --git a/fmt/src/cd_make_fmrc_axes.F b/fmt/src/cd_make_fmrc_axes.F
index b705f1b..3146845 100644
--- a/fmt/src/cd_make_fmrc_axes.F
+++ b/fmt/src/cd_make_fmrc_axes.F
@@ -42,6 +42,9 @@
 * V695+ *acm* and *sh*
 * V698 2/16 *sh* - if identical pre-existing axes exist, re-use them
 * V698 3/16 *sh* - F-lag axis starts at 1/2 avg_lag (low cell bound at zero) 
+* V698  4/16 *acm* new TM_UNITS_CAL to account for calendar in units id
+* V71 12/16 *acm* Ticket 2158: working with true monthly time axes. fmrc axis is 
+*                 not defined as true month.
 
 * include files
         include 'netcdf.inc'
@@ -60,8 +63,8 @@
         include 'xio.cmn_text'
         include 'xunits.cmn_text'
         external xunits_data
-        include 'calendar.decl'
-        include 'calendar.cmn'
+c        include 'calendar.decl'
+c        include 'calendar.cmn'
 
 * calling argument declarations
 	LOGICAL	has_edges
@@ -74,10 +77,11 @@
 	PARAMETER (bufflen = 256)
 	CHARACTER TM_STRING*13, buff*256, dbuf*3, vupcase*128, pCR*1
 
-	LOGICAL TM_DFPEQ_TOL, TM_FPEQ_EPS, NC_GET_ATTRIB, 
-     .		coordvar, got_it, do_warn, ok_cal, yyyymmdd_time, got_torg
+	LOGICAL TM_DFPEQ_TOL, TM_FPEQ_EPS, NC_GET_ATTRIB, ITSA_TRUEMONTH_AXIS,
+     .		coordvar, got_it, do_warn, ok_cal, yyyymmdd_time, got_torg,
+     .          true_month
 	INTEGER STR_UPCASE, TM_LENSTR1, TM_GET_CALENDAR_ID, TM_UNIT_ID,
-     .		TM_FIND_LIKE_DYN_LINE,
+     .		TM_UNITS_CAL, TM_FIND_LIKE_DYN_LINE, STR_SAME,
      .          i, l, n,  nvdim, vdims(8), nvatts, npts2d,
      .		npts_cdf, ipt1, ipte, iptn, iptnp1,
      .		outflag, next_line_storage, pre_exist,
@@ -103,6 +107,8 @@
 	ipt1 = next_line_mem_pos
 	ipte = ipt1 + npts - 1
 	npts2d = npts  ! save it
+      epsilon_23 =  2.**(-23) 
+      depsilon_46 =  2.**(-46) 
 
 *********  FIRST THE 1D CALENDAR TIME AXIS OF THE FMRC  *************
 * Define new axis
@@ -182,22 +188,16 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
 
       units = TM_UNIT_ID( line_units(axcalt) )
 
-* Named calendar with unit=year gets length of year in that calendar.
+* Named calendar with unit=month or year gets length according to calendar's year length.
 
-      IF (units .EQ. -6 .OR. units .EQ. -10) THEN
-         IF (cal_id .EQ. d360) units = -9
-         IF (cal_id .EQ. julian) units = -12
-	 IF (cal_id .EQ. noleap) units = -11
-	 IF (cal_id .EQ. all_leap) units = -8
+      true_month = ITSA_TRUEMONTH_AXIS(axcalt)
+      IF (true_month) THEN
+         true_month = .FALSE.
+	 units = pun_day
+	 line_units(axcalt) = un_name(units) ! make it days, NOT true-month
       ENDIF
 
-* Named calendar with unit=month gets length of month in that calendar.
-
-      IF (units .EQ. -5) THEN
-         IF (cal_id .EQ. d360) units = -14
-         IF (cal_id .EQ. julian) units = -15
-	 IF (cal_id .EQ. noleap) units = -13
-      ENDIF
+      units = TM_UNITS_CAL( units, cal_id, true_month )
 
       line_unit_code(axcalt) = units
       IF  ( units.EQ.0 .AND. line_units(axcalt) .NE. ' ' ) THEN
@@ -227,8 +227,10 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
 	avg_lag = (line_mem(ipt1+nT*(nF-1))-line_mem(ipt1))
      .	        / (nF-1)
 	t0NextForecast = line_mem(ipt1+nT)
+        depsilon = depsilon_46 * ABS(avg_lag)
 	DO nlag = 1, nT-1
-	   IF (line_mem(ipt1+nlag) .EQ. t0NextForecast) GOTO 200
+	   IF ( TM_DFPEQ_TOL(line_mem(ipt1+nlag), t0NextForecast, depsilon) )
+     *         GOTO 200
 	ENDDO
 	CALL TM_NOTE('Corrupted FMRC time array'//pCR//
      .		     'Time values dont match between forecasts', lunit_errors)
@@ -245,7 +247,8 @@ c           IF ( status .NE. merr_ok ) GOTO 1000        ! 3/99 soft error
 	   l = 0                   ! zero-based l index over input time axis
 	   IF (iptnp1 .LT. ipte) THEN
 *   .. copy early time step values from this forecast into 1D axis
- 	      DO WHILE (line_mem(iptn+l) .LT. line_mem(iptnp1))
+ 	      DO WHILE ( (line_mem(iptn+l) .LT. line_mem(iptnp1)) .AND.
+     *           .NOT. TM_DFPEQ_TOL(line_mem(iptn+l), line_mem(iptnp1), depsilon) )
 	         line_mem(ipt1+npts) = line_mem(iptn+l)
 	         IF (has_edges)  line_mem(ipt1+npts+npts2d) =
      .			         line_mem(iptn+l+npts2d)
diff --git a/fmt/src/cd_make_fmrc_fcal_axis.F b/fmt/src/cd_make_fmrc_fcal_axis.F
index 2461cdc..0522c63 100644
--- a/fmt/src/cd_make_fmrc_fcal_axis.F
+++ b/fmt/src/cd_make_fmrc_fcal_axis.F
@@ -39,6 +39,7 @@
 * patterning after time axis info in axcalt
 
 * V695+ *sh*
+* v698  *acm* 4/16 remove unused function declarations
 
 * include files
         include 'netcdf.inc'
@@ -70,15 +71,14 @@
 
 	LOGICAL TM_DFPEQ_TOL, TM_FPEQ_EPS, NC_GET_ATTRIB, 
      .		coordvar, got_it, do_warn, ok_cal, yyyymmdd_time, got_torg
-	INTEGER STR_UPCASE, TM_LENSTR1, TM_GET_CALENDAR_ID, TM_UNIT_ID,
-     .		TM_FIND_LIKE_DYN_LINE,
+	INTEGER STR_UPCASE, TM_LENSTR1, TM_FIND_LIKE_DYN_LINE,
      .          i, l, n,  nvdim, vdims(8), nvatts, 
      .		npts_cdf, ipt1, ipte, iptn, iptnp1,
      .		outflag, next_line_storage, pre_exist,
      .		start(nferdims),count(nferdims), zero(nferdims),
      .          maxlen, attlen, attoutflag, cal_id, since_T0, slen, vlen, 
      .          units, istat, nlag, noverlap, nleadtimes
-	REAL val, epsilon_23, t0NextForecast
+	REAL val, t0NextForecast
 	REAL*8 depsilon_46, depsilon, dlast_coord, dfirs_coord,
      .       dfirst_delta, ddelta, avg_lag
 
@@ -89,6 +89,7 @@
 * initialize things
 	ipt1 = next_line_mem_pos
 	ipte = ipt1 + nF - 1
+      depsilon_46 =  2.**(-46) 
 
 * from cd_get_1_axis.
 * check for regular spacing according to the data type of incoming data.
diff --git a/fmt/src/cd_make_var.F b/fmt/src/cd_make_var.F
index e74bacb..13e4cc9 100644
--- a/fmt/src/cd_make_var.F
+++ b/fmt/src/cd_make_var.F
@@ -93,6 +93,8 @@
 * V698  4/16 *acm* Fix ticket 2241: If file has dimension but not a coordinate 
 *                  variable, do not write the coordinate variable, ONLY IF writing 
 *                  the full-span in that direction.
+* V710  9/16 *acm* Ticket 2459: If axis is already in the file with a different
+*                  direction write axis with a unique name for this direction.
 
 * argument definitions:
 *     cdfid   - netCDF id number for already opened CDF file
@@ -148,7 +150,7 @@
      .        dimid(8), iaxis, cdfstat, dims, idim, varid, vartyp,
      .        nvdims, vdims(8), nvatts, nlen, glen, vlen, ax_type,
      .        lo2(nferdims), hi2(nferdims), what_recdim, strdim, dimsize,
-     .        chunk_set
+     .        chunk_set, duplines, jaxis, ii
       REAL    val
 * *kob*  - change lengths of CD_CHILDAX_NAME, CD_AXIS_NAME, lname,
 *          cdfname, vname and gname to 64 from 24
@@ -315,7 +317,19 @@
         dims = 0
       ENDIF 
 
-* get axis name. If mode upcase_output is set, then upcase the name.
+* Are there grid lines duplicated in the grid (see tiket 2459 for an example)
+      duplines = 0
+      DO 280 idim = 1, nferdims
+         iaxis = grid_line(idim,grid)
+	 IF (iaxis.NE.int4_init .AND. iaxis.GT.0) THEN
+	    DO ii = 1, nferdims 
+	       jaxis = grid_line(ii,grid)
+	       IF (ii.NE.idim .AND. jaxis.EQ.iaxis) duplines = duplines+1
+	    ENDDO
+	 ENDIF
+  280 CONTINUE
+
+* get axis name. If mode upcase_output is set, then upcase the name
 
       DO 300 idim = 1, nferdims
          iaxis = grid_line(idim,grid)
@@ -336,6 +350,8 @@
                lname = buff
             ENDIF
          ENDIF
+
+	 CALL CD_AXNAME_TO_WRITE (cdfid, idim, lname, nlen, cdfstat)
 	 
 c	 IF (dim_only(idim)) THEN 
 c	    buff = CD_AXIS_OUTNAME(dset, grid, idim, nlen)
diff --git a/fmt/src/cd_quik_ncopen.F b/fmt/src/cd_quik_ncopen.F
index 62756a0..dd04afd 100644
--- a/fmt/src/cd_quik_ncopen.F
+++ b/fmt/src/cd_quik_ncopen.F
@@ -43,6 +43,7 @@
 * NOAA/PMEL, Seattle, WA - Thermal Modeling and Analysis Program
 
 * V695+ 10/15 *sh*
+* V71  *acm* 1/17 Ticket 2493 Fix to the piece of this that checks bounds attribute.
 
 *
 * arguments:
@@ -69,12 +70,13 @@
 	INTEGER   dset, cdfid, vid, bounds_id, n, status
 
 * Local variable declarations
-	LOGICAL	coordvar, got_it
-	INTEGER	TM_LENSTR1, CD_GET_ATTRIB,
+	LOGICAL	CD_GET_ATTRIB, coordvar, got_it
+	INTEGER	TM_LENSTR1, 
      .		vlen, vartyp, nvdim, vdims(8), nvatts, all_outflag,
-     .		maxlen, attlen, tmap_status, cdfstat, blen, dlen, elen
+     .		maxlen, attlen, tmap_status, cdfstat, blen, 
+     .		dlen, elen, nb
 	CHARACTER*2048   TM_INQ_PATH
-	CHARACTER	varname*128, buff*128, errmsg*80
+	CHARACTER	varname*128, buff*128, errmsg*80, dummy*20
 	REAL vals  ! potential numerical attributes
 
 
@@ -159,15 +161,32 @@
 	IF (.NOT.got_it) THEN
 	   bounds_id = unspecified_int4
 	ELSE
-!	   blen = TM_LENSTR1(buff)
+
 * ... check the bounds variable, issue any warnings.
-!           CALL TM_CHECK_BNDS_ATTRIB (dset, n, vname, vlen, buff(:blen),
-          CALL TM_CHECK_BNDS_ATTRIB (dset, n, vname, vlen, buff(:attlen),
-     .                             bounds_id, tmap_status)
-           IF (tmap_status .EQ. pcdferr) GO TO 5200
-           IF (tmap_status .NE. merr_ok) THEN
+
+* If bounds attribute but no bounds variable, just continue. Otherwise check the size
+
+#ifdef usingDODSf2cUnderscore
+           cdfstat = NF_INQ_VARID_(cdfid, buff(:attlen), bounds_id)	   
+	   IF ( cdfstat .NE. NF_NOERR) THEN
+	      bounds_id = unspecified_int4    ! invalidate the bounds variable
+	   ELSE
+              cdfstat = NF_INQ_VAR_(cdfid, bounds_id, buff, vartyp, nvdim, 
+     .              vdims, nvatts)
+              cdfstat = NF_INQ_DIM_( cdfid, vdims(2), dummy, nb )
+	   ENDIF
+#else
+
+           cdfstat = NF_INQ_VARID(cdfid, buff(:attlen), bounds_id)	   
+	   IF ( cdfstat .NE. NF_NOERR) THEN
 	      bounds_id = unspecified_int4    ! invalidate the bounds variable
+	   ELSE
+              cdfstat = NF_INQ_VAR(cdfid, bounds_id, buff, vartyp, nvdim, 
+     .              vdims, nvatts)
+              cdfstat = NF_INQ_DIM( cdfid, vdims(2), dummy, nb )
 	   ENDIF
+#endif
+
 	ENDIF
 
 * get the units attribute if it exists
diff --git a/fmt/src/cd_scan_vars.F b/fmt/src/cd_scan_vars.F
index 9ecf6ed..bf0b4a2 100644
--- a/fmt/src/cd_scan_vars.F
+++ b/fmt/src/cd_scan_vars.F
@@ -138,9 +138,9 @@
      .        TM_LEGAL_NAME, MATCH_NAME,
      .        got_it, got_bad, its_epic, 
      .        got_a_variable, failed_axis, 
-     .        coordvar
+     .        coordvar, has_gdef
       INTEGER STR_UPCASE, STR_CASE_BLIND_COMPARE, TM_LENSTR1, 
-     .        TM_LENSTR, NCF_INQ_DS, 
+     .        TM_LENSTR, NCF_INQ_DS, STR_SAME,
      .        nvars,  ndims, ngatts, recdim, 
      .        cdfstat, las_pos, first_pos, iaxis,
      .        ivcd, ivtm, vartyp, nvdim, vdims(8), nvatts, i, vlen,
@@ -214,11 +214,21 @@
            global_bad = -1.E34    ! default for FERRET
         ENDIF
 
-* See fi there is a global attribute missing_value in the file
+* See if there is a grid_definition dimension in the file
+* If so will skip true-monthly axis computation in get-axis step.
+
+	DO i = 1, ndims
+           CALL CD_GET_DS_DIMS (dset, i, aname, npts, status)
+	   has_gdef = (STR_SAME(aname, 'grid_definition') .EQ. 0) 
+	   IF (has_gdef) EXIT  ! from loop
+	ENDDO
+
+* See if there is a global attribute missing_value in the file
 
         IF (ngatts .GT. 0) THEN
            CALL CD_GET_VAR_ID (dset, '.', varid, status)
 
+
 * loop through global attributes looking for missing-value attrib
            DO 20 iatt = 1, ngatts
 
@@ -395,7 +405,7 @@
 * PROCESS AN AXIS	   
  100        CALL CD_GET_1_AXIS(dset, cdfid, ivcd, iaxis,
      .                         its_EPIC, reversed, tregular, use_strict, 
-     .                         bad_bndsid, status)
+     .                         bad_bndsid, has_gdef, status)
            IF ( status .NE. merr_ok ) GOTO 5900
 
 * invalid bounds or edges found. Make the bounds a dependent variable
diff --git a/fmt/src/cd_write_axis.F b/fmt/src/cd_write_axis.F
index ac847b9..0097332 100644
--- a/fmt/src/cd_write_axis.F
+++ b/fmt/src/cd_write_axis.F
@@ -111,14 +111,21 @@
 *                 1-D coordinate var, don't write the axis Ferret creates
 * V697 12/15 *acm* Fix ticket 2336: consistent application of CAN MODE UPCASE
 * V698  2/16 *acm* Check status of queries before continuing
-*                  variable, do notwrite the coordinate variable, ONLY IF writing 
-*                  the full-span in that direction.
 * V698  4/16 *acm* Fix ticket 2241: If file has dimension but not a coordinate 
 *                  variable, do not write the coordinate variable, ONLY IF writing 
 *                  the full-span in that direction.
 *  V698  4/16 *acm* When checking for dimension-only, this applies to file axes only.
 *  V698  5/16 *acm* Fix ticket 2415: write attributes using the requested data type
 *                   Routine CD_WRITE_ATTVAL_DP converts to the specified type.
+* V698  4/16 *acm* Account for the calendar inside TM_UNIT_ID
+* V701  7/16 *kms* Compare ds_name to char_init2048 instead of char_init1024
+* V710  9/16 *acm* Ticket 2459: If axis is already in the file with a different
+*                  direction write axis with a unique name for this direction.
+*                  Use ww_dim_name from xtext_info.cmn
+* V71  3/16 *acm* Ticket 2158: working with true monthly time axes. Write these axes
+*                  as irregularly spaced daily axes.
+* 1/26/2017 *acm* Ticket 1480. Do not write a modulo attribute if the requested 
+*                 region is largerthan the length of the modulo axis.
 
 * argument definitions:
 *     dset    - dset (if netcdf file, for getting name and attribute 
@@ -145,14 +152,16 @@
         include 'xtm_grid.cmn_text'
         external xgt_grid_data
         include 'xunits.cmn_text'
+	include 'calendar.decl'
+	include 'calendar.cmn'	
 	include 'xio.cmn_text'
         external xio_data
+	include 'xtext_info.cmn'  ! with ww_dim_name
 
 ! Declare netcdf function names. 
 ! The ones without trailing underscore are declared in netcdf.inc
 #include "netcdf_declareUnderscore.inc"
 
-
 * argument declarations
       LOGICAL recdim, mode_upcase_output, name_from_grid
       INTEGER cdfid, dset, grid, idim, loss, hiss, ax_type, 
@@ -162,17 +171,20 @@
 * *kob* explicit definitions not allowed on decl line in linux...
 *       moved it to parameter line 10/96
       LOGICAL TM_ABSTRACT_AXIS, TM_DATE_OK, MATCH_NAME, NC_GET_ATTRIB,
+     .       ITSA_TRUEMONTH_AXIS,
      .       abstract, do_warn, got_modulo, got_calendar, got_units, 
      .       got_positive, got_spacing, got_axis, got_cartesian, got_it,
-     .       coordvar, do_off, do_scale, dim_only
+     .       coordvar, do_off, do_scale, dim_only, true_month, is_regular,
+     .       write_mod
       PARAMETER (do_warn = .TRUE. )
-      INTEGER TM_LENSTR1, CD_AXLEN, STR_SAME, STR_DNCASE,
+      INTEGER TM_LENSTR1, CD_AXLEN, STR_SAME, STR_DNCASE, TM_LENSTR,
      .        dimid, iaxis, axid, cdfstat, lo, hi,
      .        nlen, elen, axlen, slen, edgid, bndid, npts, dim2d(2)
-      INTEGER TM_GET_CALENDAR_ID, CD_WRITE_BNDSDIM, cal_id, varid,
-     .        llen, vartype, nvdims, nvatts, iatt, attype, attlen,
-     .        attoutflag, istat, maxlen, vdims(8), newid, all_outflag,
-     .        attid, dset_num, outtype, axis_packed, dlen, vlen, iset
+      INTEGER TM_GET_CALENDAR_ID, CD_WRITE_BNDSDIM, TM_UNIT_ID, TM_UNITS_CAL,
+     .        cal_id, varid, llen, vartype, nvdims, nvatts, iatt, 
+     .        attype, attlen,attoutflag, istat, maxlen, vdims(8), 
+     .        newid, all_outflag, attid, dset_num, outtype, axis_packed, 
+     .        dlen, vlen, iset
       REAL vals(100)
 
 !      LOGICAL condensed
@@ -184,7 +196,8 @@
      .       TM_FMT*12,
      .       name*128, name_in*128, units*48, datebuff*40, 
      .       buff*140, buff2*140, attname*128, dimstr*12, varstr*12, 
-     .       name_bnds*140
+     .       name_bnds*140, axis_dir*1
+
 
 !      REAL*8 val8_cdf, val8_tmap
 * 12/97
@@ -195,6 +208,17 @@
       iaxis = grid_line(idim, grid)
       dset_num = dset
       dim_only = .FALSE.
+      true_month = ITSA_TRUEMONTH_AXIS(iaxis)
+      is_regular = line_regular(iaxis) .AND. .NOT.true_month 
+      cal_id = 1
+
+      IF (true_month) THEN
+         cal_id = TM_GET_CALENDAR_ID ( line_cal_name(iaxis) )
+         IF (cal_id .NE. d360) THEN
+            is_regular = .FALSE.
+            do_bounds = 1
+         ENDIF
+      ENDIF
 
       IF (.NOT.mode_upcase_output) keepax_flag = 1
 
@@ -210,7 +234,7 @@
       IF (dset .LE. 0) THEN
          buff2  = name
          DO 50 iset = 1, maxdsets
-	    IF (ds_name(iset) .NE. char_init1024) THEN
+	    IF (ds_name(iset) .NE. char_init2048) THEN
 	       CALL CD_GET_VAR_ID (iset, buff2, varid, status)
 	       IF (status .EQ. merr_ok) THEN
 	          dset_num = iset
@@ -221,6 +245,8 @@
    60 	CONTINUE
       ENDIF
 
+      buff2 = ' '
+
       npts = line_dim(iaxis)
       abstract = TM_ABSTRACT_AXIS( iaxis )
 
@@ -282,6 +308,12 @@
       cdfstat = NF_INQ_DIMID( cdfid, name(:nlen), dimid)
 #endif
 
+* ... check the axis attribute for direction. If the name has already
+*     been used writing a different dimension, write this axis with a new name.
+
+      IF ( cdfstat .EQ. NF_NOERR .AND. TM_LENSTR(name) .GT. 0) 
+     .   CALL CD_AXNAME_TO_WRITE (cdfid, idim, name, nlen, cdfstat)
+
 * already defined ? (limited consistency checking)
       IF ( cdfstat .EQ. NF_NOERR ) THEN
 
@@ -305,7 +337,7 @@
 * use the basic name straight from the grid
                   name = line_name(iaxis)
                   nlen = TM_LENSTR1( name )
-		        name_in = name   ! ??
+                  name_in = name   ! ??
 
 * If mode upcase_output is set, then upcase name
 
@@ -458,6 +490,8 @@
       got_spacing = .FALSE.
       got_axis = .FALSE.
       got_cartesian = .FALSE.
+      
+      write_mod = .TRUE.
 
 ! get whatever attributes are available in the linked-list structure.
 ! use the name of the parent axis.
@@ -498,7 +532,7 @@
 * If the user has not asked for bounds and if its a regular axis then
 *  do not write bounds attribute. (The bounds themselves arent written.)
             IF ( (STR_SAME(attname, 'bounds') .EQ. 0) .AND. 
-     .        ((line_regular(iaxis)) .AND. do_bounds.LE.0) ) 
+     .           (is_regular .AND. do_bounds.LE.0) ) 
      .               attoutflag = 0
 
 * If they asked for /NOBOUNDS, dont write bounds even if the axis is irregular.
@@ -517,6 +551,17 @@
 
             IF ( MATCH_NAME (attname,  TM_LENSTR1(attname), 
      .           'MODULO', 6) ) THEN
+
+* Ticket 1480. For a modulo axis, if the requested region is longer than the 
+* axis length, do not write the modulo attribute. Issue a note.
+
+	       IF (hiss - loss .GE. line_dim(iaxis)) THEN
+                  CALL WARN ('Requested region on modulo axis '//name(:nlen)//
+     .               ' is larger than modulo length. Modulo attribute not written.')
+                  attoutflag = 0
+		  write_mod = .FALSE.
+	       ENDIF
+
                IF (attype .NE. NF_CHAR .AND. vals(1) .EQ. 0.) THEN
 ! Write line_modulo_len 
                   vals(1) = line_modulo_len(iaxis)
@@ -528,16 +573,18 @@
      .           MATCH_NAME (attname,  TM_LENSTR1(attname), 
      .           'POINT_SPACING', 13) ) THEN
                got_spacing = .TRUE.
+	       IF (true_month) buff = 'uneven' 
             ELSE
                IF (attype .EQ. NF_CHAR .AND. attoutflag .EQ. 1) THEN
 		  IF (MATCH_NAME (attname,  5, 'UNITS', 5) ) THEN
                      buff2 = buff
                      status = STR_DNCASE(buff, buff2)
+
 		  ENDIF
                   llen = TM_LENSTR1(buff)
                   CALL CD_WRITE_ATTRIB (cdfid, name(:nlen), attname,
      .                               buff(:llen), .FALSE., status )
-               ELSE IF (attoutflag .EQ. 1) THEN
+	       ELSE IF (attoutflag .EQ. 1) THEN
                   CALL CD_WRITE_ATTVAL_DP(cdfid, name(:nlen), attname,
      .                                 vals, attlen, attype, status )
                ENDIF
@@ -592,8 +639,19 @@
 	    units = 'degrees_north'
 	ELSEIF ( line_direction(iaxis) .EQ. 'TI'
      . .AND. TM_DATE_OK( line_T0(iaxis),cal_id )    ) THEN
-            slen = TM_LENSTR1( line_units(iaxis) )
-	    units = line_units(iaxis)(:slen)//' since '
+            buff = line_units(iaxis)
+	    slen = TM_LENSTR1( buff )
+	    units = buff(:slen)//' since '
+
+* get original units. If a user-defined true-month axis, will write in units of days.
+	    IF (true_month) THEN  
+	       IF (buff2(1:8).EQ.'TRUMONTH' .OR. 
+     .             TM_LENSTR1(buff2).LE.1) buff2 = 'days'
+	       slen = INDEX(buff2, ' since') - 1
+	       IF (slen .LE. 0) slen = TM_LENSTR1 (buff2)
+	       units = buff2(:slen)//' since'
+	    ENDIF
+
             IF (line_shift_origin(iaxis)) THEN
                datebuff = '01-JAN-0001 00:00:00'
             ELSE
@@ -602,7 +660,6 @@
             CALL TM_DATE_REFORMAT(datebuff,pdate_vax,cal_id,
      .				  units(slen+8:),pdate_numslashnum,
      .				  .TRUE., status )
-	    IF ( status .NE. merr_ok ) GOTO 5900
 
             buff2 = units
             status = STR_DNCASE(units, buff2)
@@ -688,6 +745,8 @@
         ENDIF
       ENDIF
 
+* Ticket 1480. For a modulo axis, if the requested region is longer than the 
+* axis length, do not write the modulo attribute. 
 
       IF ( line_modulo(iaxis) .AND. (.NOT.got_modulo) ) THEN
 	 IF (line_modulo_len(iaxis) .EQ. 0.0D0 ) THEN
@@ -699,7 +758,7 @@
            ELSE
               attoutflag = 1
            ENDIF
-           IF (attoutflag .EQ. 1)
+           IF (attoutflag .EQ. 1 .AND. write_mod)
 #ifdef usingDODSf2cUnderscore 
      .       cdfstat = NF_PUT_ATT_TEXT_( cdfid, axid, attname,
      .        	       1, ' ' )
@@ -716,7 +775,7 @@
            ELSE
               attoutflag = 1
            ENDIF
-           IF (attoutflag .EQ. 1) 
+           IF (attoutflag .EQ. 1 .AND. write_mod) 
 #ifdef usingDODSf2cUnderscore
      .      cdfstat = NF_PUT_ATT_DOUBLE_( cdfid, axid, attname,
      .        	       outtype, 1, line_modulo_len(iaxis) )
@@ -726,7 +785,7 @@
 #endif
 	 ENDIF
 
-! Check if user want to write modulo=false to the file
+* Check if user wants to write modulo=false to the file
       ELSE IF (got_modulo .AND. (varid .GT. 0) .AND.
      .         .NOT.line_modulo(iaxis)  ) THEN 
             attname = 'modulo'
@@ -778,7 +837,7 @@
          CONTINUE
       ELSE
         IF (.NOT. got_spacing) THEN
-        IF ( line_regular(iaxis) ) THEN
+        IF ( is_regular ) THEN
            attname = 'point_spacing' 
            IF (varid .GT. 0) THEN
               CALL CD_GET_VAR_ATT_ID(dset_num, varid, attname, attid,status)
@@ -844,45 +903,11 @@
            ENDIF
             
 #ifdef usingDODSf2cUnderscore
-          IF (idim .eq. x_dim) THEN
-             IF (attoutflag .EQ. 1) cdfstat = NF_PUT_ATT_TEXT_
-     .        	     ( cdfid, axid, attname, 1, 'X' )
-          ELSE IF (idim .eq. y_dim) THEN
-             IF (attoutflag .EQ. 1) cdfstat = NF_PUT_ATT_TEXT_
-     .        	     ( cdfid, axid, attname, 1, 'Y' )
-          ELSE IF (idim .eq. z_dim) THEN
-             IF (attoutflag .EQ. 1) cdfstat = NF_PUT_ATT_TEXT_
-     .        	     ( cdfid, axid, attname, 1, 'Z' )
-          ELSE IF (idim .eq. t_dim) THEN
-             IF (attoutflag .EQ. 1) cdfstat = NF_PUT_ATT_TEXT_
-     .        	     ( cdfid, axid, attname, 1, 'T' )
-          ELSE IF (idim .eq. e_dim) THEN
-             IF (attoutflag .EQ. 1) cdfstat = NF_PUT_ATT_TEXT_
-     .        	     ( cdfid, axid, attname, 1, 'E' )
-          ELSE IF (idim .eq. f_dim) THEN
-             IF (attoutflag .EQ. 1) cdfstat = NF_PUT_ATT_TEXT_
-     .        	     ( cdfid, axid, attname, 1, 'F' )
-          ENDIF
+          IF (attoutflag .EQ. 1) cdfstat = NF_PUT_ATT_TEXT_
+     .        	     ( cdfid, axid, attname, 1, ww_dim_name(idim) )     
 #else
-          IF (idim .eq. x_dim) THEN
-             IF (attoutflag .EQ. 1) cdfstat = NF_PUT_ATT_TEXT
-     .        	     ( cdfid, axid, attname, 1, 'X' )
-          ELSE IF (idim .eq. y_dim) THEN
-             IF (attoutflag .EQ. 1) cdfstat = NF_PUT_ATT_TEXT
-     .        	     ( cdfid, axid, attname, 1, 'Y' )
-          ELSE IF (idim .eq. z_dim) THEN
-             IF (attoutflag .EQ. 1) cdfstat = NF_PUT_ATT_TEXT
-     .        	     ( cdfid, axid, attname, 1, 'Z' )
-          ELSE IF (idim .eq. t_dim) THEN
-             IF (attoutflag .EQ. 1) cdfstat = NF_PUT_ATT_TEXT
-     .        	     ( cdfid, axid, attname, 1, 'T' )
-          ELSE IF (idim .eq. e_dim) THEN
-             IF (attoutflag .EQ. 1) cdfstat = NF_PUT_ATT_TEXT
-     .        	     ( cdfid, axid, attname, 1, 'E' )
-          ELSE IF (idim .eq. f_dim) THEN
-             IF (attoutflag .EQ. 1) cdfstat = NF_PUT_ATT_TEXT
-     .        	     ( cdfid, axid, attname, 1, 'F' )
-          ENDIF
+          IF (attoutflag .EQ. 1) cdfstat = NF_PUT_ATT_TEXT
+     .        	     ( cdfid, axid, attname, 1, ww_dim_name(idim) )
 #endif
        ENDIF
 
@@ -973,7 +998,7 @@
       IF (do_bounds .EQ. -1) attoutflag = 2
 
       IF (  (ax_type.EQ.pcdf_full_span .OR. ax_type.EQ.pcdf_sub_span)
-     .  .AND. ( .NOT.line_regular(iaxis) .OR. do_bounds.EQ.1) 
+     .  .AND. ( .NOT.is_regular .OR. do_bounds.EQ.1) 
      .  .AND. ( edges_flag .EQ. 0) 
      .  .AND. ( attoutflag .NE. 2) ) THEN
 
@@ -1050,7 +1075,7 @@
       IF (  (ax_type.EQ.pcdf_full_span .OR. ax_type.EQ.pcdf_sub_span)
      . .AND. ((edges_flag.EQ.1) .OR.
      .        (edges_flag.EQ.2 .AND.
-     .         .NOT.line_regular(iaxis) .AND. 
+     .         .NOT.is_regular .AND. 
      .         .NOT.recdim)) ) THEN
 
          name = name(:nlen)//'edges'
diff --git a/fmt/src/cd_write_grid.F b/fmt/src/cd_write_grid.F
index fe076bf..06cef1a 100644
--- a/fmt/src/cd_write_grid.F
+++ b/fmt/src/cd_write_grid.F
@@ -69,6 +69,7 @@
 *                 the user has said /KEEP_AXISNAMES
 * V69+ 4/14 *acm* After the above fix, need a tweak to be able to append to files having 
 *                 dimensions that are not coordinate variables
+* V710 9/16 *acm* Use ww_dim_name from xtext_info.cmn
 
 * argument definitions:
 *     cdfid   - netCDF id number for already opened CDF file
@@ -89,6 +90,7 @@
         include 'cd_lib.parm'
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
+	include 'xtext_info.cmn'  ! with ww_dim_name
 
 ! Declare netcdf function names. 
 ! The ones without trailing underscore are declared in netcdf.inc
@@ -106,8 +108,6 @@
      .        defid, defdim, nlen, slen, cdfstat, iaxis, idim, glen, i
       CHARACTER CD_CHILDAX_NAME*132, CD_AXIS_OUTNAME*132, CD_AXIS_NAME*132,
      .		names*132, lname*132
-      CHARACTER*1 ww_dim_name(nferdims)
-      DATA ww_dim_name/'X', 'Y', 'Z', 'T', 'E', 'F'/
 
 * are the axes, alone, enough of a grid definition
       IF ( .NOT.itsa_slab ) GOTO 100
diff --git a/fmt/src/cd_write_var.F b/fmt/src/cd_write_var.F
index 46a7608..36cc998 100644
--- a/fmt/src/cd_write_var.F
+++ b/fmt/src/cd_write_var.F
@@ -1,4 +1,4 @@
-	SUBROUTINE CD_WRITE_VAR ( memory, cdfid, dset, vname, grid, lo,
+	SUBROUTINE CD_WRITE_VAR ( cdfid, dset, vname, grid, lo,
      .                            hi, dat, edges_flag, do_bounds, 
      .                            mode_upcase_output, 
      .                            keepax_flag, status )
@@ -79,6 +79,12 @@
 * V69+ *acm*  9/14 Ticket 1758. Memory request uses number of blocks not words
 * V694 *acm*  3/15 Ticket 2240. Get scale, offset, and bad per variable from the dataset 
 *                  being written.
+* V71 12/16 *acm* Ticket 2158: working with true monthly time axes. Write these axes
+*                  as irregularly spaced daily axes. For true-month axes, call TM_WORLD 
+*                  to write any true-month time coordinates as days.
+* V702 1/17 *sh* for trac enhancement #2369 -- dynamic memory management 
+*	         including bug fix in computation of npts, work mem size
+*                also: bug fix of unitialized "count" variable
 
 * argument definitions:
 *     cdfid   - netCDF id number for already opened CDF file
@@ -101,6 +107,7 @@
         include 'xvariables.cmn'
 	include 'xdset_info.cmn_text'
 	external xdset_info_data
+        include 'xunits.cmn_text'
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
 
@@ -114,26 +121,27 @@
      .        edges_flag, do_bounds, keepax_flag, status
       CHARACTER*(*) vname
       REAL dat(*)
-      REAL memory( mem_blk_size, max_mem_blks )
 
 * local variable declarations:
 * *kob* explicit definitions not allowed on decl line in linux...
 *       moved it to parameter line 10/96
       INTEGER TM_LENSTR1, STR_SAME,
      .        start(nferdims), count(nferdims), idim, iaxis, cdfstat, vlen,
-     .        slab_min(nferdims), slab_max(nferdims), tmrecax, cdrecax, dims, varid,
+     .        slab_min(nferdims), slab_max(nferdims), tmrecax, cdrecax,
+     .	      dims, varid, wrkspc,
      .        hilim, i100, i, j, k, l, m, n, recaxvar, lorec, hirec, rectyp,
      .	      vartyp, nvdim, vdims(8), nvatts, bndstart(2), bndcount(2),
-     .        mblk1, nblks, npts, savecount, llen, grid_blocks
-      LOGICAL CD_GET_BOUNDS, TM_ABSTRACT_AXIS, TM_DFPEQ, CD_GET_ATTVAL,
-     .        got_it, scaled, writebounds, do_warn
-      CHARACTER*13 TM_STRING
+     .        mblk1, nblks, npts, savecount, llen, grid_blocks, wunits
+      INTEGER*8 rqst_size
+      LOGICAL CD_GET_BOUNDS, TM_ABSTRACT_AXIS, TM_DFPEQ, CD_GET_ATTVAL, 
+     .        MATCH_NAME, ITSA_TRUEMONTH_AXIS,
+     .        got_it, scaled, writebounds, do_warn, true_month
+	      CHARACTER*13 TM_STRING
       CHARACTER*1  dimnam(nferdims)
       DATA  	   dimnam/'I','J','K','L','M','N'/
       CHARACTER*128 vbuff     ! needed because of fussy f772.1 DEC compiler
-      REAL   r_scale, r_offset, scaled_bad
-      
-      REAL   bad
+      REAL   bad, r_scale, r_offset, scaled_bad, secspmon, secs_p_unit, 
+     .       unit_p_mon
       REAL*8 scalefac, addoff
       REAL*8 r100_8(200)
       REAL*8 TM_WORLD
@@ -153,6 +161,9 @@ c      EQUIVALENCE (r100_8, r100_4)
 * initialize
       vlen = TM_LENSTR1( vname )
       writebounds = do_bounds .GT. 0
+      DO idim = 1, nferdims
+         count(idim) = 0
+      ENDDO
 
 * get the variable id
 #ifdef usingDODSf2cUnderscore
@@ -343,38 +354,50 @@ c      EQUIVALENCE (r100_8, r100_4)
 * Write a time-step slab containing missing data
             npts = 1
             DO 220  idim = 1, nferdims
-               IF ( idim .EQ. tmrecax ) GOTO 220
+! *sh* commented out 1/17 -- why was this line ever here?
+! npts is udes to compute the work memory size.  Excluding recdim is
+! inconsistent with the loop a few lines below where the work memory is filled
+!               IF ( idim .EQ. tmrecax ) GOTO 220
                IF ( count(idim) .GT. 0 ) npts = npts* count(idim)
  220        CONTINUE
 
 * allocate memory for missing-data
+! Note: This code belongs in the Ferret libraries, rather than
+!       in the TMAP libs, as it calls upon Ferret COMMON and memory mgmt
 
+!DYNMEM_FIXME
 * COMPUTE # BLOCKS NEEDED
-            grid_blocks = ( npts*4 + mem_blk_size - 1 ) / mem_blk_size
+!            grid_blocks = ( npts*4 + mem_blk_size - 1 ) / mem_blk_size
+!
+!            CALL GET_MEMORY( npts*4, grid_blocks, mblk1, nblks, status )
+!            IF ( status .NE. merr_ok ) GOTO 5900
 
-            CALL GET_MEMORY( npts*4, grid_blocks, mblk1, nblks, status )
-            IF ( status .NE. merr_ok ) GOTO 5900
+	    wrkspc = 4  ! arbitrarily slot 4 of Ferret tempry work storage
+            rqst_size = npts * 4
+	    CALL GET_WS_DYNMEM( rqst_size, wrkspc, status )
+	    IF ( status .NE. merr_ok ) GOTO 5900
 
             CALL CD_GET_MISSING_FLAG (cdfid, varid, vname, .TRUE., 
      .           missflag, status)
             IF (status .EQ. 0) missflag = unspecified_val4
 
             npts = 1
-            memory(npts, mblk1) = missflag
+	    workmem(wrkspc)%ptr(npts) = missflag
+! 1/17 *sh* note that recdim is not excluded from this look
             DO 240 i = 1, MAX(count(1),1)
             DO 240 j = 1, MAX(count(2),1)
             DO 240 k = 1, MAX(count(3),1)
             DO 240 l = 1, MAX(count(4),1)
             DO 240 m = 1, MAX(count(5),1)
             DO 240 n = 1, MAX(count(6),1)
-               memory(npts, mblk1) = missflag
+               workmem(wrkspc)%ptr(npts) = missflag
                npts = npts + 1
  240        CONTINUE
 
             CALL CD_WRITE_VAR_SUB( cdfid, varid, vartyp, dims, start,
-     .             count, vdims(1), memory(1, mblk1), cdfstat )
+     .             count, vdims(1), workmem(wrkspc)%ptr, cdfstat )
  
-            CALL FREE_MEMORY( mblk1, nblks )
+            CALL FREE_WS_DYNMEM( wrkspc )
             start(cdrecax) = start(cdrecax) + 1
             count(cdrecax) = savecount
          ENDIF
@@ -384,6 +407,7 @@ c      EQUIVALENCE (r100_8, r100_4)
 
 * write the record axis coords (buffer 100 at a time) (12/92 REAL*8 option)
 * (code lifted from CD_REC_SYNCH 10/92)
+
          DO 310 i100 = lorec, hirec, 100
             hilim = MIN(i100+99, hirec)
             DO 300 i = i100, hilim
@@ -422,9 +446,11 @@ c      EQUIVALENCE (r100_8, r100_4)
 
          iaxis = grid_line(tmrecax, grid)
 
+
 	 IF (do_bounds .GE. 0) THEN
-         IF ( (.NOT.line_regular(iaxis) .OR. writebounds) 
-     .         .AND. (edges_flag .EQ. 0) ) THEN
+         IF ( (.NOT.line_regular(iaxis) .OR. writebounds .OR. 
+     .          ITSA_TRUEMONTH_AXIS(iaxis) ) .AND. 
+     .        (edges_flag .EQ. 0) ) THEN
 
             name = CD_AXIS_NAME( dset, grid, tmrecax, nlen )
             IF (keepax_flag .EQ. 1) name = CD_AXIS_OUTNAME( dset, grid, tmrecax, nlen )
@@ -437,7 +463,6 @@ c      EQUIVALENCE (r100_8, r100_4)
             
 * If not mode upcase_output, then keep the incoming case. 
             ELSE 
-               name = CD_AXIS_NAME( dset, grid, tmrecax, nlen )
                buff = CD_AXIS_OUTNAME( dset, grid, tmrecax, llen )
                IF (STR_SAME(name, buff) .EQ. 0) THEN 
 	          name = buff
@@ -506,7 +531,7 @@ c      EQUIVALENCE (r100_8, r100_4)
       IF ( .NOT. TM_DFPEQ(scalefac, 1.D0) .OR. 
      .     .NOT. TM_DFPEQ(addoff, 0.D0) ) THEN
 
-         IF (.NOT. TM_DFPEQ(scalefac, 0.D0) ) r_scale = 1.D0/scalefac
+         IF (.NOT. TM_DFPEQ(scalefac, 0.D0) ) r_scale = 1. /scalefac
          r_offset = -1.D0* addoff* r_scale
 
          npts = 1
diff --git a/fmt/src/ez_count_dset.F b/fmt/src/ez_count_dset.F
index 5e74cff..267ef6d 100644
--- a/fmt/src/ez_count_dset.F
+++ b/fmt/src/ez_count_dset.F
@@ -38,6 +38,8 @@
 * Subroutine opens an EZ data set (ASCII and unformatted non_TMAP data files) 
 * and returns a count count the records in the datset, minus the number of 
 * records skipped. Addressing ticket 2182.
+*
+* V701  7/16 *kms* Compare ds_name to char_init2048 instead of char_init1024
 * 
 
 * Arguments:
@@ -83,7 +85,7 @@
         REAL		buff
 
 * Does data set exist?
-	IF (ds_name(dset) .EQ. char_init1024) GOTO 9300
+	IF (ds_name(dset) .EQ. char_init2048) GOTO 9300
 *
 * Locate Step file entry
 	DO 10 sfcnt = 1,maxstepfiles
@@ -132,7 +134,7 @@
 * calculate RECL in longwords for unformatted (if not open)             
           IF (.NOT. file_open .AND. unformatted )
      .	                         sf_reclen(sfcnt) = sf_reclen(sfcnt)/4
-        ENDIF                                                              
+        ENDIF
 *
 * get free VMS logical unit #   
 	CALL LIB_GET_LUN (lunit)
diff --git a/fmt/src/ez_delimited_read.c b/fmt/src/ez_delimited_read.c
index 4876b12..6605aa5 100644
--- a/fmt/src/ez_delimited_read.c
+++ b/fmt/src/ez_delimited_read.c
@@ -48,6 +48,12 @@
 					 definition of macro DFTYPE in ferretmacros.h.
  *acm*  5/13      - ticket 2066: For double-precision Ferret reading numeric data,
                     sscanf needs %lf instead of %f, and dummy needs to be double prec.
+  V701 7/16 *acm*   ticket 2450: add date-time and euro-date-time field types
+                    ticket 2448: for 2-digit years, put years prior to 50 into the 2000s
+                    ticket 2449: report incorrect choice of date/ eurodate as an error
+  V702 10/16 *acm*  ticket 2472: Allow yyyy/dd/mm in any of the date types.   
+  V702 11/16 *acm*  handling read errors in date/time reading
+  V702  1/17 *sh*   removal of block-oriented memory management
 */
 
 
@@ -89,9 +95,7 @@
  nfields - number of fields to decode on each record
  field_types - type of each field (input)
  mrlist - list of integers pointing to Ferret memory blocks
- memptr - pointer to base of Ferret "heap" storage
- mr_blk1 - memory chunk numbers indexed by mr_list
- mblk_size - chunk size within Ferret heap
+ mr_ptrs_val - integer containing the c pointer to array of mr memory pointers 
  mr_bad_flags - missing value flags indexed by mr_list
  *
  */
@@ -101,11 +105,18 @@ void FORTRAN(decode_file_jacket)
 		( char* fname, char *recptr, char *delims, int *skip,
 		  int* maxrec, int* reclen, int* nfields,
 		  int field_type[], int* nrec,
+		  int mrlist[], long* mr_ptrs_val,
+		  DFTYPE mr_bad_flags[], char ***mr_c_ptr, int* status)
+/* 1/17 --- pre-dynamic memory call
+void FORTRAN(decode_file_jacket)
+		( char* fname, char *recptr, char *delims, int *skip,
+		  int* maxrec, int* reclen, int* nfields,
+		  int field_type[], int* nrec,
 		  int mrlist[], DFTYPE *memptr, int mr_blk1[], int* mblk_size,
-		  DFTYPE mr_bad_flags[], char ***mr_c_ptr)
-
+		  DFTYPE mr_bad_flags[], char ***mr_c_ptr, int* status)
+*/
 {
-
+  DFTYPE** mr_ptrs = (DFTYPE**) *mr_ptrs_val;
   DFTYPE **numeric_fields  = (DFTYPE **) malloc(sizeof(DFTYPE*) * (*nfields));
   DFTYPE *bad_flags        = (DFTYPE *)  malloc(sizeof(DFTYPE) * (*nfields));
 
@@ -126,21 +137,21 @@ void FORTRAN(decode_file_jacket)
       if (field_type[i] == FTYP_CHARACTER )
 	{
 	  /* *kob* make sure were using size of real*4 float */
-	  text_fields[i] = (char**) (memptr + ((mr_blk1[mr]-1)*(*mblk_size)*4)/sizeof(float));
+	  text_fields[i] = (char**) mr_ptrs[i];
 	  mr_c_ptr[mr*pinc] = text_fields[i];
 	}
       else if (field_type[i] != FTYP_MISSING )
 	{
-	  numeric_fields[i] = memptr + (mr_blk1[mr]-1)*(*mblk_size);
+	  numeric_fields[i] = mr_ptrs[i];
 	  mr_c_ptr[mr*pinc] = (char**) NULL;
 	}
       /*
 	isolate the bad data flags that correspond to the numeric fields
       */
-      if ( (field_type[i]!=FTYP_MISSING) && (field_type[i]!=FTYP_CHARACTER) )
-	bad_flags[i] = mr_bad_flags[mr];
-      else
+      if ( (field_type[i]==FTYP_MISSING) || (field_type[i]==FTYP_CHARACTER) )
 	bad_flags[i] = 0.0;
+      else
+	bad_flags[i] = mr_bad_flags[mr];
     }
 
   /*
@@ -149,7 +160,7 @@ void FORTRAN(decode_file_jacket)
   decode_file (fname, recptr, delims, skip, 
 	       maxrec, reclen, nfields,
 	       field_type, nrec,
-	       numeric_fields, text_fields, bad_flags);
+	       numeric_fields, text_fields, bad_flags, status);
 
   free(numeric_fields);
   free(text_fields);
@@ -185,7 +196,7 @@ void FORTRAN(decode_file_jacket)
 int decode_file (char* fname, char *recptr, char *delims, int *skip, 
 			  int* maxrec, int* reclen, int* nfields,
 			  int field_type[], int* nrec, DFTYPE** numeric_fields,
-			  char*** text_fields, DFTYPE bad_flags[])
+			  char*** text_fields, DFTYPE bad_flags[], int* status)
 
 {
 
@@ -219,7 +230,7 @@ int decode_file (char* fname, char *recptr, char *delims, int *skip,
 	      recptr[slen-1] = '\0';
 	  
 	  decodeRec(recptr, delims, nfields, field_type, *nrec,
-		    numeric_fields, text_fields, bad_flags);
+		    numeric_fields, text_fields, bad_flags, status);
 
 #ifdef diagnostic_output	  /* ************* */
 	  for (i=0; i<(*nfields); i++)
@@ -228,7 +239,8 @@ int decode_file (char* fname, char *recptr, char *delims, int *skip,
 	    else if (field_type[i] != FTYP_MISSING)
 	      printf( "%d numeric: %f\n",i,(*(numeric_fields+i))[(*nrec)] );
 #endif                            /* ************* */
-
+	   if (*status != 3) return 0;
+	   
 	  (*nrec)++;
 	}
     }
@@ -352,21 +364,31 @@ int FORTRAN(anal_file) (char* fname, char *recptr, char *delims, int* skip,
 
 int decodeRec(char *recptr, char *delims, int* nfields, int field_type[],
 	      int rec,
-	      DFTYPE** numeric_fields, char*** text_fields, DFTYPE bad_flags[])
+	      DFTYPE** numeric_fields, char*** text_fields, DFTYPE bad_flags[],
+	      int* status)
 {
 
   char *p, *pnext, str1[2], errstr[2];
   double dummy;
   DFTYPE rdum;
 
-  int idummy1, idummy2, idummy3, i;
+  int idummy1, idummy2, idummy3, idummy4, idummy5, i;
   char blankstr[] = " ";
   double days_1900 = 59958230400.0 / (60.*60.*24.); 
 /*  int days_1900 = 693961;  */
 
   int pinc = 8/sizeof(char*);  /* pointers spacd 8 bytes apart */
   int slen;     /* kob 12/01 needed to check for numberical string ending in e/E */
+  int ndum;
+  int break_century;
+  int rstatus;
+  double tpart;
   p = recptr;
+  rstatus = 3; 
+
+/* 2-digit years need to be assigned to a century. 
+   will break after 2049 or before 1950  (ACM 7/2016 was year 20 */
+  break_century = 50; 
 
   for (i=0; i<*nfields; i++) {
     pnext = nexstrtok(p, delims);
@@ -384,6 +406,7 @@ int decodeRec(char *recptr, char *delims, int* nfields, int field_type[],
       }
 
     } else {
+	  *status = 3;
       switch (field_type[i]) {
 	
 	/* latitude */
@@ -419,74 +442,273 @@ int decodeRec(char *recptr, char *delims, int* nfields, int field_type[],
 	
 	/* date */
       case FTYP_DATE:
-	if (sscanf(p,"%d/%d/%d%1s",
-		   &idummy1,&idummy2,&idummy3,errstr) == 3) {
-	   
-      /*printf("%d %d %d \n", idummy1,idummy2,idummy3); */
-	  /* need to check for 4 digit year - mm/dd/yyyy *kob* */
-	  if (idummy3 < 100) {
-	    if (idummy3 < 20)   /* will break after 2019 or before 1920 */
+	(*(numeric_fields+i))[rec] = bad_flags[i];
+	if (sscanf(p,"%d/%d/%d%1s",&idummy1,&idummy2,&idummy3,errstr) == 3) {
+	  /* need to check to see if idummy3 which contains the year is in 
+	     the form YY or YYYY     *kob*  10/02  */
+		 
+	  /* Date of 00/00/00 is bad-data */
+	  if (idummy1 == 0 || idummy2 == 0 || idummy3 == 0) {
+		  (*(numeric_fields+i))[rec] = bad_flags[i];
+		  break;
+	  }
+
+	  /* check for yyyy/mm/dd */
+	  if (idummy1 > 1800) {
+		  (*(numeric_fields+i))[rec] =
+		  days_from_day0_(&days_1900,&idummy1,&idummy2,&idummy3,&rdum,status);
+		  (*(numeric_fields+i))[rec] = rdum;
+		  if (*status != 3) (*(numeric_fields+i))[rec] = bad_flags[i];
+		  break;
+	  }
+
+	  /* Check for 2-digit or 4-digit year */
+	  if (idummy3 < 100) { 
+	    if (idummy3 < break_century)   /* assign 2-digit year to century*/
 	      idummy3 += 2000;
 	    else
 	      idummy3 += 1900;
 	  }
+
 	  (*(numeric_fields+i))[rec] =
-	    days_from_day0_(&days_1900,&idummy3,&idummy1,&idummy2,&rdum);
+	    days_from_day0_(&days_1900,&idummy3,&idummy1,&idummy2,&rdum,status);
 	  (*(numeric_fields+i))[rec] = rdum;
-
-	  /* force dates with dashes "-" to be in yyyy-mm-dd format *kob* */
+	  if (*status != 3) (*(numeric_fields+i))[rec] = bad_flags[i];
+	/* force dates with dashes "-" to be in yyyy-mm-dd format *kob* */
 	} else if (sscanf(p,"%4d-%2d-%2d%1s",
 			  &idummy1,&idummy2,&idummy3,errstr) == 3) {
 	  (*(numeric_fields+i))[rec] =
-	    days_from_day0_(&days_1900,&idummy1,&idummy2,&idummy3,&rdum);
-	  (*(numeric_fields+i))[rec] = rdum;
+	    days_from_day0_(&days_1900,&idummy1,&idummy2,&idummy3,&rdum,status);
+	  (*(numeric_fields+i))[rec] = rdum; 
+	  if (*status != 3) (*(numeric_fields+i))[rec] = bad_flags[i];
 	  }
+	/* yyyyddmm date */
 	else if ( (sscanf(p,"%4d%2d%2d%1s",&idummy1,&idummy2,&idummy3,str1)==3)
 	      && idummy1>0
 	      && idummy2>=1 && idummy2<=12
 	      && idummy3>=1 && idummy3<=31 ) {
 	  (*(numeric_fields+i))[rec] =
-	    days_from_day0_(&days_1900,&idummy1,&idummy2,&idummy3,&rdum);
-	  (*(numeric_fields+i))[rec] = rdum;
+	    days_from_day0_(&days_1900,&idummy1,&idummy2,&idummy3,&rdum,status);
+	  (*(numeric_fields+i))[rec] = rdum; }
+	else
+	  (*(numeric_fields+i))[rec] = bad_flags[i];
+	break;
+
+	/* Date and time
+	   Parses fields that are date time separated by a space.
+	   It would be good to also allow for Z or T separator
+	   Currently those can be handled as separate date and time
+	   fields with T or Z given as a delimiter. */
+
+	      case FTYP_DATIME:
+			  
+	if (sscanf(p,"%d/%d/%d %d:%d:%lf%1s",&idummy1,&idummy2,&idummy3,&idummy4,&idummy5,&dummy,errstr) >= 4) {
+
+	  /* Date of 00/00/00 in any order is bad-data */
+	  if (idummy1 == 0 || idummy2 == 0 || idummy3 == 0) {
+		  (*(numeric_fields+i))[rec] = bad_flags[i];
+		  break;
+	  }
+
+	  ndum = sscanf(p,"%d/%d/%d %d:%d:%lf%1s",&idummy1,&idummy2,&idummy3,&idummy4,&idummy5,&dummy,errstr);
+	  tpart = -999;
+	  if (ndum == 6) tpart = idummy4 + idummy5/60. + dummy/3600.;
+	  if (ndum == 5) tpart = idummy4 + idummy5/60.;	
+
+	  /* check for yyyy/mm/dd */
+	  if (idummy1 > 1800) {
+		  (*(numeric_fields+i))[rec] =
+		  days_from_day0_(&days_1900,&idummy1,&idummy2,&idummy3,&rdum,status);
+		  if (*status != 3) (*(numeric_fields+i))[rec] = bad_flags[i];
+	  } else {
+
+	  /* Check for 2-digit or 4-digit year */
+		  if (idummy3 < 100) { 
+			  if (idummy3 < break_century)   /* assign 2-digit year to century*/
+			  idummy3 += 2000;
+		  else
+			  idummy3 += 1900;
+		  }
+		  
+		  (*(numeric_fields+i))[rec] =
+		  days_from_day0_(&days_1900,&idummy3,&idummy1,&idummy2,&rdum,status);
+		  if (*status != 3) (*(numeric_fields+i))[rec] = bad_flags[i];
+	  }
+
+	  (*(numeric_fields+i))[rec] = rdum + tpart/24.;
+	  if (tpart == -999) (*(numeric_fields+i))[rec] = bad_flags[i];
+
+	  /* force dates with dashes "-" to be in yyyy-mm-dd format *kob* */
+	} else if (sscanf(p,"%4d-%2d-%2d %d:%d:%lf%1s",
+			  &idummy1,&idummy2,&idummy3,&idummy4,&idummy5,&dummy,errstr)  >= 4) {
+		
+		ndum = sscanf(p,"%4d-%2d-%2d %d:%d:%lf%1s",&idummy1,&idummy2,&idummy3,&idummy4,&idummy5,&dummy,errstr);
+		tpart = -999;	
+		if (ndum == 6) tpart = idummy4 + idummy5/60. + dummy/3600.;
+		if (ndum == 5) tpart = idummy4 + idummy5/60.;
+
+	  (*(numeric_fields+i))[rec] =
+	    days_from_day0_(&days_1900,&idummy1,&idummy2,&idummy3,&rdum,status);
+	  (*(numeric_fields+i))[rec] = rdum + tpart/24.; 
+	  if (tpart == -999) (*(numeric_fields+i))[rec] = bad_flags[i];
+	  if (*status != 3) (*(numeric_fields+i))[rec] = bad_flags[i];
+	  }
+
+	/* check for yyyymmdd date */
+	else if ( (sscanf(p,"%4d%2d%2d%1s",&idummy1,&idummy2,&idummy3,&idummy4,&idummy5,&dummy,str1) >= 4)
+	      && idummy1>0
+	      && idummy3>=1 && idummy3<=12
+	      && idummy2>=1 && idummy2<=31 ) {
+		ndum = sscanf(p,"%4d%2d%2d%1s",&idummy1,&idummy2,&idummy3,&idummy4,&idummy5,&dummy,str1);
+		tpart = -999;	
+		if (ndum == 6) tpart = idummy4 + idummy5/60. + dummy/3600.;
+		if (ndum == 5) tpart = idummy4 + idummy5/60.;	
+
+		(*(numeric_fields+i))[rec] =
+		days_from_day0_(&days_1900,&idummy1,&idummy2,&idummy3,&rdum,status);
+		(*(numeric_fields+i))[rec] = rdum + tpart/24.; 	
+	    if (tpart == -999) (*(numeric_fields+i))[rec] = bad_flags[i];
+		if (*status != 3) (*(numeric_fields+i))[rec] = bad_flags[i];
 	  }
 	else
 	  (*(numeric_fields+i))[rec] = bad_flags[i];
 	break;
 	
-	/* date */
+	/* Euro-date */
       case FTYP_EURODATE:
 	if (sscanf(p,"%d/%d/%d%1s",&idummy1,&idummy2,&idummy3,errstr) == 3) {
 	  /* need to check to see if idummy3 which contains the year is in 
 	     the form YY or YYYY     *kob*  10/02  */
+		 
+	  /* Date of 00/00/00 is bad-data */
+	  if (idummy1 == 0 || idummy2 == 0 || idummy3 == 0) {
+		  (*(numeric_fields+i))[rec] = bad_flags[i];
+		  break;
+	  }
+
+	  /* check for yyyy/mm/dd */
+	  if (idummy1 > 1800) {
+		  (*(numeric_fields+i))[rec] =
+		  days_from_day0_(&days_1900,&idummy1,&idummy2,&idummy3,&rdum,status);
+		  (*(numeric_fields+i))[rec] = rdum;
+		  if (*status != 3) (*(numeric_fields+i))[rec] = bad_flags[i];
+		  break;
+	  }
+
+	  /* Check for 2-digit or 4-digit year */
 	  if (idummy3 < 100) { 
-	    if (idummy3 < 20)   /* will break after 2019 or before 1920 */
+	    if (idummy3 < break_century)   /* assign 2-digit year to century*/
 	      idummy3 += 2000;
 	    else
 	      idummy3 += 1900;
 	  }
+
 	  (*(numeric_fields+i))[rec] =
-	    days_from_day0_(&days_1900,&idummy3,&idummy2,&idummy1,&rdum);
+	    days_from_day0_(&days_1900,&idummy3,&idummy2,&idummy1,&rdum,status);
 	  (*(numeric_fields+i))[rec] = rdum;
+	  if (*status != 3) (*(numeric_fields+i))[rec] = bad_flags[i];
 	  /* force dates with dashes "-" to be in yyyy-mm-dd format *kob* */
 	} else if (sscanf(p,"%4d-%2d-%2d%1s",
 			  &idummy1,&idummy2,&idummy3,errstr) == 3) {
 	  (*(numeric_fields+i))[rec] =
-	    days_from_day0_(&days_1900,&idummy1,&idummy2,&idummy3,&rdum);
-	  (*(numeric_fields+i))[rec] = rdum; }
+	    days_from_day0_(&days_1900,&idummy1,&idummy2,&idummy3,&rdum,status);
+	  (*(numeric_fields+i))[rec] = rdum;
+	  if (*status != 3) (*(numeric_fields+i))[rec] = bad_flags[i]; }
 	/* add check for yyyyddmm euro date *kob* */
 	else if ( (sscanf(p,"%4d%2d%2d%1s",&idummy1,&idummy2,&idummy3,str1)==3)
 	      && idummy1>0
 	      && idummy3>=1 && idummy3<=12
 	      && idummy2>=1 && idummy2<=31 ) {
 	  (*(numeric_fields+i))[rec] =
-	    days_from_day0_(&days_1900,&idummy1,&idummy3,&idummy2,&rdum);
-	  (*(numeric_fields+i))[rec] = rdum; }
+	    days_from_day0_(&days_1900,&idummy1,&idummy3,&idummy2,&rdum,status);
+	  (*(numeric_fields+i))[rec] = rdum;
+	  if (*status != 3) (*(numeric_fields+i))[rec] = bad_flags[i]; }
+	else
+	  (*(numeric_fields+i))[rec] = bad_flags[i];
+	break;
+
+	/* Euro-date and time
+	   Parses fields that are date time separated by a space.
+	   It would be good to also allow for Z or T separator
+	   Currently those can be handled as separate date and time
+	   fields with T or Z given as a delimiter. */
+
+	      case FTYP_EDATIME:
+
+	if (sscanf(p,"%d/%d/%d %d:%d:%lf%1s",&idummy1,&idummy2,&idummy3,&idummy4,&idummy5,&dummy,errstr) >= 4) {
+
+	  /* Date of 00/00/00 in any order is bad-data */
+	  if (idummy1 == 0 || idummy2 == 0 || idummy3 == 0) {
+		  (*(numeric_fields+i))[rec] = bad_flags[i];
+		  break;
+	  }
+
+	  ndum = sscanf(p,"%d/%d/%d %d:%d:%lf%1s",&idummy1,&idummy2,&idummy3,&idummy4,&idummy5,&dummy,errstr);
+	  tpart = -999;
+	  if (ndum == 6) tpart = idummy4 + idummy5/60. + dummy/3600.;
+	  if (ndum == 5) tpart = idummy4 + idummy5/60.;	
+
+	  /* check for yyyy/mm/dd */
+	  if (idummy1 > 1800) {
+		  (*(numeric_fields+i))[rec] =
+		  days_from_day0_(&days_1900,&idummy1,&idummy2,&idummy3,&rdum,status);
+
+	  } else {
+
+	  /* Check for 2-digit or 4-digit year */
+		  if (idummy3 < 100) { 
+			  if (idummy3 < break_century)   /* assign 2-digit year to century*/
+			  idummy3 += 2000;
+		  else
+			  idummy3 += 1900;
+		  }
+		  
+		  (*(numeric_fields+i))[rec] =
+		  days_from_day0_(&days_1900,&idummy3,&idummy2,&idummy1,&rdum,status);
+	  }
+
+	  (*(numeric_fields+i))[rec] = rdum + tpart/24.;
+	  if (*status != 3) (*(numeric_fields+i))[rec] = bad_flags[i];
+	  if (tpart == -999) (*(numeric_fields+i))[rec] = bad_flags[i];
+
+	  /* force dates with dashes "-" to be in yyyy-mm-dd format *kob* */
+	} else if (sscanf(p,"%4d-%2d-%2d %d:%d:%lf%1s",
+			  &idummy1,&idummy2,&idummy3,&idummy4,&idummy5,&dummy,errstr)  >= 4) {
+		
+		ndum = sscanf(p,"%4d-%2d-%2d %d:%d:%lf%1s",&idummy1,&idummy2,&idummy3,&idummy4,&idummy5,&dummy,errstr);
+		tpart = -999;	
+		if (ndum == 6) tpart = idummy4 + idummy5/60. + dummy/3600.;
+		if (ndum == 5) tpart = idummy4 + idummy5/60.;
+
+	  (*(numeric_fields+i))[rec] =
+	    days_from_day0_(&days_1900,&idummy1,&idummy2,&idummy3,&rdum,status);
+	  (*(numeric_fields+i))[rec] = rdum + tpart/24.; 
+	  if (*status != 3) (*(numeric_fields+i))[rec] = bad_flags[i];
+	  if (tpart == -999) (*(numeric_fields+i))[rec] = bad_flags[i];
+	  }
+
+	/* add check for yyyyddmm euro date *kob* */
+	else if ( (sscanf(p,"%4d%2d%2d%1s",&idummy1,&idummy2,&idummy3,&idummy4,&idummy5,&dummy,str1) >= 4)
+	      && idummy1>0
+	      && idummy3>=1 && idummy3<=12
+	      && idummy2>=1 && idummy2<=31 ) {
+		ndum = sscanf(p,"%4d%2d%2d%1s",&idummy1,&idummy2,&idummy3,&idummy4,&idummy5,&dummy,str1);
+		tpart = -999;	
+		if (ndum == 6) tpart = idummy4 + idummy5/60. + dummy/3600.;
+		if (ndum == 5) tpart = idummy4 + idummy5/60.;	
+
+		(*(numeric_fields+i))[rec] =
+		days_from_day0_(&days_1900,&idummy1,&idummy3,&idummy2,&rdum,status);
+		(*(numeric_fields+i))[rec] = rdum + tpart/24.;
+	    if (tpart == -999) (*(numeric_fields+i))[rec] = bad_flags[i];
+	    if (*status != 3) (*(numeric_fields+i))[rec] = bad_flags[i];  }
 	else
 	  (*(numeric_fields+i))[rec] = bad_flags[i];
 	break;
 	
 	/* time */
       case FTYP_TIME:
+	(*(numeric_fields+i))[rec] = bad_flags[i];
 	if (sscanf(p,"%d:%d:%lf%1s",&idummy1,&idummy2,&dummy,errstr) == 3)
 	  (*(numeric_fields+i))[rec] = idummy1 + idummy2/60. + dummy/3600.;
 	else if (sscanf(p,"%d:%d%1s",&idummy1,&idummy2,errstr) == 2)
@@ -529,8 +751,15 @@ int decodeRec(char *recptr, char *delims, int* nfields, int field_type[],
       }
     }
 
-    p = pnext;
+/* if bad status flag out of a date conversion, make the date the bad-flag
+   Then the user can deal with undefined times as desired */
+
+ 	if (*status != 3 && rstatus == 3) rstatus = -1* (i+1);
+
+    p = pnext;	
     }
+
+   if (rstatus != 3) *status = rstatus; 
 }
 
 /*
diff --git a/fmt/src/ez_init_dset.F b/fmt/src/ez_init_dset.F
index 1d7d3f4..11d3f8d 100644
--- a/fmt/src/ez_init_dset.F
+++ b/fmt/src/ez_init_dset.F
@@ -79,6 +79,10 @@
 *       moved it to parameter line 10/96
 * V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
 * V694 1/15 *acm* variable coordvar should be a logical not an integer
+* V701 7/16 *acm* ticket 2450. add date-time and euro-date-time field types
+* 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.
 
 
 	CHARACTER*4	ez_rev
@@ -112,9 +116,10 @@
 	include 'tmap_errors.parm'
 	include 'xdset_info.cmn_text'
 	external xdset_info_data
+        include 'xdset_info.cd_equiv'
 	include 'xstep_files.cmn_text'
-	external xstep_files_data
-	include 'xez_info.cmn_text'
+        external xstep_files_data
+        include 'xez_info.cmn_text'
 	external xez_info_data
         include 'netcdf.inc'
 
@@ -123,18 +128,18 @@
         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,
+	INTEGER*4	TM_LENSTR1, STR_SAME, STR_UPCASE,
      .			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),
-     .			l1, l2, ivar, vartype, varid
+     .			l1, l2, ivar, vartype, varid, tlen
 	CHARACTER	TM_STRING*13, TM_LEFINT*4, buff*48, 
      .			line_buff*2048
 
 *
 * Assign data set number, exiting if maximum number of data sets are open
 	DO 100 set_cnt = 1,maxdsets
-	  IF (ds_name(set_cnt) .EQ. char_init1024) THEN
+	  IF (ds_name(set_cnt) .EQ. char_init2048) THEN
 	    dset = set_cnt
 	    ds_des_name(dset) = filename
 * Parse input line to obtain just filename without directory or extension
@@ -232,8 +237,9 @@
 *          ... parse users list of field types
 	     CALL TM_Parse_string(types,maxezvars,type_names,num_types)
 	     DO 530 i = 1, num_types
+	       tlen = MIN(TM_LENSTR1(type_names(i)), 4)
 	       DO 520 j = 1, FTYP_NUM_TYPES
-	         IF (type_names(i)(1:2) .EQ. ftyp_name(j)(1:2)) THEN
+	         IF (type_names(i)(1:tlen) .EQ. ftyp_name(j)(1:tlen)) THEN
 	            l1 = TM_LENSTR1(type_names(i))
 	            l2 = TM_LENSTR1(ftyp_name (j))
 	            IF (l1.GT.l2 ) GOTO 9300  ! ilegal type name
@@ -327,11 +333,11 @@
 *
 * Load variable record now
   150     var_pos = nvar
-*	  ds_var_code(nvar)	= var_names(ncnt)
-          CALL string_array_modify(ds_var_code_head,
+c	  status =  STR_UPCASE (line_buff, var_names(ncnt))
+          CALL string_array_modify_upcase(ds_var_code_head,
      .                             nvar,
      .                             var_names(ncnt),
-     .                             LEN(var_names(ncnt)))
+     .                             LEN(var_names(ncnt)) )
 	  ds_var_title(nvar)	= var_names(ncnt)
 	  ds_var_titl_mod(nvar)	= ' '
 	  ds_var_units(nvar)	= ' '
@@ -358,7 +364,9 @@
 	       ds_var_titl_mod(nvar) = 'all values missing'
 	       field_type(ncnt) = FTYP_NUMERIC
 	    ELSEIF (field_type(ncnt) .EQ. FTYP_EURODATE
-     .	       .OR. field_type(ncnt) .EQ. FTYP_DATE) THEN
+     .	       .OR. field_type(ncnt) .EQ. FTYP_DATE
+     .	       .OR. field_type(ncnt) .EQ. FTYP_DATIME
+     .	       .OR. field_type(ncnt) .EQ. FTYP_EDATIME) THEN
 	       ds_var_titl_mod(nvar) = 'Julian days since 1-Jan-1900'
 	       ds_var_units(nvar) = 'days'
 	    ELSEIF (field_type(ncnt) .EQ. FTYP_TIME) THEN
@@ -420,12 +428,13 @@
 
 
 * Put the information into the linked-list strucure for the dataset
-* and its variables
+* and its variables. Use the original non-upcased version of the variable name.
 
         CALL CD_STORE_DSET (dset, status)
         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.
@@ -440,9 +449,10 @@
                  vartype = NF_FLOAT
               ENDIF
         
-              CALL CD_ADD_VAR( dset, ds_var_code(ivar), varid, 
+              CALL CD_ADD_VAR( dset, var_names(ncnt), 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/fmt/src/ez_mod_dset.F b/fmt/src/ez_mod_dset.F
index 51a1f43..08d63c8 100644
--- a/fmt/src/ez_mod_dset.F
+++ b/fmt/src/ez_mod_dset.F
@@ -50,6 +50,7 @@
 * v604 *acm* 7/07 increase length of ds_name, ds_des_name
 * V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
 * V685+ 12/13 *acm* 6D Ferret: passed-in array had fixed dimensino of 4
+* V701  7/16 *kms* Compare ds_name to char_init2048 instead of char_init1024
 
 * Arguments:
 *	dset	- data set number
@@ -79,7 +80,7 @@
 	INTEGER*4	vcnt, scnt
 *
 * Does data set exist?
-	IF (ds_name(dset) .EQ. char_init1024) GOTO 9000
+	IF (ds_name(dset) .EQ. char_init2048) GOTO 9000
 *
 * Defining title?
 	IF (title .NE. char_init1024) ds_title(dset) = title
diff --git a/fmt/src/ez_mod_vars.F b/fmt/src/ez_mod_vars.F
index 7c9047e..cf9f33a 100644
--- a/fmt/src/ez_mod_vars.F
+++ b/fmt/src/ez_mod_vars.F
@@ -58,6 +58,7 @@
 *                  netcdf3-style calls, which are also consistent with netcdf4.
 * V68  *acm* 1/12 The variables should be declared REAL (conversion to double prec.)
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
+* V701  7/16 *kms* Compare ds_name to char_init2048 instead of char_init1024
 
 * Arguments:
 *	dset	- data set number
@@ -97,7 +98,7 @@
 * Local definitions
 *
 * Does data set exist?
-	IF (ds_name(dset) .EQ. char_init1024) GOTO 9100
+	IF (ds_name(dset) .EQ. char_init2048) GOTO 9100
 *
 * Defining variable title?
 	IF ( title .NE. char_init80 ) THEN
diff --git a/fmt/src/ez_read.F b/fmt/src/ez_read.F
index 7d9892b..0e37a70 100644
--- a/fmt/src/ez_read.F
+++ b/fmt/src/ez_read.F
@@ -78,6 +78,7 @@
 * V68  *acm* 1/12 The variables should be declared REAL (conversion to double prec.)
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
 * V694 11/14 *acm* Ticket 2217: permuted ASCII reading in 6D
+* V701  7/16 *kms* Compare ds_name to char_init2048 instead of char_init1024
 
 * Arguments:
 *	dset	- data set number
@@ -141,7 +142,7 @@
 
 
 * Does data set exist?
-	IF (ds_name(dset) .EQ. char_init1024) GOTO 9300
+	IF (ds_name(dset) .EQ. char_init2048) GOTO 9300
 *
 * Locate Step file entry
 	DO 10 sfcnt = 1,maxstepfiles
@@ -280,7 +281,7 @@
           IF (.NOT. file_open .AND. unformatted )
      .	                         sf_reclen(sfcnt) = sf_reclen(sfcnt)/4
 	  sf_valid(sfcnt) = .TRUE.      ! *sh* dset -> sfcnt 5/91
-        ENDIF                                                              
+        ENDIF
 *
 * get free VMS logical unit #   
 	CALL LIB_GET_LUN (lunit)
diff --git a/fmt/src/mc_init_dset.F b/fmt/src/mc_init_dset.F
index 00c6ba2..3ce90af 100644
--- a/fmt/src/mc_init_dset.F
+++ b/fmt/src/mc_init_dset.F
@@ -228,7 +228,7 @@
 	   IF (ABS(steps_in_file/NINT(steps_in_file)-1.0) .GT. 1.E-6) THEN
               WRITE (string,1100)
  1100         FORMAT(' WARNING - NON-INTEGER NUMBER OF STEPS PER STEPFILE'/
-     .	         ' INDICATED IN DESCRIPTOR - TRYING TO CONTINUE ANYWAY')
+     .               ' INDICATED IN DESCRIPTOR - TRYING TO CONTINUE ANYWAY')
               lenb = TM_LENSTR( string )
               CALL WARN( string(:lenb) )
 	   ENDIF
diff --git a/fmt/src/mc_read.F b/fmt/src/mc_read.F
index d8e078f..c29f468 100644
--- a/fmt/src/mc_read.F
+++ b/fmt/src/mc_read.F
@@ -78,6 +78,9 @@
 *                  linked with OPeNDAP library.
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
 * V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
+* V71  *acm* 1/17 Ticket 2493 The E and F dimensions are "outside" of T and so 
+*                 just passing a start location into CD_READ to read in each file's 
+*                 of data gave incorrect results.
 
 * include files
         include 'netcdf.inc'
@@ -133,7 +136,8 @@
      .            hi_offset,a_lo_t_offset,
      .            a_hi_t_offset, vartype, nvdims,vdims(8),nvatts,
      .		  varid, varpos,ndims,nvars, natts, recdim,
-     .            npts, var_id,index, nsteps_in_file, vlen, end_lstep
+     .            npts, var_id,index, nsteps_in_file, vlen, end_lstep,
+     .            line, m, n
 	REAL*8	  TM_WORLD,start_tstep, end_tstep, start_read_tstep,
      .            end_read_tstep, epsilon
 	INTEGER   TM_SUBSC, TM_LENSTR1, prev_steps
@@ -318,20 +322,23 @@ c!c! uncomment this...
 	   IF (.NOT. mode_diagnostic) THEN
 	      sf_valid(sfcnt) = .TRUE.
 *       now verify the timestep value in the netcdf file
+*       Note this will report errors for time aggregations that have different time origins
 	   ELSE
 	      IF (.NOT. sf_valid(sfcnt)) THEN
+* Get the T dimension and look up its attributes
+
+		 line = grid_line(t_dim, grid)
+		 dim_name = line_name_orig(line)
+		 vlen = TM_LENSTR1(dim_name)
+
 #ifdef usingDODSf2cUnderscore
-		 cdfstat = NF_INQ_DIM_( cdfid, vdims(nvdims), dim_name, 
-     .                           npts )
-		 cdfstat = NF_INQ_VARID_(cdfid, dim_name, var_id)
+		 cdfstat = NF_INQ_VARID_(cdfid, dim_name(:vlen), var_id)
 * *kob* had to add an ncvinq to find out variable type of dimension because
 *		 NF_FLOAT dimensions were causing core dumps. 
 		 cdfstat = NF_INQ_VAR_(cdfid, var_id, dim_name, vartype, nvdims, 
      .      	      vdims,nvatts)
 #else
-		 cdfstat = NF_INQ_DIM( cdfid, vdims(nvdims), dim_name, 
-     .                           npts )
-		 cdfstat = NF_INQ_VARID (cdfid, dim_name, var_id)
+		 cdfstat = NF_INQ_VARID (cdfid, dim_name(:vlen), var_id)
 * *kob* had to add an ncvinq to find out variable type of dimension because
 *		 NF_FLOAT dimensions were causing core dumps. 
 		 cdfstat = NF_INQ_VAR (cdfid, var_id, dim_name, vartype, nvdims, 
@@ -359,7 +366,7 @@ c!c! uncomment this...
 		 IF (.NOT. TM_FPEQ(SNGL(r8buff), 
      .                        SNGL(start_read_tstep))) THEN
 #endif
-		    CALL TM_ERRMSG (merr_stpmtch, status, 'MC_READ',
+		    CALL TM_ERRMSG (merr_stpmtch, status, 'MC_READ (ignore for TSERIES aggregation)',
      .           	 sf_setnum(sfcnt), sfcnt,
      .  		 TM_STRING(start_read_tstep), TM_STRING(r8buff),*70)
 *Now check to make sure that the number of files in this stepfile pulled 
@@ -385,15 +392,28 @@ c!c! uncomment this...
 
            cd_scaled(ivar) = got_scale .OR. got_scale
 
-* let's read the data (finally)
-	   CALL CD_READ( dset, ivar,
-     .		a_lo_x, a_lo_y, a_lo_z, a_lo_t_offset, a_lo_e, a_lo_f,
-     .		a_hi_x, a_hi_y, a_hi_z, a_hi_t_offset, a_hi_e, a_hi_f, 
-     .	        tmp_lo, tmp_hi, stride,
-     .	        var(a_lo_x, a_lo_y, a_lo_z,
-     .	        a_lo_t+(start_read_lstep-use_lo(4)),
-     .	        a_lo_e, a_lo_f),
-     .		sfcnt, status)
+* let's read the data (finally). 
+
+* (Ticket 2493) The E and F dimensions are "outside" of T and so must be read 
+* sequentially if we are going to call CD_READ to do this. (Is there a more 
+* efficient solution?)
+
+	   DO n = a_lo_f, a_hi_f
+	      tmp_lo(6) = n
+	      tmp_hi(6) = n
+	      DO m = a_lo_e, a_hi_e
+	         tmp_lo(5) = m
+	         tmp_hi(5) = m
+	         CALL CD_READ( dset, ivar,
+     .		   a_lo_x, a_lo_y, a_lo_z, a_lo_t_offset, m, n, 
+     .		   a_hi_x, a_hi_y, a_hi_z, a_hi_t_offset, m, n, 
+     .	           tmp_lo, tmp_hi, stride,
+     .	           var(a_lo_x, a_lo_y, a_lo_z,
+     .	           a_lo_t+(start_read_lstep-use_lo(4)),
+     .	           m, n),
+     .		   sfcnt, status)
+	      ENDDO
+	   ENDDO
 * 7/97 - *kob* error check as in tm_choose_read.F
 	   if (status .NE. merr_ok) GOTO 5000
 	  
diff --git a/fmt/src/string_array_clear.c b/fmt/src/string_array_clear.c
index e7aae75..2a302dc 100644
--- a/fmt/src/string_array_clear.c
+++ b/fmt/src/string_array_clear.c
@@ -40,7 +40,7 @@
  */
 
 #include <Python.h> /* make sure Python.h is first */
-#include <stdio.h>
+#include <stdlib.h>
 #include "string_array.h"
 
 void string_array_clear_(double * string_array_header)
diff --git a/fer/stk/is_read_remote.F b/fmt/src/tm_adjust_bounds.F
similarity index 58%
copy from fer/stk/is_read_remote.F
copy to fmt/src/tm_adjust_bounds.F
index a2a8db6..b2f14f9 100644
--- a/fer/stk/is_read_remote.F
+++ b/fmt/src/tm_adjust_bounds.F
@@ -1,7 +1,6 @@
-	SUBROUTINE IS_READ_REMOTE ( memory, *, *, status )
+	SUBROUTINE TM_ADJUST_BOUNDS(iaxis, modlen, axwwlen, ok)
+
 
-*
-*
 *  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),
@@ -34,53 +33,58 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
+* Addressing ticket 2504:
+* If coordinates on an irregular axis lie within the modulo length but 
+* their bounds make the axis too long, reset the bounds so the axis 
+* is the modulo length. This is only called when Ferret is generating
+* bounds on a DEFINE AXIS given without cell edges or from a netCDF file
+* where bounds were not included in the file.
 *
-* read a grid of data defined via LET/REMOTE from a remote F-TDS dataset
+* return axwwlen
 
-* programmer - Ansley Manke
-* NOAA/PMEL, Seattle, WA - Thermcal Modeling and Analysis Program
-*
-* revision 0.0 - 2/2013
+#	include	"tmap_dset.parm"
+	include	'tmap_dims.parm'
+	include 'xtm_grid.cmn_text'
 
-* calling argument declarations:
-	INTEGER	status
-	REAL	memory(*)
-	REAL	baddat
+	LOGICAL ok
+	INTEGER iaxis
+	REAL	modlen, axwwlen
 
-* normal exit is for error conditions
-* exit #1 is to request another grid ( stack has been pushed )
-* exit #2 is to signal completion of the activity at this stack level
+	LOGICAL TM_FPEQ
+	INTEGER TM_LENSTR1, ipt1, ipte
+	REAL	TM_WW_AXLEN, delta
+	REAL*4	r4delta
 
-* internal variable declarations:
-	INTEGER cx, idim, ivar, cat
+* 
+	ok = .TRUE.
+	axwwlen = TM_WW_AXLEN(iaxis)
 
-	include	'tmap_dims.parm'
-#	include	"tmap_dset.parm"
-	include	'xdset_info.cmn_text'
-	external xdset_info_data
-	include	'ferret.parm'
-	include	'errmsg.parm'
-	include	'interp_stack.parm'
-	include	'xcontext.cmn'
-	include	'xvariables.cmn'
 
-* --- end of introductory code ---
+* Exit if the modulo length is 0. which indicates modulo length is axis length.
+	IF (modlen .EQ. 0.) GOTO 5000
 
-* initialize
-	cx = is_cx( isp )
+* Exit if the axis length is within the modulo length.
+	IF (axwwlen .LE. modlen) GOTO 5000
 
-	cat = cx_category(cx)
-	cx_category(cx) = cat_user_var
+* Exit if the line is regularly spaced
+	IF ( line_regular(iaxis) ) GOTO 5000
 
-	CALL READ_REMOTE(memory, baddat, cx, is_mr(isp), status )
-        IF ( status .EQ. ferr_ok ) GOTO 2
+	ipt1 = line_subsc1(iaxis)
+	ipte = ipt1 + line_dim(iaxis) - 1
+		 
+	delta = modlen - (line_mem(ipte) - line_mem(ipt1))
+	line_mem(ipte+1) = line_mem(ipt1) - delta/2.
+	line_mem(ipte+line_dim(iaxis)+1) = line_mem(ipte) + delta/2.
 
-* error exit
- 5000	cx_category(cx) = cat
- 	RETURN
+* did the adjustment keep the length within the defined moudulo length?
+* (probably always the case if we've got this far.)
 
-* done - we got what was asked for
- 2	cx_bad_data(cx) = baddat
-	cx_category(cx) = cat
-	RETURN 2
-	END	
+	axwwlen = TM_WW_AXLEN(iaxis)
+	
+	r4delta = axwwlen ! single precision
+	delta = r4delta
+	ok = (TM_FPEQ(delta, modlen))
+	IF (.NOT.ok) axwwlen = 0.
+	
+ 5000	RETURN
+	END
diff --git a/fmt/src/tm_axis_direction.F b/fmt/src/tm_axis_direction.F
index f739bcb..9c403ae 100644
--- a/fmt/src/tm_axis_direction.F
+++ b/fmt/src/tm_axis_direction.F
@@ -48,11 +48,14 @@
 *                  use these for non-lat/lon axes. Assign the axis the 
 *                  corresponding direction.
 * V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
+* V710 9/16 *acm* Use ww_dim_name from xtext_info.cmn
+* V710 1/17 *acm* Recognize generic FF axis direction (FI is forecast-time specific)
 
         include 'tmap_dims.parm'
 #include "tmap_dset.parm"
 #include "gt_lib.parm"
         include 'xtm_grid.cmn_text'
+	include 'xtext_info.cmn'  ! with ww_dim_name
 
 * calling argument declarations:
       INTEGER  iaxis
@@ -61,8 +64,7 @@
 * *kob* explicit definitions not allowed on decl line in linux...
 *       moved it to parameter line 10/96
       INTEGER STR_UPCASE, idim, istat
-      CHARACTER*1 c1, ww_dim_name(nferdims) 
-      DATA  ww_dim_name/'X','Y','Z','T','E','F'/
+      CHARACTER*1 c1
       CHARACTER*2 orient
 
 * initialize
@@ -87,6 +89,8 @@
          TM_AXIS_DIRECTION = y_dim
       ELSEIF (orient .EQ. 'TT' ) THEN
          TM_AXIS_DIRECTION = t_dim
+      ELSEIF (orient .EQ. 'FF' ) THEN
+         TM_AXIS_DIRECTION = f_dim
       ELSE
          TM_AXIS_DIRECTION = 0
       ENDIF
diff --git a/fmt/src/tm_axis_recursive.F b/fmt/src/tm_axis_recursive.F
index 0f5a9ef..a941805 100644
--- a/fmt/src/tm_axis_recursive.F
+++ b/fmt/src/tm_axis_recursive.F
@@ -1,4 +1,4 @@
-	LOGICAL FUNCTION TM_AXIS_RECURSIVE (axis)
+	LOGICAL FUNCTION TM_AXIS_RECURSIVE (axis, true_month)
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -38,18 +38,20 @@
 
 
 * V533 *sh* 6/01
+* V710 12/16 *acm* Ticket 2158: working with true monthly time axes.
 
 	include 'tmap_dims.parm'
 	include 'implicit.parm'
 	include	'xtm_grid.cmn_text'
 
 * calling argument declarations
+	LOGICAL true_month
 	INTEGER axis
 
 * internal variable declarations
 
 	TM_AXIS_RECURSIVE = line_parent(axis) .NE.0
-     .		      .AND. .NOT.line_regular(axis)
+     .   .AND. (.NOT.line_regular(axis) .OR. true_month)
 
 	RETURN
 	END
diff --git a/fmt/src/tm_break_fmt_date.F b/fmt/src/tm_break_fmt_date.F
index 911eaa2..b593725 100644
--- a/fmt/src/tm_break_fmt_date.F
+++ b/fmt/src/tm_break_fmt_date.F
@@ -51,7 +51,7 @@
 * V67  *acm* 3/11 - If there is a T between the date and time in the unitsi 
 *                   string "months since yyyy-mm-ddThh:mm:ss (as in GRIB files) 
 *                   allow that. Replace T with a space. Ticket 1806.
-
+* V72 *acm*  3/17   If there is a Z at the end, lop that off.
 
 * ARGUMENT DEFINITIONS
 *  form  - code for the date string format
@@ -99,6 +99,10 @@
 *     If there is a T between the date and time (as in GRIB files) replace with a space.
            IF (date(11:11) .EQ. 'T') date(11:11) = ' '
 
+* If there is a Z at the end, lop that off.
+
+           IF (date(dlen:dlen) .EQ. 'Z') date(dlen:dlen) = ' '
+
 	   CALL TM_FTOC_STRNG( date(:dlen), dhol, slen)
 	   status = TM_BREAK_FMT_DATE_C(dhol, year, month,
      .				        day, hour, minute, fsecond)
diff --git a/fmt/src/tm_check_bnds_centered.F b/fmt/src/tm_check_bnds_centered.F
index 422c5eb..4d81e23 100644
--- a/fmt/src/tm_check_bnds_centered.F
+++ b/fmt/src/tm_check_bnds_centered.F
@@ -59,6 +59,9 @@
 	REAL epsilon_23, epsilon
 	REAL*8 depsilon_46, depsilon, first_delta
 
+      epsilon_23 =  2.**(-23) 
+      depsilon_46 =  2.**(-46) 
+
 	ipt1 = line_subsc1(nline)
 	npts = line_dim(nline)
 	ibx1 = ipt1 + npts
diff --git a/fmt/src/tm_check_coords.F b/fmt/src/tm_check_coords.F
new file mode 100644
index 0000000..eeaa49f
--- /dev/null
+++ b/fmt/src/tm_check_coords.F
@@ -0,0 +1,280 @@
+	SUBROUTINE TM_CHECK_COORDS (ipt1, ipte, is_double, use_strict, 
+     .                              has_repeated, misordered, micro, 
+     .                              epsilon, depsilon)
+
+*  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. 
+*
+*
+* Ferret v7.1 *acm* 1/13/2017
+* This routine replaces identical logic in cd_get_1_axis and xeq_define, 
+* checking for repeated coordinates and doing micro-adjusting if possible.
+*
+* Check if coordinates in coordinate array have repeated coordintes as in cd_get_1_axis 
+* or xeq_define.Apply micro-adjusging to correct this, unless flag use_strict is set.
+
+* Arguments
+* ipt1, ipte  range of values in line_mem
+* is_double, for netCDF files, flag is true if the coordinates in the file are double precision.
+* use_strict, for netCDF files, flag is true if the user requested /STRICT; do not do micro-adjusting
+* micro      If positive, use this value for the micro-adjustment, otherwise compute it.
+
+* Returns:
+*  has_repeated		True if coordinates found to be repeating.
+*  misordered		True if coordinates cannot be fixed
+*  epsilon		For single-precision input coordinates, the epsilon used to compare coordinates
+*  depsilon		For double-precision input coordinates,    ""            ""
+
+
+        include 'tmap_dims.parm'
+        include 'xtm_grid.cmn_text'
+        external xgt_grid_data
+        include 'xio.cmn_text'
+        external xio_data
+
+* argument declarations
+
+	LOGICAL is_double, has_repeated, misordered, use_strict
+	INTEGER ipt1, ipte
+	REAL	micro, epsilon, depsilon
+
+* Local variable declarations
+	LOGICAL TM_DFPEQ_TOL, TM_FPEQ_EPS
+	REAL	dfirst_delta, first_delta, micro_adj, madj, delta, zero
+	REAL epsilon_23, depsilon_46
+	INTEGER i, i0, i1, i2, i3, vlen
+
+* Initialize
+	epsilon_23 =  2.**(-23) 
+	depsilon_46 =  2.**(-46) 
+	
+	has_repeated = .FALSE.
+	misordered = .FALSE.
+
+
+	IF (ipte-ipt1 .LE. 1) RETURN
+
+* Set epsilon value for comparing coordinates
+
+	epsilon = 0.
+	depsilon = 0.
+
+        IF (is_double) THEN
+
+           dfirst_delta = line_mem(ipt1+1) - line_mem(ipt1)
+	   IF (dfirst_delta .LT. depsilon_46) THEN
+	      DO i = ipt1+2, ipte
+                dfirst_delta = line_mem(i) - line_mem(i-1) 
+		IF (dfirst_delta .GE. depsilon_46) EXIT  ! from loop
+	      ENDDO
+	      IF (dfirst_delta .LT. depsilon_46) THEN
+	         misordered = .TRUE.
+		 GOTO 1000
+	      ENDIF
+	   ENDIF
+           depsilon = depsilon_46 * 2.*(ABS(line_mem(ipte)) / dfirst_delta )
+           depsilon = depsilon_46 * 2.*(ABS(line_mem(ipt1)) / dfirst_delta )
+
+        ELSE
+
+           dfirst_delta = line_mem(ipt1+1) - line_mem(ipt1)
+           epsilon = epsilon_23 * 2.*(ABS(line_mem(ipte)) / first_delta )
+           epsilon = epsilon_23 * 2.*(ABS(line_mem(ipt1)) / first_delta )
+	   
+	   IF (first_delta .LT. epsilon_23) THEN
+	      DO i = ipt1+2, ipte
+                first_delta = line_mem(i+1) - line_mem(i) 
+		IF (first_delta .GE. epsilon_23) EXIT  ! from loop
+	      ENDDO
+	      IF (first_delta .LT. epsilon_23) THEN
+	         misordered = .TRUE.
+		 GOTO 1000
+	      ENDIF
+	   ENDIF
+
+	ENDIF
+
+* If repeated values, apply micro-adjusting. 
+* Or report as a warning if the user requested /STRICT.
+
+	IF (micro .GT. 0.) THEN
+	   micro_adj = micro
+	ELSE
+	   micro_adj = 1E-7 * (line_mem(ipte) - line_mem(ipt1))
+	ENDIF
+
+* ... are there repeated values?
+	 
+	IF (is_double) THEN
+	   zero = 0.
+	   DO 110 i1 = ipt1+1, ipte
+              delta = line_mem(i1) - line_mem(i1-1)
+              IF (TM_DFPEQ_TOL(delta, zero, depsilon) ) THEN
+	          has_repeated = .TRUE.
+		  GOTO 130
+	      ENDIF
+ 110       CONTINUE
+
+	ELSE
+           zero = 0.0
+	   DO 120 i1 = ipt1+1, ipte
+	      delta = line_mem(i1) - line_mem(i1-1)
+	      IF (TM_FPEQ_EPS(epsilon, delta, zero) ) THEN
+	          has_repeated = .TRUE.
+		  GOTO 130
+	      ENDIF
+ 120       CONTINUE
+
+	ENDIF
+
+ 130	CONTINUE
+
+* We are done if repeated values not found, or if the user asked for /STRICT
+
+	IF (.NOT. has_repeated .OR. use_strict) GOTO 1000
+
+* ... make micro-adjustments if axis has repeated values (4/99)
+
+        IF (micro_adj .EQ. 0.) THEN
+           i1 = ipt1+1
+           misordered = .TRUE.
+           GOTO 1000
+        ENDIF
+
+        i0 = ipt1
+
+* --- adjust coordinates coming in as double-precision
+
+        IF (is_double) THEN
+
+           DO 170  i1 = ipt1+1, ipte
+	    
+               delta = line_mem(i1) - line_mem(i1-1)
+               IF (TM_DFPEQ_TOL(delta, zero, depsilon) ) THEN
+*    ... locate end of repeating block
+                  DO 140 i2 = i1, ipte
+                        delta = line_mem(i2) - line_mem(i1)
+                        IF ( delta .GT. depsilon ) GOTO 150
+ 140              CONTINUE
+                  i2 = ipte + 1    ! one beyond last value
+                  i0 = i1 - 2
+                  i3 = i2 - 1
+*    ... micro-adjust repeating values from i1 to i2-1
+ 150              CONTINUE
+
+                  delta = line_mem(i2)-line_mem(i1)
+                  IF (.NOT.TM_DFPEQ_TOL(delta, zero, depsilon) .AND. 
+     .                 line_mem(i2).GT.line_mem(i1)) THEN
+                     i0 = i1-1
+                     i3 = i2
+                  ENDIF
+
+* Check and readjust the size of micro_adj if too small
+                  madj = micro_adj
+                  IF (micro_adj*(i2-i1+1) .GT. 
+     .                line_mem(i3) - line_mem(i0) ) THEN
+                     madj = (line_mem(i3)-line_mem(i0))/(i2-i1+1)
+                     IF (madj .EQ. 0.)  THEN
+	                misordered = .TRUE.
+	                GOTO 1000
+	             ENDIF
+	          ENDIF
+
+                  DO 160 i3 = i1, i2-1
+                     line_mem(i3) = line_mem(i3) + (i3-i1+1)* madj
+ 160              CONTINUE
+                  
+                  delta = line_mem(i2)-line_mem(i2-1)
+                  IF ( i2 .LT. ipte .AND. .NOT.TM_DFPEQ_TOL(delta, zero, depsilon) .AND.
+     .		      (line_mem(i2-1) .GE. line_mem(i2)))  THEN
+	             misordered = .TRUE.
+	             GOTO 1000
+                  ENDIF
+              ENDIF
+ 170       CONTINUE
+
+
+* --- adjust coordinates coming in as single-precision
+	ELSE ! single
+
+           DO 270  i1 = ipt1+1, ipte
+	    
+              delta = line_mem(i1) - line_mem(i1-1)
+              IF (TM_FPEQ_EPS(epsilon, delta, zero) ) THEN
+*    ... locate end of repeating block
+                 DO 240 i2 = i1, ipte
+                    delta = line_mem(i2) - line_mem(i1)
+                    IF (delta .GT. epsilon) GOTO 250
+ 240             CONTINUE
+                 i2 = ipte + 1    ! one beyond last value
+                 i0 = i1 - 2
+                 i3 = i2 - 1
+*    ... micro-adjust repeating values from i1 to i2-1
+ 250             CONTINUE
+
+                 delta = line_mem(i2)-line_mem(i1)
+                 IF (.NOT.TM_FPEQ_EPS(epsilon, delta, zero) .AND. 
+     .               line_mem(i2).GT.line_mem(i1)) THEN
+                    i0 = i1-1
+                    i3 = i2
+                 ENDIF
+
+* Check and readjust the size of micro_adj if too small
+                 madj = micro_adj
+                 IF (micro_adj*(i2-i1+1) .GT. 
+     .               line_mem(i3) - line_mem(i0) ) THEN
+                    madj = (line_mem(i3)-line_mem(i0))/(i2-i1+1)
+                    IF (madj .EQ. 0.)  THEN
+	                   misordered = .TRUE.
+	                   GOTO 1000
+                    ENDIF
+                  ENDIF
+                  DO 260 i3 = i1, i2-1
+                     line_mem(i3) = line_mem(i3) + (i3-i1+1)* madj
+ 260              CONTINUE
+                  
+		  
+                  delta = line_mem(i2)-line_mem(i2-1)
+                  IF ( i2 .LT. ipte .AND. .NOT.TM_FPEQ_EPS(epsilon, delta, zero) .AND.
+     .		      (line_mem(i2-1) .GE. line_mem(i2)))  THEN
+                     misordered = .TRUE.
+	             GOTO 1000
+                 ENDIF
+              ENDIF  
+ 270       CONTINUE
+
+	ENDIF ! single or double
+
+ 1000	CONTINUE
+	RETURN
+
+	END
diff --git a/fmt/src/tm_check_monthly_axis.F b/fmt/src/tm_check_monthly_axis.F
new file mode 100644
index 0000000..d6921d4
--- /dev/null
+++ b/fmt/src/tm_check_monthly_axis.F
@@ -0,0 +1,180 @@
+	SUBROUTINE TM_CHECK_MONTHLY_AXIS (coords, npts, cal_id, t0_string, units, 
+     .                                unit_string, start, delta, tunit, true_month)
+
+*  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. 
+*
+*
+* V7031 1/17 *acm* ticket 2497, Back off the auto-detection of monthly axes.
+
+
+* Check time axis; if it is a monthly axis, with cells the length of the months
+* in the given calendar, then we will  define it as a "true_month" calendar.
+
+* coords	coordinate data as read from dataset
+* npts		length of coordinate array
+* cal_id	calendar ID
+* t0_string	time origin
+* units		on input, the units of the calendar, 
+*                changed on output for true-month axis
+* unit_string	on input, the units string for the axis, 
+*                changed on output for true-month axis
+* start		on input, the first coordinate value, 
+*                changed on output for true-month axis
+* delta		on input, not set. On output, set for a true-month axis
+* tunit		time unit, e.g. 1/12 of seconds in the calendar year
+* true_month	flag for true-month calendars
+* line_characteristics arrays will also be adjusted
+
+
+        include 'tmap_errors.parm'
+        include 'tmap_dims.parm'
+        external xio_data
+        include 'xtm_grid.cmn_text'
+        external xgt_grid_data
+        include 'xunits.cmn_text'
+        external xunits_data
+        include 'calendar.decl'
+        include 'calendar.cmn'
+
+* Argument declarations
+	LOGICAL true_month
+	INTEGER npts, cal_id, units
+	REAL	coords(*), start, delta, tunit
+	CHARACTER*(*) t0_string, unit_string
+
+	LOGICAL	TM_DFPEQ_TOL
+	INTEGER TM_LENSTR1, STR_SAME, TM_UNIT_ID, TM_UNITS_CAL, 
+     .		i, i1, istep, ndx,
+     .		slen, year, month, day, zero, status
+	REAL	SECS_FROM_BC, TM_SECS_FROM_BC, 
+     .		secpday, secs_t0, secs_start, secs_end, secs_box,
+     .		secs_box_lo, days_box, days_in_mo, epsilon
+	CHARACTER TM_SECS_TO_DATE*20, TM_GET_CALENDAR_NAME*32,
+     .		datestring*20, moyr*3
+	
+  50	FORMAT (7x, I4)
+
+c Backing out of auto-detecting monthly calendar axes. When restoring this,
+c get rid of the following statements
+
+	true_month = .FALSE.
+	RETURN
+
+
+* Initialize
+	
+	secpday = 24*3600
+	epsilon = 1.e-12
+
+	IF (npts .LE. 1) THEN
+	   true_month = .FALSE.
+	   RETURN
+	ENDIF
+
+	true_month = .TRUE.
+	
+* Seconds from 0000 to t0
+
+	secs_t0 = SECS_FROM_BC( t0_string, cal_id, status )
+
+	DO istep = 1, npts-1
+
+* box low and high, in seconds using box bounds
+	   ndx = istep + npts
+
+  	   secs_start = coords(ndx)* un_convert(units)
+	   secs_end = coords(ndx+1)* un_convert(units)
+	   secs_box = secs_end - secs_start
+	   days_box = secs_box/ secpday
+
+* seconds from 0000 to box low 
+	   secs_box_lo = secs_t0 + secs_start
+	   datestring = TM_SECS_TO_DATE ( secs_box_lo, cal_id )
+	
+	   moyr = datestring(4:6)
+	   month = 0
+	   DO i = 1, cals_num_months(cal_id)
+	      IF ( STR_SAME(cals_month_names(i, cal_id), moyr) .EQ. 0) THEN
+	         month = i
+	         EXIT  ! month found, exit from loop
+	      ENDIF
+	   ENDDO
+	   read (datestring, 50) year
+
+	   IF (datestring(1:2) .NE. '01') THEN
+	      true_month = .FALSE.
+	      GOTO 5000
+	   ENDIF
+
+	   day = 1
+	   zero = 0
+	   
+	   secs_start = TM_SECS_FROM_BC ( cal_id,
+     .          year, month, day, zero, zero, zero, status)
+
+	   IF (month .LT. 12) THEN
+	      month = month + 1
+	   ELSE
+	      year = year + 1
+	      month = 1
+	   ENDIF
+	   secs_end = TM_SECS_FROM_BC ( cal_id,
+     .          year, month, day, zero, zero, zero, status)
+
+           secs_box = secs_end - secs_start
+	   days_in_mo = (secs_end - secs_start)/ secpday
+
+	   IF  (.NOT. TM_DFPEQ_TOL ( days_in_mo, days_box, epsilon ) ) THEN
+	      true_month = .FALSE.
+	      GOTO 5000
+	   ENDIF
+	ENDDO
+
+* convert first coordinate 
+	secs_start = coords(1)* un_convert(units)  ! incoming units
+	
+* new, monthly units
+        units = TM_UNIT_ID ( 'month' )
+	units = TM_UNITS_CAL ( units, cal_id, true_month )
+
+	start = (secs_start / un_convert(units) )
+	delta = 1.
+
+	datestring = TM_GET_CALENDAR_NAME(cal_id)
+	slen = TM_LENSTR1 ( datestring )
+	unit_string = 'TRUMONTH ('//datestring(:slen)//')'
+	tunit = un_convert( units )
+
+ 5000	CONTINUE
+	RETURN
+	END
diff --git a/fmt/src/tm_close_set.F b/fmt/src/tm_close_set.F
index b130c61..d26a86f 100644
--- a/fmt/src/tm_close_set.F
+++ b/fmt/src/tm_close_set.F
@@ -38,12 +38,21 @@
 * 2/2016 *sh*
 * all of the guts of this routine were moved to TM_CLOSE_SET_COND_DEALLO
 * allowing the de-allocation of grids to become a conditional matter
+* V7   5/12 *acm* Union aggregations: DEFINE DATA/AGG/U
+
+	include 'tmap_dims.parm'
+	include 'xdset_info.cmn_text'
+#       include "tmap_dset.parm"
 
 * calling argument declarations
 	INTEGER ds_num, status
-	
 
-	CALL TM_CLOSE_SET_COND_DEALLO( ds_num, .TRUE., status)
+	LOGICAL deallo		
+	
+* Union datasets don't allocate grids for their member variables
+	deallo = .TRUE.
+	IF (ds_type(ds_num) .EQ. 'UNI') deallo = .FALSE.
+	CALL TM_CLOSE_SET_COND_DEALLO( ds_num, deallo, status)
 
 	RETURN
 	END
diff --git a/fmt/src/tm_close_set_cond_deallo.F b/fmt/src/tm_close_set_cond_deallo.F
index adaafb6..e6d3426 100644
--- a/fmt/src/tm_close_set_cond_deallo.F
+++ b/fmt/src/tm_close_set_cond_deallo.F
@@ -91,6 +91,9 @@
 * V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
 * V698 1/16 *sh* treat F aggregations ('FCT') like E-aggs
 *      2/16 *sh* create this routine from TM_CLOSE_SET
+* V701  7/16 *kms* Compare ds_name to char_init2048 instead of char_init1024
+*                  Initialize ds_name and ds_des_name to char_init2048
+*                  sf_name initialized to char_init2048
 
 * arguments:
 *	ds_num	- (input) data set number (see COMMON /XSTEP_FILES/)
@@ -114,7 +117,7 @@
      .            f_num, ivar, iparm, iaux, idim
 
 * initialize: do we have an open set?
-	IF (ds_name(ds_num) .EQ. char_init1024) GOTO 9000
+	IF (ds_name(ds_num) .EQ. char_init2048) GOTO 9000
 
 * save the data format
 	its_cdf = ds_type(ds_num) .EQ. 'ENS'
@@ -154,8 +157,8 @@
 ********************************************************************************
 * Note that ds_basic_axes relate to the TMAP model output
 
-	ds_des_name(ds_num)		=	char_init1024
-	ds_name(ds_num)			=	char_init1024
+	ds_des_name(ds_num)		=	char_init2048
+	ds_name(ds_num)			=	char_init2048
 	ds_1step(ds_num)		=	real8_init
 	ds_lastep(ds_num)		=	real8_init
 	ds_delstep(ds_num)		=	real8_init
@@ -222,7 +225,7 @@
 	  ENDIF
 
 * delete step file from tables
-	  sf_name(f_num)		=	char_init256    ! *kob* 4/99
+	  sf_name(f_num)		=	char_init2048
 	  sf_setnum(f_num)		=	set_not_open
 	  sf_aux_set_num(f_num)		=	int4_init
 	  sf_nrecperstep(f_num)		=	int4_init
diff --git a/fmt/src/tm_errmsg.F b/fmt/src/tm_errmsg.F
index 70fdf18..f422bc8 100644
--- a/fmt/src/tm_errmsg.F
+++ b/fmt/src/tm_errmsg.F
@@ -289,8 +289,7 @@ cc	    fndbuff = TM_CMPRSS(found)
 	ENDIF
 
 * output step file and descriptor file if asked for
-	IF ( dset_num .NE. no_descfile      .AND.
-     .	     dset_num .NE. unspecified_int4       ) THEN
+	IF ( dset_num .GT. 0 ) THEN
 	  errbuf = ' '
 	  des_len = TM_LENSTR1(ds_des_name(dset_num))
 	  WRITE (errbuf,1300)
@@ -301,8 +300,7 @@ cc	    fndbuff = TM_CMPRSS(found)
           len_symbuf = len_symbuf + msg_len + 1
 	ENDIF
 
-	IF ( sf_num .NE. no_stepfile      .AND.
-     .	     sf_num .NE. unspecified_int4       ) THEN
+	IF ( sf_num .GT. 0 ) THEN
 	  errbuf = ' '
 	  sf_len = TM_LENSTR1(sf_name(sf_num))
 	  WRITE (errbuf,1300)
diff --git a/fmt/src/tm_exit.F b/fmt/src/tm_exit.F
index b99c8f0..4512732 100644
--- a/fmt/src/tm_exit.F
+++ b/fmt/src/tm_exit.F
@@ -40,6 +40,7 @@
 * v540 *acm* 10/01 increase length of ds_name
 * v540 *acm* 10/01  remove VMS include statements
 * v604 *acm* 7/07 increase length of ds_name, ds_des_name
+* V701  7/16 *kms* Compare ds_name to char_init2048 instead of char_init1024
 
 	include 'tmap_errors.parm'	! error code parameter defs
 #include "tmap_dset.parm"
@@ -55,7 +56,7 @@
 
 * loop over all data sets
 	DO 500 ds_num = 1, maxdsets
-	   IF (ds_name(ds_num) .EQ. char_init1024) GOTO 500
+	   IF (ds_name(ds_num) .EQ. char_init2048) GOTO 500
 
 * save the data format
            its_cdf = ds_type(ds_num) .EQ. 'CDF'
diff --git a/fmt/src/tm_exp_code.F b/fmt/src/tm_exp_code.F
index ae287fa..377add9 100644
--- a/fmt/src/tm_exp_code.F
+++ b/fmt/src/tm_exp_code.F
@@ -60,6 +60,7 @@
 * v540 *acm* 10/01  remove VMS include statements
 * v604 *acm* 7/07 increase length of ds_name, ds_des_name
 * V65  *acm* 2/10- all warnings and notes to std error not std out
+* V701  7/16 *kms* Compare ds_name to char_init2048 instead of char_init1024
 
 *  Argument definitions
 	INTEGER*4	ds_num
@@ -83,7 +84,7 @@
 	temp_code(1:6) = ' '
 
 *  Is the requested data set initialized?
-	IF (ds_name(ds_num) .EQ. char_init1024) GOTO 9000
+	IF (ds_name(ds_num) .EQ. char_init2048) GOTO 9000
 
 *  If data set type is 'GT' then check for burst experiment
 * add a check for model runs using MOM (new, vibrant cray code) 4/92 kob
diff --git a/fmt/src/tm_fmt.F b/fmt/src/tm_fmt.F
index e9b47a4..2f058fe 100644
--- a/fmt/src/tm_fmt.F
+++ b/fmt/src/tm_fmt.F
@@ -62,6 +62,8 @@
 * *acm*  V6.1 3/08  further corrections to last fix when writing a value with 
 *              negative exponent
 * *acm*  V6.5 1/10 Fix bug 1717: If the format is going to be (I0) make it (I1)
+* *acm*  V7,2 3/17 Floating-point formatted output could still have trailing zeros
+*                  after the decimal point. Remove them.
 
 * calling arguments:
 * val		- REAL*4 value to be converted
@@ -75,7 +77,7 @@
 	REAL		val
 
 * internal variable declarations:
-	LOGICAL		exp_fmt, negative, fixed_pt
+	LOGICAL		TM_DFPEQ, exp_fmt, negative, fixed_pt
 	INTEGER		slen, sig_left, sig_full, nleft, nright, full,
      .			sig_max, full10, xtra, sig_needed, pow10,
      .			chk10, chk10_save, waste, i, need_adjust, ind,
@@ -322,9 +324,13 @@
 * the adjustment for handling large values does not always produce 
 * accurate results. Compare the result to the original value and if
 * needed use the formatting method used in ascii data listings.
+* Ticket 2510: make the test more strict differing val and aval.
+* Using the VAR_DATA_FMT call takes care of the cases where the values
+* are so close that the number will be written as an integer.
 
+	str_len = TM_LENSTR1( outstring )
 	READ (outstring,*) aval
-	IF (need_adjust.GT.0 .AND. ABS(val-aval).GT.0.01) THEN
+	IF (need_adjust.GT.0 .AND. .NOT.TM_DFPEQ(val, aval) ) THEN
 	   width = 4
 	   prec_digits = ABS(digits)
 	   IF (digits .GT. 0) prec_digits = digits
@@ -334,8 +340,18 @@
 	   CALL VAR_DATA_FMT( nleft, nright, prec_digits, width,
      .                         width, fmt, dummy_fmt )
 	   WRITE ( outstring, fmt ) val
+	   str_len = TM_LENSTR1( outstring )
+
+* remove leading blanks.
+	   ind = 1
+	   DO WHILE (outstring(ind:ind) .EQ. ' ') 
+              ind = ind+1
+	   ENDDO
+           IF (ind.GT.1) outstring = outstring(ind:str_len)
+	   str_len = TM_LENSTR1( outstring )
 	ENDIF
 
+* Remove trailing 0s before the exponent.
 	str_len = TM_LENSTR1( outstring )
 	IF (INDEX(outstring, '0E') .GT. 0) THEN
 	   ind = INDEX(outstring, '0E')
@@ -346,15 +362,22 @@
 	   ENDDO
 	ENDIF
 
-	str_len = TM_LENSTR1( outstring )
-	IF (INDEX(outstring, '0E') .GT. 0) THEN
-	   ind = INDEX(outstring, '0E')
-	   DO WHILE (ind .GT. 0)
-	      strend = outstring(ind+1:str_len)
-	      outstring = outstring(1:ind-1)//strend
-	      ind = INDEX(outstring, '0E')
+* Remove trailing 0s on a floating point formatted number
+	slen = TM_LENSTR1( outstring )
+	IF (INDEX(outstring, '.') .GT.0 .AND. 
+     .	    INDEX(outstring, 'E+').EQ.0 .AND. 
+     .	    INDEX(outstring, 'E-').EQ.0) THEN
+	   DO i = slen,1,-1
+	      IF (outstring(i:i) .EQ. '0') THEN
+                 outstring(i:i) = ' '
+	      ELSE
+                 GOTO 3500
+	      ENDIF
 	   ENDDO
+ 3500      CONTINUE
 	ENDIF
+
+
 	str_len = TM_LENSTR1( outstring )
 
 	TM_FMT = outstring
diff --git a/fmt/src/tm_fmt_user.F b/fmt/src/tm_fmt_user.F
index ae5cbca..02836e9 100644
--- a/fmt/src/tm_fmt_user.F
+++ b/fmt/src/tm_fmt_user.F
@@ -45,6 +45,7 @@
 *            grave-accent expressions with precision set by the user.
 *            It applies the # of digits more strictly than TM_FMT, and 
 *            returns exponential results consistently.
+*Ticket 2510, failures when values are nearly an integer.
 
 * calling arguments:
 * val		- REAL value to be converted
@@ -57,7 +58,7 @@
 	REAL		val
 
 * internal variable declarations:
-	LOGICAL		exp_fmt, negative, fixed_pt
+	LOGICAL		TM_DFPEQ, exp_fmt, negative, fixed_pt
 	INTEGER		slen, sig_left, sig_full, nleft, nright, full,
      .			sig_max, full10, xtra, sig_needed, pow10,
      .			chk10, chk10_save, waste, i, need_adjust, ind,
@@ -204,6 +205,12 @@
 
 * get number of digits remaining after trimming off right hand zeros
 	full10 = 10 ** (sig_full-sig_min)
+
+c	IF (full10 .EQ. full) THEN  ! value is close to an integer
+c	   sig_needed = sig_full
+c	   GOTO 200
+c	ENDIF
+
 	DO 100 sig_needed = sig_min, sig_full
 	   IF ( MOD(full, full10) .EQ. 0 ) GOTO 200
 	   full10 = full10 / 10
@@ -348,9 +355,13 @@ c ...
 * the adjustment for handling large values does not always produce 
 * accurate results. Compare the result to the original value and if
 * needed use the formatting method used in ascii data listings.
+* Ticket 2510: make the test more strict differing val and aval.
+* Using the VAR_DATA_FMT call takes care of the cases where the values
+* are so close that the number will be written as an integer.
 
+	str_len = TM_LENSTR1( outstring )
 	READ (outstring,*) aval
-	IF (need_adjust.GT.0 .AND. ABS(val-aval).GT.0.01) THEN
+	IF (need_adjust.GT.0 .AND. .NOT.TM_DFPEQ(val, aval) ) THEN
 	   width = 4
 	   prec_digits = ABS(digits)
 	   IF (digits .GT. 0) prec_digits = digits
@@ -360,9 +371,17 @@ c ...
 	   CALL VAR_DATA_FMT( nleft, nright, prec_digits, width,
      .                         width, fmt, dummy_fmt )
 	   WRITE ( outstring, fmt ) val
-	ENDIF
+	   str_len = TM_LENSTR1( outstring )
 
-	str_len = TM_LENSTR1( outstring )
+* remove leading blanks.
+	   ind = 1
+	   DO WHILE (outstring(ind:ind) .EQ. ' ') 
+              ind = ind+1
+	   ENDDO
+           IF (ind.GT.1) outstring = outstring(ind:str_len)
+	   str_len = TM_LENSTR1( outstring )
+	ENDIF
+	
 	IF (INDEX(outstring, '0E') .GT. 0) THEN
 	   ind = INDEX(outstring, '0E')
 	   DO WHILE (ind .GT. 0)
@@ -382,6 +401,7 @@ c ...
 	   ENDDO
 	ENDIF
 
+        
 * Remove 00000 from the end of the fractional part of a fixed-point string
 
 	IF (INDEX(outstring, '.') .GT. 0 .AND. INDEX(outstring, 'E').EQ.0) THEN
@@ -393,7 +413,7 @@ c ...
 	   str_len = is
 	   IF (outstring(is:is) .EQ. '.') str_len = str_len - 1
 	ENDIF
-        
+
 	TM_FMT_USER = outstring(:str_len)
 	RETURN
 
diff --git a/fer/mem/mr_available.F b/fmt/src/tm_fpeq_eps_sngl.F
similarity index 71%
copy from fer/mem/mr_available.F
copy to fmt/src/tm_fpeq_eps_sngl.F
index 5ad6b6d..486ee43 100644
--- a/fer/mem/mr_available.F
+++ b/fmt/src/tm_fpeq_eps_sngl.F
@@ -1,4 +1,4 @@
-	SUBROUTINE MR_AVAILABLE ( mr )
+	LOGICAL FUNCTION TM_FPEQ_EPS_SNGL ( eps, a, b )
 
 *
 *
@@ -35,41 +35,35 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* flag that the specified variable is available to be used as a component and
-* to be deleted should memory space be tight
-
+* test to see if REAL*4 floating point numbers are equal to within
+* "reasonable" accuracy
+* REAL*4 (F_floating) machine error on the VAX is "approximately one part in
+* 2**23" or 1.2E-7.  Allow 4.E-7 as machine error after many typical roundoffs.
 * programmer - steve hankin
 * NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
 * written for VAX computer under VMS operating system
 *
-* V200:  6/12/89
-*        2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* programmer - Ansley Manke, from tm_fpeq.F
+* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+*
+* 9/2016 *acm* from TM_FPEQ_EPS
+* Single-precision version of TM_FPEQ_EPS, to be called from PPLUS.
 
-        IMPLICIT NONE
-        include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'xvariables.cmn'
 
-* calling argument declarations:
-	INTEGER mr
+* calling arguments:
+	REAL*4 eps, a, b
 
-* internal variable declarations:
-	INTEGER last_head
+* local variables
+        REAL*4 abmin, diffeps
 
-* set flag that it is available for use and for deletion
-	mr_protected( mr ) = mr_not_protected
+* determine the maximum relative error
+        abmin = MIN( ABS(a), ABS(b) )
+        diffeps = abmin * ABS(eps)
 
-! temp diag
-	IF (mr_del_flink(mr) .NE. unspecified_int4) 
-     .		WRITE (6,*)' mr_avail_err'
+* if close to zero, set the maximum absolute error
+        IF ( diffeps .LT. ABS(eps) ) diffeps = ABS(eps)
 
-* insert the variable at the head of the deletion priority chain
-	last_head = mr_del_flink(0)
-	mr_del_blink(mr) = 0
-	mr_del_flink(mr) = last_head
-	mr_del_flink(0)  = mr
-	mr_del_blink(last_head) = mr
+        TM_FPEQ_EPS_SNGL = ( ABS(a-b) .LE. diffeps )
 
 	RETURN
 	END
-
diff --git a/fmt/src/tm_friendly_read.F b/fmt/src/tm_friendly_read.F
index efe46b3..b30390d 100644
--- a/fmt/src/tm_friendly_read.F
+++ b/fmt/src/tm_friendly_read.F
@@ -70,7 +70,7 @@
 * call c-written routine to get input line
         CALL TM_FTOC_READLINE( hprompt, hbuff )
 
-* translate recieved input line to FORTRAN character array
+* translate received input line to FORTRAN character array
         CALL TM_CTOF_STRNG( hbuff, buff, blen )
 
 * null string returned means that EOF (^D) was entered
diff --git a/fmt/src/tm_ftoc_readline.c b/fmt/src/tm_ftoc_readline.c
index cd80a56..210ccb7 100644
--- a/fmt/src/tm_ftoc_readline.c
+++ b/fmt/src/tm_ftoc_readline.c
@@ -94,9 +94,8 @@ static char *pyferret_readline(char *prompt)
     resultobj = PyObject_CallMethod(pyferret_module_pyobject, 
                                     "_readline", "s", prompt);
     if ( resultobj == NULL ) {
-        sprintf(static_line, "**ERROR pyferret_readline in tm_ftoc_readline.c: "
-                             "problems with the call to pyferret._readline: %s\n",
-                             pyefcn_get_error());
+        /* Exception - should not happen but treat as if EOF */
+        PyErr_Clear();
         return NULL;
     }
 
@@ -107,11 +106,14 @@ static char *pyferret_readline(char *prompt)
     }
 
     /* get the string out of the result object */
+#if PY_MAJOR_VERSION > 2
+    resultstr = PyUnicode_AsUTF8(resultobj);
+#else
     resultstr = PyString_AsString(resultobj);
+#endif
     if ( resultstr == NULL ) {
-        sprintf(static_line, "**ERROR pyferret_readline in tm_ftoc_readline.c: "
-                             "problems interpreting the return value of pyferret._readline: %s\n",
-                             pyefcn_get_error());
+        /* Exception (not a string object) - should not happen but treat as if EOF */
+        PyErr_Clear();
         Py_DECREF(resultobj);
         return NULL;
     }
diff --git a/fmt/src/tm_get_like_dyn_line.F b/fmt/src/tm_get_like_dyn_line.F
index e388de2..3b6e30f 100644
--- a/fmt/src/tm_get_like_dyn_line.F
+++ b/fmt/src/tm_get_like_dyn_line.F
@@ -54,6 +54,8 @@
 * V541 *sh* 2/02 - added support for parent modulo length less than axis length
 * V581*acm*  6/05 - For fix to bug 1271, add flag line_shift_origin
 * v694 1/15 *acm* (see ticket 2227) handle the line_dim_only flag
+* V71 12/16 *acm* Ticket 2158: working with true monthly time axes, the def 
+*                  for line_start behaves as for irregular axes
 
 * Arguments
 	INTEGER		idim, like, class, outline, status
@@ -74,9 +76,11 @@
 	include 'tmap_errors.parm'
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
+	include 'xunits.cmn_text'
+	external xunits_data
 *
 * Local definitions
-	LOGICAL		TM_ITS_SUBSPAN_MODULO
+	LOGICAL		TM_ITS_SUBSPAN_MODULO, true_month
 	INTEGER		inline
 	INTEGER		TM_FIND_LIKE_DYN_LINE
 
@@ -133,7 +137,8 @@
 * ... every nth index of parent line
 	ELSEIF ( class .EQ. pline_class_stride ) THEN
 
-	   IF ( line_regular(inline) ) THEN
+	   true_month = line_unit_code(inline) .LE. pun_trumonths
+	   IF ( line_regular(inline) .AND. .NOT.true_month) THEN
 	      line_parent(inline)    = like
 	      line_start(inline)     = line_start(like)
      .				     + (lo-1)*line_delta(like)
diff --git a/fmt/src/tm_init_dset.F b/fmt/src/tm_init_dset.F
index 5e26384..1d2ec26 100644
--- a/fmt/src/tm_init_dset.F
+++ b/fmt/src/tm_init_dset.F
@@ -112,6 +112,8 @@
 * V693+ *sh* 12/14 added blank separator into error message 5600
 * V695+ *sh* 11/15 for DEF DATA/AGG/T added argument ok_re_use_existing
 *	           and check for existence of dataset from the get-go
+* V701  7/16 *kms* Compare ds_name to char_init2048 instead of char_init1024
+* V702 11/16 *acm* Ticket 2490, add coaching to error on tseries aggregations
 
 * arguments:
 *	dset_name	- filename of DESCRIPTOR file (input)
@@ -354,7 +356,7 @@
 
 * Assign data set number, exiting if maximum number of data sets are open
 	DO 110 set_cnt = 1,maxdsets
-	  IF (ds_name(set_cnt) .EQ. char_init1024) THEN
+	  IF (ds_name(set_cnt) .EQ. char_init2048) THEN
 	    dset_num = set_cnt
 	    ds_des_name(dset_num) = des_name
             ds_name(dset_num) = TM_CLEAN_FILENAME( dset_name )
@@ -572,12 +574,23 @@
      .			no_errstring, *9900)
 
  5400	risc_buff = dset_name
- 	CALL TM_ERRMSG (merr_notmounted, status, 'TM_INIT_DSET',
+        IF (ok_re_use_existing) THEN
+ 	   CALL TM_ERRMSG (merr_notmounted, status, 'TM_INIT_DSET',
      .			unspecified_int4, no_stepfile,
      .			'Searched $FER_DESCR and $FER_DATA for '
      .                  //risc_buff(:TM_LENSTR1(risc_buff))//
      .                  '('//def_ext//','//def_cdf//','//def_des//')',
      .			no_errstring, *9950)
+        ELSE
+ 	   CALL TM_ERRMSG (merr_notmounted, status, 'TM_INIT_DSET',
+     .			unspecified_int4, no_stepfile,
+     .			'Searched $FER_DESCR and $FER_DATA for '
+     .                  //risc_buff(:TM_LENSTR1(risc_buff))//
+     .                  '('//def_ext//','//def_cdf//','//def_des//
+     .                  '). For a Timeseries aggregation, specify the '//
+     .                  'NetCDF file/path names or OPeNDAP dataset names.',
+     .			no_errstring, *9950)
+        ENDIF
 
  5500	risc_buff = dset_name
 	CALL TM_ERRMSG (merr_notmounted, status, 'TM_INIT_DSET',
diff --git a/fmt/src/tm_its_subspan_modulo.F b/fmt/src/tm_its_subspan_modulo.F
index 00caf76..faa7e16 100644
--- a/fmt/src/tm_its_subspan_modulo.F
+++ b/fmt/src/tm_its_subspan_modulo.F
@@ -41,6 +41,7 @@
 *                 it is single precision. When put into double prec, the last 
 *                 several digits have random stuff, so got a return of TRUE  
 *                 from this fcn when it wasnt.  Do single-precision comparison.
+* V720 *acm* 3/17 Fix ticket 2520. Axis longer than modulo lenght was marked subspan.
 
 	include 'tmap_dims.parm'
 	include	'xtm_grid.cmn_text'
@@ -57,12 +58,10 @@
 	   TM_ITS_SUBSPAN_MODULO = .FALSE.
 	ELSEIF ( line_modulo(axis) ) THEN
 
-cc           TM_ITS_SUBSPAN_MODULO = TM_WW_AXLEN    (axis)
-cc     .                        .NE. TM_MODULO_AXLEN(axis)
-
+C for ticket 2520: axis that is slightly too LONG, was marked as subspan!
            wwlen = TM_WW_AXLEN(axis)
            modlen = TM_MODULO_AXLEN(axis) 
-	   TM_ITS_SUBSPAN_MODULO = (.NOT. TM_FPEQ(wwlen, modlen) )
+	   TM_ITS_SUBSPAN_MODULO = (.NOT. TM_FPEQ(wwlen, modlen) ).AND. (wwlen.LT.modlen)
 
 	ELSE 
 	   TM_ITS_SUBSPAN_MODULO = .FALSE.
diff --git a/fmt/src/tm_rm_tmp_line.F b/fmt/src/tm_make_new_dyn_grid.F
similarity index 72%
copy from fmt/src/tm_rm_tmp_line.F
copy to fmt/src/tm_make_new_dyn_grid.F
index b73f57e..31e56bf 100644
--- a/fmt/src/tm_rm_tmp_line.F
+++ b/fmt/src/tm_make_new_dyn_grid.F
@@ -1,4 +1,4 @@
-	INTEGER FUNCTION TM_RM_TMP_LINE( line )
+	SUBROUTINE TM_MAKE_NEW_DYN_GRID ( ingrid, outgrid,  status)
 
 *
 *
@@ -34,43 +34,34 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*
-* Remove a line from the tmp area (from the linked list of tmp_line_hook)
-
-* *sh* 2/2106 -- using code from tm_deallo_dyn_line_sub
-
-
-* Include files
+** V7.2 *acm* 4/2017 
+* Rreate a new dynamic grid and copy the definition of ingrid to it.
+* Returns "outgrid" with the number of the new dynamic grid.
+* This is used for the new class of direction-changing functions as a subset 
+* of grid-changing fcns. An entirely grid is defined for these at grid 
+* initialization time; it will be changed according to the function and the
+* directions chosen in the function call.
 
+* Arguments
+	INTEGER	 ingrid, outgrid, status
+*
+* INCLUDE FILES
 	include 'tmap_dims.parm'
 #include "tmap_dset.parm"
 #include "gt_lib.parm"
 	include 'tmap_errors.parm'
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
-	include 'xio.cmn_text'
-
-* Argument definitions
-	INTEGER line
 
-* Internal variable declarations
-	INTEGER	next_used_line
+	CALL TM_ALLO_DYN_GRID( outgrid, status )
+	IF (status .NE. merr_ok) GOTO 9000
+	CALL TM_COPY_GRID_W_LINE_USE( ingrid, outgrid )
 
-* clear COMMON
-	line_use_cnt(line) = 0
-	line_name(line)    = char_init16
-
-* take this line from the "tmp" list and put it on the "free" list
-* ... hook onto free list
-	next_used_line   = line_flink(line)
-	line_flink(line) = line_free_ptr  
-	line_free_ptr    = line
-	   
-* ... unhook from tmp list
-	line_flink(line_blink(line)) = next_used_line
-	line_blink(next_used_line)   = line_blink(line)
+* name it "(Gnnn)"
+	WRITE ( grid_name(outgrid), 3000 ) outgrid - max_grids
+ 3000	FORMAT('(G',I3.3,')')		! restricted to 3 digits
 
 * successful completion
-	RETURN
-
+	status = merr_ok
+ 9000	RETURN
 	END
diff --git a/fer/stk/explicit_uvar.F b/fmt/src/tm_month_time_factor.F
similarity index 64%
copy from fer/stk/explicit_uvar.F
copy to fmt/src/tm_month_time_factor.F
index 7e481f2..fc11980 100644
--- a/fer/stk/explicit_uvar.F
+++ b/fmt/src/tm_month_time_factor.F
@@ -1,12 +1,11 @@
-	LOGICAL FUNCTION EXPLICIT_UVAR( uvar )
+	SUBROUTINE TM_MONTH_TIME_FACTOR (grid, true_month, timefac)
+
 
-*
-*
 *  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
@@ -34,27 +33,49 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*
-* determine if the given "user-defined" variable was explicitly created (with
-* DEFINE VARIABLE) or implicitly (e.g. with LIST U*V)
+* Return a scale factor to write true-monthly data in original time units. 
+* Converting from the secs-per-month in the true-month calendar to units from 
+* the original axis.
+* V71 12/16 *acm* For ticket 2158: working with true monthly time axes.
 
+	include 'ferret.parm'
+	include 'tmap_dims.parm'
+        include 'xunits.cmn_text'
+	include 'calendar.decl'
+        include 'xtm_grid.cmn_text'
+        external xgt_grid_data
 
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* V200:   8/8/89
-*       *acm* 3/12 cleanup ifdefs and unnecessary include files
-*       *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+	LOGICAL true_month
+	INTEGER grid
+	REAL timefac
 
-	include 'tmap_dims.parm'
-	include 'ferret.parm'
-	include 'xvariables.cmn'
+	LOGICAL ITSA_TRUEMONTH_AXIS
+	INTEGER TM_GET_CALENDAR_ID, 
+     .		iaxis, cal_id, monax_units_code, status
+	REAL	secspmon, secs_p_unit, unit_p_mon
+
+	timefac = 1.
+	iaxis = grid_line(t_dim, grid)
+!	print *, line_units(iaxis)
+
+* get axis description stored by Ferret
+
+	true_month = ITSA_TRUEMONTH_AXIS(iaxis)
+	IF (.NOT. true_month) RETURN
+
+	monax_units_code = line_unit_code(iaxis) 
+
+	cal_id = TM_GET_CALENDAR_ID ( line_cal_name(iaxis) )
+
+* Convert to days
+
+* Translation from line-unit-code (true month) to days
 
-* calling argument declarations:
-	INTEGER	uvar
+	secspmon = un_convert( monax_units_code )
 
-	EXPLICIT_UVAR = INDEX( uvar_name_code(uvar), '#' ) .EQ. 0
+	secs_p_unit = un_convert( pun_day )
+	unit_p_mon = secspmon/ secs_p_unit
+	timefac = unit_p_mon
 
 	RETURN
 	END
diff --git a/fmt/src/tm_path_list.F b/fmt/src/tm_path_list.F
index 0023ebb..e16cc7f 100644
--- a/fmt/src/tm_path_list.F
+++ b/fmt/src/tm_path_list.F
@@ -79,6 +79,7 @@
 *                    in descript.def
 * v5.42 10/02 *kob* - Increase size of temp_fname to 512
 * V6.04  7/07 *acm* - increase size of dataset names to 1024. 
+* V701  7/16 *kms*  - increase size of dataset names to 2048
 
 
 * calling argument declarations:
@@ -91,15 +92,15 @@
 * local variable declarations
       LOGICAL TM_F7721BUG_INQUIRE   ! temporary bug fix for f772.1
       INTEGER slen
-      PARAMETER ( slen = 1024)
+      PARAMETER ( slen = 2048 )
       INTEGER TM_LENSTR1, TM_LENSTR
       INTEGER start, end, plen, flen, len_pbuff, postslash, i
       INTEGER tilde, tilde_len, dot,path_len,lext           
       INTEGER vers_int,vers_len,end_tilde,path_tries
       LOGICAL file_exist,pos_ver,zero_ver
       LOGICAL relative, dot_next_to_tilde, retry_ext
-      CHARACTER  ext*8, path_buff*1024,suffix*16,TM_LEFINT*8
-      CHARACTER  tilde_buff*8,vers_no*8,temp_fname*1024
+      CHARACTER  ext*8, path_buff*(slen),suffix*16,TM_LEFINT*8
+      CHARACTER  tilde_buff*8,vers_no*8,temp_fname*(slen)
 
 	
 *
diff --git a/fmt/src/tm_rm_tmp_line.F b/fmt/src/tm_rm_tmp_line.F
index b73f57e..0a0f805 100644
--- a/fmt/src/tm_rm_tmp_line.F
+++ b/fmt/src/tm_rm_tmp_line.F
@@ -1,4 +1,4 @@
-	INTEGER FUNCTION TM_RM_TMP_LINE( line )
+	SUBROUTINE TM_RM_TMP_LINE( line )
 
 *
 *
diff --git a/fmt/src/tm_secs_to_date.F b/fmt/src/tm_secs_to_date.F
index 0a01975..94102a5 100644
--- a/fmt/src/tm_secs_to_date.F
+++ b/fmt/src/tm_secs_to_date.F
@@ -59,6 +59,9 @@
 * V692 *acm* 10/14 Trap errors in year, month, day etc before making the string 
 * V693 *acm* 11/13 back off previous change. Out-of-range time info is handled
 *                  elsewhere (Prev. change caused ticket 2116).
+* V710  3/16 *acm* Ticket 2158: working with true monthly time axes. Pull the
+*                  guts of this routine so TM_SECS_TO_YMDHMS can be called
+*                  separately to return the numeric year, month, etc 
 
 * Argument definitions
 	REAL*8		num_secs
@@ -69,30 +72,24 @@
         include 'calendar.decl'
         include 'calendar.cmn'
 
-*
-* Local Definition
+* Local Definitions
 
 	CHARACTER*20	tempstr
-	INTEGER		year, month, day, hour,
-     .			minute, second, leapadj, cent_cnt, status,
-     .			year_cnt, cent4_cnt, year4_cnt, tot_days,
-     .			tmp_days, ge59
-	REAL		yeardays, a
-	REAL*8		secs_in_minute, secs_in_hour, secs_in_day,
-     .      secs_in_year, secs_in_4years, secs_in_cent,
-     .      secs_in_4cents, total_secs, leap_yr_days
-
-	PARAMETER	(secs_in_minute	= 60.0,
-     .      secs_in_hour   = secs_in_minute*60.0,
-     .      secs_in_day    = secs_in_hour*24.0)
+	INTEGER		year, month, day, hour, minute, second, status
+	REAL		yeardays
 
-C       CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+	CALL TM_SECS_TO_YMDHMS (num_secs, cal_id, 
+     .     year, month, day, hour, minute, second, status)
 
 * trap invalid input
-	IF ( num_secs .LT. 0 ) THEN
-	   TM_SECS_TO_DATE = '01-JAN-0000:00:00:00'
-	   RETURN
-	ENDIF
+       IF ( num_secs .LT. 0 ) THEN
+          TM_SECS_TO_DATE = '01-JAN-0000:00:00:00'
+          RETURN
+       ENDIF
+
+	IF (status .NE. merr_ok) GOTO 5000
+
+* Write the date string
 
 C  Get calendar attributes
         CALL TM_GET_CALENDAR_ATTRIBUTES (cal_id, num_months, 
@@ -100,226 +97,6 @@ C  Get calendar attributes
      .                      days_in_month, days_before_month, 
      .                      month_by_day)
 
-*******************************************************************************
-* HANDLE GREGORIAN CALENDAR FIRST  
-*******************************************************************************
-	if (cal_id .eq. gregorian) then
-
-*          INITIALIZE
-	   leap_yr_days = num_days + 1.0
-
-	   secs_in_year	  = secs_in_day*num_days
-	   secs_in_4years = 
-     .      secs_in_day*(3*num_days + leap_yr_days)
-	   secs_in_cent   = 
-     .      secs_in_day*(76*num_days + 24*leap_yr_days)
-	   secs_in_4cents = 4*secs_in_cent+secs_in_day
-	   total_secs = num_secs
-
-*          SUBTRACT YEAR 0 OFF (IT'S A LEAP YEAR)
-	   total_secs = total_secs - secs_in_year - secs_in_day
-
-*          MAKE SURE WE AREN'T WORKING IN YEAR 0
-	   IF (total_secs .GE. 0) THEN
-
-*             DECIDE WHICH CENTURY IT IS
-	      cent4_cnt = INT(total_secs/secs_in_4cents)
-	      total_secs = total_secs - cent4_cnt*secs_in_4cents
-	      cent_cnt = INT(total_secs/secs_in_cent)
-*             DEC 31 ON LEAP CENTURY TEST (YEARS 400,800,1200...)
-	      IF (cent_cnt .EQ. 4 .AND.
-     .         total_secs .GE. cent4_cnt-secs_in_day)   cent_cnt = 3
-	      total_secs = total_secs - cent_cnt*secs_in_cent
-	      year = 400*cent4_cnt + 100*cent_cnt
-	  
-*             DECIDE WHAT YEAR IT IS EXACTLY (1 YEAR FOR YEAR 0)
-	      year4_cnt = INT(total_secs/secs_in_4years)
-	      total_secs = total_secs - year4_cnt*secs_in_4years
-	      year_cnt = INT(total_secs/secs_in_year)
-*             DEC 31 ON LEAP YEAR TEST (YEARS 0,4,8,12...)
-	      IF (year_cnt .EQ. 4 .AND.
-     .         total_secs .GE. secs_in_4years-secs_in_day)   year_cnt = 3
-	      total_secs = total_secs - year_cnt*secs_in_year
-	      year = year + 4*year4_cnt + year_cnt + 1
-	      
-	   ELSE
-*             Year 0 stuff
-	      year = 0
-	      total_secs = total_secs + secs_in_year + secs_in_day
-	   ENDIF
-
-*          IS THIS A LEAP YEAR? (EVERY 4TH CENTURY IS, OTHERWISE CENTURY ISN'T)
-	   leapadj = 0
-	   IF (MOD(year,400) .EQ. 0) THEN
-	      leapadj = 1
-	   ELSE IF (MOD(year,4) .EQ. 0 .AND. MOD(year,100) .NE. 0) THEN
-	      leapadj = 1
-	   ENDIF
-
-*          HOW  MANY DAYS INTO YEAR IS THIS
-	   tot_days = INT(total_secs/secs_in_day)
-	   total_secs = total_secs - tot_days*secs_in_day
-	   
-*          DECIDE WHAT MONTH/DAY IT IS
-c acm  The following INT evaluates to 0 when tot_days=59 under Linux
-c acm  using FLOAT(tot_days) does not change this
-c acm  Use a simpler IF test instead.
-
-c acm	   tmp_days = tot_days - leapadj*INT(tot_days/366. + 307./366.)
-
-           ge59 = 0
-           IF (tot_days .GE. 59) ge59 = 1
-	   tmp_days = tot_days - leapadj* ge59
-	   IF (tmp_days .LT. 0) 
-     .      STOP 'negative subscript in TM_SECS_TO_DATE'
-	   month = month_by_day(tmp_days+1)
-	   leapadj = INT(month/12. +.75)*leapadj
-	   day = tot_days - (days_before_month(month)+leapadj) + 1
-	   
-*          CALCULATE NUMBER OF HOURS
-	   hour = INT(total_secs/secs_in_hour)
-*          SUBTRACT SECONDS FOR NUMBER OF HOURS
-	   total_secs = total_secs - secs_in_hour*(hour)
-*          CALCULATE NUMBER OF MINUTES
-	   minute = INT(total_secs/secs_in_minute)
-*          SUBTRACT SECONDS FOR NUMBER OF MINUTES
-	   total_secs = total_secs - secs_in_minute*(minute)
-*          CALCULATE NUMBER OF SECONDS
-	   second = total_secs
-
-*******************************************************************************
-* HANDLE JULIAN CALENDAR   
-*******************************************************************************
-	ELSE IF (cal_id .eq. julian) then
-
-*          INITIALIZE
-	   leap_yr_days = num_days + 1.0
-
-	   secs_in_year	  = secs_in_day*num_days
-	   secs_in_4years = 
-     .      secs_in_day*(3*num_days + leap_yr_days)
-	   total_secs = num_secs
-
-*          SUBTRACT YEAR 0 OFF (IT'S A LEAP YEAR)
-	   total_secs = total_secs - secs_in_year - secs_in_day
-
-
-*          MAKE SURE WE AREN'T WORKING IN YEAR 0
-	   IF (total_secs .GE. 0) THEN
-
-	      year = 0
-	  
-*             DECIDE WHAT YEAR IT IS EXACTLY (1 YEAR FOR YEAR 0)
-	      year4_cnt = INT(total_secs/secs_in_4years)
-	      total_secs = total_secs - year4_cnt*secs_in_4years
-
-	      year_cnt = INT(total_secs/secs_in_year)
-*             DEC 31 ON LEAP YEAR TEST (YEARS 0,4,8,12...)
-	      IF (year_cnt .EQ. 4 .AND.
-     .         total_secs .GE. secs_in_4years-secs_in_day)   year_cnt = 3
-	      total_secs = total_secs - year_cnt*secs_in_year
-	      year = year + 4*year4_cnt + year_cnt + 1
-	      
-	   ELSE
-*             Year 0 stuff
-	      year = 0
-	      total_secs = total_secs + secs_in_year + secs_in_day
-	   ENDIF
-
-*          IS THIS A LEAP YEAR?
-	   leapadj = 0
-	   IF (MOD(year,4) .EQ. 0) leapadj = 1
-
-*          HOW  MANY DAYS INTO YEAR IS THIS
-	   tot_days = INT(total_secs/secs_in_day)
-	   total_secs = total_secs - tot_days*secs_in_day
-
-*          DECIDE WHAT MONTH/DAY IT IS
-
-c acm  The following INT evaluates to 0 when tot_days=59 under Linux
-c acm  using FLOAT(tot_days) does not change this
-c acm  Use a simpler IF test instead.
-
-c acm	   tmp_days = tot_days - leapadj*INT(tot_days/366. + 307./366.)
-
-           ge59 = 0
-           IF (tot_days .GE. 59) ge59 = 1
-	   tmp_days = tot_days - leapadj* ge59
-
-	   IF (tmp_days .LT. 0) 
-     .      STOP 'negative subscript in TM_SECS_TO_DATE'
-	   month = month_by_day(tmp_days+1)
-	   leapadj = INT(month/12. +.75)*leapadj
-	   day = tot_days - (days_before_month(month)+leapadj) + 1
-	   
-*          CALCULATE NUMBER OF HOURS
-	   hour = INT(total_secs/secs_in_hour)
-*          SUBTRACT SECONDS FOR NUMBER OF HOURS
-	   total_secs = total_secs - secs_in_hour*(hour)
-*          CALCULATE NUMBER OF MINUTES
-	   minute = INT(total_secs/secs_in_minute)
-*          SUBTRACT SECONDS FOR NUMBER OF MINUTES
-	   total_secs = total_secs - secs_in_minute*(minute)
-*          CALCULATE NUMBER OF SECONDS
-	   second = total_secs
-
-******************************************************************************
-* ALL OTHER SUPPORTED AND REGULAR CALENDARS
-******************************************************************************
-	ELSE IF (cal_id .GT. gregorian   .AND.  cal_id .NE. julian .AND.
-     .           cal_id .LE. max_calendars) THEN
-
-*          INITIALIZE
-	   secs_in_year	= secs_in_day*num_days
-	   secs_in_cent = 100*secs_in_year
-	   total_secs = num_secs
-
-*          SUBTRACT YEAR 0 OFF
-	   total_secs = total_secs - secs_in_year
-
-*          MAKE SURE WE AREN'T WORKING IN YEAR 0
-	   IF (total_secs .GE. 0) THEN
-
-*             DECIDE WHICH CENTURY IT IS
-	      cent_cnt = INT(total_secs/secs_in_cent)
-	      total_secs = total_secs - cent_cnt*secs_in_cent
-	      year = 100*cent_cnt
-	  
-*             DECIDE WHAT YEAR IT IS EXACTLY (1 YEAR FOR YEAR 0)
-	      year_cnt = INT(total_secs/secs_in_year)
-	      total_secs = total_secs - year_cnt*secs_in_year
-	      year = year + year_cnt + 1
-	      
-	   ELSE
-*             Year 0 stuff
-	      year = 0
-	      total_secs = total_secs + secs_in_year
-	   ENDIF
-
-*          HOW  MANY DAYS INTO YEAR IS THIS
-	   tot_days = INT(total_secs/secs_in_day)
-	   total_secs = total_secs - tot_days*secs_in_day
-	   
-*          DECIDE WHAT MONTH/DAY IT IS
-	   month = month_by_day(tot_days+1)
-	   day = tot_days - days_before_month(month) + 1
-	   
-*          CALCULATE NUMBER OF HOURS
-	   hour = INT(total_secs/secs_in_hour)
-*          SUBTRACT SECONDS FOR NUMBER OF HOURS
-	   total_secs = total_secs - secs_in_hour*(hour)
-*          CALCULATE NUMBER OF MINUTES
-	   minute = INT(total_secs/secs_in_minute)
-*          SUBTRACT SECONDS FOR NUMBER OF MINUTES
-	   total_secs = total_secs - secs_in_minute*(minute)
-*          CALCULATE NUMBER OF SECONDS
-	   second = total_secs
-	ELSE
-	   stop 'Illegal calendar in tm_secs_to_date()'
-	END IF
-
-* Put it in a string
-
 	WRITE (tempstr,1000,ERR=5000) day, month_names(month), 
      .      year, hour, minute, second
 
diff --git a/fmt/src/tm_secs_to_date.F b/fmt/src/tm_secs_to_ymdhms.F
similarity index 82%
copy from fmt/src/tm_secs_to_date.F
copy to fmt/src/tm_secs_to_ymdhms.F
index 0a01975..dd3baa7 100644
--- a/fmt/src/tm_secs_to_date.F
+++ b/fmt/src/tm_secs_to_ymdhms.F
@@ -1,4 +1,5 @@
-	CHARACTER*(*) FUNCTION TM_SECS_TO_DATE ( num_secs, cal_id )
+	SUBROUTINE TM_SECS_TO_YMDHMS ( num_secs, cal_id, 
+     .     year, month, day, hour, minute, second, status )
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -34,35 +35,16 @@
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
 *
-* Will convert secs since 01-JAN-0000 00:00:00 to a date of the form
-* yyyy-mm-dd hh:mm:ss
+* Will convert secs since 01-JAN-0000 00:00:00 to numeric values year, month,
+* day, hour, minute, second.
+* From tm_secs_to_date.F
 *
-* Written 6/16/87 By Mark Verschell for PMEL/TMAP
+* Written 12/2016 By Ansley Manke PMEL/ SDIG
 *
-* revision 0.00 - 06/16/87 - Initial Incarnation
-* revision 0.10 - 09/19/88 - changed function to CHAR*(*) from CHAR*20 and now
-*			     write to temp string to get around 20 character
-*			     minimum length needed for date output
-* revision 1.00 - 02/09/89 - Completely rewritten eliminating all if-tests,
-*			     loops, and goto's.
-* revision 2.00 - 02/20/89 - Rewritten - subtract year 0 - claculate from there
-*			     year 0 special case - readded logical leap test
-*			     Added some error handling (STOP's)
-
-* V510 5/00 *sh* - trap attempt to translate a date before 0000
-* V530: *acm* 12/00 add calendar types; cal_id.  This routine is from
-*       Jerry's tm_calendars_secs_to_date
-*       *acm* 3/01  Treat Julian calendar as a separate case.
-*       *ACm* 4/24/01 INT(tot_days/366. + 307./366.)  is 0 under linux,
-*                     when the expression is 1.  Use simple IF test on
-*		      tot_days instead to see if we're before or after day 59.
-* V692 *acm* 10/14 Trap errors in year, month, day etc before making the string 
-* V693 *acm* 11/13 back off previous change. Out-of-range time info is handled
-*                  elsewhere (Prev. change caused ticket 2116).
-
 * Argument definitions
-	REAL*8		num_secs
-	INTEGER		cal_id
+	REAL*8	num_secs
+	INTEGER	cal_id, year, month, day, hour, minute, 
+     .		second, status
 
 * Include files
 	include 'tmap_errors.parm'
@@ -72,11 +54,8 @@
 *
 * Local Definition
 
-	CHARACTER*20	tempstr
-	INTEGER		year, month, day, hour,
-     .			minute, second, leapadj, cent_cnt, status,
-     .			year_cnt, cent4_cnt, year4_cnt, tot_days,
-     .			tmp_days, ge59
+	INTEGER		leapadj, cent_cnt,year_cnt, cent4_cnt, year4_cnt, 
+     .			tot_days, tmp_days, ge59
 	REAL		yeardays, a
 	REAL*8		secs_in_minute, secs_in_hour, secs_in_day,
      .      secs_in_year, secs_in_4years, secs_in_cent,
@@ -88,10 +67,23 @@
 
 C       CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 
+	status = merr_ok
+
 * trap invalid input
-	IF ( num_secs .LT. 0 ) THEN
-	   TM_SECS_TO_DATE = '01-JAN-0000:00:00:00'
-	   RETURN
+
+	IF ( num_secs.LT.0) THEN
+	   year = 1
+	   month = 1 
+	   day = 0
+	   hour = 0
+	   minute = 0
+	   second = 0
+	   GOTO 5000
+	ENDIF
+	IF ( num_secs.LT.0 .OR. 
+     .       cal_id.LT.gregorian .OR. cal_id.GT.max_calendars) THEN
+	   status = merr_time_string
+	   GOTO 5000
 	ENDIF
 
 C  Get calendar attributes
@@ -314,26 +306,10 @@ c acm	   tmp_days = tot_days - leapadj*INT(tot_days/366. + 307./366.)
 	   total_secs = total_secs - secs_in_minute*(minute)
 *          CALCULATE NUMBER OF SECONDS
 	   second = total_secs
-	ELSE
-	   stop 'Illegal calendar in tm_secs_to_date()'
 	END IF
 
-* Put it in a string
-
-	WRITE (tempstr,1000,ERR=5000) day, month_names(month), 
-     .      year, hour, minute, second
-
-1000	FORMAT(I2.2,'-',A3,'-',I4.4,' ',2(I2.2,':'),I2.2)
-	TM_SECS_TO_DATE = tempstr
-	GOTO 9990
-
-* Date syntax error
- 5000	CALL TM_ERRMSG (merr_erreq, status, 'TM_SECS_TO_DATE',
-     .			no_descfile, no_stepfile,
-     .			no_errstring, no_errstring, *9000)
+	status = merr_ok
 
- 9000	STOP
+ 5000	RETURN
 
-* finished
-9990	RETURN
 	END
diff --git a/fmt/src/tm_subsc.F b/fmt/src/tm_subsc.F
index a02228b..9bb691f 100644
--- a/fmt/src/tm_subsc.F
+++ b/fmt/src/tm_subsc.F
@@ -51,11 +51,15 @@
 * V542 2/02 *sh* - added support for modulo length > axis length
 * V68  *acm* 1/12  ifdef double_p for double-precision ferret.
 * V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
+* V71  3/16 *acm* Ticket 2158: working with true monthly time axes.
+* V71  1/17 *acm* Ticket 2496: make the result index consistent with the
+*                 result form isubscr_cx when incoming coordinate value
+*                 is ON a cell boundary
 
 * calling arguments:
-* world_coord	- coordinate vaule to be translated to subscript
+* world_coord	- coordinate value to be translated to subscript
 * grid		- underlying grid number
-* idim		- underlying axis number (1-4)
+* idim		- underlying axis number (1-nferdims)
 * clue		- performance assist to code - check this as possible result
 
 	include 'tmap_dims.parm'
@@ -69,7 +73,7 @@
 	REAL*8	world_coord
 
 * internal variable declarations:
-	LOGICAL	TM_ITS_SUBSPAN_MODULO, regular
+	LOGICAL	TM_ITS_SUBSPAN_MODULO, ITSA_TRUEMONTH_AXIS, TM_DFPEQ, regular
 	INTEGER	lo_look, hi_look, ibot, itop, look, axis,
      .		line_len, isubsc
 	INTEGER	num_mod
@@ -91,10 +95,10 @@
 	      line_len = line_len + 1
 	      regular = .FALSE.
 	   ELSE
-	      regular = line_regular( axis )
+	      regular = line_regular(axis) .AND. .NOT.ITSA_TRUEMONTH_AXIS(axis)
 	   ENDIF
 	ELSE
-	   regular = line_regular( axis )
+	   regular = line_regular(axis) .AND. .NOT.ITSA_TRUEMONTH_AXIS(axis)
 	ENDIF
 
 * initialize pointers for axes with irregularly spaced points
@@ -188,17 +192,26 @@
 	   IF ( hi_look - lo_look .LE. 1 ) THEN
 
 * yes - we found it - choose box containing it
+* Change the logic if the point is on the boundary, returning the lower index.
+* This is consistent with what isubscr_cx does.
+
 * ... box boundary between lo_look and hi_look
 	      half_way = TM_WORLD(hi_look, grid, idim, box_lo_lim)
 
-* no. value in upper half of box (or on the box boundary) ?
-	      IF ( wcoord .GE. half_way ) THEN
-	         isubsc = hi_look
-
-* no. value must be in lower half of box
-	      ELSE
+* value on box boundary ?
+	      IF ( TM_DFPEQ( half_way, wcoord ) ) THEN
 	         isubsc = lo_look
+	      ELSE
+
+* no. value in upper half of box ?
+	         IF ( wcoord .GT. half_way ) THEN
+	            isubsc = hi_look
+
+* no. value must be in lower half of box (or on the box boundary)
+	         ELSE
+	            isubsc = lo_look
 
+	         ENDIF
 	      ENDIF
 	   ELSE
 
diff --git a/fmt/src/tm_tcoord_trumonth.F b/fmt/src/tm_tcoord_trumonth.F
new file mode 100644
index 0000000..2d56550
--- /dev/null
+++ b/fmt/src/tm_tcoord_trumonth.F
@@ -0,0 +1,225 @@
+	SUBROUTINE TM_TCOORD_TRUMONTH (iaxis, monthval, where_in_box, 
+     .		                       tempwld)
+ 
+*  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. 
+*
+*
+* For a true-month axis, return the exact coordinate value for irregular months 
+* corresponding to the calendar, so that the grid cells lie exactly one month apart.
+* Input and output are in units of months.
+*
+* V71 12/16 *acm* Ticket 2158: working with true monthly time axes.
+
+* Arguments
+*  iaxis	axis number
+*  monthval	coordinate value (on regularly spaced axis)
+*  where_in_box	flag for location to return
+*  tempwld	On output, return correct coordinate value on true 
+*               monthly axis for lo, mid, or hi box location.
+
+* Include files
+        include 'tmap_dims.parm'
+#include "tmap_dset.parm"
+#include "gt_lib.parm"
+        include 'xtm_grid.cmn_text'
+        external xgt_grid_data
+	include 'xunits.cmn_text'
+	external xunits_data
+        include 'calendar.decl'
+        include 'calendar.cmn'
+ 
+* calling argument declarations:
+	INTEGER iaxis, where_in_box
+	REAL	monthval, tempwld
+
+* internal variable declarations:
+	LOGICAL	TM_DIGIT_TEST
+	INTEGER TM_GET_CALENDAR_ID, STR_SAME, TM_LENSTR1, TM_UNIT_ID,
+     .		i, i1, i2, idim, cal_id, ndec, status, 
+     .		yrt0, mot0, dat0, ht0, mit0, set0,
+     .		yr1, mo1, da1, hr1, mi1, se1, 
+     .		yr2, mo2, da2, hr2, mi2, se2
+	REAL	TM_SECS_FROM_BC, SECS_FROM_BC, secpday, edge_lo, edge_hi,   
+     .		secs0,secs1, secs2, days_t0, days_yrs, days_this_year, 
+     .		days_all_to_lo, days_cell, tcoord,
+     .		num_secs, start_secs, offset_secs
+
+	!print *, 'TM_TCOORD_TRUMONTH faster version'
+
+* Initialize.
+
+	edge_lo = 0.
+	edge_hi = 0.
+	secs0 = 0.
+	secs1 = 0.
+	secs2 = 0.
+	days_t0 = 0.
+	days_all_to_lo = 0.
+	days_cell = 0.
+
+	IF (line_t0(iaxis) .EQ. char_init) GOTO 5000  ! unformatted dataset
+
+        idim = t_dim
+	secpday = 24*3600
+
+	cal_id = TM_GET_CALENDAR_ID ( line_cal_name(iaxis) )
+        CALL TM_BREAK_DATE (line_t0(iaxis), cal_id, yrt0, mot0, dat0,
+     .                      ht0, mit0, set0, status)
+
+* dgrid_buff is a fake grid to use, defined in tmap_dims.parm
+
+        grid_line(idim, dgrid_buff) = iaxis
+
+* first coordinate value on the axis start with days, get date
+
+	tcoord = line_start(iaxis) * line_tunit(iaxis)/ un_convert(pun_day)
+
+* Find the number of seconds since start of data set for this time step
+
+	start_secs = SECS_FROM_BC( line_t0(iaxis), cal_id, status )
+        offset_secs = tcoord* un_convert(pun_day) 
+	num_secs = start_secs + offset_secs
+
+	CALL TM_SECS_TO_YMDHMS(num_secs, cal_id, yr1, mo1, da1,
+     .                      hr1, mi1, se1, status)
+
+!        print *, 'line start info yr1 etc', yr1, mo1, da1,
+!    .                      hr1, mi1, se1
+
+* Monthval is in months. Translate to days and get date string
+
+	tcoord = monthval * line_tunit(iaxis)/ un_convert(pun_day)
+
+* First find the offset from 01-JAN-0000 00:00:00 from the descriptor file
+	start_secs = TM_SECS_FROM_BC (cal_id, yrt0, mot0, dat0,
+     .                      ht0, mit0, set0, status)
+
+* Find the number of seconds since start of data set for this time step
+        offset_secs = tcoord* un_convert(pun_day) 
+	num_secs = start_secs + offset_secs
+
+	CALL TM_SECS_TO_YMDHMS(num_secs, cal_id, yr2, mo2, da2,
+     .                      hr2, mi2, se2, status)
+!	print *, 'coord info yr2 etc', yr2, mo2, da2,
+!     .                      hr2, mi2, se2
+
+* Time corresponding to the lower edge of cell, year-month with 
+* day 1 and zero for hr,min,sec
+
+	da2 = 1
+	hr2 = 0
+	edge_lo = TM_SECS_FROM_BC (cal_id, yr2, mo2, da2, hr2, hr2, hr2, status)
+        !print *, 'edge_lo', edge_lo
+
+* Correct days from T0 to end-of-year in which T0 lies
+
+* seconds since 1-jan-0000 to t0
+
+	days_t0 = 0
+	IF (yr2 .GT. yrt0) THEN
+           secs1 = start_secs
+
+* seconds since 1-jan-0000 to end of year of t0
+           secs2 = TM_SECS_FROM_BC (cal_id, yrt0+1, 1, 1, 0, 0, 0, status)
+
+* ... convert to days
+	   days_t0 = (secs2-secs1)/ secpday
+	   !print *, 'secs1, secs2, days_t0', secs1, secs2, days_t0
+	ENDIF
+
+* ... days in full years between the end of t0 year and start of coord year
+
+	days_yrs = 0
+	secs1 = 0
+        IF (yr2 .GT. yrt0+1) THEN
+
+	   secs0 = TM_SECS_FROM_BC (cal_id, yrt0+1, 1, 1, 0, 0, 0, status)
+
+	   secs1 = TM_SECS_FROM_BC (cal_id, yr2, 1, 1, 0, 0, 0, status)
+	
+* ... convert to days
+	   days_yrs = (secs1 - secs0)/ secpday
+	   !print *, 'secs1, secs0, days_yrs', secs1, secs0, days_yrs
+
+	ENDIF
+
+* ... days from start of coordinate year to lower limit of box
+
+	IF (secs1 .EQ. 0) secs1 = TM_SECS_FROM_BC (cal_id, yr2, 1, 1, 0, 0, 0, status)
+
+	days_this_year = (edge_lo-secs1)/ secpday
+
+	days_all_to_lo = days_t0 + days_yrs + days_this_year
+!	print *, 'days_this_year, days_all_to_lo', 
+!     .    days_this_year, days_all_to_lo
+
+        IF (where_in_box .EQ. box_lo_lim) THEN  ! we are done
+
+           tempwld = days_all_to_lo
+
+        ELSE
+
+* Get the correct time coordinate at the upper limit of the box.
+
+           IF (mo2 .LT. 12) THEN
+	      edge_hi = TM_SECS_FROM_BC (cal_id, yr2, mo2+1, 1, 0, 0, 0, status)
+	   ELSE
+	      edge_hi = TM_SECS_FROM_BC (cal_id, yr2+1, 1, 1, 0, 0, 0, status)
+	   ENDIF
+cc	   edge_hi = edge_hi - 1  ! the top of the box, not the bottom of the next one.
+
+	   days_cell = (edge_hi - edge_lo)/ secpday
+
+* Put the result halfway between the corrected high and low
+           IF (where_in_box .EQ. box_middle) THEN
+
+	      tempwld = (days_all_to_lo + days_cell/2.)
+
+* Or return the high coordinate
+	   ELSE IF (where_in_box .EQ. box_hi_lim) THEN
+
+	      tempwld = (days_all_to_lo + days_cell)
+
+	   ENDIF
+
+	ENDIF
+
+* We have the coordinate in days, return it in months.
+
+        secs0 = un_convert( line_unit_code(iaxis) ) 
+!	print *, 'tempwld = tempwld* secpday/ secs0',
+!     .    tempwld, secpday, secs0, tempwld* secpday/ secs0
+        tempwld = tempwld* secpday/ secs0
+
+5000    RETURN
+	END
diff --git a/fmt/src/tm_rm_tmp_line.F b/fmt/src/tm_units_cal.F
similarity index 66%
copy from fmt/src/tm_rm_tmp_line.F
copy to fmt/src/tm_units_cal.F
index b73f57e..262a7c8 100644
--- a/fmt/src/tm_rm_tmp_line.F
+++ b/fmt/src/tm_units_cal.F
@@ -1,7 +1,4 @@
-	INTEGER FUNCTION TM_RM_TMP_LINE( line )
-
-*
-*
+	INTEGER FUNCTION TM_UNITS_CAL( inunit, cal_id, true_month )
 *  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),
@@ -34,43 +31,44 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *
-*
-* Remove a line from the tmp area (from the linked list of tmp_line_hook)
-
-* *sh* 2/2106 -- using code from tm_deallo_dyn_line_sub
+* Reset the unit ID for a unit of month or year for non-gregorian calendars,
+* according to calendar's year length.
 
+	include 'calendar.decl'
+	include 'calendar.cmn'	
+* Argument definitions
+	LOGICAL true_month
+	INTEGER inunit, cal_id
 
-* Include files
-
-	include 'tmap_dims.parm'
-#include "tmap_dset.parm"
-#include "gt_lib.parm"
-	include 'tmap_errors.parm'
-	include 'xtm_grid.cmn_text'
-	external xgt_grid_data
-	include 'xio.cmn_text'
+* Internal defitions
+	INTEGER iun
 
-* Argument definitions
-	INTEGER line
+	iun = inunit
 
-* Internal variable declarations
-	INTEGER	next_used_line
+C /calendar=/unit=year gets length of year in that calendar.
+	IF (inunit .EQ. -6 .OR. inunit .EQ. -10) THEN  
+	   IF (cal_id .EQ. d360) iun = -9
+	   IF (cal_id .EQ. julian) iun = -12
+	   IF (cal_id .EQ. noleap) iun = -11
+	   IF (cal_id .EQ. all_leap) iun = -8
+	ENDIF
 
-* clear COMMON
-	line_use_cnt(line) = 0
-	line_name(line)    = char_init16
+C /units=months  is 1/12 of the length of the year
 
-* take this line from the "tmp" list and put it on the "free" list
-* ... hook onto free list
-	next_used_line   = line_flink(line)
-	line_flink(line) = line_free_ptr  
-	line_free_ptr    = line
-	   
-* ... unhook from tmp list
-	line_flink(line_blink(line)) = next_used_line
-	line_blink(next_used_line)   = line_blink(line)
+	IF (inunit .EQ. -5) THEN    ! 1/97: "-5" is "MONTHS"
+	   IF (cal_id .eq. noleap) iun = -13
+	   IF (cal_id .eq. julian) iun = -15
+	   IF (cal_id .eq. d360  ) iun = -14
+	   IF (cal_id .eq. all_leap) iun = -16
+	   IF (true_month) THEN
+	       IF (cal_id .eq. gregorian) THEN
+	          iun = -17
+	       ELSE
+	          iun = iun - 5
+	      ENDIF
+	   ENDIF
+	ENDIF
 
-* successful completion
+	TM_UNITS_CAL = iun
 	RETURN
-
 	END
diff --git a/fmt/src/tm_warn_subspan.F b/fmt/src/tm_warn_subspan.F
old mode 100755
new mode 100644
diff --git a/fmt/src/tm_world.F b/fmt/src/tm_world.F
index 5c93cd3..7c85da2 100644
--- a/fmt/src/tm_world.F
+++ b/fmt/src/tm_world.F
@@ -1,4 +1,4 @@
-	DOUBLE PRECISION FUNCTION TM_WORLD ( isubscript, grid_num, idim,
+	DOUBLE PRECISION FUNCTION TM_WORLD ( isubscript, grid, idim,
      .					     where_in_box )
 
 *
@@ -62,6 +62,10 @@
 *		underlying axis is modulo
 * V530 *sh* 10/00 - guts extracted into TM_WORLD_AX
 * V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
+* v71  12/16 *acm* Ticket 2158: working with true monthly time axes.
+*
+* If this is a 'true-month' axis, TM_WORLD_AX will convert the result 
+* to the correct true month length. Return the result in units of days.
 
 * Include files
 #include "gt_lib.parm"
@@ -70,14 +74,15 @@
 	external xgt_grid_data
 
 * calling argument declarations:
-	INTEGER	isubscript, grid_num, idim, where_in_box
+	INTEGER	isubscript, grid, idim, where_in_box
 
 * internal variable declarations:
+	LOGICAL ITSA_TRUEMONTH_AXIS, true_month
 	INTEGER	iaxis
-	REAL*8	TM_WORLD_AX
+	REAL*8	TM_WORLD_AX, timefac
 
 * initialize
-	iaxis    = grid_line( idim, grid_num )
+	iaxis    = grid_line( idim, grid )
 	IF ( iaxis .EQ. mpsnorm
      .	.OR. iaxis .EQ. mpsunkn
      .	.OR. (isubscript .EQ. unspecified_int4 
@@ -88,6 +93,15 @@
 
 	TM_WORLD = TM_WORLD_AX ( isubscript, iaxis, where_in_box )
 
+	true_month = ITSA_TRUEMONTH_AXIS(iaxis)
+	IF (true_month) THEN
+ 
+* Convert the time coordinate on a true-month axis to days.
+	   CALL TM_MONTH_TIME_FACTOR (grid, true_month, timefac)
+	   TM_WORLD = TM_WORLD* timefac
+
+	ENDIF
+
 	RETURN
 	END
 
diff --git a/fmt/src/tm_world_ax.F b/fmt/src/tm_world_ax.F
index 8677eb2..e3e97a0 100644
--- a/fmt/src/tm_world_ax.F
+++ b/fmt/src/tm_world_ax.F
@@ -1,5 +1,5 @@
-	DOUBLE PRECISION FUNCTION TM_WORLD_AX( isubscript, iaxis,
-     .					       where_in_box )
+	RECURSIVE FUNCTION TM_WORLD_AX( isubscript, iaxis,
+     .					where_in_box ) RESULT(world_ax_result)
 
 *  This software was developed by the Thermal Modeling and Analysis
 *  Project(TMAP) of the National Oceanographic and Atmospheric
@@ -48,40 +48,117 @@
 * V541 2/02 *sh* - added support for subspan modulo axes
 *		 - slight change to calculation for all modulo axes
 * V542 10/02 *sh* - bug fix for irregular, subspan modulo
+* V542 10/02 *sh* - bug fix for irregular, subspan modulo
+* V71  12/16 *acm* Ticket 2158: working with true monthly time axes.
+*                  call tm_tcoord_trumonth to return the correct
+*                  coordinate value for irregular months corresponding 
+*                  to the calendar
 
 * Include files
 #include "gt_lib.parm"
 	include 'tmap_dims.parm'
 	include 'xtm_grid.cmn_text'
 	external xgt_grid_data
+	include 'xunits.cmn_text'
+	external xunits_data
+	include 'implicit.parm'
 
 * calling argument declarations:
+	REAL*8  world_ax_result
 	INTEGER	isubscript, iaxis, where_in_box
 
 * internal variable declarations:
 	LOGICAL	TM_AXIS_RECURSIVE, TM_ITS_SUBSPAN_MODULO,
-     .		 recursive
-	INTEGER	TM_MODULO_LINE_DIM, isub, line_len, rmod
+     .		ITSA_TRUEMONTH_AXIS, recursive, true_month
+	INTEGER	TM_MODULO_LINE_DIM, isub, line_len, rmod, new_ss, 
+     .		lo_ss, hi_ss, parent_len, new_where
 	REAL*8	TM_WORLD_RECUR, TM_MODULO_AXLEN, 
      .		midpoint, box_size, tempwld, lo, hi
 
 * initialize
 	line_len = TM_MODULO_LINE_DIM( iaxis )
+	true_month = ITSA_TRUEMONTH_AXIS(iaxis)
 
 * if this is a child (e.g. every Nth point) of an irregularly-spaced
 * axis then use a recursive C routine to find the answer
 	recursive = iaxis .GT. max_lines
-	IF ( recursive ) THEN
-	  recursive = TM_AXIS_RECURSIVE(iaxis) 
-	  IF ( recursive ) THEN
-	    TM_WORLD_AX = TM_WORLD_RECUR(
-     .			isubscript,iaxis,where_in_box,max_lines,
-     .			line_mem,line_parent,line_class,line_dim,line_start,
-     .			line_delta,line_subsc1,line_modulo,
-     .			line_modulo_len,line_regular )
-	    RETURN
+	IF ( recursive ) 
+     .    recursive = TM_AXIS_RECURSIVE(iaxis, true_month)
+
+	IF (recursive) THEN 
+	world_ax_result = unspecified_val8  ! default
+
+	IF (line_class(iaxis) .EQ. PLINE_CLASS_STRIDE) THEN 
+* in irreg axis striding the box edges cannot simply be read from
+* the box edge array (think about it) So we have xtra logic here.
+
+	new_ss = INT(line_start(iaxis)) + (isubscript-1)* INT(line_delta(iaxis))
+	IF ( line_regular(iaxis) .OR. where_in_box.EQ.BOX_MIDDLE ) THEN 
+
+	  world_ax_result = TM_WORLD_AX (new_ss, line_parent(iaxis),
+     .					where_in_box)
+	    
+* Extra logic for irregular axis strides
+	ELSE  
+* cases to consider: interpolate to neighbor above or below
+* use lower or upper limit of entire axis
+
+	  IF (where_in_box .EQ.  BOX_LO_LIM) THEN
+	    lo_ss = INT(line_start(iaxis))
+     .		    + (isubscript-2)* INT(line_delta(iaxis))
+	    hi_ss = new_ss
+	  ELSE
+	    lo_ss = new_ss
+	    hi_ss = INT(line_start(iaxis))
+     .		     + (isubscript-0)* INT(line_delta(iaxis))
 	  ENDIF
-	ENDIF
+
+	  parent_len = line_dim( line_parent(iaxis))
+	  IF ( line_modulo( line_parent(iaxis) ) 
+     .	       .OR. (lo_ss.GE.1 .AND. hi_ss.LE.parent_len) ) THEN ! interpolate 
+	    new_where = BOX_MIDDLE
+	    world_ax_result = 0.5 * 
+     .		   ( TM_WORLD_AX (lo_ss, line_parent(iaxis),new_where) + 
+     .		     TM_WORLD_AX (hi_ss, line_parent(iaxis),new_where) )
+
+	  ELSE IF (where_in_box .EQ.  BOX_LO_LIM) THEN  ! lower axis edge  
+	    new_ss = 1
+	    world_ax_result = TM_WORLD_AX (new_ss, line_parent(iaxis), where_in_box)
+	  ELSE ! upper axis edge 
+	    new_ss = parent_len
+	    world_ax_result = TM_WORLD_AX (new_ss, line_parent(iaxis), where_in_box)
+	  ENDIF
+
+* Fix for getting data at ends when subspan modulo strides, irregular axis.
+	  
+	  IF ( TM_ITS_SUBSPAN_MODULO(line_parent(iaxis)) .AND. 
+     .	       line_modulo(line_parent(iaxis)) .AND. 
+     .	       parent_len.GT.0 ) THEN
+            IF (lo_ss .EQ. 0 .OR. lo_ss .EQ. -1) THEN
+	      new_where = BOX_LO_LIM
+	      lo_ss = 1
+	      world_ax_result = 
+     .		   TM_WORLD_AX (lo_ss, line_parent(iaxis),new_where)
+
+            ELSE IF (hi_ss .EQ. parent_len+1) THEN
+	      new_where = BOX_HI_LIM
+	      hi_ss = parent_len
+	      world_ax_result = 
+     .		   TM_WORLD_AX (hi_ss, line_parent(iaxis),new_where)
+            ENDIF
+
+	  ENDIF
+
+	ENDIF 
+
+! end of recursive for strides case
+	ELSE IF (line_class(iaxis) .EQ. PLINE_CLASS_MIDPT) THEN
+	   world_ax_result = TM_WORLD_AX(isubscript, iaxis, where_in_box)
+
+	ENDIF ! line_class: stride, or midpoint
+
+	RETURN
+	ENDIF  ! end of recursive  recursive 
 
 * force given subsc to data range as appropriate for modulo or non-modulo axes
 	IF ( line_modulo( iaxis ) ) THEN
@@ -108,12 +185,12 @@
 	  ELSE
 	    rmod = (isubscript-1)/line_len
 	  ENDIF
-	  TM_WORLD_AX = tempwld + rmod*line_modulo_len(iaxis)
+	  world_ax_result = tempwld + rmod* line_modulo_len(iaxis)
 
 	ELSEIF ( line_regular( iaxis ) ) THEN
 * regularly spaced points
 * ... calculate midpoint and box_size values
-	  midpoint = line_start(iaxis) + (isub-1)*line_delta(iaxis)
+	  midpoint = line_start(iaxis) + (isub-1)* line_delta(iaxis)
 	  box_size = line_delta(iaxis)
 * ... now where within the grid box ?
 	  IF ( where_in_box .EQ. box_lo_lim ) THEN
@@ -123,15 +200,21 @@
 	  ELSE
 	    tempwld = midpoint + ( box_size / 2. )
 	  ENDIF
+
+* Was it at true-month axis?  If so, adjust. 
+
+	  IF (true_month) CALL TM_TCOORD_TRUMONTH (iaxis, 
+     .			  midpoint, where_in_box, tempwld)
+
 	  IF ( line_modulo( iaxis ) ) THEN
 	    IF (isubscript .LE. 0) THEN
 	      rmod = isubscript/line_len - 1
 	    ELSE
 	      rmod = (isubscript-1)/line_len
 	    ENDIF
-	    TM_WORLD_AX = tempwld + rmod*TM_MODULO_AXLEN(iaxis)
+	    world_ax_result = tempwld + rmod*TM_MODULO_AXLEN(iaxis)
 	  ELSE
-	    TM_WORLD_AX = tempwld
+	    world_ax_result = tempwld
 	  ENDIF
 
 	ELSE
@@ -152,14 +235,12 @@
 	    ELSE
 	      rmod = (isubscript-1)/line_len
 	    ENDIF
-	    TM_WORLD_AX = tempwld + rmod*TM_MODULO_AXLEN(iaxis)
+	    world_ax_result = tempwld + rmod*TM_MODULO_AXLEN(iaxis)
 	  ELSE
-	    TM_WORLD_AX = tempwld
+	    world_ax_result = tempwld
 	  ENDIF
 
 	ENDIF
 
 	RETURN
 	END
-
-
diff --git a/fmt/src/tm_world_recur.c b/fmt/src/tm_world_recur.c
index c7d12f9..b7f3c5f 100644
--- a/fmt/src/tm_world_recur.c
+++ b/fmt/src/tm_world_recur.c
@@ -102,6 +102,8 @@ double FORTRAN(tm_world_recur)
 {
   double tempwld, tm_world;
   int isub, rmod;
+  double showd;
+  int showi;
   int axis = *iaxis;   /* these FORTRAN arrs start at 0 like C */
   int line_len = line_dim[axis];
   int is_subspan;
@@ -123,6 +125,12 @@ double FORTRAN(tm_world_recur)
 */
 	new_ss = (int)line_start[axis]
 	             +(*isubscript-1)*(int)line_delta[axis];
+	
+	showi = axis;
+    showd = line_start[axis];
+	showd = line_delta[axis];
+	showi = new_ss;
+	showi = line_parent[axis];
 	if ( line_regular[axis] || *where_in_box==BOX_MIDDLE ) {
 
 	  tm_world = FORTRAN(tm_world_recur)
diff --git a/fmt/src/tm_ww_ax_1_n.F b/fmt/src/tm_ww_ax_1_n.F
index 5e5d69f..b1d5c72 100644
--- a/fmt/src/tm_ww_ax_1_n.F
+++ b/fmt/src/tm_ww_ax_1_n.F
@@ -37,6 +37,7 @@
 * Modulo is ignored in this calculation
 
 * V541 *sh* 2/02
+* V71  3/16 *acm* Ticket 2158: working with true monthly time axes.
 
 	include 'tmap_dims.parm'
 #include "gt_lib.parm"
@@ -47,11 +48,16 @@
 	REAL*8 lo, hi
 
 * internal variable declarations
+	LOGICAL ITSA_TRUEMONTH_AXIS
 	INTEGER	isub1, llen, iiaxis
+	REAL	TM_WORLD
 
 	IF ( axis .LT. 0 .OR. axis .GT. line_ceiling ) THEN
 	  lo = unspecified_val8
 	  hi = unspecified_val8
+	ELSEIF ( ITSA_TRUEMONTH_AXIS(axis) ) THEN
+	  lo = TM_WORLD (1, axis, box_lo_lim )
+	  hi = TM_WORLD (line_dim(axis), axis, box_hi_lim )
 	ELSEIF ( line_regular(axis) ) THEN
 	  lo = line_start(axis)
 	  hi = line_start(axis) + (line_dim(axis)-1)*line_delta(axis)
diff --git a/fmt/src/tm_ww_axlims.F b/fmt/src/tm_ww_axlims.F
index 8c73210..b8a8561 100644
--- a/fmt/src/tm_ww_axlims.F
+++ b/fmt/src/tm_ww_axlims.F
@@ -38,6 +38,7 @@
 * Modulo is ignored in this calculation
 
 * V541 *sh* 2/02
+* V71 12/16 *acm* Ticket 2158: working with true monthly time axes.
 
 	include 'tmap_dims.parm'
 #include "gt_lib.parm"
@@ -48,11 +49,16 @@
 	REAL*8 lo, hi
 
 * internal variable declarations
+	LOGICAL ITSA_TRUEMONTH_AXIS
 	INTEGER	isub1, llen, iiaxis
+	REAL	TM_WORLD
 
 	IF ( axis .LT. 0 .OR. axis .GT. line_ceiling ) THEN
 	  lo = unspecified_val8
 	  hi = unspecified_val8
+c	ELSEIF ( ITSA_TRUEMONTH_AXIS(axis) ) THEN
+c	  lo = TM_WORLD (1, axis, box_lo_lim )
+c	  hi = TM_WORLD (line_dim(axis), axis, box_hi_lim )
 	ELSEIF ( line_regular(axis) ) THEN
 	  lo = line_start(axis) - 0.5D0*line_delta(axis)
 	  hi = lo + line_dim(axis)*line_delta(axis)
diff --git a/fmt/src/xdset_info_data.F b/fmt/src/xdset_info_data.F
index 21b1a91..67c210b 100644
--- a/fmt/src/xdset_info_data.F
+++ b/fmt/src/xdset_info_data.F
@@ -67,6 +67,8 @@
 * v604 *acm* 7/07 increase length of ds_name, ds_des_name
 * v695+ *sh* 5/15 initialize new ds_var_c_cache_ptr
 * v698 *sh* 12/15 declare larger dset arrays: maxdsets ==> pdsetalloc
+* V701  7/16 *kms* Initialize ds_name and ds_des_name to pdsetalloc*char_init2048 
+*                  instead of pdsetalloc*char_init1024
 
 #include "tmap_dset.parm"		
 	include 'tmap_dims.parm'		! parameter definitions
@@ -107,8 +109,8 @@
 	DATA	ds_alert_on_output	/pdsetalloc*.FALSE./
 	DATA	ds_message		/pdsetalloc*char_init80/
 ********************************************************************************
-	DATA	ds_des_name		/pdsetalloc*char_init1024/
-	DATA	ds_name			/pdsetalloc*char_init1024/
+	DATA	ds_des_name		/pdsetalloc*char_init2048/
+	DATA	ds_name			/pdsetalloc*char_init2048/
 	DATA	ds_1step		/pdsetalloc*real8_init/
 	DATA	ds_lastep		/pdsetalloc*real8_init/
 	DATA	ds_delstep		/pdsetalloc*real8_init/
diff --git a/fmt/src/xez_info_data.F b/fmt/src/xez_info_data.F
index 2fb3382..df443b6 100644
--- a/fmt/src/xez_info_data.F
+++ b/fmt/src/xez_info_data.F
@@ -42,6 +42,7 @@
 *
 * revision 0.00 - 08/14/89
 * V530 - 10/00 *sh* ==> added field type variable for delimited reads
+* V701 7/16 *acm* ticket 2450. add date-time and euro-date-time field types
 
 * COMMON/XEZ_INFO.....info for EZ_ data sets
 	include 'tmap_dims.parm'
@@ -59,5 +60,7 @@
      .       ftyp_name(6)/'DATE'/,
      .       ftyp_name(7)/'EURODATE'/,
      .       ftyp_name(8)/'TIME'/
+     .       ftyp_name(9)/'DATIME'/
+     .       ftyp_name(10)/'EDATIME'/
 
 	END
diff --git a/fmt/src/xgt_grid_data.F b/fmt/src/xgt_grid_data.F
index a8705d4..e7f7e3a 100644
--- a/fmt/src/xgt_grid_data.F
+++ b/fmt/src/xgt_grid_data.F
@@ -72,6 +72,8 @@
 * pre-defined axes and grids.
 * V698  3/16 *acm* Fix the line_subsc1 values for irregular axes
 * V698  3/16 *acm* Define monthly climatology for Julian axis.
+* V702 11/16 *sh* Commented out initialization of of grids cuz
+*                 was taking unacceptable long time to compile
 
 	include 'tmap_dims.parm'
 	include 'implicit.parm'
@@ -303,14 +305,15 @@ c     .			/pline_mem_left*real8_init/
 	DATA	(grid_name(i),i=ngrd_def+1,grid_ceiling)
      .			/grids_left*char_init16/
 
-	DATA	((grid_line(i,j),i=1,nferdims),j=ngrd_def+1,grid_ceiling)
-     .			/grid_lines_left*int4_init/
-
-	DATA	(grid_rotation(i),i=ngrd_def+1,grid_ceiling)
-     .			/grids_left*real4_init/
-
-	DATA	((grid_out_prod(i,j),i=1,nferdims),j=ngrd_def+1,grid_ceiling)
-     .			/grid_lines_left*.FALSE./
+* 11/16 *sh* commented these out to speed compilation
+!	DATA	((grid_line(i,j),i=1,nferdims),j=ngrd_def+1,grid_ceiling)
+!     .			/grid_lines_left*int4_init/
+!
+!	DATA	(grid_rotation(i),i=ngrd_def+1,grid_ceiling)
+!     .			/grids_left*real4_init/
+!
+!	DATA	((grid_out_prod(i,j),i=1,nferdims),j=ngrd_def+1,grid_ceiling)
+!     .			/grid_lines_left*.FALSE./
 
 * DEFINE LINE AND BOX COORDS NEXT TO LAST
 
diff --git a/fmt/src/xstep_files_data.F b/fmt/src/xstep_files_data.F
index c4590eb..582e7e9 100644
--- a/fmt/src/xstep_files_data.F
+++ b/fmt/src/xstep_files_data.F
@@ -49,13 +49,14 @@
 *			   tmap_dset.parm contains an ifdef
 * v581 *acm* 4/2005  Add sf_ndxs and sf_ndxe to use indices rather than timesteps
 *                     for indexing mc datasets in mc_read.
+* V701  7/16 *kms* Initialize sf_name with maxstepfile*char_init2048
 
 #include "tmap_dset.parm"		
 	include 'tmap_dims.parm'
 	include 'xstep_files.cmn_text'
 
 
-	DATA	sf_name			/maxstepfiles*char_init512/
+	DATA	sf_name			/maxstepfiles*char_init2048/
 	DATA	sf_setnum		/maxstepfiles*set_not_open/
 	DATA	sf_aux_set_num		/maxstepfiles*set_not_open/
 	DATA	sf_nrecperstep		/maxstepfiles*int4_init/
diff --git a/fmt/src/xunits_data.F b/fmt/src/xunits_data.F
index f817660..9ec4942 100644
--- a/fmt/src/xunits_data.F
+++ b/fmt/src/xunits_data.F
@@ -69,6 +69,7 @@
 * V532: 5/01 *sh* - added "metre"
 * V554: 2/04 *acm*  default year length is 365.2425 days
 * V570 *acm* 5/04  Add the calendar ALL_LEAP = 366_DAY, and units for the corresp. month.
+* V71 12/16 *acm* Ticket 2158: working with true monthly time axes.
 
 * local variable declarations
 !	INTEGER	i
@@ -113,6 +114,13 @@
      .		un_name(-13)	/ 'mon_noleap'/
      .		un_name(-14)	/ 'mon_360'/
      .		un_name(-15)	/ 'mon_julian'/
+     .          un_name(-16)    / 'mon_alleap'/
+
+     .		un_name(-17)	/ 'tmon_gregorian'/
+     .		un_name(-18)	/ 'tmon_noleap'/
+     .		un_name(-19)	/ 'tmon_360'/
+     .		un_name(-20)	/ 'tmon_julian'/
+     .		un_name(-21)	/ 'mon_alleap'/
 
 	DATA	un_convert( 1)	/ .01		/,
      .		un_convert( 2)	/ 1000.		/,
@@ -144,13 +152,20 @@ c     .		un_convert( -6)	/ 31536000.	/, ! sec per 365 day year (OLD default)
      .		un_convert( -9)	/ 31104000.	/, ! sec per 360 day year
      .		un_convert(-10)	/ 31556952.	/  ! sec per 365.2425 year
 
-     .		un_convert(-11)	/ 31536000.	/ ! sec per 365.0 day year
-     .		un_convert(-12)	/ 31557600.	/ ! sec per 365.25 day year
+     .		un_convert(-11)	/ 31536000.	/, ! sec per 365.0 day year
+     .		un_convert(-12)	/ 31557600.	/, ! sec per 365.25 day year
+
+     .		un_convert(-13)	/ 2628000.	/, ! 1/12 of sec per 365 day year
+     .		un_convert(-14)	/ 2592000.	/, ! 1/12 of sec per 360 day year
+     .		un_convert(-15)	/ 2629800.	/, ! 1/12 of sec per 365.25 day year
+     .		un_convert(-16)	/ 2635200.	/, ! 1/12 of sec per 366 day year
+
+     .		un_convert(-17)	/ 2629746.	/, ! 1/12 of sec per 365.2425 year
+     .		un_convert(-18)	/ 2628000.	/, ! 1/12 of sec per 365 day year
+     .		un_convert(-19)	/ 2592000.	/, ! 1/12 of sec per 360 day year
+     .		un_convert(-20)	/ 2629800.	/, ! 1/12 of sec per 365.25 day year
+     .		un_convert(-21)	/ 2635200.	/  ! 1/12 of sec per 366 day year
 
-     .		un_convert(-13)	/ 2628000.	/ ! 1/12 of sec per 365 day year
-     .		un_convert(-14)	/ 2592000.	/ ! 1/12 of sec per 360 day year
-     .		un_convert(-15)	/ 2629800.	/ ! 1/12 of sec per 365.25 day year
-     .		un_convert(-16)	/ 2635200.	/ ! 1/12 of sec per 366 day year
 
 	DATA	un_alt_name ( 1) / 'centim'	/,
      .		un_alt_subsc( 1) / 1 /,
@@ -197,21 +212,24 @@ c     .		un_convert( -6)	/ 31536000.	/, ! sec per 365 day year (OLD default)
      .		un_alt_name (15) / 'degree'	/,
      .		un_alt_subsc(15) / pun_degrees /,
      .
-     .		un_alt_name (16) / 'month'	/,
+     .		un_alt_name (16) / 'trumonth'	/,! use days
      .		un_alt_subsc(16) / -5 /,
      .
-     .		un_alt_name (17) / 'minute'	/,
-     .		un_alt_subsc(17) / -2 /,
+     .		un_alt_name (17) / 'month'	/,
+     .		un_alt_subsc(17) / -5 /,
+     .
+     .		un_alt_name (18) / 'minute'	/,
+     .		un_alt_subsc(18) / -2 /,
      .
-     .		un_alt_name (18) / 'second'	/,
-     .		un_alt_subsc(18) / -1 /,
+     .		un_alt_name (19) / 'second'	/,
+     .		un_alt_subsc(19) / -1 /,
      .
-     .		un_alt_name (19) / 'hr'		/,
-     .		un_alt_subsc(19) / -3 /,
+     .		un_alt_name (20) / 'hr'		/,
+     .		un_alt_subsc(20) / -3 /,
      .
-     .		un_alt_name (20) / 'metre'	/, ! those Brits ...
-     .		un_alt_subsc(20) /  pun_meters /
-!     .		un_alt_name (20) / char_init12	/,
-!     .		un_alt_subsc(20) / 0 /
+     .		un_alt_name (21) / 'metre'	/, ! those Brits ...
+     .		un_alt_subsc(21) /  pun_meters /
+!     .		un_alt_name (21) / char_init12	/,
+!     .		un_alt_subsc(21) / 0 /
 
 	END
diff --git a/gcircle.py b/gcircle.py
index 6f179cb..1a5513c 100644
--- a/gcircle.py
+++ b/gcircle.py
@@ -4,11 +4,13 @@ Module of functions involving great circles
 with points given in longitudes and latitudes.
 """
 
+from __future__ import print_function
+
 import math
 import numpy
 import numpy.random
 
-# Equitorial radius of the earth in kilometers
+# Equatorial radius of the earth in kilometers
 EARTH_ER = 6378.137
 
 # Authalic radius of the earth in kilometers
@@ -131,7 +133,7 @@ def lonlatintersect(gc1lon1, gc1lat1, gc1lon2, gc1lat2,
     # to the two plane-perpendiculars and goes through the origin.
     # Points of intersection are the points on this line one unit
     # from the origin.  If the norm of the cross product is too
-    # small, the two planes are practically indistiguishable from
+    # small, the two planes are practically indistinguishable from
     # each other (coincide).
     pt1xyz = numpy.cross(gc1pp, gc2pp, axis=0)
     norm = (pt1xyz[0]**2 + pt1xyz[1]**2 + pt1xyz[2]**2)**0.5
@@ -242,7 +244,7 @@ def lonlatfwdpt(origlon, origlat, endlon, endlat, fwdfact):
 
 def equidistscatter(min_lon, min_lat, max_lon, max_lat, min_gcdist, dfactor=5.0):
     """
-    Create a roughly equidistance set of points in a specified region.
+    Create a roughly equidistant set of points in a specified region.
 
     This is done by creating a dense "grid" of points, then repeatedly
     randomly selecting a point from that collection and eliminating
@@ -266,7 +268,7 @@ def equidistscatter(min_lon, min_lat, max_lon, max_lat, min_gcdist, dfactor=5.0)
     Returns:
         (pt_lons, pt_lats) - ptlons is an array of longitudes and ptlats
                   is an array of latitudes of (somewhat random) points in
-                  the specified region that are roughly equidistance from
+                  the specified region that are roughly equidistant from
                   each other but not closer than min_gcdist to each other.
     """
     lonmin = float(min_lon)
@@ -288,7 +290,7 @@ def equidistscatter(min_lon, min_lat, max_lon, max_lat, min_gcdist, dfactor=5.0)
 
     # If lonmin is relatively close to lonmax, directly
     # compute the points.  Distance on a meridian is the
-    # differnce in latitudes.
+    # difference in latitudes.
     if math.fabs(lonmax - lonmin) < (0.05 * mindeg):
         lon = 0.5 * (lonmax + lonmin)
         dellat = mindeg
@@ -302,7 +304,7 @@ def equidistscatter(min_lon, min_lat, max_lon, max_lat, min_gcdist, dfactor=5.0)
 
     # If latmin is relatively close to latmax, directly
     # compute the points.  Distance depends on the latitude
-    # as well as the differnce in longitudes.
+    # as well as the difference in longitudes.
     if math.fabs(latmax - latmin) < (0.05 * mindeg):
         lat = 0.5 * (latmax + latmin)
         numer = math.sin(0.5 * DEG2RAD * mindeg)
@@ -384,15 +386,15 @@ if __name__ == "__main__":
     dists = lonlatdistance(0.0, 0.0, tenten, 0.0)
     if not numpy.allclose(dists, tenten):
         raise ValueError("Equatorial distances FAIL; expect: %s; found: %s" % (str(tenten), str(dists)))
-    print "Equatorial distance: PASS"
-    print
+    print("Equatorial distance: PASS")
+    print()
 
     # On any meridian, distance = delta latitude
     dists = lonlatdistance(20.0, 0.0, 20.0, tenten)
     if not numpy.allclose(dists, tenten):
         raise ValueError("Meridional distances FAIL; expect: %s; found: %s" % (str(tenten), str(dists)))
-    print "Meridional distance: PASS"
-    print
+    print("Meridional distance: PASS")
+    print()
 
     # Play with some distances between cities (deg W, deg N)
     seattle =  (122.0 + (20.0 / 60.0), 47.0 + (37.0 / 60.0))
@@ -415,8 +417,8 @@ if __name__ == "__main__":
         raise ValueError("Seattle, Portland, Spokane distance matrix in miles\n" \
                          "    expect: %s\n"
                          "    found:  %s" % (str(expected), str(dists)))
-    print "Seattle, Portland, Spokane distance matrix: PASS"
-    print
+    print("Seattle, Portland, Spokane distance matrix: PASS")
+    print()
 
     lons = ( austin[0], houston[0], dallas[0] )
     lons1, lons2 = numpy.meshgrid(lons, lons)
@@ -431,8 +433,8 @@ if __name__ == "__main__":
         raise ValueError("Austin, Houston, Dallas distance matrix in miles\n" \
                          "    expect: %s\n"
                          "    found:  %s" % (str(expected), str(dists)))
-    print "Austin, Houston, Dallas distance matrix: PASS"
-    print
+    print("Austin, Houston, Dallas distance matrix: PASS")
+    print()
 
     # Test lonlatintersect
     # Intersections of the equator with meridians
@@ -469,8 +471,8 @@ if __name__ == "__main__":
     if not numpy.allclose(pt2lats[1:-1], 0.0):
         raise ValueError("Valid pt2lats: expect: all zeros, found %s" %\
                           str(pt2lats[1:-1]))
-    print "Equator/meridian intersections: PASS"
-    print
+    print("Equator/meridian intersections: PASS")
+    print()
 
     ((pt1lons, pt1lats), (pt2lons, pt2lats)) = \
             lonlatintersect( 0.0, 89.99, 180.0, 89.99,
@@ -482,8 +484,8 @@ if __name__ == "__main__":
                          (str([45.0, 90.0, 135.0, -90.0]),
                           str([float(pt1lons), float(pt1lats),
                                float(pt2lons), float(pt2lats)])))
-    print "Mini north pole cross intersections: PASS"
-    print
+    print("Mini north pole cross intersections: PASS")
+    print()
 
 
     # Test lonlatfwdpt
@@ -491,15 +493,15 @@ if __name__ == "__main__":
     if not ( numpy.allclose(lons, portland[0]) and numpy.allclose(lats, portland[1]) ):
         raise ValueError("Zero forward from portland to spokane: expect %s, found %s" % \
                          (str(portland), str((lons, lats))))
-    print "Zero forward: PASS"
-    print
+    print("Zero forward: PASS")
+    print()
 
     lons, lats = lonlatfwdpt(portland[0], portland[1], spokane[0], spokane[1], 1.0)
     if not ( numpy.allclose(lons, spokane[0]) and numpy.allclose(lats, spokane[1]) ):
         raise ValueError("One forward from portland to spokane: expect %s, found %s" % \
                          (str(spokane), str((lons, lats))))
-    print "One forward: PASS"
-    print
+    print("One forward: PASS")
+    print()
 
     lons, lats = lonlatfwdpt(0.0, 0.0, tenten, 0.0, 3.0)
     expectlons = 3.0 * tenten
@@ -520,8 +522,8 @@ if __name__ == "__main__":
     if not numpy.allclose(lats[1:], 0.0):
         raise ValueError("Valid fwd equator lats: expect: all zeros, found: %s" %\
                           str(lats[1:]))
-    print "Fwd equator: PASS"
-    print
+    print("Fwd equator: PASS")
+    print()
 
     lons, lats = lonlatfwdpt(0.0, -90.0, 0.0, tenten, 2.0)
     # First longitude could be anything, but this algorithm gives 0.0
@@ -538,16 +540,16 @@ if __name__ == "__main__":
                           (str(expvalid), str(validity)))
     # First longitude could be anything so ignore it
     # Others should be either 180 == -180
-    poslons = lons[:]
-    poslons[ poslons < 0.0 ] += 360.0
-    if not numpy.allclose(lons[1:-1], 180.0):
+    poslons = lons[1:-1]
+    poslons[(poslons < 0.0)] += 360.0
+    if not numpy.allclose(poslons, 180.0):
         raise ValueError("Valid fwd prime meridian lons: expect: all 180.0 or -180.0, found: %s" %\
-                          str(lons[1:-1]))
+                          str(poslons))
     if not numpy.allclose(lats[:-1], expectlats[:-1]):
         raise ValueError("Valid fwd prime meridian lats: expect: %s, found: %s" %\
                           (str(expectlats[:-1]), str(lats[:-1])))
-    print "Fwd prime meridian: PASS"
-    print
+    print("Fwd prime meridian: PASS")
+    print()
 
     lons, lats = lonlatfwdpt(0.0, 0.0, 45.0, 45.0, (2.0, 3.0, 4.0, 5.0))
     expectlons = [ 135.0, 180.0, -135.0, -45.0 ]
@@ -558,8 +560,8 @@ if __name__ == "__main__":
     if not numpy.allclose(lats, expectlats):
         raise ValueError("Fwd diagonal lats: expect: %s, found: %s" %\
                           (str(expectlats), str(lats)))
-    print "Fwd diagonal: PASS"
-    print
+    print("Fwd diagonal: PASS")
+    print()
 
     # Test equdistscatter
     lons, lats = equidistscatter(0.0, 0.0, 0.0, 0.0, 1.0)
@@ -568,8 +570,8 @@ if __name__ == "__main__":
         raise ValueError("Equidistscatter single-point FAIL; \n" \
                          "  expect: ([0.0],[0.0]), \n" \
                          "  found (%s,%s)" % (str(lons), str(lats)))
-    print "Equidistscatter single-point PASS"
-    print
+    print("Equidistscatter single-point PASS")
+    print()
 
     lons, lats = equidistscatter(0.0, 90.0, 90.0, 90.0, 1.0)
     if (lons.shape != (1,)) or (lons[0] != 45.0) or \
@@ -577,25 +579,25 @@ if __name__ == "__main__":
         raise ValueError("Equidistscatter pole-point FAIL; \n" \
                          "  expect: ([45.0],[90.0]), \n" \
                          "  found (%s,%s)" % (str(lons), str(lats)))
-    print "Equidistscatter pole-point PASS"
-    print
+    print("Equidistscatter pole-point PASS")
+    print()
 
     lons, lats = equidistscatter(0.0, 0.0, 90.0, 0.0, 1.0)
     if not numpy.all( lats == 0.0 ):
-        raise ValueError("Equidistscatter equitorial FAIL; \n" \
-                         "  expect: all zero latititudes, \n" \
+        raise ValueError("Equidistscatter equatorial FAIL; \n" \
+                         "  expect: all zero latitudes, \n" \
                          "  found %s" % str(lats))
     deltas = lons[1:] - lons[:-1]
     if not numpy.all( deltas >= 1.0 ):
-        raise ValueError("Equidistscatter equitorial FAIL; \n" \
+        raise ValueError("Equidistscatter equatorial FAIL; \n" \
                          "  expect: longitudes monotonic increasing by at least 1.0 degrees, \n" \
                          "  found %s" % str(lons))
     if not numpy.all( deltas < 1.0001 ):
-        raise ValueError("Equidistscatter equitorial FAIL; \n" \
+        raise ValueError("Equidistscatter equatorial FAIL; \n" \
                          "  expect: longitudes monotonic increasing by less than 1.0001 degrees, \n" \
                          "  found %s" % str(lons))
-    print "Equidistscatter equitorial PASS"
-    print
+    print("Equidistscatter equatorial PASS")
+    print()
 
     lons, lats = equidistscatter(0.0, 0.0, 0.0, 90.0, 1.0)
     if not numpy.all( lons == 0.0 ):
@@ -611,12 +613,12 @@ if __name__ == "__main__":
         raise ValueError("Equidistscatter meridional FAIL; \n" \
                          "  expect: latitudes monotonic increasing by less than 1.0001 degrees, \n" \
                          "  found %s" % str(lats))
-    print "Equidistscatter meridional PASS"
-    print
+    print("Equidistscatter meridional PASS")
+    print()
 
     lons, lats = equidistscatter(0.0, 0.0, 90.0, 90.0, 5.0, 15.0)
     nndists = [ ]
-    for j in xrange(len(lons)):
+    for j in range(len(lons)):
         gcdists = lonlatdistance(lons[j], lats[j], lons, lats)
         gcdists[j] = 180.0
         if not numpy.all( gcdists >= 5.0 ):
@@ -629,9 +631,9 @@ if __name__ == "__main__":
         raise ValueError("Equidistscatter region FAIL; \n" \
                          "  expect nearest neighbor distances < 10.0, \n" \
                          "  found %s" % str(nndists))
-    print "Nearest neighbor distances: \n" \
+    print("Nearest neighbor distances: \n" \
           "    min = %f, max = %f, mean = %f, stdev = %f" % \
-          (nndists.min(), nndists.max(), nndists.mean(), nndists.std())
+          (nndists.min(), nndists.max(), nndists.mean(), nndists.std()))
 
-    print "Equidistscatter region PASS"
-    print
+    print("Equidistscatter region PASS")
+    print()
diff --git a/jnls/contrib/barbs_metvec_demo.jnl b/jnls/contrib/barbs_metvec_demo.jnl
new file mode 100644
index 0000000..7843a80
--- /dev/null
+++ b/jnls/contrib/barbs_metvec_demo.jnl
@@ -0,0 +1,82 @@
+! wind barbs demo
+! Mick Spillane, Tue, 18 Jan 2005
+! http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2005/msg00049.html
+
+! See the end of this script for the full contents of the email message.
+! The 'metvec.jnl' script is incuded in the Ferret distribution among contributed scripts.
+
+!
+!---------------------------------------------------------------
+!DEMO 1:
+!Here is a demo to draw one met vector for a fixed wind direction
+!(from 60 degrees true) and a range of wind speeds (1:75 knots)
+!so as to illustrate the windspeed decoding.
+
+! pause
+
+go metvec  ! define the variables needed
+
+let dirfrom=60 ! wind from 60 degrees true
+ppl axlen,5,5  ! combined with the /hlim=/vlim= this sets the
+
+repeat/i=1:75 (let speedkt=i ; \
+  POLYGON/nolab/LINE/COLOR=black/THICK=2/pal=black \
+  /hlim=-2:2/ylim=-2:2/coord_ax=z xxbtot,yybtot ; \
+  label 0 -1 0 0 0.2 @sr`i` knots)
+
+!-------------------------------------------------------------
+!DEMO 2:
+!Render a field of metvecs, defined here as random variables. I
+!didn't expect the "repeat"s would be necessary - just a single
+!polygon command. There must be something I'm not thinking of.
+
+pause
+
+go metvec
+
+def axis/x=2:8:2 xax ; def axis/y=2:6:2 yax ; def grid/x=xax/y=yax grd
+let xpos=x[g=grd]+0*y[g=grd] ; let ypos=y[g=grd]+0*x[g=grd]
+let speedkt=100*randu(xpos)
+let dirfrom=360*randu(ypos)
+
+! draw a box
+ppl axlen,5,5
+plot/vs/nolab/hlim=0:10/vlim=0:10 {0,10},{0,10}
+! and overlay the metvecs
+repeat/i=1:4 (repeat/j=1:3 POLYGON/nolab/LINE/COLOR=black/THICK=2 \
+   /pal=black/coord_ax=z/o xpos+xxbtot,ypos+yybtot )
+
+list/nohead speedkt ! to confirm that
+list/nohead dirfrom !    the results are as expected
+
+
+
+!
+!Hi Jonathan,
+!	I put a bit of thought into this (at the risk of reinventing
+!a wheel up and running by other users).  The problem has three parts:
+!
+!1) the generation of three type of barbs - pennants representing 50
+!   knots of wind speed, regular barbs each representing 10 kts of
+!   wind speed, and "half-barbs" representing 5 kts. The pennant(s)
+!   barbs and half-barbs project from a shaft.
+!2) decoding the wind speed into the appropriate set of pennants etc
+!   and orienting them according to the wind direction (from)
+!3) rendering one, or a field of such met vectors on the screen
+!
+!I've solved 1) and 2) and most of 3).  The niceties of 3) (plotting
+!a field of met vectors and perhaps correcting direction and amplitude
+!of the arrows to be appropriate for the map scale) I've not taken to
+!completion, but hopefully the current state of things will prove of
+!some use.
+!
+!The polygon command, al la Ned Cokelet's arrows, seems likely to be
+!of use in this situation.  The appended script "metvec.jnl" defines
+!the vertices of pennants, barbs, and half-barbs to be drawn with
+!polygon/coord_ax=z commands.  The decoding step basically defines a
+!set of masks that determine which vertices are needed to get the
+!appropriate combination of penntant/barbs.  And coordinate rotation
+!commands orient the met vector based on wind direction.
+!
+!Hope this stuff proves of use,
+!Mick
diff --git a/jnls/contrib/earth_distance.jnl b/jnls/contrib/earth_distance.jnl
new file mode 100644
index 0000000..6a6ecd1
--- /dev/null
+++ b/jnls/contrib/earth_distance.jnl
@@ -0,0 +1,48 @@
+! The following script will find the distance between two points
+! on the earth using the law of cosines.
+!
+! For example, if the script is called great-circle-distance.jnlb,
+! find the distance between Seattle (47.55N, 122.33W) and Tokyo
+! (35.75N, 139.5E):
+
+! yes? go great-circle-distance.jnlb 47.55 `360-122.33` 35.75 139.5
+! !-> go great-circle-distance.jnlb 47.55 237.67 35.75 139.5
+! 7707.6 km
+
+! Contributed by Billy Kessler Jan 2005
+
+! --------------------------------------------------------------------
+\can mode verify
+! find the great circle distance between 2 points using the law of cosines
+! 4 input arguments specify the (decimal) latitudes/longitudes of the points
+! arg1=latitude 1
+! arg2=longitude 1 (pos E)
+! arg3=latitude 2
+! arg4=longitude 2 (pos (E)
+! arg5= variable name for result, distance in km
+
+let ed_pd=4*atan(1)/180 
+let ed_rearth=6371.2   ! radius of the earth in km
+
+! latitude must start from N pole (textbook law of cosines)
+let ed_lat1=90-$1
+let ed_lat2=90-$3
+let ed_lon1=$2
+let ed_lon2=$4
+
+define symbol result_name = ($5"distance")
+
+! convert spherical to Cartesian coordinates
+let ed_x1=sin(ed_pd*ed_lat1)*cos(ed_pd*ed_lon1)
+let ed_y1=sin(ed_pd*ed_lat1)*sin(ed_pd*ed_lon1)
+let ed_z1=cos(ed_pd*ed_lat1)
+let ed_x2=sin(ed_pd*ed_lat2)*cos(ed_pd*ed_lon2)
+let ed_y2=sin(ed_pd*ed_lat2)*sin(ed_pd*ed_lon2)
+let ed_z2=cos(ed_pd*ed_lat2)
+
+let ed_d1=(((ed_x1 - ed_x2)^2) + ((ed_y1 - ed_y2)^2)) + ((ed_z1 - ed_z2)^2)
+let ed_angle=acos(1-ed_d1/2)		! angular distance between the points
+let/units="km"/title="Distance on the surface of the earth" ($result_name)=ed_rearth*ed_angle	! distance on the sphere
+
+say Variable ($result_name) is Distance in km
+set mode verify
diff --git a/jnls/contrib/eqn_of_state_from_theta_JMFWG_2006.jnl b/jnls/contrib/eqn_of_state_from_theta_JMFWG_2006.jnl
new file mode 100644
index 0000000..0c421fc
--- /dev/null
+++ b/jnls/contrib/eqn_of_state_from_theta_JMFWG_2006.jnl
@@ -0,0 +1,162 @@
+\cancel mode verify
+
+
+! Computes seawater equation of state from JMFWG 2006.
+
+! Adapted from their fortran subroutine eosall_from_theta(s,th,p,sigma,drhodS,drhodtheta,drhodp) by
+
+! E. D. Cokelet. NOAA/PMEL, 6 Jan 2012
+
+! Last modified 9 Jan 2012
+!
+! Execute the commented-out list statement at the end of this script to see the results
+!
+!   in-situ density and its derivatives as functions of
+!   salinity, potential temperature and pressure, as in
+!   Jackett, McDougall, Feistel, Wright and Griffies (2006), Journal of Atmospheric and Oceanic Technology, 23, 1709-1728.
+
+! Inputs:
+
+!   $1 = s                : salinity                           (psu)
+!   $2 = th               : potential temperature              (deg C, ITS-90)
+!   $3 = p                : gauge pressure                     (dbar)
+!                      (absolute pressure - 10.1325 dbar)
+!
+! Outputs:
+!   $4 = sigma = rho-1000  : in-situ density-1000               (kg m^-3)
+!   $5 = drhodS            : partial derivative wrt s           (kg m^-3 psu^-1)
+!   $6 = drhodtheta        : partial derivative wrt th          (kg m^-3 deg C^-1)
+!   $7 = drhodp            : partial derivative wrt p           (kg m^-3 dbar^-1)
+!
+!   check values     : go eqn_of_state_from_theta_JMFWG_2006 20,20,1000,sigma,drhodS,drhodtheta,drhodp 
+
+!          gives
+!                               rho =      1017.728 868019642
+
+!                               sigma =      17.72886 8019642
+!                               drhodS =      0.7510471 164699279
+!                               drhodtheta = -0.2570255 211349140
+!                               drhodp =      0.004317589 133273301
+
+!
+!
+!   DRJ on 10/12/03
+
+!      saline contraction coefficient = drhodS/rho
+!      thermal expansion coefficient  = -drhodtheta/rho
+!                         sound speed = 100/sqrt(drhodp)
+!
+
+
+let th2_$4   = $2*$2
+let sqrts_$4 = $1^0.5
+
+let anum0_$4 =   9.9984085444849347e+02 +      \
+        $2*( 7.3471625860981584e+00 + 	       \
+        $2*(-5.3211231792841769e-02 + 	       \
+        $2*  3.6492439109814549e-04)) +	       \
+        $1*( 2.5880571023991390e+00 - 	       \
+        $2*  6.7168282786692355e-03 + 	       \
+        $1*  1.9203202055760151e-03)
+
+let aden0_$4 =   1.0000000000000000e+00 +      \
+        $2*( 7.2815210113327091e-03 + 	       \
+        $2*(-4.4787265461983921e-05 + 	       \
+        $2*( 3.3851002965802430e-07 + 	       \
+        $2*  1.3651202389758572e-10))) +       \
+        $1*( 1.7632126669040377e-03 - 	       \
+        $2*( 8.8066583251206474e-06 + 	       \
+       th2_$4*  1.8832689434804897e-10) +      \
+     sqrts_$4*( 5.7463776745432097e-06 +       \
+       th2_$4*  1.4716275472242334e-09))
+
+
+let anum_s0_$4 = 2.5880571023991390e+00 -      \
+         $2*  6.7168282786692355e-03 + 	       \
+         $1*  3.8406404111520300e-03
+
+let aden_s_$4 =  1.7632126669040377e-03 +      \
+           $2*(-8.8066583251206470e-06 -       \
+       th2_$4*  1.8832689434804897e-10) +      \
+     sqrts_$4*( 8.6195665118148150e-06 +       \
+       th2_$4*  2.2074413208363504e-09)
+
+let anum_th0_$4 = 7.3471625860981580e+00 +     \
+        $2*(-1.0642246358568354e-01 +	       \
+        $2*  1.0947731732944364e-03)- 	       \
+	$1*  6.7168282786692355e-03
+
+let aden_th0_$4 = 7.2815210113327090e-03 +     \
+        $2*(-8.9574530923967840e-05 + 	       \
+        $2*( 1.0155300889740728e-06 +  	       \
+        $2*  5.4604809559034290e-10)) +	       \
+        $1*(-8.8066583251206470e-06 -         \
+       th2_$4*  5.6498068304414700e-10 +       \
+  $2*sqrts_$4*  2.9432550944484670e-09)
+
+let anum_p0_$4 = 1.1798263740430364e-02 +      \
+       th2_$4*  9.8920219266399120e-08 +       \
+         $1*  4.6996642771754730e-06
+
+let aden_p0_$4 =     6.7103246285651894e-06
+
+!if `$3 ne 0` then	
+! For ferret, eliminate this if statement when pressure = 0.
+
+  let pth_$4 = $3*$2
+
+  let anum_$4 = anum0_$4 +    $3*( 1.1798263740430364e-02 +   \
+                      th2_$4*  9.8920219266399117e-08 +       \
+                        $1*  4.6996642771754730e-06 -         \
+                        $3*( 2.5862187075154352e-08 +         \
+                      th2_$4*  3.2921414007960662e-12))
+
+  let aden_$4 = aden0_$4 +    $3*( 6.7103246285651894e-06 -    \
+                 pth_$4*(th2_$4*  2.4461698007024582e-17 +     \
+                        $3*  9.1534417604289062e-18))
+
+  let anum_s_$4 = anum_s0_$4 + $3*  4.6996642771754730e-06
+
+  let anum_th_$4 = anum_th0_$4 + pth_$4*( 1.9784043853279823e-07 - \
+                        $3*  6.5842828015921320e-12)
+
+  let aden_th_$4 = aden_th0_$4 -                              \
+                 $3*$3*(th2_$4*  7.3385094021073750e-17 +     \
+                        $3*  9.1534417604289060e-18)      
+
+  let anum_p_$4 = anum_p0_$4 - $3*( 5.1724374150308704e-08 +   \
+                      th2_$4*  6.5842828015921320e-12)
+
+  let aden_p_$4 = aden_p0_$4 -                                 \
+                 pth_$4*(th2_$4*  4.8923396014049170e-17 +     \ 
+                        $3*  2.7460325281286720e-17)
+
+
+!endif
+
+let rec_aden_$4 = 1.0/aden_$4
+
+
+let $4 = (anum_$4*rec_aden_$4)-1000
+set variable/title="Sigma=Density-1000"/units="kg/m**3" $4
+
+let rho_$4 = ($4+1000)
+set variable/title="Density"/units="kg/m**3" rho_$4
+
+let $5 = (anum_s_$4-aden_s_$4*($4+1000))*rec_aden_$4
+set variable/title="d(rho)/dS"/units="kg/m**3/psu" $5
+
+let $6 = (anum_th_$4-aden_th_$4*($4+1000))*rec_aden_$4
+set variable/title="d(rho)/d(theta)"/units="kg/m**3/deg. C" $6
+
+let $7 = (anum_p_$4-aden_p_$4*($4+1000))*rec_aden_$4
+set variable/title="d(rho)/dp"/units="kg/m**3/dbar" $7
+
+! 
+list/prec=15 $4, $5, $6, $7
+
+
+
+set mode/last verify
+
+
diff --git a/jnls/contrib/metvec.jnl b/jnls/contrib/metvec.jnl
new file mode 100644
index 0000000..d3199b6
--- /dev/null
+++ b/jnls/contrib/metvec.jnl
@@ -0,0 +1,72 @@
+
+
+! metvec : Definitions for plotting met wind vectors as constant length
+!          shafts with pennants, full, and half barbs to represent speed.
+!          Written by 14-Jan-05 by Mick Spillane     
+
+! Concept: A shaft of unit length represents each vector. one or more
+!          pennants, full barbs, and half barbs extend from the shaft
+!          to encode the wind speed in knots. The orientation of the
+!          shaft and its various barbs indicates the direction from
+!          which the wind blows.
+
+! Implementation: Since a combination of pennants, full barbs, and half
+!          barbs are needed to represent any wind speed, (and since
+!          pennants are filled triangles) an approach using ferret's
+!          polygon/line command seems promising. The first task is to
+!          define the coordinates of sets of pennants along a shaft.
+!          Individual pennants and barbs, can be suppressed with a mask
+!          and then the next task is to decode the wind speed into
+!          such masks. The coordinatates of the pennants and barbs are
+!          then rotated as appropriate to the direction from which the
+!          wind blows and are plotted as polygons.
+
+! Assumed inputs are arrays speedkt and dirfrom representing the speed
+! in knots and direction (degrees clockwise from north) representing
+! the wind field.
+
+! The final product of these definitions is a set of vertices xxbtot,yybtot
+! that will produce the desired "met vec" when drawn using polygon/coord_ax=z 
+ 
+let d2r=atan(1.)/45
+let radfrom=d2r*dirfrom
+let csf=cos(radfrom) ; let snf=sin(radfrom)
+
+let xpenn=zsequence({0,0.2,0,0, 0,0.2,0,0, 0,0.2,0,0, 0,0.2,0,0, 0,0.2,0,0,\
+           0,0.2,0,0, 0,0.2,0,0, 0,0.2,0,0, 0,0.2,0,0, 0,0.2,0,0})
+let xfull=xpenn
+let xhalf=0.5*xpenn
+
+let ypenn=zsequence({1.0,1.0,0.9,1.0, 0.9,0.9,0.8,0.9,\
+           0.8,0.8,0.7,0.8, 0.7,0.7,0.6,0.7, 0.6,0.6,0.5,0.6, 0.5,0.5,0.4,0.5,\
+           0.4,0.4,0.3,0.4, 0.3,0.3,0.2,0.3, 0.2,0.2,0.1,0.2, 0.1,0.1,0.0,0.1})
+let yfull=zsequence({1.0,1.1,1.0,0.9, 0.9,1.0,0.9,0.8,\
+           0.8,0.9,0.8,0.7, 0.7,0.8,0.7,0.6, 0.6,0.7,0.6,0.5, 0.5,0.6,0.5,0.4,\
+           0.4,0.5,0.4,0.3, 0.3,0.4,0.3,0.2, 0.2,0.3,0.2,0.1, 0.1,0.2,0.1,0.0})
+let yhalf=yfull-0.05*zsequence({0,1,0,0, 0,1,0,0, 0,1,0,0, 0,1,0,0, 0,1,0,0,\
+                     0,1,0,0, 0,1,0,0, 0,1,0,0, 0,1,0,0, 0,1,0,0})
+
+! decoding of wind speed
+let npenn=int(speedkt-mod(speedkt,50))/50                 ! number of pennants
+let nfull=int(speedkt-npenn*50-mod(speedkt,10))/10        ! number of full barbs
+let nhalf=int(speedkt-npenn*50-nfull*10-mod(speedkt,5))/5 ! number of half barbs
+
+let npenn0=if(npenn gt 0)then 1 else 0
+let nfull0=if(nfull gt 0)then 1 else 0
+
+let mpenn=if(k[k=1:40] le 4*npenn)then 1 else 0
+let mfull=if(k[k=1:40] gt 4*npenn and i[i=1:40] le 4*(npenn+nfull))then 1 else 0
+let mhalf=if(k[k=1:40] gt 4*(npenn+nfull) \
+          and k[k=1:40] le 4*(npenn+nfull+nhalf))then 1 else 0 
+let mpenn=if(k[k=1:40] le 4*npenn)then 1 else 0
+let mfull=if(k[k=1:40] gt 4*(npenn+npenn0) \
+          and k[k=1:40] le 4*(npenn+npenn0+nfull))then 1 else 0
+let mhalf=if(k[k=1:40] gt 4*(npenn+npenn0+nfull) \
+          and k[k=1:40] le 4*(npenn+npenn0+nfull+nhalf))then 1 else 0
+
+! the rotated vector components are
+let xbtot=mpenn*xpenn+mfull*xfull+mhalf*xhalf
+let ybtot=mpenn*ypenn+mfull*yfull+mhalf*yhalf
+let xxbtot=xbtot*csf+ybtot*snf
+let yybtot=ybtot*csf-xbtot*snf
+
diff --git a/jnls/examples/annotate_demo.jnl b/jnls/examples/annotate_demo.jnl
index f2e5401..9bc7adc 100644
--- a/jnls/examples/annotate_demo.jnl
+++ b/jnls/examples/annotate_demo.jnl
@@ -1,4 +1,6 @@
 ! annotate_examples.jnl
+! Description: demo of the ANNOTATE command for adding labels to plots
+!
 ! 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
diff --git a/jnls/examples/dsg_checker.jnl b/jnls/examples/dsg_checker.jnl
new file mode 100644
index 0000000..9041b7c
--- /dev/null
+++ b/jnls/examples/dsg_checker.jnl
@@ -0,0 +1,242 @@
+\cancel mode verify   
+
+! dsg_checker.jnl
+! Check a DSG file for valid attributes and LAS/ ERDDAP reqirements
+!  * Global attribute Feature_Type
+!  * Attribute cf_role attribute on the ID variable must match the feature type
+!  * Attribute sample_dimension on the Rowsize variable (optional for single-feature files)
+!  * The ID variable must be of string type (for ERDDAP).
+!  * The time variable must be in units of "seconds since 1970-01-01" (for ERDDAP).
+
+
+query/ignore $1%|<Argument 1 is the file to check%
+
+
+use $1
+DEFINE SYMBOL filename = $1
+
+USE ($filename)
+
+SAY
+SAY --------- Analyzing ($filename)
+SAY
+
+LET errors = 0
+
+! Look for Global attribute Feature_Type. 
+
+LET attnames = ..attnames
+IF `is_element_of_str_n(attnames, "featureType") gt 0` then define symbol feature_type = `..featureType`
+
+
+IF `($feature_type"0|*>1) EQ 0` THEN
+   SAY
+   SAY **ERROR ** Global Feature_Type attribute is not found.
+   SAY 
+   SAY Exit
+   SAY
+   CANCEL DATA/ALL; CANCEL VAR/ALL; CANCEL SYMBOL/ALL
+   EXIT/SCRIPT
+
+ELSE
+   SAY
+   SAY --------- FeatureType is ($feature_type).
+ENDIF
+
+! Look for the cf_role attribute. It must be ($feature_type)_id.
+! Check for the sample_dimension attribute.
+! Find the time variable and store its units string
+
+LET varnames = ..varnames
+LET nvars = ..nvars
+REPEAT/RANGE=1:`nvars`/NAME=q (\
+DEFINE SYMBOL q = `q`;\
+DEFINE SYMBOL vname = `varnames[i=($q)]`;\
+IF `STRCMP( UPCASE("($vname)"), UPCASE("($ROWSIZE)") ) EQ 0` THEN \
+ DEFINE SYMBOL rowsizevar = ($vname);\
+;\
+LET attnames = ($vname).attnames;\
+IF `IS_ELEMENT_OF_STR_N(attnames, "cf_role") GT 0` THEN; \
+  DEFINE SYMBOL cf_role = `($vname).cf_role`;\
+  DEFINE SYMBOL id_var = ($vname);\
+ENDIF;\
+;\
+IF `IS_ELEMENT_OF_STR_N(attnames, "sample_dimension") GT 0` THEN; \
+  DEFINE SYMBOL sample_dimension = `($vname).sample_dimension`;\
+  DEFINE SYMBOL row_var = ($vname);\
+ENDIF;\
+;\
+IF `($time_units"0|*>1") EQ 0 AND IS_ELEMENT_OF_STR_N(attnames, "units") GT 0` THEN; \
+  DEFINE SYMBOL units = `($vname).units`_aa;\
+  IF `STRINDEX( UPCASE("($units)"), " SINCE " ) GT 0` THEN;\
+     DEFINE SYMBOL time_var = ($vname);\
+     DEFINE SYMBOL time_units = `($vname).units`;\
+  ENDIF;\
+ENDIF)
+
+! If no cf_role, look for it on a coordinate variable.
+IF `($cf_role"0|*>1) EQ 0` THEN
+
+   LET coordnames = ..coordnames
+   LET ncoord = ..ncoordvars
+
+   REPEAT/RANGE=1:`ncoord`/NAME=q (\
+   DEFINE SYMBOL q = `q`;\
+   DEFINE SYMBOL cname = `coordnames[i=($q)]`;\
+   LET attnames = (($cname)).attnames;\
+   IF `IS_ELEMENT_OF_STR_N(attnames, "cf_role") GT 0` THEN; \
+     DEFINE SYMBOL cf_role = `(($cname)).cf_role`;\
+     DEFINE SYMBOL id_var = ($cname);\
+     DEFINE SYMBOL vtype = FLOAT;\
+   ENDIF)
+ENDIF
+
+! Report cf_role attribute.
+IF `($cf_role"0|*>1) EQ 0` THEN
+   SAY
+   SAY **ERROR ** cf_role attribute is not found.
+   LET errors = `errors + 1`
+ELSE
+   SAY
+   SAY --------- cf_role attribute found on variable ($id_var).
+ENDIF
+
+! Check that the feature type and cf_role attribute describe the same feature type.
+
+DEFINE SYMBOL feature_type_test = ($feature_type)_id
+
+IF `STRCMP( UPCASE("($feature_type_test)"), UPCASE("($cf_role)") ) NE 0` THEN
+   SAY
+   SAY **ERROR ** cf_role attribute must match the feature type.
+   SAY **       ** Feature_Type is ($feature_type) cf_role is ($cf_role).
+   LET errors = `errors + 1`
+ELSE
+   SAY
+   SAY --------- cf_role attribute ($cf_role) matches feature type ($feature_type).
+ENDIF
+
+
+! For LAS, the type of the ID variable must be String.
+
+IF `($vtype"0|*>1") EQ 0` THEN DEFINE SYMBOL vtype = `($id_var),RETURN=dtype`
+IF `($vtype"0|CHAR>1|*>0") EQ 0` THEN
+   SAY
+   SAY **ERROR ** The ID variable: ($id_var), must be of type string. Its type is ($vtype"Unknown").
+   LET errors = `errors + 1`
+ELSE
+   SAY
+   SAY --------- ID variable, ($id_var), is of type string.
+ENDIF
+
+! Make sure the rowSize and ID variable are on the same, non-normal grid.
+IF `($rowsizevar"0|*>1") AND ($id_var"0|*>1")` THEN 
+
+   LET instance_grid = `($id_var),RETURN=grid`
+   LET rgrid = `($rowsizevar),RETURN=grid`
+   IF `STRCMP("($instance_grid)", "($rgrid)") NE 0` THEN 
+      SAY
+      SAY **ERROR ** Grids of OD variable, ($id_var), and Rowsize variable, ($rowsizevar), do not match
+      SHOW GRID ($idvar)
+      SHOW GRID ($rowvar)
+      LET errors = `errors + 1`
+   ENDIF
+ENDIF
+
+! Check the sample_dimension attribute, matching a dimension name
+
+IF `($sample_dimension"0|*>1") EQ 1` THEN
+   LET dimnames = ..dimnames
+   LET ndims = ..ndims
+   REPEAT/RANGE=1:`ndims`/NAME=q (\
+   DEFINE SYMBOL q = `q`;\
+   DEFINE SYMBOL dname = `dimnames[i=($q)]`;\
+   IF `STRCMP( UPCASE("($sample_dimension)"), UPCASE("($dname)") ) EQ 0` THEN;\
+      DEFINE SYMBOL sample_dim = ($dname);\
+      EXIT/LOOP;\
+   ENDIF)
+ENDIF
+
+! Report on the sample_dimension attribute 
+
+IF ($sample_dim"0|*>1") THEN
+   SAY
+   SAY --------- sample_dimension attribute found, ($sample_dim).
+ELSE
+   SAY
+   SAY **NOTE  ** sample_dimension attribute not found. This is acceptable for a file containing a single feature. 
+ENDIF
+
+! Is the sample_dimension attribute on the variable named rowSize? If not, it's legal,
+! but issue a note.
+
+IF ($rowsizevar"0|*>1") THEN
+   IF `($rowvar"0|*>1") AND (STRCMP( UPCASE("($rowvar)"), UPCASE("($rowsizevar)") ) NE 0)` THEN
+   SAY
+   SAY **NOTE  ** There is a variable named ($rowvar), but the sample_dimension attribute is on variable ($rowsizevar)
+   ENDIF
+ENDIF
+
+
+! Look for longitude and latitude variables. 
+! For ERDDAP: Are the longitudes in -180:180?
+
+REPEAT/RANGE=1:`nvars`/NAME=q (\
+DEFINE SYMBOL q = `q`;\
+DEFINE SYMBOL vname = `varnames[i=($q)]`;\
+leT mmvar = MINMAX(($vname));\
+LET attnames = ($vname).attnames;\
+IF `IS_ELEMENT_OF_STR_N(attnames, "units") GT 0` THEN;\
+   LET vunits = ($vname).units;\
+   IF `strlen(vunits) LE 1` THEN EXIT/CYCLE;\
+   DEFINE SYMBOL vunits = `($vname),RETURN=units`;\
+   IF `STRINDEX(UPCASE("($vunits)"), "NORTH") GT 0` THEN;\
+      LET l1 = mmvar[i=@MIN];\
+      LET l2 = mmvar[i=@MAX];\
+      SAY;\
+      SAY --------- Latitude variable found ... ($vname) with units ($vunits), ($vname) range `l1,prec=6`  to  `l2,prec=6`;\
+   ENDIF;\
+   IF `STRINDEX(UPCASE("($vunits)"), "EAST") GT 0` THEN;\
+      SAY;\
+      LET l1 = mmvar[i=@MIN];\
+      LET l2 = mmvar[i=@MAX];\
+      SAY --------- Longitude variable found ... ($vname) with units ($vunits), ($vname) range `l1,prec=6`  to  `l2,prec=6`;\
+      IF `(l1 lt -180 or l2 gt 180)` then;\
+      SAY **ERROR ** Longitude must be in -180:180;\
+   ENDIF;\
+ENDIF;\
+CANCEL SYMBOL vunits;\
+)
+
+
+! Check for the time variable 
+! For ERDDAP: units must be seconds since 1-jan-1970
+
+IF `($time_var"0|*>1") EQ 0` THEN
+   SAY  
+   SAY **ERROR ** Time variable not found. Searching for units of xxx since date.
+   LET errors = `errors + 1`
+ELSE
+   IF `STRINDEX(UPCASE("($time_units)"), "SECONDS SINCE 1970-01-01") EQ 0` THEN
+      SAY  
+      SAY **ERROR ** Time Units must be seconds since 1970-01-01. \
+      Units on ($time_var) are ($time_units)
+      LET errors = `errors+1`
+   ELSE
+      SAY  
+      SAY --------- Time variable ($time_var) with units of ($time_units).
+   ENDIF
+ENDIF
+
+SAY  
+SAY 
+SAY
+IF `errors GT 0` THEN     
+   SAY ---------   File ($filename) `errors` errors detected.
+ELSE
+   SAY ---------   ($filename) passed.
+ENDIF
+SAY  
+SAY 
+SAY  
+
+CANCEL DATA/ALL; CANCEL VAR/ALL; CANCEL SYMBOL/ALL
diff --git a/jnls/examples/image_to_kml.jnl b/jnls/examples/image_to_kml.jnl
index 9075688..32bde6e 100644
--- a/jnls/examples/image_to_kml.jnl
+++ b/jnls/examples/image_to_kml.jnl
@@ -137,11 +137,11 @@ DEFINE SYMBOL kml_write LIST/QUIET/nohead/norowhead/file="($kmlname)"/format=(a)
 !<LatLonBox>
 !    Specifies where the top, bottom, right, and left sides of a bounding box for the ground overlay are aligned.
 !
-!        * <north> Specifies the latitude of the north edge of the bounding box, in decimal degrees from 0 to �90.
-!        * <south> Specifies the latitude of the south edge of the bounding box, in decimal degrees from 0 to �90.
-!        * <east> Specifies the longitude of the east edge of the bounding box, in decimal degrees from 0 to �180. (For overlays that overlap the meridian of 180� longitude, values can extend beyond that range.)
-!        * <west> Specifies the longitude of the west edge of the bounding box, in decimal degrees from 0 to �180. (For overlays that overlap the meridian of 180� longitude, values can extend beyond that range.)
-!        * <rotation> Specifies a rotation of the overlay about its center, in degrees. Values can be �180. The default is 0 (north). Rotations are specified in a counterclockwise direction.
+!        * <north> Specifies the latitude of the north edge of the bounding box, in decimal degrees from 0 to +-90.
+!        * <south> Specifies the latitude of the south edge of the bounding box, in decimal degrees from 0 to +-90.
+!        * <east> Specifies the longitude of the east edge of the bounding box, in decimal degrees from 0 to +-180. (For overlays that overlap the meridian of 180 degrees longitude, values can extend beyond that range.)
+!        * <west> Specifies the longitude of the west edge of the bounding box, in decimal degrees from 0 to +-180. (For overlays that overlap the meridian of 180 degrees longitude, values can extend beyond that range.)
+!        * <rotation> Specifies a rotation of the overlay about its center, in degrees. Values can be +-180. The default is 0 (north). Rotations are specified in a counterclockwise direction.
 
 ($kml_write)/append {"         <LatLonBox>"}
 ($kml_write)/append {"             <north>($ppl$ymax)</north>"}
diff --git a/jnls/examples/land_detail_demo.jnl b/jnls/examples/land_detail_demo.jnl
index 47c0918..47455d2 100644
--- a/jnls/examples/land_detail_demo.jnl
+++ b/jnls/examples/land_detail_demo.jnl
@@ -19,7 +19,7 @@ pause
 ! Showing national boundaries and rivers. Access the detailed
 ! topography/bathymetry data from Smith and Sandwell via OPeNDAP
 
-use "http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/smith_sandwell_topo_v8_2.nc"
+use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/smith_sandwell_topo_v8_2.nc"
 fill/lev=(0,10000,10000)/pal=tan/nokey/x=0:24/y=30:46 rose
 fill/over/nolab/lev=(-5000,-1000,500)(-1000,0,50)/key/pal=topo/x=0:24/y=30:46 rose
 go land_detail black overlay red green blue blue
diff --git a/jnls/examples/mp_stereo_demo.jnl b/jnls/examples/mp_stereo_demo.jnl
index 71198ef..891d732 100644
--- a/jnls/examples/mp_stereo_demo.jnl
+++ b/jnls/examples/mp_stereo_demo.jnl
@@ -26,7 +26,7 @@ GO mp_aspect
 
 !   Plot the data.  Use SHAKEY to make the color key at the top of the plot and
 !   control its size and location.  For a description of SHAKEY see the on-line
-!   Ferret Users' Guide at http://www.ferret.noaa.gov/Ferret/Documentation/Users_Guide/current/fer_html.htm
+!   Ferret Users' Guide at http://ferret.pmel.noaa.gov/Ferret/documentation/users-guide
 
 !   The arguments to SHAKEY are 
 !   SHAKEY do_key, orient, klab_siz, klab_inc, klab_dig, klab_len, kx_lo, kx_hi, ky_lo, ky_hi
diff --git a/jnls/go/plot_swath.jnl b/jnls/go/plot_swath.jnl
index a5f022b..4faee18 100644
--- a/jnls/go/plot_swath.jnl
+++ b/jnls/go/plot_swath.jnl
@@ -2,6 +2,7 @@
 ! plot_swath.jnl
 ! 6/99 *sh*
 ! 1/02 *acm* add note on limits
+! 3/17 *acm* handle positive-down Z axis
 
 ! Description: Plot a color-filed swath between upper and lower bounds
 
@@ -81,7 +82,12 @@ LET/QUIET PSWx4_0 = IF PSWpindex EQ 1 OR PSWpindex EQ 4 then PSWx ELSE PSWx[($PS
 LET/QUIET PSWy4_1 = IF PSWpindex LE 2 then PSWylo ELSE PSWyhi
 LET/QUIET PSWy4_0 = IF PSWpindex EQ 1 OR PSWpindex EQ 4 then PSWy4_1 ELSE PSWy4_1[($PSWax)=@shf:1]
 
-$1/coord_ax=($PSWquad_ax)  PSWx4_0,PSWy4_0
+! If the plot is in the Z direction and it is a depth axis, need /TRANS
+IF ($PSWax"|Z>1|*>0") THEN 
+   IF `PSWx4_0,return=isDepth` THEN DEFINE SYMBOL flip = /TRANS
+ENDIF
+
+$1($flip)/coord_ax=($PSWquad_ax)  PSWx4_0,PSWy4_0
 
 cancel symbol PSW*
 cancel variable PSW*
diff --git a/jnls/go/wv5d_append.jnl b/jnls/go/wv5d_append.jnl
index 47852f3..b6dd460 100644
--- a/jnls/go/wv5d_append.jnl
+++ b/jnls/go/wv5d_append.jnl
@@ -13,12 +13,12 @@
 !     you want to join those files together to view the data in Vis5D.
 !     
 !     The arguments are, in order:
-!        �  An optional list of variables to omit from the output file. For
-!          example, if you want to omit the variables U and THETA you would
-!          use the arguments -U and -THETA.
-!        �  The list of v5d files to append onto the target file.
-!        �  The name of the target v5d file to create (if it doesnt exit)
-!          or append onto (if the target file already exists).
+!        -  An optional list of variables to omit from the output file. For
+!           example, if you want to omit the variables U and THETA you would
+!           use the arguments -U and -THETA.
+!        -  The list of v5d files to append onto the target file.
+!        -  The name of the target v5d file to create (if it doesnt exit)
+!           or append onto (if the target file already exists).
 !     
 !     Note that the dimensions of the grids (rows, columns and levels) must
 !     be the same in each file to append them together.  The map projection
diff --git a/palettes/gray_pale.spk b/palettes/gray_pale.spk
new file mode 100644
index 0000000..7c88edd
--- /dev/null
+++ b/palettes/gray_pale.spk
@@ -0,0 +1,2 @@
+  0 95   95   95 
+100 95   95   95
diff --git a/palettes/inferno.spk b/palettes/inferno.spk
new file mode 100644
index 0000000..70564e6
--- /dev/null
+++ b/palettes/inferno.spk
@@ -0,0 +1,104 @@
+! contributed by Patrick Brockmann
+! 12/2015 See http://matplotlib.org/examples/color/colormaps_reference.html
+
+0.000000 0.146200 0.046600 1.386600
+1.000000 0.329900 0.224900 2.423900
+2.000000 0.767600 0.613600 4.683600
+3.000000 1.166300 0.941700 6.346000
+4.000000 1.937300 1.513300 8.876700
+5.000000 2.579300 1.933100 10.593000
+6.000000 3.766800 2.592100 13.223200
+7.000000 4.691500 3.032400 15.016400
+8.000000 6.134000 3.659000 17.764200
+9.000000 7.663700 4.190500 20.579900
+10.000000 8.741100 4.455600 22.481300
+11.000000 10.455100 4.700800 25.343000
+12.000000 11.665600 4.757400 27.232100
+13.000000 13.577800 4.685600 29.977600
+14.000000 14.907300 4.546800 31.708500
+15.000000 16.957500 4.248900 34.087400
+16.000000 18.342900 4.032900 35.497100
+17.000000 20.420900 3.763200 37.323800
+18.000000 22.476300 3.640500 38.812900
+19.000000 23.827300 3.662100 39.635300
+20.000000 25.823400 3.857100 40.648500
+21.000000 27.134700 4.092200 41.197600
+22.000000 29.076300 4.564400 41.863700
+23.000000 30.356800 4.939600 42.218200
+24.000000 32.261000 5.563400 42.637700
+25.000000 34.150000 6.232500 42.942500
+26.000000 35.403200 6.692500 43.090600
+27.000000 37.276800 7.391500 43.240000
+28.000000 38.522800 7.859100 43.295500
+29.000000 40.389400 8.558000 43.317900
+30.000000 41.633100 9.020300 43.294300
+31.000000 43.498700 9.706900 43.203900
+32.000000 44.742800 10.159700 43.108000
+33.000000 46.610000 10.832200 42.912500
+34.000000 48.478900 11.497400 42.654800
+35.000000 49.725700 11.937900 42.448800
+36.000000 51.596700 12.596000 42.088700
+37.000000 52.844400 13.034100 41.814200
+38.000000 54.715700 13.692900 41.351100
+39.000000 55.962400 14.134600 41.007800
+40.000000 57.830400 14.803900 40.441100
+41.000000 59.073400 15.256300 40.029000
+42.000000 60.933000 15.947400 39.358900
+43.000000 62.784700 16.657500 38.627600
+44.000000 64.013500 17.143800 38.106500
+45.000000 65.846300 17.896200 37.274800
+46.000000 67.059900 18.415300 36.687900
+47.000000 68.865300 19.223900 35.760300
+48.000000 70.057600 19.785100 35.111300
+49.000000 71.826400 20.663600 34.093100
+50.000000 73.568300 21.590600 33.024500
+51.000000 74.712700 22.237800 32.285600
+52.000000 76.401000 23.255400 31.139900
+53.000000 77.505900 23.966700 30.352600
+54.000000 79.129300 25.085600 29.139000
+55.000000 80.187100 25.867400 28.309900
+56.000000 81.734100 27.095400 27.039000
+57.000000 82.737200 27.951700 26.175000
+58.000000 84.196900 29.293300 24.856400
+59.000000 85.599200 30.703800 23.513300
+60.000000 86.500600 31.682200 22.605500
+61.000000 87.800100 33.206000 21.226800
+62.000000 88.630200 34.258600 20.296800
+63.000000 89.819200 35.891100 18.886000
+64.000000 90.573500 37.014000 17.935000
+65.000000 91.646200 38.748100 16.492400
+66.000000 92.321500 39.935900 15.519300
+67.000000 93.273700 41.762700 14.041700
+68.000000 94.152100 43.640500 12.540900
+69.000000 94.696500 44.919100 11.527200
+70.000000 95.450600 46.874400 9.987400
+71.000000 95.911400 48.201400 8.949900
+72.000000 96.539700 50.224900 7.385900
+73.000000 96.916300 51.594600 6.348800
+74.000000 97.417600 53.678000 4.839200
+75.000000 97.842200 55.793700 3.493100
+76.000000 98.082400 57.220900 2.850800
+77.000000 98.377900 59.384900 2.377000
+78.000000 98.531500 60.842200 2.420200
+79.000000 98.696400 63.048500 3.090800
+80.000000 98.762200 64.532000 3.988600
+81.000000 98.794500 66.774800 5.832900
+82.000000 98.771400 68.280700 7.248900
+83.000000 98.669400 70.554000 9.569400
+84.000000 98.486500 72.842700 12.078500
+85.000000 98.319600 74.375800 13.845300
+86.000000 98.003200 76.683700 16.635300
+87.000000 97.749700 78.225800 18.592300
+88.000000 97.308800 80.540900 21.687700
+89.000000 96.978300 82.082500 23.868600
+90.000000 96.439400 84.384800 27.339100
+91.000000 96.062600 85.906900 29.801000
+92.000000 95.499700 88.156900 33.747500
+93.000000 95.001800 90.340900 38.027100
+94.000000 94.759400 91.739900 41.066500
+95.000000 94.640300 93.715900 45.859200
+96.000000 94.793700 94.931800 49.142600
+97.000000 95.452900 96.589600 54.036100
+98.000000 96.181200 97.592400 57.192500
+99.000000 97.651100 98.975300 61.676000
+100.000000 98.836200 99.836400 64.492400
diff --git a/palettes/magma.spk b/palettes/magma.spk
new file mode 100644
index 0000000..738544c
--- /dev/null
+++ b/palettes/magma.spk
@@ -0,0 +1,104 @@
+! contributed by Patrick Brockmann
+! 12/2015 See http://matplotlib.org/examples/color/colormaps_reference.html
+
+0.000000 0.146200 0.046600 1.386600
+1.000000 0.327900 0.230500 2.370800
+2.000000 0.758800 0.635600 4.497300
+3.000000 1.146500 0.982800 6.075000
+4.000000 1.881500 1.602600 8.458400
+5.000000 2.479200 2.071500 10.067600
+6.000000 3.552000 2.839700 12.520900
+7.000000 4.383000 3.383000 14.188600
+8.000000 5.661500 4.216000 16.744600
+9.000000 6.976400 4.972600 19.373500
+10.000000 7.881500 5.418400 21.166700
+11.000000 9.294900 5.990400 23.916400
+12.000000 10.281500 6.301000 25.785400
+13.000000 11.840500 6.647900 28.632100
+14.000000 12.938000 6.793500 30.544300
+15.000000 14.678500 6.873800 33.401100
+16.000000 15.901800 6.835400 35.268800
+17.000000 17.821200 6.657600 37.949700
+18.000000 19.817700 6.386200 40.400900
+19.000000 21.171800 6.199200 41.864700
+20.000000 23.207700 5.988900 43.769500
+21.000000 24.554300 5.935200 44.843600
+22.000000 26.544700 6.023700 46.184000
+23.000000 27.849300 6.197800 46.919000
+24.000000 29.774000 6.611700 47.824300
+25.000000 31.665400 7.169000 48.538000
+26.000000 32.911400 7.597200 48.928700
+27.000000 34.763600 8.294600 49.412100
+28.000000 35.989800 8.783100 49.677800
+29.000000 37.821100 9.533200 50.006700
+30.000000 39.038400 10.037900 50.186400
+31.000000 40.862900 10.793000 50.405200
+32.000000 42.079100 11.292000 50.521500
+33.000000 43.906200 12.029800 50.655500
+34.000000 45.738600 12.752200 50.744800
+35.000000 46.964000 13.224500 50.780900
+36.000000 48.808800 13.918600 50.801100
+37.000000 50.043800 14.371900 50.792000
+38.000000 51.904500 15.038300 50.744300
+39.000000 53.150700 15.473900 50.689500
+40.000000 55.028700 16.115800 50.571900
+41.000000 56.286600 16.536800 50.469200
+42.000000 58.181900 17.159600 50.277700
+43.000000 60.086800 17.774300 50.039400
+44.000000 61.361700 18.181100 49.853600
+45.000000 63.280500 18.789300 49.533200
+46.000000 64.563300 19.195200 49.291000
+47.000000 66.491500 19.807500 48.883600
+48.000000 67.778600 20.220300 48.581900
+49.000000 69.709800 20.850100 48.083500
+50.000000 71.638700 21.498200 47.529000
+51.000000 72.921600 21.943700 47.127900
+52.000000 74.837800 22.637700 46.479400
+53.000000 76.107700 23.121400 46.016200
+54.000000 77.996800 23.885100 45.276500
+55.000000 79.242700 24.424200 44.754300
+56.000000 81.085500 25.286100 43.930500
+57.000000 82.292600 25.901600 43.357300
+58.000000 84.063600 26.895300 42.466600
+59.000000 85.776300 27.985700 41.549600
+60.000000 86.879300 28.772800 40.930300
+61.000000 88.465100 30.053000 40.004700
+62.000000 89.470000 30.977300 39.399500
+63.000000 90.888400 32.475500 38.530800
+64.000000 91.768900 33.550000 37.991500
+65.000000 92.984500 35.273400 37.267700
+66.000000 93.722100 36.492900 36.856700
+67.000000 94.718000 38.417800 36.370100
+68.000000 95.584900 40.440000 36.061900
+69.000000 96.094900 41.832300 35.963000
+70.000000 96.767100 43.970300 35.981000
+71.000000 97.158200 45.421000 36.103000
+72.000000 97.669000 47.622600 36.446600
+73.000000 97.964500 49.101400 36.778300
+74.000000 98.348500 51.328000 37.419800
+75.000000 98.670000 53.558200 38.221000
+76.000000 98.853300 55.044600 38.836500
+77.000000 99.087100 57.270600 39.871400
+78.000000 99.219600 58.750200 40.629900
+79.000000 99.383400 60.964400 41.861300
+80.000000 99.473800 62.435000 42.739700
+81.000000 99.581000 64.634400 44.136100
+82.000000 99.634100 66.096900 45.116000
+83.000000 99.692500 68.282800 46.652600
+84.000000 99.725400 70.461100 48.263500
+85.000000 99.735100 71.908900 49.375500
+86.000000 99.728500 74.077200 51.098300
+87.000000 99.713800 75.519000 52.280600
+88.000000 99.672700 77.679500 54.103900
+89.000000 99.636900 79.116700 55.349900
+90.000000 99.568000 81.270600 57.264500
+91.000000 99.513100 82.705200 58.570100
+92.000000 99.422200 84.854000 60.569600
+93.000000 99.317000 87.002400 62.618900
+94.000000 99.244000 88.433000 64.009900
+95.000000 99.133200 90.576300 66.130900
+96.000000 99.057000 92.004900 67.567500
+97.000000 98.943400 94.147000 69.751900
+98.000000 98.871700 95.574200 71.224200
+99.000000 98.769100 97.715400 73.453600
+100.000000 98.705300 99.143800 74.950400
diff --git a/palettes/plasma.spk b/palettes/plasma.spk
new file mode 100644
index 0000000..51c1480
--- /dev/null
+++ b/palettes/plasma.spk
@@ -0,0 +1,104 @@
+! contributed by Patrick Brockmann
+! 12/2015 See http://matplotlib.org/examples/color/colormaps_reference.html
+
+0.000000 5.038300 2.980300 52.797500
+1.000000 7.535300 2.720600 53.800700
+2.000000 10.598000 2.430900 55.136800
+3.000000 12.390300 2.287800 55.942300
+4.000000 14.860700 2.115400 57.056200
+5.000000 16.407000 2.017100 57.747800
+6.000000 18.621300 1.880300 58.722800
+7.000000 20.044500 1.790200 59.336400
+8.000000 22.119700 1.649700 60.208300
+9.000000 24.139600 1.497900 61.025900
+10.000000 25.462700 1.388200 61.541900
+11.000000 27.419100 1.210900 62.272200
+12.000000 28.707600 1.085500 62.729500
+13.000000 30.621000 0.890200 63.369400
+14.000000 31.885600 0.757600 63.764000
+15.000000 33.768300 0.561800 64.304900
+16.000000 35.015000 0.438200 64.629800
+17.000000 36.873300 0.272400 65.060100
+18.000000 38.718300 0.143400 65.417700
+19.000000 39.941100 0.085900 65.613300
+20.000000 41.764200 0.056400 65.839000
+21.000000 42.971900 0.083100 65.942500
+22.000000 44.771400 0.208000 66.024000
+23.000000 45.962300 0.357400 66.027700
+24.000000 47.734400 0.698000 65.954900
+25.000000 49.487700 1.199000 65.786500
+26.000000 50.645400 1.633300 65.620200
+27.000000 52.363300 2.453200 65.290100
+28.000000 53.495200 3.121700 65.016500
+29.000000 55.171500 4.313600 64.527700
+30.000000 56.273800 5.154500 64.150900
+31.000000 57.902900 6.429600 63.512600
+32.000000 58.971900 7.287800 63.040800
+33.000000 60.548500 8.585400 62.268600
+34.000000 62.091900 9.893400 61.425700
+35.000000 63.101700 10.769900 60.828700
+36.000000 64.587200 12.089800 59.886700
+37.000000 65.558000 12.972500 59.231700
+38.000000 66.984500 14.299200 58.215400
+39.000000 67.916000 15.184800 57.518900
+40.000000 69.284000 16.514100 56.452200
+41.000000 70.176900 17.400500 55.729600
+42.000000 71.488300 18.729900 54.633800
+43.000000 72.767000 20.058600 53.529300
+44.000000 73.601900 20.943900 52.790800
+45.000000 74.828900 22.271100 51.683400
+46.000000 75.630400 23.155500 50.946800
+47.000000 76.809000 24.481700 49.846500
+48.000000 77.579600 25.365800 49.117100
+49.000000 78.713300 26.692200 48.030700
+50.000000 79.821600 28.019700 46.953800
+51.000000 80.546700 28.905700 46.241500
+52.000000 81.614400 30.236800 45.181600
+53.000000 82.313200 31.126100 44.480600
+54.000000 83.342200 32.463500 43.436600
+55.000000 84.015500 33.358000 42.745500
+56.000000 85.006600 34.704800 41.715300
+57.000000 85.654700 35.606600 41.032200
+58.000000 86.607800 36.966000 40.012600
+59.000000 87.537600 38.334700 38.997600
+60.000000 88.144300 39.252900 38.322900
+61.000000 89.034000 40.639800 37.313000
+62.000000 89.613100 41.571200 36.640700
+63.000000 90.460100 42.979700 35.632900
+64.000000 91.009800 43.926800 34.961000
+65.000000 91.810900 45.360300 33.952900
+66.000000 92.328700 46.325100 33.280100
+67.000000 93.079800 47.786700 32.269700
+68.000000 93.799000 49.266700 31.257500
+69.000000 94.259800 50.263900 30.581600
+70.000000 94.921700 51.776300 29.566200
+71.000000 95.342800 52.796000 28.888300
+72.000000 95.942400 54.343100 27.870100
+73.000000 96.320300 55.386500 27.190900
+74.000000 96.852600 56.970000 26.172100
+75.000000 97.341600 58.576100 25.154000
+76.000000 97.642800 59.659500 24.476700
+77.000000 98.055600 61.303900 23.464600
+78.000000 98.304100 62.413100 22.793700
+79.000000 98.634500 64.096900 21.794800
+80.000000 98.826000 65.232500 21.136400
+81.000000 99.068100 66.955800 20.164200
+82.000000 99.198500 68.117900 19.529500
+83.000000 99.345600 69.881000 18.604100
+84.000000 99.432400 71.668100 17.720800
+85.000000 99.455300 72.872800 17.162200
+86.000000 99.435500 74.699500 16.382100
+87.000000 99.385100 75.930400 15.909200
+88.000000 99.250500 77.796700 15.285500
+89.000000 99.120900 79.053700 14.937700
+90.000000 98.864800 80.957900 14.535700
+91.000000 98.650900 82.240100 14.355700
+92.000000 98.265300 84.181200 14.230300
+93.000000 97.799500 86.143200 14.280800
+94.000000 97.444300 87.462200 14.406100
+95.000000 96.844300 89.456400 14.701400
+96.000000 96.402100 90.795000 14.937000
+97.000000 95.680800 92.815200 15.240900
+98.000000 95.172600 94.167100 15.292500
+99.000000 94.415200 96.191600 14.686100
+100.000000 94.001500 97.515800 13.132600
diff --git a/palettes/rnb_no_purple.spk b/palettes/rnb_no_purple.spk
new file mode 100644
index 0000000..1b5f7d1
--- /dev/null
+++ b/palettes/rnb_no_purple.spk
@@ -0,0 +1,5 @@
+ 00.    0.    0.  100.
+ 20.    0.   98.  100.
+ 60.   97.  100.    3.
+ 80.  100.    3.    0.
+100.   60.    0.    0.
diff --git a/palettes/viridis.spk b/palettes/viridis.spk
new file mode 100644
index 0000000..e0090c8
--- /dev/null
+++ b/palettes/viridis.spk
@@ -0,0 +1,105 @@
+! contributed by Patrick Brockmann
+! 12/2015 See http://matplotlib.org/examples/color/colormaps_reference.html
+
+
+0.000000 26.700400 0.487400 32.941500
+1.000000 26.994400 1.462500 34.137900
+2.000000 27.380900 3.149700 35.885300
+3.000000 27.602200 4.416700 37.016400
+4.000000 27.879100 6.214500 38.659200
+5.000000 28.026700 7.341700 39.716300
+6.000000 28.192400 8.966600 41.241500
+7.000000 28.265600 10.019600 42.216000
+8.000000 28.319700 11.568000 43.611500
+9.000000 28.307200 13.089500 44.924100
+10.000000 28.262300 14.092600 45.751700
+11.000000 28.141200 15.583400 46.920100
+12.000000 28.025500 16.569300 47.649800
+13.000000 27.801200 18.036700 48.669700
+14.000000 27.619400 19.007400 49.300100
+15.000000 27.300600 20.452000 50.172100
+16.000000 27.059500 21.406900 50.705200
+17.000000 26.658000 22.826200 51.434900
+18.000000 26.213800 24.228600 52.083700
+19.000000 25.896500 25.153700 52.473600
+20.000000 25.393500 26.525400 52.998300
+21.000000 25.042500 27.429000 53.310300
+22.000000 24.497200 28.767500 53.726000
+23.000000 24.123700 29.648500 53.970900
+24.000000 23.552600 30.952700 54.294400
+25.000000 22.973900 32.236100 54.570600
+26.000000 22.586300 33.080500 54.731400
+27.000000 22.005700 34.330700 54.941300
+28.000000 21.621000 35.153500 55.062700
+29.000000 21.050300 36.372700 55.220600
+30.000000 20.675600 37.175800 55.311700
+31.000000 20.123900 38.367000 55.429400
+32.000000 19.763600 39.152800 55.496900
+33.000000 19.235700 40.319900 55.583600
+34.000000 18.723100 41.474600 55.654700
+35.000000 18.389800 42.238300 55.694400
+36.000000 17.901900 43.375600 55.743000
+37.000000 17.584100 44.129000 55.768500
+38.000000 17.117600 45.253000 55.796500
+39.000000 16.812600 45.998800 55.808200
+40.000000 16.362500 47.113300 55.814800
+41.000000 16.066500 47.854000 55.811500
+42.000000 15.627000 48.962400 55.793600
+43.000000 15.191800 50.068500 55.758700
+44.000000 14.903900 50.805100 55.725000
+45.000000 14.475900 51.909300 55.657200
+46.000000 14.193500 52.645300 55.599100
+47.000000 13.777000 53.749200 55.490600
+48.000000 13.506600 54.485300 55.402900
+49.000000 13.117200 55.589900 55.245900
+50.000000 12.756800 56.694900 55.055600
+51.000000 12.539400 57.431800 54.908600
+52.000000 12.260600 58.537100 54.655700
+53.000000 12.114800 59.273900 54.464100
+54.000000 11.973800 60.378500 54.140000
+55.000000 11.942300 61.114100 53.898200
+56.000000 12.008100 62.216100 53.494600
+57.000000 12.138000 62.949200 53.197300
+58.000000 12.478000 64.046100 52.706800
+59.000000 13.006700 65.138400 52.160800
+60.000000 13.469200 65.863600 51.764900
+61.000000 14.330300 66.945900 51.121500
+62.000000 15.014800 67.663100 50.658900
+63.000000 16.201600 68.731600 49.912900
+64.000000 17.094800 69.438400 49.380300
+65.000000 18.578300 70.489100 48.527300
+66.000000 19.657100 71.182700 47.922100
+67.000000 21.400000 72.211400 46.958800
+68.000000 23.281500 73.224700 45.927700
+69.000000 24.607000 73.891000 45.202400
+70.000000 26.694100 74.875100 44.057300
+71.000000 28.147700 75.520300 43.255200
+72.000000 30.414800 76.470400 41.994300
+73.000000 31.980900 77.091400 41.115200
+74.000000 34.407400 78.002900 39.738100
+75.000000 36.921400 78.888800 38.291400
+76.000000 38.643300 79.464400 37.288600
+77.000000 41.291300 80.304100 35.726900
+78.000000 43.098300 80.847300 34.647600
+79.000000 45.867400 81.636300 32.972700
+80.000000 47.750400 82.144400 31.819500
+81.000000 50.627100 82.878600 30.036200
+82.000000 52.577600 83.349100 28.812700
+83.000000 55.548400 84.025400 26.928100
+84.000000 58.567800 84.666100 24.989700
+85.000000 60.604500 85.073300 23.671200
+86.000000 63.690200 85.654200 21.662000
+87.000000 65.764200 86.021900 20.308200
+88.000000 68.894400 86.544800 18.272500
+89.000000 70.989800 86.875100 16.925700
+90.000000 74.138800 87.344900 14.956100
+91.000000 76.237300 87.642400 13.706400
+92.000000 79.376000 88.067800 12.000500
+93.000000 82.494000 88.472000 10.621700
+94.000000 84.556100 88.732200 9.970200
+95.000000 87.616800 89.112500 9.525000
+96.000000 89.632000 89.361600 9.633500
+97.000000 92.610600 89.733000 10.407100
+98.000000 94.563600 89.981500 11.283800
+99.000000 97.441700 90.359000 13.021500
+100.000000 99.324800 90.615700 14.393600
diff --git a/platform_specific.mk.i386-linux b/platform_specific.mk.i386-linux
index 69e80df..65b19ef 100644
--- a/platform_specific.mk.i386-linux
+++ b/platform_specific.mk.i386-linux
@@ -10,6 +10,9 @@
 # which should have been included prior to this include.
 #
 
+# Leave blank to omit additional Linux linker flags
+	IS_LINUX_SYSTEM = True
+
 #
 # Directories for the libraries
 #
@@ -31,6 +34,14 @@ else
 	PIXMAN_INCLUDE	= -I$(PIXMAN_DIR)/include
 endif
 
+ifeq ($(strip $(PANGO_DIR)),)
+	PANGO_LIBDIR	=
+	PANGO_INCLUDE	= -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
+else
+	PANGO_LIBDIR	= $(PANGO_DIR)/lib
+	PANGO_INCLUDE	= -I$(PANGO_DIR)/include/pango-1.0 -I$(PANGO_DIR)/include/glib-2.0 -I$(PANGO_DIR)/lib/glib-2.0/include
+endif
+
 ifeq ($(strip $(HDF5_DIR)),)
 	HDF5_LIBDIR	=
 else
@@ -54,9 +65,7 @@ endif
 			  -I$(DIR_PREFIX)/external_functions/ef_utility \
 			  $(CAIRO_INCLUDE) \
 			  $(PIXMAN_INCLUDE) \
-			  -I/usr/include/pango-1.0 \
-			  -I/usr/include/glib-2.0 \
-			  -I/usr/lib/glib-2.0/include \
+			  $(PANGO_INCLUDE) \
 			  -I$(NETCDF4_DIR)/include
 
 	MYDEFINES	= -Dcrptd_cat_argument \
@@ -97,6 +106,11 @@ endif
 	PPLUS_FFLAGS	= $(MYINCLUDES) $(MYDEFINES) -m32 -fPIC -fno-automatic -fdollar-ok \
 			  -ffixed-line-length-132 -fno-second-underscore -fno-backslash
 
+	OPT_FLAGS	= -O -DNDEBUG
+	PPLUS_OPT_FLAGS	= -O -DNDEBUG
+	DBG_FLAGS	= -O0 -g
+	PROF_FLAGS	= -O0 -g -pg
+
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
 %.o : %.F
diff --git a/platform_specific.mk.i386-linux-gnu b/platform_specific.mk.i386-linux-gnu
index f4aab27..8c4586d 100644
--- a/platform_specific.mk.i386-linux-gnu
+++ b/platform_specific.mk.i386-linux-gnu
@@ -10,6 +10,9 @@
 # which should have been included prior to this include.
 #
 
+# Leave blank to omit additional Linux linker flags
+	IS_LINUX_SYSTEM = True
+
 #
 # Directories for the libraries
 #
@@ -31,6 +34,14 @@ else
 	PIXMAN_INCLUDE	= -I$(PIXMAN_DIR)/include
 endif
 
+ifeq ($(strip $(PANGO_DIR)),)
+	PANGO_LIBDIR	=
+	PANGO_INCLUDE	= -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include
+else
+	PANGO_LIBDIR	= $(PANGO_DIR)/lib
+	PANGO_INCLUDE	= -I$(PANGO_DIR)/include/pango-1.0 -I$(PANGO_DIR)/include/glib-2.0 -I$(PANGO_DIR)/lib/glib-2.0/include
+endif
+
 ifeq ($(strip $(HDF5_DIR)),)
 	HDF5_LIBDIR	=
 else
@@ -54,9 +65,7 @@ endif
 			  -I$(DIR_PREFIX)/external_functions/ef_utility \
 			  $(CAIRO_INCLUDE) \
 			  $(PIXMAN_INCLUDE) \
-			  -I/usr/include/pango-1.0 \
-			  -I/usr/include/glib-2.0 \
-			  -I/usr/lib/i386-linux-gnu/glib-2.0/include \
+			  $(PANGO_INCLUDE) \
 			  -I$(NETCDF4_DIR)/include
 
 	MYDEFINES	= -Dcrptd_cat_argument \
@@ -97,11 +106,16 @@ endif
 	PPLUS_FFLAGS	= $(MYINCLUDES) $(MYDEFINES) -m32 -fPIC -fno-automatic -fdollar-ok \
 			  -ffixed-line-length-132 -fno-second-underscore -fno-backslash
 
+	OPT_FLAGS	= -O -DNDEBUG
+	PPLUS_OPT_FLAGS	= -O -DNDEBUG
+	DBG_FLAGS	= -O0 -g
+	PROF_FLAGS	= -O0 -g -pg
+
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
 %.o : %.F
 	$(FC) $(FFLAGS) -c $*.F -o $*.o
 
 #
-# End of platform_specific.mk.i386-linux
+# End of platform_specific.mk.i386-linux-gnu
 #
diff --git a/platform_specific.mk.intel-mac b/platform_specific.mk.intel-mac
index dd8c400..765bc4b 100644
--- a/platform_specific.mk.intel-mac
+++ b/platform_specific.mk.intel-mac
@@ -10,8 +10,11 @@
 # which should have been included prior to this include.
 #
 
+# Leave blank to omit additional Linux linker flags
+	IS_LINUX_SYSTEM = 
+
 #
-# Directories for the libraries.  
+# Directories for the libraries
 #
 ifeq ($(strip $(CAIRO_DIR)),)
 	CAIRO_LIBDIR	=
@@ -31,6 +34,14 @@ else
 	PIXMAN_INCLUDE	= -I$(PIXMAN_DIR)/include
 endif
 
+ifeq ($(strip $(PANGO_DIR)),)
+	PANGO_LIBDIR	=
+	PANGO_INCLUDE	= -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
+else
+	PANGO_LIBDIR	= $(PANGO_DIR)/lib
+	PANGO_INCLUDE	= -I$(PANGO_DIR)/include/pango-1.0 -I$(PANGO_DIR)/include/glib-2.0 -I$(PANGO_DIR)/lib/glib-2.0/include
+endif
+
 ifeq ($(strip $(HDF5_DIR)),)
 	HDF5_LIBDIR	=
 else
@@ -54,9 +65,7 @@ endif
 			  -I$(DIR_PREFIX)/external_functions/ef_utility \
 			  $(CAIRO_INCLUDE) \
 			  $(PIXMAN_INCLUDE) \
-			  -I/usr/local/include/pango-1.0 \
-			  -I/usr/local/include/glib-2.0 \
-			  -I/usr/local/lib/glib-2.0/include \
+			  $(PANGO_INCLUDE) \
 			  -I$(NETCDF4_DIR)/include
 
 	MYDEFINES	= -Dcrptd_cat_argument \
@@ -97,6 +106,11 @@ endif
 	PPLUS_FFLAGS	= $(MYINCLUDES) $(MYDEFINES) -fPIC -fno-automatic -fdollar-ok \
 			  -ffixed-line-length-132 -fno-second-underscore -fno-backslash
 
+	OPT_FLAGS	= -O -DNDEBUG
+	PPLUS_OPT_FLAGS	= -O -DNDEBUG
+	DBG_FLAGS	= -O0 -g
+	PROF_FLAGS	= -O0 -g
+
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
 %.o : %.F
diff --git a/platform_specific.mk.x86_64-linux b/platform_specific.mk.x86_64-linux
index d2b638d..98df7a4 100644
--- a/platform_specific.mk.x86_64-linux
+++ b/platform_specific.mk.x86_64-linux
@@ -10,6 +10,9 @@
 # which should have been included prior to this include.
 #
 
+# Leave blank to omit additional Linux linker flags
+	IS_LINUX_SYSTEM = True
+
 #
 # Directories for the libraries.  Convention has the 64-bit libraries
 # in a .../lib64 directory, but they may be in a .../lib directory.
@@ -34,6 +37,17 @@ else
 	PIXMAN_INCLUDE	= -I$(PIXMAN_DIR)/include
 endif
 
+ifeq ($(strip $(PANGO_DIR)),)
+	PANGO_LIBDIR	=
+#	PANGO_INCLUDE	= -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
+	PANGO_INCLUDE	= -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include
+else
+#	PANGO_LIBDIR	= $(PANGO_DIR)/lib
+#	PANGO_INCLUDE	= -I$(PANGO_DIR)/include/pango-1.0 -I$(PANGO_DIR)/include/glib-2.0 -I$(PANGO_DIR)/lib/glib-2.0/include
+	PANGO_LIBDIR	= $(PANGO_DIR)/lib64
+	PANGO_INCLUDE	= -I$(PANGO_DIR)/include/pango-1.0 -I$(PANGO_DIR)/include/glib-2.0 -I$(PANGO_DIR)/lib64/glib-2.0/include
+endif
+
 ifeq ($(strip $(HDF5_DIR)),)
 	HDF5_LIBDIR	=
 else
@@ -59,9 +73,7 @@ endif
 			  -I$(DIR_PREFIX)/external_functions/ef_utility \
 			  $(CAIRO_INCLUDE) \
 			  $(PIXMAN_INCLUDE) \
-			  -I/usr/include/pango-1.0 \
-			  -I/usr/include/glib-2.0 \
-			  -I/usr/lib64/glib-2.0/include \
+			  $(PANGO_INCLUDE) \
 			  -I$(NETCDF4_DIR)/include
 
 	MYDEFINES	= -Dcrptd_cat_argument \
@@ -102,6 +114,11 @@ endif
 	PPLUS_FFLAGS	= $(MYINCLUDES) $(MYDEFINES) -m64 -fPIC -fno-automatic -fdollar-ok \
 			  -ffixed-line-length-132 -fno-second-underscore -fno-backslash
 
+	OPT_FLAGS	= -O -DNDEBUG
+	PPLUS_OPT_FLAGS	= -O -DNDEBUG
+	DBG_FLAGS	= -O0 -g
+	PROF_FLAGS	= -O0 -g -pg
+
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
 %.o : %.F
diff --git a/platform_specific.mk.x86_64-linux-gnu b/platform_specific.mk.x86_64-linux-gnu
index db2c720..f0a0b75 100644
--- a/platform_specific.mk.x86_64-linux-gnu
+++ b/platform_specific.mk.x86_64-linux-gnu
@@ -10,6 +10,9 @@
 # which should have been included prior to this include.
 #
 
+# Leave blank to omit additional Linux linker flags
+	IS_LINUX_SYSTEM = True
+
 #
 # Directories for the libraries.  Some of the 64-bit libraries may be
 # in a .../lib64 directory instead of a .../lib directory.
@@ -34,6 +37,16 @@ else
 	PIXMAN_INCLUDE	= -I$(PIXMAN_DIR)/include
 endif
 
+ifeq ($(strip $(PANGO_DIR)),)
+	PANGO_LIBDIR	=
+	PANGO_INCLUDE	= -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
+else
+	PANGO_LIBDIR	= $(PANGO_DIR)/lib
+	PANGO_INCLUDE	= -I$(PANGO_DIR)/include/pango-1.0 -I$(PANGO_DIR)/include/glib-2.0 -I$(PANGO_DIR)/lib/glib-2.0/include
+#	PANGO_LIBDIR	= $(PANGO_DIR)/lib64
+#	PANGO_INCLUDE	= -I$(PANGO_DIR)/include/pango-1.0 -I$(PANGO_DIR)/include/glib-2.0 -I$(PANGO_DIR)/lib64/glib-2.0/include
+endif
+
 ifeq ($(strip $(HDF5_DIR)),)
 	HDF5_LIBDIR	=
 else
@@ -59,9 +72,7 @@ endif
 			  -I$(DIR_PREFIX)/external_functions/ef_utility \
 			  $(CAIRO_INCLUDE) \
 			  $(PIXMAN_INCLUDE) \
-			  -I/usr/include/pango-1.0 \
-			  -I/usr/include/glib-2.0 \
-			  -I/usr/lib/x86_64-linux-gnu/glib-2.0/include \
+			  $(PANGO_INCLUDE) \
 			  -I$(NETCDF4_DIR)/include
 
 	MYDEFINES	= -Dcrptd_cat_argument \
@@ -102,6 +113,11 @@ endif
 	PPLUS_FFLAGS	= $(MYINCLUDES) $(MYDEFINES) -m64 -fPIC -fno-automatic -fdollar-ok \
 			  -ffixed-line-length-132 -fno-second-underscore -fno-backslash
 
+	OPT_FLAGS	= -O -DNDEBUG
+	PPLUS_OPT_FLAGS	= -O -DNDEBUG
+	DBG_FLAGS	= -O0 -g
+	PROF_FLAGS	= -O0 -g -pg
+
 # Directly compile the .F source files to the .o object files
 # since gfortran can handle the C compiler directives in Fortran code
 %.o : %.F
diff --git a/ppl/complot/symbel_hershey.F b/ppl/complot/symbel_hershey.F
old mode 100755
new mode 100644
diff --git a/ppl/complot/symwid.F b/ppl/complot/symwid.F
old mode 100755
new mode 100644
diff --git a/ppl/plot/box.F b/ppl/plot/box.F
index bd7d480..1013b57 100644
--- a/ppl/plot/box.F
+++ b/ppl/plot/box.F
@@ -70,6 +70,7 @@ C**
         INCLUDE 'TMAP_PPLV11INC:PPL_IN_FERRET.CMN'
 #endif
 
+	logical  is_viewport
         real     vwidth,vheight,width2,height2
 
 C 	stmt added for linux *jd* 12.96
@@ -78,7 +79,7 @@ C 	stmt added for linux *jd* 12.96
 *******************************************************************************
 
         if (ppl_in_ferret) then
-           call get_view_size (vwidth,vheight)
+           call get_view_size (vwidth,vheight,is_viewport)
            width2 = vwidth
            height2 = vheight
         else
diff --git a/ppl/plot/daxis.F b/ppl/plot/daxis.F
index fa42d8f..702e4f3 100644
--- a/ppl/plot/daxis.F
+++ b/ppl/plot/daxis.F
@@ -135,7 +135,7 @@ C ---------- Skip this section if not drawing the axes ----------
 C
 C     DRAW AXIS, LEFT, RIGHT Y AXIS THEN TOP, BOTTOM XAXIS
 C
-	IF(MAKEP.EQ.'VIEW') GOTO 1000
+	IF (MAKEP.EQ.'VIEW') GOTO 1000
 
       
 * (PyFerret) labels along vertical axes will be drawn with the ivtics text style
@@ -144,8 +144,8 @@ C
       IF(MYLEF.EQ.0.AND.IAXON(3).EQ.1)THEN
 	  IY=ITY
 C	  YAXIS1 = LINEAR ,  YAXIS2 = LOG
-C  
-          IF((ITFLG.EQ.-1 .OR. ITFLG.EQ.2))THEN
+C
+          IF (ITFLG.EQ.-1 .OR. ITFLG.EQ.2) THEN
               IF(ITFLG.EQ.-1) CALL TAYIS(ITYPET,TLO,IT1,IT2,DT,NMTCT,LTB,IFDB,ISDB,
      *        YF,XLO,XF,TCSIZE,XHI,HGRAT, HCOLOR, HLINE, IPEN(0), is_hours_axis)
               IF(ITFLG.EQ.2) CALL TAYIS(ITYPETb,TLOb,IT1b,IT2b,DT,NMTCTb,LTBb,IFDBb,ISDBb,
@@ -165,7 +165,7 @@ C
 	IF ( interrupted ) GOTO 3333		! TMAP interrupt
       IF(IAXON(4).EQ.1)THEN
 	IY=-ITY
-        IF((ITFLG.EQ.-1 .OR. ITFLG.EQ.2)) THEN
+        IF (ITFLG.EQ.-1 .OR. ITFLG.EQ.2) THEN
             IF(ITFLG.EQ.-1) CALL TAYIS(ITYPET,TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,
      *      YF,XHI,XF,TCSIZE,XLO,HGRAT, HCOLOR, HLINE, IPEN(0), is_hours_axis)
             IF(ITFLG.EQ.2) CALL TAYIS(ITYPETb,TLOb,IT1b,IT2b,DT,NMTCTb,LTTb,IFDBb,ISDBb,
@@ -195,7 +195,7 @@ C
 C	  XAXIS1 = LINEAR, XAXIS2 = LOG, TAXIS CALLS EITHER TAXIS0,
 C					 TAXIS1 OR TAXIS3
 C
-          IF((ITFLG.EQ.1 .OR. ITFLG.EQ.2)) THEN
+          IF (ITFLG.EQ.1 .OR. ITFLG.EQ.2) THEN
               CALL TAXIS(ITYPET,TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,
      *        XF,YHI,YF,TCSIZE,YLO,VGRAT, VCOLOR, VLINE, IPEN(0), is_hours_axis)
               vline = .FALSE.
@@ -212,7 +212,7 @@ C
 	IF ( interrupted ) GOTO 3333		! TMAP interrupt
       IF(MXBOT.EQ.0.AND.IAXON(2).EQ.1)THEN
           IX=ITX
-          IF((ITFLG.EQ.1 .OR. ITFLG.EQ.2)) THEN
+          IF (ITFLG.EQ.1 .OR. ITFLG.EQ.2) THEN
               CALL TAXIS(ITYPET,TLO,IT1,IT2,DT,NMTCT,LTB,IFDB,ISDB,
      *        XF,YLO,YF,TCSIZE,YHI,VGRAT, VCOLOR, VLINE, IPEN(0), is_hours_axis)
               vline = .FALSE.
@@ -232,7 +232,7 @@ C ---------- End of skip section if not drawing the axes ----------
 
 * TMAP interrupt re-entry
  3333	CONTINUE
-	
+
 	IF(IWIND.GT.0)CALL WINDOW(XLO,YLO,XHI,YHI)
 	CALL CROSS
 	CALL WINDOW(0.,0.,0.,0.)
diff --git a/ppl/plot/daxis2.F b/ppl/plot/daxis2.F
index b3e00d8..4ddd747 100644
--- a/ppl/plot/daxis2.F
+++ b/ppl/plot/daxis2.F
@@ -185,7 +185,7 @@ c        line_spacing = 1.4
 	   ELSE
 	       WRITE(OUT,997)I,XL,YL,LTY,LABS(I)(:NCR)
 997	       FORMAT('C LABS/NOUSER,',I2,2(',',1PE10.3),',',I2,
-     *	       ',','"',A,'"')
+     *                ',','"',A,'"')
 	   ENDIF
 	   NOUT=LNBLK(OUT,255)
 	   CALL ECHO(OUT,NOUT)
diff --git a/ppl/plot/linfit.F b/ppl/plot/linfit.F
index 265a966..9f7640e 100644
--- a/ppl/plot/linfit.F
+++ b/ppl/plot/linfit.F
@@ -125,21 +125,21 @@ C
 	NOUT=LNBLK(OUT,80)
 	CALL ECHO(OUT,NOUT)
 999	FORMAT(
-     *	'C --  LINFIT RESULTS      Y = A + B*X')
+     *  'C --  LINFIT RESULTS      Y = A + B*X')
 998	FORMAT(
-     *	'C --                 LENGTH = ',I10)
+     *  'C --                 LENGTH = ',I10)
 997	FORMAT(
-     *	'C --  X LIMITS USED FOR FIT = ',1PG10.3,',',G10.3)
+     *  'C --  X LIMITS USED FOR FIT = ',1PG10.3,',',G10.3)
 996	FORMAT(
-     *	'C --                     R2 = ',0PF10.4)
+     *  'C --                     R2 = ',0PF10.4)
 995	FORMAT(
-     *	'C --  REGRESSION COEFFS:  A = ',1PG10.3,'   ST-DEV = ',G10.3)
+     *  'C --  REGRESSION COEFFS:  A = ',1PG10.3,'   ST-DEV = ',G10.3)
 994	FORMAT(
-     *	'C --                      B = ',  G10.3,'   ST-DEV = ',G10.3)
+     *  'C --                      B = ',  G10.3,'   ST-DEV = ',G10.3)
 993	FORMAT(
-     *	'C --         TOTAL VARIANCE = ',G10.3)
+     *  'C --         TOTAL VARIANCE = ',G10.3)
 992	FORMAT(
-     *	'C --      RESIDUAL VARIANCE = ',G10.3)
+     *  'C --      RESIDUAL VARIANCE = ',G10.3)
 991	FORMAT(1X,A70)
 C
 C	INSERT INTO NEXT LINE
@@ -183,7 +183,7 @@ C
 	NOUT=LNBLK(OUT,80)
 	CALL ECHO(OUT,NOUT)
 996	FORMAT(
-     *	'C -- X LIMITS USED FOR LINE = ',1PG10.3,',',G10.3)
+     *  'C -- X LIMITS USED FOR LINE = ',1PG10.3,',',G10.3)
 	X(IX+1)=XMIN
 	X(IY+1)=YMIN
 	X(IX+2)=XMAX
diff --git a/ppl/plot/pltit.F b/ppl/plot/pltit.F
index 89de0ab..ae6d852 100644
--- a/ppl/plot/pltit.F
+++ b/ppl/plot/pltit.F
@@ -111,6 +111,7 @@
 *                   things only for the short-time-axis case.
 * V 7 *acm*   6/16 Ticket 2435: moveable labels in PyFerret when using PyFerret fonts
 
+
 *****************************************************
 
 * local variable declarations for PLTIT (for TMAP)
@@ -441,14 +442,17 @@ c	    CALL PLOTPOL(X,NXS,XF,YF)
 
  3333	CONTINUE					! 1/89 - *sh*
 * post-interrupt re-entry				! 1/89 - *sh*
-
-	DRAW = .FALSE.
-	CALL DAXIS(XF,YF,NMX,NMY,DRAW)
-	IF (.NOT.SOVER) DRAW = .TRUE. 
+	
+* Draw the plot axes 
+
+	IF (.NOT.SOVER) THEN
+	   DRAW = .FALSE.
+	   CALL DAXIS(XF,YF,NMX,NMY,DRAW)
+	   DRAW = .TRUE. 
+	   CALL DAXIS(XF,YF,NMX,NMY,DRAW)
+	   CALL SCALE(XF,YF,XORG,YORG,XLO,YLO)
+	ENDIF 
 	IF (SOVER) lab1 = ' '
-	CALL DAXIS(XF,YF,NMX,NMY,DRAW)
-
-	CALL SCALE(XF,YF,XORG,YORG,XLO,YLO)
 C
 	CALL WINDOW(0.,0.,0.,0.)
 C
diff --git a/ppl/plot/pplcmd_f.F b/ppl/plot/pplcmd_f.F
index 02ee6be..b940d6f 100644
--- a/ppl/plot/pplcmd_f.F
+++ b/ppl/plot/pplcmd_f.F
@@ -1151,8 +1151,8 @@ C	LINFIT
 8600	    I=IFIX(P(1))
 	    IF(I.GT.LINEN.OR.LLENG(I).LE.2.OR.LINEN.GE.NLINES)THEN
 		IF(.NOT.QUIETF)WRITE(LTTOUT,
-     *          '('' LINFIT ERROR -- NO ROOM OR LINE'',I3,
-     *          '' DOES NOT EXIST'')')
+     *            '('' LINFIT ERROR -- NO ROOM OR LINE'',I3,
+     *            '' DOES NOT EXIST'')')
 		GOTO 10
 	    ENDIF
 	    CALL LINFIT(I,pplmem,pplmem_nsize,IBASE,PBUF)
diff --git a/ppl/plot/pplldx.F b/ppl/plot/pplldx.F
index 9d40361..60d50a2 100644
--- a/ppl/plot/pplldx.F
+++ b/ppl/plot/pplldx.F
@@ -14,10 +14,15 @@ C**
 C**
 C *kob* 04/07/96 passed in character strings had to be declared 
 C                with "*(*)" for the linux port 
+C v7.2 *acm* 2/2017 ticket 2246 Allow drawing formatted time axes on a PLOT/VS; 
+C                this needed changes when time axis is vertical
 c
 c	icode	0 use both x and y
 c		1 use x only
 c		2 use y only
+c		7 use y only, do not translate. For ribbon plots on vertical
+c		              time axis, loading the color variable still 
+c		              drawing the axis vertically
 c
 c                  When saving polygon data, save npts per polygon with 
 c                  the data, not in the array lleng(): unlimited # polygons
@@ -174,7 +179,7 @@ c
 #endif
 	CHARACTER BC2WHOI*14, tstrt*(*), tref*(*)
 	REAL*8	WHOI2BC, DIFF, tstart, tstop, time, tmin, off, rate, 
-     .		dxmin, dxmax, dymin, dymax, xymin, xymax dtd
+     .		dxmin, dxmax, dymin, dymax, xymin, xymax, dtd
 	INTEGER	icode, npts, i, ix, iy
 	REAL	xs, ys
 	LOGICAL  TM_FPEQ_SNGL
@@ -200,9 +205,14 @@ c
 	ny=1
 	flip = itflg .EQ. -1		!  FERRET mod 10/93
 
-**	if(ABS(itflg).eq.1)then		!  FERRET mod 10/93  "ABS"
+	translate = ABS(itflg).eq.1 .AND. itstrt(1:1).NE.' '
+
+* Hack, plot/vs/ribbon on a time axis
+	IF (icode .EQ. 7) THEN
+	   icode = 2
+	   translate = .FALSE.
+	ENDIF
 
-	translate = ABS(itflg).eq.1
 	if (translate) then	
 c
 c	time axis is on.
@@ -326,6 +336,12 @@ C 8/2015 compute min and max in double precision, then translate
 	        else
 		   pplmem(ix+i)=xt(i)
 	        endif
+		
+	        IF ( .NOT.(xeq .AND. TM_FPEQ_SNGL(xs,cmxeq)) ) THEN
+		   dxmin = MIN(dxmin, xt(i))
+		   dxmax = MAX(dxmax, xt(i))
+	        ENDIF
+
 200	    continue
 	else
 	    do 300 i=1,npts
@@ -341,6 +357,11 @@ C 8/2015 compute min and max in double precision, then translate
 		   pplmem(ix+i)=float(i)
 	        endif
 		pplmem(iy+i)=yt(i)
+		
+		IF ( .NOT.(yeq .AND. TM_FPEQ_SNGL(ys,cmyeq)) ) THEN
+		   dymin = MIN(dymin, yt(i))
+		   dymax = MAX(dymax, yt(i))
+		ENDIF
 300	    continue
 	endif
 * FERRET mod 2/89 - replace bad data LIMITS flags
diff --git a/ppl/plot/ppllist.F b/ppl/plot/ppllist.F
index e4a987a..53ce4a8 100644
--- a/ppl/plot/ppllist.F
+++ b/ppl/plot/ppllist.F
@@ -334,10 +334,10 @@ C	DATA
 C	PLOT
 1300	WRITE(LLUN,9977)WIDTH,HEIGHT,MOD,IR
 9977	FORMAT(9X,'WIDTH= ',F7.2,'  HEIGHT= ',F7.2,'  TKTYPE=',I5
-     *	,'  BAUD=',I5)
+     *  ,'  BAUD=',I5)
 	WRITE(LLUN,9978)ONOFF(IWIND),ONOFF(IP(1)),ICROSS,ICODE
 9978	FORMAT(9X,'WINDOW= ',A3,'  BOX= ',A3,'  CROSS=',I2,
-     *	'  PLTYPE=',I3)
+     *  '  PLTYPE=',I3)
 ***	WRITE(LLUN,9972)PMODE,FILEZ
 	WRITE(LLUN,9972)PMODE,meta_file
 9972	FORMAT(9X,'PLOT MODE= ',A3/9X,'PLOT FILE= ',A)
@@ -359,24 +359,24 @@ C	LIMITS
      *	YLE,CMYLE,YEQ,CMYEQ,YGE,CMYGE,
      *	ZLE,CMZLE,ZEQ,CMZEQ,ZGE,CMZGE
 9976	FORMAT(9X,'TEST',4X,'TRUE/FALSE',7X,'VALUE'//
-     *	10X,'XLE',8X,L1,8X,1PE11.3/
-     *	10X,'XEQ',8X,L1,8X,1PE11.3/
-     *	10X,'XGE',8X,L1,8X,1PE11.3/
-     *	10X,'YLE',8X,L1,8X,1PE11.3/
-     *	10X,'YEQ',8X,L1,8X,1PE11.3/
-     *	10X,'YGE',8X,L1,8X,1PE11.3/
-     *	10X,'ZLE',8X,L1,8X,1PE11.3/
-     *	10X,'ZEQ',8X,L1,8X,1PE11.3/
-     *	10X,'ZGE',8X,L1,8X,1PE11.3)
+     *  10X,'XLE',8X,L1,8X,1PE11.3/
+     *  10X,'XEQ',8X,L1,8X,1PE11.3/
+     *  10X,'XGE',8X,L1,8X,1PE11.3/
+     *  10X,'YLE',8X,L1,8X,1PE11.3/
+     *  10X,'YEQ',8X,L1,8X,1PE11.3/
+     *  10X,'YGE',8X,L1,8X,1PE11.3/
+     *  10X,'ZLE',8X,L1,8X,1PE11.3/
+     *  10X,'ZEQ',8X,L1,8X,1PE11.3/
+     *  10X,'ZGE',8X,L1,8X,1PE11.3)
 	GOTO 5000
 C	VECTOR
 1700	WRITE(LLUN,9968)VLEN,VUSRLN,VAUTO
 9968	FORMAT(9X,'SCALE LENGTH = ',F5.3,'  SCALE = ',1PG10.3,
-     *	'  AUTO SCALE = ',L4)
+     *  '  AUTO SCALE = ',L4)
 ***     *	'  AUTO SCALE = ',L)
 	WRITE(LLUN,9967)VXLOC,VYLOC,VUSER,VKEY,LT(IFIX(VPOS)),VFRMT
 9967	FORMAT(9X,'XPOS = ',1PG10.3,'  YPOS = ',G10.3,
-     *	'  USER = ',L4,'  DRAW KEY = ',L4/9X,'JUSTIFY ',A8,2X,A20)
+     *  '  USER = ',L4,'  DRAW KEY = ',L4/9X,'JUSTIFY ',A8,2X,A20)
 ***     *	'  USER = ',L,'  DRAW KEY = ',L/9X,'JUSTIFY ',A8,2X,A20)
 	goto 5000
 
@@ -424,7 +424,7 @@ C	SHASET info
 C	SHAKEY info
 1900	write (llun,10003) 
 10003	format (/9x,'DO KEY',2x,'ORIENT',2x,'LAB SIZE',2x,
-     .	'LAB INC',2x,'LAB DIG',2x,'LAB LEN')
+     .  'LAB INC',2x,'LAB DIG',2x,'LAB LEN')
 		
 	if (do_key) then                             
 	   x_do_key = 1
@@ -464,7 +464,7 @@ c  Write out location of key, whether it was user-located or automatically set
 C	ALINE info
 2000	none = .true.
 	do 2001 i = 1,lnum    
-	   if (aline_on(i)) none = .false.		
+	   if (aline_on(i)) none = .false.
 2001	continue
 
 	if (none) then
@@ -475,7 +475,7 @@ C	ALINE info
 
 	write (llun,10009)
 10009	format (//9x,'LINE #',5x,'UNITS',5x,'X MIN',5x,'Y MIN',
-     .			5x,'X MAX',5x,'Y MAX')
+     .                                   5x,'X MAX',5x,'Y MAX')
 	do 2002 i = 1,lnum
 	   if (.not. aline_on(i)) goto 2002
 
diff --git a/ppl/plot/prmtiv.F b/ppl/plot/prmtiv.F
index 5cd6eee..6fabfc6 100644
--- a/ppl/plot/prmtiv.F
+++ b/ppl/plot/prmtiv.F
@@ -303,7 +303,7 @@ C
 	    call color(ipen(0))
 	    CALL XAXIS1(XLOW,XHIGH,XTICC,NSMTCS,LINTT,XUNIT,
      *		IPOS,FRMTX,XFF,Y,YFF,CHSIZE,across,xdms,xdspac,vgrat,
-     *		vcolor,vline,xvaloff,IPEN(0))
+     *		vcolor,vline,xvaloff,ipen(0))
 
             CALL tm_break_lines (xlab, lnbeg, lnend, numlines)
             nfont = 0
@@ -435,7 +435,7 @@ c	    ENDIF
 	    call color(ipen(0))
 	    CALL YAXIS1(XX,XFF,YLOW,YHIGH,YTICC,NSMTCS,LINTT,YUNIT,
      *		IPOS,FRMTX,YFF,CHSIZE,across,ydms,ydspac,hgrat,hcolor,hline,
-     *          yvaloff,.FALSE.,SHRINKY,IPEN(0))
+     *          yvaloff,.FALSE.,SHRINKY,ipen(0))
 
             CALL tm_break_lines (ylab, lnbeg, lnend, numlines)
             nfont = 0
diff --git a/ppl/plot/setax.F b/ppl/plot/setax.F
index 2c95ff1..2ec7bb2 100644
--- a/ppl/plot/setax.F
+++ b/ppl/plot/setax.F
@@ -137,7 +137,11 @@ c     *	.OR.MAKEP.EQ.'VECTOR'
 		   CALL FIXTIM (ITMIN,ITMAX,IT1,IT2,ITYPET) ! to the hour
 		ENDIF
 	    ELSE
-		CALL FIXTIM (IT1,IT2,IT1TMP,IT2TMP,ITYPET)
+		IF (is_hours_axis .GT. 0) THEN ! Round off to the nearest minute
+		   CALL FIXTIM (IT1,IT2,IT1TMP,IT2TMP,4)
+		ELSE
+		   CALL FIXTIM (IT1,IT2,IT1TMP,IT2TMP,ITYPET)
+		ENDIF
 		IT1=IT1TMP
 		IT2=IT2TMP
 	    ENDIF
diff --git a/ppl/plot/size2.F b/ppl/plot/size2.F
index b52338b..6bbf900 100644
--- a/ppl/plot/size2.F
+++ b/ppl/plot/size2.F
@@ -337,7 +337,7 @@ C SET DEVICE (WORKSTATION) VIEWPORT
 C
               IF ( wsid .GT. 0 ) THEN
                  CALL FGD_GSWKWN(wsid,0.0,fctx,0.0,fcty)
-                 CALL SET_WINDOW_SIZE(wsid,wkxmn,wkxmx,wkymn,wkymx)
+                 CALL FGD_GSWKVP(wsid,wkxmn,wkxmx,wkymn,wkymx)
               ENDIF
            ELSE
 C
@@ -349,7 +349,7 @@ C
               YMX=DMAXY*WKYMX
               IF ( wsid .GT. 0 ) THEN
                  CALL FGD_GSWKWN(wsid,0.0,fctx,0.0,fcty)
-                 CALL SET_WINDOW_SIZE(wsid,xmn,xmx,ymn,ymx)
+                 CALL FGD_GSWKVP(wsid,xmn,xmx,ymn,ymx)
               ENDIF
            ENDIF
 
diff --git a/ppl/plotlib/taxis.F b/ppl/plotlib/taxis.F
index 2b36cf4..f7f0a7c 100644
--- a/ppl/plotlib/taxis.F
+++ b/ppl/plotlib/taxis.F
@@ -1,5 +1,6 @@
 	SUBROUTINE TAXIS(IT,TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,
-     *	XF,YHI,YF,TCSIZE,yacross,vgrat,vcolor,vline,color0,is_hours_axis)
+     .	XF,YHI,YF,TCSIZE,yacross,vgrat,vcolor,vline,color0,is_hours_axis)
+
 *
 *
 *  This software was developed by the Thermal Modeling and Analysis
@@ -48,21 +49,23 @@ C**
 C *kob* 04/07/96 passed in character strings had to be declared 
 C                with "*(*)" for the linux port 
 C *acm* 03/04  new arguments for plotting graticule lines across plot. 
-C              If graticule lines are to be drawn across the plot at the tics
-C              then only do them for one horizontal and one vertical axis.  
-C              The dash lines interfere with each other if drawn from both 
-C              sides. HLINE and VLINE control this. 
 C V695  *acm*  9/15 Changes for hour:min labeling on time axes
 C V697  *acm* 12/15 For short-time plots do the time axis in a separate
 C                   routine taxis4
+* *acm* - 8/16   ticket 1787: restore pen 0 correctly after graticule
 
+C If graticule lines are to be drawn across the plot at the tics
+C then only do them for one horizontal and one vertical axis.  
+C The dash lines interfere with each other if drawn from both 
+C sides. HLINE and VLINE control this. 
 
 	CHARACTER*(*) IT1,IT2
         
-	INTEGER color0, is_hours_axis
+	INTEGER is_hours_axis
         REAL yacross
         REAL vgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
-        INTEGER vcolor(*)      ! pen number 
+        INTEGER vcolor(*)      ! pen number for graticule lines
+        INTEGER color0         ! pen number to restore
         LOGICAL vline          ! If true, do the lines across.
 
 	GOTO (10,20,20,30)IT+1
diff --git a/ppl/plotlib/taxis0.F b/ppl/plotlib/taxis0.F
index 64eee9e..cc39fce 100644
--- a/ppl/plotlib/taxis0.F
+++ b/ppl/plotlib/taxis0.F
@@ -57,7 +57,8 @@ C *acm* 03/04  new arguments and code for plotting graticule lines across plot.
 C V65  *acm*  1/10 New time-axis style for DAY and MONTH, DMY: adds the
 C                  year to DAY,MONTH or to MONTH.
 C V695 *acm*  5/15 Restore color after a graticule using defined color 0
-
+* *acm* - 8/16   ticket 1787: restore pen 0 correctly after graticule
+* *acm* - 9/16   ticket 2466: graticule lines on major tics by default
 C**
 C**    @(#)taxis0.f	1.1    3/10/88
 C**
@@ -114,8 +115,8 @@ C
         REAL dash1_1, dash1_2, dash1_3, dash1_4
         REAL dash2_1, dash2_2, dash2_3, dash2_4
         REAL vgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
-        INTEGER vcolor(*)      ! pen number 
-        INTEGER color0	       ! pen number for axis
+        INTEGER vcolor(*)      ! pen number for graticule lines
+	INTEGER color0	       ! pen number to restore
         LOGICAL vline          ! If true, do the lines across.
         LOGICAL solid1, solid2   ! solid lines across at tics
         LOGICAL dashed1, dashed2 ! dashed lines across at tics
@@ -124,6 +125,12 @@ C
 * TMAP interrupt flag
 	include 'xinterrupt.cmn'
         include 'century.cmn'  ! with MONYRLAB flag
+        include 'parampl5_dat.decl'
+        include 'PARAMPL5.DAT'
+        include 'lines_inc.decl'
+        include 'LINES.INC'
+        INCLUDE 'pen_inc.decl'  ! with IPEN(1)
+        INCLUDE 'PEN.INC'
 
 C     CHECK THE PARAMETERS PASSED TO THE SUBROUTINE.
 
@@ -298,10 +305,10 @@ C      LOOP:
 	ELSE
 	       CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,INML)
      
-               IF ((solid1.OR.dashed1) .AND. vline) THEN ! make line across
-                  CALL COLOR(color1)
+               IF ((solid2.OR.dashed2) .AND. vline) THEN ! make line across at small tics
+                  CALL COLOR(color2)
                   IF (dashed1) THEN
-                     CALL DASHSZ(dash1_1,dash2_1,dash1_3,dash1_4)
+                     CALL DASHSZ(dash2_1,dash2_1,dash2_3,dash2_4)
                      CALL DASHES
                   ENDIF
                   CALL PLOT(t+tic,y,0,0) 
diff --git a/ppl/plotlib/taxis1.F b/ppl/plotlib/taxis1.F
index 1e28f61..cc5a820 100644
--- a/ppl/plotlib/taxis1.F
+++ b/ppl/plotlib/taxis1.F
@@ -55,6 +55,7 @@ C *acm* 03/04  new arguments and code for plotting graticule lines across plot.
 C V65  *acm*  1/10 New time-axis style for DAY and MONTH, DMY: adds the
 C                  year to DAY,MONTH or to MONTH.
 C V695 *acm*  5/15 Restore color after a graticule using defined color 0
+* *acm* - 8/16   ticket 1787: restore pen 0 correctly after graticule
 
 C**
 C**    @(#)taxis1.f	1.1    3/10/88
@@ -121,8 +122,8 @@ C
         REAL dash1_1, dash1_2, dash1_3, dash1_4
         REAL dash2_1, dash2_2, dash2_3, dash2_4
         REAL vgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
-        INTEGER vcolor(*)      ! pen number 
-        INTEGER color0	       ! pen number for axis
+        INTEGER vcolor(*)      ! pen number for graticule lines
+	INTEGER color0	       ! pen number to restore 
         LOGICAL vline          ! If true, do the lines across.
         LOGICAL solid1, solid2   ! solid lines across at tics
         LOGICAL dashed1, dashed2 ! dashed lines across at tics
@@ -131,6 +132,12 @@ C
 
 	include 'xinterrupt.cmn'
         include 'century.cmn'  ! with MONYRLAB flag
+        include 'parampl5_dat.decl'
+        include 'PARAMPL5.DAT'
+        include 'lines_inc.decl'
+        include 'LINES.INC'
+        INCLUDE 'pen_inc.decl'  ! with IPEN(1)
+        INCLUDE 'PEN.INC'
 
 C     CHECK THE PARAMETERS PASSED TO THE SUBROUTINE.
 	IF(ITIME1(7:10).NE.'0000')STOP ',1'
diff --git a/ppl/plotlib/taxis3.F b/ppl/plotlib/taxis3.F
index 2d2cbc4..f78b1e2 100644
--- a/ppl/plotlib/taxis3.F
+++ b/ppl/plotlib/taxis3.F
@@ -63,6 +63,8 @@ C *acm*  3/10  Bug 670 fixed: New flag MULTICENFLAG for multi-decade plots,
 C              do not make small tics by default.
 C V695 *acm*  5/15 Restore color after a graticule using defined color 0
 C V695 *acm*  5/15 for PyFerret draw lines and tics only once, avoiding overdrawing.
+* *acm* - 8/16   ticket 1787: restore pen 0 correctly after graticule
+* V710 *acm*  8/16 make the year labels less large
 
 C**
 C**    @(#)taxis3.f	1.1    3/10/88
@@ -121,6 +123,12 @@ C
 
 	LOGICAL*4 not_zero_size
         include 'century.cmn'
+        include 'parampl5_dat.decl'
+        include 'PARAMPL5.DAT'
+        include 'lines_inc.decl'
+        include 'LINES.INC'
+        INCLUDE 'pen_inc.decl'  ! with IPEN(1)
+        INCLUDE 'PEN.INC'
 
 * Parameters for drawing tics across plot
 
@@ -128,8 +136,8 @@ C
         REAL dash1_1, dash1_2, dash1_3, dash1_4
         REAL dash2_1, dash2_2, dash2_3, dash2_4
         REAL vgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
-        INTEGER vcolor(*)      ! pen number 
-        INTEGER color0	       ! pen number for axis
+        INTEGER vcolor(*)      ! pen number for graticule lines
+	INTEGER color0	       ! pen number to restore 
         LOGICAL vline          ! If true, do the lines across.
         LOGICAL solid1, solid2   ! solid lines across at tics
         LOGICAL dashed1, dashed2 ! dashed lines across at tics
@@ -205,7 +213,7 @@ C     SET PARAMETERS.
 	FIMDB=-1.4
 	ENDIF
       IF(LABEL.LT.0) THEN
-         YTEMP1=Y-(1.4*CSIZE+YTEMP)/YFACT
+         YTEMP1=Y-(1.1*CSIZE+YTEMP)/YFACT
          YTEMP2=Y-((4.0+FIMDB)*CSIZE+YTEMP)/YFACT
 	 IF (ix.EQ.1 .AND. ytemp.NE.0) ytemp1 = ytemp1 + tlx*0.4/YFACT
 	 IF (ix.EQ.1 .AND. ytemp.NE.0) ytemp2 = ytemp2 + tlx*0.4/YFACT
@@ -217,7 +225,7 @@ C     SET PARAMETERS.
       ENDIF
 
       IF(LABEL.LT.0) THEN
-	 XTEMP1=X-(1.4*CSIZE+XTEMP)/XFACT
+	 XTEMP1=X-(1.1*CSIZE+XTEMP)/XFACT
 	 XTEMP2=X-((4.0+FIMDB)*CSIZE+XTEMP)/XFACT
 	 IF (iy.EQ.1) xtemp1 = xtemp1 + iy*tly*0.4/xfact
 	 IF (iy.EQ.1) xtemp2 = xtemp2 + iy*tly*0.4/xfact
@@ -409,8 +417,8 @@ C             ELSE:
 	READ(SYM,30)MON,CEN,YR
 	WRITE(SYM,55)CEN,YR
    55             FORMAT(A2,A2)
-        TSYM=TYR+(T+TIC-TYR-SYMWID(1.4*CSIZE,4,SYM(:4))/TFACT)*.5
-        CALL SYMBEL(TSYM,YTEMP2,0.,1.4*CSIZE,4,SYM(:4))
+        TSYM=TYR+(T+TIC-TYR-SYMWID(1.1*CSIZE,4,SYM(:4))/TFACT)*.5
+        CALL SYMBEL(TSYM,YTEMP2,0.,1.1*CSIZE,4,SYM(:4))
 	ENDIF
    60         TYR=T+TIC
    70     CONTINUE
@@ -433,8 +441,8 @@ C     ELSE:
           CALL TIME2(ITIME,SYM)
 	READ(SYM,30)MON,CEN,YR
 	WRITE(SYM,55)CEN,YR
-        TSYM=TYR+(T-TYR-SYMWID(1.4*CSIZE,4,SYM(:4))/TFACT)*.5
-        CALL SYMBEL(TSYM,YTEMP2,0.,1.4*CSIZE,4,SYM(:4))
+        TSYM=TYR+(T-TYR-SYMWID(1.1*CSIZE,4,SYM(:4))/TFACT)*.5
+        CALL SYMBEL(TSYM,YTEMP2,0.,1.1*CSIZE,4,SYM(:4))
 	ENDIF
 C
 C     THE SECTION OF CODE THAT PUTS ON THE SMALL TIC MARKS.
diff --git a/ppl/plotlib/taxis4.F b/ppl/plotlib/taxis4.F
index 296ddef..21995c4 100644
--- a/ppl/plotlib/taxis4.F
+++ b/ppl/plotlib/taxis4.F
@@ -1,5 +1,6 @@
       SUBROUTINE TAXIS4(TLO,ITIME1,ITIME2,DT,NSMTIC,LABEL,IHDB,IDDB,
-     1    TFACT,Y,YFACT,CSIZE,yacross,vgrat,vcolor,vline,color0,is_hours_axis)
+     .    TFACT,Y,YFACT,CSIZE,yacross,vgrat,vcolor,vline,color0,
+     .    is_hours_axis)
 
 *
 *
@@ -35,8 +36,12 @@
 *  CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
 *  CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. 
 *                                                  
-* From taxis0: separate routijne for hour:min labeling on time axes
-*
+* From taxis0: separate routine for hour:min labeling on time axes
+C V7.1 *acm* 8/2016 Ticket 2466: Graticule lines too dense
+* *acm* - 8/16   ticket 1787: restore pen 0 correctly after graticule
+* *acm* - 9/16   ticket 2466: graticule lines on major tics by default
+* *acm* - 1/17   Fix too-many labels on tic marks. Add year to Month-Day labels
+C
 C**
 C**    @(#)taxis4.f     1.1   12/09/15
 C**
@@ -48,8 +53,7 @@ C**
 C***********************************************************************
 C**
 C**
-C     THIS ROUTINE PLOTS A TIME AXIS AND LABELS IT WITH THE DAY OF THE M
-C     AND THE MONTH.
+C     THIS ROUTINE PLOTS A TIME AXIS AND LABELS IT WITH THE HOUR, MINUTE.
 C     VARIBLES:
 C         TLO=X VALUE CORRESPONDING TO THE START TIME.
 C         ITIME1 = START TIME (IE.  7708190100)
@@ -80,17 +84,18 @@ C         CSIZE = SIZE TO DRAW HOUR LABELS.
 C                 DAY LABELS WILL BE 1.5 TIMES AS LARGE.
 C
 C
-C     THIS ROUTINE WAS FIRST WRITTEN BY DAVID MANDEL IN JULY 1980.
+C     The original routine was first written by David Mandel in July 1980.
 C
 	CHARACTER ITIME3*14,DATE*6,BUFF*14,YEAR*4
 	CHARACTER ITIME*14,ITIME1*14,ITIME2*14,SYM*21
 	COMMON/TICS/TSMX,TLX,TSMY,TLY,IX,IY
 	COMMON/AXLWID/XWID,YWID
 
+
 	REAL*8  DIFF, difft
 	REAL*8  td, ytemp1, tfact_d, yfact_d
 	REAL    delt, rem, angl
-	INTEGER color0, is_hours_axis, labint, ticint, hrint
+	INTEGER is_hours_axis, labint, ticint, hrint
 	LOGICAL hvytic
 
 * Parameters for drawing tics across plot
@@ -99,16 +104,18 @@ C
         REAL dash1_1, dash1_2, dash1_3, dash1_4
         REAL dash2_1, dash2_2, dash2_3, dash2_4
         REAL vgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
-        INTEGER vcolor(*)      ! pen number 
+        INTEGER vcolor(*)      ! pen number for graticule lines
+	INTEGER color0	       ! pen number to restore
         LOGICAL vline          ! If true, do the lines across.
         LOGICAL solid1, solid2   ! solid lines across at tics
         LOGICAL dashed1, dashed2 ! dashed lines across at tics
         INTEGER ltic, color1, color2
+	LOGICAL heavy_at_labels  ! When lots of tic marks, make heavy 
+				 !tic/graticule at the location of labels.
 
 * TMAP interrupt flag
 	include 'xinterrupt.cmn'
         include 'century.cmn'  ! with MONYRLAB flag
-
 	
   80	FORMAT(I2.2)
   82	FORMAT(I2.2,':00')
@@ -119,11 +126,6 @@ C
 
 C     CHECK THE PARAMETERS PASSED TO THE SUBROUTINE.
 
-	IF (is_hours_axis .EQ. 0) THEN
-	   IF(ITIME1(9:10).NE.'00')STOP ',1'  ! MINUTE,SECOND ARE 0
-	   IF(ITIME2(9:10).NE.'00')STOP ',2'
-	ENDIF
-
         IF(ITIME1(13:14)//ITIME1(1:12).GE.
      .	   ITIME2(13:14)//ITIME2(1:12)) STOP',3'
 
@@ -140,7 +142,8 @@ C     SET PARAMETERS.
 ! for hours axis (is_hours_axis eq 1) if difft > 60,
 ! then labint, ticint should be on the hour or half hour, so
 ! multiples of 30.
-! for more than 12 hours, label on a multiple of even hours, 
+! for more than 8 hours, label on a multiple of even hours, 
+! for more than 12 hours, label on a multiple of 4 hours, 
 ! up to a max of 36 hours labeled hh:mm (set in taxis_style)
 
 	IF (is_hours_axis.EQ.1) THEN
@@ -150,8 +153,8 @@ C     SET PARAMETERS.
            IF (difft .GE.  300) labint = 60
            IF (difft .GE.  600) labint = 120
 	   IF (difft .GE.  300) ticint = 30
-           IF (difft .GE. 1200) hrint = 2
-           IF (difft .GE. 1800) hrint = 4
+           IF (difft .GE.  800) hrint = 2
+           IF (difft .GE. 1200) hrint = 4
         ENDIF
         IF (is_hours_axis.EQ.2) THEN
            labint = 10
@@ -231,14 +234,10 @@ C
       yfact_d = yfact
 	
       CALL PLOT(TLO,Y,0,0)
-      IF(IHR.EQ.0 .AND.is_hours_axis.EQ.0 )THEN
-         CALL PLOTT7(TLO,Y,TFACT,YFACT,1,IHVY)  ! draw to the location and make a mark
+      IF (MOD(imin,labint) .EQ. 0) THEN
+         CALL PLOTT7(TLO,Y,TFACT,YFACT,1,IHVY)
       ELSE
-         IF (MOD(imin,labint) .EQ. 0) THEN
-            CALL PLOTT7(TLO,Y,TFACT,YFACT,1,IHVY)
-         ELSE
-	    CALL PLOTT7(TLO,Y,TFACT,YFACT,1,INML)
-         ENDIF
+	 CALL PLOTT7(TLO,Y,TFACT,YFACT,1,INML)
       ENDIF
 	
       CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)  ! next time stepping from 1 (arg 1) to 2 (arg 2) -- return ITIME3
@@ -246,17 +245,12 @@ C
 
 c Check whether to make an hour label at the start of the axis
 c ihdb is hour-label frequency
-      IF(IABS(LABEL).EQ.1) THEN
-         IF (IHR.EQ.IHDB*(IHR/IHDB) .AND. is_hours_axis.EQ.0) THEN 
-            WRITE(SYM,80) IHR
-	    CALL scinot_d(Td,YTEMP1,angl,CSIZE,2,SYM,0,wid,tfact_d, yfact_d)
-	 ENDIF
-	   IF (is_hours_axis .GT. 0) THEN
-	    IF (IMIN .EQ. 0) THEN
-               WRITE(SYM,82) IHR
-	       CALL scinot_d(Td,YTEMP1,angl,CSIZE,5,SYM,0,wid,tfact_d, yfact_d)
-	    ENDIF
-	 ENDIF
+
+      IF (IABS(LABEL).EQ.1 .AND. ihdb.EQ.1) THEN
+         IF (IMIN .EQ. 0) THEN
+            WRITE(SYM,82) IHR
+	    CALL scinot_d(Td,YTEMP1,angl,CSIZE,5,SYM,0,wid,tfact_d, yfact_d)
+         ENDIF
       ENDIF
 
 c ----  count number of large tics. If no large tics will be drawn
@@ -277,15 +271,13 @@ C      LOOP:
   	CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
 	ITIME=ITIME3
 
+
 	IF(ITIME(13:14)//ITIME(1:12) .LE.
      .       ITIME2(13:14)//ITIME2(1:12)) THEN
-           IF(IHR.EQ.0) ltic = ltic + 1
-	   IF (is_hours_axis .GT. 0) THEN
-	      IF (difft.LE.12 .AND. sec.EQ.0.) THEN 
-	         ltic = ltic+1
-              ELSE
-	         IF (imin.EQ.0. .AND. ihr.NE.0) ltic = ltic+1
-              ENDIF
+	   IF (difft.LE.12 .AND. sec.EQ.0.) THEN 
+	      ltic = ltic+1
+           ELSE
+	      IF (imin.EQ.0. .AND. ihr.NE.0) ltic = ltic+1
 	   ENDIF
            GO TO 110
         ENDIF
@@ -308,6 +300,9 @@ C      LOOP:
            ENDIF
 
         ENDIF
+     
+! IF many large tics, make fewer - at the locations of labels
+        heavy_at_labels = ltic .GT. 20
 
 ! Restore the state of ITIME, ITIME3
       ITIME=ITIME1
@@ -318,145 +313,130 @@ C      LOOP:
 
 c ----
 
-C      LOOP:
-   10     CALL PLOT(T,Y,0,0)
-	  IF ( interrupted ) RETURN		! TMAP interrupt
-          DO 20 I=1,NSMTIC
-              CALL PLOTT7(T+FLOAT(I)*TDIST,Y,TFACT,YFACT,1,-7)
-
-                 IF ((solid2.OR.dashed2) .AND. vline) THEN ! make line across
-                    CALL COLOR(color2)
-                    IF (dashed2) THEN
-                       CALL DASHSZ(dash2_1,dash2_2,dash2_3,dash2_4)
-                       CALL DASHES
-                    ENDIF
-                    CALL PLOT(T+FLOAT(I)*TDIST,y,0,0) 
-                    CALL PLOT(T+FLOAT(I)*TDIST,yacross,1,0)
-                    CALL PLOT(T+FLOAT(I)*TDIST,Y,0,0) 
-                     CALL COLOR(color0)
-                    CALL VECTRS
-                 ENDIF
-
-   20         CONTINUE
-          CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
+C     LOOP:
+   10 CALL PLOT(T,Y,0,0)
+      IF ( interrupted ) RETURN		! TMAP interrupt
+      DO 20 I=1,NSMTIC
+         CALL PLOTT7(T+FLOAT(I)*TDIST,Y,TFACT,YFACT,1,-7)
+
+         IF ((solid2.OR.dashed2) .AND. vline) THEN ! make line across
+            CALL COLOR(color2)
+            IF (dashed2) THEN
+               CALL DASHSZ(dash2_1,dash2_2,dash2_3,dash2_4)
+               CALL DASHES
+            ENDIF
+            CALL PLOT(T+FLOAT(I)*TDIST,y,0,0) 
+            CALL PLOT(T+FLOAT(I)*TDIST,yacross,1,0)
+            CALL PLOT(T+FLOAT(I)*TDIST,Y,0,0) 
+            CALL COLOR(color0)
+            CALL VECTRS
+         ENDIF
+
+   20 CONTINUE
+      CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
 	  
-	hvytic = ((is_hours_axis.EQ.0 .AND. IHR.EQ.0) .OR. 
-     .            (is_hours_axis.GT.0 .AND. MOD(imin,labint).EQ.0))
-	IF(hvytic)THEN
-	CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,IHVY)
-              IF ((solid1.OR.dashed1) .AND. vline) THEN ! make line across
-                 CALL COLOR(color1)
-                 IF (dashed1) THEN
-                    CALL DASHSZ(dash1_1,dash1_2,dash1_3,dash1_4)
-                    CALL DASHES
-                 ENDIF
-                 CALL PLOT(t+tic,y,0,0) 
-                 CALL PLOT(t+tic,yacross,1,0)
-                 CALL PLOT(t+tic,Y,0,0) 
-                  CALL COLOR(color0)
-                 CALL VECTRS
-              ENDIF
+      hvytic = (MOD(imin,labint) .EQ. 0)
+      IF (heavy_at_labels) THEN
+         hvytic = ( (imin .EQ. 0 .AND. MOD(ihr,hrint).EQ.0) .OR. 
+     .              (MOD(imin,labint) .EQ. 0 .AND. hrint.LE.1) )
+      ENDIF
+
+      IF(hvytic)THEN
+         CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,IHVY)
+	
+         IF ((solid1.OR.dashed1) .AND. vline) THEN ! make line across
+            CALL COLOR(color1)
+            IF (dashed1) THEN
+               CALL DASHSZ(dash1_1,dash1_2,dash1_3,dash1_4)
+               CALL DASHES
+            ENDIF
+            CALL PLOT(t+tic,y,0,0) 
+            CALL PLOT(t+tic,yacross,1,0)
+            CALL PLOT(t+tic,Y,0,0) 
+            CALL COLOR(color0)
+            CALL VECTRS
+         ENDIF
       
-	ELSE
-              IF (is_hours_axis.GT.0) THEN
-	         IF (MOD(imin,ticint).EQ.0) THEN
-                    CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,INML)
-		 ELSE 
-                    CALL PLOT(T+TIC,Y,1,0)
-		 ENDIF
-              ELSE
-	         CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,INML)
-              ENDIF
-	      
-               IF ((solid1.OR.dashed1) .AND. vline) THEN ! make line across
-                  CALL COLOR(color1)
-                  IF (dashed1) THEN
-                     CALL DASHSZ(dash1_1,dash2_1,dash1_3,dash1_4)
-                     CALL DASHES
-                  ENDIF
-                  CALL PLOT(t+tic,y,0,0) 
-                  CALL PLOT(t+tic,yacross,1,0)
-                  CALL PLOT(t+tic,Y,0,0) 
-                   CALL COLOR(color0)
-                  CALL VECTRS
+      ELSE
+         IF (MOD(imin,ticint).EQ.0) THEN
+            CALL PLOTT7(T+TIC,Y,TFACT,YFACT,1,INML)
+		    
+c           graticule line at tic
+            IF ((solid2.OR.dashed2) .AND. vline) THEN ! make line across
+               CALL COLOR(color2)
+               IF (dashed2) THEN
+                  CALL DASHSZ(dash2_1,dash2_1,dash2_3,dash2_4)
+                  CALL DASHES
                ENDIF
+               CALL PLOT(t+tic,y,0,0) 
+               CALL PLOT(t+tic,yacross,1,0)
+               CALL PLOT(t+tic,Y,0,0) 
+               CALL COLOR(color0)
+               CALL VECTRS
+            ENDIF
+
+         ELSE 
+            CALL PLOT(T+TIC,Y,1,0)
+         ENDIF
 
-	ENDIF
-C         THE LABELS
-
-	  IF (IABS(LABEL).EQ.1) THEN
-             IF (is_hours_axis .GT. 0) THEN
-	        IF (imin .EQ. 0 .AND. MOD(ihr,hrint).EQ.0) THEN
-	           WRITE(SYM,82) IHR
-	           CALL scinot_d(Td+TICd,YTEMP1,angl,CSIZE,5,SYM,0,wid,tfact_d, yfact_d)
-		ELSE
-                   IF (MOD(imin,labint) .EQ. 0 .AND. hrint.LE.1) THEN
-		      WRITE(SYM,84) ihr, imin
-	              CALL scinot_d(Td+TICd,YTEMP1,angl,CSIZE,5,SYM,0,wid,tfact_d, yfact_d)
-		   ENDIF
-		ENDIF
-             ELSE
-	        IF(IHR.EQ.IHDB*(IHR/IHDB)) THEN
-	           WRITE(SYM,80) IHR
-	           CALL scinot_d(Td+TICd,YTEMP1,angl,CSIZE,2,SYM,0,wid,tfact_d, yfact_d)
-	        ENDIF
-             ENDIF
-	  ENDIF
-
-          CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
-          IF(IDDB.EQ.0.OR.IABS(LABEL).NE.1) GO TO 70
-              CALL TIME3(ITIME3,IYR3,IMON3,IDAY3,IHR3,IMIN3,ISEC3,ICEN3)
-              IF(IDAY.EQ.IDAY3) GO TO 70
-              IF(IDAY.NE.IDDB*(IDAY/IDDB))GO TO 60
+      ENDIF
+
+C THE LABELS
+
+      IF (IABS(LABEL).EQ.1) THEN
+         IF (imin .EQ. 0 .AND. MOD(ihr,hrint).EQ.0) THEN
+	    WRITE(SYM,82) IHR
+	    CALL scinot_d(Td+TICd,YTEMP1,angl,CSIZE,5,SYM,0,wid,tfact_d, yfact_d)
+         ELSE
+	    IF (MOD(imin,labint) .EQ. 0 .AND. hrint.LE.1) THEN
+	       WRITE(SYM,84) ihr, imin
+	       CALL scinot_d(Td+TICd,YTEMP1,angl,CSIZE,5,SYM,0,wid,tfact_d, yfact_d)
+	    ENDIF
+         ENDIF
+      ENDIF
+
+      CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
+      IF(IDDB.EQ.0.OR.IABS(LABEL).NE.1) GO TO 70
+      CALL TIME3(ITIME3,IYR3,IMON3,IDAY3,IHR3,IMIN3,ISEC3,ICEN3)
+      IF(IDAY.EQ.IDAY3) GO TO 70
+      IF(IDAY.NE.IDDB*(IDAY/IDDB))GO TO 60
 C             ELSE:
-	IF(T-TDAY.GT.180./DT)THEN
-           CALL TIME2(ITIME,SYM)
-	   READ(SYM,55) DATE, YEAR
-55	   FORMAT(6X,A6,1X,A4)
-65         FORMAT(A6,1X,A4)
-           IF (MONYRLAB) THEN
-	      WRITE (BUFF, 65) DATE, YEAR
-              TSYM=TDAY+(T+TIC-TDAY-SYMWID(CSIZE,14,BUFF)/TFACT)*.5
-              CALL SYMBEL(TSYM,YTEMP2,angl,CSIZE,14,BUFF)
-	   ELSE
-              TSYM=TDAY+(T+TIC-TDAY-SYMWID(1.5*CSIZE,6,DATE)/TFACT)*.5
-	      CALL SYMBEL(TSYM,YTEMP2,0.,1.5*CSIZE,6,DATE)
-	   ENDIF
-	ENDIF
-   60   TDAY=T+TIC
-   70     CONTINUE
-          ITIME=ITIME3
-          T=T+TIC
-	  td = td + ticd
-	  t=td
-c          IF(ITIME.LE.ITIME2) GO TO 10
+      IF(T-TDAY.GT.180./DT)THEN
+         CALL TIME2(ITIME,SYM)
+	 READ(SYM,55) DATE, YEAR
+55	 FORMAT(6X,A6,1X,A4)
+65       FORMAT(A6,1X,A4)
+         WRITE (BUFF, 65) DATE, YEAR
+         TSYM=TDAY+(T+TIC-TDAY-SYMWID(CSIZE,14,BUFF)/TFACT)*.5
+         CALL SYMBEL(TSYM,YTEMP2,angl,CSIZE,14,BUFF)
+      ENDIF
+   60 TDAY=T+TIC
+   70 CONTINUE
+      ITIME=ITIME3
+      T=T+TIC
+      td = td + ticd
+      t=td
 
-          IF(ITIME(13:14)//ITIME(1:12) .LE.
-     .       ITIME2(13:14)//ITIME2(1:12)) GO TO 10
+      IF(ITIME(13:14)//ITIME(1:12) .LE.
+     .   ITIME2(13:14)//ITIME2(1:12)) GO TO 10
 
       IF(IDDB.EQ.0) RETURN
 
       IF(IABS(LABEL).EQ.1.AND.IDAY.EQ.IDDB*(IDAY/IDDB) ) THEN
-         IF (is_hours_axis.GT.0 .OR. IHR3.GE.4) THEN
+         IF (IHR3 .GE. 4) THEN
            CALL TIME2(ITIME,SYM)
 	   READ(SYM,55) DATE, YEAR
-	   IF (MONYRLAB) THEN
-	      WRITE (BUFF, 65) DATE, YEAR
-              TSYM=TDAY+(T-TDAY-SYMWID(CSIZE,14,BUFF)/TFACT)*.5
-              CALL SYMBEL(TSYM,YTEMP2,angl,CSIZE,14,BUFF)
-           ELSE
-              TSYM=TDAY+(T-TDAY-SYMWID(1.5*CSIZE,6,DATE)/TFACT)*.5
-	      CALL SYMBEL(TSYM,YTEMP2,0.,1.5*CSIZE,6,DATE)
-           ENDIF
-
+	   WRITE (BUFF, 65) DATE, YEAR
+           TSYM=TDAY+(T-TDAY-SYMWID(CSIZE,14,BUFF)/TFACT)*.5
+           CALL SYMBEL(TSYM,YTEMP2,angl,CSIZE,14,BUFF)
          ENDIF
       ENDIF
 
-
 c Finish out the line
-      CALL PLOT (t,y,0,0)
+      CALL PLOT (tlo,y,0,0)
       t = TLO + DIFF(ITIME1, ITIME2)/dt
       CALL PLOT (t,y,1,0)
+      CALL COLOR(color0)
 
       RETURN
       END
diff --git a/ppl/plotlib/tayis.F b/ppl/plotlib/tayis.F
index 8de0616..d3ba2f4 100644
--- a/ppl/plotlib/tayis.F
+++ b/ppl/plotlib/tayis.F
@@ -1,6 +1,5 @@
 	SUBROUTINE TAYIS(IT,TLO,IT1,IT2,DT,NMTCT,LTT,IFDB,ISDB,
      *	YF,XHI,XF,TCSIZE,xacross,hgrat,hcolor,hline,color0,is_hours_axis)
-
 C** 
 C**    @(#)tayis.f	1.1    3/10/88
 C**
@@ -52,21 +51,22 @@ C**
 C *kob* 04/07/96 passed in character strings had to be declared 
 C                with "*(*)" for the linux port 
 C *acm* 03/04  new arguments for plotting graticule lines across plot. 
-C              If graticule lines are to be drawn across the plot at the tics
-C              then only do them for one horizontal and one vertical axis.  
-C              The dash lines interfere with each other if drawn from both 
-C              sides. HLINE and VLINE control this.
 C V695  *acm*  5/15 Restore color after a graticule using defined color 0
 C V695  *acm*  9/15 Changes for hour:min labeling on time axes
 C V697  *acm* 12/15 For short-time plots do the time axis in a separate
 C                   routine tayis4
+* *acm* - 8/16   ticket 1787: restore pen 0 correctly after graticule
 
+C If graticule lines are to be drawn across the plot at the tics
+C then only do them for one horizontal and one vertical axis.  
+C The dash lines interfere with each other if drawn from both 
+C sides. HLINE and VLINE control this.
 
 	INTEGER is_hours_axis
         REAL xacross           ! to draw tic line across plot
         REAL hgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
-        INTEGER hcolor(*)      ! pen number 
-        INTEGER color0	       ! pen number for axis
+        INTEGER hcolor(*)      ! pen number for graticule lines
+	INTEGER color0	       ! pen number to restore 
         LOGICAL hline          ! If true, do the lines across.
 
 	CHARACTER*(*) IT1,IT2
diff --git a/ppl/plotlib/tayis0.F b/ppl/plotlib/tayis0.F
index 3e9f2f8..5b90ed0 100644
--- a/ppl/plotlib/tayis0.F
+++ b/ppl/plotlib/tayis0.F
@@ -40,6 +40,9 @@
 
 C**
 C**    @(#)tayis0.f	1.1    3/10/88
+* *acm* - 8/16   ticket 1787: restore pen 0 correctly after graticule
+* *acm* - 9/16   ticket 2466: graticule lines on major tics by default
+C
 C**
 C**
 C***********************************************************************
@@ -94,8 +97,8 @@ C
         REAL dash1_1, dash1_2, dash1_3, dash1_4
         REAL dash2_1, dash2_2, dash2_3, dash2_4
         REAL hgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
-        INTEGER hcolor(*)      ! pen number 
-        INTEGER color0	       ! pen number for axis
+        INTEGER hcolor(*)      ! pen number for graticule lines
+	INTEGER color0	       ! pen number to restore 
         LOGICAL hline          ! If true, do the lines across.
         LOGICAL solid1, solid2   ! solid lines across at tics
         LOGICAL dashed1, dashed2 ! dashed lines across at tics
@@ -105,6 +108,12 @@ C
 
 	include 'xinterrupt.cmn'
         include 'century.cmn'  ! with MONYRLAB flag
+        include 'parampl5_dat.decl'
+        include 'PARAMPL5.DAT'
+        include 'lines_inc.decl'
+        include 'LINES.INC'
+        INCLUDE 'pen_inc.decl'  ! with IPEN(1)
+        INCLUDE 'PEN.INC'
 
 C     CHECK THE PARAMETERS PASSED TO THE SUBROUTINE.
 	IF(ITIME1(9:10).NE.'00')STOP ',1'
@@ -275,7 +284,7 @@ C      LOOP:
 	ELSE
 	    CALL PLOTT7(X,T+TIC,XFACT,TFACT,1,INML)
             
-                 IF ((solid1.OR.dashed1) .AND. hline) THEN ! make line across
+                 IF ((solid2.OR.dashed2) .AND. hline) THEN ! make line across
                     CALL COLOR(color1)
                     IF (dashed1) THEN
                        CALL DASHSZ(dash1_1,dash2_1,dash1_3,dash1_4)
diff --git a/ppl/plotlib/tayis1.F b/ppl/plotlib/tayis1.F
index 4fccb79..b2e01c2 100644
--- a/ppl/plotlib/tayis1.F
+++ b/ppl/plotlib/tayis1.F
@@ -56,6 +56,7 @@ C *acm* 03/04  new arguments and code for plotting graticule lines across plot.
 C V65  *acm*  1/10 New time-axis style for DAY and MONTH, DMY: adds the
 C                  year to DAY,MONTH or to MONTH.
 C V695 *acm*  5/15 Restore color after a graticule using defined color 0
+* *acm* - 8/16   ticket 1787: restore pen 0 correctly after graticule
 
 C**
 C**    @(#)tayis1.f	1.1    3/10/88
@@ -122,8 +123,8 @@ C
         REAL dash1_1, dash1_2, dash1_3, dash1_4
         REAL dash2_1, dash2_2, dash2_3, dash2_4
         REAL hgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
-        INTEGER hcolor(*)      ! pen number 
-        INTEGER color0	       ! pen number for axis
+        INTEGER hcolor(*)      ! pen number for graticule lines
+	INTEGER color0	       ! pen number to restore 
         LOGICAL hline          ! If true, do the lines across.
         LOGICAL solid1, solid2   ! solid lines across at tics
         LOGICAL dashed1, dashed2 ! dashed lines across at tics
@@ -133,6 +134,12 @@ C
 
 	include 'xinterrupt.cmn'
         include 'century.cmn'
+        include 'parampl5_dat.decl'
+        include 'PARAMPL5.DAT'
+        include 'lines_inc.decl'
+        include 'LINES.INC'
+        INCLUDE 'pen_inc.decl'  ! with IPEN(1)
+        INCLUDE 'PEN.INC'
 
 C     CHECK THE PARAMETERS PASSED TO THE SUBROUTINE.
 	IF(ITIME1(7:10).NE.'0000')STOP ',1'
diff --git a/ppl/plotlib/tayis3.F b/ppl/plotlib/tayis3.F
index 8f778f0..7536633 100644
--- a/ppl/plotlib/tayis3.F
+++ b/ppl/plotlib/tayis3.F
@@ -59,8 +59,9 @@ C *acm* 03/04  new arguments and code for plotting graticule lines across plot.
 C *acm*  3/10  Bug 670 fixed: New flag MULTICENFLAG for multi-decade plots, 
 C              do not make small tics by default.
 C V695 *acm*  5/15 Restore color after a graticule using defined color 0
-C V695 *acm*  5/15 Restore color after a graticule using defined color 0
 C v7   *acm*  6/16 Fix ticket 2436: # characters used in time-axis labels 
+* *acm* - 8/16   ticket 1787: restore pen 0 correctly after graticule
+* V710 *acm*  8/16 make the year labels less large
 
 C**
 C**    @(#)tayis3.f	1.1    3/10/88
@@ -120,15 +121,21 @@ C
 
 	LOGICAL*4 not_zero_size
         include 'century.cmn'
-        
+        include 'parampl5_dat.decl'
+        include 'PARAMPL5.DAT'
+        include 'lines_inc.decl'
+        include 'LINES.INC'
+        INCLUDE 'pen_inc.decl'  ! with IPEN(1)
+        INCLUDE 'PEN.INC'
+
 * Parameters for drawing tics across plot
 
         REAL xacross
         REAL dash1_1, dash1_2, dash1_3, dash1_4
         REAL dash2_1, dash2_2, dash2_3, dash2_4
         REAL hgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
-        INTEGER hcolor(*)      ! pen number 
-        INTEGER color0	       ! pen number for axis
+        INTEGER hcolor(*)      ! pen number for graticule lines
+	INTEGER color0	       ! pen number to restore 
         LOGICAL hline          ! If true, do the lines across.
         LOGICAL solid1, solid2   ! solid lines across at tics
         LOGICAL dashed1, dashed2 ! dashed lines across at tics
@@ -204,7 +211,7 @@ C     SET PARAMETERS.
 	    FIMDB=-1.4
 	ENDIF
 	IF(LABEL.LT.0) THEN
-	    XTEMP1=X-(1.4*CSIZE+XTEMP)/XFACT
+	    XTEMP1=X-(1.1*CSIZE+XTEMP)/XFACT
 	    XTEMP2=X-((4.0+FIMDB)*CSIZE+XTEMP)/XFACT
 	    IF (iy.eq.1) xtemp1 = xtemp1 + tly*0.4/xfact
 	    IF (iy.eq.1) xtemp2 = xtemp2 + tly*0.4/xfact
@@ -393,8 +400,8 @@ C             ELSE:
 	    READ(SYM,30)MON,CEN,YR
 	    WRITE(SYM,55)CEN,YR
 55	    FORMAT(A2,A2)
-	    TSYM=TYR+(T+TIC-TYR-SYMWID(1.4*CSIZE,4,SYM(:4))/TFACT)*.5
-	    CALL SYMBEL(XTEMP2,TSYM,90.,1.4*CSIZE,4,SYM(:4))
+	    TSYM=TYR+(T+TIC-TYR-SYMWID(1.1*CSIZE,4,SYM(:4))/TFACT)*.5
+	    CALL SYMBEL(XTEMP2,TSYM,90.,1.1*CSIZE,4,SYM(:4))
 	ENDIF
 60	TYR=T+TIC
 70	CONTINUE
@@ -418,8 +425,8 @@ C     ELSE:
 	    CALL TIME2(ITIME,SYM)
 	    READ(SYM,30)MON,CEN,YR
 	    WRITE(SYM,55)CEN,YR
-	    TSYM=TYR+(T-TYR-SYMWID(1.4*CSIZE,4,SYM(:4))/TFACT)*.5
-	    CALL SYMBEL(XTEMP2,TSYM,90.,1.4*CSIZE,4,SYM(:4))
+	    TSYM=TYR+(T-TYR-SYMWID(1.1*CSIZE,4,SYM(:4))/TFACT)*.5
+	    CALL SYMBEL(XTEMP2,TSYM,90.,1.1*CSIZE,4,SYM(:4))
 	ENDIF
 C
 C     THE SECTION OF CODE THAT PUTS ON THE SMALL TIC MARKS.
diff --git a/ppl/plotlib/tayis4.F b/ppl/plotlib/tayis4.F
index c36f82f..8713acc 100644
--- a/ppl/plotlib/tayis4.F
+++ b/ppl/plotlib/tayis4.F
@@ -1,5 +1,6 @@
-	SUBROUTINE TAYIS4(TLO,ITIME1,ITIME2,DT,NSMTIC,LABEL,IHDB,IDDB,
-     *	TFACT,X,XFACT,CSIZE,xacross,hgrat,hcolor,hline,color0,is_hours_axis)
+      SUBROUTINE TAYIS4(TLO,ITIME1,ITIME2,DT,NSMTIC,LABEL,IHDB,IDDB,
+     .    TFACT,X,XFACT,CSIZE,xacross,hgrat,hcolor,hline,color0,
+     .    is_hours_axis)
 
 *
 *
@@ -34,11 +35,18 @@
 *  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. 
-*                                                 
-* From tayis0: separate routijne for hour:min labeling on time axes
 *
+*
+* 
+* From tayis0: separate routine for hour:min labeling on time axes
+C V7.1 *acm* 8/2016 Ticket 2466: Graticule lines too dense
+* *acm* - 8/16   ticket 1787: restore pen 0 correctly after graticule
+* *acm* - 9/16   ticket 2466: graticule lines on major tics by default
+*                Rewrite this routine to make it echo taxis4.F
+* *acm* - 1/17   Fix too-many labels on tic marks. Add year to Month-Day labels
+C
 C**
-C**    @(#)tayis4.f     1.1   12/09/15
+C**    @(#)tayis4.f	1.1   12/09/15
 C**
 C**
 C***********************************************************************
@@ -48,8 +56,7 @@ C**
 C***********************************************************************
 C**
 C**
-C     THIS ROUTINE PLOTS A TIME AXIS AND LABELS IT WITH THE DAY OF THE M
-C     AND THE MONTH.
+C     THIS ROUTINE PLOTS A TIME AXIS AND LABELS IT WITH THE HOUR, MINUTE.
 C     VARIBLES:
 C         TLO=X VALUE CORRESPONDING TO THE START TIME.
 C         ITIME1 = START TIME (IE.  7708190100)
@@ -74,22 +81,23 @@ C         IDDB = PRINT LABELS OF DAYS DIVISIBLE BY THIS NUMBER ONLY.
 C                IF(IDDB = 0) PRINT NO MONTH LABELS.
 C                THIS VARIBLE ONLY APPLYS WHEN IABS(LABEL) = 1
 C         TFACT = (LENGTH OF T AXIS IN INCHES)/(LENGTH OF T AXIS IN USER
-C         X = X COORDINATE OF TIME AXIS.
-C         XFACT = (LENGTH OF X AXIS IN INCHES)/(LENGTH OF X AXIS IN USER
+C         X = X COORDINATE OF TIME AXIS. 
+C         XFACT = (LENGTH OF X AXIS IN INCHES)/(LENGTH OF X AXIS IN USER 
 C         CSIZE = SIZE TO DRAW HOUR LABELS.
 C                 DAY LABELS WILL BE 1.5 TIMES AS LARGE.
 C
 C
-C     THIS ROUTINE WAS FIRST WRITTEN BY DAVID MANDEL IN JULY 1980.
+C     The original routine was first written by David Mandel in July 1980.
 C
 	CHARACTER ITIME3*14,DATE*6,BUFF*14,YEAR*4
 	CHARACTER ITIME*14,ITIME1*14,ITIME2*14,SYM*21
 	COMMON/TICS/TSMX,TLX,TSMY,TLY,IX,IY
 	COMMON/AXLWID/XWID,YWID
 
+
 	REAL*8  DIFF, difft
 	REAL*8  td, xtemp1, tfact_d, xfact_d
-	REAL    delt, rem
+	REAL    delt, rem, angl
 	INTEGER is_hours_axis, labint, ticint, hrint
 	LOGICAL hvytic
 
@@ -99,15 +107,16 @@ C
         REAL dash1_1, dash1_2, dash1_3, dash1_4
         REAL dash2_1, dash2_2, dash2_3, dash2_4
         REAL hgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
-        INTEGER hcolor(*)      ! pen number 
-        INTEGER color0	       ! pen number for axis
+        INTEGER hcolor(*)      ! pen number for graticule lines
+	INTEGER hcolor0	       ! pen number to restore
         LOGICAL hline          ! If true, do the lines across.
         LOGICAL solid1, solid2   ! solid lines across at tics
         LOGICAL dashed1, dashed2 ! dashed lines across at tics
         INTEGER ltic, color1, color2
+	LOGICAL heavy_at_labels  ! When lots of tic marks, make heavy 
+				 !tic/graticule at the location of labels.
 
 * TMAP interrupt flag
-
 	include 'xinterrupt.cmn'
         include 'century.cmn'  ! with MONYRLAB flag
 	
@@ -116,14 +125,10 @@ C
   84	FORMAT(I2.2,':',I2.2)
 
 	difft = DIFF(ITIME1,ITIME2)
+	angl = 0.
 
 C     CHECK THE PARAMETERS PASSED TO THE SUBROUTINE.
 
-	IF (is_hours_axis .EQ. 0) THEN
-	   IF(ITIME1(9:10).NE.'00')STOP ',1'  ! MINUTE,SECOND ARE 0
-	   IF(ITIME2(9:10).NE.'00')STOP ',2'
-	ENDIF
-
         IF(ITIME1(13:14)//ITIME1(1:12).GE.
      .	   ITIME2(13:14)//ITIME2(1:12)) STOP',3'
 
@@ -140,9 +145,10 @@ C     SET PARAMETERS.
 ! for hours axis (is_hours_axis eq 1) if difft > 60,
 ! then labint, ticint should be on the hour or half hour, so
 ! multiples of 30.
-! for more than 12 hours, label on a multiple of even hours, 
-! up to a max of 36 hours labeled hh:mm
-      
+! for more than 8 hours, label on a multiple of even hours, 
+! for more than 12 hours, label on a multiple of 4 hours, 
+! up to a max of 36 hours labeled hh:mm (set in taxis_style)
+
 	IF (is_hours_axis.EQ.1) THEN
            labint = 30
            delt = 1.
@@ -150,8 +156,8 @@ C     SET PARAMETERS.
            IF (difft .GE.  300) labint = 60
            IF (difft .GE.  600) labint = 120
 	   IF (difft .GE.  300) ticint = 30
-           IF (difft .GE. 1200) hrint = 2
-           IF (difft .GE. 1800) hrint = 4
+           IF (difft .GE.  800) hrint = 2
+           IF (difft .GE. 1200) hrint = 4
         ENDIF
         IF (is_hours_axis.EQ.2) THEN
            labint = 10
@@ -168,6 +174,8 @@ C     SET PARAMETERS.
         tic = delt/dt
         ticd = delt/dt
 
+C set up for plotting graticules across at tic marks
+        
         solid1 = (hgrat(1,1).LT.0 .AND. hgrat(2,1).LT.0 .AND.  
      .            hgrat(3,1).LT.0 .AND.  hgrat(4,1).LT.0 )
         solid2 = (hgrat(1,2).LT.0 .AND. hgrat(2,2).LT.0 .AND.  
@@ -193,69 +201,60 @@ C     SET PARAMETERS.
            dash2_4 = hgrat(4,2)
         ENDIF
 C
+
 	IF(NSMTIC.LT.0)THEN
-	    IHVY=-6
-	    INML=-5
+		IHVY=-6
+		INML=-5
 	ELSE
-	    IHVY=-10
-	    INML=-6
-	    TDIST = TIC/NTIC
+		IHVY=-10
+		INML=-6
+		TDIST = TIC/NTIC
 	ENDIF
 	IF(LABEL+IY.EQ.0)THEN
-	    XTEMP=0.0
+		XTEMP=0.0
 	ELSE
-	    XTEMP=TLY*0.5
+		XTEMP=TLY*0.5
 	ENDIF
 	IF(IHDB.NE.0)THEN
-	    FIHDB=0.0
-	ELSE
-	    FIHDB=-1.4
-	ENDIF
-	XTEMP1=X+DBLE(LABEL*(0.9*CSIZE+XTEMP)/XFACT)
-	IF (is_hours_axis.GT.0 .AND. LABEL.LT.0) XTEMP1=XTEMP1-1.5*CSIZE/XFACT
-	IF(LABEL.LT.0) THEN
-	    XTEMP2=X-((4.0+FIHDB)*CSIZE+XTEMP)/XFACT
-	    IF (is_hours_axis.GT.0) XTEMP2=XTEMP2-1.5*CSIZE/XFACT
+	FIHDB=0.0
 	ELSE
-	    XTEMP2=X+((2.5+FIHDB)*CSIZE+XTEMP)/XFACT
-	   IF (is_hours_axis.GT.0) XTEMP2=X+3*CSIZE/XFACT
+	FIHDB=-1.4
 	ENDIF
-	IF(LABEL.NE.0)YWID=(4.0+FIHDB)*CSIZE+XTEMP
-        T=TLO  ! Time in hours, plot units
-	td=tlo
-	ITIME=ITIME1
-	CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
-	TDAY=T
 
-	tfact_d = tfact
-	xfact_d = xfact
+      XTEMP1=X+DBLE(LABEL*(0.9*CSIZE+XTEMP)/XFACT) - 1.5*CSIZE/XFACT
 
-        CALL PLOT(X,TLO,0,0)
-	IF(IHR.EQ.0 .AND.is_hours_axis.EQ.0 )THEN
-           CALL PLOTT7(X,TLO,XFACT,TFACT,1,IHVY)
-	ELSE
-           IF (MOD(imin,labint) .EQ. 0) THEN
-              CALL PLOTT7(X,TLO,XFACT,TFACT,1,IHVY)
-           ELSE
-	      CALL PLOTT7(X,TLO,XFACT,TFACT,1,IHVY)
-           ENDIF
-	ENDIF
+      IF(LABEL.LT.0) THEN
+          XTEMP2=X-((4.0+FIHDB)*CSIZE+XTEMP)/XFACT - 1.5*CSIZE/XFACT
+      ELSE
+         XTEMP2=X+3*CSIZE/XFACT
+      ENDIF
+
+      IF(LABEL.NE.0)YWID=(4.0+FIHDB)*CSIZE+XTEMP
+      T=TLO  ! Time in hours, plot units
+      td = tlo
+      ITIME=ITIME1
+      CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
+      TDAY=T
 
-	CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)  ! next time stepping from 1 (arg 1) to 2 (arg 2) -- return ITIME3
-	ITIME = ITIME3
+      tfact_d = tfact
+      xfact_d = xfact
+	
+      CALL PLOT(X,TLO,0,0)
+      IF (MOD(imin,labint) .EQ. 0) THEN
+         CALL PLOTT7(X,TLO,XFACT,TFACT,1,IHVY) ! draw to the location and make a mark
+      ELSE
+	 CALL PLOTT7(X,TLO,XFACT,TFACT,1,INML)
+      ENDIF
+	
+      CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)  ! next time stepping from 1 (arg 1) to 2 (arg 2) -- return ITIME3
+      ITIME = ITIME3
 
 c Check whether to make an hour label at the start of the axis
 c ihdb is hour-label frequency
-      IF(IABS(LABEL).EQ.1) THEN
-         IF (IHR.EQ.IHDB*(IHR/IHDB) .AND. is_hours_axis.EQ.0) THEN 
-            WRITE(SYM,80) IHR
-	    CALL scinot_d(XTEMP1,td,0.,CSIZE,2,SYM,0,wid,xfact_d, tfact_d)
-	 ENDIF
-         IF (is_hours_axis .GT. 0) THEN
-	    IF (IMIN .EQ. 0) THEN
-               WRITE(SYM,82) IHR
-	       CALL scinot_d(XTEMP1,td,0.,CSIZE,5,SYM,0,wid,xfact_d, tfact_d)
-	    ENDIF
+      IF (IABS(LABEL).EQ.1 .AND. ihdb.EQ.1) THEN
+	 IF (IMIN .EQ. 0) THEN
+	    WRITE(SYM,82) IHR
+	    CALL scinot_d(XTEMP1,td,angl,CSIZE,5,SYM,0,wid,xfact_d, tfact_d)
 	 ENDIF
       ENDIF
 
@@ -266,7 +265,7 @@ c Set itime1, itime3 as above
 
       ITIME=ITIME1
       CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
-      CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
+      CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt) 
       ITIME = ITIME3
 
 C      LOOP:
@@ -274,27 +273,23 @@ C      LOOP:
   110  CONTINUE
 
 	CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
-	CALL TIME1(1,ITIME,2,' ',I3,ITIME3,60.)
+  	CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
 	ITIME=ITIME3
 
 	IF(ITIME(13:14)//ITIME(1:12) .LE.
-     .       ITIME2(13:14)//ITIME2(1:12)) THEN
-           IF(IHR.EQ.0) ltic = ltic + 1
-	   IF (is_hours_axis .GT. 0) THEN
-	      IF (difft.LE.12 .AND. sec.EQ.0.) THEN
-	         ltic = ltic+1
-	      ELSE
- 	         IF (imin.EQ.0. .AND. ihr.NE.0) ltic = ltic+1
-	      ENDIF
+     .     ITIME2(13:14)//ITIME2(1:12)) THEN
+	   IF (difft.LE.12 .AND. sec.EQ.0.) THEN 
+	      ltic = ltic+1
+	   ELSE
+	      IF (imin.EQ.0. .AND. ihr.NE.0) ltic = ltic+1
 	   ENDIF
-
-	   GO TO 110
+           GO TO 110
         ENDIF
      
 ! IF no large tics, and if graticules at just the large tics were
 ! requested, then plot graticules at the small tics
 
-	IF (ltic .EQ. 0) THEN  
+	IF (ltic .EQ. 0) THEN   
            IF ( (.NOT.solid2) .AND. (solid1) ) THEN
               solid2 = solid1
               color2 = color1
@@ -307,143 +302,132 @@ C      LOOP:
               dash2_4 = dash1_4
               color2 = color1
            ENDIF
+
         ENDIF
 
+! IF many large tics, make fewer - at the locations of labels
+        heavy_at_labels = ltic .GT. 20
+
 ! Restore the state of ITIME, ITIME3
       ITIME=ITIME1
       CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
 
       CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
       ITIME = ITIME3
+
 c ----
 
+C   LOOP:
+   10 CALL PLOT(X,T,0,0)
+      IF ( interrupted ) RETURN		! TMAP interrupt
+      DO 20 I=1,NSMTIC
+              CALL PLOTT7(X,T+FLOAT(I)*TDIST,XFACT,TFACT,1,INML)
 
-C      LOOP:
-10	CALL PLOT(X,T,0,0)
-	IF ( interrupted ) RETURN		! TMAP interrupt
-	DO 20 I=1,NSMTIC
-	CALL PLOTT7(X,T+FLOAT(I)*TDIST,XFACT,TFACT,1,-5)
-        
-                 IF ((solid2.OR.dashed2) .AND. hline) THEN ! make line across
-                    CALL COLOR(color2)
-                    IF (dashed2) THEN
-                       CALL DASHSZ(dash2_1,dash2_2,dash2_3,dash2_4)
-                       CALL DASHES
-                    ENDIF
-                    CALL PLOT(x,T+FLOAT(I)*TDIST,0,0) 
-                    CALL PLOT(xacross,T+FLOAT(I)*TDIST,1,0)
-                    CALL PLOT(x,T+FLOAT(I)*TDIST,0,0) 
-                    CALL COLOR(color0)
-                    CALL VECTRS
+              IF ((solid2.OR.dashed2) .AND. hline) THEN ! make line across
+                 CALL COLOR(color2)
+                 IF (dashed2) THEN
+                    CALL DASHSZ(dash2_1,dash2_2,dash2_3,dash2_4)
+                    CALL DASHES
                  ENDIF
+                 CALL PLOT(X,T+FLOAT(I)*TDIST,0,0) 
+                 CALL PLOT(xacross,T+FLOAT(I)*TDIST,1,0)
+                 CALL PLOT(X,T+FLOAT(I)*TDIST,0,0) 
+                 CALL COLOR(color0)
+                 CALL VECTRS
+              ENDIF
 
-20	CONTINUE
-	CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
+   20 CONTINUE
+      CALL TIME3(ITIME,IYR,IMON,IDAY,IHR,IMIN,ISEC,ICEN)
+	  
+      hvytic = (MOD(imin,labint) .EQ. 0)
+      IF (heavy_at_labels) THEN
+             hvytic = ( (imin .EQ. 0 .AND. MOD(ihr,hrint).EQ.0) .OR. 
+     .                  (MOD(imin,labint) .EQ. 0 .AND. hrint.LE.1) )
+      ENDIF
 
-	hvytic = ((is_hours_axis.EQ.0 .AND. IHR.EQ.0) .OR.
-     .            (is_hours_axis.GT.0 .AND. MOD(imin,labint).EQ.0))
-	IF(hvytic)THEN
-	    CALL PLOTT7(X,T+TIC,XFACT,TFACT,1,IHVY)
-            
+      IF(hvytic)THEN
+             CALL PLOTT7(X,T+TIC,XFACT,TFACT,1,IHVY)
+	
               IF ((solid1.OR.dashed1) .AND. hline) THEN ! make line across
                  CALL COLOR(color1)
                  IF (dashed1) THEN
                     CALL DASHSZ(dash1_1,dash1_2,dash1_3,dash1_4)
                     CALL DASHES
                  ENDIF
-                 CALL PLOT(x,t+tic,0,0) 
+                 CALL PLOT(X,t+tic,0,0) 
                  CALL PLOT(xacross,t+tic,1,0)
-                 CALL PLOT(x,t+tic,0,0) 
+                 CALL PLOT(X,t+tic,0,0) 
                  CALL COLOR(color0)
                  CALL VECTRS
               ENDIF
+      
+      ELSE
+         IF (MOD(imin,ticint).EQ.0) THEN
+            CALL PLOTT7(X,T+TIC,XFACT,TFACT,1,INML)
+		    
+c           graticule line at tic
+            IF ((solid2.OR.dashed2) .AND. hline) THEN ! make line across
+               CALL COLOR(color2)
+               IF (dashed2) THEN
+                  CALL DASHSZ(dash2_1,dash2_1,dash2_3,dash2_4)
+                  CALL DASHES
+               ENDIF
+               CALL PLOT(x,t+tic,0,0) 
+               CALL PLOT(xacross,t+tic,1,0)
+               CALL PLOT(x,t+tic,0,0) 
+               CALL COLOR(color0)
+               CALL VECTRS
+            ENDIF
+
+         ELSE 
+            CALL PLOT(X,T+TIC,1,0)
+         ENDIF
 
-	ELSE
-
-              IF (is_hours_axis.GT.0) THEN
-                 IF (MOD(imin,ticint).EQ.0) THEN
-                    CALL PLOTT7(X,T+TIC,XFACT,TFACT,1,INML)
-                 ELSE
-                    CALL PLOT(X,T+TIC,1,0)
-                 ENDIF
-              ELSE
-                 CALL PLOTT7(X,T+TIC,XFACT,TFACT,1,INML)
-              ENDIF
-
-                 IF ((solid1.OR.dashed1) .AND. hline) THEN ! make line across
-                    CALL COLOR(color1)
-                    IF (dashed1) THEN
-                       CALL DASHSZ(dash1_1,dash2_1,dash1_3,dash1_4)
-                       CALL DASHES
-                    ENDIF
-                    CALL PLOT(x,t+tic,0,0) 
-                    CALL PLOT(xacross,t+tic,1,0)
-                    CALL PLOT(x,t+tic,0,0) 
-                    CALL COLOR(color0)
-                    CALL VECTRS
-                 ENDIF
+      ENDIF
 
-	ENDIF
-C         THE LABELS
-
-
-	  IF (IABS(LABEL).EQ.1) THEN
-             IF (is_hours_axis .GT. 0) THEN
-	        IF (imin.EQ.0 .AND. MOD(ihr,hrint).EQ.0) THEN
-	           WRITE(SYM,82) IHR
-	           CALL scinot_d(XTEMP1,Td+TICd,0.,CSIZE,5,SYM,0,wid,xfact_d, tfact_d)
-		ELSE
-                   IF (MOD(imin,labint) .EQ. 0 .AND. hrint.LE.1) THEN
-		      WRITE(SYM,84) ihr, imin
-	              CALL scinot_d(XTEMP1,Td+TICd,0.,CSIZE,5,SYM,0,wid,xfact_d, tfact_d)
-		   ENDIF
-		ENDIF
-             ELSE
-	        IF(IHR.EQ.IHDB*(IHR/IHDB)) THEN
-	           WRITE(SYM,80) IHR
-	           CALL scinot_d(XTEMP1,Td+TICd,0.,CSIZE,2,SYM,0,wid,xfact_d, tfact_d)
-	        ENDIF
-             ENDIF
-
-	  ENDIF
-
-          CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
-
-	IF(IDDB.EQ.0.OR.IABS(LABEL).NE.1) GO TO 70
-	CALL TIME3(ITIME3,IYR3,IMON3,IDAY3,IHR3,IMIN3,ISEC3,ICEN3)
-	IF(IDAY.EQ.IDAY3) GO TO 70
-	IF(IDAY.NE.IDDB*(IDAY/IDDB))GO TO 60
-C             ELSE:
-	IF(T-TDAY.GT.180./DT)THEN
-	    CALL TIME2(ITIME,SYM)
+C THE LABELS
+
+      IF (IABS(LABEL).EQ.1) THEN
+         IF (imin .EQ. 0 .AND. MOD(ihr,hrint).EQ.0) THEN
+            WRITE(SYM,82) IHR
+            CALL scinot_d(XTEMP1,Td+TICd,0.,CSIZE,5,SYM,0,wid,xfact_d, tfact_d)
+         ELSE
+            IF (MOD(imin,labint) .EQ. 0 .AND. hrint.LE.1) THEN
+               WRITE(SYM,84) ihr, imin
+               CALL scinot_d(XTEMP1,Td+TICd,0.,CSIZE,5,SYM,0,wid,xfact_d, tfact_d)
+            ENDIF
+         ENDIF
+      ENDIF
 
-	   READ(SYM,55) DATE, YEAR
-55	   FORMAT(6X,A6,1X,A4)
-65         FORMAT(A6,1X,A4)
-           IF (MONYRLAB) THEN
-	      WRITE (BUFF, 65) DATE, YEAR
-              TSYM=TDAY+(T+TIC-TDAY-SYMWID(CSIZE,14,BUFF)/TFACT)*.5
-	      CALL SYMBEL(XTEMP2,TSYM,90.,CSIZE,14,BUFF)
-	   ELSE
-	      TSYM=TDAY+(T+TIC-TDAY-SYMWID(1.5*CSIZE,6,DATE)/TFACT)*.5
-	      CALL SYMBEL(XTEMP2,TSYM,90.,1.5*CSIZE,6,DATE)
-	   ENDIF
+      CALL TIME1(1,ITIME,2,' ',I3,ITIME3,delt)
+      IF(IDDB.EQ.0.OR.IABS(LABEL).NE.1) GO TO 70
+      CALL TIME3(ITIME3,IYR3,IMON3,IDAY3,IHR3,IMIN3,ISEC3,ICEN3)
+      IF(IDAY.EQ.IDAY3) GO TO 70
+      IF(IDAY.NE.IDDB*(IDAY/IDDB))GO TO 60
+C   ELSE:
+      IF(T-TDAY.GT.180./DT) THEN
+         CALL TIME2(ITIME,SYM)
+         READ(SYM,55) DATE, YEAR
+55	 FORMAT(6X,A6,1X,A4)
+65       FORMAT(A6,1X,A4)
+	 WRITE (BUFF, 65) DATE, YEAR
+	 TSYM=TDAY+(T+TIC-TDAY-SYMWID(CSIZE,14,BUFF)/TFACT)*.5
+	 CALL SYMBEL(XTEMP2,TSYM,90.,CSIZE,14,BUFF)
+      ENDIF
+   60 TDAY=T+TIC
+   70 CONTINUE
+      ITIME=ITIME3
+      T=T+TIC
+      td = td + ticd
+      t=td
 
-	ENDIF
-60	TDAY=T+TIC
-70	CONTINUE
-	ITIME=ITIME3
-	T=T+TIC
-	td = td + ticd
-	t=td
-c	IF(ITIME.LE.ITIME2) GO TO 10
-        IF(ITIME(13:14)//ITIME(1:12) .LE.
-     .       ITIME2(13:14)//ITIME2(1:12)) GO TO 10
+      IF(ITIME(13:14)//ITIME(1:12) .LE.
+     .   ITIME2(13:14)//ITIME2(1:12)) GO TO 10
 
-	IF(IDDB.EQ.0) RETURN
+      IF(IDDB.EQ.0) RETURN
 
-      IF(IABS(LABEL).EQ.1 .AND. IDAY.EQ.IDDB*(IDAY/IDDB) ) THEN
-         IF (is_hours_axis.GT.0 .OR. IHR3.GE.4) THEN
+      IF(IABS(LABEL).EQ.1.AND.IDAY.EQ.IDDB*(IDAY/IDDB) ) THEN
+         IF (IHR3.GE.4) THEN
            CALL TIME2(ITIME,SYM)
 	   READ(SYM,55) DATE, YEAR
 	   IF (MONYRLAB) THEN
@@ -452,11 +436,17 @@ c	IF(ITIME.LE.ITIME2) GO TO 10
               CALL SYMBEL(XTEMP2,TSYM,90.,CSIZE,14,BUFF)
            ELSE
               TSYM=TDAY+(T-TDAY-SYMWID(1.5*CSIZE,6,DATE)/TFACT)*.5
-	      CALL SYMBEL(XTEMP2,TSYM,90.,90.,CSIZE,14,BUFF)
+	      CALL SYMBEL(XTEMP2,TSYM,90.,1.5*CSIZE,6,DATE)
            ENDIF
 
          ENDIF
       ENDIF
 
+c Finish out the line
+      CALL PLOT (X,TLO,0,0)
+      t = TLO + DIFF(ITIME1, ITIME2)/dt
+      CALL PLOT (X,T,1,0)
+      CALL COLOR(color0)
+
       RETURN
       END
diff --git a/ppl/plotlib/xaxis1.F b/ppl/plotlib/xaxis1.F
index a698f37..0fd2d1e 100644
--- a/ppl/plotlib/xaxis1.F
+++ b/ppl/plotlib/xaxis1.F
@@ -1,6 +1,6 @@
       SUBROUTINE XAXIS1(XLO,XHI,XTIC,NSMTCX,LINTX,XUNIT,LABEL,
      *    IFORMT,XFACT,Y,YFACT,CSIZE,yacross,xdms,xdspac,vgrat,vcolor,
-     *    vline, xvaloff, color0)
+     *    vline, xvaloff,color0)
 
 *
 *
@@ -52,11 +52,12 @@ C *acm* 11/05  new argument to scinot deg/min/sec labels
 C        1/06  xvaloff,yvaloff add this amount to each x or y axis label. 
 C              (axis data was read as double precision and converted to single 
 C              after applying an offset.)
-C V695 *acm*  5/15 Restore color after a graticule using defined color 0
-C V695 *acm*  5/15 for PyFerret draw lines and tics only once, avoiding overdrawing.
 * V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
 *                  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
+* *acm* - 8/16   ticket 1787: restore pen 0 correctly after graticule
+* *acm* - 11/16  ticket 2477: incomplete axis on some plots
+
 
 C**
 C**    @(#)xaxis1.f	1.1    3/10/88
@@ -80,8 +81,8 @@ C**
 
         REAL yacross, dash1, dash2,dash3,dash4, xvaloff
         REAL vgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
-        INTEGER vcolor(*)      ! pen number 
-        INTEGER color0	       ! pen number for axis
+        INTEGER vcolor(*)      ! pen number for graticule lines
+	INTEGER color0	       ! pen number to restore 
         LOGICAL vline          ! If true, do the lines across.
         LOGICAL solid          ! solid lines across at tics
         LOGICAL dashed         ! dashed lines across at tics
@@ -93,9 +94,13 @@ C**
 
 
 * TMAP interrupt flag
-
 	include 'xinterrupt.cmn'
-
+        include 'parampl5_dat.decl'
+        include 'PARAMPL5.DAT'
+        include 'lines_inc.decl'
+        include 'LINES.INC'
+        INCLUDE 'pen_inc.decl'  ! with IPEN(1)
+        INCLUDE 'PEN.INC'
 
 C     THIS ROUTINE DRAWS AN X AXIS.  IT LABELS THE AXIS BELOW
 C     IF LABEL=-1, ABOVE IF LABEL=1, AND NOT AT ALL
@@ -118,7 +123,7 @@ CCC     THE FOLLOWING SECTION OF CODE MAKES THIS ROUTINE UPWARD COMPATIABLE.
         ABSSZ=ABS(CSIZE)
         SIGSZ=SIGN(1.,CSIZE)
 C
-C	DRAW AXIS- here do not draw axis, just move the pen. Draw it at the end
+C	DRAW AXIS
 C
 	DIR=SIGN(1.,XTIC)
 	XT=INT(XLO/XTIC+SIGN(0.000001,DIR*XLO))*XTIC
@@ -126,8 +131,7 @@ C
 	ISTOP=IFIX((XHI-XT)/XTIC+0.000001)
 	CALL PLOT(XT,Y,0,0)
 	CALL SMX1(XT,XLO,-XTIC,NSMTCX,XFACT,YFACT,Y,
-     .    yacross,vgrat,vcolor,vline)
-	CALL PLOT(XT,Y,1,0)
+     *    yacross,vgrat,vcolor,vline)
 	CALL PLOTT7(XT,Y,XFACT,YFACT,1,-8)
 	X=XT
         
@@ -162,7 +166,6 @@ C
 	X=X+XTIC
 	CALL PLOTT7(X,Y,XFACT,YFACT,1,-8)
 100	CONTINUE
-
 	CALL SMX1(X,XHI,XTIC,NSMTCX,XFACT,YFACT,Y,
      *    yacross,vgrat,vcolor,vline)
         
@@ -179,13 +182,13 @@ C
            CALL VECTRS
         ENDIF
 
-	CALL PLOT(XLO,Y,0,0)
+	CALL PLOT(XLO,Y,1,0)
 	CALL PLOT(XHI,Y,1,0)
            
 C
 C	DRAW LABELS
 C
-	IF(LABEL.EQ.0) RETURN
+	IF(LABEL.EQ.0)RETURN
 	IF(LABEL+IX.EQ.0)THEN
 		YTEMP=0.0
 	ELSE
@@ -205,7 +208,7 @@ C
 	CALL NUMCDE(TEMP,XLAB,LETTER,NC,IFORMT,xdms)
 
 	spacwid = 0.
-	do_shift = INDEX(XLAB, '#')  ! longitude or latitude labels
+	do_shift = ( INDEX(XLAB, '#') .GT. 0 )  ! longitude or latitude labels
 	IF (do_shift) spacwid = SYMWID(ABSSZ,1,'E')
 
 	x0 = x
@@ -244,6 +247,5 @@ CC	X=X+XTIC*LINTX
 	if (abs(x) .lt. epsilon*abs(x0)) x = 0.0
 
 200	CONTINUE
-
 	RETURN
 	END
diff --git a/ppl/plotlib/xaxis2.F b/ppl/plotlib/xaxis2.F
index edf03ba..a3effc8 100644
--- a/ppl/plotlib/xaxis2.F
+++ b/ppl/plotlib/xaxis2.F
@@ -52,6 +52,8 @@ C                with "*(*)" for the linux port
 *                inverse log axes and log depth axes.
 C V695 *acm*  5/15 Restore color after a graticule using defined color 0
 *
+*acm* - 8/16   ticket 1787: restore pen 0 correctly after graticule
+
 	CHARACTER XLAB*20,IFORMT*(*),XFRMT*12
 	COMMON/TICS/TSMX,TLX,TSMY,TLY,IX,IY
 	COMMON/AXLWID/XWID,YWID
@@ -63,11 +65,18 @@ C V695 *acm*  5/15 Restore color after a graticule using defined color 0
         REAL dash2_1, dash2_2, dash2_3, dash2_4 
         REAL vgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
         REAL xt
-        INTEGER vcolor(*)      ! pen number 
-        INTEGER color0	       ! pen number for axis
+        INTEGER vcolor(*)      ! pen number for graticule lines
+	INTEGER color0	       ! pen number to restore 
         LOGICAL vline          ! If true, do the lines across.
         LOGICAL solid1, solid2 ! solid lines across at tics
         LOGICAL dashed1, dashed2 ! dashed lines across at tics
+
+        include 'parampl5_dat.decl'
+        include 'PARAMPL5.DAT'
+        include 'lines_inc.decl'
+        include 'LINES.INC'
+        INCLUDE 'pen_inc.decl'  ! with IPEN(1)
+        INCLUDE 'PEN.INC'
         
 C
 C     THIS ROUTINE PLOTS SEVERAL TYPES OF BASE 10 LOG XAXIS.
diff --git a/ppl/plotlib/yaxis1.F b/ppl/plotlib/yaxis1.F
index dcd8891..555b90b 100644
--- a/ppl/plotlib/yaxis1.F
+++ b/ppl/plotlib/yaxis1.F
@@ -54,13 +54,13 @@ C              (axis data was read as double precision and converted to single
 C              after applying an offset.)
 
 * 11/2011 ACM Fixing ticket 1896: When needed, reset the size of numerical axis
-*             labels, so the labels dont run off the edge of the plot.
-C V695 *acm*  5/15 Restore color after a graticule using defined color 0
-C V695 *acm*  5/15 for PyFerret draw lines and tics only once, avoiding overdrawing.
-C V695 *acm* 10/15 Fix ticket 2320 - missing minor tic marks
+*             labes, so the labels dont run off the edge of the plot.
 * V7    *acm* 6/16 Ticket 2434: command qualifiers /DEGMINSEC= /HALFSPAC
 *                  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
+* *acm* - 8/16   ticket 1787: restore pen 0 correctly after graticule
+* *acm* - 11/16  ticket 2477: incomplete axis on some plots
+
 
 C**
 C**    @(#)yaxis1.f	1.1    3/10/88
@@ -82,9 +82,9 @@ C**
 
         REAL xacross, dash1, dash2, dash3, dash4
         REAL hgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
-        INTEGER hcolor(*)      ! pen number 
-        INTEGER color0	       ! pen number for axis
-        LOGICAL hline          ! If true, do the lines across.
+        INTEGER hcolor(*)      ! pen number for graticule lines
+        INTEGER color0         ! pen number to restore
+	LOGICAL hline          ! If true, do the lines across.
         LOGICAL solid          ! solid lines across at tics
         LOGICAL dashed         ! dashed lines across at tics
 	LOGICAL noylab
@@ -98,6 +98,13 @@ C**
 
 * TMAP interrupt flag
 	include 'xinterrupt.cmn'
+        include 'parampl5_dat.decl'
+        include 'PARAMPL5.DAT'
+        include 'lines_inc.decl'
+        include 'LINES.INC'
+        INCLUDE 'pen_inc.decl'  ! with IPEN(1)
+        INCLUDE 'PEN.INC'
+C
 C
 C     THIS ROUTINE DRAWS A Y AXIS.  IT LABELS THE AXIS ON THE LEFT
 C     IF LABEL=-1, ON THE RIGHT IF LABEL=1, AND NOT AT ALL
@@ -124,6 +131,7 @@ C     THE FOLLOWING SECTION OF CODE MAKES THIS ROUTINE UPWARD COMPATIABLE.
 C
 C	DRAW AXIS
 C
+
 	DIR=SIGN(1.,YTIC)
 	YT=INT(YLO/YTIC+SIGN(0.000001,DIR*YLO))*YTIC
 	IF(DIR*YT.LT.DIR*YLO)YT=YT+YTIC
@@ -131,7 +139,7 @@ C
 	CALL PLOT(X,YT,0,0)
 	CALL SMY1(X,XFACT,YFACT,YT,YLO,-YTIC,NSMTCY,
      .     xacross,hgrat,hcolor,hline)
-        CALL PLOT(X,YT,1,0)
+
 	CALL PLOTT7(X,YT,XFACT,YFACT,1,-6)
 
 	Y=YT
@@ -150,14 +158,14 @@ C
 	DO 100 I=1,ISTOP
 	IF ( interrupted ) RETURN		! TMAP interrupt
 	CALL SMY1(X,XFACT,YFACT,Y,YHI,YTIC,NSMTCY,
-     .        xacross,hgrat,hcolor,hline)
+     .     xacross,hgrat,hcolor,hline)
         IF ((solid.OR.dashed) .AND. hline) THEN ! make line across
            CALL COLOR(hcolor(1))
            IF (dashed) THEN
               CALL DASHSZ(dash1,dash2,dash3,dash4)
               CALL DASHES
            ENDIF
-           CALL PLOT(X,Y,0,0) 
+           CALL PLOT(X,Y,0,0)
            CALL PLOT(xacross,Y,1,0)
            CALL PLOT(X,Y,0,0) 
            CALL COLOR(color0)
@@ -165,7 +173,6 @@ C
         ENDIF
 
 	Y=Y+YTIC
-	CALL PLOT(X,Y,0,0)
 	CALL PLOTT7(X,Y,XFACT,YFACT,1,-6)
 100	CONTINUE
 	CALL SMY1(X,XFACT,YFACT,Y,YHI,YTIC,NSMTCY,
@@ -184,10 +191,8 @@ C
            CALL VECTRS
         ENDIF
 
-* Draw the axis line
-	CALL PLOT(X,YLO,0,0)
+	CALL PLOT(X,YLO,1,0)
 	CALL PLOT(X,YHI,1,0)
-
 C
 C	DRAW LABELS
 C
@@ -282,7 +287,7 @@ C (ITYPE=3 arg to SCINOT)
 	CALL NUMCDE(TEMP,YLAB,LETTER,NC,IFORMT,ydms)
 	
 	spacwid = 0.
-	do_shift = INDEX(YLAB, '#')  ! longitude or latitude labels
+	do_shift = ( INDEX(YLAB, '#') .GT. 0 )  ! longitude or latitude labels
 	IF (do_shift) spacwid = SYMWID(ABSSZ,1,'N')
 
 * Now make the labels. 
diff --git a/ppl/plotlib/yaxis2.F b/ppl/plotlib/yaxis2.F
index e3e5ccb..e6a4bd3 100644
--- a/ppl/plotlib/yaxis2.F
+++ b/ppl/plotlib/yaxis2.F
@@ -50,6 +50,7 @@ C                with "*(*)" for the linux port
 * *acm* - 6/01   changes to allow plot qualifiers to set log axes,
 *                inverse log axes and log depth axes.
 C V695 *acm*  5/15 Restore color after a graticule using defined color 0
+* *acm* - 8/16   ticket 1787: restore pen 0 correctly after graticule
 
 	CHARACTER YLAB*20,IFORMT*(*),YFRMT*12
 	COMMON/TICS/TSMX,TLX,TSMY,TLY,IX,IY
@@ -62,12 +63,19 @@ C V695 *acm*  5/15 Restore color after a graticule using defined color 0
         REAL dash2_1, dash2_2, dash2_3, dash2_4
         REAL hgrat(4,2)        ! line type: 0=tics only, <0=line, >0=dash lengths 
         REAL yt
-        INTEGER hcolor(*)      ! pen number 
-        INTEGER color0	       ! pen number for axis
+        INTEGER hcolor(*)      ! pen number for graticule lines
+        INTEGER color0         ! pen number to restore
         LOGICAL hline          ! If true, do the lines across.
         LOGICAL solid1,solid2  ! solid lines across at large, small tics
         LOGICAL dashed1, dashed2 ! dashed lines across at large, small tics
 
+        include 'parampl5_dat.decl'
+        include 'PARAMPL5.DAT'
+        include 'lines_inc.decl'
+        include 'LINES.INC'
+        INCLUDE 'pen_inc.decl'  ! with IPEN(1)
+        INCLUDE 'PEN.INC'
+
 C
 C     THIS ROUTINE PLOTS SEVERAL TYPES OF BASE 10 LOG YAXIS.
 C         X,XFACT,YFACT HAVE THEIR USUAL MEANINGS.
diff --git a/ppl/pplepic/epictrd.F b/ppl/pplepic/epictrd.F
index 756c02a..0881c1f 100644
--- a/ppl/pplepic/epictrd.F
+++ b/ppl/pplepic/epictrd.F
@@ -107,7 +107,7 @@ c
 	if (theader(2)(78:78) .ne. 'T') then
 		write (6,104) theader(2)(78:78)
 104		format (//' This is not time series data.',
-     *		' Header type is ', a, ' - STOP')
+     *                    ' Header type is ', a, ' - STOP')
 		stop
 	endif
 	rewind lun1
diff --git a/ppl/pplepic/epicvar.F b/ppl/pplepic/epicvar.F
index 490f0e4..bf5c538 100644
--- a/ppl/pplepic/epicvar.F
+++ b/ppl/pplepic/epicvar.F
@@ -83,16 +83,16 @@ c  Put out parameter list if parameter1 is ?
 c
 	    write (5,100)
 100	    format (' Pressure        P'/
-     1	                   ' Temperature     T'/
-     2	                   ' Salinity        SAL'/
-     3	                   ' Sigma-T         SIG'/
-     4	                   ' Oxygen          OX'/
-     5	                   ' Conductivity    CO'/
-     6	                   ' U               U'/
-     7	                   ' V               V'/
-     8	                   ' Dynamic Ht      DYN'/
-     9	                   ' Time            TIM'/
-     1	                   ' Stick Plots     STK'/)
+     1              ' Temperature     T'/
+     2              ' Salinity        SAL'/
+     3              ' Sigma-T         SIG'/
+     4              ' Oxygen          OX'/
+     5              ' Conductivity    CO'/
+     6              ' U               U'/
+     7              ' V               V'/
+     8              ' Dynamic Ht      DYN'/
+     9              ' Time            TIM'/
+     1              ' Stick Plots     STK'/)
 c
 c  If EVAR and no parameters, then use x=time, y=first variable after time
 c
diff --git a/ppl/tmap_inc/gkscm2.cmn b/ppl/tmap_inc/gkscm2.cmn
index 746c4b3..92de049 100644
--- a/ppl/tmap_inc/gkscm2.cmn
+++ b/ppl/tmap_inc/gkscm2.cmn
@@ -9,6 +9,7 @@
 * V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus
 * *acm* 1/13/12 For DP Ferret/ SP Pplus: explicitly declare REALs 
 *               as single-precision
+* *kms* 10/07/16 Remove pixx and pixy in PyFerret - no longer needed
 
         integer        ws_lun,tmp_wsid
         integer        tmp_lun
@@ -16,7 +17,6 @@
         integer        item_ndx_range,item_spectrum,item_protect
         integer        item_fill_ndx
         integer        lbtype,lbcolor
-        integer        pixx,pixy
 
         real*4         lbwidth,spline_tension
 
@@ -28,7 +28,7 @@
 
       common /gkscm2/ meta_file,gks_open,ws_lun,ws_file,item_gclrwk,
      .                item_ws_xform,tmp_wsid,tmp_lun,tmp_file,
-     .                lbtype,lbwidth,lbcolor,pixx,pixy,vpt_was_set,
+     .                lbtype,lbwidth,lbcolor,vpt_was_set,
      .                item_ndx_range,item_spectrum,item_protect,
      .                item_fill_ndx,item_pplpver,draftsman,
      .                save_on_exit,imgname_sent,spline_tension
diff --git a/ppl/tmapadds/SOURCE_FILES b/ppl/tmapadds/SOURCE_FILES
index 61bd85b..4898843 100644
--- a/ppl/tmapadds/SOURCE_FILES
+++ b/ppl/tmapadds/SOURCE_FILES
@@ -19,7 +19,6 @@ flowline_sub.F\
 flush_buffered_fillpoly.F\
 getlabfonts.F\
 get_ndx.F\
-get_pix.F\
 get_pyfont_settings.F\
 get_user_coords.F\
 get_world_coords.F\
@@ -61,7 +60,6 @@ set_pat_size.F\
 set_regular_plot.F\
 set_ribbon_ndx.F\
 set_t1_date.F\
-set_window_size.F\
 setax_syms.F\
 setfont.F\
 setlab_syms.F\
diff --git a/ppl/tmapadds/compute_mnstd.F b/ppl/tmapadds/compute_mnstd.F
index 65dad9c..a628fa1 100644
--- a/ppl/tmapadds/compute_mnstd.F
+++ b/ppl/tmapadds/compute_mnstd.F
@@ -49,6 +49,8 @@ C**
 *                 the Ferret side.
 * V698 *acm* 2/16 Re-fix 2186. The fix for 2311 broke the fix for 2186, so the test 
 *                 for data outside 3*std correction wasn't made.
+* V720 *acm* 2/17 Make sure zmin and zmax have been computed. May not be done yet for 
+*                 plot/vs/ribbon plots.
 
         IMPLICIT NONE
 	include 'parampl5_dat.decl'
@@ -78,26 +80,34 @@ C**
 
 	LOGICAL TM_FPEQ_SNGL, zmax_test, zmin_test, ok
 	REAL  zero, rbad
-	REAL*8 x, xmean, sum2, sumc, variance_c, xdelta, z_max_tol, z_min_tol
+	REAL*8 x, xmean, sum2, sumc, variance_c, xdelta, 
+     .         z_max_tol, z_min_tol, zlo, zhi
 	INTEGER i, n, n2
 
-c  Already have zmin, zmax
-
         IF (.not. need_std .AND. centered) THEN
 	   zstd = lev_std
 	   zmean = 0.
 	   GOTO 5000
 	ENDIF
 
+c  Already have zmin, zmax? (not true for ribbon plots...)
+
+	IF (zmin.EQ.0.0 .AND. zmax.EQ.0.0) THEN
+	   CALL MINMAX( z, nsize, badz, zlo, zhi )
+	   zmin = zlo
+	   zmax = zhi
+	ENDIF
+
 c if min and max are equal, will use linear levels. No need to issue the warning.
 
 	if (zmin .EQ. zmax) THEN
 	   zmean = zmin
 	   zstd = 0
-	   status = 0
+	   IF (need_std) status = 0
 	   GOTO 5000
 	ENDIF
 
+        IF (.not. need_std) GOTO 5000
 
 c Has the user set min or max levels to be used?
 c If so take those into account
diff --git a/ppl/tmapadds/key.F b/ppl/tmapadds/key.F
index 65d0aa6..346d3f9 100644
--- a/ppl/tmapadds/key.F
+++ b/ppl/tmapadds/key.F
@@ -111,12 +111,17 @@
 *                 don't let them run over each other. Locate the horizontal colorbar close to
 *                 the plot with labels above them. Behavior of args to SHAKEY is unchanged.
 * v686 *acm* 2/14 Fix ticket 2124: Do the fix for 2124 only here, not in subr. LEV.
+* Get labels on colorbar right if there is just one level.
+c	        IF (NL.EQ.1 .AND. J.LE.2) ZLEV(2) = zlev(1)
 * V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
 *                  For centered labels add a level to corresp to the upper bound of 
 *                  the top color on thecolorbar, excluding any upper inf triangle.
 * V6.95 *acm* 3/15 Changes for PyFerret fonts. Scoot the vertical color key over to the left.
 * V697 *acm* 12/15 Fix ticket 2326: single level plus (inf) and/or (-inf)
-* V7.0 *acm*  6/17 Fix ticket 2440: alignment of colorbar labels, vertical colorbars.
+* V7.0 *acm*  6/16 Fix ticket 2440: alignment of colorbar labels, vertical colorbars.
+* 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
 
         IMPLICIT NONE
 
@@ -144,14 +149,15 @@
 	include        'gkspar.inc'
 	include        'pyfonts.cmn'
 	
-	integer TM_LENSTR1, ndx,str_len,max_len,incr,lab_digits, nhi, ncount,
+	integer TM_LENSTR1, TM_LENSTR, 
+     .          ndx,str_len,max_len,incr,lab_digits, nhi, ncount,
      .          lab_add, nlab, i, kount, lev1, levn, nspace, shd_lev_hi,
-     .		ITYPEX_save, ITYPEY_save, ic
+     .		ITYPEX_save, ITYPEY_save, ic, num_dec, maxstr
 
 	real		SYMWID
 	real		x_inc,y_inc,px(4),py(4),rem,kpx(5),kpy(5),flaty(5),flatx(5)
 	real		xmaxx,ymaxx,vwidth,vheight,karht, ksiz_test
-	real		xx,yy,xxx,yyy, xx1, xxn, xxlen, wid, xpos
+	real		xx,yy,xxx,yyy, xx1, xxn, xxlen, wid, xpos, xp
         real            kx_lo_def, kx_hi_def, ky_lo_def, ky_hi_def,
      .                  val, del, x_inc_inf, y_inc_inf, frac, fixx, inc_min, 
      .                  center_add, ht_ann
@@ -160,7 +166,8 @@
      .			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, no_lines
+     .                  check_0, increase_digits, nofill, cont_key_keep, 
+     .                  no_lines, is_viewport, have_neg
 
 	external	TM_FMT_SNGL, TM_FMT_SNGL_DIGITS
 
@@ -228,6 +235,12 @@
         lab_add = 0
         increase_digits = .TRUE.
 
+	if (klab_incr .eq. 0) then
+	   incr = (shd_levels/25) + 1
+	else
+	   incr = klab_incr
+	end if
+
 	kount = 0
         DO WHILE (increase_digits .AND. ABS(lab_digits) .LE. klab_len .AND.kount.LT.10)
            buff = ' '
@@ -239,8 +252,10 @@
            READ (buff,*) val_last
            increase_digits = .FALSE.
 
-           max_len = 0
-	   DO 30 ndx = lev1+1, shd_levels
+           num_dec = 0
+           have_neg = .FALSE.
+	   max_len = 0
+	   DO 30 ndx = lev1+incr, shd_levels, incr
              val = zlev(ndx)
              IF (TM_FPEQ_SNGL(val,0.) .AND. check_0) val = 0.
 	     buff = 
@@ -250,6 +265,10 @@
              IF ( TM_DFPEQ(val_last, val_n) ) increase_digits = .TRUE.
              val_last = val_n
              IF (max_len .lt. str_len) max_len = str_len
+	     
+             i = INDEX(buff, '.')
+             IF (i .GT. 0) num_dec = MAX(num_dec, str_len-i)
+             have_neg = have_neg .OR. val.LT.0 
    30      CONTINUE
 
            IF (increase_digits) THEN
@@ -257,7 +276,7 @@
               IF (lab_digits .LT. 0) lab_digits = lab_digits - 1
               lab_add = lab_add + 1
            ENDIF
-	   kount = kount + 1
+           kount = kount + 1
         ENDDO
 
 	IF (vertical_key) GOTO 1000
@@ -266,7 +285,7 @@
 * Define default x and y lo and hi locations
 
         if (ppl_in_ferret) then
-           call get_view_size (vwidth,vheight)
+           call get_view_size (vwidth,vheight,is_viewport)
 
            IF (ITSA_AXIS_VIEW(1)) vheight = (ylen + yorg )* 1.15
 
@@ -363,10 +382,7 @@ c	IF ( no_lines ) cont_key = .TRUE.
 	 max_len = max_len+1  
 
 	if (klab_incr .eq. 0) then
-	   incr = (shd_levels/25) + 1
            IF (width/vwidth .GT. 1.5) incr = 2*incr
-	else
-	   incr = klab_incr
 	end if
 
 	karht = amin1 (xcsize*1000.0,
@@ -412,7 +428,7 @@ c	IF ( no_lines ) cont_key = .TRUE.
 	   ENDDO
 	   IF (karht .GT. ksiz_test) karht = ksiz_test
 	ENDIF
-
+	
 *	GENERATE THE KEY FOR EACH COLOR/SHADE
 	max_len = 0
 	val = zlev(lev1)
@@ -493,12 +509,36 @@ c	IF ( no_lines ) cont_key = .TRUE.
 
 *	   WRITE OUT CORRESPONDING VALUE
 
-             val = zlev(ndx)
-             IF (TM_FPEQ_SNGL(val,0.) .AND. check_0) val = 0.
-	     text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
+	   val = zlev(ndx)
+	   IF (TM_FPEQ_SNGL(val,0.) .AND. check_0) val = 0.
+	   text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
 
-             IF (ndx .EQ. 1 .AND. neginf) text = " "
-             IF (ndx .EQ. levn+1 .AND. posinf) text = " "
+	   IF (ndx .EQ. 1 .AND. neginf) text = " "
+	   IF (ndx .EQ. levn+1 .AND. posinf) text = " "
+
+* Add a .0 with the right number of 0's if the other labels have 
+* decimal-point .xx but this one does not.
+
+	   IF (num_dec.GT.0 .AND. INDEX(text, 'E').EQ.0 .AND. TM_LENSTR(text).GT.0) THEN
+	      IF (INDEX(text, '.') .EQ. 0) THEN
+	         text = text(:TM_LENSTR1(text))//'.0'
+	         IF (num_dec .GT. 1) THEN
+	            DO i = 2,num_dec
+		       text = text(:TM_LENSTR1(text))//'0'
+	            ENDDO
+	         ENDIF
+	         str_len = str_len + num_dec+1
+	      ENDIF
+
+	      IF (str_len.LT.max_len .AND. INDEX(text, 'E').EQ.0) THEN
+	         maxstr = max_len
+	         IF (have_neg .AND. val .GE. 0.) maxstr = maxstr - 1
+	         DO i = str_len+1, maxstr
+		    text = text(:TM_LENSTR1(text))//'0'
+	         ENDDO
+	         IF (str_len+1 .LT. maxstr) str_len = max_len
+	      ENDIF
+	   ENDIF
 
 	   xx = (kx_lo + x_inc*(center_add+real(ndx-1)))/1000.0
      .		 - karht*real(str_len)/2.0 - xorg
@@ -540,7 +580,7 @@ c	IF ( no_lines ) cont_key = .TRUE.
 
 
         if (ppl_in_ferret) then
-           call get_view_size (vwidth,vheight)
+           call get_view_size (vwidth,vheight,is_viewport)
 
            IF (ITSA_AXIS_VIEW(1)) vwidth = (xlen + xorg )* 1.15
            if (vwidth .le. xlen + xorg) goto 2000
@@ -635,20 +675,8 @@ c	IF ( no_lines ) cont_key = .TRUE.
 	end if
 
 	if (klab_incr .eq. 0) then
-	   incr = (shd_levels/25) + 1
            IF (height/vheight.GT.1.5 .AND. shd_levels.GT.4) incr = 2*incr   ! short plot, fewer labels
-	else
-	   incr = klab_incr
 	end if
-	
-! The default locations often make the labels run off to the right. 
-! Check for this and move the key over
-
-	IF ((kx_hi_def/1000 + max_len*karht ) .GT. width) THEN
-	   fixx = (kx_hi_def/1000 + max_len*karht  - width) *1000
-           kx_lo_def = kx_lo_def - fixx
-           kx_hi_def = kx_hi_def - fixx
-        ENDIF
 
 *	GENERATE THE KEY FOR EACH COLOR/SHADE
 	max_len = 0
@@ -738,8 +766,10 @@ c	IF ( no_lines ) cont_key = .TRUE.
 
 * Recompute max_len as formatted for these labels.
 
+	num_dec = 0
+	have_neg = .FALSE.
 	max_len = 0
-	DO ndx = lev1+1, shd_levels
+	DO ndx = lev1+incr, shd_levels, incr
            val = zlev(ndx)
            IF (TM_FPEQ_SNGL(val,0.) .AND. check_0) val = 0.
 	   buff = 
@@ -748,22 +778,22 @@ c	IF ( no_lines ) cont_key = .TRUE.
 	      max_len = str_len
 	      txt_out = buff
 	   ENDIF
+	   i = INDEX(buff, '.')
+	   IF (i .GT. 0) num_dec = MAX(num_dec, str_len-i)
+	   have_neg = have_neg .OR. val.LT.0
 	ENDDO
 	buff = txt_out
 
 ! Use SYMWID to right-justify
 ! Set xpos = position of end of string, right-justify from there.
-! The hershey font needs some tweaking.
 
         xpos = kpx(2)/ 1000.0 - xorg
 
         IF ((kuser_loc(1) .OR. kuser_loc(2))) xpos = (kx_hi + x_inc)/ 1000. - xorg
 	   
-        max_len = TM_LENSTR1(buff)
         txt_out = buff(:max_len)//'X'   ! extra space between key and label
-        max_len = TM_LENSTR1(txt_out)
 
-        wid = SYMWID(karht,max_len,txt_out(:max_len))
+        wid = SYMWID(karht,max_len+1,txt_out(:max_len))
         xpos = xpos + wid
 
 * If klab_size negative put the key labels on the left rather than 
@@ -772,31 +802,35 @@ c	IF ( no_lines ) cont_key = .TRUE.
         IF (klab_size .LT. 0) THEN
            wid = SYMWID(karht,1,'X')
            xpos = kx_lo/1000.0 - xorg - wid
-        ENDIF
+	ENDIF
 
-* If the user set the label size, leave it.  Otherwise make labels smaller
-* to try to fit them on the page.
+* If the user set the label size, leave it. If we are drawing in a viewport,
+* leave the label sizes as-is.  The user can control whether the labels may
+* run into the next viewport or a margin. Otherwise make labels smaller to 
+* try to fit them on the page.
 
-        IF (klab_size .NE. 0) THEN
-	      IF (xpos+xorg .GT. vwidth) xpos = vwidth - xorg - 0.1*karht
-        ELSE
+        IF (klab_size.EQ.0 .AND. .NOT.is_viewport .AND. xpos+xorg.GT.vwidth) THEN
 
            ic = 0
            DO WHILE (xpos+xorg .GT. vwidth .AND. ic.LT.5)
 
-              xpos = kpx(2)/ 1000.0 - xorg
-              IF ((kuser_loc(1) .OR. kuser_loc(2))) xpos = (kx_hi + x_inc)/ 1000. - xorg
+              xp = kpx(2)/ 1000.0 - xorg
+              IF ((kuser_loc(1) .OR. kuser_loc(2))) xp = (kx_hi + x_inc)/ 1000. - xorg
               karht = 0.9* karht
 	      
               wid = SYMWID(karht,max_len,buff(:max_len))
-              xpos = xpos + wid
+              xp = xp + wid
               ic = ic + 1
               IF (karht .LT. 0.06) THEN 
-		    xpos = vwidth - xorg - 0.1*karht
+		    xp = vwidth - xorg - 0.1*karht
 		    EXIT ! from loop
               ENDIF
+	      xp = kpx(2)/ 1000.0 - xorg
+
            ENDDO
-        ENDIF
+
+           xpos = kpx(2)/ 1000.0 - xorg + wid
+	ENDIF
 
         do 1020 ndx = lev1,shd_lev_hi,incr
 *	   WRITE OUT CORRESPONDING VALUE
@@ -806,6 +840,30 @@ c	IF ( no_lines ) cont_key = .TRUE.
 	   IF (ndx .EQ. 1 .AND. neginf) text = " "
 	   IF (ndx .EQ. levn+1 .AND. posinf) text = " "
 
+* Add a .0 with the right number of 0's if the other labels have 
+* decimal-point .xx but this one does not
+
+	   IF (num_dec.GT.0 .AND. INDEX(text, 'E').EQ.0 .AND. TM_LENSTR(text).GT.0) THEN
+	      IF (INDEX(text, '.') .EQ. 0) THEN
+	         text = text(:TM_LENSTR1(text))//'.0'
+	         IF (num_dec .GT. 1) THEN
+	            DO i = 2,num_dec
+		       text = text(:TM_LENSTR1(text))//'0'
+	            ENDDO
+	         ENDIF
+	         str_len = str_len + num_dec+1
+	      ENDIF
+
+	      IF (str_len.LT.max_len .AND. INDEX(text, 'E').EQ.0) THEN
+	         maxstr = max_len
+	         IF (have_neg .AND. val .GE. 0.) maxstr = maxstr - 1
+	         DO i = str_len+1, maxstr
+		    text = text(:TM_LENSTR1(text))//'0'
+	         ENDDO
+	         IF (str_len+1 .LT. maxstr) str_len = max_len
+	      ENDIF
+	   ENDIF
+
 * Right-justify them.
 
 	   txt_out = text
diff --git a/ppl/tmapadds/set_window_size.F b/ppl/tmapadds/set_window_size.F
deleted file mode 100644
index 54d97d6..0000000
--- a/ppl/tmapadds/set_window_size.F
+++ /dev/null
@@ -1,70 +0,0 @@
-        SUBROUTINE SET_WINDOW_SIZE (ws_id,xmin,xmax,ymin,ymax)
-
-*
-*
-*  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. 
-*
-*
-*      Routine to handle resizing windows -- uses GSWKVP for DEC GKS and 
-*      GUESC -5304 in ATC GKS.  ATC doesn't resize the window with GSWKVP.
-*      J Davison 3.24.92
-*      Mod 8.27.93 to handle XGKS resizing
-*      Mod 3.15.94 *jd* to call X event processing 
-*      *sh* 3.5.97 Mod to support metafile-only (no X) output through a
-*                cuckoo's egg implantation of meta_wsid in place of wsid
-*      *acm* 8/27/04 New returns from resize_xgks_window; pixx,pixy which are
-*                    the size of the window in pixels.  Save these in common 
-*                    gkscm2.cmn, so that in gif and batch modes we can return 
-*                    them in symbols PPL$XPIXEL and PPL$YPIXEL.
-* V6.8 *acm* 7/9/2012 For batch graphics on RHEL6, change ITS_BATCH_GRAPHICS
-*                     from logical to integer, then batch = ITS_BATCH_GRAPHICS().NE.0
-*
-
-        IMPLICIT NONE
-        INCLUDE 'gkspar.inc'
-        INCLUDE 'ws_types.cmn'
-        INCLUDE 'gkscm2.cmn'
-        INCLUDE 'fgrdel.cmn'
-
-        INTEGER ws_id
-        REAL*4  xmin, xmax, ymin, ymax
-
-*       set the window size
-        CALL FGD_GSWKVP(ws_id, xmin, xmax, ymin, ymax);
-*       pixx and pixy used for PPL$XPIXEL and PPL$YPIXEL
-        pixx = NINT((xmax - xmin) * windowdpix(ws_id) * 100.0 / 2.54);
-        pixy = NINT((ymax - ymin) * windowdpiy(ws_id) * 100.0 / 2.54);
-
-        RETURN
-        END
-
diff --git a/ppl/tmapadds/setlab_syms.F b/ppl/tmapadds/setlab_syms.F
index d5872e4..d8149d6 100644
--- a/ppl/tmapadds/setlab_syms.F
+++ b/ppl/tmapadds/setlab_syms.F
@@ -67,16 +67,17 @@
 
 * Internal arguments
 
-      REAL zmax, zmin, dz, diff
+      REAL zmax, zmin, dz, diff, eps
 
       CHARACTER ppl_buff*2048, TM_FMT_SNGL*10, buff*10, symbuff*120
       INTEGER TM_LENSTR1, STR_SAME, i, ier, ilen, slen, ist
-      LOGICAL TM_FPEQ_SNGL, reglevs
+      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'
 
       ppl_buff = 'LEV_MIN '//buff
       ilen = TM_LENSTR1(ppl_buff)
@@ -86,6 +87,10 @@
 
       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
       ilen = TM_LENSTR1(ppl_buff)
@@ -124,7 +129,7 @@
             reglevs = .TRUE.
             DO 100 i=3,nlevels
                diff = ABS( zlevels(i)-zlevels(i-1) )
-               reglevs = TM_FPEQ_SNGL(diff, dz)
+               reglevs = TM_FPEQ_EPS_SNGL(eps, diff, dz)
 	       IF (.NOT.reglevs) GOTO 110
   100       CONTINUE
   110       IF (reglevs) THEN
diff --git a/ppl/tmapadds/shade_sub.F b/ppl/tmapadds/shade_sub.F
index 69fd64e..a4fc369 100644
--- a/ppl/tmapadds/shade_sub.F
+++ b/ppl/tmapadds/shade_sub.F
@@ -104,6 +104,7 @@ C V602 *acm* 2/07 check status coming out of CURV_COORD_RANGE; part of fix to bu
 * V603 *acm* 5/07 Fix part 1 of bug 1302; if xmodulo is true, then set dim1_modulo true.
 * V6.8 *acm* 7/9/2012 For batch graphics on RHEL6, change ITS_BATCH_GRAPHICS
 *                     from logical to integer, then batch = ITS_BATCH_GRAPHICS().NE.0
+* V701 *acm* 7/17 ticket 2451: cellarray plots with axis direction reversed by /VLIM or /HLIM
 
         IMPLICIT NONE
 	INCLUDE		'parampl5_dat.decl'
@@ -301,7 +302,11 @@ c*       side from xeq_shade.
 * color map, either the first plot on the page, or if a PPL SHASET RESET has 
 * been issued.
 
-      do_cell = use_cell .AND. (lo_color_ndx(wsid).EQ.num_line_colors+1)
+* For ticket 2451: When the axes are reversed, the cellarray call draws nothing.
+* Also refuse to make the call in this case.
+
+      do_cell = use_cell .AND. (lo_color_ndx(wsid).EQ.num_line_colors+1) .AND. 
+     .    xinv.EQ.1 .AND. yinv.EQ.1
 
       IF (do_cell) THEN
       
diff --git a/pviewmod/__init__.py b/pviewmod/__init__.py
index f8e2a42..da7e231 100644
--- a/pviewmod/__init__.py
+++ b/pviewmod/__init__.py
@@ -8,9 +8,13 @@ This package was developed by the Thermal Modeling and Analysis Project
 Pacific Marine Environmental Lab (PMEL).
 '''
 
-from multiprocessing import Pipe
+from __future__ import print_function
+
 import sys
 
+from multiprocessing import Pipe
+
+
 class PipedViewer(object):
     '''
     Creates and starts a PipedViewer of one of the supported viewer 
@@ -24,24 +28,24 @@ class PipedViewer(object):
         using submitCommand.
 
         Currently supported viewer types are:
-            "PipedViewerPQ": PipedViewerPQ using PyQt4
-            "PipedImagerPQ": PipedImagerPQ using PyQt4
+            "PipedViewerPQ": PipedViewerPQ using PyQt5 or PyQt4
+            "PipedImagerPQ": PipedImagerPQ using PyQt5 or PyQt4
         '''
         super(PipedViewer, self).__init__()
         (self.__cmndrecvpipe, self.__cmndsendpipe) = Pipe(False)
         (self.__rspdrecvpipe, self.__rspdsendpipe) = Pipe(False)
         if viewertype == "PipedViewerPQ":
             try:
-                from pipedviewerpq import PipedViewerPQProcess
+                from pipedviewer.pipedviewerpq import PipedViewerPQProcess
             except ImportError:
-                raise TypeError("The PQ viewers requires PyQt4")
+                raise TypeError("The PQ viewers requires PyQt5 or PyQt4")
             self.__vprocess = PipedViewerPQProcess(self.__cmndrecvpipe,
                                                    self.__rspdsendpipe)
         elif viewertype == "PipedImagerPQ":
             try:
-                from pipedimagerpq import PipedImagerPQProcess
+                from pipedviewer.pipedimagerpq import PipedImagerPQProcess
             except ImportError:
-                raise TypeError("The PQ viewers requires PyQt4")
+                raise TypeError("The PQ viewers requires PyQt5 or PyQt4")
             self.__vprocess = PipedImagerPQProcess(self.__cmndrecvpipe,
                                                    self.__rspdsendpipe)
         else:
@@ -83,7 +87,7 @@ class PipedViewer(object):
         return self.__vprocess.exitcode
 
 
-if __name__ == "__main__":
+def _testviewers():
     # vertices of a pentagon (roughly) centered in a 1000 x 1000 square
     pentagonpts = ( (504.5, 100.0), (100.0, 393.9),
                     (254.5, 869.4), (754.5, 869.4),
@@ -224,8 +228,8 @@ if __name__ == "__main__":
                         "<b>Final</b> annotation line" )
 
     # Test each known viewer.
-    for viewername in ( "PipedViewerPQ", "PipedImagerPQ", "NoDisplayPQ" ):
-        print "Testing Viewer %s" % viewername
+    for viewername in ( "PipedViewerPQ", "PipedImagerPQ" ):
+        print("Testing Viewer %s" % viewername)
         # create the viewer
         pviewer = PipedViewer(viewername)
         mydrawcmnds = drawcmnds[:]
@@ -243,18 +247,24 @@ if __name__ == "__main__":
         
         # submit the commands, pausing after each "show" command
         for cmd in mydrawcmnds:
-            print "Command: %s" % str(cmd)
+            print("Command: %s" % str(cmd))
             pviewer.submitCommand(cmd)
             response = pviewer.checkForResponse()
             while response:
-                print "Response: %s" % str(response)
+                print("Response: %s" % str(response))
                 response = pviewer.checkForResponse()
             if cmd["action"] == "show":
-                raw_input("Press Enter to continue")
+                if sys.version_info[0] > 2:
+                    input("Press Enter to continue")
+                else:
+                    raw_input("Press Enter to continue")
         # end of the commands - shut down and check return value
         pviewer.waitForViewerExit()
         result = pviewer.getViewerExitCode()
         if result != 0:
             sys.exit(result)
         else:
-            print "Done with %s" % viewername
+            print("Done with %s" % viewername)
+
+if __name__ == "__main__":
+    _testviewers()
diff --git a/pviewmod/cmndhelperpq.py b/pviewmod/cmndhelperpq.py
index da92a3f..29f8c02 100644
--- a/pviewmod/cmndhelperpq.py
+++ b/pviewmod/cmndhelperpq.py
@@ -7,8 +7,29 @@ Project (TMAP) of the National Oceanographic and Atmospheric
 Administration's (NOAA) Pacific Marine Environmental Lab (PMEL).
 '''
 
-from PyQt4.QtCore import Qt, QPointF, QSizeF
-from PyQt4.QtGui import QBrush, QColor, QFont, QPainterPath, QPen
+import sys
+
+if sys.version_info[0] > 2:
+    # First try to import PyQt5, then try PyQt4 if that fails
+    try:
+        import PyQt5
+        QT_VERSION = 5
+    except ImportError:
+        import PyQt4
+        QT_VERSION = 4
+else:
+    # PyQt5 requires Python3.x, so only try PyQt4
+    import PyQt4
+    QT_VERSION = 4
+
+# Now that the PyQt version is determined, import the parts
+# allowing any import errors to propagate out
+if QT_VERSION == 5:
+    from PyQt5.QtCore import Qt, QPointF, QSizeF
+    from PyQt5.QtGui  import QBrush, QColor, QFont, QPainterPath, QPen
+else:
+    from PyQt4.QtCore import Qt, QPointF, QSizeF
+    from PyQt4.QtGui  import QBrush, QColor, QFont, QPainterPath, QPen
 
 
 class SidesRectF(object):
@@ -209,8 +230,7 @@ class CmndHelperPQ(object):
             elif mystyle == "diagcross":
                 mystyle = Qt.DiagCrossPattern
             else:
-                raise ValueError( self.__viewer.tr( \
-                      "Unknown brush style %1").arg(str(mystyle)) )
+                raise ValueError("Unknown brush style '%s'" % str(mystyle))
             mybrush.setStyle(mystyle)
         except KeyError:
             pass
@@ -258,8 +278,7 @@ class CmndHelperPQ(object):
             elif mystyle == "dashdotdot":
                 mystyle = Qt.DashDotDotLine
             else:
-                raise ValueError( self.__viewer.tr( \
-                      "Unknown pen style %1").arg(str(mystyle)) )
+                raise ValueError("Unknown pen style '%s'" % str(mystyle))
             mypen.setStyle(mystyle)
         except KeyError:
             pass
@@ -272,8 +291,7 @@ class CmndHelperPQ(object):
             elif mystyle == "round":
                 mystyle = Qt.RoundCap
             else:
-                raise ValueError( self.__viewer.tr( \
-                      "Unknown pen cap style %1").arg(str(mystyle)) )
+                raise ValueError("Unknown pen cap style '%s'" % str(mystyle))
             mypen.setCapStyle(mystyle)
         except KeyError:
             pass
@@ -286,8 +304,7 @@ class CmndHelperPQ(object):
             elif mystyle == "round":
                 mystyle = Qt.RoundJoin
             else:
-                raise ValueError( self.__viewer.tr( \
-                      "Unknown pen join style %1").arg(str(mystyle)) )
+                raise ValueError("Unknown pen join style '%s'" % str(mystyle))
             mypen.setJoinStyle(mystyle)
         except KeyError:
             pass
diff --git a/pviewmod/pipedimagerpq.py b/pviewmod/pipedimagerpq.py
index 1bac1af..d52c5e6 100644
--- a/pviewmod/pipedimagerpq.py
+++ b/pviewmod/pipedimagerpq.py
@@ -13,25 +13,52 @@ Project (TMAP) of the National Oceanographic and Atmospheric
 Administration's (NOAA) Pacific Marine Environmental Lab (PMEL).
 '''
 
+from __future__ import print_function
+
+import sys
+import os
+import time
+import signal
+
 import sip
 try:
     sip.setapi('QVariant', 2)
 except AttributeError:
     pass
 
-from PyQt4.QtCore import Qt, QPointF, QRectF, QSize, QString, QTimer
-from PyQt4.QtGui  import QAction, QApplication, QBrush, QColor, QDialog, \
-                         QFileDialog, QImage, QLabel, QMainWindow, \
-                         QMessageBox, QPainter, QPalette, QPen, QPixmap, \
-                         QPolygonF, QPushButton, QScrollArea
+if sys.version_info[0] > 2:
+    # First try to import PyQt5, then try PyQt4 if that fails
+    try:
+        import PyQt5
+        QT_VERSION = 5
+    except ImportError:
+        import PyQt4
+        QT_VERSION = 4
+else:
+    # PyQt5 requires Python3.x, so only try PyQt4
+    import PyQt4
+    QT_VERSION = 4
+
+# Now that the PyQt version is determined, import the parts
+# allowing any import errors to propagate out
+if QT_VERSION == 5:
+    from PyQt5.QtCore    import Qt, QPointF, QRectF, QSize, QTimer
+    from PyQt5.QtGui     import QBrush, QColor, QImage, QPainter, \
+                                QPalette, QPen, QPixmap, QPolygonF
+    from PyQt5.QtWidgets import QAction, QApplication, QDialog, \
+                                QFileDialog, QLabel, QMainWindow, \
+                                QMessageBox, QPushButton, QScrollArea
+else:
+    from PyQt4.QtCore import Qt, QPointF, QRectF, QSize, QTimer
+    from PyQt4.QtGui  import QAction, QApplication, QBrush, QColor, QDialog, \
+                             QFileDialog, QImage, QLabel, QMainWindow, \
+                             QMessageBox, QPainter, QPalette, QPen, QPixmap, \
+                             QPolygonF, QPushButton, QScrollArea
 
-from cmndhelperpq import CmndHelperPQ
-from scaledialogpq import ScaleDialogPQ
 from multiprocessing import Pipe, Process
-import sys
-import time
-import os
-import signal
+
+from pipedviewer.cmndhelperpq import CmndHelperPQ
+from pipedviewer.scaledialogpq import ScaleDialogPQ
 
 
 class PipedImagerPQ(QMainWindow):
@@ -44,9 +71,7 @@ class PipedImagerPQ(QMainWindow):
           "filename":"ferret.png",
           "fileformat":"png" }
 
-    The command { "action":"exit" } will shutdown the viewer and is
-    the only way the viewer can be closed.  GUI actions can only hide
-    the viewer.
+    The command { "action":"exit" } will shutdown the viewer.
     '''
 
     def __init__(self, cmndpipe, rspdpipe):
@@ -119,9 +144,6 @@ class PipedImagerPQ(QMainWindow):
         self.__aboutqtact = QAction(self.tr("About &Qt"), self,
                                 statusTip=self.tr("Show information about the Qt library"),
                                 triggered=self.aboutQtMsg)
-        self.__exitact = QAction(self.tr("&Exit"), self,
-                                statusTip=self.tr("Shut down the viewer"),
-                                triggered=self.exitViewer)
         self.createMenus()
         # set the initial size of the viewer
         self.__framedelta = 4
@@ -146,13 +168,9 @@ class PipedImagerPQ(QMainWindow):
         sceneMenu.addAction(self.__scaleact)
         sceneMenu.addAction(self.__saveact)
         sceneMenu.addAction(self.__redrawact)
-        # sceneMenu.addSeparator()
-        # sceneMenu.addAction(self.__hideact)
         helpMenu = menuBar.addMenu(menuBar.tr("&Help"))
         helpMenu.addAction(self.__aboutact)
         helpMenu.addAction(self.__aboutqtact)
-        helpMenu.addSeparator()
-        helpMenu.addAction(self.__exitact)
 
     def resizeEvent(self, event):
         '''
@@ -171,21 +189,22 @@ class PipedImagerPQ(QMainWindow):
 
     def closeEvent(self, event):
         '''
-        Override so the viewer cannot be closed from the
-        user selecting the windowframe close ('X') button.
-        Instead only hide the window.
+        Override so will just minimize if not shutting down
         '''
-        if self.__shuttingdown:
+        # If shutting down or minimized (escape hatch), 
+        # go ahead and close/exit
+        if self.__shuttingdown or self.isMinimized():
+            self.__timer.stop()
             event.accept()
-        else:
-            event.ignore()
-            self.hide()
+            return
+        # Otherwise just minimize the window
+        event.ignore()
+        self.showMinimized()
 
     def exitViewer(self):
         '''
         Close and exit the viewer.
         '''
-        self.__timer.stop()
         self.__shuttingdown = True
         self.close()
 
@@ -200,11 +219,12 @@ class PipedImagerPQ(QMainWindow):
             "The controlling application, however, may be unaware " \
             "of these modifications made to the image. " \
             "\n\n" \
-            "Normally, the controlling program will exit the viewer " \
-            "when it is no longer needed.  The Help -> Exit menu item " \
-            "should not normally be used.  It is provided when problems " \
-            "occur and the controlling program cannot shut down the " \
-            "viewer properly. " \
+            "'Closing' this window (the window frame 'X' button) " \
+            "actually only minimizes this viewer as PyFerret expects " \
+            "it to exist until PyFerret closes it.  Selecting the " \
+            "close menu option from the *minimized* window (using " \
+            "a right mouse click) will actually close (exit) the " \
+            "viewer if PyFerret exited and left it up.  " \
             "\n\n" \
             "PipedImagerPQ was developed by the Thermal Modeling and Analysis " \
             "Project (TMAP) of the National Oceanographic and Atmospheric " \
@@ -383,8 +403,8 @@ class PipedImagerPQ(QMainWindow):
             QApplication.restoreOverrideCursor()
             raise ValueError("invalid length of an image data block")
         # update the status message to show progress
-        self.statusBar().showMessage( self.tr("Loading new image (block %1 of %2)") \
-                                          .arg(str(myblocknum)).arg(str(mynumblocks)) )
+        self.statusBar().showMessage( self.tr("Loading new image (block %s of %s)" % \
+                                              (str(myblocknum),str(mynumblocks))) )
         # assign the data
         self.__scenedata[mystartindex:myendindex] = myblockdata
         # if this is the last block of data, create and display the scene image
@@ -430,8 +450,8 @@ class PipedImagerPQ(QMainWindow):
         the window size is changed by the user and auto-scaling is turn on.
 
         Returns:
-            True if the scene was resized
-            False if the a new resize command was issued
+            True if scaling of this scene is done (no window resize)
+            False if the a window resize command was issued
         '''
         barheights = self.menuBar().height() + self.statusBar().height()
 
@@ -470,45 +490,59 @@ class PipedImagerPQ(QMainWindow):
         already scaled, that scaling is "removed" before this scaling
         factor is applied.  If resizewin is True, the main window is 
         resized to accommodate this new scaled scene size.
-        '''
-        newfactor = float(factor)
-        newlabwidth = int(newfactor * self.__scenewidth + 0.5)
-        newlabheight = int(newfactor * self.__sceneheight + 0.5)
-        if (newlabwidth < self.__minsize) or (newlabheight < self.__minsize):
-            # Set to minimum size
-            if self.__scenewidth <= self.__sceneheight:
-                newfactor = float(self.__minsize) / float(self.__scenewidth)
-            else:
-                newfactor = float(self.__minsize) / float(self.__sceneheight)
+
+        If factor is zero, just switch to auto-scaling at the current
+        window size.  If factor is negative, rescale using the absolute
+        value (possibly resizing the window) then switch to auto-scaling.
+        '''
+        fltfactor = float(factor)
+        if fltfactor != 0.0:
+            if resizewin:
+                # from command - turn off autoscaling for the following
+                # then turn back on if appropriate
+                self.__autoscale = False
+            newfactor = abs(fltfactor)
             newlabwidth = int(newfactor * self.__scenewidth + 0.5)
             newlabheight = int(newfactor * self.__sceneheight + 0.5)
-        oldlabwidth = int(self.__scalefactor * self.__scenewidth + 0.5)
-        oldlabheight = int(self.__scalefactor * self.__sceneheight + 0.5)
-        if (newlabwidth != oldlabwidth) or (newlabheight != oldlabheight):
-            # Set the new scaling factor
-            self.__scalefactor = newfactor
-            # Update the scene label using the current clearing color and image
-            QApplication.setOverrideCursor(Qt.WaitCursor)
-            self.statusBar().showMessage( self.tr("Scaling image") )
-            try:
-                self.updateScene()
-            finally:
-                self.statusBar().clearMessage()
-                QApplication.restoreOverrideCursor()
-        if resizewin:
-            # resize the main window (if possible)
-            barheights = self.menuBar().height() + self.statusBar().height()
-            mwheight = newlabheight + barheights + self.__framedelta
-            mwwidth = newlabwidth + self.__framedelta
-            # Do not exceed the available real estate on the screen.
-            # If autoscaling is in effect, the resize will trigger 
-            # any required adjustments.
-            scrnrect = QApplication.desktop().availableGeometry()
-            if mwwidth > 0.95 * scrnrect.width():
-                mwwidth = int(0.9 * scrnrect.width() + 0.5)
-            if mwheight > 0.95 * scrnrect.height():
-                mwheight = int(0.9 * scrnrect.height() + 0.5)
-            self.resize(mwwidth, mwheight)
+            if (newlabwidth < self.__minsize) or (newlabheight < self.__minsize):
+                # Set to minimum size
+                if self.__scenewidth <= self.__sceneheight:
+                    newfactor = float(self.__minsize) / float(self.__scenewidth)
+                else:
+                    newfactor = float(self.__minsize) / float(self.__sceneheight)
+                newlabwidth = int(newfactor * self.__scenewidth + 0.5)
+                newlabheight = int(newfactor * self.__sceneheight + 0.5)
+            oldlabwidth = int(self.__scalefactor * self.__scenewidth + 0.5)
+            oldlabheight = int(self.__scalefactor * self.__sceneheight + 0.5)
+            if (newlabwidth != oldlabwidth) or (newlabheight != oldlabheight):
+                # Set the new scaling factor
+                self.__scalefactor = newfactor
+                # Update the scene label using the current clearing color and image
+                QApplication.setOverrideCursor(Qt.WaitCursor)
+                self.statusBar().showMessage( self.tr("Scaling image") )
+                try:
+                    self.updateScene()
+                finally:
+                    self.statusBar().clearMessage()
+                    QApplication.restoreOverrideCursor()
+            if resizewin:
+                # resize the main window (if possible)
+                barheights = self.menuBar().height() + self.statusBar().height()
+                mwheight = newlabheight + barheights + self.__framedelta
+                mwwidth = newlabwidth + self.__framedelta
+                # Do not exceed the available real estate on the screen.
+                # If autoscaling is in effect, the resize will trigger 
+                # any required adjustments.
+                scrnrect = QApplication.desktop().availableGeometry()
+                if mwwidth > 0.95 * scrnrect.width():
+                    mwwidth = int(0.9 * scrnrect.width() + 0.5)
+                if mwheight > 0.95 * scrnrect.height():
+                    mwheight = int(0.9 * scrnrect.height() + 0.5)
+                self.resize(mwwidth, mwheight)
+        if fltfactor <= 0.0:
+            # From command - turn on autoscaling
+            self.__autoscale = True
+            self.autoScaleScene();
 
     def inquireSaveFilename(self):
         '''
@@ -529,30 +563,40 @@ class PipedImagerPQ(QMainWindow):
                           self.tr("XPM - X11 Pixmap (*.xpm)") ),
                         ( "xbm",
                           self.tr("XBM - X11 Bitmap (*.xbm)") ), ]
-        # tr returns QStrings so the following does not work
-        # filters = ";;".join( [ t[1] for t in formattypes ] )
-        filters = QString(formattypes[0][1])
-        for typePair in formattypes[1:]:
-            filters.append(";;")
-            filters.append(typePair[1])
-        # getSaveFileNameAndFilter does not want to accept a default filter
-        # for (fmt, fmtQName) in formattypes:
-        #     if self.__lastformat == fmt:
-        #         dfltfilter = fmtQName
-        #         break
-        # else:
-        #     dfltfilter = formattypes[0][1]
-        # getSaveFileNameAndFilter is a PyQt (but not Qt?) method
-        (fileName, fileFilter) = QFileDialog.getSaveFileNameAndFilter(self,
-                                      self.tr("Save the current image as "),
-                                      self.__lastfilename, filters)
-        if fileName:
+        if QT_VERSION == 5:
+            # tr returns Python strings in PyQt5/Python3
+            filters = ";;".join( [ t[1] for t in formattypes ] )
             for (fmt, fmtQName) in formattypes:
-                if fmtQName.compare(fileFilter) == 0:
-                    fileFormat = fmt
+                if self.__lastformat == fmt:
+                    dfltfilter = fmtQName
                     break
             else:
-                raise RuntimeError("Unexpected file format name '%s'" % fileFilter)
+                dfltfilter = formattypes[0][1]
+            (fileName, fileFilter) = QFileDialog.getSaveFileName(self,
+                self.tr("Save the current image as "), self.__lastfilename, filters, dfltfilter)
+            if fileName:
+                for (fmt, fmtQName) in formattypes:
+                    if fmtQName == fileFilter:
+                        fileFormat = fmt
+                        break
+                else:
+                    raise RuntimeError("Unexpected file format name '%s'" % fileFilter)
+        else:
+            # tr returns QStrings in PyQt4
+            filters = formattypes[0][1]
+            for typePair in formattypes[1:]:
+                filters.append(";;")
+                filters.append(typePair[1])
+            (fileName, fileFilter) = QFileDialog.getSaveFileNameAndFilter(self,
+                 self.tr("Save the current image as "), self.__lastfilename, filters)
+            if fileName:
+                for (fmt, fmtQName) in formattypes:
+                    if fmtQName.compare(fileFilter) == 0:
+                        fileFormat = fmt
+                        break
+                else:
+                    raise RuntimeError("Unexpected file format name '%s'" % fileFilter)
+        if fileName:
             self.saveSceneToFile(fileName, fileFormat, None, None)
             self.__lastfilename = fileName
             self.__lastformat = fileFormat
@@ -621,7 +665,8 @@ class PipedImagerPQ(QMainWindow):
             mypainter.drawImage(trgrect, self.__sceneimage, srcrect, Qt.AutoColor)
             mypainter.end()
             # save the image to file
-            myimage.save(myfilename, myformat)
+            if not myimage.save(myfilename, myformat):
+                raise ValueError("Unable to save the plot as " + myfilename)
         finally:
             self.statusBar().clearMessage()
             QApplication.restoreOverrideCursor()
@@ -651,10 +696,13 @@ class PipedImagerPQ(QMainWindow):
             # EOFError should never arise from recv since
             # the call is after poll returns True
             (exctype, excval) = sys.exc_info()[:2]
-            if excval:
-                self.__rspdpipe.send("**ERROR %s: %s" % (str(exctype), str(excval)))
-            else:
-                self.__rspdpipe.send("**ERROR %s" % str(exctype))
+            try:
+                if excval:
+                    self.__rspdpipe.send("**ERROR %s: %s" % (str(exctype), str(excval)))
+                else:
+                    self.__rspdpipe.send("**ERROR %s" % str(exctype))
+            except Exception:
+                pass
             self.exitViewer()
 
     def processCommand(self, cmnd):
@@ -666,7 +714,7 @@ class PipedImagerPQ(QMainWindow):
         try:
             cmndact = cmnd["action"]
         except KeyError:
-            raise ValueError("Unknown command %s" % str(cmnd))
+            raise ValueError("Unknown command '%s'" % str(cmnd))
 
         if cmndact == "clear":
             try:
@@ -677,7 +725,7 @@ class PipedImagerPQ(QMainWindow):
         elif cmndact == "exit":
             self.exitViewer()
         elif cmndact == "hide":
-            self.hide()
+            self.showMinimized()
         elif cmndact == "screenInfo":
             scrnrect = QApplication.desktop().availableGeometry()
             info = ( self.physicalDpiX(), self.physicalDpiY(),
@@ -690,10 +738,7 @@ class PipedImagerPQ(QMainWindow):
                 bkgcolor = None
             self.redrawScene(bkgcolor)
         elif cmndact == "rescale":
-            newscale = float(cmnd["factor"])
-            if newscale <= 0.0:
-                raise ValueError("invalid scaling factor")
-            self.scaleScene(newscale, True)
+            self.scaleScene(float(cmnd["factor"]), True)
         elif cmndact == "resize":
             mysize = self.__helper.getSizeFromCmnd(cmnd)
             self.resizeScene(mysize.width(), mysize.height())
@@ -718,8 +763,8 @@ class PipedImagerPQ(QMainWindow):
             if myvalue:
                 self.__lastformat = myvalue.lower()
         elif cmndact == "show":
-            if self.isHidden():
-                self.showNormal()
+            if not self.isVisible():
+                self.show()
         elif cmndact == "noalpha":
             # ignore any alpha channel values in colors
             self.__noalpha = True
@@ -787,18 +832,18 @@ class _CommandSubmitterPQ(QDialog):
             cmndstr = str(self.__cmndlist[self.__nextcmnd])
             if len(cmndstr) > 188:
                 cmndstr = cmndstr[:188] + '...'
-            print "Command: %s" % cmndstr
+            print("Command: %s" % cmndstr)
             self.__cmndpipe.send(self.__cmndlist[self.__nextcmnd])
             self.__nextcmnd += 1
             while self.__rspdpipe.poll():
-                print "Response: %s" % str(self.__rspdpipe.recv())
+                print("Response: %s" % str(self.__rspdpipe.recv()))
         except IndexError:
             self.__rspdpipe.close()
             self.__cmndpipe.close()
             self.close()
 
 
-if __name__ == "__main__":
+def _test_pipedimagerpq():
     # vertices of a pentagon (roughly) centered in a 1000 x 1000 square
     pentagonpts = ( (504.5, 100.0), (100.0, 393.9),
                     (254.5, 869.4), (754.5, 869.4),
@@ -845,8 +890,8 @@ if __name__ == "__main__":
     # not a good way to get the pixel data
     testimgdata = bytearray(testimgheight * testimgstride)
     k = 0
-    for pty in xrange(testimgheight):
-        for ptx in xrange(testimgwidth):
+    for pty in range(testimgheight):
+        for ptx in range(testimgwidth):
             pixval = testimage.pixel(ptx, pty)
             (aval, rgbval) = divmod(pixval, 256 * 256 * 256)
             (rval, gbval) = divmod(rgbval, 256 * 256)
@@ -865,7 +910,7 @@ if __name__ == "__main__":
                         "width":testimgwidth,
                         "height":testimgheight,
                         "stride":testimgstride } )
-    for k in xrange(testnumblocks):
+    for k in range(testnumblocks):
         if k < (testnumblocks - 1):
             blkdata = testimgdata[k*testblocksize:(k+1)*testblocksize]
         else:
@@ -891,3 +936,6 @@ if __name__ == "__main__":
     if testresult != 0:
         sys.exit(testresult)
 
+if __name__ == "__main__":
+    _test_pipedimagerpq()
+
diff --git a/pviewmod/pipedviewerpq.py b/pviewmod/pipedviewerpq.py
index a22a358..1985327 100644
--- a/pviewmod/pipedviewerpq.py
+++ b/pviewmod/pipedviewerpq.py
@@ -13,34 +13,57 @@ Project (TMAP) of the National Oceanographic and Atmospheric
 Administration's (NOAA) Pacific Marine Environmental Lab (PMEL).
 '''
 
+from __future__ import print_function
+
+import sys
+import os
+import signal
+import time
+import math
+
 import sip
 try:
     sip.setapi('QVariant', 2)
 except AttributeError:
     pass
 
-from PyQt4.QtCore import Qt, QPointF, QRect, QRectF, QSize, QSizeF, \
-                         QString, QTimer
-from PyQt4.QtGui  import QAction, QApplication, QBrush, QColor, QDialog, \
-                         QFileDialog, QFontMetricsF, QImage, QLabel, \
-                         QMainWindow, QMessageBox, QPainter, QPalette, \
-                         QPen, QPicture, QPixmap, QPolygonF, QPrinter, \
-                         QPushButton, QScrollArea, QTextDocument
-
-try:
+if sys.version_info[0] > 2:
+    # First try to import PyQt5, then try PyQt4 if that fails
+    try:
+        import PyQt5
+        QT_VERSION = 5
+    except ImportError:
+        import PyQt4
+        QT_VERSION = 4
+else:
+    # PyQt5 requires Python3.x, so only try PyQt4
+    import PyQt4
+    QT_VERSION = 4
+
+# Now that the PyQt version is determined, import the parts
+# allowing any import errors to propagate out
+if QT_VERSION == 5:
+    from PyQt5.QtCore    import Qt, QPointF, QRect, QRectF, QSize, QSizeF, QTimer
+    from PyQt5.QtGui     import QBrush, QColor, QFontMetricsF, QImage, QPainter, \
+                                QPalette, QPen, QPicture, QPixmap, QPolygonF, \
+                                QTextDocument
+    from PyQt5.QtWidgets import QAction, QApplication, QDialog, QFileDialog, QLabel, \
+                                QMainWindow, QMessageBox, QPushButton, QScrollArea
+    from PyQt5.QtSvg     import QSvgGenerator
+    from PyQt5.QtPrintSupport import QPrinter
+else:
+    from PyQt4.QtCore import Qt, QPointF, QRect, QRectF, QSize, QSizeF, QTimer, QString
+    from PyQt4.QtGui  import QAction, QApplication, QBrush, QColor, QDialog, \
+                             QFileDialog, QFontMetricsF, QImage, QLabel, \
+                             QMainWindow, QMessageBox, QPainter, QPalette, \
+			     QPen, QPicture, QPixmap, QPolygonF, QPrinter, \
+			     QPushButton, QScrollArea, QTextDocument
     from PyQt4.QtSvg  import QSvgGenerator
-    HAS_QSvgGenerator = True
-except ImportError:
-    HAS_QSvgGenerator = False
 
-from cmndhelperpq import CmndHelperPQ
-from scaledialogpq import ScaleDialogPQ
 from multiprocessing import Pipe, Process
-import sys
-import time
-import os
-import signal
-import math
+
+from pipedviewer.cmndhelperpq import CmndHelperPQ
+from pipedviewer.scaledialogpq import ScaleDialogPQ
 
 
 class PipedViewerPQ(QMainWindow):
@@ -58,9 +81,7 @@ class PipedViewerPQ(QMainWindow):
           "outline":{"color":"black"},
           "location":(250,350) }
 
-    The command { "action":"exit" } will shutdown the viewer and is
-    the only way the viewer can be closed.  GUI actions can only hide
-    the viewer.
+    The command { "action":"exit" } will shutdown the viewer.
     '''
 
     def __init__(self, cmndpipe, rspdpipe):
@@ -151,9 +172,6 @@ class PipedViewerPQ(QMainWindow):
         self.__aboutqtact = QAction(self.tr("About &Qt"), self,
                                 statusTip=self.tr("Show information about the Qt library"),
                                 triggered=self.aboutQtMsg)
-        self.__exitact = QAction(self.tr("&Exit"), self,
-                                statusTip=self.tr("Shut down the viewer"),
-                                triggered=self.exitViewer)
         self.createMenus()
         # Set the initial size of the viewer
         self.__framedelta = 4
@@ -178,13 +196,9 @@ class PipedViewerPQ(QMainWindow):
         sceneMenu.addAction(self.__scaleact)
         sceneMenu.addAction(self.__saveact)
         sceneMenu.addAction(self.__redrawact)
-        # sceneMenu.addSeparator()
-        # sceneMenu.addAction(self.__hideact)
         helpMenu = menuBar.addMenu(menuBar.tr("&Help"))
         helpMenu.addAction(self.__aboutact)
         helpMenu.addAction(self.__aboutqtact)
-        helpMenu.addSeparator()
-        helpMenu.addAction(self.__exitact)
 
     def showEvent(self, event):
         '''
@@ -212,21 +226,22 @@ class PipedViewerPQ(QMainWindow):
 
     def closeEvent(self, event):
         '''
-        Override so the viewer cannot be closed from the
-        user selecting the windowframe close ('X') button.
-        Instead only hide the window.
+        Override so will just minimize if not shutting down
         '''
-        if self.__shuttingdown:
+        # If shutting down or minimized (escape hatch), 
+        # go ahead and close/exit
+        if self.__shuttingdown or self.isMinimized():
+            self.__timer.stop()
             event.accept()
-        else:
-            event.ignore()
-            self.hide()
+            return
+        # Otherwise just minimize the window
+        event.ignore()
+        self.showMinimized()
 
     def exitViewer(self):
         '''
         Close and exit the viewer.
         '''
-        self.__timer.stop()
         self.__shuttingdown = True
         self.close()
 
@@ -241,11 +256,12 @@ class PipedViewerPQ(QMainWindow):
             "The controlling application, however, may be unaware " \
             "of these modifications made to the image. " \
             "\n\n" \
-            "Normally, the controlling program will exit the viewer " \
-            "when it is no longer needed.  The Help -> Exit menu item " \
-            "should not normally be used.  It is provided when problems " \
-            "occur and the controlling program cannot shut down the " \
-            "viewer properly. " \
+            "'Closing' this window (the window frame 'X' button) " \
+            "actually only minimizes this viewer as PyFerret expects " \
+            "it to exist until PyFerret closes it.  Selecting the " \
+            "close menu option from the *minimized* window (using " \
+            "a right mouse click) will actually close (exit) the " \
+            "viewer if PyFerret exited and left it up.  " \
             "\n\n" \
             "PipedViewerPQ was developed by the Thermal Modeling and Analysis " \
             "Project (TMAP) of the National Oceanographic and Atmospheric " \
@@ -287,11 +303,9 @@ class PipedViewerPQ(QMainWindow):
         QApplication.setOverrideCursor(Qt.WaitCursor)
         # create the incomplete status message
         if (first + 1) < len(self.__viewpics):
-            mymsg = self.tr("%s (piece %%1 of %%2)" % statusmsg)
-            endstr = str(len(self.__viewpics))
+            mymsg = "%s (piece %%s of %s)" % (statusmsg, str(len(self.__viewpics)))
         else:
-            mymsg = self.tr("%s (piece %%1)" % statusmsg)
-            endstr = None
+            mymsg = "%s (piece %%s)" % statusmsg
         # get the origin for drawing the pictures after scaling
         myorigin = QPointF(leftx, uppery)
         # set the scaling factor for the pictures
@@ -302,10 +316,7 @@ class PipedViewerPQ(QMainWindow):
         for (viewpic, _) in self.__viewpics[first:]:
             k += 1
             # show the progress message
-            if endstr != None:
-                self.statusBar().showMessage( mymsg.arg(str(k)).arg(endstr) )
-            else:
-                self.statusBar().showMessage( mymsg.arg(str(k)) )
+            self.statusBar().showMessage( self.tr(mymsg % str(k)) )
             # draw the picture
             painter.drawPicture(myorigin, viewpic)
             if returnregion:
@@ -338,7 +349,7 @@ class PipedViewerPQ(QMainWindow):
         viewer is visible.
         '''
         if not ignorevis:
-            if self.isHidden() or self.isMinimized():
+            if self.isMinimized() or not self.isVisible():
                 # Not shown, so do not waste time drawing
                 return
         if self.__createpixmap:
@@ -499,7 +510,7 @@ class PipedViewerPQ(QMainWindow):
         the window size is changed by the user and auto-scaling is turn on.
 
         Returns:
-            True if the scene was resized
+            True if scaling of this scene is done (no window resize)
             False if the a new resize command was issued
         '''
         barheights = self.menuBar().height() + self.statusBar().height()
@@ -539,45 +550,59 @@ class PipedViewerPQ(QMainWindow):
         already scaled, that scaling is "removed" before this scaling
         factor is applied.  If resizewin is True, the main window is 
         resized to accommodate this new scaled scene size.
-        '''
-        newfactor = float(factor)
-        newlabwidth = int(newfactor * self.__scenewidth + 0.5)
-        newlabheight = int(newfactor * self.__sceneheight + 0.5)
-        if (newlabwidth < self.__minsize) or (newlabheight < self.__minsize):
-            # Set to minimum size
-            if self.__scenewidth <= self.__sceneheight:
-                newfactor = float(self.__minsize) / float(self.__scenewidth)
-            else:
-                newfactor = float(self.__minsize) / float(self.__sceneheight)
+
+        If factor is zero, just switch to auto-scaling at the current
+        window size.  If factor is negative, rescale using the absolute
+        value (possibly resizing the window) then switch to auto-scaling.
+        '''
+        fltfactor = float(factor)
+        if fltfactor != 0.0:
+            if resizewin:
+                # from command - turn off autoscaling for the following
+                # then turn back on if appropriate
+                self.__autoscale = False
+            newfactor = abs(fltfactor)
             newlabwidth = int(newfactor * self.__scenewidth + 0.5)
             newlabheight = int(newfactor * self.__sceneheight + 0.5)
-        oldlabwidth = int(self.__scalefactor * self.__scenewidth + 0.5)
-        oldlabheight = int(self.__scalefactor * self.__sceneheight + 0.5)
-        if (newlabwidth != oldlabwidth) or (newlabheight != oldlabheight):
-            # Set the new scaling factor
-            self.__scalefactor = newfactor
-            # Resize the label and set label values
-            # so the scrollarea knows of the new size
-            self.__label.setMinimumSize(newlabwidth, newlabheight)
-            self.__label.resize(newlabwidth, newlabheight)
-            # mark that the pixmap needs to be recreated
-            self.__createpixmap = True
-            # Redraw the scene from the beginning
-            self.redrawScene()
-        if resizewin:
-            # resize the main window (if possible)
-            barheights = self.menuBar().height() + self.statusBar().height()
-            mwheight = newlabheight + barheights + self.__framedelta
-            mwwidth = newlabwidth + self.__framedelta
-            # Do not exceed the available real estate on the screen.
-            # If autoscaling is in effect, the resize will trigger 
-            # any required adjustments.
-            scrnrect = QApplication.desktop().availableGeometry()
-            if mwwidth > 0.95 * scrnrect.width():
-                mwwidth = int(0.9 * scrnrect.width())
-            if mwheight > 0.95 * scrnrect.height():
-                mwheight = int(0.9 * scrnrect.height())
-            self.resize(mwwidth, mwheight)
+            if (newlabwidth < self.__minsize) or (newlabheight < self.__minsize):
+                # Set to minimum size
+                if self.__scenewidth <= self.__sceneheight:
+                    newfactor = float(self.__minsize) / float(self.__scenewidth)
+                else:
+                    newfactor = float(self.__minsize) / float(self.__sceneheight)
+                newlabwidth = int(newfactor * self.__scenewidth + 0.5)
+                newlabheight = int(newfactor * self.__sceneheight + 0.5)
+            oldlabwidth = int(self.__scalefactor * self.__scenewidth + 0.5)
+            oldlabheight = int(self.__scalefactor * self.__sceneheight + 0.5)
+            if (newlabwidth != oldlabwidth) or (newlabheight != oldlabheight):
+                # Set the new scaling factor
+                self.__scalefactor = newfactor
+                # Resize the label and set label values
+                # so the scrollarea knows of the new size
+                self.__label.setMinimumSize(newlabwidth, newlabheight)
+                self.__label.resize(newlabwidth, newlabheight)
+                # mark that the pixmap needs to be recreated
+                self.__createpixmap = True
+                # Redraw the scene from the beginning
+                self.redrawScene()
+            if resizewin:
+                # resize the main window (if possible)
+                barheights = self.menuBar().height() + self.statusBar().height()
+                mwheight = newlabheight + barheights + self.__framedelta
+                mwwidth = newlabwidth + self.__framedelta
+                # Do not exceed the available real estate on the screen.
+                # If autoscaling is in effect, the resize will trigger 
+                # any required adjustments.
+                scrnrect = QApplication.desktop().availableGeometry()
+                if mwwidth > 0.95 * scrnrect.width():
+                    mwwidth = int(0.9 * scrnrect.width())
+                if mwheight > 0.95 * scrnrect.height():
+                    mwheight = int(0.9 * scrnrect.height())
+                self.resize(mwwidth, mwheight)
+        if fltfactor <= 0.0:
+            # From command - turn on autoscaling
+            self.__autoscale = True
+            self.autoScaleScene();
 
     def inquireSaveFilename(self):
         '''
@@ -594,6 +619,8 @@ class PipedViewerPQ(QMainWindow):
                           self.tr("PDF - Portable Document Format (*.pdf)") ),
                         ( "ps",
                           self.tr("PS - PostScript (*.ps)") ),
+                        ( "svg",
+                          self.tr("SVG - Scalable Vector Graphics (*.svg)") ),
                         ( "bmp",
                           self.tr("BMP - Windows Bitmap (*.bmp)") ),
                         ( "ppm",
@@ -602,35 +629,41 @@ class PipedViewerPQ(QMainWindow):
                           self.tr("XPM - X11 Pixmap (*.xpm)") ),
                         ( "xbm",
                           self.tr("XBM - X11 Bitmap (*.xbm)") ), ]
-        if HAS_QSvgGenerator:
-            formattypes.insert(5, ( "svg",
-                          self.tr("SVG - Scalable Vector Graphics (*.svg)") ) )
-        # tr returns QStrings so the following does not work
-        # filters = ";;".join( [ t[1] for t in formattypes ] )
-        filters = QString(formattypes[0][1])
-        for typePair in formattypes[1:]:
-            filters.append(";;")
-            filters.append(typePair[1])
-        # getSaveFileNameAndFilter does not want to accept a default filter
-        # for (fmt, fmtQName) in formattypes:
-        #     if self.__lastformat == fmt:
-        #         dfltfilter = fmtQName
-        #         break
-        # else:
-        #     dfltfilter = formattypes[0][1]
-        # getSaveFileNameAndFilter is a PyQt (but not Qt?) method
-        (fileName, fileFilter) = QFileDialog.getSaveFileNameAndFilter(self,
-                                      self.tr("Save the current image as "),
-                                      self.__lastfilename, filters)
-        if fileName:
+        if QT_VERSION == 5:
+            # tr returns Python strings in PyQt5/Python3
+            filters = ";;".join( [ t[1] for t in formattypes ] )
             for (fmt, fmtQName) in formattypes:
-                if fmtQName.compare(fileFilter) == 0:
-                    fileFormat = fmt
+                if self.__lastformat == fmt:
+                    dfltfilter = fmtQName
                     break
             else:
-                raise RuntimeError("Unexpected file format name '%s'" % fileFilter)
-            self.saveSceneToFile(fileName, fileFormat, None, 
-                                 None, None, None)
+                dfltfilter = formattypes[0][1]
+            (fileName, fileFilter) = QFileDialog.getSaveFileName(self,
+                self.tr("Save the current image as "), self.__lastfilename, filters, dfltfilter)
+            if fileName:
+                for (fmt, fmtQName) in formattypes:
+                    if fmtQName == fileFilter:
+                        fileFormat = fmt
+                        break
+                else:
+                    raise RuntimeError("Unexpected file format name '%s'" % fileFilter)
+        else:
+            # tr returns QStrings in PyQt4
+            filters = formattypes[0][1]
+            for typePair in formattypes[1:]:
+                filters.append(";;")
+                filters.append(typePair[1])
+            (fileName, fileFilter) = QFileDialog.getSaveFileNameAndFilter(self,
+                 self.tr("Save the current image as "), self.__lastfilename, filters)
+            if fileName:
+                for (fmt, fmtQName) in formattypes:
+                    if fmtQName.compare(fileFilter) == 0:
+                        fileFormat = fmt
+                        break
+                else:
+                    raise RuntimeError("Unexpected file format name '%s'" % fileFilter)
+        if fileName:
+            self.saveSceneToFile(fileName, fileFormat, None, None, None, None)
             self.__lastfilename = fileName
             self.__lastformat = fileFormat
 
@@ -672,6 +705,9 @@ class PipedViewerPQ(QMainWindow):
             if fileext == '.pdf':
                 # needs a PDF QPrinter
                 myformat = 'pdf'
+            elif fileext == '.eps':
+                # needs a PS QPrinter and never rotate
+                myformat = 'eps'
             elif fileext == '.ps':
                 # needs a PS QPrinter
                 myformat = 'ps'
@@ -701,10 +737,6 @@ class PipedViewerPQ(QMainWindow):
         else:
             myfilename = filename
 
-        # The RHEL5 distribution of Qt4 does not have a QSvgGenerator
-        if (not HAS_QSvgGenerator) and (myformat == 'svg'):
-            raise ValueError("Your version of Qt does not support generation of SVG files")
-
         if myannotations:
             annopicture = QPicture()
             annopainter = QPainter(annopicture)
@@ -719,14 +751,14 @@ class PipedViewerPQ(QMainWindow):
             annopicture = None
             annosize = None
 
-        if (myformat == 'ps') or (myformat == 'pdf'):
-            # Setup the QPrinter that will be used to create the PS or PDF file
+        if (myformat == 'ps') or (myformat == 'eps') or (myformat == 'pdf'):
+            # Setup the QPrinter that will be used to create the EPS, PS, or PDF file
             printer = QPrinter(QPrinter.HighResolution)
             printer.setOutputFileName(myfilename)
             # The print format is automatically set from the
             # filename extension; so the following is actually
             # only needed for absent or strange extensions
-            if myformat == 'ps':
+            if (myformat == 'ps') or (myformat == 'eps'):
                 printer.setOutputFormat(QPrinter.PostScriptFormat)
             else:
                 printer.setOutputFormat(QPrinter.PdfFormat)
@@ -749,7 +781,7 @@ class PipedViewerPQ(QMainWindow):
             # Set the image size
             try:
                 # Set custom paper size to just fit around the image
-                if ( imagewidth > imageheight ):
+                if (myformat != 'eps') and (imagewidth > imageheight):
                     printer.setPaperSize(QSizeF(imageheight, imagewidth), QPrinter.Inch)
                 else:
                     printer.setPaperSize(QSizeF(imagewidth, imageheight), QPrinter.Inch)
@@ -764,7 +796,7 @@ class PipedViewerPQ(QMainWindow):
             # No margins (setPageMargins introduced in 4.4)
             printer.setFullPage(True)
             # Default orientation
-            if ( imagewidth > imageheight ):
+            if (myformat != 'eps') and (imagewidth > imageheight):
                 printer.setOrientation(QPrinter.Landscape)
             else:
                 printer.setOrientation(QPrinter.Portrait)
@@ -810,7 +842,6 @@ class PipedViewerPQ(QMainWindow):
                                 widthscalefactor, "Saving", False)                
             painter.end()
         elif myformat == 'svg':
-            # if HAS_QSvgGenerator is False, it should never get here
             generator = QSvgGenerator()
             generator.setFileName(myfilename)
             if vectsize:
@@ -915,7 +946,8 @@ class PipedViewerPQ(QMainWindow):
                                 widthscalefactor, "Saving", False)                
             painter.end()
             # save the image to file
-            image.save(myfilename, myformat)
+            if not image.save(myfilename, myformat):
+                raise ValueError("Unable to save the plot as " + myfilename)
 
     def checkCommandPipe(self):
         '''
@@ -942,10 +974,13 @@ class PipedViewerPQ(QMainWindow):
             # EOFError should never arise from recv since
             # the call is after poll returns True
             (exctype, excval) = sys.exc_info()[:2]
-            if excval:
-                self.__rspdpipe.send("**ERROR %s: %s" % (str(exctype), str(excval)))
-            else:
-                self.__rspdpipe.send("**ERROR %s" % str(exctype))
+            try:
+                if excval:
+                    self.__rspdpipe.send("**ERROR %s: %s" % (str(exctype), str(excval)))
+                else:
+                    self.__rspdpipe.send("**ERROR %s" % str(exctype))
+            except Exception:
+                pass
             self.exitViewer()
 
     def processCommand(self, cmnd):
@@ -968,7 +1003,7 @@ class PipedViewerPQ(QMainWindow):
         elif cmndact == "exit":
             self.exitViewer()
         elif cmndact == "hide":
-            self.hide()
+            self.showMinimized()
         elif cmndact == "screenInfo":
             scrnrect = QApplication.desktop().availableGeometry()
             info = ( self.physicalDpiX(), self.physicalDpiY(),
@@ -986,8 +1021,6 @@ class PipedViewerPQ(QMainWindow):
             self.redrawScene(bkgcolor)
         elif cmndact == "rescale":
             newscale = float(cmnd["factor"])
-            if newscale <= 0.0:
-                raise ValueError("invalid scaling factor")
             self.scaleScene(newscale, True)
         elif cmndact == "resize":
             mysize = self.__helper.getSizeFromCmnd(cmnd)
@@ -1019,8 +1052,8 @@ class PipedViewerPQ(QMainWindow):
             if value:
                 self.__lastformat = value.lower()
         elif cmndact == "show":
-            if self.isHidden():
-                self.showNormal()
+            if not self.isVisible():
+                self.show()
         elif cmndact == "noalpha":
             self.__noalpha = True
         elif cmndact == "beginView":
@@ -1379,10 +1412,10 @@ class PipedViewerPQ(QMainWindow):
         sides = self.__helper.getSidesFromCmnd(cmnd)
         width = sides.right() - sides.left()
         if width <= 0.0:
-            raise ValueError("width of the rectangle in not positive")
+            raise ValueError("width of the rectangle (%s) in not positive" % str(width))
         height = sides.bottom() - sides.top()
         if height <= 0.0:
-            raise ValueError("height of the rectangle in not positive")
+            raise ValueError("height of the rectangle (%s) in not positive" % str(height))
         myrect = QRectF(sides.left(), sides.top(), width, height)
         self.__activepainter.setRenderHint(QPainter.Antialiasing,
                                            False)
@@ -1430,7 +1463,9 @@ class PipedViewerPQ(QMainWindow):
             myfont = self.__activepainter.font()
         myfontmetrics = QFontMetricsF(myfont)
         mytext = cmnd["text"]
-        width = myfontmetrics.width(QString.fromUtf8(mytext))
+        if QT_VERSION == 4:
+            mytext = QString.fromUtf8(mytext)
+        width = myfontmetrics.width(mytext)
         height = myfontmetrics.height()
         return (width, height)
 
@@ -1479,7 +1514,10 @@ class PipedViewerPQ(QMainWindow):
                 self.__activepainter.rotate(rotdeg)
             except KeyError:
                 pass
-            self.__activepainter.drawText(0, 0, QString.fromUtf8(mytext))
+            
+            if QT_VERSION == 4:
+                mytext = QString.fromUtf8(mytext)
+            self.__activepainter.drawText(0, 0, mytext)
             self.__drawcount += 1
         finally:
             # return the painter to the default state
@@ -1563,18 +1601,18 @@ class _CommandSubmitterPQ(QDialog):
         or shutdown if there are no more commands to submit.
         '''
         try:
-            print "Command: %s" % str(self.__cmndlist[self.__nextcmnd])
+            print("Command: %s" % str(self.__cmndlist[self.__nextcmnd]))
             self.__cmndpipe.send(self.__cmndlist[self.__nextcmnd])
             self.__nextcmnd += 1
             while self.__rspdpipe.poll():
-                print "Response: %s" % str(self.__rspdpipe.recv())
+                print("Response: %s" % str(self.__rspdpipe.recv()))
         except IndexError:
             self.__rspdpipe.close()
             self.__cmndpipe.close()
             self.close()
 
 
-if __name__ == "__main__":
+def _test_pipedviewerpq():
     # vertices of a pentagon (roughly) centered in a 1000 x 1000 square
     pentagonpts = ( (504.5, 100.0), (100.0, 393.9),
                     (254.5, 869.4), (754.5, 869.4),
@@ -1751,3 +1789,6 @@ if __name__ == "__main__":
     if result != 0:
         sys.exit(result)
 
+if __name__ == "__main__":
+    _test_pipedviewerpq()
+
diff --git a/pviewmod/pyferretbindings.py b/pviewmod/pyferretbindings.py
index 4643a4c..bc3f577 100644
--- a/pviewmod/pyferretbindings.py
+++ b/pviewmod/pyferretbindings.py
@@ -15,6 +15,10 @@ This package was developed by the Thermal Modeling and Analysis Project
 Pacific Marine Environmental Lab (PMEL).
 '''
 
+from __future__ import print_function
+
+import sys
+
 from pyferret.graphbind.abstractpyferretbindings import AbstractPyFerretBindings
 from pipedviewer import PipedViewer
 
@@ -34,6 +38,12 @@ class PyFerretBindings(AbstractPyFerretBindings):
         '''
         super(PyFerretBindings, self).__init__()
         self.__window = None
+        # short wait time in seconds for error responses 
+        # to high level (not drawing) commands
+        self.__shortwait = 0.01
+        # long wait time in seconds for error responses
+        # to major operations; eg, save
+        self.__longwait = 1.0
 
     def createPipedViewerWindow(self, viewertype, title, visible, noalpha):
         '''
@@ -62,7 +72,7 @@ class PyFerretBindings(AbstractPyFerretBindings):
             self.__window.submitCommand( {"action":"show"} )
         if noalpha:
             self.__window.submitCommand( {"action":"noalpha"} )
-        self.checkForErrorResponse()
+        self.checkForErrorResponse(self.__shortwait)
         return True
 
     def submitCommand(self, cmnd):
@@ -71,34 +81,45 @@ class PyFerretBindings(AbstractPyFerretBindings):
 
         Provided for use by functions defined in subclasses.
         '''
+        # Check for an error from any previous command
+        self.__checkForErrorResponse()
+        # If all okay, submit the command
         self.__window.submitCommand(cmnd)
 
     def checkForResponse(self, timeout=0.0):
         '''
-        Checks the response pipe for an object within the given
-        timeout number of in seconds.  If timeout is None, this
-        method will wait indefinitely for something to be given
-        on the responds pipe.  If nothing is obtained within the
-        given timeout, None is returned.
-
-        Provided for use by functions defined in subclasses.
+        Checks the response pipe for an object within the given timeout 
+        number of in seconds.  If timeout is None, this method will wait 
+        indefinitely for something to be given on the responds pipe.  If 
+        timeout is zero (the default) the method does not wait if there 
+        is no response waiting.  If nothing is obtained within the given 
+        timeout, None is returned.
         '''
         result = self.__window.checkForResponse(timeout)
         return result
 
-    def checkForErrorResponse(self):
+    def checkForErrorResponse(self, timeout=0.0):
         '''
         Checks the response pipe for a message.  If anything is found,
         a RuntimeError is raised with the string of the full response.
-        '''
+        If timeout is zero (the default) the method does not wait if there
+        is no response waiting; otherwise the method waits the given number
+        of seconds for a response to arrive.  An IllegalArgumentException
+        if raised if timeout is None, as error responses should not be an
+        expected result (thus an indefinite wait makes no sense).
+        '''
+        if timeout is None:
+            raise IllegalArgumentException("timeout to checkForErrorResponse is None")
         fullresponse = None
-        response = self.__window.checkForResponse()
+        # Only wait (if timeout not zero) on the first check for a response
+        response = self.__window.checkForResponse(timeout)
         while response:
             if fullresponse:
                 fullresponse += '\n'
                 fullresponse += str(response)
             else:
                 fullresponse = str(response)
+            # Any further messages associated with this error should be immediate
             response = self.__window.checkForResponse()
         if fullresponse:
             raise RuntimeError(fullresponse)
@@ -113,7 +134,8 @@ class PyFerretBindings(AbstractPyFerretBindings):
         '''
         try:
             self.__window.submitCommand( { "action":"exit" } )
-            self.checkForErrorResponse()
+            # wait briefly for any error messages
+            self.checkForErrorResponse(self.__shortwait)
             self.__window.waitForViewerExit()
         finally:
             self.__window = None
@@ -144,7 +166,6 @@ class PyFerretBindings(AbstractPyFerretBindings):
         if formatname:
             cmnd["format"] = formatname
         self.__window.submitCommand(cmnd)
-        self.checkForErrorResponse()
 
     def setAntialias(self, antialias):
         '''
@@ -154,7 +175,6 @@ class PyFerretBindings(AbstractPyFerretBindings):
         cmnd = { "action":"antialias",
                  "antialias":bool(antialias) }
         self.__window.submitCommand(cmnd)
-        self.checkForErrorResponse()
         
     def beginView(self, leftfrac, bottomfrac, rightfrac, topfrac, clipit):
         '''
@@ -189,7 +209,6 @@ class PyFerretBindings(AbstractPyFerretBindings):
                               "top":topfracflt, "bottom":bottomfracflt }, 
                  "clip":bool(clipit) }
         self.__window.submitCommand(cmnd)
-        self.checkForErrorResponse()
 
     def clipView(self, clipit):
         '''
@@ -201,14 +220,12 @@ class PyFerretBindings(AbstractPyFerretBindings):
         cmnd = { "action":"clipView",
                  "clip":bool(clipit) }
         self.__window.submitCommand(cmnd)
-        self.checkForErrorResponse()
 
     def endView(self):
         '''
         Close a View in the PipedViewer Window
         '''
         self.__window.submitCommand( { "action":"endView" } )
-        self.checkForErrorResponse()
 
     def beginSegment(self, segid):
         '''
@@ -221,7 +238,6 @@ class PyFerretBindings(AbstractPyFerretBindings):
         cmnd = { "action":"beginSegment",
                  "segid":segid }
         self.__window.submitCommand(cmnd)
-        self.checkForErrorResponse()
 
     def endSegment(self):
         '''
@@ -229,7 +245,6 @@ class PyFerretBindings(AbstractPyFerretBindings):
         '''
         cmnd = { "action":"endSegment" }
         self.__window.submitCommand(cmnd)
-        self.checkForErrorResponse()
 
     def deleteSegment(self, segid):
         '''
@@ -241,7 +256,6 @@ class PyFerretBindings(AbstractPyFerretBindings):
         cmnd = { "action":"deleteSegment",
                  "segid":segid }
         self.__window.submitCommand(cmnd)
-        self.checkForErrorResponse()
 
     def updateWindow(self):
         '''
@@ -249,7 +263,6 @@ class PyFerretBindings(AbstractPyFerretBindings):
         '''
         cmnd = { "action":"update" }
         self.__window.submitCommand(cmnd)
-        self.checkForErrorResponse()
 
     def clearWindow(self, bkgcolor):
         '''
@@ -266,7 +279,6 @@ class PyFerretBindings(AbstractPyFerretBindings):
             cmnd = { }
         cmnd["action"] = "clear"
         self.__window.submitCommand(cmnd)
-        self.checkForErrorResponse()
 
     def redrawWindow(self, bkgcolor):
         '''
@@ -284,7 +296,6 @@ class PyFerretBindings(AbstractPyFerretBindings):
             cmnd = { }
         cmnd["action"] = "redraw"
         self.__window.submitCommand(cmnd)
-        self.checkForErrorResponse()
 
     def resizeWindow(self, width, height):
         '''
@@ -300,7 +311,6 @@ class PyFerretBindings(AbstractPyFerretBindings):
                  "width":width,
                  "height":height }
         self.__window.submitCommand(cmnd)
-        self.checkForErrorResponse()
 
     def scaleWindow(self, scale):
         '''
@@ -312,7 +322,6 @@ class PyFerretBindings(AbstractPyFerretBindings):
         cmnd = { "action":"rescale",
                  "factor":scale }
         self.__window.submitCommand(cmnd)
-        self.checkForErrorResponse()
 
     def windowScreenInfo(self):
         '''
@@ -365,7 +374,6 @@ class PyFerretBindings(AbstractPyFerretBindings):
         else:
             cmnd = { "action":"hide" }
         self.__window.submitCommand(cmnd)
-        self.checkForErrorResponse()
 
     def saveWindow(self, filename, fileformat, transparent,
                    xinches, yinches, xpixels, ypixels, annotations):
@@ -406,7 +414,8 @@ class PyFerretBindings(AbstractPyFerretBindings):
         cmnd["rastsize"] = { "width":xpixels, "height":ypixels }
         cmnd["annotations"] = annotations
         self.__window.submitCommand(cmnd)
-        self.checkForErrorResponse()
+        # Wait awhile to see if there was any problems
+        self.checkForErrorResponse(self.__longwait)
 
     def createColor(self, redfrac, greenfrac, bluefrac, opaquefrac):
         '''
@@ -618,7 +627,6 @@ class PyFerretBindings(AbstractPyFerretBindings):
         cmnd = { "action":"setWidthFactor",
                  "factor":widthfactor }
         self.__window.submitCommand(cmnd)
-        self.checkForErrorResponse()
         
     def drawMultiline(self, ptsx, ptsy, pen):
         '''
@@ -639,7 +647,6 @@ class PyFerretBindings(AbstractPyFerretBindings):
                  "points":points,
                  "pen":pen }
         self.__window.submitCommand(cmnd)
-        self.checkForErrorResponse()
 
     def drawPoints(self, ptsx, ptsy, symbol, color, ptsize):
         '''
@@ -668,7 +675,6 @@ class PyFerretBindings(AbstractPyFerretBindings):
         cmnd["symbol"] = symbol
         cmnd["size"] = ptsize
         self.__window.submitCommand(cmnd)
-        self.checkForErrorResponse()
 
     def drawPolygon(self, ptsx, ptsy, brush, pen):
         '''
@@ -694,7 +700,6 @@ class PyFerretBindings(AbstractPyFerretBindings):
         if pen:
             cmnd["outline"] = pen
         self.__window.submitCommand(cmnd)
-        self.checkForErrorResponse()
 
     def drawRectangle(self, left, bottom, right, top, brush, pen):
         '''
@@ -721,7 +726,6 @@ class PyFerretBindings(AbstractPyFerretBindings):
         if pen:
             cmnd["outline"] = pen
         self.__window.submitCommand(cmnd)
-        self.checkForErrorResponse()
 
     def textSize(self, text, font):
         '''
@@ -792,7 +796,6 @@ class PyFerretBindings(AbstractPyFerretBindings):
         if rotate != 0.0:
             cmnd["rotate"] = rotate
         self.__window.submitCommand(cmnd)
-        self.checkForErrorResponse()
 
 
 class PViewerPQPyFerretBindings(PyFerretBindings):
@@ -800,7 +803,7 @@ class PViewerPQPyFerretBindings(PyFerretBindings):
     PyFerretBindings using a PipedViewerPQ as the viewer.
     '''
 
-    def createWindow(self, title, visible, noalpha):
+    def createWindow(self, title, visible, noalpha, rasteronly):
         '''
         Creates PyFerret bindings using a PipedViewerPQ.
 
@@ -808,6 +811,7 @@ class PViewerPQPyFerretBindings(PyFerretBindings):
             title: display title for the Window
             visible: display Window on start-up?
             noalpha: do not use the alpha channel in colors?
+            rasteronly: ignored
 
         Raises a RuntimeError if an active window is already associated
         with these bindings, or if there were problems with creating
@@ -835,7 +839,7 @@ class PImagerPQPyFerretBindings(PyFerretBindings):
     for the new scene to be displayed.
     '''
 
-    def createWindow(self, title, visible, noalpha):
+    def createWindow(self, title, visible, noalpha, rasteronly):
         '''
         Creates PyFerret bindings using a PipedImagerPQ.
 
@@ -843,6 +847,7 @@ class PImagerPQPyFerretBindings(PyFerretBindings):
             title: display title for the Window
             visible: display Window on start-up?
             noalpha: do not use the alpha channel in colors?
+            rasteronly: ignored
 
         Raises a RuntimeError if an active window is already associated
         with these bindings, or if there were problems with creating
@@ -876,10 +881,9 @@ class PImagerPQPyFerretBindings(PyFerretBindings):
                  "height":height,
                  "stride":stride }
         self.submitCommand(cmnd)
-        self.checkForErrorResponse()
         blocksize = 8192
         numblocks = (lenimgdata + blocksize - 1) // blocksize
-        for k in xrange(numblocks):
+        for k in range(numblocks):
             if k < (numblocks - 1):
                 blkdata = imagedata[k*blocksize:(k+1)*blocksize]
             else:
@@ -890,14 +894,15 @@ class PImagerPQPyFerretBindings(PyFerretBindings):
                      "startindex":k*blocksize,
                      "blockdata":blkdata }
             self.submitCommand(cmnd)
-            self.checkForErrorResponse()
+        # wait briefly at the end for any error messages
+        self.checkForErrorResponse(self.__shortwait)
 
 
 #
 # The following is for testing this module
 #
 
-if __name__ == "__main__":
+def _test_pyferretbindings():
     import pyferret
     import pyferret.graphbind
 
@@ -931,10 +936,10 @@ if __name__ == "__main__":
     # Initiate pyferret, but stay in python
     pyferret.init(None, False)
     for viewertype in ( "PipedViewerPQ", ):
-        print "Testing bindings for %s" % viewertype
+        print("Testing bindings for %s" % viewertype)
         # Create a viewer window
         title = viewertype + "Tester"
-        bindinst = pyferret.graphbind.createWindow(viewertype, title, True, False)
+        bindinst = pyferret.graphbind.createWindow(viewertype, title, True, False, False)
         # Resize the window to 500 x 500 pixels
         bindinst.resizeWindow(500, 500)
         # Turn on anti-aliasing
@@ -967,7 +972,10 @@ if __name__ == "__main__":
         bindinst.endView()
         # Window should already be shown, but just to make sure
         bindinst.showWindow(True)
-        raw_input("Press Enter to continue")
+        if sys.version_info[0] > 2:
+            input("Press Enter to continue")
+        else:
+            raw_input("Press Enter to continue")
         # Create a view of the whole window
         bindinst.beginView(0.0, 1.0, 1.0, 0.0, True)
         # Draw magenta points using various symbols
@@ -1010,7 +1018,10 @@ if __name__ == "__main__":
         bindinst.endView()
         # Window should already be shown, but just to make sure
         bindinst.showWindow(True)
-        raw_input("Press Enter to continue")
+        if sys.version_info[0] > 2:
+            input("Press Enter to continue")
+        else:
+            raw_input("Press Enter to continue")
         try:
             while 1:
                 bindinst.deleteColor(mycolors.pop())
@@ -1018,5 +1029,8 @@ if __name__ == "__main__":
             pass
         bindinst.deleteFont(myfont)
         bindinst.deleteWindow()
-        print "Done with bindings for %s" % viewertype
+        print("Done with bindings for %s" % viewertype)
+
+if __name__ == "__main__":
+    _test_pyferretbindings()
 
diff --git a/pviewmod/scaledialogpq.py b/pviewmod/scaledialogpq.py
index 6b28128..4ddc4fc 100644
--- a/pviewmod/scaledialogpq.py
+++ b/pviewmod/scaledialogpq.py
@@ -6,10 +6,35 @@ This package was developed by the Thermal Modeling and Analysis Project
 Pacific Marine Environmental Lab (PMEL).
 '''
 
-from PyQt4.QtCore import SIGNAL, Qt
-from PyQt4.QtGui  import QApplication, QButtonGroup, QDialog, \
-                         QDialogButtonBox, QGridLayout, QGroupBox, \
-                         QLabel, QLineEdit, QMessageBox, QRadioButton
+from __future__ import print_function
+
+import sys
+
+if sys.version_info[0] > 2:
+    # First try to import PyQt5, then try PyQt4 if that fails
+    try:
+        import PyQt5
+        QT_VERSION = 5
+    except ImportError:
+        import PyQt4
+        QT_VERSION = 4
+else:
+    # PyQt5 requires Python3.x, so only try PyQt4
+    import PyQt4
+    QT_VERSION = 4
+
+# Now that the PyQt version is determined, import the parts
+# allowing any import errors to propagate out
+if QT_VERSION == 5:
+    from PyQt5.QtCore    import Qt
+    from PyQt5.QtWidgets import QApplication, QButtonGroup, QDialog, \
+                                QDialogButtonBox, QGridLayout, QGroupBox, \
+                                QLabel, QLineEdit, QMessageBox, QRadioButton
+else:
+    from PyQt4.QtCore import Qt
+    from PyQt4.QtGui  import QApplication, QButtonGroup, QDialog, \
+                             QDialogButtonBox, QGridLayout, QGroupBox, \
+                             QLabel, QLineEdit, QMessageBox, QRadioButton
 
 
 class ScaleDialogPQ(QDialog):
@@ -75,8 +100,8 @@ class ScaleDialogPQ(QDialog):
         self.__inchwidthlabel = QLabel(self.FLTSTR_FORMAT % self.__inchwidth, 
                                        self.__grpbox)
         widthend = QLabel(self.tr("inches on the screen"), self.__grpbox)
-        minwidthlabel = QLabel(self.tr("(must not be less than %1 pixels)") \
-                               .arg(str(self.__minpixwidth)), self.__grpbox)
+        minwidthlabel = QLabel(self.tr("(must not be less than %d pixels)" % \
+                               self.__minpixwidth), self.__grpbox)
 
         heightbegin = QLabel(self.tr("Height:"), self.__grpbox)
         self.__pixheightlabel = QLabel(str(int(self.__pixheight + 0.5)), 
@@ -85,8 +110,8 @@ class ScaleDialogPQ(QDialog):
         self.__inchheightlabel = QLabel(self.FLTSTR_FORMAT % self.__inchheight, 
                                         self.__grpbox)
         heightend = QLabel(self.tr("inches on the screen"), self.__grpbox)
-        minheightlabel = QLabel(self.tr("(must not be less than %1 pixels)") \
-                               .arg(str(self.__minpixheight)), self.__grpbox)
+        minheightlabel = QLabel(self.tr("(must not be less than %d pixels)" % \
+                                self.__minpixheight), self.__grpbox)
 
         # layout the widgets in this group box
         layout = QGridLayout()
@@ -135,14 +160,25 @@ class ScaleDialogPQ(QDialog):
         okbutton = buttonbox.button(QDialogButtonBox.Ok)
         okbutton.setDefault(True)
 
-        self.connect(self.__autoyesbtn, SIGNAL("clicked(bool)"), self.setAutoScale)
-        self.connect(self.__autonobtn, SIGNAL("clicked(bool)"), self.unsetAutoScale)
-
-        self.connect(self.__scaleedit, SIGNAL("textChanged(QString)"), self.updateValues)
-        self.connect(buttonbox, SIGNAL("accepted()"), self.checkValues)
-        self.connect(buttonbox, SIGNAL("rejected()"), self.reject)
         resetbutton = buttonbox.button(QDialogButtonBox.Reset)
-        self.connect(resetbutton, SIGNAL("clicked()"), self.resetValues)
+
+        self.__autoyesclicked = self.__autoyesbtn.clicked
+        self.__autoyesclicked.connect(self.setAutoScale)
+
+        self.__autonoclicked = self.__autonobtn.clicked
+        self.__autonoclicked.connect(self.unsetAutoScale)
+
+        self.__scaletextchanged = self.__scaleedit.textChanged
+        self.__scaletextchanged.connect(self.updateValues)
+
+        self.__buttonboxaccepted = buttonbox.accepted
+        self.__buttonboxaccepted.connect(self.checkValues)
+
+        self.__buttonboxrejected = buttonbox.rejected
+        self.__buttonboxrejected.connect(self.reject)
+
+        self.__resetbuttonclicked = resetbutton.clicked
+        self.__resetbuttonclicked.connect(self.resetValues)
 
         # initialize the state from autoscale
         if self.__autoscale:
@@ -163,8 +199,10 @@ class ScaleDialogPQ(QDialog):
             self.__scaleedit.selectAll()
 
     def updateValues(self, newstring):
-        (newscale, okay) = newstring.toFloat()
-        if okay:
+        try:
+            newscale = float(newstring)
+            if (newscale < 0.0001) or (newscale > 10000.0):
+                raise OverflowError()
             newval = self.__pixwidth * newscale / self.__scale
             self.__pixwidthlabel.setText(str(int(newval + 0.5)))
             newval = self.__inchwidth * newscale / self.__scale
@@ -173,6 +211,8 @@ class ScaleDialogPQ(QDialog):
             self.__pixheightlabel.setText(str(int(newval + 0.5)))
             newval = self.__inchheight * newscale / self.__scale
             self.__inchheightlabel.setText(self.FLTSTR_FORMAT % newval)
+        except Exception:
+            pass
 
     def checkValues(self):
         okay = self.getValues()[2]
@@ -185,14 +225,17 @@ class ScaleDialogPQ(QDialog):
     def getValues(self):
         if self.__autoyesbtn.isChecked():
             return (0.0, True, True)
-        (newscale, okay) = self.__scaleedit.text().toFloat()
-        if not okay:
-            return (0.0, False, False)
-        newwidth = self.__pixwidth * newscale / self.__scale
-        newwidth = int(newwidth + 0.5)
-        newheight = self.__pixheight * newscale / self.__scale
-        newheight = int(newheight + 0.5)
-        if (newwidth < self.__minpixwidth) or (newheight < self.__minpixheight):
+        try:
+            newscale = float(self.__scaleedit.text())
+            if (newscale < 0.0001) or (newscale > 10000.0):
+                raise OverflowError()
+            newwidth = self.__pixwidth * newscale / self.__scale
+            newwidth = int(newwidth + 0.5)
+            newheight = self.__pixheight * newscale / self.__scale
+            newheight = int(newheight + 0.5)
+            if (newwidth < self.__minpixwidth) or (newheight < self.__minpixheight):
+                raise OverflowError()
+        except Exception:
             return (0.0, False, False)
         return (newscale, False, True)
 
@@ -210,11 +253,15 @@ class ScaleDialogPQ(QDialog):
             self.unsetAutoScale(True)
 
 
-if __name__ == "__main__":
+def _test_scaledialogpq():
     app = QApplication(["tester"])
     resizedialog = ScaleDialogPQ(1.0, 500, 300, 75, 50, False)
     retval = resizedialog.exec_()
-    print "retval = %d" % retval
+    print("retval = %d" % retval)
     if retval == QDialog.Accepted:
         rettuple = resizedialog.getValues()
-        print "getValues returned: %s" % str(rettuple)
+        print("getValues returned: %s" % str(rettuple))
+
+if __name__ == "__main__":
+    _test_scaledialogpq()
+
diff --git a/pyfermod/__init__.py b/pyfermod/__init__.py
index b6e17b4..e0b6319 100644
--- a/pyfermod/__init__.py
+++ b/pyfermod/__init__.py
@@ -1,5 +1,5 @@
 """
-A Python module for running Ferret.  
+A Python module for running Ferret.
 For running the Ferret engine that is part of this module:
     init or start must first be called to initialize Ferret
     resize can be used to resize Ferret's allocated memory block
@@ -20,16 +20,18 @@ For writing Ferret external functions in Python, see the help message
 for pyferret.pyefmethods, whose methods are imported into the pyferret
 module.
 
-The FerRegion, FerAxis, FerGrid, FerVar, FerPyVar, and FerDSet objects 
-assist in working with the Ferret engine in a Python environment, 
+The FerRegion, FerAxis, FerGrid, FerVar, FerPyVar, and FerDSet objects
+assist in working with the Ferret engine in a Python environment,
 reducing the need to know the Ferret language and syntax.
 
 The convenience methods for executing common Ferret commands are found
 under pyferret.fermethods and are imported into the pyferret module.
-These methods also help reduce the need to know the Ferret language 
+These methods also help reduce the need to know the Ferret language
 and syntax.
 """
 
+from __future__ import print_function
+
 import sys
 import os
 import atexit
@@ -39,52 +41,54 @@ except ImportError:
     pass
 import readline
 
-import libpyferret
-# also import everything (not starting with an underscore) from libpyferret 
+from pyferret import libpyferret
+# also import everything (not starting with an underscore) from libpyferret
 # so constants in that module are seen as part of this module
-from libpyferret import *
+from pyferret.libpyferret import *
 
 # methods for transferring data between the Ferret engine and Python
-import datamethods
+from pyferret import datamethods
 # also import the methods given in datamethods into pyferret
-from datamethods import *
+from pyferret.datamethods import *
 
 # methods to assist in writing Ferret external functions written in Python
-import pyefmethods
+from pyferret import pyefmethods
 # also import the methods given in pyefmethods into pyferret
-from pyefmethods import *
-
-# the FerRegion, FerAxis, FerGrid, FerVar, FerPyVar, and FerDSet objects 
-# for working with Ferret from Python
-import ferregion
-from ferregion import *
-import feraxis
-from feraxis import *
-import fergrid
-from fergrid import *
-import fervar
-from fervar import *
-import ferpyvar
-from ferpyvar import *
-import ferdset
-from ferdset import *
-import feraggdset
-from feraggdset import *
+from pyferret.pyefmethods import *
+
+# the Fer... objects for working with Ferret from Python
+from pyferret import ferregion
+from pyferret.ferregion import *
+from pyferret import feraxis
+from pyferret.feraxis import *
+from pyferret import fergrid
+from pyferret.fergrid import *
+from pyferret import fervar
+from pyferret.fervar import *
+from pyferret import ferpyvar
+from pyferret.ferpyvar import *
+from pyferret import ferdset
+from pyferret.ferdset import *
+from pyferret import feraggdset
+from pyferret.feraggdset import *
+from pyferret import ferfmrcdset
+from pyferret.ferfmrcdset import *
+from pyferret import ferfmrcvar
+from pyferret.ferfmrcvar import *
 
 # Create "the" anonymous dataset
-anondset = FerDSet(qual=ferdset._anonymous_dataset_qualifier)
+anondset = FerDSet('', qual=ferdset._anonymous_dataset_qualifier)
 
 # convenience methods for executing common Ferret commands
-import fermethods
-from fermethods import *
+from pyferret import fermethods
+from pyferret.fermethods import *
 
 # bindings for the PyQt-based graphics engines
 import pipedviewer.pyferretbindings
 
-# the following should be in this (pyferret) directory, which should be examined first
-import filenamecompleter
-import graphbind
-import regrid
+from pyferret import filenamecompleter
+from pyferret import graphbind
+from pyferret import regrid
 
 def init(arglist=None, enterferret=True):
     """
@@ -109,10 +113,9 @@ def init(arglist=None, enterferret=True):
     ferret_help_message = \
     """
 
-    Usage:  pyferret  [-memsize <N>]  [-nodisplay]  [-nojnl]  [-noverify]
-                      [-secure]  [-server]  [-python]  [-version]  [-help] 
-                      [-quiet]  [-linebuffer]  [-batch [<filename>]]  
-                      [-transparent]  [-script <scriptname> [ <scriptarg> ... ]]
+    Usage:  pyferret  [-memsize <N>]  [-nodisplay]  [-png]  [-nojnl]  [-noverify]
+                      [-secure]  [-server]  [-python]  [-version]  [-help]
+                      [-quiet]  [-linebuffer]  [-script <scriptname> [ <scriptarg> ... ]]
 
        -memsize:     initialize the memory cache size to <N> (default 25)
                      mega (10^6) floats (where 1 float = 8 bytes)
@@ -120,9 +123,12 @@ def init(arglist=None, enterferret=True):
        -nodisplay    do not display to the console; a drawing can be saved
                      using the FRAME command in any of the supported file
                      formats.  The /QUALITY option of SET WINDOW will be
-                     ignored when this is specified.  The deprecated
-                     command-line options -unmapped and -gif are now
-                     aliases of this option.
+                     ignored when this is specified.
+
+       -png          do not display to the console and only raster (PNG)
+                     images can be saved.  Implies -nodisplay and removes
+                     support for deletion of parts (segments) of a plot;
+                     however, plots will be generated faster.
 
        -nojnl:       on startup do not open a journal file (can be turned
                      on later with SET MODE JOURNAL)
@@ -133,10 +139,10 @@ def init(arglist=None, enterferret=True):
        -secure:      restrict Ferret's capabilities (e.g., SPAWN and
                      EXIT /TOPYTHON are not permitted)
 
-       -server:      run Ferret in server mode (don't stop on message commands)
+       -server:      run in server mode (don't stop on message commands)
 
        -python:      start at the Python prompt instead of the Ferret prompt.
-                     The ferret prompt can be obtained using 'pyferret.run()'
+                     The Ferret prompt can be obtained using 'pyferret.run()'
 
        -version:     print the Ferret header with version number and quit
 
@@ -144,37 +150,43 @@ def init(arglist=None, enterferret=True):
 
        -quiet        do not display the startup header
 
-       -linebuffer   print each line of output or error messages as soon as 
-                     a full line is written.  Useful when redirecting these
-                     messages to a file.
-                     Note: 
-                       the enviroment variable GFORTRAN_UNBUFFERED_PRECONNECTED 
-                       needs to be set to 1 in order to unbuffer the Fortran 
+       -linebuffer   print each line of output or error messages as soon as
+                     a full line is written.  Useful when redirecting both
+                     types of messages to a single file.
+                     Note:
+                       the environment variable GFORTRAN_UNBUFFERED_PRECONNECTED
+                       needs to be set to 1 in order to unbuffer the Fortran
                        units for output and error messages
 
-       -batch:       draw to <filename> (default "ferret.png") instead of
-                     displaying to the console.  The file format will be
-                     guessed from the filename extension.  When using this
-                     option, new windows should not be created and the
-                     FRAME command should not be used.
+       -script:      execute the script <scriptname> with any arguments
+                     specified and exit. (THIS MUST BE SPECIFIED LAST.)
+                     The -script option also implies the -nojnl, -noverify,
+                     -server, and -quiet options.
 
-                     Use of -batch (and -transparent) is not recommended.
-                     Instead use the -nodisplay option and the FRAME
-                     /FILE=<filename> [ /TRANSPARENT ] command.
+       Deprecated command-line options:
 
-       -transparent: use a transparent background instead of opaque white
-                     when saving to the file given by -batch
+           -gif:         this option is now an alias for -png
 
-       -script:      execute the script <scriptname> with any arguments 
-                     specified and exit (THIS MUST BE SPECIFIED LAST).  
-                     The -script option also implies the -nojnl, -noverify, 
-                     -server, and -quiet options.
+	   -unmapped:    this option is now an alias for -nodisplay
+
+           -batch:       draw to <filename> (default "ferret.png") instead of
+                         displaying to the console.  The file format will be
+                         guessed from the filename extension.  When using this
+                         option, new windows should not be created and the
+                         FRAME command should not be used.
+
+           -transparent: use a transparent background instead of opaque white
+                         when saving to the file given by -batch
 
+        Use of -batch and -transparent options is strongly discouraged.  Instead,
+        use the -nodisplay option and the FRAME /FILE=<filename> [ /TRANSPARENT ]
+        Ferret command.
     """
 
     my_metaname = None
     my_transparent = False
     my_unmapped = False
+    my_pngonly = False
     my_memsize = 25
     my_journal = True
     my_verify = True
@@ -216,11 +228,14 @@ def init(arglist=None, enterferret=True):
                     my_transparent = True
                 elif opt == "-nodisplay":
                     my_unmapped = True
-                elif opt == "-gif":
-                    my_unmapped = True
-                    my_metaname = "ferret.png"
                 elif opt == "-unmapped":
                     my_unmapped = True
+                elif opt == "-png":
+                    my_unmapped = True
+                    my_pngonly = True
+                elif opt == "-gif":
+                    my_unmapped = True
+                    my_pngonly = True
                 elif opt == "-nojnl":
                     my_journal = False
                 elif opt == "-noverify":
@@ -257,13 +272,13 @@ def init(arglist=None, enterferret=True):
                 else:
                     raise ValueError("unrecognized option '%s'" % opt)
                 k += 1
-        except ValueError, errmsg:
+        except ValueError as errmsg:
             # print the error message, then print the help message
-            print >>sys.stderr, "\n%s" % errmsg
+            print("\n%s" % errmsg, file=sys.stderr)
             print_help = True
         if print_help:
             # print the help message, then mark for exiting
-            print >>sys.stderr, ferret_help_message
+            print(ferret_help_message, file=sys.stderr)
             just_exit = True
         if just_exit:
             # print the ferret header then exit completely
@@ -477,8 +492,8 @@ def init(arglist=None, enterferret=True):
     # start ferret without journaling
     start(memsize=my_memsize, journal=False, verify=my_verify,
           restrict=my_restrict, server=my_server, metaname=my_metaname,
-          transparent=my_transparent, unmapped=my_unmapped, 
-          quiet=my_quiet, linebuffer=my_linebuffer)
+          transparent=my_transparent, unmapped=my_unmapped,
+          pngonly=my_pngonly, quiet=my_quiet, linebuffer=my_linebuffer)
 
     # define all the Ferret standard Python external functions
     for fname in std_pyefs:
@@ -493,7 +508,7 @@ def init(arglist=None, enterferret=True):
                 try:
                     result = run('go "%s"; exit /topy' % init_script)
                 except:
-                    print >>sys.stderr, " **Error: exception raised in runnning script %s" % init_script
+                    print(" **Error: exception raised in runnning script %s" % init_script, file=sys.stderr)
                     result = run('exit /program')
                     # should not get here
                     raise SystemExit
@@ -505,7 +520,7 @@ def init(arglist=None, enterferret=True):
         try:
             result = run('go %s; exit /program' % script_line)
         except:
-            print >>sys.stderr, " **Error: exception raised in running script %s" % script_line
+            print(" **Error: exception raised in running script %s" % script_line, file=sys.stderr)
         # If exception or if returned early, force shutdown
         result = run('exit /program')
         # should not get here
@@ -526,19 +541,23 @@ def init(arglist=None, enterferret=True):
 
 def start(memsize=25, journal=True, verify=False, restrict=False,
           server=False, metaname=None, transparent=False,
-          unmapped=False, quiet=False, linebuffer=False):
+          unmapped=False, pngonly=False, quiet=False, linebuffer=False):
     """
     Initializes Ferret.  This allocates the initial amount of memory
     for Ferret (from Python-managed memory), opens the journal file,
-    if requested, and sets Ferret's verify mode.  If restrict is True,
-    some Ferret commands will not be available (to provide a secured
-    session).  Once restrict is set, it cannot be unset.  If server
-    is True, Ferret will be run in server mode.  If metaname is not
-    empty this value is used as the initial filename for automatic
-    output of graphics, and the graphics viewer will not be displayed.
+    if requested, and sets Ferret's verify mode.
+    If restrict is True, some Ferret commands will not be available
+    (to provide a secured session).  Once restrict is set, it cannot
+    be unset.
+    If metaname is not empty this value is used as the initial filename
+    for automatic output of graphics, and the graphics viewer will not
+    be displayed.
+    If server is True, Ferret will be run in server mode.
     If unmapped is True, the graphics viewer will not be displayed.
+    If pngonly is True, only raster images can be saved and the
+    graphics viewer will not be displayed.
     If quiet is True, the Ferret start-up header is not displayed.
-    If linebuffer is True, stdout and stderr are set user line 
+    If linebuffer is True, stdout and stderr are set user line
     buffering.  This cannot be reset once set.
     This routine does NOT run any user initialization scripts.
 
@@ -553,13 +572,14 @@ def start(memsize=25, journal=True, verify=False, restrict=False,
         transparent: autosave (e.g., on exit) image files with a
                      transparent background?
         unmapped:    hide the graphics viewer?
+        pngonly:     only create raster (PNG) images?
         quiet:       do not display the Ferret start-up header?
-        linebuffer:  print each line of output or error messages as soon as 
+        linebuffer:  print each line of output or error messages as soon as
                      a full line is written?  Useful when redirecting these
                      messages to a file.
-                     Note: 
-                       the enviroment variable GFORTRAN_UNBUFFERED_PRECONNECTED 
-                       needs to be set to 1 in order to unbuffer the Fortran 
+                     Note:
+                       the enviroment variable GFORTRAN_UNBUFFERED_PRECONNECTED
+                       needs to be set to 1 in order to unbuffer the Fortran
                        units for output and error messages
     Returns:
         True is successful
@@ -600,8 +620,8 @@ def start(memsize=25, journal=True, verify=False, restrict=False,
     # the actual call to ferret's start
     success = libpyferret._start(flt_memsize, bool(journal), bool(verify),
                                  bool(restrict), bool(server), str_metaname,
-                                 bool(transparent), bool(unmapped), 
-                                 bool(quiet), bool(linebuffer))
+                                 bool(transparent), bool(unmapped),
+                                 bool(pngonly), bool(quiet), bool(linebuffer))
     if success:
         # register the libpyferret._quit function with atexit to ensure
         # open viewer windows do not hang a Python shutdown
@@ -613,9 +633,14 @@ def start(memsize=25, journal=True, verify=False, restrict=False,
         # Execute the $PYTHONSTARTUP file, if it exists and -secure not given
         if not restrict:
             try:
-                execfile(os.getenv('PYTHONSTARTUP', ''));
-            except IOError:
-                pass;
+                startfilename = os.getenv('PYTHONSTARTUP', '')
+                if startfilename:
+                    if sys.version_info[0] > 2:
+                        exec(compile(open(startfilename).read(), startfilename, 'exec'));
+                    else:
+                        execfile(startfilename)
+            except Exception:
+                pass
 
     return success
 
@@ -641,8 +666,8 @@ def resize(memsize):
             raise ValueError
     except:
         raise ValueError("memsize must be a positive number")
-    # the actual call
-    return libpyferret._resize(flt_memsize)
+    # the actual call - now just a ferret command handled internally
+    return libpyferret._run("SET MEMORY /SIZE=%d" % flt_memsize)
 
 
 def run(command=None):
@@ -727,14 +752,20 @@ def _readline(myprompt):
     Arguments:
         myprompt - prompt string to use
     Returns:
-        the string read in, or None if EOFError occurs
+        the string read in, or None if an Exception occurs
     """
     try:
-        if myprompt:
-            myline = raw_input(myprompt)
+        if sys.version_info[0] > 2:
+            if myprompt:
+                myline = input(myprompt)
+            else:
+                myline = input()
         else:
-            myline = raw_input()
-    except EOFError:
+            if myprompt:
+                myline = raw_input(myprompt)
+            else:
+                myline = raw_input()
+    except Exception:
         myline = None
 
     return myline
diff --git a/pyfermod/copy_pystat_data.c b/pyfermod/copy_pystat_data.c
index 40b0fca..7e9aacc 100644
--- a/pyfermod/copy_pystat_data.c
+++ b/pyfermod/copy_pystat_data.c
@@ -34,12 +34,19 @@
 
 #include <Python.h>
 #define PY_ARRAY_UNIQUE_SYMBOL pyferret_ARRAY_API
+#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
 #define NO_IMPORT_ARRAY
 #include <numpy/arrayobject.h>
-#include "pyferret.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include "ferret.h"
+#include "pyferret.h"
+
+/* For older versions of NumPy (v1.4 with RHEL6), define this flag as the deprecated flag */
+#ifndef NPY_ARRAY_OWNDATA
+#define NPY_ARRAY_OWNDATA NPY_OWNDATA
+#endif
 
 /*
  * This function copies the data from the ndarray given by data_ndarray_ptr 
@@ -47,27 +54,27 @@
  * is a pointer to a PyObject pointer that is a float64 ndarray containing
  * the array of data for this static variable.
  */
-void copy_pystat_data_(double dest[], void *data_ndarray_ptr)
+void FORTRAN(copy_pystat_data)(double dest[], void *data_ndarray_ptr)
 {
-    PyObject *data_ndarray;
-    double *data;
-    npy_intp num_items;
+    PyArrayObject *data_ndarray;
+    double        *data;
+    npy_intp       num_items;
 
-    data_ndarray = *( (PyObject **) data_ndarray_ptr);
+    data_ndarray = *( (PyArrayObject **) data_ndarray_ptr);
 
     /* Sanity check:
      *    PyArray_Size returns 0 if the object is not an appropriate type
      *    ISFARRAY_RO checks if it is F-contiguous, aligned, and in machine byte-order 
      */
-    num_items = PyArray_Size(data_ndarray);
+    num_items = PyArray_Size((PyObject *) data_ndarray);
     if ( (num_items < 1) || (PyArray_TYPE(data_ndarray) != NPY_DOUBLE) ||
-         (! PyArray_ISFARRAY_RO(data_ndarray)) || (! PyArray_CHKFLAGS(data_ndarray, NPY_OWNDATA)) ) {
+         (! PyArray_ISFARRAY_RO(data_ndarray)) || (! PyArray_CHKFLAGS(data_ndarray, NPY_ARRAY_OWNDATA)) ) {
         fflush(stdout);
         fputs("Unexpected data_ndarray pointer passed to copy_pystat_data_\n", stderr);
         fflush(stderr);
         abort();
     }
-    data = (double *)PyArray_DATA(data_ndarray);
+    data = (double *) PyArray_DATA(data_ndarray);
     memcpy(dest, data, (size_t)num_items * sizeof(double));
 }
 
diff --git a/pyfermod/datamethods.py b/pyfermod/datamethods.py
index e0f2359..f02c1dc 100644
--- a/pyfermod/datamethods.py
+++ b/pyfermod/datamethods.py
@@ -3,11 +3,17 @@ Methods in pyferret for transferring data between the Ferret engine
 and Python.
 """
 
+from __future__ import print_function
+
+import sys
 import numpy
 import numpy.ma
-import StringIO
+if sys.version_info[0] > 2:
+    import io
+else:
+    import StringIO
 
-import libpyferret
+from pyferret import libpyferret
 
 # set of units (in uppercase) for checking if a custom axis is actual a longitude axis
 _UC_LONGITUDE_UNITS = frozenset( ("DEG E", "DEG_E", "DEG EAST", "DEG_EAST",
@@ -57,7 +63,10 @@ def metastr(datadict):
         if (key != "data") and (key not in keylist):
             keylist.append(key)
     # create the metadata string using StringIO
-    strbuf = StringIO.StringIO()
+    if sys.version_info[0] > 2:
+        strbuf = io.StringIO()
+    else:
+        strbuf = StringIO.StringIO()
     for key in keylist:
         try:
             # make sure the key:value pair exists
@@ -65,7 +74,7 @@ def metastr(datadict):
             # just in case the key is not a string (for printing)
             keystr = str(key)
             if keystr == "axis_coords":
-                print >>strbuf, keystr + ":"
+                print(keystr + ":", file=strbuf)
                 for (idx, item) in enumerate(val):
                     # add the axis name (which will be present if coordinates
                     # are given) as a label for the axis coordinates
@@ -95,7 +104,7 @@ def metastr(datadict):
                     indent = " " * len(itemlabel)
                     for addstr in strlist[1:]:
                         itemstr += "\n" + indent + addstr
-                    print >>strbuf, itemstr
+                    print(itemstr, file=strbuf)
             elif keystr == "axis_types":
                 # add a translation of the axis type number
                 valstr = "("
@@ -118,10 +127,10 @@ def metastr(datadict):
                     elif item == libpyferret.AXISTYPE_NORMAL:
                         valstr += "=unused"
                 valstr += ")"
-                print >>strbuf, keystr + ": " + valstr
+                print(keystr + ": " + valstr, file=strbuf)
             elif keystr == "missing_value":
                 # print the one value in the missing value array
-                print >>strbuf, keystr + ": " + str(val[0])
+                print(keystr + ": " + str(val[0]), file=strbuf)
             else:
                 # just print as "key: value", except
                 # adjust the subsequent-line-indent if multiple lines
@@ -130,7 +139,7 @@ def metastr(datadict):
                 indent = " " * (len(keystr) + 2)
                 for addstr in strlist[1:]:
                     valstr += "\n" + indent + addstr
-                print >>strbuf, keystr + ": " + valstr
+                print(keystr + ": " + valstr, file=strbuf)
         except KeyError:
             # known key not present - ignore
             pass
@@ -218,7 +227,7 @@ def getstrdata(name):
     axis_coords = vals[5]
     # A custom axis could be standard axis that is not in Ferret's expected order,
     # so check the units
-    for k in xrange(libpyferret.MAX_FERRET_NDIM):
+    for k in range(libpyferret.MAX_FERRET_NDIM):
         if axis_types[k] == libpyferret.AXISTYPE_CUSTOM:
             uc_units = axis_units[k].upper()
             if uc_units in _UC_LONGITUDE_UNITS:
@@ -313,7 +322,7 @@ def getdata(name, create_mask=True):
     axis_coords = vals[6]
     # A custom axis could be standard axis that is not in Ferret's expected order,
     # so check the units
-    for k in xrange(libpyferret.MAX_FERRET_NDIM):
+    for k in range(libpyferret.MAX_FERRET_NDIM):
         if axis_types[k] == libpyferret.AXISTYPE_CUSTOM:
             uc_units = axis_units[k].upper()
             if uc_units in _UC_LONGITUDE_UNITS:
@@ -455,7 +464,7 @@ def putdata(datavar_dict, axis_pos=None):
     if given_axis_types:
         if len(given_axis_types) > libpyferret.MAX_FERRET_NDIM:
             raise ValueError("More than %d axes (in the types) is not supported in Ferret at this time" % libpyferret.MAX_FERRET_NDIM)
-        for k in xrange(len(given_axis_types)):
+        for k in range(len(given_axis_types)):
             axis_types[k] = given_axis_types[k]
     #
     # axis names
@@ -464,7 +473,7 @@ def putdata(datavar_dict, axis_pos=None):
     if given_axis_names:
         if len(given_axis_names) > libpyferret.MAX_FERRET_NDIM:
             raise ValueError("More than %d axes (in the names) is not supported in Ferret at this time" % libpyferret.MAX_FERRET_NDIM)
-        for k in xrange(len(given_axis_names)):
+        for k in range(len(given_axis_names)):
             axis_names[k] = given_axis_names[k]
     #
     # axis units
@@ -473,7 +482,7 @@ def putdata(datavar_dict, axis_pos=None):
     if given_axis_units:
         if len(given_axis_units) > libpyferret.MAX_FERRET_NDIM:
             raise ValueError("More than %d axes (in the units) is not supported in Ferret at this time" % libpyferret.MAX_FERRET_NDIM)
-        for k in xrange(len(given_axis_units)):
+        for k in range(len(given_axis_units)):
             axis_units[k] = given_axis_units[k]
     # axis coordinates
     axis_coords = [ None ] * libpyferret.MAX_FERRET_NDIM
@@ -481,7 +490,7 @@ def putdata(datavar_dict, axis_pos=None):
     if given_axis_coords:
         if len(given_axis_coords) > libpyferret.MAX_FERRET_NDIM:
             raise ValueError("More than %d axes (in the coordinates) is not supported in Ferret at this time" % libpyferret.MAX_FERRET_NDIM)
-        for k in xrange(len(given_axis_coords)):
+        for k in range(len(given_axis_coords)):
             axis_coords[k] = given_axis_coords[k]
     #
     # data array
@@ -493,7 +502,7 @@ def putdata(datavar_dict, axis_pos=None):
         shape = datavar.shape
         if len(shape) > libpyferret.MAX_FERRET_NDIM:
             raise ValueError("More than %d axes (in the data) is not supported in Ferret at this time" % libpyferret.MAX_FERRET_NDIM)
-        for k in xrange(len(shape)):
+        for k in range(len(shape)):
             if (shape[k] > 1) and (axis_types[k] == libpyferret.AXISTYPE_NORMAL):
                 axis_types[k] = libpyferret.AXISTYPE_ABSTRACT
     except AttributeError:
@@ -501,7 +510,7 @@ def putdata(datavar_dict, axis_pos=None):
     #
     # assign any defaults on the axis information not given,
     # and make a copy of the axis coordinates (to ensure they are well-behaved)
-    for k in xrange(libpyferret.MAX_FERRET_NDIM):
+    for k in range(libpyferret.MAX_FERRET_NDIM):
         if axis_types[k] == libpyferret.AXISTYPE_LONGITUDE:
             if not axis_units[k]:
                 axis_units[k] = "DEGREES_E"
@@ -568,7 +577,7 @@ def putdata(datavar_dict, axis_pos=None):
     else:
         ferr_axis = [ -1 ] * libpyferret.MAX_FERRET_NDIM
         # assign positions of longitude/latitude/level/time
-        for k in xrange(len(axis_types)):
+        for k in range(len(axis_types)):
             if axis_types[k] == libpyferret.AXISTYPE_LONGITUDE:
                 if not libpyferret.X_AXIS in ferr_axis:
                     ferr_axis[k] = libpyferret.X_AXIS
@@ -617,7 +626,7 @@ def putdata(datavar_dict, axis_pos=None):
     #
     # get the data as an ndarray of MAX_FERRET_NDIM dimensions
     # adding new axes still reference the original data array - just creates new shape and stride objects
-    for k in xrange(len(shape), libpyferret.MAX_FERRET_NDIM):
+    for k in range(len(shape), libpyferret.MAX_FERRET_NDIM):
         data = data[..., numpy.newaxis]
     #
     # swap data axes and axis information to give (X_AXIS, Y_AXIS, Z_AXIS, T_AXIS, E_AXIS, F_AXIS) axes
@@ -716,7 +725,7 @@ def get(name, create_mask=True):
     axis_coords = data_dict["axis_coords"]
     # create the axis list for this variable
     var_axes = [ ]
-    for k in xrange(libpyferret.MAX_FERRET_NDIM):
+    for k in range(libpyferret.MAX_FERRET_NDIM):
         if axis_types[k] == libpyferret.AXISTYPE_LONGITUDE:
             newaxis = cdms2.createAxis(axis_coords[k], id=axis_names[k])
             newaxis.units = axis_units[k]
@@ -736,7 +745,7 @@ def get(name, create_mask=True):
             # create the time axis from cdtime.comptime (component time) objects
             time_coords = axis_coords[k]
             timevals = [ ]
-            for t in xrange(time_coords.shape[0]):
+            for t in range(time_coords.shape[0]):
                 day = time_coords[t, libpyferret.TIMEARRAY_DAYINDEX]
                 month = time_coords[t, libpyferret.TIMEARRAY_MONTHINDEX]
                 year = time_coords[t, libpyferret.TIMEARRAY_YEARINDEX]
@@ -781,7 +790,7 @@ def get(name, create_mask=True):
                     # use the relative time unit as given
                     relunit = " ".join(lc_vals)
                 timevals = [ ]
-                for t in xrange(axis_coords[k].shape[0]):
+                for t in range(axis_coords[k].shape[0]):
                     dtval = cdtime.reltime(axis_coords[k][t], relunit)
                     timevals.append(dtval)
                 newaxis = cdms2.createAxis(timevals, id=axis_names[k])
@@ -900,7 +909,7 @@ def put(datavar, axis_pos=None):
     axis_names = [ "" ] * libpyferret.MAX_FERRET_NDIM
     axis_units = [ "" ] * libpyferret.MAX_FERRET_NDIM
     axis_coords = [ None ] * libpyferret.MAX_FERRET_NDIM
-    for k in xrange(len(axis_list)):
+    for k in range(len(axis_list)):
         #
         # get the information for this axis
         axis = axis_list[k]
@@ -926,7 +935,7 @@ def put(datavar, axis_pos=None):
             # try to create a time axis reading the values as cdtime comptime objects
             try:
                 time_coords = numpy.empty((len(axis_data),6), dtype=numpy.int32, order="C")
-                for t in xrange(len(axis_data)):
+                for t in range(len(axis_data)):
                     tval = axis_data[t]
                     time_coords[t, libpyferret.TIMEARRAY_DAYINDEX] = tval.day
                     time_coords[t, libpyferret.TIMEARRAY_MONTHINDEX] = tval.month
@@ -956,12 +965,12 @@ def put(datavar, axis_pos=None):
             # if not comptime objects, assume reltime objects - create as a custom axis
             if axis_types[k] == libpyferret.AXISTYPE_CUSTOM:
                 time_coords = numpy.empty((len(axis_data),), dtype=numpy.float64)
-                for t in xrange(len(axis_data)):
+                for t in range(len(axis_data)):
                     time_coords[t] = axis_data[t].value
                 axis_coords[k] = timecoords
                 # assign axis_units as the reltime units - makes sure all are the same
                 axis_units[k] = axis_data[0].units
-                for t in xrange(1, len(axis_data)):
+                for t in range(1, len(axis_data)):
                     if axis_data[t].units != axis_units[k]:
                         raise ValueError("Relative time axis does not have a consistent start point")
         #
diff --git a/pyfermod/decref_pyobj.c b/pyfermod/decref_pyobj.c
index 02f2194..36e98f6 100644
--- a/pyfermod/decref_pyobj.c
+++ b/pyfermod/decref_pyobj.c
@@ -33,9 +33,10 @@
  */
 
 #include <Python.h>
+#include "ferret.h"
 #include "pyferret.h"
 
-void decref_pyobj_(void *pyobj_ptr_ptr)
+void FORTRAN(decref_pyobj)(void *pyobj_ptr_ptr)
 {
    PyObject *pyobj;
 
diff --git a/pyfermod/eofanal/eofanalysis.py b/pyfermod/eofanal/eofanalysis.py
index ae2a7ba..1cf8805 100644
--- a/pyfermod/eofanal/eofanalysis.py
+++ b/pyfermod/eofanal/eofanalysis.py
@@ -10,6 +10,8 @@ raised by some methods in the EOFAnalysis class.
 @author: Karl M. Smith
 '''
 
+from __future__ import print_function
+
 import math
 import numpy
 import numpy.linalg
@@ -222,7 +224,7 @@ class EOFAnalysis(object):
             raise InvalidStateError('analyze method has not been called')
         # The fracsignifs are ordered from smallest to largest.
         # Optimized for the usual case where most EOFs are insignificant.
-        for k in xrange(len(self.__fracsignifs)):
+        for k in range(len(self.__fracsignifs)):
             if self.__fracsignifs[-(k+1)] < self.__minsignif:
                 return k
         return len(self.__fracsignifs)
@@ -495,8 +497,8 @@ if __name__ == '__main__':
     cosT = numpy.cos(months * numpy.pi / 6.0)
     sinT = numpy.sin(months * numpy.pi / 6.0)
 
-    print
-    print 'spacetime = [ cosT, sinT + 1 ]'
+    print()
+    print('spacetime = [ cosT, sinT + 1 ]')
     spacetimedata = numpy.matrix([cosT,
                                   sinT + 1.0]).T
     eofanal = EOFAnalysis(spacetimedata)
@@ -504,24 +506,24 @@ if __name__ == '__main__':
     defminsignif = eofanal.minsignif();
     eofanal.setminsignif(0.1)
     fracsignifs = eofanal.signiffracs()
-    print 'EOF fractional significances:'
-    print formatter.pformat(fracsignifs)
+    print('EOF fractional significances:')
+    print(formatter.pformat(fracsignifs))
     numeofs = eofanal.numeofs()
-    print 'Number of significant EOFs: %d' % numeofs
+    print('Number of significant EOFs: %d' % numeofs)
     totalcontrib = eofanal.datapiece(0)
-    for k in xrange(1, numeofs+1):
+    for k in range(1, numeofs+1):
         eofvec = eofanal.eofvec(k)
         sqnorm = numpy.dot(eofvec, eofvec)
-        print 'EOF %d has norm^2: %#.4f' % (k, sqnorm)
-        print formatter.pformat(eofvec)
+        print('EOF %d has norm^2: %#.4f' % (k, sqnorm))
+        print(formatter.pformat(eofvec))
         tafvec = eofanal.tafvec(k)
         sqnorm = numpy.dot(tafvec, tafvec)
-        print 'TAF %d has norm^2: %#.4f' % (k, sqnorm)
-        print formatter.pformat(tafvec)
+        print('TAF %d has norm^2: %#.4f' % (k, sqnorm))
+        print(formatter.pformat(tafvec))
         tafeof = numpy.outer(tafvec, eofvec) 
         contrib = eofanal.datapiece(k)
         if numpy.allclose(contrib, tafeof):
-            print 'datapiece(%d) all close to expected values' % k
+            print('datapiece(%d) all close to expected values' % k)
         else:
             raise ValueError(
                     'datapiece(%d):\n    expected\n%s\n    found\n%s' % \
@@ -530,7 +532,7 @@ if __name__ == '__main__':
         totalcontrib += contrib
         expdata = eofanal.dataexplained(k)
         if numpy.allclose(expdata, totalcontrib):
-            print 'dataexplained(%d) all close to expected values' % k
+            print('dataexplained(%d) all close to expected values' % k)
         else:
             raise ValueError(
                     'dataexplained(%d):\n    expected\n%s\n    found\n%s' % \
@@ -539,18 +541,18 @@ if __name__ == '__main__':
         datadeltas = numpy.array(numpy.abs(spacetimedata - expdata)).flatten()
         maxdiff = numpy.max(datadeltas)
         rmsdiff = math.sqrt(numpy.average(datadeltas * datadeltas))
-        print 'Max and RMS diff btwn data explained by %d most' % k
-        print '    influential EOFs and actual data: %#.8f, %#.8f' % \
-              (maxdiff, rmsdiff)
+        print('Max and RMS diff btwn data explained by %d most' % k)
+        print('    influential EOFs and actual data: %#.8f, %#.8f' % \
+              (maxdiff, rmsdiff))
     datadeltas = numpy.array(numpy.abs(spacetimedata - totalcontrib)).flatten()
     maxdiff = numpy.max(datadeltas)
     rmsdiff = math.sqrt(numpy.average(datadeltas * datadeltas))
-    print 'Max and RMS diff btwn sum of all significant'
-    print '    data pieces and actual data: %#.8f, %#.8f' % \
-          (maxdiff, rmsdiff)
+    print('Max and RMS diff btwn sum of all significant')
+    print('    data pieces and actual data: %#.8f, %#.8f' % \
+          (maxdiff, rmsdiff))
 
-    print
-    print 'spacetime = [ cosT * cosT, cosT * sinT + 1, cosT * sinT + 2, sinT * sinT + 3 ]'
+    print()
+    print('spacetime = [ cosT * cosT, cosT * sinT + 1, cosT * sinT + 2, sinT * sinT + 3 ]')
     spacetimedata = numpy.matrix([ cosT * cosT,
                                    cosT * sinT + 1.0,
                                    cosT * sinT + 2.0,
@@ -558,24 +560,24 @@ if __name__ == '__main__':
     eofanal = EOFAnalysis(spacetimedata)
     eofanal.analyze()
     fracsignifs = eofanal.signiffracs()
-    print 'EOF fractional significances:'
-    print formatter.pformat(fracsignifs)
+    print('EOF fractional significances:')
+    print(formatter.pformat(fracsignifs))
     numeofs = eofanal.numeofs()
-    print 'Number of significant EOFs: %d' % numeofs
+    print('Number of significant EOFs: %d' % numeofs)
     totalcontrib = eofanal.datapiece(0)
-    for k in xrange(1, numeofs+1):
+    for k in range(1, numeofs+1):
         eofvec = eofanal.eofvec(k)
         sqnorm = numpy.dot(eofvec, eofvec)
-        print 'EOF %d has norm^2: %#.4f' % (k, sqnorm)
-        print formatter.pformat(eofvec)
+        print('EOF %d has norm^2: %#.4f' % (k, sqnorm))
+        print(formatter.pformat(eofvec))
         tafvec = eofanal.tafvec(k)
         sqnorm = numpy.dot(tafvec, tafvec)
-        print 'TAF %d has norm^2: %#.4f' % (k, sqnorm)
-        print formatter.pformat(tafvec)
+        print('TAF %d has norm^2: %#.4f' % (k, sqnorm))
+        print(formatter.pformat(tafvec))
         tafeof = numpy.outer(tafvec, eofvec) 
         contrib = eofanal.datapiece(k)
         if numpy.allclose(contrib, tafeof):
-            print 'datapiece(%d) all close to expected values' % k
+            print('datapiece(%d) all close to expected values' % k)
         else:
             raise ValueError(
                     'datapiece(%d):\n    expected\n%s\n    found\n%s' % \
@@ -584,7 +586,7 @@ if __name__ == '__main__':
         totalcontrib += contrib
         expdata = eofanal.dataexplained(k)
         if numpy.allclose(expdata, totalcontrib):
-            print 'dataexplained(%d) all close to expected values' % k
+            print('dataexplained(%d) all close to expected values' % k)
         else:
             raise ValueError(
                     'dataexplained(%d):\n    expected\n%s\n    found\n%s' % \
@@ -593,31 +595,31 @@ if __name__ == '__main__':
         datadeltas = numpy.array(numpy.abs(spacetimedata - expdata)).flatten()
         maxdiff = numpy.max(datadeltas)
         rmsdiff = math.sqrt(numpy.average(datadeltas * datadeltas))
-        print 'Max and RMS diff btwn data explained by %d most' % k
-        print '    influential EOFs and actual data: %#.8f, %#.8f' % \
-              (maxdiff, rmsdiff)
+        print('Max and RMS diff btwn data explained by %d most' % k)
+        print('    influential EOFs and actual data: %#.8f, %#.8f' % \
+              (maxdiff, rmsdiff))
     datadeltas = numpy.array(numpy.abs(spacetimedata - totalcontrib)).flatten()
     maxdiff = numpy.max(datadeltas)
     rmsdiff = math.sqrt(numpy.average(datadeltas * datadeltas))
-    print 'Max and RMS diff btwn sum of all significant'
-    print '    data pieces and actual data: %#.8f, %#.8f' % \
-          (maxdiff, rmsdiff)
+    print('Max and RMS diff btwn sum of all significant')
+    print('    data pieces and actual data: %#.8f, %#.8f' % \
+          (maxdiff, rmsdiff))
 
     fmat = spacetimedata - eofanal.datapiece(0)
-    for k in xrange(1, spacetimedata.shape[1] - numeofs + 1):
+    for k in range(1, spacetimedata.shape[1] - numeofs + 1):
         nullvec = eofanal.nullvec(k)
         sqnorm = numpy.dot(nullvec, nullvec)
-        print 'Null-space vector %d has norm^2: %#.4f' % (k, sqnorm)
-        print formatter.pformat(nullvec)
+        print('Null-space vector %d has norm^2: %#.4f' % (k, sqnorm))
+        print(formatter.pformat(nullvec))
         tafvec = numpy.array(fmat * numpy.matrix(nullvec).T).squeeze()
         sqnorm = numpy.dot(tafvec, tafvec)
-        print 'F * NSV %d has norm^2: %#.4f' % (k, sqnorm)
+        print('F * NSV %d has norm^2: %#.4f' % (k, sqnorm))
         # print formatter.pformat(tafvec)
 
-    import cPickle
+    import pickle
 
-    eofpicklestring = cPickle.dumps(eofanal)
-    print 'length of the eofanal pickle string: %d' % len(eofpicklestring)
-    neweofanal = cPickle.loads(eofpicklestring)
-    print 'unpickled eofanal.numeofs() = %d' % neweofanal.numeofs()
+    eofpicklestring = pickle.dumps(eofanal)
+    print('length of the eofanal pickle string: %d' % len(eofpicklestring))
+    neweofanal = pickle.loads(eofpicklestring)
+    print('unpickled eofanal.numeofs() = %d' % neweofanal.numeofs())
 
diff --git a/pyfermod/eofanal/eofanalysistests.py b/pyfermod/eofanal/eofanalysistests.py
index 84dd74e..b9855b5 100644
--- a/pyfermod/eofanal/eofanalysistests.py
+++ b/pyfermod/eofanal/eofanalysistests.py
@@ -278,7 +278,7 @@ class EOFAnalysisTests(unittest.TestCase):
         ccssanal = eofanalysis.EOFAnalysis(self.ccssmat)
         ccssanal.analyze()
         datatotal = ccssanal.datapiece(0)
-        for k in xrange(1, ccssanal.numeofs()+1):
+        for k in range(1, ccssanal.numeofs()+1):
             eofvec = ccssanal.eofvec(k)
             tafvec = ccssanal.tafvec(k)
             tafeof = numpy.outer(tafvec, eofvec)
@@ -314,7 +314,7 @@ class EOFAnalysisTests(unittest.TestCase):
         ccssanal = eofanalysis.EOFAnalysis(self.ccssmat)
         ccssanal.analyze()
         datatotal = numpy.matrix(numpy.zeros(self.ccssmat.shape))
-        for k in xrange(ccssanal.numeofs()+1):
+        for k in range(ccssanal.numeofs()+1):
             datatotal += ccssanal.datapiece(k)
             dataexpld = ccssanal.dataexplained(k)
             self.assertTrue(numpy.allclose(dataexpld, datatotal), 
diff --git a/pyfermod/eofanal/eofdatapiece.py b/pyfermod/eofanal/eofdatapiece.py
index 59e4371..d8b802a 100644
--- a/pyfermod/eofanal/eofdatapiece.py
+++ b/pyfermod/eofanal/eofdatapiece.py
@@ -7,6 +7,8 @@ Time Amplitude Funtion (TAF)
 @author: Karl Smith
 '''
 
+from __future__ import print_function
+
 import numpy
 import pyferret
 import pyferret.eofanal as eofanal
@@ -100,7 +102,7 @@ def ferret_compute(efid, result, result_bdf, inputs, input_bdfs):
                                 input_bdfs[pyferret.ARG1]) >= 1.0E-5 )
     # Get the mask of where the data is defined for every time step
     defd_mask = numpy.logical_and.reduce(defined_data, axis=pyferret.T_AXIS)
-    for t in xrange(ntime):    
+    for t in range(ntime):
         defined_data[:, :, :, t] = defd_mask 
     # Convert to time-location (a 2-D array), 
     # eliminating locations with missing time steps, 
@@ -120,7 +122,7 @@ def ferret_compute(efid, result, result_bdf, inputs, input_bdfs):
     numeofs = eofs.numeofs()
     if (maxeofs > 0) and (numeofs > maxeofs):
         numeofs = maxeofs
-    for k in xrange(numeofs+1):
+    for k in range(numeofs+1):
         timeloc_piece = eofs.datapiece(k)
         loctime_piece = numpy.array(timeloc_piece.T).reshape(-1)
         result[:, :, :, :, k, 0][defined_data] = loctime_piece
@@ -145,12 +147,12 @@ if __name__ == "__main__":
     tdata = -5.0 * numpy.cos((tdata - 2190.0) * numpy.pi / 4380.0)
     yztdata += numpy.outer(yzdata, tdata).reshape((1, 17, 6, 25, 1, 1))
     yztdata += 6.0
-    print "time series at Y = 0.0, Z = 0.0"
-    print str(yztdata[0, 8, 0, :, 0, 0])
-    print "depth series at Y = 0.0, T = start of April"
-    print str(yztdata[0, 8, :, 6, 0, 0])
-    print "latitude series at Z = 0.0, T = start of April"
-    print str(yztdata[0, :, 0, 6, 0, 0])
+    print("time series at Y = 0.0, Z = 0.0")
+    print(str(yztdata[0, 8, 0, :, 0, 0]))
+    print("depth series at Y = 0.0, T = start of April")
+    print(str(yztdata[0, 8, :, 6, 0, 0]))
+    print("latitude series at Z = 0.0, T = start of April")
+    print(str(yztdata[0, :, 0, 6, 0, 0]))
     # Create the result array and the other ferret_compute arguments
     result = numpy.zeros((1, 17, 6, 25, 17*6, 1))
     resbdf = numpy.array([1.0E20])
@@ -160,20 +162,20 @@ if __name__ == "__main__":
     ferret_compute(0, result, resbdf, inputs, inpbdfs)
     piecesum = numpy.zeros((1, 17, 6, 25))
     lastone = 0
-    for m in xrange(17 * 6):
+    for m in range(17 * 6):
         if numpy.allclose(result[:, :, :, :, m, 0], resbdf):
             break;
-        print "EOF-TAF piece %d" % m
-        print "    time series at Y = 0.0, Z = 0.0"
-        print "    " + str(result[0, 8, 0, :, m, 0])
-        print "    depth series at Y = 0.0, T = start of April"
-        print "    " + str(result[0, 8, :, 6, m, 0])
-        print "    latitude series at Z = 0.0, T = start of April"
-        print "    " + str(result[0, :, 0, 6, m, 0])
+        print("EOF-TAF piece %d" % m)
+        print("    time series at Y = 0.0, Z = 0.0")
+        print("    " + str(result[0, 8, 0, :, m, 0]))
+        print("    depth series at Y = 0.0, T = start of April")
+        print("    " + str(result[0, 8, :, 6, m, 0]))
+        print("    latitude series at Z = 0.0, T = start of April")
+        print("    " + str(result[0, :, 0, 6, m, 0]))
         lastone = m
         piecesum += result[:, :, :, :, m, 0]
     if numpy.allclose(piecesum, yztdata[:, :, :, :, 0, 0]):
-        print "sum of %d pieces all close to input data" % lastone
+        print("sum of %d pieces all close to input data" % lastone)
     else:
-        print "sum %d pieces different from input data" % lastone
+        print("sum %d pieces different from input data" % lastone)
 
diff --git a/pyfermod/eofanal/eofdatasum.py b/pyfermod/eofanal/eofdatasum.py
index 81d0369..9042d0a 100644
--- a/pyfermod/eofanal/eofdatasum.py
+++ b/pyfermod/eofanal/eofdatasum.py
@@ -1,6 +1,6 @@
 '''
 PyFerret external function providing data partitioned into summed 
-pieces along the ensemble axis.  The data at ensemble value 'm'  
+pieces along the ensemble axis.  The data at ensemble value 'm' 
 is the data explained by the 'm' most-significant Empirical Orthogonal 
 Functions (EOFs) and their corresponding Time Amplitude Functions 
 (TAFs).
@@ -8,6 +8,7 @@ Functions (EOFs) and their corresponding Time Amplitude Functions
 @author: Karl Smith
 '''
 
+from __future__ import print_function
 
 import numpy
 import pyferret
@@ -101,7 +102,7 @@ def ferret_compute(efid, result, result_bdf, inputs, input_bdfs):
                                 input_bdfs[pyferret.ARG1]) >= 1.0E-5 )
     # Get the mask of where the data is defined for every time step
     defd_mask = numpy.logical_and.reduce(defined_data, axis=pyferret.T_AXIS)
-    for t in xrange(ntime):    
+    for t in range(ntime):
         defined_data[:, :, :, t] = defd_mask 
     # Convert to time-location (a 2-D array), 
     # eliminating locations with missing time steps, 
@@ -121,7 +122,7 @@ def ferret_compute(efid, result, result_bdf, inputs, input_bdfs):
     numeofs = eofs.numeofs()
     if (maxeofs > 0) and (numeofs > maxeofs):
         numeofs = maxeofs
-    for k in xrange(numeofs+1):
+    for k in range(numeofs+1):
         timeloc_sum = eofs.dataexplained(k)
         loctime_sum = numpy.array(timeloc_sum.T).reshape(-1)
         result[:, :, :, :, k, 0][defined_data] = loctime_sum
@@ -146,12 +147,12 @@ if __name__ == "__main__":
     tdata = -5.0 * numpy.cos((tdata - 2190.0) * numpy.pi / 4380.0)
     yztdata += numpy.outer(yzdata, tdata).reshape((1, 17, 6, 25, 1, 1))
     yztdata += 6.0
-    print "time series at Y = 0.0, Z = 0.0"
-    print str(yztdata[0, 8, 0, :, 0, 0])
-    print "depth series at Y = 0.0, T = start of April"
-    print str(yztdata[0, 8, :, 6, 0, 0])
-    print "latitude series at Z = 0.0, T = start of April"
-    print str(yztdata[0, :, 0, 6, 0, 0])
+    print("time series at Y = 0.0, Z = 0.0")
+    print(str(yztdata[0, 8, 0, :, 0, 0]))
+    print("depth series at Y = 0.0, T = start of April")
+    print(str(yztdata[0, 8, :, 6, 0, 0]))
+    print("latitude series at Z = 0.0, T = start of April")
+    print(str(yztdata[0, :, 0, 6, 0, 0]))
     # Create the result array and the other ferret_compute arguments
     result = numpy.zeros((1, 17, 6, 25, 17*6, 1))
     resbdf = numpy.array([1.0E20])
@@ -160,20 +161,20 @@ if __name__ == "__main__":
     # Check ferret_compute
     ferret_compute(0, result, resbdf, inputs, inpbdfs)
     lastone = 0
-    for m in xrange(17 * 6):
+    for m in range(17 * 6):
         if numpy.allclose(result[:, :, :, :, m, 0], resbdf):
             break;
-        print "EOF-TAF sum %d" % m
-        print "    time series at Y = 0.0, Z = 0.0"
-        print "    " + str(result[0, 8, 0, :, m, 0])
-        print "    depth series at Y = 0.0, T = start of April"
-        print "    " + str(result[0, 8, :, 6, m, 0])
-        print "    latitude series at Z = 0.0, T = start of April"
-        print "    " + str(result[0, :, 0, 6, m, 0])
+        print("EOF-TAF sum %d" % m)
+        print("    time series at Y = 0.0, Z = 0.0")
+        print("    " + str(result[0, 8, 0, :, m, 0]))
+        print("    depth series at Y = 0.0, T = start of April")
+        print("    " + str(result[0, 8, :, 6, m, 0]))
+        print("    latitude series at Z = 0.0, T = start of April")
+        print("    " + str(result[0, :, 0, 6, m, 0]))
         lastone = m
     if numpy.allclose(result[:, :, :, :, lastone, 0], 
                      yztdata[:, :, :, :, 0, 0]):
-        print "sum %d all close to input data" % lastone
+        print("sum %d all close to input data" % lastone)
     else:
-        print "sum %d different from input data" % lastone
+        print("sum %d different from input data" % lastone)
 
diff --git a/pyfermod/feraggdset.py b/pyfermod/feraggdset.py
index fd55499..9892320 100644
--- a/pyfermod/feraggdset.py
+++ b/pyfermod/feraggdset.py
@@ -2,6 +2,11 @@
 Represents an aggregation of data sets
 '''
 
+from __future__ import print_function
+
+import sys
+import os
+import tempfile
 import pyferret
 from pyferret.ferdset import _anonymous_dataset_qualifier
 
@@ -28,7 +33,7 @@ class FerAggDSet(pyferret.FerDSet):
                 such as with pyferret.showdata()
         '''
         # Create an empty dataset with the given Ferret name
-        super(FerAggDSet, self).__init__(qual=_anonymous_dataset_qualifier)
+        super(FerAggDSet, self).__init__('', qual=_anonymous_dataset_qualifier)
         if not isinstance(name, str):
             raise ValueError('Ferret name for the aggregate dataset must be astring')
         aggname = name.strip()
@@ -40,44 +45,67 @@ class FerAggDSet(pyferret.FerDSet):
         self._compdsetnames = [ ]
         # But still use a dictionary with uppercase names for keys
         self._compdsets = { }
-        # Create the DEFINE DATA /AGGREGATE Ferret command, creating
-        # and saving component FerDSets as needed
+
         if along not in ('T', 'E', 'F'):
             raise ValueError("along must be one of 'T', 'E', or 'F'")
-        cmdstr = 'DEFINE DATA/AGGREGATE/' + along
+        self._along = along
+        self._comphidden = bool(hide)
+
+        # Create a Ferret string variable containing all the dataset names to be aggregated
+        if not ( isinstance(dsets, tuple) or isinstance(dsets, list) ):
+            raise ValueError('dsets must be a tuple or list of strings and/or FerDSets')
+        filesfile = tempfile.NamedTemporaryFile(mode='w', delete=False, 
+                                  prefix=aggname + '_', suffix='_agg.txt')
+        filesfilename = filesfile.name
+        deletefilesfile = True
+        try:
+            for myitem in dsets:
+                if isinstance(myitem, str):
+                    mydset = pyferret.FerDSet(myitem)
+                elif isinstance(myitem, pyferret.FerDSet):
+                    mydset = myitem
+                else:
+                    raise ValueError('dsets must be a tuple or list of strings and/or FerDSets')
+                if mydset._dsetname.upper() in self._compdsets:
+                    raise ValueError('duplicate dataset name ' + mydset._dsetname)
+                print(mydset._dsetname, file=filesfile)
+                self._compdsetnames.append(mydset._dsetname)
+                self._compdsets[mydset._dsetname.upper()] = mydset
+            deletefilesfile = False
+        finally:
+            filesfile.close()
+            if deletefilesfile:
+                os.unlink(filesfilename)
+        filesvarname = aggname + "_datafile_names"
+        cmdstr = 'LET ' + filesvarname + ' = SPAWN("cat \'' + filesfilename + '\'")'
+        (errval, errmsg) = pyferret.run(cmdstr)
+        if errval != pyferret.FERR_OK:
+            os.unlink(filesfilename)
+            raise ValueError(errmsg)
+        # filesfile not read (SPAWN command executed) until filesvarname is needed
+
+        # Create the DEFINE DATA /AGGREGATE Ferret command, creating
+        # and saving component FerDSets as needed
+        cmdstr = 'DEFINE DATA/AGGREGATE/' + self._along
         if title:
             cmdstr += '/TITLE="' + str(title) + '"'
         if not warn:
             cmdstr += '/QUIET'
-        if hide:
+        if self._comphidden:
             cmdstr += '/HIDE'
-        cmdstr += ' ' + aggname + ' = '
-        firstone = True
-        if not ( isinstance(dsets, tuple) or isinstance(dsets, list) ):
-            raise ValueError('dsets must be a tuple or list of strings and/or FerDSets')
-        for myitem in dsets:
-            if isinstance(myitem, str):
-                mydset = pyferret.FerDSet(myitem)
-            elif isinstance(myitem, pyferret.FerDSet):
-                mydset = myitem
-            else:
-                raise ValueError('dsets must be a tuple or list of strings and/or FerDSets')
-            if mydset._dsetname.upper() in self._compdsets:
-                raise ValueError('duplicate dataset name ' + mydset._dsetname)
-            if not firstone:
-                cmdstr += ', '
-            else:
-                firstone = False
-            cmdstr += mydset._dsetname
-            self._compdsetnames.append(mydset._dsetname)
-            self._compdsets[mydset._dsetname.upper()] = mydset
+        cmdstr += ' ' + aggname + ' = ' + filesvarname
         (errval, errmsg) = pyferret.run(cmdstr)
+        # filesfile now read so can delete it
+        os.unlink(filesfilename)
         if errval != pyferret.FERR_OK:
             raise ValueError(errmsg)
 
         # create a FerVar for each variable in this dataset
         namesdict = pyferret.getstrdata('..varnames')
         for varname in namesdict['data'].flatten():
+            if sys.version_info[0] > 2:
+                # For Python3.x, namesdict['data'] is a NumPy array of bytes; convert to unicode
+                varname = str(varname, 'UTF-8')
             # create a FerVar representing this existing Ferret aggregated file variable
             filevar = pyferret.FerVar()
             filevar._markasknownvar(varname, self._dsetname, True)
@@ -92,16 +120,18 @@ class FerAggDSet(pyferret.FerDSet):
         Representation to of this FerAggDSet.
         Includes the variable names as variables can be added after creation.
         '''
-        infostr = "FerAggDSet(name='%s', dsets=%s) with variables %s" % \
-                  (self._dsetname, str(self._compdsetnames), str(self.fernames(sort=True)))
+        infostr = "FerAggDSet(name='%s', dsets=%s, along='%s', hide=%s) with variables %s" % \
+                  (self._dsetname, str(self._compdsetnames), self._along, 
+                   str(self._comphidden), str(self.fernames(sort=True)))
         return infostr
 
 
     def __eq__(self, other):
         '''
-        Two FerAddDSets are equal if their Ferret names, lists of aggregated 
-        dataset names, and dictionary of FerVar variables are all equal.
-        All string values are compared case-insensitive.
+        Two FerAggDSets are equal if their Ferret names, lists of aggregated 
+        dataset names, aggregation axis, component dataset hidden status, and 
+        dictionary of FerVar are variables all equal.  All string values are 
+        compared case-insensitive.
         '''
         if not isinstance(other, pyferret.FerDSet):
             return NotImplemented
@@ -109,9 +139,13 @@ class FerAggDSet(pyferret.FerDSet):
             return False
         if not super(FerAggDSet, self).__eq__(other):
             return False
+        if self._along != other._along:
+            return False
+        if self._comphidden != other._comphidden:
+            return False
         if len(self._compdsetnames) != len(other._compdsetnames):
             return False
-        for k in xrange(len(self._compdsetnames)):
+        for k in range(len(self._compdsetnames)):
             if self._compdsetnames[k].upper() != other._compdsetnames[k].upper():
                 return False
         return True
@@ -149,14 +183,17 @@ class FerAggDSet(pyferret.FerDSet):
         Removes (cancels) all the variables in Ferret associated with this dataset,
         then closes (cancels) this dataset in Ferret.  If the aggregated dataset was 
         created with hide=True, this will close (cancel) all the component datasets 
-        as well.  Raises a ValueError if there is a problem.
+        as well; otherwise the component datasets and dataset names will remain here
+        and in Ferret.  Raises a ValueError if there is a problem.
         '''
         # if the dataset is already closed, ignore this command
         if not self._dsetname:
             return
         # run the Ferret CANCEL commands in FerDSet.close
         super(FerAggDSet, self).close()
-        # clear the list of dataset names and dictionary of datasets
-        self._compdsets.clear()
-        self._compdsetnames = [ ]
+        # if component datasets were hidden, the above close also closed all the
+        # component datasets, so also clear the component dataset information
+        if self._comphidden:
+            self._compdsets.clear()
+            self._compdsetnames = [ ]
 
diff --git a/pyfermod/feraxis.py b/pyfermod/feraxis.py
index 566e248..e7944c2 100644
--- a/pyfermod/feraxis.py
+++ b/pyfermod/feraxis.py
@@ -66,7 +66,7 @@ class FerAxis(object):
                 (Thus, coords[t, TIMEARRAY_YEARINDEX] gives the year of time t.)
                 Note: a relative time axis will be of type AXISTYPE_CUSTOM, with a unit
                       indicating the starting point, such as 'days since 01-JAN-2000'
-                For an abstact axis or an axis normal to the data, this argument is ignored.
+                For an abstract axis or an axis normal to the data, this argument is ignored.
             unit (string): unit of the axis; for a time axis, this gives the calendar 
                     as one of
                     pyferret.CALTYPE_360DAY
@@ -75,7 +75,7 @@ class FerAxis(object):
                     pyferret.CALTYPE_JULIAN
                     pyferret.CALTYPE_ALLLEAP
                     pyferret.CALTYPE_NONE    (calendar not specified)
-                For abstact axes, or axes normal to the data, this argument is ignored.
+                For abstract axes, or axes normal to the data, this argument is ignored.
             name (string): Ferret name for the axis
                 For an axis normal to the data, this argument is ignored.
         '''
diff --git a/pyfermod/ferdset.py b/pyfermod/ferdset.py
index 418c678..625fa4c 100644
--- a/pyfermod/ferdset.py
+++ b/pyfermod/ferdset.py
@@ -2,6 +2,7 @@
 Represents a data set (file) and the data variables it contains.
 '''
 
+import sys
 import pyferret
 
 _anonymous_dataset_qualifier = '__new_anonymous_dataset__'
@@ -11,7 +12,7 @@ class FerDSet(object):
     A data set and the data variables it contains
     '''
 
-    def __init__(self, filename='', title='', qual=''):
+    def __init__(self, filename, title='', qual=''):
         '''
         "Opens" the given NetCDF dataset file in Ferret using the Ferret "USE" command.
         Creates a FerVar for each data variable in this data file and 
@@ -20,7 +21,6 @@ class FerDSet(object):
             title (string): title for the dataset for plots and listing;
                 if not given, the Ferret name for the dataset will be used
             qual (string): Ferret qualifiers to be used with the "USE" command
-        If filename is None or empty, an anonymous dataset is returned.
         '''
         self._filename = ''
         self._dsetname = ''
@@ -47,13 +47,14 @@ class FerDSet(object):
 
         # record the filename and Ferret dataset name 
         self._filename = filename
-        slashidx = filename.rfind('/') + 1
-        self._dsetname = filename[slashidx:]
-        if not self._dsetname:
-            raise ValueError('invalid dataset name derived from the filename')
+        # need to use the filename as given as the dataset name to avoid possible abiguity
+        self._dsetname = filename
         # create a FerVar for each variable in this dataset
         namesdict = pyferret.getstrdata('..varnames')
         for varname in namesdict['data'].flatten():
+            if sys.version_info[0] > 2:
+                # For Python3.x, namesdict['data'] is a NumPy array of bytes; convert to unicode
+                varname = str(varname, 'UTF-8')
             # create a FerVar representing this existing Ferret file variable
             filevar = pyferret.FerVar()
             filevar._markasknownvar(varname, self._dsetname, True)
@@ -63,24 +64,13 @@ class FerDSet(object):
             self._fervarnames.add(varname)
 
 
-    def __del__(self):
-        '''
-        Removes this dataset from Ferret.
-        '''
-        try:
-            self.close()
-            # ignore any errors (Ferret or any other)
-        except Exception:
-            pass
-
-
     def __repr__(self):
         '''
         Representation to recreate this FerDataSet.
         Also includes the variable names as variables can be added after creation.
         '''
-        infostr = "FerDSet('%s') using dataset name '%s' and variables %s" % \
-                  (self._filename, self._dsetname, str(self.fernames(sort=True)))
+        infostr = "FerDSet('%s') with variables %s" % \
+                  (self._filename, str(self.fernames(sort=True)))
         return infostr
 
 
@@ -306,10 +296,10 @@ class FerDSet(object):
         if not self._dsetname:
             return
         # now remove the dataset
-        cmdstr = 'CANCEL DATA %s' % self._dsetname
+        cmdstr = 'CANCEL DATA "%s"' % self._dsetname
         (errval, errmsg) = pyferret.run(cmdstr)
         if errval != pyferret.FERR_OK:
-            raise ValueError('unable to remove dataset %s in Ferret: %s' % self._dsetname)
+            raise ValueError('unable to remove dataset "%s" in Ferret: %s' % self._dsetname)
         # mark this dataset as closed
         self._dsetname = ''
 
@@ -340,8 +330,9 @@ class FerDSet(object):
                 cmdstr += '/FULL'
             if qual:
                 cmdstr += qual
-            cmdstr += ' '
+            cmdstr += ' "'
             cmdstr += self._dsetname
+            cmdstr += '"'
         (errval, errmsg) = pyferret.run(cmdstr)
         if errval != pyferret.FERR_OK:
             raise ValueError('Ferret command "%s" failed: %s' % (cmdstr, errmsg))
diff --git a/pyfermod/ferfmrcdset.py b/pyfermod/ferfmrcdset.py
new file mode 100644
index 0000000..a877385
--- /dev/null
+++ b/pyfermod/ferfmrcdset.py
@@ -0,0 +1,48 @@
+''' Represents a forecast-model-run collection in Ferret '''
+
+import pyferret
+from pyferret.ferfmrcvar import _fmrc_var_qualifier
+
+class FerFMRCDSet(pyferret.FerAggDSet):
+    '''
+    A forecast-model-run collection dataset in Ferret.  Variables in this dataset
+    (FerFMRCVar objects) have restrictions on the time and forecast axes, and have
+    special transformations to better view the quality of the forecast represented 
+    by the variable.
+    '''
+
+    def __init__(self, name, dsets, title='', warn=True, hide=False):
+        '''
+        Creates a forecast-model-run collection dataset in Ferret.  Variables in 
+        the given datasets to be aggregated must have a time axes (forecasted time)
+        whose values are offset but otherwise match where they overlap (a subset
+        of thimes that advances along a single time axis that is the union of all 
+        dataset time axes).  The datasets can be given in any order; they will be 
+        arranged to have monotonically increasing time subsets.  The aggregated
+        variables (FerFMRCVar objects) have special transformations to better view 
+        the quality of the forecast represented by this variable.
+        '''
+        super(FerFMRCDSet, self).__init__(name=name, dsets=dsets, along='F', 
+                                          title=title, warn=warn, hide=hide)
+        # The datasets have been aggregated along the F axis and all the known 
+        # variables added to this dataset's _fervars dictionary.  Turn each of 
+        # these FerVar objects into a FerFMRCVar object.
+        for uppername in self._fervars.keys():
+            if uppername == 'TF_TIMES':
+                continue
+            self._fervars[uppername] = pyferret.FerFMRCVar(self._fervars[uppername], 
+                                                           _fmrc_var_qualifier)
+
+    def __repr__(self):
+        '''
+        Representation to of this FerFMRCDSet.
+        Includes the variable names as variables can be added after creation.
+        '''
+        infostr = "FerFMRCDSet(name='%s', dsets=%s, hide=%s) with variables %s" % \
+                  (self._dsetname, str(self._compdsetnames), 
+                   str(self._comphidden), str(self.fernames(sort=True)))
+        return infostr
+
+    # Note: Just use the __eq__ and __ne__ methods inherited from FerAggDSet.
+    #       No need to make these objects appear to be different from a FerAggDSet.
+
diff --git a/pyfermod/ferfmrcvar.py b/pyfermod/ferfmrcvar.py
new file mode 100644
index 0000000..24ec3b3
--- /dev/null
+++ b/pyfermod/ferfmrcvar.py
@@ -0,0 +1,74 @@
+''' Represents a Ferret variable that is part of a forecast-model-run collection '''
+
+import pyferret
+
+_fmrc_var_qualifier = '__new_fmrc_variable__'
+
+class FerFMRCVar(pyferret.FerVar):
+    '''
+    A Ferret variable (and thus, a FerVar) that is part of a FerFMRCDSet (forecast-
+    model-run collection dataset).  Such a Ferret variable has restrictions on the 
+    time and forecast axes, and has special transformations to better view the 
+    quality of the forecast represented by this variable.
+    '''
+
+    def __init__(self, fvar, qual):
+        '''
+        Create from the given FerVar that is part of a FerFMRCDSet (forecast-model-run 
+        collection dataset).  FerFMRCVar objects should only be created by a FerFMRCDSet 
+        object; this constructor should never be called directly.  The FerFMRCVar object
+        returned should replace the given FerVar.
+        '''
+        super(FerFMRCVar, self).__init__(defn=fvar._definition, title=fvar._title)
+        if (qual != _fmrc_var_qualifier) or (not fvar._varname) or \
+           (not fvar._dsetname) or (not fvar._definition) or (not fvar._isfilevar):
+            raise  ValueError('FerFMRCVar objects should only be created by FerFMRCDSet objects')
+        self._markasknownvar(fvar._varname, fvar._dsetname, True)
+
+    def __repr__(self):
+        '''
+        Representation of this FerFMRCVar
+        '''
+        infostr = "FerFMRCVar(varname='%s', dsetname='%s', title = '%s', defn='%s')" \
+                  % (self._varname, self._dsetname, self._title, self._definition)
+        return infostr
+
+    # Note: Just use the __cmp__, __eq__, and __ne__ methods inherited from FerVar.
+    #       No need to make these orbjects appear to be different from a FerVar.
+
+    def diagform(self):
+        '''
+        Returns an anonymous FerVar that is the transformation of this FerFMRCVar 
+        to a "diagonal" form, where the T (time) axis is the date forecasted and 
+        the F (forecast) axis is the date the forecast was made.
+        '''
+        if (not self._varname) or (not self._dsetname):
+            raise ValueError('Invalid FerFMRCVar object')
+        # TF_TIMES is an automatically generated variable for FMRC datasets in Ferret
+        # TF_CAL_T is an automatically generated axis for FMRC datasets in Ferret
+        diagdefn = '%s[gt(TF_TIMES)=TF_CAL_T]' % self._varname
+        title = self._title + ' (diag form)'
+        diagvar = pyferret.FerVar(defn=diagdefn, title=title)
+        diagvar._requires.add(self._varname.upper())
+        diagvar._requires.add("TF_TIMES")
+        return diagvar
+
+    def leadform(self):
+        '''
+        Returns an anonymous FerVar that is the transformation of this FerFMRCVar 
+        to the "lead" form, where the T (time) axis is the date forecasted and 
+        the F (forecast) axis is the lead time for the date forecasted (forecasted
+        time minus time that the forecast was made).
+        '''
+        if (not self._varname) or (not self._dsetname):
+            raise ValueError('Invalid FerFMRCVar object')
+        # TF_TIMES is an automatically generated variable for FMRC datasets in Ferret
+        # TF_CAL_T is an automatically generated axis for FMRC datasets in Ferret
+        # TF_LAG_F is an automatically generated axis for FMRC datasets in Ferret
+        leaddefn = '%s[gt(TF_TIMES)=TF_CAL_T,gf(TF_TIMES)=TF_LAG_F]' % self._varname
+        title = self._title + ' (lead form)'
+        leadvar = pyferret.FerVar(defn=leaddefn, title=title)
+        leadvar._requires.add(self._varname.upper())
+        leadvar._requires.add("TF_TIMES")
+        return leadvar
+
diff --git a/pyfermod/fergrid.py b/pyfermod/fergrid.py
index ae3a0db..3c822f4 100644
--- a/pyfermod/fergrid.py
+++ b/pyfermod/fergrid.py
@@ -35,7 +35,7 @@ class FerGrid(object):
         self._axes = [ None ] * pyferret.MAX_FERRET_NDIM
         if axes:
             try:
-                for k in xrange(len(axes)):
+                for k in range(len(axes)):
                     ax = axes[k]
                     if ax:
                         if not isinstance(ax, pyferret.FerAxis):
@@ -45,7 +45,7 @@ class FerGrid(object):
                 raise TypeError('axes is not a sequence type')
             except IndexError:
                 raise ValueError('more than %d axes specified' % pyferret.MAX_FERRET_NDIM)
-        for k in xrange(len(self._axes)):
+        for k in range(len(self._axes)):
             if self._axes[k] is None:
                 self._axes[k] = pyferret.FerAxis(axtype=pyferret.AXISTYPE_NORMAL)
 
@@ -56,9 +56,9 @@ class FerGrid(object):
         '''
         # Not elegant, but will do
         infostr = "FerGrid(axes=[\n"
-        for k in xrange(len(self._axes)):
+        for k in range(len(self._axes)):
             infostr += "    " + repr(self._axes[k]) + ",\n"
-        infostr += "    name='" + self._gridname + "'])"
+        infostr += "], name='" + self._gridname + "')"
         return infostr
 
 
@@ -164,7 +164,7 @@ class FerGrid(object):
             if not isinstance(newax, pyferret.FerAxis):
                 raise ValueError('newax is not valid (not a FerAxis)')
             if (newaxidx is None) and (newax.getaxtype() != pyferret.AXISTYPE_NORMAL):
-                for k in xrange(len(self._axes)):
+                for k in range(len(self._axes)):
                     if self._axes[k].getaxtype() == newax.getaxtype():
                         newaxidx = k
                         break
diff --git a/pyfermod/fermethods.py b/pyfermod/fermethods.py
index f9f3491..a32d3b2 100644
--- a/pyfermod/fermethods.py
+++ b/pyfermod/fermethods.py
@@ -8,7 +8,8 @@ import numbers
 import pyferret
 
 
-def setwindow(num=1, plotasp=None, axisasp=None, color=None, thick=None, logo=None):
+def setwindow(num=1, plotasp=None, axisasp=None, color=None, pal=None, 
+              thick=None, logo=None, outline=None):
     """
     Assigns the plot window to use for subsequent plotting commands.
     Also provides assignment of common window plots.  
@@ -26,12 +27,19 @@ def setwindow(num=1, plotasp=None, axisasp=None, color=None, thick=None, logo=No
             of int values in [0,100] giving RGB or RGBA values.
             If not given, the current value is unchanged.
             The default background color on start-up is opaque white.
+        pal (string): default color palette to use in plots.
+            If not given, thr current value is unchanged.
         thick (float): line thickness scaling factor for the plot.
             If not given, the current scaling factor is unchanged.
             The default line thickness scaling factor on start-up is 1.0
         logo (boolean): include the Ferret logo in the plot?
             If not given, the current value is unchanged.
             The default on start-up is to include the logo.
+        outline (float): if positive, thickness of polygon outlines;
+            used to fix the 'thin white line' issue in plots.
+            If not given, the current value is unchanged.
+            The default on start-up is zero (no outlines drawn).
+            
     Raises a ValueError if a problem occurs.
     """
     # create and execute the SET WINDOW command
@@ -50,6 +58,10 @@ def setwindow(num=1, plotasp=None, axisasp=None, color=None, thick=None, logo=No
         if (not isinstance(thick, numbers.Real)) or (thick <= 0):
             raise ValueError('thick, if given, must be a positive number')
         cmdstr += '/THICK=' + str(thick)
+    if outline is not None:
+        if (not isinstance(outline, numbers.Real)) or (outline < 0):
+            raise ValueErrror('outline, if given, must be a non-negative number')
+        cmdstr += '/OUTLINE=' + str(outline)
     if color is not None:
         if isinstance(color, str):
             cmdstr += '/COLOR=' + color
@@ -65,6 +77,11 @@ def setwindow(num=1, plotasp=None, axisasp=None, color=None, thick=None, logo=No
     (errval, errmsg) = pyferret.run(cmdstr)
     if errval != pyferret.FERR_OK:
         raise ValueError('Problems executing Ferret command %s: %s' % (cmdstr, errmsg))
+    if pal is not None:
+        cmdstr = 'PALETTE ' + str(pal)
+        (errval, errmsg) = pyferret.run(cmdstr)
+        if errval != pyferret.FERR_OK:
+            raise ValueError('Problems executing Ferret command %s: %s' % (cmdstr, errmsg))
     # create and execute the mode logo command if logo is given
     if logo is not None:
         if logo:
@@ -129,7 +146,7 @@ def showdata(brief=True, qual=''):
         raise ValueError('Ferret command "%s" failed: %s' % (cmdstr, errmsg))
 
 
-def contourplot(fvar, region=None, over=False, qual=''):
+def contourplot(fvar, region=None, over=False, pal=None, qual=''):
     """
     Create a contour plot of the specified Ferret variable using the Ferret CONTOUR command.
     Using the fill method to generated a color-filled contour plot.
@@ -138,6 +155,7 @@ def contourplot(fvar, region=None, over=False, qual=''):
         region (FerRegion): space-time region to plot; 
                 if None, the full extents of the data will be used
         over (bool): overlay on an existing plot?
+        pal (string): color palette to use
         qual (string): qualifiers to add to the Ferret SHADE command
     """
     if not isinstance(qual, str):
@@ -155,6 +173,8 @@ def contourplot(fvar, region=None, over=False, qual=''):
         if not isinstance(region, pyferret.FerRegion):
             raise ValueError('region, if given, must be a FerRegion')
         cmdstr += region._ferretqualifierstr();
+    if pal is not None:
+        cmdstr += '/PALETTE=' + str(pal)
     if qual:
         cmdstr += qual
     cmdstr += ' '
@@ -164,16 +184,17 @@ def contourplot(fvar, region=None, over=False, qual=''):
         raise ValueError('Ferret shade command (%s) failed: %s' % (cmdstr, errmsg))
 
 
-def fillplot(fvar, line=False, region=None, over=False, qual=''):
+def fillplot(fvar, region=None, line=False, over=False, pal=None, qual=''):
     """
     Create a color-filled contour plot of the specified Ferret variable using the Ferret 
     FILL command.  Drawing of the contour lines themselves is optional.
     The variable needs to be 2D (or qualifiers need to be added to specify a 2D slice).
         fvar (string or FerVar): Ferret variable to plot
-        line (bool): draw the contour lines?
         region (FerRegion): space-time region to plot; 
                 if None, the full extents of the data will be used
+        line (bool): draw the contour lines?
         over (bool): overlay on an existing plot?
+        pal (string): color palette to use
         qual (string): qualifiers to add to the Ferret SHADE command
     """
     if not isinstance(qual, str):
@@ -193,6 +214,8 @@ def fillplot(fvar, line=False, region=None, over=False, qual=''):
         if not isinstance(region, pyferret.FerRegion):
             raise ValueError('region, if given, must be a FerRegion')
         cmdstr += region._ferretqualifierstr();
+    if pal is not None:
+        cmdstr += '/PALETTE=' + str(pal)
     if qual:
         cmdstr += qual
     cmdstr += ' '
@@ -202,7 +225,7 @@ def fillplot(fvar, line=False, region=None, over=False, qual=''):
         raise ValueError('Ferret shade command (%s) failed: %s' % (cmdstr, errmsg))
 
 
-def shadeplot(fvar, region=None, over=False, qual=''):
+def shadeplot(fvar, region=None, over=False, pal=None, qual=''):
     """
     Create a colored plot of the specified Ferret variable using the Ferret SHADE command.
     (Plot coloring grid cells based on the variable value in that cell.)
@@ -211,6 +234,7 @@ def shadeplot(fvar, region=None, over=False, qual=''):
         region (FerRegion): space-time region to plot; 
                 if None, the full extents of the data will be used
         over (bool): overlay on an existing plot?
+        pal (string): color palette to use
         qual (string): qualifiers to add to the Ferret SHADE command
     """
     if not isinstance(qual, str):
@@ -228,6 +252,8 @@ def shadeplot(fvar, region=None, over=False, qual=''):
         if not isinstance(region, pyferret.FerRegion):
             raise ValueError('region, if given, must be a FerRegion')
         cmdstr += region._ferretqualifierstr();
+    if pal is not None:
+        cmdstr += '/PALETTE=' + str(pal)
     if qual:
         cmdstr += qual
     cmdstr += ' '
@@ -332,11 +358,12 @@ def shadewater(res=20, color='gray', over=True, solid=True, X=None, Y=None):
 
 
 def pointplot(fvar, vs=None, color=None, sym=None, symsize=None, thick=None,
-             line=False, title=None, region=None, over=False, label=True, qual=''):
+              line=False, title=None, region=None, over=False, label=True, qual=''):
     """
-    Create a point plot of the given value, or the given value versus another value (if vs is given),
-    possibly colored by another value (if color is a FerVar).
-    To create a line plot with symbols, use the pointplot command with the line option set to True.
+    Create a point plot of the given value, or the given value versus another value 
+    (if vs is given), possibly colored by another value (if color is a FerVar).
+    To create a line plot with symbols, use the pointplot command with the line 
+    option set to True.
         fvar (string or FerVar): Ferret variable to plot
         vs  (string or FerVar): if given, plot the above variable versus this variables
         color: line color or variable used to determine line color; if
@@ -433,11 +460,12 @@ def pointplot(fvar, vs=None, color=None, sym=None, symsize=None, thick=None,
 
 
 def lineplot(fvar, vs=None, color=None, thick=None, dash=None, title=None, 
-             region=None, over=False, label=True, qual=''):
+             region=None, along=None, over=False, label=True, qual=''):
     """
-    Create a line plot of the given value, or the given value versus another value (if vs is given),
-    possibly colored by another value (if color is a FerVar).
-    To create a line plot with symbols, use the pointplot command with the line option set to True.
+    Create a line plot of the given value, or the given value versus another value 
+    (if vs is given), possibly colored by another value (if color is a FerVar).
+    To create a line plot with symbols, use the pointplot command with the line 
+    option set to True.
         fvar (string or FerVar): Ferret variable to plot
         vs  (string or FerVar): if given, plot the above variable versus this variables
         color: line color or variable used to determine line color; if
@@ -455,6 +483,8 @@ def lineplot(fvar, vs=None, color=None, thick=None, dash=None, title=None,
         title (string): title for the plot; if not given,  Ferret's default title is used
         region (FerRegion): space-time region to plot; 
                 if None, the full extents of the data will be used
+        along (string; one of 'X','Y','Z','T','E','F', or lowercase): make a set of line 
+                plots from two-dimensional data with this axis as the horizontal axis.
         over (bool): overlay onto an existing plot
         label (bool): if False, suppress all plot labels
         qual (string): qualifiers to add to the Ferret PLOT/LINE command
@@ -503,11 +533,16 @@ def lineplot(fvar, vs=None, color=None, thick=None, dash=None, title=None,
        if not isinstance(title, str):
            raise ValueError('title must be a string')
        cmdstr += '/TITLE="' + title + '"'
+    if along is not None:
+       axisnames = ('X','Y','Z','T','E','F','x','y','z','t','e','f')
+       if not along in axisnames:
+           raise ValueError('along must be one of ' + str(axisnames))
+       cmdstr += '/ALONG=' + along.upper()
     if over:
         cmdstr += '/OVER'
     if region is not None:
         if not isinstance(region, pyferret.FerRegion):
-            raise ValueError('region, if given, must be a FerRegion')
+            raise ValueError('region must be a FerRegion')
         cmdstr += region._ferretqualifierstr();
     if not label:
         cmdstr += '/NOLABEL'
diff --git a/pyfermod/fershp/__init__.py b/pyfermod/fershp/__init__.py
index 79f0059..2339c2c 100644
--- a/pyfermod/fershp/__init__.py
+++ b/pyfermod/fershp/__init__.py
@@ -2,6 +2,8 @@
 Helper functions for pyferret shapefile external functions.
 """
 
+from __future__ import print_function
+
 import numpy
 import shapefile
 import os
@@ -33,7 +35,7 @@ def createprjfile(shapefile_mapprj, shapefile_name):
         prj_descript = pyferret.fershp.mapprj.name_to_descript(shapefile_mapprj)
     (sfname, ext) = os.path.splitext(shapefile_name)
     prjfile = file("%s.prj" % sfname, "w")
-    print >>prjfile, prj_descript
+    print(prj_descript, file=prjfile)
     prjfile.close()
 
 
@@ -241,7 +243,7 @@ if __name__ == "__main__":
                          "    expect: %s\n" \
                          "    found:  %s" % (wgs84upsnorth_descript, descript))
     del prjfile, datalines, descript
-    print "createprjfile: SUCCESS"
+    print("createprjfile: SUCCESS")
 
     # Test quadxycentroids
     xvals = ( ( 0, 1 ), ( 3, 4 ) )
@@ -268,7 +270,7 @@ if __name__ == "__main__":
         raise ValueError("Centroid Y values: expected %s; found %s" % \
                           (str(expecty), str(centy)))
     del xvals, yvals, expectx, expecty, centx, centy
-    print "quadxycentroids: SUCCESS"
+    print("quadxycentroids: SUCCESS")
 
     # Test quadxycenters
     xvals = ( ( 0, 1 ), ( 3, 4 ) )
@@ -295,7 +297,7 @@ if __name__ == "__main__":
         raise ValueError("Centroid Y values: expected %s; found %s" % \
                           (str(expecty), str(centy)))
     del xvals, yvals, expectx, expecty, centx, centy
-    print "quadxycenters: SUCCESS"
+    print("quadxycenters: SUCCESS")
 
     # Test addquadxyvalues
     coords = [ [0.0, 0.0], [1.0, 0.0], [1.0, -1.0], [2.0, 1.0] ]
@@ -337,5 +339,5 @@ if __name__ == "__main__":
     os.remove("%s.shx" % shapefilename)
     os.remove("%s.prj" % shapefilename)
 
-    print "addquadxyvalues: SUCCESS"
+    print("addquadxyvalues: SUCCESS")
 
diff --git a/pyfermod/fershp/mapprj.py b/pyfermod/fershp/mapprj.py
index a5a5abd..0d09240 100644
--- a/pyfermod/fershp/mapprj.py
+++ b/pyfermod/fershp/mapprj.py
@@ -2,6 +2,8 @@
 Map projection file utility functions
 """
 
+from __future__ import print_function
+
 def name_to_descript(mapprj_name):
     """
     Returns the map projection file contents of the given common name
@@ -2709,4 +2711,4 @@ if __name__ == "__main__":
     if num_descripts != 1337:
         raise ValueError("Number of entries in _DESCRIPT_DICT: expect: 1337, found: %d" % num_descripts)
 
-    print "mapprj: SUCCESS"
+    print("mapprj: SUCCESS")
diff --git a/pyfermod/fershp/shapefile_readxy.py b/pyfermod/fershp/shapefile_readxy.py
index ccc1e81..dfeaee3 100644
--- a/pyfermod/fershp/shapefile_readxy.py
+++ b/pyfermod/fershp/shapefile_readxy.py
@@ -4,6 +4,8 @@ coordinates from the points in the indicated shapefile.
 The missing value separates coordinates between shapes.
 """
 
+from __future__ import print_function
+
 import numpy
 import pyferret
 import shapefile
@@ -86,9 +88,9 @@ if __name__ == "__main__":
     inpbdfs = numpy.array([-8888.0, -7777.0], dtype=numpy.float64)
     maxpts = 3200 * 2400
     result = -6666.0 * numpy.ones((maxpts,2,1,1,1,1), dtype=numpy.float64, order='F')
-    print "ferret_compute start: time = %s" % time.asctime()
+    print("ferret_compute start: time = %s" % time.asctime())
     ferret_compute(0, result, resbdf, ("tl_2010_us_county10", maxpts, ), inpbdfs)
-    print "ferret_compute done; time = %s" % time.asctime()
+    print("ferret_compute done; time = %s" % time.asctime())
     good_x = numpy.logical_and((-180.0 <= result[:,0,0,0,0,0]), (result[:,0,0,0,0,0] <= -65.0))
     good_x = numpy.logical_or(good_x,
                  numpy.logical_and((172.0 <= result[:,0,0,0,0,0]), (result[:,0,0,0,0,0] <= 180.0)))
@@ -105,7 +107,7 @@ if __name__ == "__main__":
     at_end = False
     shape_num = 0
     total = 0
-    for k in xrange(result.shape[0]):
+    for k in range(result.shape[0]):
         if missing_x[k]:
             if count == 0:
                 at_end = True
@@ -119,8 +121,8 @@ if __name__ == "__main__":
         else:
             count += 1
     total += count
-    print "total (including missing-value separators) = %d" % total
-    print "out of a maximum of %d" %  result.shape[0]
-    print "number of shapes = %d" % shape_num
-    print "shapefile_readxy: SUCCESS"
+    print("total (including missing-value separators) = %d" % total)
+    print("out of a maximum of %d" %  result.shape[0])
+    print("number of shapes = %d" % shape_num)
+    print("shapefile_readxy: SUCCESS")
 
diff --git a/pyfermod/fershp/shapefile_readxyval.py b/pyfermod/fershp/shapefile_readxyval.py
index 7a63cd5..74637a3 100644
--- a/pyfermod/fershp/shapefile_readxyval.py
+++ b/pyfermod/fershp/shapefile_readxyval.py
@@ -4,6 +4,8 @@ latitude), as well as a value for shapes from a shapefile.
 The missing value separates coordinates between shapes.
 """
 
+from __future__ import print_function
+
 import numpy
 import pyferret
 import shapefile
@@ -72,14 +74,14 @@ def ferret_compute(efid, result, resbdf, inputs, inpbdfs):
     fieldname = inputs[1].strip()
     # No function currently in the shapefile module to do this, so a bit of a hack here
     # Each field in shapefile is a tuple (name, type, size, precision)
-    for k in xrange(len(sf.fields)):
+    for k in range(len(sf.fields)):
         if sf.fields[k][0] == fieldname:
             break
     else:
-        print "Known fields (name, type, size, precision):"
+        print("Known fields (name, type, size, precision):")
         for field in sf.fields:
             if field[0] != 'DeletionFlag':
-                print "    %s" % str(field)
+                print("    %s" % str(field))
         raise ValueError("No field with the name '%s' found" % fieldname)
     if sf.fields[0][0] == 'DeletionFlag':
         field_index = k - 1
@@ -126,10 +128,10 @@ if __name__ == "__main__":
     inpbdfs = numpy.array([-8888.0, -7777.0], dtype=numpy.float64)
     maxpts = 3200 * 2400
     result = -6666.0 * numpy.ones((maxpts,3,1,1,1,1), dtype=numpy.float64, order='F')
-    print "ferret_compute start: time = %s" % time.asctime()
+    print("ferret_compute start: time = %s" % time.asctime())
     # INTPTLAT10 == latitude of an internal point in each county
     ferret_compute(0, result, resbdf, ("tl_2010_us_county10", "INTPTLAT10", maxpts, ), inpbdfs)
-    print "ferret_compute done; time = %s" % time.asctime()
+    print("ferret_compute done; time = %s" % time.asctime())
     good_x = numpy.logical_and((-180.0 <= result[:,0,0,0,0,0]), (result[:,0,0,0,0,0] <= -65.0))
     good_x = numpy.logical_or(good_x,
                  numpy.logical_and((172.0 <= result[:,0,0,0,0,0]), (result[:,0,0,0,0,0] <= 180.0)))
@@ -146,7 +148,7 @@ if __name__ == "__main__":
     at_end = False
     shape_num = 0
     total = 0
-    for k in xrange(result.shape[0]):
+    for k in range(result.shape[0]):
         if missing_x[k]:
             if count == 0:
                 at_end = True
@@ -167,5 +169,5 @@ if __name__ == "__main__":
     num_good = len(result[:,2,0,0,0,0][good_val])
     if num_good != shape_num:
         raise ValueError("number of values: expected %d, found %d" % (shape_num, num_good))
-    print "shapefile_readxyval: SUCCESS"
+    print("shapefile_readxyval: SUCCESS")
 
diff --git a/pyfermod/fershp/shapefile_readxyz.py b/pyfermod/fershp/shapefile_readxyz.py
index 1340a28..84fb02a 100644
--- a/pyfermod/fershp/shapefile_readxyz.py
+++ b/pyfermod/fershp/shapefile_readxyz.py
@@ -4,6 +4,8 @@ coordinates from the points in the indicated shapefile.
 The missing value separates coordinates between shapes.
 """
 
+from __future__ import print_function
+
 import numpy
 import pyferret
 import shapefile
@@ -82,6 +84,6 @@ if __name__ == "__main__":
     info = ferret_init(0)
 
     # this is tested under shapefile_writexyzval
-    print "shapefile_readxyz: SUCCESS (limited)"
-    print "    run shapefile_writexyzval for full test"
+    print("shapefile_readxyz: SUCCESS (limited)")
+    print("    run shapefile_writexyzval for full test")
 
diff --git a/pyfermod/fershp/shapefile_readxyzval.py b/pyfermod/fershp/shapefile_readxyzval.py
index 5c9d739..cf97193 100644
--- a/pyfermod/fershp/shapefile_readxyzval.py
+++ b/pyfermod/fershp/shapefile_readxyzval.py
@@ -5,6 +5,8 @@ a shapefile.  The missing value separates coordinates
 between shapes.
 """
 
+from __future__ import print_function
+
 import numpy
 import pyferret
 import shapefile
@@ -74,14 +76,14 @@ def ferret_compute(efid, result, resbdf, inputs, inpbdfs):
     fieldname = inputs[1].strip()
     # No function currently in the shapefile module to do this, so a bit of a hack here
     # Each field in shapefile is a tuple (name, type, size, precision)
-    for k in xrange(len(sf.fields)):
+    for k in range(len(sf.fields)):
         if sf.fields[k][0] == fieldname:
             break
     else:
-        print "Known fields (name, type, size, precision):"
+        print("Known fields (name, type, size, precision):")
         for field in sf.fields:
             if field[0] != 'DeletionFlag':
-                print "    %s" % str(field)
+                print("    %s" % str(field))
         raise ValueError("No field with the name '%s' found" % fieldname)
     if sf.fields[0][0] == 'DeletionFlag':
         field_index = k - 1
@@ -124,6 +126,6 @@ if __name__ == "__main__":
     info = ferret_init(0)
 
     # this is tested under shapefile_writexyzval
-    print "shapefile_readxyzval: SUCCESS (limited)"
-    print "    run shapefile_writexyzval for full test"
+    print("shapefile_readxyzval: SUCCESS (limited)")
+    print("    run shapefile_writexyzval for full test")
 
diff --git a/pyfermod/fershp/shapefile_writeval.py b/pyfermod/fershp/shapefile_writeval.py
index 68e5a1e..980c394 100644
--- a/pyfermod/fershp/shapefile_writeval.py
+++ b/pyfermod/fershp/shapefile_writeval.py
@@ -6,6 +6,8 @@ of the bounding boxes of the X and Y axes of the given value array.  The
 value(s) associated with each shape comes from the value array.
 """
 
+from __future__ import print_function
+
 import pyferret
 import pyferret.fershp
 import shapefile
@@ -100,8 +102,8 @@ def ferret_compute(efid, result, resbdf, inputs, inpbdfs):
     # Write out the shapes and the records
     shape_written = False
     if z_coords == None:
-        for j in xrange(len(lowerys)):
-            for i in xrange(len(lowerxs)):
+        for j in range(len(lowerys)):
+            for i in range(len(lowerxs)):
                 if values[i, j, 0, 0, 0, 0] != missing_value:
                     pyferret.fershp.addquadxyvalues(sfwriter,
                                     ( lowerxs[i], lowerys[j] ),
@@ -112,9 +114,9 @@ def ferret_compute(efid, result, resbdf, inputs, inpbdfs):
                                     [ float(values[i, j, 0, 0, 0, 0]) ])
                     shape_written = True
     else:
-        for k in xrange(len(z_coords)):
-            for j in xrange(len(lowerys)):
-                for i in xrange(len(lowerxs)):
+        for k in range(len(z_coords)):
+            for j in range(len(lowerys)):
+                for i in range(len(lowerxs)):
                     if values[i, j, k, 0, 0, 0] != missing_value:
                         pyferret.fershp.addquadxyvalues(sfwriter,
                                         ( lowerxs[i], lowerys[j] ),
@@ -145,4 +147,4 @@ if __name__ == "__main__":
     # Testing ferret_compute difficult due to call
     # to get_axis_box_limits and get_axis_coordinates
 
-    print "shapefile_writeval: SUCCESS (limited)"
+    print("shapefile_writeval: SUCCESS (limited)")
diff --git a/pyfermod/fershp/shapefile_writexyval.py b/pyfermod/fershp/shapefile_writexyval.py
index 1c81188..b11d0b3 100644
--- a/pyfermod/fershp/shapefile_writexyval.py
+++ b/pyfermod/fershp/shapefile_writexyval.py
@@ -10,6 +10,8 @@ Quadrilaterals associated with missing values are omitted from
 the shapefile.
 """
 
+from __future__ import print_function
+
 import shapefile
 import pyferret
 import pyferret.fershp
@@ -96,8 +98,8 @@ def ferret_compute(efid, result, resbdf, inputs, inpbdfs):
 
     # Add the shapes with their values
     shape_written = False
-    for j in xrange(grid_vals.shape[1]):
-        for i in xrange(grid_vals.shape[0]):
+    for j in range(grid_vals.shape[1]):
+        for i in range(grid_vals.shape[0]):
             if grid_vals[i, j, 0, 0, 0, 0] != missing_val:
                 shape_written = True
                 pyferret.fershp.addquadxyvalues(sfwriter,
@@ -236,8 +238,8 @@ if __name__ == "__main__":
     # Create the expected arrays of shape coordinates and values
     exppoints = []
     expvals = []
-    for j in xrange(vals.shape[1]):
-        for i in xrange(vals.shape[0]):
+    for j in range(vals.shape[1]):
+        for i in range(vals.shape[0]):
             if vals[i, j, 0, 0, 0, 0] != inpbdfs[3]:
                 exppoints.append( numpy.array([ [ geolon_c[i,   j,   0, 0, 0, 0], 
                                                   geolat_c[i,   j,   0, 0, 0, 0] ],
@@ -323,5 +325,5 @@ if __name__ == "__main__":
                                        fieldname, ""), inpbdfs)
     """
 
-    print "shapefile_writexyval: SUCCESS"
+    print("shapefile_writexyval: SUCCESS")
 
diff --git a/pyfermod/fershp/shapefile_writexyzval.py b/pyfermod/fershp/shapefile_writexyzval.py
index 2ceb600..db10b98 100644
--- a/pyfermod/fershp/shapefile_writexyzval.py
+++ b/pyfermod/fershp/shapefile_writexyzval.py
@@ -10,6 +10,8 @@ mentioned quadrilateral.  Quadrilaterals associated with missing
 values are omitted from the shapefile.
 """
 
+from __future__ import print_function
+
 import shapefile
 import pyferret
 import pyferret.fershp
@@ -105,8 +107,8 @@ def ferret_compute(efid, result, resbdf, inputs, inpbdfs):
 
     # Add the shapes with their values
     shape_written = False
-    for j in xrange(grid_vals.shape[1]):
-        for i in xrange(grid_vals.shape[0]):
+    for j in range(grid_vals.shape[1]):
+        for i in range(grid_vals.shape[0]):
             if grid_vals[i, j, 0, 0, 0, 0] != missing_val:
                 shape_written = True
                 pyferret.fershp.addquadxyvalues(sfwriter,
@@ -241,8 +243,8 @@ if __name__ == "__main__":
     expzs = []
     expvals = []
     expcurvals = [ [], [], [], [] ]
-    for j in xrange(vals.shape[1]):
-        for i in xrange(vals.shape[0]):
+    for j in range(vals.shape[1]):
+        for i in range(vals.shape[0]):
             # add the values expected to be returned from shapefile.Reader
             exppoints.append( numpy.array([ [ geolon_c[i,   j,   0, 0, 0, 0], 
                                               geolat_c[i,   j,   0, 0, 0, 0] ],
@@ -310,7 +312,7 @@ if __name__ == "__main__":
                          "    expect: %s\n" \
                          "    found:  %s" % (wgs84_descript, descript))
 
-    print "shapefile_writexyzval: SUCCESS"
+    print("shapefile_writexyzval: SUCCESS")
 
     # Check the result for calling ferret_compute of shapefile_readxyz
     # in this directory.  This assumes the ordering of the shapes does
@@ -329,7 +331,7 @@ if __name__ == "__main__":
         raise ValueError("Zs from shapefile_readxyz:\n   expected\n%s\n   found\n%s" % \
                          (str(expcurvals[2]), str(result[:,2,0,0,0,0])))
 
-    print "shapefile_readxyz: SUCCESS"
+    print("shapefile_readxyz: SUCCESS")
 
     # Check the result for calling ferret_compute of shapefile_readxyzval
     # in this directory.  This assumes the ordering of the shapes does
@@ -354,7 +356,7 @@ if __name__ == "__main__":
         raise ValueError("Extra values from shapefile_readxyzval: expected all %s\n   found\n%s" % \
                          (str(float(resbdf[0])), str(result[numvals:,3,0,0,0,0])))
 
-    print "shapefile_readxyzval: SUCCESS"
+    print("shapefile_readxyzval: SUCCESS")
 
     os.remove("%s.dbf" % shapefilename)
     os.remove("%s.shp" % shapefilename)
diff --git a/pyfermod/fervar.py b/pyfermod/fervar.py
index 0bc4a37..c99defb 100644
--- a/pyfermod/fervar.py
+++ b/pyfermod/fervar.py
@@ -167,7 +167,7 @@ class FerVar(object):
             they have the same Ferret variable name,
             they have the same dataset name, 
             they have the same title, and
-            they have the same defintion.
+            they have the same definition.
         All these comparisons are case-insensitive.
         '''
         try:
@@ -179,10 +179,10 @@ class FerVar(object):
     def __ne__(self, other):
         '''
         Two FerVars are not equal if any of the following are True:
-            they have different Ferret variable name,
-            they have different dataset name,
-            they have different title, or
-            they have different defintion.
+            they have different Ferret variable names,
+            they have different dataset names,
+            they have different titles, or
+            they have different definitions.
         All these comparisons are case-insensitive.
         '''
         try:
@@ -585,7 +585,7 @@ class FerVar(object):
         changed = False
         # TODO: handle step values, try to condense code
         if isinstance(key, tuple):
-            for k in xrange(len(key)):
+            for k in range(len(key)):
                 piece = key[k]
                 if piece is None:
                     continue
@@ -676,7 +676,7 @@ class FerVar(object):
                         val += 1
                         indexlimits[k] = '%d' % val
                         changed = True
-                    elif isinstance(start,float):
+                    elif isinstance(val,numbers.Real):
                         if coordlimits[k] or indexlimits[k]:
                             raise KeyError('two slices for axis index %d given' % k)
                         coordlimits[k] = '%s' % str(val)
@@ -746,7 +746,7 @@ class FerVar(object):
                 val += 1
                 indexlimits[k] = '%d' % val
                 changed = True
-            elif isinstance(start,float):
+            elif isinstance(start,numbers.Real):
                 coordlimits[k] = '%s' % str(val)
                 changed = True
             else:
@@ -855,7 +855,7 @@ class FerVar(object):
         # Assign the variable in Ferret
         cmdstr = 'DEFINE VAR'
         if dsetname:
-            cmdstr += '/D=%s' % dsetname
+            cmdstr += '/D="%s"' % dsetname
         if self._title:
             cmdstr += '/TITLE="%s"' % self._title
         cmdstr += ' %s = %s' % (varname, self._definition)
diff --git a/pyfermod/filenamecompleter.py b/pyfermod/filenamecompleter.py
index de88340..724a778 100644
--- a/pyfermod/filenamecompleter.py
+++ b/pyfermod/filenamecompleter.py
@@ -9,6 +9,8 @@ be names of existing files that match the partially specified
 directory/file name.
 """
 
+from __future__ import print_function
+
 import os.path
 
 class FilenameCompleter(object):
@@ -116,12 +118,12 @@ if __name__ == '__main__':
     # Test an empty string
     actdirlist = os.listdir(os.curdir)
     actdirlist.sort()
-    print 'Contents of current directory'
+    print('Contents of current directory')
     cmpdirlist = []
     k = 0
     fnam = completer.complete('', 0)
     while fnam != None:
-        print '    %s' % fnam
+        print('    %s' % fnam)
         cmpdirlist.append(fnam)
         k += 1
         fnam = completer.complete('', k)
@@ -131,26 +133,26 @@ if __name__ == '__main__':
 
     # Test with a tilde string
     tildedir = '~' + os.sep
-    print ''
-    print 'Contents of %s' % tildedir
+    print('')
+    print('Contents of %s' % tildedir)
     tildenames = []
     k = 0
     fnam = completer.complete(tildedir, 0)
     while fnam != None:
-        print '    %s' % fnam
+        print('    %s' % fnam)
         tildenames.append(fnam)
         k += 1
         fnam = completer.complete(tildedir, k)
     
     # Test with an environment variable
     homedir = '$HOME' + os.sep
-    print ''
-    print 'Contents of %s' % homedir
+    print('')
+    print('Contents of %s' % homedir)
     homenames = []
     k = 0
     fnam = completer.complete(homedir, 0)
     while fnam != None:
-        print '    %s' % fnam
+        print('    %s' % fnam)
         homenames.append(fnam)
         k += 1
         fnam = completer.complete(homedir, k)
@@ -161,13 +163,13 @@ if __name__ == '__main__':
 
     # Try with $HOME/bin/
     bindir = '$HOME' + os.sep + 'bin' + os.sep
-    print ''
-    print 'Contents of %s' % bindir
+    print('')
+    print('Contents of %s' % bindir)
     binnames = []
     k = 0
     fnam = completer.complete(bindir, 0)
     while fnam != None:
-        print '    %s' % fnam
+        print('    %s' % fnam)
         binnames.append(fnam)
         k += 1
         fnam = completer.complete(bindir, k)
@@ -190,6 +192,6 @@ if __name__ == '__main__':
                          (invalid_name, fnam))
 
     # All tests successful
-    print ''
-    print 'Success'
+    print('')
+    print('Success')
 
diff --git a/pyfermod/graphbind/__init__.py b/pyfermod/graphbind/__init__.py
index 53fa211..942f790 100644
--- a/pyfermod/graphbind/__init__.py
+++ b/pyfermod/graphbind/__init__.py
@@ -11,7 +11,9 @@ Other methods of the bindings instance are called directly to perform
 graphics operations on this Window.
 '''
 
-from abstractpyferretbindings import AbstractPyFerretBindings
+from __future__ import print_function
+
+from pyferret.graphbind.abstractpyferretbindings import AbstractPyFerretBindings
 
 __pyferret_bindings_classes = { }
 
@@ -47,7 +49,7 @@ def knownPyFerretEngines():
     '''
     return tuple( __pyferret_bindings_classes.keys() )
     
-def createWindow(engine_name, title, visible, noalpha):
+def createWindow(engine_name, title, visible, noalpha, rasteronly):
     '''
     Creates an instance of the bindings class associated with
     engine_name and calls the createWindow method of that
@@ -60,6 +62,7 @@ def createWindow(engine_name, title, visible, noalpha):
         title: display title for the Window
         visible: display Window on start-up?
         noalpha: do not use the alpha channel in colors?
+        rasteronly: only raster images will be used ?
 
     Returns the instance of the binding class associated with
     the newly created Window if the createWindow method of the
@@ -73,7 +76,7 @@ def createWindow(engine_name, title, visible, noalpha):
     except KeyError:
         raise ValueError("Unknown graphics engine '%s'" % engine_name)
     bindinst = bindclass()
-    if not bindinst.createWindow(title, visible, noalpha):
+    if not bindinst.createWindow(title, visible, noalpha, rasteronly):
         del bindinst
         return None
     return bindinst
@@ -91,7 +94,7 @@ if __name__ == "__main__":
             return True
 
     addPyFerretBindings(TestBindings.engine_name, TestBindings)
-    bindinst = createWindow(TestBindings.engine_name, "test", False, False)
+    bindinst = createWindow(TestBindings.engine_name, "test", False, False, False)
     if not bindinst:
         raise RuntimeError("Unsuccessful creation of a Window")
     try:
@@ -109,5 +112,5 @@ if __name__ == "__main__":
        (known_engines[0] != TestBindings.engine_name):
         raise RuntimeError("Unexpected tuple of known engines: %s" % \
                            str(known_engines))
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/graphbind/abstractpyferretbindings.py b/pyfermod/graphbind/abstractpyferretbindings.py
index 9b1afb7..5373196 100644
--- a/pyfermod/graphbind/abstractpyferretbindings.py
+++ b/pyfermod/graphbind/abstractpyferretbindings.py
@@ -29,17 +29,22 @@ class AbstractPyFerretBindings(object):
         '''
         super(AbstractPyFerretBindings, self).__init__()
 
-    def createWindow(self, title, visible, noalpha):
+    def createWindow(self, title, visible, noalpha, rasteronly):
         '''
         Creates a "Window object" for this graphics engine.  Here,
         a Window is the complete drawing area.  However, no drawing
         will be performed on a Window, only on Views (see beginView).
         Initializes the graphics engine if needed.
 
+        The rasteronly option is for possible faster drawing by
+        drawing directly to an image surface.  If true, deleting 
+        segments may not be supported.
+
         Arguments:
             title: display title for the Window
             visible: display Window on start-up?
             noalpha: do not use the alpha channel in colors?
+            rasteronly: only raster images will be used ?
 
         Returns True if a Window was successfully created.
         '''
@@ -207,7 +212,10 @@ class AbstractPyFerretBindings(object):
 
     def scaleWindow(self, scale):
         '''
-        Sets the scaling factor for the Window
+        Sets the scaling factor for the Window.  If zero, switch to 
+        auto-scaling (automatically scales to best fit window size 
+        without changing aspect ratio).  If negative, scale using 
+        the absolute value and then switch to auto-scaling.
 
         Arguments:
             scale: scaling factor to use
diff --git a/pyfermod/libpyferret.c b/pyfermod/libpyferret.c
index d11962d..a20466c 100644
--- a/pyfermod/libpyferret.c
+++ b/pyfermod/libpyferret.c
@@ -34,6 +34,7 @@
 
 #include <Python.h>
 #define PY_ARRAY_UNIQUE_SYMBOL pyferret_ARRAY_API
+#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
 #include <numpy/arrayobject.h>
 
 #include <ctype.h>
@@ -49,6 +50,11 @@
 #include "pyferret.h"
 #include "pplmem.h"
 
+/* For older versions of NumPy (v1.4 with RHEL6), define this flag as the deprecated flag */
+#ifndef NPY_ARRAY_OWNDATA
+#define NPY_ARRAY_OWNDATA NPY_OWNDATA
+#endif
+
 /* global pyferret Python module object used for readline */
 PyObject *pyferret_module_pyobject = NULL;
 
@@ -79,25 +85,168 @@ static size_t ferMemSize;
 static double *ferMemory = NULL;
 static float  *pplMemory = NULL;
 
-/* for recovering from seg faults */
-static void (*segv_handler)(int);
-static jmp_buf jumpbuffer;
+/* for recovering from problems in external function calls */
+static void (*pyefcn_segv_handler)(int);
+static jmp_buf pyefcn_jumpbuffer;
 static void pyefcn_signal_handler(int signum)
 {
-    longjmp(jumpbuffer, 1);
+    longjmp(pyefcn_jumpbuffer, signum);
 }
 
 /* 
  * Ctrl-C handler that just calls the CTRLC_AST Fortran subroutine 
  * defined in fer/gnl/ctrl_c.F (which has no arguments). 
  */
-static void pyferret_sigint_handler(int signum) {
+static void ferret_sigint_handler(int signum) 
+{
     /* ignore any further Ctrl-C entries until done */
     signal(SIGINT, SIG_IGN);
     /* Now call the Fortran routine */
-    ctrlc_ast_();
+    FORTRAN(ctrlc_ast)();
     /* Go back to catching Ctrl-C */
-    signal(SIGINT, pyferret_sigint_handler);
+    signal(SIGINT, ferret_sigint_handler);
+}
+
+static jmp_buf crash_jumpbuffer;
+#ifdef NDEBUG
+/*
+ * Signal handler for program-quiting signals other than SIGINT.
+ * For exiting gracefully to shut down any displayed viewers
+ * and for generating a stderr message for LAS.
+ * Only for production (not debug); for debug allow the crash to happen.
+ */
+static void crash_signal_handler(int signum) 
+{
+    longjmp(crash_jumpbuffer, signum);
+}
+#endif
+
+/* 
+ * Storage for original signal handlers when in the ferret engine.  
+ * Largest ANSI/POSIX/BSD value of signals caught is SIGTERM = 15.
+ */
+#define MAX_SIGHANDLERS 32
+static char *(signal_names[MAX_SIGHANDLERS]);
+static void (*(orig_signal_handlers[MAX_SIGHANDLERS]))(int);
+
+/*
+ * Remove signal handlers assigned for the Ferret engine, 
+ * restoring the original signal handlers.  If Ferret signal 
+ * handlers are currently assigned, this call does nothing.
+ */
+static void remove_ferret_signal_handlers(void)
+{
+    int k;
+
+    /* restore the original signal handlers */
+    for (k = 0; k < MAX_SIGHANDLERS; k++) {
+        if ( signal_names[k] != NULL ) {
+            signal(k, orig_signal_handlers[k]);
+        }
+    }
+    /* clear the signal names to indicate state of the signal handlers */
+    for (k = 0; k < MAX_SIGHANDLERS; k++) {
+        signal_names[k] = NULL;
+    }
+}
+
+/*
+ * Assign the signal handlers for the Ferret engine, saving the 
+ * original signal handlers.  If the Ferret signal handlers are 
+ * already assigned, this call does nothing.
+ *
+ * If a problem arose while reassigning a signal, all the original
+ * signal handlers are restored, PyErr_StrString is called to set 
+ * an appropriate error message and value, and -1 is returned.
+ *
+ * If successful, zero is returned. 
+ */
+static int assign_ferret_signal_handlers(void)
+{
+    /* Check if the handlers are already in place */
+    if ( signal_names[SIGINT] != NULL )
+        return 0;
+
+    /* Let ferret deal with ctrl-C while in ferret mode */
+    orig_signal_handlers[SIGINT] = signal(SIGINT, ferret_sigint_handler);
+    if ( orig_signal_handlers[SIGINT] == SIG_ERR ) {
+        remove_ferret_signal_handlers();
+        PyErr_SetString(PyExc_SystemError, "Unable to catch SIGINT while in Ferret");
+        return -1;
+    }
+    signal_names[SIGINT] = "SIGINT";
+
+    /* Only catch other signals when compiled optimized - for debug, let them crash */
+#ifdef NDEBUG
+    /* Catch other program termination signals to gracefully return an error */
+    orig_signal_handlers[SIGHUP] = signal(SIGHUP, crash_signal_handler);
+    if ( orig_signal_handlers[SIGHUP] == SIG_ERR ) {
+        remove_ferret_signal_handlers();
+        PyErr_SetString(PyExc_SystemError, "Unable to catch SIGHUP while in Ferret");
+        return -1;
+    }
+    signal_names[SIGHUP] = "SIGHUP";
+
+    orig_signal_handlers[SIGQUIT] = signal(SIGQUIT, crash_signal_handler);
+    if ( orig_signal_handlers[SIGQUIT] == SIG_ERR ) {
+        remove_ferret_signal_handlers();
+        PyErr_SetString(PyExc_SystemError, "Unable to catch SIGQUIT while in Ferret");
+        return -1;
+    }
+    signal_names[SIGQUIT] = "SIGQUIT";
+
+    orig_signal_handlers[SIGILL] = signal(SIGILL, crash_signal_handler);
+    if ( orig_signal_handlers[SIGILL] == SIG_ERR ) {
+        remove_ferret_signal_handlers();
+        PyErr_SetString(PyExc_SystemError, "Unable to catch SIGILL while in Ferret");
+        return -1;
+    }
+    signal_names[SIGILL] = "SIGILL";
+
+#ifdef SIGBUS
+    orig_signal_handlers[SIGBUS] = signal(SIGBUS, crash_signal_handler);
+    if ( orig_signal_handlers[SIGBUS] == SIG_ERR ) {
+        remove_ferret_signal_handlers();
+        PyErr_SetString(PyExc_SystemError, "Unable to catch SIGBUS while in Ferret");
+        return -1;
+    }
+    signal_names[SIGBUS] = "SIGBUS";
+#endif
+
+    orig_signal_handlers[SIGABRT] = signal(SIGABRT, crash_signal_handler);
+    if ( orig_signal_handlers[SIGABRT] == SIG_ERR ) {
+        remove_ferret_signal_handlers();
+        PyErr_SetString(PyExc_SystemError, "Unable to catch SIGABRT while in Ferret");
+        return -1;
+    }
+    signal_names[SIGABRT] = "SIGABRT";
+
+    orig_signal_handlers[SIGFPE] = signal(SIGFPE, crash_signal_handler);
+    if ( orig_signal_handlers[SIGFPE] == SIG_ERR ) {
+        remove_ferret_signal_handlers();
+        PyErr_SetString(PyExc_SystemError, "Unable to catch SIGFPE while in Ferret");
+        return -1;
+    }
+    signal_names[SIGFPE] = "SIGFPE";
+
+    orig_signal_handlers[SIGSEGV] = signal(SIGSEGV, crash_signal_handler);
+    if ( orig_signal_handlers[SIGSEGV] == SIG_ERR ) {
+        remove_ferret_signal_handlers();
+        PyErr_SetString(PyExc_SystemError, "Unable to catch SIGSEGV while in Ferret");
+        return -1;
+    }
+    signal_names[SIGSEGV] = "SIGSEGV";
+
+    orig_signal_handlers[SIGTERM] = signal(SIGTERM, crash_signal_handler);
+    if ( orig_signal_handlers[SIGTERM] == SIG_ERR ) {
+        remove_ferret_signal_handlers();
+        PyErr_SetString(PyExc_SystemError, "Unable to catch SIGTERM while in Ferret");
+        return -1;
+    }
+    signal_names[SIGTERM] = "SIGTERM";
+#endif
+
+    return 0;
 }
 
 static char pyferretStartDocstring[] =
@@ -121,7 +270,8 @@ static char pyferretStartDocstring[] =
     "    restrict = <bool>: restrict Ferret's capabilities? (default False) \n"
     "    server = <bool>: run Ferret in server mode? (default False) \n"
     "    metaname = <string>: filename for Ferret graphics (default empty) \n"
-    "    unmapped = <bool>: hide the graphics viewer? (default False) \n"
+    "    unmapped = <bool>: hide the graphics viewer? (default False unless png is True) \n"
+    "    pngonly = <bool>: write directly to a PNG? (default False; True implies unmapped) \n"
     "    quiet = <bool>: do not print the ferret header? (default False) \n"
     "    linebuffer = <bool>: use line buffering for stdout and stderr? (default False) \n"
     "            Note: \n"
@@ -140,8 +290,8 @@ static char pyferretStartDocstring[] =
 static PyObject *pyferretStart(PyObject *self, PyObject *args, PyObject *kwds)
 {
     static char *argNames[] = {"memsize", "journal", "verify", "restrict", "server",
-                               "metaname", "transparent", "unmapped", "quiet", 
-                               "linebuffer", NULL};
+                               "metaname", "transparent", "unmapped", "pngonly", 
+                               "quiet", "linebuffer", NULL};
     double mwMemSize = 25.6;
     PyObject *pyoJournal = NULL;
     PyObject *pyoVerify = NULL;
@@ -149,6 +299,7 @@ static PyObject *pyferretStart(PyObject *self, PyObject *args, PyObject *kwds)
     PyObject *pyoServer = NULL;
     PyObject *pyoTransparent = NULL;
     PyObject *pyoUnmapped = NULL;
+    PyObject *pyoPngonly = NULL;
     PyObject *pyoQuiet = NULL;
     PyObject *pyoLineBuffer = NULL;
     char *metaname = NULL;
@@ -158,10 +309,10 @@ static PyObject *pyferretStart(PyObject *self, PyObject *args, PyObject *kwds)
     int serverFlag = 0;
     int transparentFlag = 0;
     int unmappedFlag = 0;
+    int pngonlyFlag = 0;
     int quietFlag = 0;
     int lineBufferFlag = 0;
     int pplMemSize;
-    size_t blksiz;
     int status;
     int ttoutLun = TTOUT_LUN;
     int one_cmnd_mode_int;
@@ -170,19 +321,20 @@ static PyObject *pyferretStart(PyObject *self, PyObject *args, PyObject *kwds)
     /* If already initialized, return False */
     if ( ferretInitialized ) {
         Py_INCREF(Py_False);
-        return Py_False;
+	return Py_False;
     }
 
     /* Import the function-pointer table for the PyArray_* functions */
-    import_array1(NULL);
+    import_array();
 
     /* Parse the arguments, checking if an Exception was raised */
-    if ( ! PyArg_ParseTupleAndKeywords(args, kwds, "|dO!O!O!O!sO!O!O!O!",
+    if ( ! PyArg_ParseTupleAndKeywords(args, kwds, "|dO!O!O!O!sO!O!O!O!O!",
                  argNames, &mwMemSize, &PyBool_Type, &pyoJournal,
                  &PyBool_Type, &pyoVerify, &PyBool_Type, &pyoRestrict,
                  &PyBool_Type, &pyoServer, &metaname,
                  &PyBool_Type, &pyoTransparent, &PyBool_Type, &pyoUnmapped,
-                 &PyBool_Type, &pyoQuiet, &PyBool_Type, &pyoLineBuffer) )
+                 &PyBool_Type, &pyoPngonly, &PyBool_Type, &pyoQuiet, 
+                 &PyBool_Type, &pyoLineBuffer) )
         return NULL;
 
     /* Interpret the booleans - Py_False and Py_True are singleton non-NULL objects, so just use == */
@@ -198,11 +350,15 @@ static PyObject *pyferretStart(PyObject *self, PyObject *args, PyObject *kwds)
         transparentFlag = 1;
     if ( pyoUnmapped == Py_True )
         unmappedFlag = 1;
+    if ( pyoPngonly == Py_True )
+        pngonlyFlag = 1;
     if ( pyoQuiet == Py_True )
         quietFlag = 1;
     if ( pyoLineBuffer == Py_True )
         lineBufferFlag = 1;
 
+    if ( pngonlyFlag != 0 )
+        unmappedFlag = 1;
     if ( metaname[0] == '\0' )
         metaname = NULL;
 
@@ -227,24 +383,12 @@ static PyObject *pyferretStart(PyObject *self, PyObject *args, PyObject *kwds)
     if ( pplMemory == NULL )
         return PyErr_NoMemory();
     set_ppl_memory(pplMemory, pplMemSize);
-
-    /* Initial allocation of Ferret memory - multiples of 100 PMAX_MEM_BLKS */
-    blksiz  = (size_t) ((mwMemSize * 1.0E6 + (double)PMAX_MEM_BLKS - 1.0) / (double)PMAX_MEM_BLKS);
-    blksiz  = (blksiz + 99) / 100;
-    blksiz *= 100;
-    ferMemSize = blksiz * (size_t)PMAX_MEM_BLKS;
-    /* Check for overflow */
-    if ( blksiz != ferMemSize / (size_t)PMAX_MEM_BLKS )
-        return PyErr_NoMemory();
-    ferMemory = (double *) PyMem_Malloc(ferMemSize * (size_t)sizeof(double));
-    if ( ferMemory == NULL )
-        return PyErr_NoMemory();
-    set_fer_memory(ferMemory, ferMemSize);
+    FORTRAN(init_memory)();
 
     if ( (metaname != NULL) || (unmappedFlag != 0) ) {
        /*
         * Set the default graphics filename for saving before ending.
-        * Make a copy of the name just in case set_batch_graphics_ changes
+        * Make a copy of the name just in case set_batch_graphics changes
         * something.  This also hides the graphics viewer.
         */
        char my_meta_name[2048];
@@ -255,32 +399,36 @@ static PyObject *pyferretStart(PyObject *self, PyObject *args, PyObject *kwds)
        else {
            my_meta_name[0] = '\0';
        }
-       set_batch_graphics_(my_meta_name);
+       set_batch_graphics(my_meta_name, &pngonlyFlag);
     }
 
     /* Set the default autosave transparency */
-    fgd_set_transparency_(&transparentFlag);
+    FORTRAN(fgd_set_transparency)(&transparentFlag);
 
     /* Initialize stuff: keyboard, todays date, grids, GFDL terms, PPL brain */
-    initialize_();
+    FORTRAN(initialize)();
 
     /* Open the output journal file, if appropriate */
     if ( journalFlag != 0 ) {
-        init_journal_(&status);
+        FORTRAN(init_journal)(&status);
         if ( status != FERR_OK ) {
             PyErr_SetString(PyExc_IOError, "Unable to open the journal file ferret.jnl");
             return NULL;
         }
     }
     else
-        no_journal_();
+        FORTRAN(no_journal)();
 
     /* Set the verify flag */
     if ( verifyFlag == 0 )
-        turnoff_verify_(&status);
+        FORTRAN(turnoff_verify)(&status);
 
     /* Get the PyObject representing the pyferret module */
+#if PY_MAJOR_VERSION > 2
+    modulename = PyUnicode_FromString("pyferret");
+#else
     modulename = PyString_FromString("pyferret");
+#endif
     if ( modulename == NULL ) {
         return NULL;
     }
@@ -291,7 +439,11 @@ static PyObject *pyferretStart(PyObject *self, PyObject *args, PyObject *kwds)
     }
 
     /* Get the PyObject representing the pyferret.graphbind module */
+#if PY_MAJOR_VERSION > 2
+    modulename = PyUnicode_FromString("pyferret.graphbind");
+#else
     modulename = PyString_FromString("pyferret.graphbind");
+#endif
     if ( modulename == NULL ) {
         Py_DECREF(pyferret_module_pyobject);
         return NULL;
@@ -303,11 +455,11 @@ static PyObject *pyferretStart(PyObject *self, PyObject *args, PyObject *kwds)
     }
 
     /* Set and possibly output program name and revision number */
-    proclaim_c_(&ttoutLun, "\t", &quietFlag);
+    FORTRAN(proclaim_c)(&ttoutLun, "\t", &quietFlag);
 
     /* Set so that ferret_dispatch returns after every command */
     one_cmnd_mode_int = 1;
-    set_one_cmnd_mode_(&one_cmnd_mode_int);
+    FORTRAN(set_one_cmnd_mode)(&one_cmnd_mode_int);
 
     /* Success - return True */
     ferretInitialized = 1;
@@ -317,49 +469,6 @@ static PyObject *pyferretStart(PyObject *self, PyObject *args, PyObject *kwds)
 
 
 /*
- * Helper function to reallocate Ferret's memory from Python.
- * Argument: the new number of floats of Ferret's memory cache is given by
- *           blksiz * PMAX_MEM_BLKS (defined in ferret.h as 2000)
- * Returns: zero if fails, non-zero if successful
- */
-static int resizeFerretMemory(int blksiz)
-{
-    size_t actual_blksiz;
-    size_t newFerMemSize;
-
-    /* Get the new size for the memory and check for overflow */
-    if ( blksiz <= 0 )
-        return 0;
-    actual_blksiz = (blksiz  + 99)/ 100;
-    actual_blksiz *= 100;
-    newFerMemSize = actual_blksiz * (size_t)PMAX_MEM_BLKS;
-    if ( actual_blksiz != newFerMemSize / (size_t)PMAX_MEM_BLKS )
-        return 0;
-
-    /*
-     * Free the old memory and allocate new memory rather than use
-     * realloc since the contents of the old memory isn't needed.
-     * This could also result in a better garbage collection.
-     */
-    PyMem_Free(ferMemory);
-    ferMemory = (double *) PyMem_Malloc(newFerMemSize * (size_t)sizeof(double));
-    if ( ferMemory == NULL ) {
-        ferMemory = (double *) PyMem_Malloc(ferMemSize * (size_t)sizeof(double));
-        if ( ferMemory == NULL ) {
-            fprintf(stderr, "**ERROR: Unable to restore Ferret's memory cache of %f Mdoubles\n", (double)ferMemSize / 1.0E6);
-            exit(1);
-        }
-        return 0;
-    }
-
-    /* Reallocation successful; assign the new memory */
-    ferMemSize = newFerMemSize;
-    set_fer_memory(ferMemory, ferMemSize);
-    return 1;
-}
-
-
-/*
  * Called by the Ferret core to reallocate for more PPL memory
  */
 void reallo_ppl_memory(int new_size)
@@ -375,50 +484,6 @@ void reallo_ppl_memory(int new_size)
 }
 
 
-static char pyferretResizeMemoryDocstring[] =
-    "Reset the the amount of memory allocated for Ferret from Python-managed memory. \n"
-    "\n"
-    "Required arguments: \n"
-    "    memsize = <float>: the new size, in megadouble (where a double is 8 bytes), \n"
-    "                       for Ferret's memory cache \n"
-    "\n"
-    "Optional arguments: \n"
-    "    (none) \n"
-    "\n"
-    "Returns: \n"
-    "    True if successful - Ferret has the new amount of memory \n"
-    "    False if unsuccessful - Ferret has the previous amount of memory \n"
-    "\n"
-    "Raises: \n"
-    "    MemoryError if Ferret has not been started or has been stopped \n";
-
-static PyObject *pyferretResizeMemory(PyObject *self, PyObject *args, PyObject *kwds)
-{
-    static char *argNames[] = {"memsize", NULL};
-    double mwMemSize;
-
-    /* If not initialized, raise a MemoryError */
-    if ( ! ferretInitialized ) {
-        PyErr_SetString(PyExc_MemoryError, "Ferret not started");
-        return NULL;
-    }
-
-    /* Parse the arguments, checking if an Exception was raised */
-    if ( ! PyArg_ParseTupleAndKeywords(args, kwds, "d", argNames, &mwMemSize) )
-        return NULL;
-
-    /* Reallocate the new amount of memory for Ferret */
-    if ( resizeFerretMemory((int) ((mwMemSize * 1.0E6 + (double)PMAX_MEM_BLKS - 1.0) / (double)PMAX_MEM_BLKS)) == 0 ) {
-        Py_INCREF(Py_False);
-        return Py_False;
-    }
-
-    /* Success - return True */
-    Py_INCREF(Py_True);
-    return Py_True;
-}
-
-
 static char pyferretRunCommandDocstring[] =
     "Runs a Ferret command just as if entering a command at the Ferret prompt. \n"
     "\n"
@@ -446,10 +511,9 @@ static char pyferretRunCommandDocstring[] =
 static PyObject *pyferretRunCommand(PyObject *self, PyObject *args, PyObject *kwds)
 {
     static char *argNames[] = {"command", NULL};
-    const char *command;
-    const char *iter_command;
+    char *command;
+    char *iter_command;
     int  one_cmnd_mode_int;
-    void (*oldsighand)(int);
     int  cmnd_stack_level;
     char errmsg[2112];
     int  errval;
@@ -465,61 +529,92 @@ static PyObject *pyferretRunCommand(PyObject *self, PyObject *args, PyObject *kw
         return NULL;
 
     /* Clear the last error message and value */
-    clear_fer_last_error_info_();
+    FORTRAN(clear_fer_last_error_info)();
 
     /* If an empty string, temporarily turn off the one-command mode */
     if ( command[0] == '\0' ) {
         one_cmnd_mode_int = 0;
-        set_one_cmnd_mode_(&one_cmnd_mode_int);
+        FORTRAN(set_one_cmnd_mode)(&one_cmnd_mode_int);
     }
     else
         one_cmnd_mode_int = 1;
 
-    /* Let ferret deal with ctrl-C while in ferret mode */
-    oldsighand = signal(SIGINT, pyferret_sigint_handler);
-    if ( oldsighand == SIG_ERR ) {
-        PyErr_SetString(PyExc_SystemError, "Unable to catch SIGTERM while in Ferret");
+    errval = setjmp(crash_jumpbuffer);
+    if ( errval != 0 ) {
+        /* 
+         * If we get here, a signal was caught with crash_signal_handler 
+         * as its handler.  The value errval is the signal number. 
+         */
+
+        /* 
+         * The following will exit completely but leaves up any displays:
+         *
+         *    fprintf(stderr, "**ERROR Ferret crash; signal = %d (%s)\n", 
+         *                    errval, signal_names[errval]);
+         *    remove_ferret_signal_handlers();
+         *    exit(-1);
+         *
+         *
+         * Instead, raise a RuntimeError with an appropriate error message
+         * so a proper shutdown can be performed.
+         */
+        sprintf(errmsg, "\n\n"
+                        "**ERROR Ferret crash; signal = %d (%s)\n"
+                        "Enter Ctrl-D to exit Python\n", 
+                        errval, signal_names[errval]);
+        remove_ferret_signal_handlers();
+        /* 
+         * Clear any problem status that might have arisen in Python.
+         * The RuntimeError will be raised instead.
+         */
+        PyErr_Clear();
+        PyErr_SetString(PyExc_RuntimeError, errmsg);
         return NULL;
     }
+    /* Assign appropriate signal handlers */
+    if ( assign_ferret_signal_handlers() != 0 ) {
+        /* 
+         * Problems assigning signal handlers; signals all
+         * restored to original and PyErr_SetString called 
+         */
+        return NULL;
+    }
+
     /* do-loop only for dealing with Ferret "SET MEMORY /SIZE=..." resize command */
     iter_command = command;
     do {
         cmnd_stack_level = 0;
         /* Run the Ferret command */
-        ferret_dispatch_c(ferMemory, iter_command, sBuffer);
+	ferret_dispatch_c(iter_command, sBuffer);
 
         if ( sBuffer->flags[FRTN_ACTION] == FACTN_MEM_RECONFIGURE ) {
-            /* resize, then re-enter if not single-command mode */
-            if ( resizeFerretMemory(sBuffer->flags[FRTN_IDATA1]) == 0 ) {
-                printf("Unable to resize Ferret's memory cache to %f Mdoubles\n",
-                       (double)(sBuffer->flags[FRTN_IDATA1]) * (double)PMAX_MEM_BLKS / 1.0E6);
-                printf("Ferret's memory cache remains at %f Mdoubles\n",
-                       (double)(ferMemSize) / 1.0E6);
-            }
+            /* Now handled internally */
             cmnd_stack_level = sBuffer->flags[FRTN_IDATA2];
         }
         else {
             /*
              * Not a memory resize command; probably an exit command.
              * Do not allow return to the Python prompt if in restricted mode
-             * (is_secure_() returns non-zero).
+             * (is_secure returns non-zero).
              */
-            if ( is_secure_() == 0 )
+            if ( FORTRAN(is_secure)() == 0 )
                break;
             if ( sBuffer->flags[FRTN_ACTION] == FACTN_EXIT ) {
-               signal(SIGTERM, oldsighand);
+               remove_ferret_signal_handlers();
                exit(0);
             }
         }
         /* submit an empty command to continue on with whaterever was going on */
         iter_command = "";
     } while ( (one_cmnd_mode_int == 0) || (cmnd_stack_level > 0) );
-    signal(SIGINT, oldsighand);
+
+    /* Restore all the signal handlers that were changed */
+    remove_ferret_signal_handlers();
 
     /* Set back to single command mode */
     if ( one_cmnd_mode_int == 0 ) {
         one_cmnd_mode_int = 1;
-        set_one_cmnd_mode_(&one_cmnd_mode_int);
+        FORTRAN(set_one_cmnd_mode)(&one_cmnd_mode_int);
     }
 
     if ( sBuffer->flags[FRTN_ACTION] == FACTN_EXIT ) {
@@ -535,7 +630,7 @@ static PyObject *pyferretRunCommand(PyObject *self, PyObject *args, PyObject *kw
     }
 
     /* Get the last error message (null terminated) and value */
-    get_fer_last_error_info_(&errval, errmsg, 2112);
+    FORTRAN(get_fer_last_error_info)(&errval, errmsg, 2112);
 
     /* Return the tuple of the last error value and message */
     return Py_BuildValue("is", errval, errmsg);
@@ -571,31 +666,30 @@ static char pyferretGetDataDocstring[] =
 
 static PyObject *pyferretGetData(PyObject *self, PyObject *args, PyObject *kwds)
 {
-    static char *argNames[] = {"name", NULL};
-    char        *name;
-    int          lendataname;
-    char         dataname[1024];
-    int          arraystart;
-    int          memlo[MAX_FERRET_NDIM], memhi[MAX_FERRET_NDIM];
-    int          steplo[MAX_FERRET_NDIM], stephi[MAX_FERRET_NDIM], incr[MAX_FERRET_NDIM];
-    char         dataunit[64];
-    int          lendataunit;
-    AXISTYPE     axis_types[MAX_FERRET_NDIM];
-    char         errmsg[2112];
-    int          lenerrmsg;
-    double       badval;
-    int          i, j, k, l, m, n, q;
-    npy_intp     shape[MAX_FERRET_NDIM];
-    npy_intp     new_shape[2];
-    int          strides[MAX_FERRET_NDIM];
-    PyObject    *data_ndarray;
-    double      *ferdata;
-    double      *npydata;
-    PyObject    *badval_ndarray;
-    PyObject    *axis_coords[MAX_FERRET_NDIM];
-    char         axis_units[MAX_FERRET_NDIM][64];
-    char         axis_names[MAX_FERRET_NDIM][64];
-    CALTYPE      calendar_type;
+    static char   *argNames[] = {"name", NULL};
+    char          *name;
+    int            lendataname;
+    char           dataname[1024];
+    double        *arraystart;
+    int            memlo[MAX_FERRET_NDIM], memhi[MAX_FERRET_NDIM];
+    int            steplo[MAX_FERRET_NDIM], stephi[MAX_FERRET_NDIM], incr[MAX_FERRET_NDIM];
+    char           dataunit[64];
+    int            lendataunit;
+    AXISTYPE       axis_types[MAX_FERRET_NDIM];
+    char           errmsg[2112];
+    int            lenerrmsg;
+    double         badval;
+    int            i, j, k, l, m, n, q;
+    npy_intp       shape[MAX_FERRET_NDIM];
+    npy_intp       new_shape[2];
+    int            strides[MAX_FERRET_NDIM];
+    PyArrayObject *data_ndarray;
+    double        *npydata;
+    PyArrayObject *badval_ndarray;
+    PyArrayObject *axis_coords[MAX_FERRET_NDIM];
+    char           axis_units[MAX_FERRET_NDIM][64];
+    char           axis_names[MAX_FERRET_NDIM][64];
+    CALTYPE        calendar_type;
 
     /* If not initialized, raise a MemoryError */
     if ( ! ferretInitialized ) {
@@ -619,7 +713,7 @@ static PyObject *pyferretGetData(PyObject *self, PyObject *args, PyObject *kwds)
      * Retrieve the memory parameters describing the data array requested.
      * Assumes Unix standard for passing strings to Fortran (appended array lengths).
      */
-    get_data_array_params_(dataname, &lendataname, ferMemory, &arraystart, memlo, memhi,
+    FORTRAN(get_data_array_params)(dataname, &lendataname, &arraystart, memlo, memhi,
                            steplo, stephi, incr, dataunit, &lendataunit, axis_types,
                            &badval, errmsg, &lenerrmsg, 1024, 64, 2112);
     if ( lenerrmsg > 0 ) {
@@ -649,7 +743,7 @@ static PyObject *pyferretGetData(PyObject *self, PyObject *args, PyObject *kwds)
         strides[k] *= incr[k];
 
     /* Create a new NumPy double ndarray (Fortran ordering) with the same shape */
-    data_ndarray = PyArray_EMPTY(MAX_FERRET_NDIM, shape, NPY_DOUBLE, 1);
+    data_ndarray = (PyArrayObject *) PyArray_EMPTY(MAX_FERRET_NDIM, shape, NPY_DOUBLE, 1);
     if ( data_ndarray == NULL ) {
         return NULL;
     }
@@ -658,7 +752,6 @@ static PyObject *pyferretGetData(PyObject *self, PyObject *args, PyObject *kwds)
      * Assign the data in the new ndarray.
      * Note: if MAX_FERRET_NDIM changes, this needs editing.
      */
-    ferdata = ferMemory + arraystart;
     npydata = (double *)PyArray_DATA(data_ndarray);
     q = 0;
     for (n = 0; n < (int)(shape[5]); n++) {
@@ -667,12 +760,12 @@ static PyObject *pyferretGetData(PyObject *self, PyObject *args, PyObject *kwds)
           for (k = 0; k < (int)(shape[2]); k++) {
             for (j = 0; j < (int)(shape[1]); j++) {
               for (i = 0; i < (int)(shape[0]); i++) {
-                npydata[q] = ferdata[ i * strides[0] + 
-                                      j * strides[1] + 
-                                      k * strides[2] + 
-                                      l * strides[3] +
-                                      m * strides[4] +
-                                      n * strides[5] ];
+                npydata[q] = arraystart[ i * strides[0] + 
+                                         j * strides[1] + 
+                                         k * strides[2] + 
+                                         l * strides[3] +
+                                         m * strides[4] +
+                                         n * strides[5] ];
                 q++;
               }
             }
@@ -683,7 +776,7 @@ static PyObject *pyferretGetData(PyObject *self, PyObject *args, PyObject *kwds)
 
     /* Create a new NumPy float ndarray with the bad-data-flag value(s) */
     new_shape[0] = 1;
-    badval_ndarray = PyArray_SimpleNew(1, new_shape, NPY_DOUBLE);
+    badval_ndarray = (PyArrayObject *) PyArray_SimpleNew(1, new_shape, NPY_DOUBLE);
     if ( badval_ndarray == NULL ) {
        Py_DECREF(data_ndarray);
        return NULL;
@@ -700,7 +793,7 @@ static PyObject *pyferretGetData(PyObject *self, PyObject *args, PyObject *kwds)
         case AXISTYPE_CUSTOM:
         case AXISTYPE_ABSTRACT:
             /* array of doubles, possibly with a units string */
-            axis_coords[k] = PyArray_SimpleNew(1, &(shape[k]), NPY_DOUBLE);
+            axis_coords[k] = (PyArrayObject *) PyArray_SimpleNew(1, &(shape[k]), NPY_DOUBLE);
             if ( axis_coords[k] == NULL ) {
                 while ( k > 0 ) {
                     k--;
@@ -713,7 +806,7 @@ static PyObject *pyferretGetData(PyObject *self, PyObject *args, PyObject *kwds)
             /* get the coordinates and the units string */
             q = k+1;
             j = (int) shape[k];
-            get_data_array_coords_((double *)PyArray_DATA(axis_coords[k]), axis_units[k],
+            FORTRAN(get_data_array_coords)((double *)PyArray_DATA(axis_coords[k]), axis_units[k],
                                    axis_names[k], &q, &j, errmsg, &lenerrmsg, 64, 64, 2112);
             if ( lenerrmsg > 0 ) {
                 errmsg[lenerrmsg] = '\0';
@@ -732,7 +825,7 @@ static PyObject *pyferretGetData(PyObject *self, PyObject *args, PyObject *kwds)
             /* array of 6-tuples of integers in C order, so: [N][6] in C or (6,N) in Fortran */
             new_shape[0] = shape[k];
             new_shape[1] = 6;
-            axis_coords[k] = PyArray_SimpleNew(2, new_shape, NPY_INT);
+            axis_coords[k] = (PyArrayObject *) PyArray_SimpleNew(2, new_shape, NPY_INT);
             if ( axis_coords[k] == NULL ) {
                 while ( k > 0 ) {
                     k--;
@@ -745,7 +838,7 @@ static PyObject *pyferretGetData(PyObject *self, PyObject *args, PyObject *kwds)
             /* get the time coordinate integers */
             q = k+1;
             j = (int) shape[k];
-            get_data_array_time_coords_((int (*)[6])PyArray_DATA(axis_coords[k]), &calendar_type, axis_names[k],
+            FORTRAN(get_data_array_time_coords)((int (*)[6])PyArray_DATA(axis_coords[k]), &calendar_type, axis_names[k],
                                         &q, &j, errmsg, &lenerrmsg, 64, 2112);
             if ( lenerrmsg > 0 ) {
                 errmsg[lenerrmsg] = '\0';
@@ -795,7 +888,7 @@ static PyObject *pyferretGetData(PyObject *self, PyObject *args, PyObject *kwds)
         case AXISTYPE_NORMAL:
             /* axis normal to the results - no coordinates */
             Py_INCREF(Py_None);
-            axis_coords[k] = Py_None;
+            axis_coords[k] = (PyArrayObject *) Py_None;
             axis_units[k][0] = '\0';
             axis_names[k][0] = '\0';
             break;
@@ -860,35 +953,35 @@ static PyObject *pyferretPutData(PyObject *self, PyObject *args, PyObject *kwds)
 {
     static char *argNames[] = {"codename", "title", "data", "bdfval", "units", "dset",
                                "axis_types", "axis_names", "axis_units", "axis_coords", NULL};
-    char        *codename;
-    char        *title;
-    PyObject    *data_ndarray;
-    PyObject    *bdfval_ndarray;
-    char        *units;
-    char        *dset;
-    PyObject    *axis_types_tuple;
-    PyObject    *axis_names_tuple;
-    PyObject    *axis_units_tuple;
-    PyObject    *axis_coords_tuple;
-    double       bdfval;
-    int          k;
-    PyObject    *seqitem;
-    AXISTYPE     axis_types[MAX_FERRET_NDIM];
-    char        *strptr;
-    char         axis_names[MAX_FERRET_NDIM][64];
-    char         axis_units[MAX_FERRET_NDIM][64];
-    int          num_coords[MAX_FERRET_NDIM];
-    void        *axis_coords[MAX_FERRET_NDIM];
-    CALTYPE      calendar_type;
-    int          axis_nums[MAX_FERRET_NDIM];
-    int          axis_starts[MAX_FERRET_NDIM];
-    int          axis_ends[MAX_FERRET_NDIM];
-    int          len_codename;
-    int          len_title;
-    int          len_units;
-    int          len_dset;
-    char         errmsg[2048];
-    int          len_errmsg;
+    char          *codename;
+    char          *title;
+    PyArrayObject *data_ndarray;
+    PyArrayObject *bdfval_ndarray;
+    char          *units;
+    char          *dset;
+    PyObject      *axis_types_tuple;
+    PyObject      *axis_names_tuple;
+    PyObject      *axis_units_tuple;
+    PyObject      *axis_coords_tuple;
+    double         bdfval;
+    int            k;
+    PyObject      *seqitem;
+    AXISTYPE       axis_types[MAX_FERRET_NDIM];
+    char          *strptr;
+    char           axis_names[MAX_FERRET_NDIM][64];
+    char           axis_units[MAX_FERRET_NDIM][64];
+    int            num_coords[MAX_FERRET_NDIM];
+    void          *axis_coords[MAX_FERRET_NDIM];
+    CALTYPE        calendar_type;
+    int            axis_nums[MAX_FERRET_NDIM];
+    int            axis_starts[MAX_FERRET_NDIM];
+    int            axis_ends[MAX_FERRET_NDIM];
+    int            len_codename;
+    int            len_title;
+    int            len_units;
+    int            len_dset;
+    char           errmsg[2048];
+    int            len_errmsg;
 
     /* If not initialized, raise a MemoryError */
     if ( ! ferretInitialized ) {
@@ -904,15 +997,15 @@ static PyObject *pyferretPutData(PyObject *self, PyObject *args, PyObject *kwds)
 
     /* PyArray_Size returns 0 if the object is not an appropriate type */
     /* ISFARRAY_RO checks if it is F-contiguous, aligned, and in machine byte-order */
-    if ( (PyArray_Size(data_ndarray) < 1) || (PyArray_TYPE(data_ndarray) != NPY_DOUBLE) ||
-         (! PyArray_ISFARRAY_RO(data_ndarray)) || (! PyArray_CHKFLAGS(data_ndarray, NPY_OWNDATA)) ) {
+    if ( (PyArray_Size((PyObject *) data_ndarray) < 1) || (PyArray_TYPE(data_ndarray) != NPY_DOUBLE) ||
+         (! PyArray_ISFARRAY_RO(data_ndarray)) || (! PyArray_CHKFLAGS(data_ndarray, NPY_ARRAY_OWNDATA)) ) {
         PyErr_SetString(PyExc_ValueError, "data is not an appropriate ndarray of type float64");
         return NULL;
     }
 
     /* PyArray_Size returns 0 if the object is not an appropriate type */
     /* ISBEHAVED_RO checks if it is aligned and in machine byte-order */
-    if ( (PyArray_Size(bdfval_ndarray) < 1) || (PyArray_TYPE(bdfval_ndarray) != NPY_DOUBLE) ||
+    if ( (PyArray_Size((PyObject *) bdfval_ndarray) < 1) || (PyArray_TYPE(bdfval_ndarray) != NPY_DOUBLE) ||
          (! PyArray_ISBEHAVED_RO(bdfval_ndarray)) ) {
         PyErr_SetString(PyExc_ValueError, "bdfval is not an appropriate ndarray of type float64");
         return NULL;
@@ -932,7 +1025,11 @@ static PyObject *pyferretPutData(PyObject *self, PyObject *args, PyObject *kwds)
     }
     for (k = 0; k < MAX_FERRET_NDIM; k++) {
         seqitem = PySequence_Fast_GET_ITEM(axis_types_tuple, k); /* borrowed reference */
+#if PY_MAJOR_VERSION > 2
+        axis_types[k] = (int) PyLong_AsLong(seqitem);
+#else
         axis_types[k] = (int) PyInt_AsLong(seqitem);
+#endif
         if ( (axis_types[k] != AXISTYPE_LONGITUDE) &&
              (axis_types[k] != AXISTYPE_LATITUDE) &&
              (axis_types[k] != AXISTYPE_LEVEL) &&
@@ -959,7 +1056,11 @@ static PyObject *pyferretPutData(PyObject *self, PyObject *args, PyObject *kwds)
     }
     for (k = 0; k < MAX_FERRET_NDIM; k++) {
         seqitem = PySequence_Fast_GET_ITEM(axis_names_tuple, k); /* borrowed reference */
+#if PY_MAJOR_VERSION > 2
+        strptr = PyUnicode_AsUTF8(seqitem);
+#else
         strptr = PyString_AsString(seqitem);
+#endif
         if ( strptr == NULL ) {
             PyErr_Clear();
             PyErr_SetString(PyExc_ValueError, "Invalid axis_names item");
@@ -983,7 +1084,11 @@ static PyObject *pyferretPutData(PyObject *self, PyObject *args, PyObject *kwds)
     }
     for (k = 0; k < MAX_FERRET_NDIM; k++) {
         seqitem = PySequence_Fast_GET_ITEM(axis_units_tuple, k); /* borrowed reference */
+#if PY_MAJOR_VERSION > 2
+        strptr = PyUnicode_AsUTF8(seqitem);
+#else
         strptr = PyString_AsString(seqitem);
+#endif
         if ( strptr == NULL ) {
             PyErr_Clear();
             PyErr_SetString(PyExc_ValueError, "Invalid axis_units item");
@@ -1022,18 +1127,18 @@ static PyObject *pyferretPutData(PyObject *self, PyObject *args, PyObject *kwds)
                 Py_DECREF(axis_coords_tuple);
                 return NULL;
             }
-            if ( PyArray_TYPE(seqitem) != NPY_DOUBLE ) {
+            if ( PyArray_TYPE((PyArrayObject *) seqitem) != NPY_DOUBLE ) {
                 PyErr_SetString(PyExc_ValueError, "a standard axis of axis_coords has an invalid type");
                 Py_DECREF(axis_coords_tuple);
                 return NULL;
             }
-            if ( ! PyArray_ISCARRAY_RO(seqitem) ) {
+            if ( ! PyArray_ISCARRAY_RO((PyArrayObject *) seqitem) ) {
                 PyErr_SetString(PyExc_ValueError, "a standard axis of axis_coords is not an appropriate ndarray");
                 Py_DECREF(axis_coords_tuple);
                 return NULL;
             }
-            axis_coords[k] = (int *)PyArray_DATA(seqitem);
-            get_axis_num_(&(axis_nums[k]), &(axis_starts[k]), &(axis_ends[k]), axis_names[k],
+            axis_coords[k] = (int *)PyArray_DATA((PyArrayObject *) seqitem);
+            FORTRAN(get_axis_num)(&(axis_nums[k]), &(axis_starts[k]), &(axis_ends[k]), axis_names[k],
                           axis_units[k], axis_coords[k], &(num_coords[k]), &(axis_types[k]),
                           errmsg, &len_errmsg, strlen(axis_names[k]), strlen(axis_units[k]), 2048);
             if ( len_errmsg > 0 ) {
@@ -1053,13 +1158,13 @@ static PyObject *pyferretPutData(PyObject *self, PyObject *args, PyObject *kwds)
                 Py_DECREF(axis_coords_tuple);
                 return NULL;
             }
-            if ( (PyArray_TYPE(seqitem) != NPY_INT) &&
-                 ((PyArray_TYPE(seqitem) != NPY_LONG) || (NPY_SIZEOF_LONG != 4)) ) {
+            if ( (PyArray_TYPE((PyArrayObject *) seqitem) != NPY_INT) &&
+                 ((PyArray_TYPE((PyArrayObject *) seqitem) != NPY_LONG) || (NPY_SIZEOF_LONG != 4)) ) {
                 PyErr_SetString(PyExc_ValueError, "an absolute-time axis of axis_coords has an invalid type");
                 Py_DECREF(axis_coords_tuple);
                 return NULL;
             }
-            if ( ! PyArray_ISCARRAY_RO(seqitem) ) {
+            if ( ! PyArray_ISCARRAY_RO((PyArrayObject *) seqitem) ) {
                 PyErr_SetString(PyExc_ValueError, "an absolute-time axis of axis_coords is not an appropriate ndarray");
                 Py_DECREF(axis_coords_tuple);
                 return NULL;
@@ -1088,8 +1193,8 @@ static PyObject *pyferretPutData(PyObject *self, PyObject *args, PyObject *kwds)
                 Py_DECREF(axis_coords_tuple);
                 return NULL;
             }
-            axis_coords[k] = (int *)PyArray_DATA(seqitem);
-            get_time_axis_num_(&(axis_nums[k]), &(axis_starts[k]), &(axis_ends[k]),
+            axis_coords[k] = (int *)PyArray_DATA((PyArrayObject *) seqitem);
+            FORTRAN(get_time_axis_num)(&(axis_nums[k]), &(axis_starts[k]), &(axis_ends[k]),
                                axis_names[k], &calendar_type, axis_coords[k], &(num_coords[k]),
                                errmsg, &len_errmsg, strlen(axis_names[k]), 2048);
             if ( len_errmsg > 0 ) {
@@ -1120,7 +1225,7 @@ static PyObject *pyferretPutData(PyObject *self, PyObject *args, PyObject *kwds)
     len_title = strlen(title);
     len_units = strlen(units);
     len_dset = strlen(dset);
-    add_pystat_var_(&data_ndarray, codename, title, units, &bdfval, dset,
+    FORTRAN(add_pystat_var)(&data_ndarray, codename, title, units, &bdfval, dset,
                     axis_nums, axis_starts, axis_ends, errmsg, &len_errmsg,
                     len_codename, len_title, len_units, len_dset, 2048);
     if ( len_errmsg > 0 ) {
@@ -1172,7 +1277,7 @@ static PyObject *pyferretGetStrData(PyObject *self, PyObject *args, PyObject *kw
     char          *name;
     int            lendataname;
     char           dataname[1024];
-    int            arraystart;
+    char         **arraystart;
     int            memlo[MAX_FERRET_NDIM], memhi[MAX_FERRET_NDIM];
     int            steplo[MAX_FERRET_NDIM], stephi[MAX_FERRET_NDIM], incr[MAX_FERRET_NDIM];
     AXISTYPE       axis_types[MAX_FERRET_NDIM];
@@ -1182,15 +1287,15 @@ static PyObject *pyferretGetStrData(PyObject *self, PyObject *args, PyObject *kw
     npy_intp       shape[MAX_FERRET_NDIM];
     npy_intp       new_shape[2];
     int            strides[MAX_FERRET_NDIM];
-    PyObject      *data_ndarray;
-    void         **ferdata;
+    PyArrayObject *data_ndarray;
+    int            factor;
     char          *strptr;
     int            maxstrlen;
     int            thisstrlen;
     PyArray_Descr *strarraydescript;
     char          *npydata;
-    PyObject      *badval_ndarray;
-    PyObject      *axis_coords[MAX_FERRET_NDIM];
+    PyArrayObject *badval_ndarray;
+    PyArrayObject *axis_coords[MAX_FERRET_NDIM];
     char           axis_units[MAX_FERRET_NDIM][64];
     char           axis_names[MAX_FERRET_NDIM][64];
     CALTYPE        calendar_type;
@@ -1217,7 +1322,7 @@ static PyObject *pyferretGetStrData(PyObject *self, PyObject *args, PyObject *kw
      * Retrieve the memory parameters describing the data array requested.
      * Assumes Unix standard for passing strings to Fortran (appended array lengths).
      */
-    get_str_data_array_params_(dataname, &lendataname, ferMemory, &arraystart, 
+    FORTRAN(get_str_data_array_params)(dataname, &lendataname, &arraystart, 
                                memlo, memhi, steplo, stephi, incr, axis_types,
                                errmsg, &lenerrmsg, 1024, 64, 2112);
     if ( lenerrmsg > 0 ) {
@@ -1247,10 +1352,12 @@ static PyObject *pyferretGetStrData(PyObject *self, PyObject *args, PyObject *kw
      * Note: for string arrays, each "double" is a pointer 
      * to allocated memory containing a null-terminated string;
      * or null for missing strings.
+     * This means pointer are spaced 8 bytes apart regardless of pointer size,
+     * so need to double for 4-byte (32-bit) pointers.
      */
+    factor = 8 / sizeof(char *);
 
     /* Get the maximum string length of all the strings in this array */
-    ferdata = (void **) (ferMemory + arraystart);
     /* Use STRING_MISSING_VALUE for missing strings */
     maxstrlen = (int)(strlen(STRING_MISSING_VALUE) + 1);
     for (n = 0; n < (int)(shape[5]); n++) {
@@ -1259,12 +1366,13 @@ static PyObject *pyferretGetStrData(PyObject *self, PyObject *args, PyObject *kw
           for (k = 0; k < (int)(shape[2]); k++) {
             for (j = 0; j < (int)(shape[1]); j++) {
               for (i = 0; i < (int)(shape[0]); i++) {
-                strptr = (char *) ferdata[ i * strides[0] + 
-                                           j * strides[1] + 
-                                           k * strides[2] + 
-                                           l * strides[3] +
-                                           m * strides[4] +
-                                           n * strides[5] ];
+                strptr = arraystart[ factor * ( 
+                                     i * strides[0] + 
+                                     j * strides[1] + 
+                                     k * strides[2] + 
+                                     l * strides[3] +
+                                     m * strides[4] +
+                                     n * strides[5] ) ];
                 if ( strptr != NULL ) {
                   /* add one so always null-terminated */
                   thisstrlen = (int)(strlen(strptr) + 1);
@@ -1282,7 +1390,7 @@ static PyObject *pyferretGetStrData(PyObject *self, PyObject *args, PyObject *kw
     /* Create a new NumPy String ndarray (Fortran ordering) with the same shape */
     strarraydescript = PyArray_DescrNewFromType(NPY_STRING);
     strarraydescript->elsize = maxstrlen;
-    data_ndarray = PyArray_Empty(MAX_FERRET_NDIM, shape, strarraydescript, 1);
+    data_ndarray = (PyArrayObject *) PyArray_Empty(MAX_FERRET_NDIM, shape, strarraydescript, 1);
     if ( data_ndarray == NULL ) {
         return NULL;
     }
@@ -1300,12 +1408,13 @@ static PyObject *pyferretGetStrData(PyObject *self, PyObject *args, PyObject *kw
           for (k = 0; k < (int)(shape[2]); k++) {
             for (j = 0; j < (int)(shape[1]); j++) {
               for (i = 0; i < (int)(shape[0]); i++) {
-                strptr = (char *) ferdata[ i * strides[0] + 
-                                           j * strides[1] + 
-                                           k * strides[2] + 
-                                           l * strides[3] +
-                                           m * strides[4] +
-                                           n * strides[5] ];
+                strptr = arraystart[ factor * (
+                                     i * strides[0] + 
+                                     j * strides[1] + 
+                                     k * strides[2] + 
+                                     l * strides[3] +
+                                     m * strides[4] +
+                                     n * strides[5] ) ];
                 if ( strptr == NULL ) {
                    strptr = STRING_MISSING_VALUE;
                 }
@@ -1323,7 +1432,7 @@ static PyObject *pyferretGetStrData(PyObject *self, PyObject *args, PyObject *kw
     new_shape[0] = 1;
     strarraydescript = PyArray_DescrNewFromType(NPY_STRING);
     strarraydescript->elsize = maxstrlen;
-    badval_ndarray = PyArray_Empty(1, new_shape, strarraydescript, 0);
+    badval_ndarray = (PyArrayObject *) PyArray_Empty(1, new_shape, strarraydescript, 0);
     if ( badval_ndarray == NULL ) {
        Py_DECREF(data_ndarray);
        return NULL;
@@ -1341,7 +1450,7 @@ static PyObject *pyferretGetStrData(PyObject *self, PyObject *args, PyObject *kw
         case AXISTYPE_CUSTOM:
         case AXISTYPE_ABSTRACT:
             /* array of doubles, possibly with a units string */
-            axis_coords[k] = PyArray_SimpleNew(1, &(shape[k]), NPY_DOUBLE);
+            axis_coords[k] = (PyArrayObject *) PyArray_SimpleNew(1, &(shape[k]), NPY_DOUBLE);
             if ( axis_coords[k] == NULL ) {
                 while ( k > 0 ) {
                     k--;
@@ -1354,7 +1463,7 @@ static PyObject *pyferretGetStrData(PyObject *self, PyObject *args, PyObject *kw
             /* get the coordinates and the units string */
             q = k+1;
             j = (int) shape[k];
-            get_data_array_coords_((double *)PyArray_DATA(axis_coords[k]), axis_units[k],
+            FORTRAN(get_data_array_coords)((double *)PyArray_DATA(axis_coords[k]), axis_units[k],
                                    axis_names[k], &q, &j, errmsg, &lenerrmsg, 64, 64, 2112);
             if ( lenerrmsg > 0 ) {
                 errmsg[lenerrmsg] = '\0';
@@ -1373,7 +1482,7 @@ static PyObject *pyferretGetStrData(PyObject *self, PyObject *args, PyObject *kw
             /* array of 6-tuples of integers in C order, so: [N][6] in C or (6,N) in Fortran */
             new_shape[0] = shape[k];
             new_shape[1] = 6;
-            axis_coords[k] = PyArray_SimpleNew(2, new_shape, NPY_INT);
+            axis_coords[k] = (PyArrayObject *) PyArray_SimpleNew(2, new_shape, NPY_INT);
             if ( axis_coords[k] == NULL ) {
                 while ( k > 0 ) {
                     k--;
@@ -1386,7 +1495,7 @@ static PyObject *pyferretGetStrData(PyObject *self, PyObject *args, PyObject *kw
             /* get the time coordinate integers */
             q = k+1;
             j = (int) shape[k];
-            get_data_array_time_coords_((int (*)[6])PyArray_DATA(axis_coords[k]), &calendar_type, axis_names[k],
+            FORTRAN(get_data_array_time_coords)((int (*)[6])PyArray_DATA(axis_coords[k]), &calendar_type, axis_names[k],
                                         &q, &j, errmsg, &lenerrmsg, 64, 2112);
             if ( lenerrmsg > 0 ) {
                 errmsg[lenerrmsg] = '\0';
@@ -1436,7 +1545,7 @@ static PyObject *pyferretGetStrData(PyObject *self, PyObject *args, PyObject *kw
         case AXISTYPE_NORMAL:
             /* axis normal to the results - no coordinates */
             Py_INCREF(Py_None);
-            axis_coords[k] = Py_None;
+            axis_coords[k] = (PyArrayObject *) Py_None;
             axis_units[k][0] = '\0';
             axis_names[k][0] = '\0';
             break;
@@ -1501,17 +1610,17 @@ static PyObject *pyferretStop(PyObject *self)
     pyferret_module_pyobject = NULL;
 
     /* Run commands to clear/reset Ferret's state */
-    ferret_dispatch_c(ferMemory, "SET GRID ABSTRACT", sBuffer);
-    ferret_dispatch_c(ferMemory, "CANCEL WINDOW /ALL", sBuffer);
-    ferret_dispatch_c(ferMemory, "CANCEL VARIABLE /ALL", sBuffer);
-    ferret_dispatch_c(ferMemory, "CANCEL SYMBOL /ALL", sBuffer);
-    ferret_dispatch_c(ferMemory, "CANCEL DATA /ALL", sBuffer);
-    ferret_dispatch_c(ferMemory, "CANCEL REGION /ALL", sBuffer);
-    ferret_dispatch_c(ferMemory, "CANCEL MEMORY /ALL", sBuffer);
-    ferret_dispatch_c(ferMemory, "EXIT /PROGRAM", sBuffer);
+    ferret_dispatch_c("SET GRID ABSTRACT", sBuffer);
+    ferret_dispatch_c("CANCEL WINDOW /ALL", sBuffer);
+    ferret_dispatch_c("CANCEL VARIABLE /ALL", sBuffer);
+    ferret_dispatch_c("CANCEL SYMBOL /ALL", sBuffer);
+    ferret_dispatch_c("CANCEL DATA /ALL", sBuffer);
+    ferret_dispatch_c("CANCEL REGION /ALL", sBuffer);
+    ferret_dispatch_c("CANCEL MEMORY /ALL", sBuffer);
+    ferret_dispatch_c("EXIT /PROGRAM", sBuffer);
 
     /* Free memory allocated inside Ferret */
-    finalize_();
+    FORTRAN(finalize)();
 
     /* Free memory allocated for Ferret */
     PyMem_Free(ferMemory);
@@ -1558,10 +1667,10 @@ static PyObject *pyferretQuit(PyObject *self)
     pyferret_module_pyobject = NULL;
 
     /* Let Ferret do its orderly shutdown - including closing viewers */
-    ferret_dispatch_c(ferMemory, "EXIT /PROGRAM", sBuffer);
+    ferret_dispatch_c("EXIT /PROGRAM", sBuffer);
 
     /* Free memory allocated inside Ferret */
-    finalize_();
+    FORTRAN(finalize)();
 
     /* Free memory allocated for Ferret */
     PyMem_Free(ferMemory);
@@ -1605,7 +1714,7 @@ static PyObject *pyefcnGetAxisCoordinates(PyObject *self, PyObject *args, PyObje
     int               incr[EF_MAX_COMPUTE_ARGS][MAX_FERRET_NDIM];
     int               lo, hi;
     npy_intp          shape[1];
-    PyObject         *coords_ndarray;
+    PyArrayObject    *coords_ndarray;
 
     /* Parse the arguments, checking if an Exception was raised */
     if ( ! PyArg_ParseTupleAndKeywords(args, kwds, "iii", argNames, &id, &arg, &axis) )
@@ -1628,22 +1737,22 @@ static PyObject *pyefcnGetAxisCoordinates(PyObject *self, PyObject *args, PyObje
     }
 
     /* Catch seg faults from indiscriminately calling this function */
-    if ( setjmp(jumpbuffer) == 1 ) {
-        signal(SIGSEGV, segv_handler);
+    if ( setjmp(pyefcn_jumpbuffer) != 0 ) {
+        signal(SIGSEGV, pyefcn_segv_handler);
         PyErr_SetString(PyExc_ValueError, "Invalid function call - probably not from a ferret external function call");
         return NULL;
     }
-    segv_handler = signal(SIGSEGV, pyefcn_signal_handler);
-    if ( segv_handler == SIG_ERR ) {
+    pyefcn_segv_handler = signal(SIGSEGV, pyefcn_signal_handler);
+    if ( pyefcn_segv_handler == SIG_ERR ) {
         PyErr_SetString(PyExc_ValueError, "Unable to catch SIGSEGV");
         return NULL;
     }
 
     /* Get the subscripts for all of the arguments */
-    ef_get_arg_subscripts_6d_(&id, steplo, stephi, incr);
+    FORTRAN(ef_get_arg_subscripts_6d)(&id, steplo, stephi, incr);
 
     /* Restore the original segv handler */
-    signal(SIGSEGV, segv_handler);
+    signal(SIGSEGV, pyefcn_segv_handler);
 
     /* Check the indices for the coordinates of the desired axis of the argument */
     if ( (steplo[arg][axis] == UNSPECIFIED_INT4) || (stephi[arg][axis] == UNSPECIFIED_INT4) ||
@@ -1660,7 +1769,7 @@ static PyObject *pyefcnGetAxisCoordinates(PyObject *self, PyObject *args, PyObje
             incr[arg][axis] = -1;
     }
     shape[0] = (Py_ssize_t) ((stephi[arg][axis] - steplo[arg][axis] + incr[arg][axis]) / incr[arg][axis]);
-    coords_ndarray = PyArray_SimpleNew(1, shape, NPY_DOUBLE);
+    coords_ndarray = (PyArrayObject *) PyArray_SimpleNew(1, shape, NPY_DOUBLE);
     if ( coords_ndarray == NULL ) {
         return NULL;
     }
@@ -1670,9 +1779,9 @@ static PyObject *pyefcnGetAxisCoordinates(PyObject *self, PyObject *args, PyObje
     hi = stephi[arg][axis];
     arg++;
     axis++;
-    ef_get_coordinates_(&id, &arg, &axis, &lo, &hi, (double *)PyArray_DATA(coords_ndarray));
+    FORTRAN(ef_get_coordinates)(&id, &arg, &axis, &lo, &hi, (double *)PyArray_DATA(coords_ndarray));
 
-    return coords_ndarray;
+    return (PyObject *) coords_ndarray;
 }
 
 
@@ -1706,7 +1815,7 @@ static PyObject *pyefcnGetAxisBoxSizes(PyObject *self, PyObject *args, PyObject
     int               incr[EF_MAX_COMPUTE_ARGS][MAX_FERRET_NDIM];
     int               lo, hi;
     npy_intp          shape[1];
-    PyObject         *sizes_ndarray;
+    PyArrayObject    *sizes_ndarray;
 
     /* Parse the arguments, checking if an Exception was raised */
     if ( ! PyArg_ParseTupleAndKeywords(args, kwds, "iii", argNames, &id, &arg, &axis) )
@@ -1729,22 +1838,22 @@ static PyObject *pyefcnGetAxisBoxSizes(PyObject *self, PyObject *args, PyObject
     }
 
     /* Catch seg faults from indiscriminately calling this function */
-    if ( setjmp(jumpbuffer) == 1 ) {
-        signal(SIGSEGV, segv_handler);
+    if ( setjmp(pyefcn_jumpbuffer) != 0 ) {
+        signal(SIGSEGV, pyefcn_segv_handler);
         PyErr_SetString(PyExc_ValueError, "Invalid function call - probably not from a ferret external function call");
         return NULL;
     }
-    segv_handler = signal(SIGSEGV, pyefcn_signal_handler);
-    if ( segv_handler == SIG_ERR ) {
+    pyefcn_segv_handler = signal(SIGSEGV, pyefcn_signal_handler);
+    if ( pyefcn_segv_handler == SIG_ERR ) {
         PyErr_SetString(PyExc_ValueError, "Unable to catch SIGSEGV");
         return NULL;
     }
 
     /* Get the subscripts for all of the arguments */
-    ef_get_arg_subscripts_6d_(&id, steplo, stephi, incr);
+    FORTRAN(ef_get_arg_subscripts_6d)(&id, steplo, stephi, incr);
 
     /* Restore the original segv handler */
-    signal(SIGSEGV, segv_handler);
+    signal(SIGSEGV, pyefcn_segv_handler);
 
     /* Check the indices for the coordinates of the desired axis of the argument */
     if ( (steplo[arg][axis] == UNSPECIFIED_INT4) || (stephi[arg][axis] == UNSPECIFIED_INT4) ||
@@ -1761,7 +1870,7 @@ static PyObject *pyefcnGetAxisBoxSizes(PyObject *self, PyObject *args, PyObject
             incr[arg][axis] = -1;
     }
     shape[0] = (Py_ssize_t) ((stephi[arg][axis] - steplo[arg][axis] + incr[arg][axis]) / incr[arg][axis]);
-    sizes_ndarray = PyArray_SimpleNew(1, shape, NPY_DOUBLE);
+    sizes_ndarray = (PyArrayObject *) PyArray_SimpleNew(1, shape, NPY_DOUBLE);
     if ( sizes_ndarray == NULL ) {
         return NULL;
     }
@@ -1771,9 +1880,9 @@ static PyObject *pyefcnGetAxisBoxSizes(PyObject *self, PyObject *args, PyObject
     hi = stephi[arg][axis];
     arg++;
     axis++;
-    ef_get_box_size_(&id, &arg, &axis, &lo, &hi, (double *)PyArray_DATA(sizes_ndarray));
+    FORTRAN(ef_get_box_size)(&id, &arg, &axis, &lo, &hi, (double *)PyArray_DATA(sizes_ndarray));
 
-    return sizes_ndarray;
+    return (PyObject *) sizes_ndarray;
 }
 
 
@@ -1807,7 +1916,7 @@ static PyObject *pyefcnGetAxisBoxLimits(PyObject *self, PyObject *args, PyObject
     int               incr[EF_MAX_COMPUTE_ARGS][MAX_FERRET_NDIM];
     int               lo, hi;
     npy_intp          shape[1];
-    PyObject         *low_limits_ndarray, *high_limits_ndarray;
+    PyArrayObject    *low_limits_ndarray, *high_limits_ndarray;
 
     /* Parse the arguments, checking if an Exception was raised */
     if ( ! PyArg_ParseTupleAndKeywords(args, kwds, "iii", argNames, &id, &arg, &axis) )
@@ -1830,22 +1939,22 @@ static PyObject *pyefcnGetAxisBoxLimits(PyObject *self, PyObject *args, PyObject
     }
 
     /* Catch seg faults from indiscriminately calling this function */
-    if ( setjmp(jumpbuffer) == 1 ) {
-        signal(SIGSEGV, segv_handler);
+    if ( setjmp(pyefcn_jumpbuffer) != 0 ) {
+        signal(SIGSEGV, pyefcn_segv_handler);
         PyErr_SetString(PyExc_ValueError, "Invalid function call - probably not from a ferret external function call");
         return NULL;
     }
-    segv_handler = signal(SIGSEGV, pyefcn_signal_handler);
-    if ( segv_handler == SIG_ERR ) {
+    pyefcn_segv_handler = signal(SIGSEGV, pyefcn_signal_handler);
+    if ( pyefcn_segv_handler == SIG_ERR ) {
         PyErr_SetString(PyExc_ValueError, "Unable to catch SIGSEGV");
         return NULL;
     }
 
     /* Get the subscripts for all of the arguments */
-    ef_get_arg_subscripts_6d_(&id, steplo, stephi, incr);
+    FORTRAN(ef_get_arg_subscripts_6d)(&id, steplo, stephi, incr);
 
     /* Restore the original segv handler */
-    signal(SIGSEGV, segv_handler);
+    signal(SIGSEGV, pyefcn_segv_handler);
 
     /* Check the indices for the coordinates of the desired axis of the argument */
     if ( (steplo[arg][axis] == UNSPECIFIED_INT4) || (stephi[arg][axis] == UNSPECIFIED_INT4) ||
@@ -1862,11 +1971,11 @@ static PyObject *pyefcnGetAxisBoxLimits(PyObject *self, PyObject *args, PyObject
             incr[arg][axis] = -1;
     }
     shape[0] = (Py_ssize_t) ((stephi[arg][axis] - steplo[arg][axis] + incr[arg][axis]) / incr[arg][axis]);
-    low_limits_ndarray = PyArray_SimpleNew(1, shape, NPY_DOUBLE);
+    low_limits_ndarray = (PyArrayObject *) PyArray_SimpleNew(1, shape, NPY_DOUBLE);
     if ( low_limits_ndarray == NULL ) {
         return NULL;
     }
-    high_limits_ndarray = PyArray_SimpleNew(1, shape, NPY_DOUBLE);
+    high_limits_ndarray = (PyArrayObject *) PyArray_SimpleNew(1, shape, NPY_DOUBLE);
     if ( high_limits_ndarray == NULL ) {
         Py_DECREF(low_limits_ndarray);
         return NULL;
@@ -1877,7 +1986,7 @@ static PyObject *pyefcnGetAxisBoxLimits(PyObject *self, PyObject *args, PyObject
     hi = stephi[arg][axis];
     arg++;
     axis++;
-    ef_get_box_limits_(&id, &arg, &axis, &lo, &hi, (double *)PyArray_DATA(low_limits_ndarray), 
+    FORTRAN(ef_get_box_limits)(&id, &arg, &axis, &lo, &hi, (double *)PyArray_DATA(low_limits_ndarray), 
                                                    (double *)PyArray_DATA(high_limits_ndarray));
 
     return Py_BuildValue("NN", low_limits_ndarray, high_limits_ndarray); /* Steals the references to the two ndarrays */
@@ -1949,22 +2058,22 @@ static PyObject *pyefcnGetAxisInfo(PyObject *self, PyObject *args, PyObject *kwd
     }
 
     /* Catch seg faults from indiscriminately calling this function */
-    if ( setjmp(jumpbuffer) == 1 ) {
-        signal(SIGSEGV, segv_handler);
+    if ( setjmp(pyefcn_jumpbuffer) != 0 ) {
+        signal(SIGSEGV, pyefcn_segv_handler);
         PyErr_SetString(PyExc_ValueError, "Invalid function call - probably not from a ferret external function call");
         return NULL;
     }
-    segv_handler = signal(SIGSEGV, pyefcn_signal_handler);
-    if ( segv_handler == SIG_ERR ) {
+    pyefcn_segv_handler = signal(SIGSEGV, pyefcn_signal_handler);
+    if ( pyefcn_segv_handler == SIG_ERR ) {
         PyErr_SetString(PyExc_ValueError, "Unable to catch SIGSEGV");
         return NULL;
     }
 
     /* Get the subscripts for all of the arguments */
-    ef_get_arg_subscripts_6d_(&id, steplo, stephi, incr);
+    FORTRAN(ef_get_arg_subscripts_6d)(&id, steplo, stephi, incr);
 
     /* Restore the original segv handler */
-    signal(SIGSEGV, segv_handler);
+    signal(SIGSEGV, pyefcn_segv_handler);
 
     /* Check the indices for the coordinates of the desired axis of the argument */
     if ( (steplo[arg][axis] == UNSPECIFIED_INT4) || (stephi[arg][axis] == UNSPECIFIED_INT4) ||
@@ -1984,9 +2093,9 @@ static PyObject *pyefcnGetAxisInfo(PyObject *self, PyObject *args, PyObject *kwd
     /* Get the rest of the info */
     arg++;
     axis++;
-    ef_get_single_axis_info_(&id, &arg, &axis, name, unit, &backwards, &modulo, &regular, 80, 80);
+    FORTRAN(ef_get_single_axis_info)(&id, &arg, &axis, name, unit, &backwards, &modulo, &regular, 80, 80);
     if ( modulo != 0 )
-        ef_get_axis_modulo_len_(&id, &arg, &axis, &modulolen);
+        FORTRAN(ef_get_axis_modulo_len)(&id, &arg, &axis, &modulolen);
     else
         modulolen = 0.0;
 
@@ -2038,6 +2147,7 @@ static PyObject *pyefcnGetArgOneVal(PyObject *self, PyObject *args, PyObject *kw
     double            float_val;
     PyObject         *valobj;
     char              str_val[2048];
+    int               valtype;
     int               k;
 
     /* Parse the arguments, checking if an Exception was raised */
@@ -2057,7 +2167,11 @@ static PyObject *pyefcnGetArgOneVal(PyObject *self, PyObject *args, PyObject *kw
     }
 
     /* Get the Python module (should already be imported) */
+#if PY_MAJOR_VERSION > 2
+    modname = PyUnicode_FromString(ef_ptr->path);
+#else
     modname = PyString_FromString(ef_ptr->path);
+#endif
     if ( modname == NULL )
         return NULL;
     usermod = PyImport_Import(modname);
@@ -2086,21 +2200,30 @@ static PyObject *pyefcnGetArgOneVal(PyObject *self, PyObject *args, PyObject *kw
         PyErr_SetString(PyExc_ValueError, "argtype is neither FLOAT_ONEVAL nor STRING_ONEVAL");
         return NULL;
     }
-    switch( (int) PyInt_AsLong(typeobj) ) {
+#if PY_MAJOR_VERSION > 2
+    valtype = (int) PyLong_AsLong(typeobj);
+#else
+    valtype = (int) PyInt_AsLong(typeobj);
+#endif
+    switch( valtype ) {
         case FLOAT_ONEVAL:
             k = arg + 1;
-            ef_get_one_val_(&id, &k, &float_val);
+            FORTRAN(ef_get_one_val)(&id, &k, &float_val);
             valobj = PyFloat_FromDouble(float_val);
             break;
         case STRING_ONEVAL:
         case STRING_ARG:
             k = arg + 1;
             /* Assumes gcc standard for passing Hollerith strings */
-            ef_get_arg_string_(&id, &k, str_val, 2048);
+            FORTRAN(ef_get_arg_string)(&id, &k, str_val, 2048);
             for (k = 2048; k > 0; k--)
                 if ( ! isspace(str_val[k-1]) )
                     break;
+#if PY_MAJOR_VERSION > 2
+            valobj = PyUnicode_FromStringAndSize(str_val, k);
+#else
             valobj = PyString_FromStringAndSize(str_val, k);
+#endif
             break;
         default:
             PyErr_Clear();   /* Just to be safe */
@@ -2120,7 +2243,6 @@ static struct PyMethodDef pyferretMethods[] = {
     {"_get", (PyCFunction) pyferretGetData, METH_VARARGS | METH_KEYWORDS, pyferretGetDataDocstring},
     {"_getstrdata", (PyCFunction) pyferretGetStrData, METH_VARARGS | METH_KEYWORDS, pyferretGetStrDataDocstring},
     {"_put", (PyCFunction) pyferretPutData, METH_VARARGS | METH_KEYWORDS, pyferretPutDataDocstring},
-    {"_resize", (PyCFunction) pyferretResizeMemory, METH_VARARGS | METH_KEYWORDS, pyferretResizeMemoryDocstring},
     {"_stop", (PyCFunction) pyferretStop, METH_NOARGS, pyferretStopDocstring},
     {"_quit", (PyCFunction) pyferretQuit, METH_NOARGS, pyferretQuitDocstring},
     {"_get_axis_coordinates", (PyCFunction) pyefcnGetAxisCoordinates, METH_VARARGS | METH_KEYWORDS, pyefcnGetAxisCoordinatesDocstring},
@@ -2131,22 +2253,16 @@ static struct PyMethodDef pyferretMethods[] = {
     {NULL, (PyCFunction) NULL, 0, NULL}
 };
 
-static char pyferretModuleDocstring[] =
-"An extension module enabling the use of Ferret from Python \n";
-
-/* For the libpyferret module, this function must be named initlibpyferret */
-PyMODINIT_FUNC initlibpyferret(void)
+/* Add constants to the libpyferret module */
+static void AddConstantsToPyFerret(PyObject *mod)
 {
     char names[64][32];
     int  values[64];
     int  numvals;
     int  k;
 
-    /* Create the module with the indicated methods */
-    PyObject *mod = Py_InitModule3("libpyferret", pyferretMethods, pyferretModuleDocstring);
-
     /* Add ferret parameter values */
-    get_ferret_params_(names, values, &numvals);
+    FORTRAN(get_ferret_params)(names, values, &numvals);
     for (k = 0; k < numvals; k++) {
         PyModule_AddIntConstant(mod, names[k], values[k]);
     }
@@ -2207,3 +2323,48 @@ PyMODINIT_FUNC initlibpyferret(void)
     PyModule_AddIntConstant(mod, "_FERR_EXIT_PROGRAM", FERR_EXIT_PROGRAM);
 }
 
+static char pyferretModuleName[] = "libpyferret";
+
+static char pyferretModuleDocstring[] =
+"An extension module enabling the use of Ferret from Python \n";
+
+#if PY_MAJOR_VERSION > 2
+
+static struct PyModuleDef moduledef = {
+    PyModuleDef_HEAD_INIT,
+    pyferretModuleName,
+    pyferretModuleDocstring,
+    -1,
+    pyferretMethods,
+    NULL,
+    NULL,
+    NULL,
+    NULL
+};
+
+PyMODINIT_FUNC PyInit_libpyferret(void)
+{
+    PyObject *mod = PyModule_Create(&moduledef);
+    if ( mod == NULL )
+        return NULL;
+
+    AddConstantsToPyFerret(mod);
+    return mod;
+}
+
+#else
+
+/* For the libpyferret module, this function must be named initlibpyferret */
+PyMODINIT_FUNC initlibpyferret(void)
+{
+    /* Create the module with the indicated methods */
+    PyObject *mod = Py_InitModule3(pyferretModuleName, pyferretMethods, pyferretModuleDocstring);
+    if ( mod == NULL )
+        return;
+
+    AddConstantsToPyFerret(mod);
+    return;
+}
+
+#endif
+
diff --git a/pyfermod/pyefcn_compute.c b/pyfermod/pyefcn_compute.c
index 877818b..038134a 100644
--- a/pyfermod/pyefcn_compute.c
+++ b/pyfermod/pyefcn_compute.c
@@ -34,14 +34,37 @@
 
 #include <Python.h>
 #define PY_ARRAY_UNIQUE_SYMBOL pyferret_ARRAY_API
+#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
 #define NO_IMPORT_ARRAY
 #include <numpy/arrayobject.h>
 #include <assert.h>
+#include <math.h>
 #include <stdio.h>
 #include <string.h>
+#include "ferret.h"
 #include "pyferret.h"
 #include "EF_Util.h"
 
+/* For older versions of NumPy (v1.4 with RHEL6), define these flags as the deprecated flags */
+#ifndef NPY_ARRAY_ALIGNED
+#define NPY_ARRAY_ALIGNED NPY_ALIGNED
+#endif
+#ifndef NPY_ARRAY_NOTSWAPPED
+#define NPY_ARRAY_NOTSWAPPED NPY_NOTSWAPPED
+#endif
+#ifndef NPY_ARRAY_F_CONTIGUOUS
+#define NPY_ARRAY_F_CONTIGUOUS NPY_F_CONTIGUOUS
+#endif
+#ifndef NPY_ARRAY_WRITEABLE
+#define NPY_ARRAY_WRITEABLE NPY_WRITEABLE
+#endif
+#ifndef NPY_ARRAY_FARRAY
+#define NPY_ARRAY_FARRAY NPY_FARRAY
+#endif
+#ifndef NPY_ARRAY_FARRAY_RO
+#define NPY_ARRAY_FARRAY_RO NPY_FARRAY_RO
+#endif
+
 /*
  * See pyferret.h for information on this function
  */
@@ -50,31 +73,31 @@ void pyefcn_compute(int id, char modname[], double *data[], int numarrays,
                     int steplo[][MAX_FERRET_NDIM], int stephi[][MAX_FERRET_NDIM],
                     int incr[][MAX_FERRET_NDIM], double badvals[], char errmsg[])
 {
-    PyObject *nameobj;
-    PyObject *usermod;
-    PyObject *initdict;
-    PyObject *typetuple;
-    PyObject *typeobj;
-    int       j, k;
-    int       datatypes[EF_MAX_COMPUTE_ARGS+1];
-    int       resstrlen;
-    npy_intp  shape[MAX_FERRET_NDIM];
-    npy_intp  strides[MAX_FERRET_NDIM];
-    int       itemsize;
-    int       flags;
-    double   *dataptr;
-    int       maxlength;
-    int       length;
-    double   *dptr;
-    npy_intp  d0, d1, d2, d3, d4, d5;
-    npy_intp  indices[MAX_FERRET_NDIM];
-    PyObject *ndarrays[EF_MAX_COMPUTE_ARGS];
-    PyObject *inpbadvals_ndarray;
-    PyObject *resbadval_ndarray;
-    PyObject *idobj;
-    PyObject *inpobj;
-    PyObject *result;
-    char     *strptr;
+    PyObject      *nameobj;
+    PyObject      *usermod;
+    PyObject      *initdict;
+    PyObject      *typetuple;
+    PyObject      *typeobj;
+    int            j, k;
+    int            datatypes[EF_MAX_COMPUTE_ARGS+1];
+    int            resstrlen;
+    npy_intp       shape[MAX_FERRET_NDIM];
+    npy_intp       strides[MAX_FERRET_NDIM];
+    int            itemsize;
+    int            flags;
+    double        *dataptr;
+    int            maxlength;
+    int            length;
+    double        *dptr;
+    npy_intp       d0, d1, d2, d3, d4, d5;
+    npy_intp       indices[MAX_FERRET_NDIM];
+    PyArrayObject *ndarrays[EF_MAX_COMPUTE_ARGS];
+    PyArrayObject *inpbadvals_ndarray;
+    PyArrayObject *resbadval_ndarray;
+    PyObject      *idobj;
+    PyObject      *inpobj;
+    PyObject      *result;
+    char          *strptr;
 
     /* Sanity check */
     if ( (numarrays < 2) || (numarrays > EF_MAX_COMPUTE_ARGS) ) {
@@ -83,7 +106,11 @@ void pyefcn_compute(int id, char modname[], double *data[], int numarrays,
     }
 
     /* Import the user's Python module */
+#if PY_MAJOR_VERSION > 2
+    nameobj = PyUnicode_FromString(modname);
+#else
     nameobj = PyString_FromString(modname);
+#endif
     if ( nameobj == NULL ) {
         PyErr_Clear();
         sprintf(errmsg, "Problems creating a Python string from the module name: %s", modname);
@@ -106,14 +133,24 @@ void pyefcn_compute(int id, char modname[], double *data[], int numarrays,
     }
     /* Get the result type - default FLOAT_ARRAY */
     typeobj = PyDict_GetItemString(initdict, "restype"); /* borrowed reference */
-    if ( typeobj != NULL )
+    if ( typeobj != NULL ) {
+#if PY_MAJOR_VERSION > 2
+        datatypes[0] = (int) PyLong_AsLong(typeobj);
+#else
         datatypes[0] = (int) PyInt_AsLong(typeobj);
+#endif
+    }
     else
         datatypes[0] = FLOAT_ARRAY;
     /* Get the (maximum) length of strings in a string result array - default 128 */
     typeobj = PyDict_GetItemString(initdict, "resstrlen"); /* borrowed reference */
-    if ( typeobj != NULL )
+    if ( typeobj != NULL ) {
+#if PY_MAJOR_VERSION > 2
+        resstrlen = (int) PyLong_AsLong(typeobj);
+#else
         resstrlen = (int) PyInt_AsLong(typeobj);
+#endif
+    }
     else
         resstrlen = 128;
     /* Find out the argument types */
@@ -128,7 +165,11 @@ void pyefcn_compute(int id, char modname[], double *data[], int numarrays,
                 PyErr_Clear();
                 break;
             }
+#if PY_MAJOR_VERSION > 2
+            datatypes[j] = (int) PyLong_AsLong(typeobj);
+#else
             datatypes[j] = (int) PyInt_AsLong(typeobj);
+#endif
             Py_DECREF(typeobj);
         }
     }
@@ -162,13 +203,13 @@ void pyefcn_compute(int id, char modname[], double *data[], int numarrays,
                     if ( (incr[j][k] != 1) || (steplo[j][k] != memlo[j][k]) )
                         break;
                 if ( k < MAX_FERRET_NDIM )
-                    flags = NPY_ALIGNED | NPY_NOTSWAPPED;
+                    flags = NPY_ARRAY_ALIGNED | NPY_ARRAY_NOTSWAPPED;
                 else
-                    flags = NPY_F_CONTIGUOUS | NPY_ALIGNED | NPY_NOTSWAPPED;
+                    flags = NPY_ARRAY_F_CONTIGUOUS | NPY_ARRAY_ALIGNED | NPY_ARRAY_NOTSWAPPED;
                 if ( j == 0 )
-                    flags = flags | NPY_WRITEABLE;
+                    flags = flags | NPY_ARRAY_WRITEABLE;
                 /* Create a PyArray object around the array */
-                ndarrays[j] = PyArray_New(&PyArray_Type, MAX_FERRET_NDIM, shape, NPY_DOUBLE,
+                ndarrays[j] = (PyArrayObject *) PyArray_New(&PyArray_Type, MAX_FERRET_NDIM, shape, NPY_DOUBLE,
                                           strides, dataptr, itemsize, flags, NULL);
                 if ( ndarrays[j] == NULL ) {
                     /* Problem - release references to the previous PyArray objects, assign errmsg, and return */
@@ -185,7 +226,7 @@ void pyefcn_compute(int id, char modname[], double *data[], int numarrays,
             case FLOAT_ONEVAL:
                 assert( j > 0 );
                 /* Simple double argument; just create a PyFloat for this argument */
-                ndarrays[j] = PyFloat_FromDouble(data[j][0]);
+                ndarrays[j] = (PyArrayObject *) PyFloat_FromDouble(data[j][0]);
                 if ( ndarrays[j] == NULL ) {
                     /* Problems - Release references to the previous PyArray objects, assign errmsg, and return. */
                     PyErr_Clear();
@@ -209,8 +250,8 @@ void pyefcn_compute(int id, char modname[], double *data[], int numarrays,
                 if ( j == 0 ) {
                     /* result argument - create PyArray of string to hold results to be assigned */
                     itemsize = resstrlen * sizeof(char);
-                    ndarrays[j] = PyArray_New(&PyArray_Type, MAX_FERRET_NDIM, shape, NPY_STRING,
-                                              NULL, NULL, itemsize, NPY_FARRAY, NULL);
+                    ndarrays[j] = (PyArrayObject *) PyArray_New(&PyArray_Type, MAX_FERRET_NDIM, shape, NPY_STRING,
+                                              NULL, NULL, itemsize, NPY_ARRAY_FARRAY, NULL);
                     if ( ndarrays[j] == NULL ) {
                         /* Problem - release references to the previous PyArray objects, assign errmsg, and return */
                         PyErr_Clear();
@@ -253,8 +294,8 @@ void pyefcn_compute(int id, char modname[], double *data[], int numarrays,
                     maxlength *= 8;
                     /* Create a PyArray object of strings to hold a copy of the data */
                     itemsize = maxlength * sizeof(char);
-                    ndarrays[j] = PyArray_New(&PyArray_Type, MAX_FERRET_NDIM, shape, NPY_STRING,
-                                              NULL, NULL, itemsize, NPY_FARRAY_RO, NULL);
+                    ndarrays[j] = (PyArrayObject *) PyArray_New(&PyArray_Type, MAX_FERRET_NDIM, shape, NPY_STRING,
+                                              NULL, NULL, itemsize, NPY_ARRAY_FARRAY_RO, NULL);
                     if ( ndarrays[j] == NULL ) {
                         /* Problem - release references to the previous PyArray objects, assign errmsg, and return */
                         PyErr_Clear();
@@ -281,8 +322,7 @@ void pyefcn_compute(int id, char modname[], double *data[], int numarrays,
                               indices[0] = 0;
                               for (d0 = 0; d0 < shape[0] * strides[0]; d0 += strides[0]) {
                                 dptr = dataptr + d0 + d1 + d2 + d3 + d4 + d5;
-                                strcpy((char *) PyArray_GetPtr((PyArrayObject *) (ndarrays[j]), indices), 
-                                                               *((char **) dptr));
+                                strcpy((char *) PyArray_GetPtr(ndarrays[j], indices), *((char **) dptr));
                                 (indices[0])++;
                               }
                               (indices[1])++;
@@ -301,8 +341,12 @@ void pyefcn_compute(int id, char modname[], double *data[], int numarrays,
             case STRING_ONEVAL:
             case STRING_ARG:
                 assert( j > 0 );
-                /* String argument; just create a PyString for this argument */
-                ndarrays[j] = PyString_FromString(*((char **) (data[j])));
+                /* String argument; just create a PyUnicode/PyString for this argument */
+#if PY_MAJOR_VERSION > 2
+                ndarrays[j] = (PyArrayObject *) PyUnicode_FromString(*((char **) (data[j])));
+#else
+                ndarrays[j] = (PyArrayObject *) PyString_FromString(*((char **) (data[j])));
+#endif
                 if ( ndarrays[j] == NULL ) {
                     /* Problems - Release references to the previous PyArray objects, assign errmsg, and return. */
                     PyErr_Clear();
@@ -331,15 +375,15 @@ void pyefcn_compute(int id, char modname[], double *data[], int numarrays,
     /* Create a tuple with all the input arrays */
     inpobj = PyTuple_New((Py_ssize_t) (numarrays-1));
     for (j = 1; j < numarrays; j++) {
-        PyTuple_SET_ITEM(inpobj, (Py_ssize_t)(j-1), ndarrays[j]); /* Steals a reference to ndarrays[j] */
+        PyTuple_SET_ITEM(inpobj, (Py_ssize_t)(j-1), (PyObject *) ndarrays[j]); /* Steals a reference to ndarrays[j] */
     }
 
     /* Create PyArray objects around the input bad values array and the result bad value */
     shape[0] = numarrays - 1;
     strides[0] = sizeof(double);
     itemsize = sizeof(double);
-    flags = NPY_FARRAY_RO;
-    inpbadvals_ndarray = PyArray_New(&PyArray_Type, 1, shape, NPY_DOUBLE,
+    flags = NPY_ARRAY_FARRAY_RO;
+    inpbadvals_ndarray = (PyArrayObject *) PyArray_New(&PyArray_Type, 1, shape, NPY_DOUBLE,
                                      strides, &(badvals[1]), itemsize, flags, NULL);
     if ( inpbadvals_ndarray == NULL ) {
         /* Problem - release references to the previous PyArray objects, assign errmsg, and return */
@@ -351,7 +395,7 @@ void pyefcn_compute(int id, char modname[], double *data[], int numarrays,
         return;
     }
     shape[0] = 1;
-    resbadval_ndarray = PyArray_New(&PyArray_Type, 1, shape, NPY_DOUBLE,
+    resbadval_ndarray = (PyArrayObject *) PyArray_New(&PyArray_Type, 1, shape, NPY_DOUBLE,
                                     strides, badvals, itemsize, flags, NULL);
     if ( resbadval_ndarray == NULL ) {
         /* Problem - release references to the previous PyArray objects, assign errmsg, and return */
@@ -365,10 +409,18 @@ void pyefcn_compute(int id, char modname[], double *data[], int numarrays,
     }
 
     /* ferret ID argument */
+#if PY_MAJOR_VERSION > 2
+    idobj = PyLong_FromLong((long)id);
+#else
     idobj = PyInt_FromLong((long)id);
+#endif
 
     /* Call the ferret_compute function in the module */
+#if PY_MAJOR_VERSION > 2
+    nameobj = PyUnicode_FromString(COMPUTE_METHOD_NAME);
+#else
     nameobj = PyString_FromString(COMPUTE_METHOD_NAME);
+#endif
     result = PyObject_CallMethodObjArgs(usermod, nameobj, idobj, ndarrays[0], resbadval_ndarray,
                                                                  inpobj, inpbadvals_ndarray, NULL);
 
@@ -388,11 +440,12 @@ void pyefcn_compute(int id, char modname[], double *data[], int numarrays,
         return;
     }
 
-    /*
-     * If the return type is an array of strings, assign
-     * the Ferret array with copies of the NumPy strings
-     */
     if ( datatypes[0] == STRING_ARRAY ) {
+        /*
+         * If the return type is an array of strings, assign
+         * the Ferret array with copies of the NumPy strings
+         */
+
         /* Get the dimensions of the array */
         for (k = 0; k < MAX_FERRET_NDIM; k++)
             shape[k] = (npy_intp) ((stephi[0][k] - steplo[0][k] + incr[0][k]) / (incr[0][k]));
@@ -418,12 +471,12 @@ void pyefcn_compute(int id, char modname[], double *data[], int numarrays,
                 for (d1 = 0; d1 < shape[1] * strides[1]; d1 += strides[1]) {
                   indices[0] = 0;
                   for (d0 = 0; d0 < shape[0] * strides[0]; d0 += strides[0]) {
-                    strptr = (char *) PyArray_GetPtr((PyArrayObject *) (ndarrays[0]), indices);
+                    strptr = (char *) PyArray_GetPtr(ndarrays[0], indices);
                     for (j = 0; j < resstrlen; j++)
                         if ( strptr[j] == '\0' )
                             break;
                     dptr = dataptr + d0 + d1 + d2 + d3 + d4 + d5;
-                    ef_put_string_(strptr, &j, (char **) dptr);
+                    FORTRAN(ef_put_string)(strptr, &j, (char **) dptr);
                     (indices[0])++;
                   }
                   (indices[1])++;
@@ -438,6 +491,45 @@ void pyefcn_compute(int id, char modname[], double *data[], int numarrays,
         }
 
     }
+    else if ( datatypes[0] == FLOAT_ARRAY ) {
+        /*
+         * If the return type is an array of floating-point values, 
+         * scan for infinite or not-a-number values and replace with
+         * the missing value.
+         */
+
+        /* Get the dimensions of the array */
+        for (k = 0; k < MAX_FERRET_NDIM; k++)
+            shape[k] = (npy_intp) ((stephi[0][k] - steplo[0][k] + incr[0][k]) / (incr[0][k]));
+        /* Get the strides through the passed memory as a (double *) */
+        strides[0] = 1;
+        for (k = 0; k <= MAX_FERRET_NDIM - 1; k++)
+            strides[k+1] = strides[k] * (npy_intp) (memhi[0][k] - memlo[0][k] + 1);
+        /* Get the actual starting point in the array */
+        dataptr = data[0];
+        for (k = 0; k < MAX_FERRET_NDIM; k++)
+            dataptr += strides[k] * (npy_intp) (steplo[0][k] - memlo[0][k]);
+        /* Check all the values in the array */
+        /* This needs to be modified if MAX_FERRET_NDIM changes */
+        for (d5 = 0; d5 < shape[5] * strides[5]; d5 += strides[5]) {
+          for (d4 = 0; d4 < shape[4] * strides[4]; d4 += strides[4]) {
+            for (d3 = 0; d3 < shape[3] * strides[3]; d3 += strides[3]) {
+              for (d2 = 0; d2 < shape[2] * strides[2]; d2 += strides[2]) {
+                for (d1 = 0; d1 < shape[1] * strides[1]; d1 += strides[1]) {
+                  for (d0 = 0; d0 < shape[0] * strides[0]; d0 += strides[0]) {
+                    dptr = dataptr + d0 + d1 + d2 + d3 + d4 + d5;
+                    if ( isnan(*dptr) || isinf(*dptr) ) {
+                      *dptr = badvals[0];
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+
+    }
+
     Py_DECREF(ndarrays[0]);
 
     errmsg[0] = '\0';
diff --git a/pyfermod/pyefcn_custom_axes.c b/pyfermod/pyefcn_custom_axes.c
index 09b033a..a068fe2 100644
--- a/pyfermod/pyefcn_custom_axes.c
+++ b/pyfermod/pyefcn_custom_axes.c
@@ -34,8 +34,10 @@
 
 #include <Python.h>
 #define PY_ARRAY_UNIQUE_SYMBOL pyferret_ARRAY_API
+#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
 #define NO_IMPORT_ARRAY
 #include <numpy/arrayobject.h>
+#include "ferret.h"
 #include "pyferret.h"
 #include "EF_Util.h"
 
@@ -63,7 +65,11 @@ void pyefcn_custom_axes(int id, char modname[], char errmsg[])
     /*
      * Import the user's Python module
      */
+#if PY_MAJOR_VERSION > 2
+    valobj = PyUnicode_FromString(modname);
+#else
     valobj = PyString_FromString(modname);
+#endif
     if ( valobj == NULL ) {
         PyErr_Clear();
         sprintf(errmsg, "Problems creating a Python string from the module name: %s", modname);
@@ -152,7 +158,11 @@ void pyefcn_custom_axes(int id, char modname[], char errmsg[])
             strcpy(unit_name, " ");
             if ( subseqlen > 3 ) {
                 itemobj = PySequence_Fast_GET_ITEM(subseqobj, (Py_ssize_t) 3); /* borrowed reference */
+#if PY_MAJOR_VERSION > 2
+                strptr = PyUnicode_AsUTF8(itemobj);
+#else
                 strptr = PyString_AsString(itemobj);
+#endif
                 if ( strptr == NULL ) {
                     PyErr_Clear();
                     Py_DECREF(subseqobj);
@@ -184,7 +194,7 @@ void pyefcn_custom_axes(int id, char modname[], char errmsg[])
             /* Make the assignment for this axis */
             Py_DECREF(subseqobj);
             q = k+1;
-            ef_set_custom_axis_sub_(&id, &q, &(values[0]), &(values[1]), &(values[2]), unit_name, &is_modulo);
+            FORTRAN(ef_set_custom_axis_sub)(&id, &q, &(values[0]), &(values[1]), &(values[2]), unit_name, &is_modulo);
             call_made = 1;
         }
     }
diff --git a/pyfermod/pyefcn_get_error.c b/pyfermod/pyefcn_get_error.c
index ae577c5..6c97cc4 100644
--- a/pyfermod/pyefcn_get_error.c
+++ b/pyfermod/pyefcn_get_error.c
@@ -33,6 +33,7 @@
  */
 
 #include <Python.h>
+#include "ferret.h"
 #include "pyferret.h"
 
 /*
@@ -61,7 +62,11 @@ char *pyefcn_get_error()
             /* Get the string by calling Python str method with the exception */
             exc_string = PyObject_Str(exc_value);
             if ( exc_string != NULL ) {
+#if PY_MAJOR_VERSION > 2
+                strcpy(errmsg, PyUnicode_AsUTF8(exc_string));
+#else
                 strcpy(errmsg, PyString_AsString(exc_string));
+#endif
                 Py_DECREF(exc_string);
             }
         }
diff --git a/pyfermod/pyefcn_init.c b/pyfermod/pyefcn_init.c
index 61696ca..8044c4d 100644
--- a/pyfermod/pyefcn_init.c
+++ b/pyfermod/pyefcn_init.c
@@ -34,8 +34,10 @@
 
 #include <Python.h>
 #define PY_ARRAY_UNIQUE_SYMBOL pyferret_ARRAY_API
+#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
 #define NO_IMPORT_ARRAY
 #include <numpy/arrayobject.h>
+#include "ferret.h"
 #include "pyferret.h"
 #include "EF_Util.h"
 
@@ -74,7 +76,11 @@ void pyefcn_init(int id, char modname[], char errmsg[])
     /*
      * Import the user's Python module
      */
+#if PY_MAJOR_VERSION > 2
+    valobj = PyUnicode_FromString(modname);
+#else
     valobj = PyString_FromString(modname);
+#endif
     if ( valobj == NULL ) {
         PyErr_Clear();
         sprintf(errmsg, "Problems creating a Python string from the module name: %s", modname);
@@ -123,14 +129,18 @@ void pyefcn_init(int id, char modname[], char errmsg[])
                         INIT_METHOD_NAME, modname);
         return;
     }
+#if PY_MAJOR_VERSION > 2
+    num_args = (int) PyLong_AsLong(valobj);
+#else
     num_args = (int) PyInt_AsLong(valobj);
+#endif
     if ( (num_args < 1) || (num_args > EF_MAX_ARGS) ) {
         PyErr_Clear();
         Py_DECREF(initdict);
         strcpy(errmsg, "Invalid \"numargs\" value (not an integer [0-9])");
         return;
     }
-    ef_set_num_args_(&id, &num_args);
+    FORTRAN(ef_set_num_args)(&id, &num_args);
 
     /*
      * "descript": string description of the function [required]
@@ -142,7 +152,11 @@ void pyefcn_init(int id, char modname[], char errmsg[])
                         INIT_METHOD_NAME, modname);
         return;
     }
+#if PY_MAJOR_VERSION > 2
+    strptr = PyUnicode_AsUTF8(valobj);
+#else
     strptr = PyString_AsString(valobj);
+#endif
     if ( strptr == NULL ) {
         PyErr_Clear();
         Py_DECREF(initdict);
@@ -151,14 +165,18 @@ void pyefcn_init(int id, char modname[], char errmsg[])
     }
     strncpy(descript, strptr, EF_MAX_DESCRIPTION_LENGTH);
     descript[EF_MAX_DESCRIPTION_LENGTH - 1] = '\0';
-    ef_set_desc_sub_(&id, descript);
+    FORTRAN(ef_set_desc_sub)(&id, descript);
 
     /*
      * "restype": type of the result argument [optional, default: FLOAT_ARRAY]
      */
     valobj = PyDict_GetItemString(initdict, "restype"); /* borrowed reference */
     if ( valobj != NULL ) {
+#if PY_MAJOR_VERSION > 2
+        restype = (int) PyLong_AsLong(valobj);
+#else
         restype = (int) PyInt_AsLong(valobj);
+#endif
         if ( restype == FLOAT_ARRAY ) {
             restype = FLOAT_RETURN;
         }
@@ -176,7 +194,7 @@ void pyefcn_init(int id, char modname[], char errmsg[])
         /* Key not present but no error raised */
         restype = FLOAT_RETURN;
     }
-    ef_set_result_type_(&id, &restype);
+    FORTRAN(ef_set_result_type)(&id, &restype);
 
     /*
      * "resstrlen": (maximum) length of strings in the result string array [optional]
@@ -184,7 +202,11 @@ void pyefcn_init(int id, char modname[], char errmsg[])
      */
     valobj = PyDict_GetItemString(initdict, "resstrlen"); /* borrowed reference */
     if ( valobj != NULL ) {
+#if PY_MAJOR_VERSION > 2
+        resstrlen = (int) PyLong_AsLong(valobj);
+#else
         resstrlen = (int) PyInt_AsLong(valobj);
+#endif
         if ( resstrlen < 1 ) {
             PyErr_Clear();
             Py_DECREF(initdict);
@@ -230,7 +252,12 @@ void pyefcn_init(int id, char modname[], char errmsg[])
         rsltaxes[k] = IMPLIED_BY_ARGS;
         if ( k < seqlen ) {
             itemobj = PySequence_Fast_GET_ITEM(seqobj, (Py_ssize_t) k); /* borrowed reference */
-            switch( (int) PyInt_AsLong(itemobj) ) {
+#if PY_MAJOR_VERSION > 2
+            val = (int) PyLong_AsLong(itemobj);
+#else
+            val = (int) PyInt_AsLong(itemobj);
+#endif
+            switch( val ) {
                 case IMPLIED_BY_ARGS:
                     break;
                 case ABSTRACT:
@@ -262,9 +289,9 @@ void pyefcn_init(int id, char modname[], char errmsg[])
         }
     }
     Py_XDECREF(seqobj);
-    ef_set_axis_inheritance_6d_(&id, &(axisvals[0]), &(axisvals[1]), &(axisvals[2]), 
+    FORTRAN(ef_set_axis_inheritance_6d)(&id, &(axisvals[0]), &(axisvals[1]), &(axisvals[2]), 
                                      &(axisvals[3]), &(axisvals[4]), &(axisvals[5]));
-    ef_set_axis_reduction_6d_(&id, &(axisredu[0]), &(axisredu[1]), &(axisredu[2]), 
+    FORTRAN(ef_set_axis_reduction_6d)(&id, &(axisredu[0]), &(axisredu[1]), &(axisredu[2]), 
                                    &(axisredu[3]), &(axisredu[4]), &(axisredu[5]));
 
     /*
@@ -311,7 +338,7 @@ void pyefcn_init(int id, char modname[], char errmsg[])
         }
     }
     Py_XDECREF(seqobj);
-    ef_set_piecemeal_ok_6d_(&id, &(axisvals[0]), &(axisvals[1]), &(axisvals[2]), 
+    FORTRAN(ef_set_piecemeal_ok_6d)(&id, &(axisvals[0]), &(axisvals[1]), &(axisvals[2]), 
                                  &(axisvals[3]), &(axisvals[4]), &(axisvals[5]));
 
     /*
@@ -345,7 +372,11 @@ void pyefcn_init(int id, char modname[], char errmsg[])
         if ( j < seqlen ) {
             /* Get the name from the tuple */
             itemobj = PySequence_Fast_GET_ITEM(seqobj, (Py_ssize_t) j); /* borrowed reference */
+#if PY_MAJOR_VERSION > 2
+            strptr = PyUnicode_AsUTF8(itemobj);
+#else
             strptr = PyString_AsString(itemobj);
+#endif
             if ( strptr != NULL ) {
                 strncpy(name, strptr, EF_MAX_NAME_LENGTH);
                 name[EF_MAX_NAME_LENGTH-1] = '\0';
@@ -358,7 +389,7 @@ void pyefcn_init(int id, char modname[], char errmsg[])
             }
         }
         q = j+1;
-        ef_set_arg_name_sub_(&id, &q, name);
+        FORTRAN(ef_set_arg_name_sub)(&id, &q, name);
     }
     Py_XDECREF(seqobj);
 
@@ -392,7 +423,11 @@ void pyefcn_init(int id, char modname[], char errmsg[])
         if ( j < seqlen ) {
             /* Get the description from the tuple */
             itemobj = PySequence_Fast_GET_ITEM(seqobj, (Py_ssize_t) j); /* borrowed reference */
+#if PY_MAJOR_VERSION > 2
+            strptr = PyUnicode_AsUTF8(itemobj);
+#else
             strptr = PyString_AsString(itemobj);
+#endif
             if ( strptr != NULL ) {
                 strncpy(descript, strptr, EF_MAX_DESCRIPTION_LENGTH);
                 descript[EF_MAX_DESCRIPTION_LENGTH-1] = '\0';
@@ -406,7 +441,7 @@ void pyefcn_init(int id, char modname[], char errmsg[])
             }
         }
         q = j + 1;
-        ef_set_arg_desc_sub_(&id, &q, descript);
+        FORTRAN(ef_set_arg_desc_sub)(&id, &q, descript);
     }
     Py_XDECREF(seqobj);
 
@@ -446,7 +481,12 @@ void pyefcn_init(int id, char modname[], char errmsg[])
         if ( j < seqlen ) {
             /* Get the type from the tuple */
             itemobj = PySequence_Fast_GET_ITEM(seqobj, (Py_ssize_t) j); /* borrowed reference */
-            switch( (int) PyInt_AsLong(itemobj) ) {
+#if PY_MAJOR_VERSION > 2
+            val = (int) PyLong_AsLong(itemobj);
+#else
+            val = (int) PyInt_AsLong(itemobj);
+#endif
+            switch( val ) {
                 case FLOAT_ONEVAL:
                 case FLOAT_ARRAY:
                 case FLOAT_ARG:
@@ -465,7 +505,7 @@ void pyefcn_init(int id, char modname[], char errmsg[])
             }
         }
         q = j+1;
-        ef_set_arg_type_(&id, &q, &argtype);
+        FORTRAN(ef_set_arg_type)(&id, &q, &argtype);
     }
     Py_XDECREF(seqobj);
 
@@ -549,7 +589,7 @@ void pyefcn_init(int id, char modname[], char errmsg[])
             }
         }
         q = j+1;
-        ef_set_axis_influence_6d_(&id, &q, &(axisvals[0]), &(axisvals[1]), &(axisvals[2]), 
+        FORTRAN(ef_set_axis_influence_6d)(&id, &q, &(axisvals[0]), &(axisvals[1]), &(axisvals[2]), 
                                            &(axisvals[3]), &(axisvals[4]), &(axisvals[5]));
     }
     Py_XDECREF(seqobj);
@@ -625,7 +665,11 @@ void pyefcn_init(int id, char modname[], char errmsg[])
                         deltas[0] = 0; deltas[1] = 0;
                         for (q = 0; q < subsubseqlen; q++) {
                             itemobj = PySequence_Fast_GET_ITEM(subsubseqobj, (Py_ssize_t) q); /* borrowed reference */
+#if PY_MAJOR_VERSION > 2
+                            val = PyLong_AsLong(itemobj);
+#else
                             val = PyInt_AsLong(itemobj);
+#endif
                             if ( PyErr_Occurred() ) {
                                 PyErr_Clear();
                                 Py_DECREF(subsubseqobj);
@@ -653,7 +697,7 @@ void pyefcn_init(int id, char modname[], char errmsg[])
                         }
                         q = j+1;
                         val = k+1;
-                        ef_set_axis_extend_(&id, &q, &val, &(deltas[0]), &(deltas[1]));
+                        FORTRAN(ef_set_axis_extend)(&id, &q, &val, &(deltas[0]), &(deltas[1]));
                         Py_DECREF(subsubseqobj);
                     }
                 }
@@ -669,7 +713,11 @@ void pyefcn_init(int id, char modname[], char errmsg[])
     seqlen = (int) PySequence_Fast_GET_SIZE(seqobj);
     for (k = 0; k < seqlen; k++) {
         itemobj = PySequence_Fast_GET_ITEM(seqobj, (Py_ssize_t) k); /* borrowed reference */
+#if PY_MAJOR_VERSION > 2
+        strptr = PyUnicode_AsUTF8(itemobj);
+#else
         strptr = PyString_AsString(itemobj);
+#endif
         if ( strptr == NULL ) {
             Py_DECREF(seqobj);
             Py_DECREF(keysobj);
diff --git a/pyfermod/pyefcn_result_limits.c b/pyfermod/pyefcn_result_limits.c
index e1bcb03..0c8166e 100644
--- a/pyfermod/pyefcn_result_limits.c
+++ b/pyfermod/pyefcn_result_limits.c
@@ -34,8 +34,10 @@
 
 #include <Python.h>
 #define PY_ARRAY_UNIQUE_SYMBOL pyferret_ARRAY_API
+#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
 #define NO_IMPORT_ARRAY
 #include <numpy/arrayobject.h>
+#include "ferret.h"
 #include "pyferret.h"
 #include "EF_Util.h"
 
@@ -60,7 +62,11 @@ void pyefcn_result_limits(int id, char modname[], char errmsg[])
     /*
      * Import the user's Python module
      */
+#if PY_MAJOR_VERSION > 2
+    valobj = PyUnicode_FromString(modname);
+#else
     valobj = PyString_FromString(modname);
+#endif
     if ( valobj == NULL ) {
         PyErr_Clear();
         sprintf(errmsg, "Problems creating a Python string from the module name: %s", modname);
@@ -130,7 +136,11 @@ void pyefcn_result_limits(int id, char modname[], char errmsg[])
             }
             for (q = 0; q < 2; q++) {
                 itemobj = PySequence_Fast_GET_ITEM(subseqobj, (Py_ssize_t) q); /* borrowed reference */
+#if PY_MAJOR_VERSION > 2
+                limits[q] = (int) PyLong_AsLong(itemobj);
+#else
                 limits[q] = (int) PyInt_AsLong(itemobj);
+#endif
                 if ( PyErr_Occurred() ) {
                     PyErr_Clear();
                     Py_DECREF(subseqobj);
@@ -144,7 +154,7 @@ void pyefcn_result_limits(int id, char modname[], char errmsg[])
             }
             Py_DECREF(subseqobj);
             q = k+1;
-            ef_set_axis_limits_(&id, &q, &(limits[0]), &(limits[1]));
+            FORTRAN(ef_set_axis_limits)(&id, &q, &(limits[0]), &(limits[1]));
             call_made = 1;
         }
     }
diff --git a/pyfermod/pyefmethods.py b/pyfermod/pyefmethods.py
index 3b6472d..12e71c9 100644
--- a/pyfermod/pyefmethods.py
+++ b/pyfermod/pyefmethods.py
@@ -3,7 +3,7 @@ Methods in pyferret to assist in the writing of Ferret external functions
 written in Python.
 """
 
-import libpyferret
+from pyferret import libpyferret
 
 def ferret_pyfunc():
     """
diff --git a/pyfermod/pyferret.h b/pyfermod/pyferret.h
index 2332e90..ecd49bd 100644
--- a/pyfermod/pyferret.h
+++ b/pyfermod/pyferret.h
@@ -1,10 +1,8 @@
 #ifndef PYFERRET_H_
 #define PYFERRET_H_
 
-/* Python.h should already have been included */
-
-/* Ferret memory cache */
-extern double *memory;
+#include <Python.h>
+#include "ferret.h"
 
 /* PlotPlus memory */
 extern float *ppl_memory;
@@ -56,58 +54,61 @@ typedef enum CALTYPE_ {
 #define CALTYPE_NONE_STR "CALTYPE_NONE"
 
 /* Prototypes for library C functions */
-void set_fer_memory(double *mem, size_t mem_size);
 void set_ppl_memory(float *mem, int mem_size);
 void set_shared_buffer(void);
-void decref_pyobj_(void *pyobj_ptr_ptr);
-void copy_pystat_data_(double dest[], void *data_ndarray_ptr);
+void FORTRAN(decref_pyobj)(void *pyobj_ptr_ptr);
+void FORTRAN(copy_pystat_data)(double dest[], void *data_ndarray_ptr);
 
 /* Prototypes for library Fortan functions accessed from C routines */
-void add_pystat_var_(void *data_ndarray_ptr_ptr, char codename[], char title[], char units[],
+void FORTRAN(add_pystat_var)(void *data_ndarray_ptr_ptr, char codename[], char title[], char units[],
                      double *bdfval, char dset[], int axis_nums[MAX_FERRET_NDIM],
                      int axis_starts[MAX_FERRET_NDIM], int axis_ends[MAX_FERRET_NDIM],
                      char errmsg[], int *lenerrmsg, int len_codename, int len_title,
                      int len_units, int len_dset, int maxlen_errmsg);
-void clear_fer_last_error_info_(void);
-void ef_get_single_axis_info_(int *id, int *argnum, int *axisnum,
+void FORTRAN(clear_fer_last_error_info)(void);
+void FORTRAN(ctrlc_ast)(void);
+void FORTRAN(ef_get_single_axis_info)(int *id, int *argnum, int *axisnum,
                               char axisname[], char axisunit[],
                               int *backwards_axis, int *modulo_axis, int *regular_axis,
                               int maxlen_axisname, int maxlen_axisunit);
-void finalize_(void);
-void ef_get_arg_type_(int *id, int *argnum, int *argtype);
-void ef_get_arg_string_(int *id, int *argnum, char *argtext, int maxlen_argtext);
-void ef_get_one_val_(int *id, int *arg, double *val);
-void get_axis_num_(int *axisnum, int *axisstart, int *axisend, char axisname[], char axisunit[],
+void FORTRAN(finalize)(void);
+void FORTRAN(ef_get_arg_type)(int *id, int *argnum, int *argtype);
+void FORTRAN(ef_get_arg_string)(int *id, int *argnum, char *argtext, int maxlen_argtext);
+void FORTRAN(ef_get_one_val)(int *id, int *arg, double *val);
+void FORTRAN(get_axis_num)(int *axisnum, int *axisstart, int *axisend, char axisname[], char axisunit[],
                    double axiscoords[], int *numcoords, AXISTYPE *axistype, char *errmsg,
                    int *lenerrmsg, int maxlen_axisname, int maxlen_axisunit, int maxlen_errmsg);
-void get_data_array_params_(char dataname[], int *lendataname, double *memory, int *arraystart,
+void FORTRAN(get_data_array_params)(char dataname[], int *lendataname, double **arraystart,
                             int memlo[MAX_FERRET_NDIM], int memhi[MAX_FERRET_NDIM],
                             int steplo[MAX_FERRET_NDIM], int stephi[MAX_FERRET_NDIM],
                             int incr[MAX_FERRET_NDIM], char dataunit[], int *lendataunit,
                             AXISTYPE axtypes[MAX_FERRET_NDIM], double *badval, char errmsg[],
                             int *lenerrmsg, int maxlen_dataname, int maxlen_dataunit, int maxlen_errmsg);
-void get_str_data_array_params_(char dataname[], int *lendataname, double *memory, int *arraystart,
+void FORTRAN(get_str_data_array_params)(char dataname[], int *lendataname, char ***arraystart,
                             int memlo[MAX_FERRET_NDIM], int memhi[MAX_FERRET_NDIM],
                             int steplo[MAX_FERRET_NDIM], int stephi[MAX_FERRET_NDIM],
                             int incr[MAX_FERRET_NDIM], AXISTYPE axtypes[MAX_FERRET_NDIM], char errmsg[],
                             int *lenerrmsg, int maxlen_dataname, int maxlen_dataunit, int maxlen_errmsg);
-void get_data_array_coords_(double axiscoords[], char axisunit[], char axisname[],
+void FORTRAN(get_data_array_coords)(double axiscoords[], char axisunit[], char axisname[],
                             int *axisnum, int *numcoords, char errmsg[], int *lenerrmsg,
                             int maxlen_axisunit, int maxlen_axisname, int maxlen_errmsg);
-void get_data_array_time_coords_(int timecoords[][6], CALTYPE *caltype, char axisname[],
+void FORTRAN(get_data_array_time_coords)(int timecoords[][6], CALTYPE *caltype, char axisname[],
                                  int *axisnum, int *numcoords, char errmsg[], int *lenerrmsg,
                                  int maxlen_axisname, int maxlen_errmsg);
-void get_fer_last_error_info_(int *errval, char errmsg[], int maxlen_errmsg);
-void get_ferret_params_(char errnames[][32], int errvals[], int *numvals);
-void get_time_axis_num_(int *axisnum, int *axisstart, int *axisend, char axisname[],
+void FORTRAN(get_fer_last_error_info)(int *errval, char errmsg[], int maxlen_errmsg);
+void FORTRAN(get_ferret_params)(char errnames[][32], int errvals[], int *numvals);
+void FORTRAN(get_time_axis_num)(int *axisnum, int *axisstart, int *axisend, char axisname[],
                         CALTYPE *calendartype, int axiscoords[][6], int *numcoords,
                         char *errmsg, int *lenerrmsg, int maxlen_axisname, int maxlen_errmsg);
-void init_journal_(int *status);
-void initialize_(void);
-void no_journal_(void);
-void proclaim_c_(int *ttoutLun, char *leader, int *quiet);
-void set_one_cmnd_mode_(int *one_cmnd_mode_int);
-void turnoff_verify_(int *status);
+void FORTRAN(init_journal)(int *status);
+void FORTRAN(init_memory)(void);
+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);
 
 /* Missing value for string arrays in Python - must be null-terminated string */
 #define STRING_MISSING_VALUE "\004\000"
diff --git a/pyfermod/regrid/curv2rect.py b/pyfermod/regrid/curv2rect.py
index c33330c..6ee9418 100644
--- a/pyfermod/regrid/curv2rect.py
+++ b/pyfermod/regrid/curv2rect.py
@@ -179,11 +179,11 @@ def ferret_compute(efid, result, result_bdf, inputs, input_bdfs):
 
     # Increment the depth index last
     # most likely to change the undefined (e.g., land) mask 
-    for d_idx in xrange(curv_data.shape[2]):
+    for d_idx in range(curv_data.shape[2]):
         # Arrays are probably in Fortran order, so increment last indices last
-        for f_idx in xrange(curv_data.shape[5]):
-            for e_idx in xrange(curv_data.shape[4]):
-                for t_idx in xrange(curv_data.shape[3]):
+        for f_idx in range(curv_data.shape[5]):
+            for e_idx in range(curv_data.shape[4]):
+                for t_idx in range(curv_data.shape[3]):
                     # Determine curvilinear center points to ignore from undefined data
                     curv_center_ignore = ( numpy.abs(curv_data[:, :, d_idx, t_idx,
                                                 e_idx, f_idx] - curv_undef) < 1.0E-7 )
diff --git a/pyfermod/regrid/curv3srect.py b/pyfermod/regrid/curv3srect.py
index 4b12eb6..7d774b6 100644
--- a/pyfermod/regrid/curv3srect.py
+++ b/pyfermod/regrid/curv3srect.py
@@ -196,7 +196,7 @@ def ferret_compute(efid, result, result_bdf, inputs, input_bdfs):
         last_curv_center_ignore = None
         
     # Increment the time index last since zeta is time dependent
-    for t_idx in xrange(curv_data.shape[3]):
+    for t_idx in range(curv_data.shape[3]):
 
         if curv_center_zetas != None:
             # Expand the zetas for this time step to 3D - adding Z axis
@@ -210,8 +210,8 @@ def ferret_compute(efid, result, result_bdf, inputs, input_bdfs):
             last_curv_center_ignore = None
 
         # Arrays are probably in Fortran order, so increment last indices last
-        for f_idx in xrange(curv_data.shape[5]):
-            for e_idx in xrange(curv_data.shape[4]):
+        for f_idx in range(curv_data.shape[5]):
+            for e_idx in range(curv_data.shape[4]):
                 # Determine curvilinear center points to ignore from undefined data
                 curv_center_ignore = ( numpy.abs(curv_data[:, :, :, t_idx,
                                         e_idx, f_idx] - curv_undef) < 1.0E-7 )
diff --git a/pyfermod/regrid/regrid2dexample.py b/pyfermod/regrid/regrid2dexample.py
index 21e9589..e86df05 100644
--- a/pyfermod/regrid/regrid2dexample.py
+++ b/pyfermod/regrid/regrid2dexample.py
@@ -5,6 +5,9 @@ and also serves as a coding example of using this class.
 @author: Karl Smith
 '''
 
+from __future__ import print_function
+
+import sys
 import numpy
 import ESMP
 from esmpcontrol import ESMPControl
@@ -775,32 +778,35 @@ def printDiffs(grid_lons, grid_lats, undef_val, max_negl,
     for (_, lon, lat, expect, found) in diff_list:
         if expect == undef_val:
             num_not_undef += 1
-            print "lon = %#7.3f, lat = %7.3f, expect =  undef, found = %#6.3f" \
-                  % (lon, lat, found)
+            print("lon = %#7.3f, lat = %7.3f, expect =  undef, found = %#6.3f" \
+                  % (lon, lat, found))
         elif found == undef_val:
             num_undef += 1
-            print "lon = %#7.3f, lat = %7.3f, expect = %#6.3f, found =  undef" \
-                  % (lon, lat, expect)
+            print("lon = %#7.3f, lat = %7.3f, expect = %#6.3f, found =  undef" \
+                  % (lon, lat, expect))
         else:
             num_diff += 1
-            print "lon = %#7.3f, lat = %7.3f, expect = %#6.3f, found = %#6.3f, " \
-                  "diff = %#6.3f" % (lon, lat, expect, found, found - expect)
-    print "%3d undefined when defined might be expected" % num_undef
-    print "%3d with absolute difference > %#.3f" % (num_diff, max_negl)
-    print "%3d defined when undefined expected" % num_not_undef
-    print "%3d values in the grid" % (expect_data.shape[0] * expect_data.shape[1])
+            print("lon = %#7.3f, lat = %7.3f, expect = %#6.3f, found = %#6.3f, " \
+                  "diff = %#6.3f" % (lon, lat, expect, found, found - expect))
+    print("%3d undefined when defined might be expected" % num_undef)
+    print("%3d with absolute difference > %#.3f" % (num_diff, max_negl))
+    print("%3d defined when undefined expected" % num_not_undef)
+    print("%3d values in the grid" % (expect_data.shape[0] * expect_data.shape[1]))
 
 
 # main routine - for testing "by hand"
 if __name__ == '__main__':
     try:
         while True:
-            print 'cw2r: curvilinear with corners to rectilinear'
-            print 'co2r: curvilinear without corners to rectilinear'
-            print 'r2cw: rectilinear to curvilinear with corners'
-            print 'r2co: rectilinear to curvilinear without corners'
-            print 'Ctrl-D to quit'
-            direction = raw_input('Regrid test to run? ')
+            print('cw2r: curvilinear with corners to rectilinear')
+            print('co2r: curvilinear without corners to rectilinear')
+            print('r2cw: rectilinear to curvilinear with corners')
+            print('r2co: rectilinear to curvilinear without corners')
+            print('Ctrl-D to quit')
+            if sys.version_info[0] > 2:
+                direction = input('Regrid test to run? ')
+            else:
+                direction = raw_input('Regrid test to run? ')
             direction = direction.strip().lower()
             if direction in ('cw2r', 'co2r', 'r2cw', 'r2co'):
                 break
@@ -848,11 +854,11 @@ if __name__ == '__main__':
 
     if direction in ('cw2r', 'co2r'):
 
-        print ""
+        print("")
         if direction == 'cw2r':
-            print "Examining rectilinear results from curvilinear with corners"
+            print("Examining rectilinear results from curvilinear with corners")
         else:
-            print "Examining rectilinear results from curvilinear without corners"
+            print("Examining rectilinear results from curvilinear without corners")
 
         # Create the curvilinear source field
         regridder.assignCurvField(curv_data)
@@ -868,16 +874,16 @@ if __name__ == '__main__':
         # Regrid from curvilinear to rectilinear using the bilinear method
         rect_regrid_data = regridder.regridCurvToRect(undef_val, ESMP.ESMP_REGRIDMETHOD_BILINEAR)
         # Print the differences between the expected and regrid data
-        print ""
-        print "analytic (expect) versus bilinear regridded (found) differences"
+        print("")
+        print("analytic (expect) versus bilinear regridded (found) differences")
         printDiffs(rect_2d_center_lons, rect_2d_center_lats, undef_val, 0.001,
                    rect_expect_data, rect_regrid_data)
 
         # Regrid from curvilinear to rectilinear using the patch method
         rect_regrid_data = regridder.regridCurvToRect(undef_val, ESMP.ESMP_REGRIDMETHOD_PATCH)
         # Print the differences between the expected and regrid data
-        print ""
-        print "analytic (expect) versus patch regridded (found) differences"
+        print("")
+        print("analytic (expect) versus patch regridded (found) differences")
         printDiffs(rect_2d_center_lons, rect_2d_center_lats, undef_val, 0.001,
                    rect_expect_data, rect_regrid_data)
 
@@ -886,18 +892,18 @@ if __name__ == '__main__':
             # Corners required for this method
             rect_regrid_data = regridder.regridCurvToRect(undef_val, ESMP.ESMP_REGRIDMETHOD_CONSERVE)
             # Print the differences between the expected and regrid data
-            print ""
-            print "analytic (expect) versus conserve regridded (found) differences"
+            print("")
+            print("analytic (expect) versus conserve regridded (found) differences")
             printDiffs(rect_2d_center_lons, rect_2d_center_lats, undef_val, 0.05,
                        rect_expect_data, rect_regrid_data)
 
     elif direction in ('r2cw', 'r2co'):
 
-        print ""
+        print("")
         if direction == 'r2cw':
-            print "Examining curvilinear with corners results from rectilinear"
+            print("Examining curvilinear with corners results from rectilinear")
         else:
-            print "Examining curvilinear without corners results from rectilinear"
+            print("Examining curvilinear without corners results from rectilinear")
 
         # Create the rectilinear source field
         regridder.assignRectField(rect_data)
@@ -909,8 +915,8 @@ if __name__ == '__main__':
         curv_regrid_data = regridder.regridRectToCurv(undef_val, ESMP.ESMP_REGRIDMETHOD_BILINEAR)
         # Print the differences between the expected and regrid data
         # Ignore the edges of the regions
-        print ""
-        print "analytic (expect) versus bilinear regridded (found) differences"
+        print("")
+        print("analytic (expect) versus bilinear regridded (found) differences")
         printDiffs(curv_center_lons[1:-1, 1:-1],
                    curv_center_lats[1:-1, 1:-1],
                    undef_val, 0.001,
@@ -921,8 +927,8 @@ if __name__ == '__main__':
         curv_regrid_data = regridder.regridRectToCurv(undef_val, ESMP.ESMP_REGRIDMETHOD_PATCH)
         # Print the differences between the expected and regrid data
         # Ignore the edges of the regions
-        print ""
-        print "analytic (expect) versus patch regridded (found) differences"
+        print("")
+        print("analytic (expect) versus patch regridded (found) differences")
         printDiffs(curv_center_lons[1:-1 ,1:-1],
                    curv_center_lats[1:-1, 1:-1],
                    undef_val, 0.001,
@@ -935,8 +941,8 @@ if __name__ == '__main__':
             curv_regrid_data = regridder.regridRectToCurv(undef_val, ESMP.ESMP_REGRIDMETHOD_CONSERVE)
             # Print the differences between the expected and regrid data
             # Ignore the edges of the regions
-            print ""
-            print "analytic (expect) versus conserve regridded (found) differences"
+            print("")
+            print("analytic (expect) versus conserve regridded (found) differences")
             printDiffs(curv_center_lons[1:-1,1:-1],
                        curv_center_lats[1:-1,1:-1],
                        undef_val, 0.1,
diff --git a/pyfermod/regrid/regrid2dexample2.py b/pyfermod/regrid/regrid2dexample2.py
index 63dad01..7bbd167 100644
--- a/pyfermod/regrid/regrid2dexample2.py
+++ b/pyfermod/regrid/regrid2dexample2.py
@@ -5,6 +5,8 @@ and also serves as a coding example of using this class.
 @author: Karl Smith
 '''
 
+from __future__ import print_function
+
 import numpy
 import ESMP
 from esmpcontrol import ESMPControl
@@ -198,20 +200,20 @@ def printDiffs(grid_lons, grid_lats, undef_val, max_negl,
     for (_, lon, lat, expect, found) in diff_list:
         if expect == undef_val:
             num_not_undef += 1
-            print "lon = %#7.3f, lat = %7.3f, expect =  undef, found = %#8.5f" \
-                  % (lon, lat, found)
+            print("lon = %#7.3f, lat = %7.3f, expect =  undef, found = %#8.5f" \
+                  % (lon, lat, found))
         elif found == undef_val:
             num_undef += 1
-            print "lon = %#7.3f, lat = %7.3f, expect = %#8.5f, found =  undef" \
-                  % (lon, lat, expect)
+            print("lon = %#7.3f, lat = %7.3f, expect = %#8.5f, found =  undef" \
+                  % (lon, lat, expect))
         else:
             num_diff += 1
-            print "lon = %#7.3f, lat = %7.3f, expect = %#8.5f, found = %#8.5f, " \
-                  "diff = %#8.5f" % (lon, lat, expect, found, found - expect)
-    print "%3d undefined when defined might be expected" % num_undef
-    print "%3d with absolute difference > %#.5f" % (num_diff, max_negl)
-    print "%3d defined when undefined expected" % num_not_undef
-    print "%3d values in the grid" % (expect_data.shape[0] * expect_data.shape[1])
+            print("lon = %#7.3f, lat = %7.3f, expect = %#8.5f, found = %#8.5f, " \
+                  "diff = %#8.5f" % (lon, lat, expect, found, found - expect))
+    print("%3d undefined when defined might be expected" % num_undef)
+    print("%3d with absolute difference > %#.5f" % (num_diff, max_negl))
+    print("%3d defined when undefined expected" % num_not_undef)
+    print("%3d values in the grid" % (expect_data.shape[0] * expect_data.shape[1]))
 
 
 # main routine - for testing "by hand"
@@ -279,16 +281,16 @@ if __name__ == '__main__':
     # Regrid from curvilinear to rectilinear using the bilinear method
     rect_regrid_data = regridder.regridCurvToRect(undef_val, ESMP.ESMP_REGRIDMETHOD_BILINEAR)
     # Print the differences between the expected and regrid data
-    print ""
-    print "analytic (expect) versus bilinear regridded (found) differences"
+    print("")
+    print("analytic (expect) versus bilinear regridded (found) differences")
     printDiffs(rect_2d_center_lons, rect_2d_center_lats, undef_val, max_negl,
                rect_expect_data, rect_regrid_data)
 
     # Regrid from curvilinear to rectilinear using the patch method
     rect_regrid_data = regridder.regridCurvToRect(undef_val, ESMP.ESMP_REGRIDMETHOD_PATCH)
     # Print the differences between the expected and regrid data
-    print ""
-    print "analytic (expect) versus patch regridded (found) differences"
+    print("")
+    print("analytic (expect) versus patch regridded (found) differences")
     printDiffs(rect_2d_center_lons, rect_2d_center_lats, undef_val, max_negl,
                rect_expect_data, rect_regrid_data)
 
@@ -296,8 +298,8 @@ if __name__ == '__main__':
     # Corners required for this method
     rect_regrid_data = regridder.regridCurvToRect(undef_val, ESMP.ESMP_REGRIDMETHOD_CONSERVE)
     # Print the differences between the expected and regrid data
-    print ""
-    print "analytic (expect) versus conserve regridded (found) differences"
+    print("")
+    print("analytic (expect) versus conserve regridded (found) differences")
     printDiffs(rect_2d_center_lons, rect_2d_center_lats, undef_val, max_negl,
                rect_expect_data, rect_regrid_data)
 
diff --git a/pyfermod/regrid/regrid2dtests.py b/pyfermod/regrid/regrid2dtests.py
index c242c8f..ec7fae0 100644
--- a/pyfermod/regrid/regrid2dtests.py
+++ b/pyfermod/regrid/regrid2dtests.py
@@ -3,6 +3,9 @@ Unit tests for CurvRectRegridder
 
 @author: Karl Smith
 '''
+
+from __future__ import print_function
+
 import unittest
 import numpy
 import ESMP
@@ -257,13 +260,13 @@ class CurvRectRegridderTests(unittest.TestCase):
         regrid_data[2, 0] = self.undef_val
         expect_data[2, 1] = self.undef_val
         regrid_data[2, 1] = self.undef_val
-        for i in xrange(expect_data.shape[0]):
-            for j in xrange(expect_data.shape[1]):
+        for i in range(expect_data.shape[0]):
+            for j in range(expect_data.shape[1]):
                 if numpy.abs(expect_data[i, j] - regrid_data[i, j]) > 0.0007:
                     mismatch_found = True
-                    print "expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
+                    print("expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
                           "lat = %5.1f" % (expect_data[i, j], regrid_data[i, j],
-                           self.rect_center_lons[i], self.rect_center_lats[j])
+                           self.rect_center_lons[i], self.rect_center_lats[j]))
         if mismatch_found:
             self.fail("data mismatch found")
 
@@ -285,13 +288,13 @@ class CurvRectRegridderTests(unittest.TestCase):
         mismatch_found = False
         # one point falls outside the curvilinear centerpoints grid?
         expect_data[5, 0] = self.undef_val
-        for i in xrange(expect_data.shape[0]):
-            for j in xrange(expect_data.shape[1]):
+        for i in range(expect_data.shape[0]):
+            for j in range(expect_data.shape[1]):
                 if numpy.abs(expect_data[i, j] - regrid_data[i, j]) > 0.0003:
                     mismatch_found = True
-                    print "expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
+                    print("expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
                           "lat = %5.1f" % (expect_data[i, j], regrid_data[i, j],
-                           self.rect_center_lons[i], self.rect_center_lats[j])
+                           self.rect_center_lons[i], self.rect_center_lats[j]))
         if mismatch_found:
             self.fail("data mismatch found")
 
@@ -317,13 +320,13 @@ class CurvRectRegridderTests(unittest.TestCase):
         # one point falls outside the curvilinear centerpoints grid?
         expect_data[5, 0] = self.undef_val
         mismatch_found = False
-        for i in xrange(expect_data.shape[0]):
-            for j in xrange(expect_data.shape[1]):
+        for i in range(expect_data.shape[0]):
+            for j in range(expect_data.shape[1]):
                 if numpy.abs(expect_data[i, j] - regrid_data[i, j]) > 0.0011:
                     mismatch_found = True
-                    print "expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
+                    print("expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
                           "lat = %5.1f" % (expect_data[i, j], regrid_data[i, j],
-                           self.rect_center_lons[i], self.rect_center_lats[j])
+                           self.rect_center_lons[i], self.rect_center_lats[j]))
         if mismatch_found:
             self.fail("data mismatch found")
 
@@ -358,13 +361,13 @@ class CurvRectRegridderTests(unittest.TestCase):
         # they aren't really well covered by the rectilinear grid
         # Also ignore the second east-most edge;
         # also not well covered and errors are larger 
-        for i in xrange(1, expect_data.shape[0] - 2):
-            for j in xrange(1, expect_data.shape[1] - 1):
+        for i in range(1, expect_data.shape[0] - 2):
+            for j in range(1, expect_data.shape[1] - 1):
                 if numpy.abs(expect_data[i, j] - regrid_data[i, j]) > 0.0004:
                     mismatch_found = True
-                    print "expect = %#6.4f, found = %#6.4f for lon = %7.3f, " \
+                    print("expect = %#6.4f, found = %#6.4f for lon = %7.3f, " \
                           "lat = %7.3f" % (expect_data[i, j], regrid_data[i, j], 
-                          self.curv_center_lons[i][j], self.curv_center_lats[i][j])
+                          self.curv_center_lons[i][j], self.curv_center_lats[i][j]))
         if mismatch_found:
             self.fail("data mismatch found")
 
@@ -388,13 +391,13 @@ class CurvRectRegridderTests(unittest.TestCase):
         # they aren't really well covered by the rectilinear grid
         # Also ignore the second east-most edge and second south-most edge;
         # also not covered
-        for i in xrange(1, expect_data.shape[0] - 2):
-            for j in xrange(2, expect_data.shape[1] - 1):
+        for i in range(1, expect_data.shape[0] - 2):
+            for j in range(2, expect_data.shape[1] - 1):
                 if numpy.abs(expect_data[i, j] - regrid_data[i, j]) > 0.0003:
                     mismatch_found = True
-                    print "expect = %#6.4f, found = %#6.4f for lon = %7.3f, " \
+                    print("expect = %#6.4f, found = %#6.4f for lon = %7.3f, " \
                           "lat = %7.3f" % (expect_data[i, j], regrid_data[i, j],
-                          self.curv_center_lons[i][j], self.curv_center_lats[i][j])
+                          self.curv_center_lons[i][j], self.curv_center_lats[i][j]))
         if mismatch_found:
             self.fail("data mismatch found")
 
@@ -425,13 +428,13 @@ class CurvRectRegridderTests(unittest.TestCase):
         # they aren't really well covered by the rectilinear grid
         # Also ignore the second east-most edge and second south-most edge;
         # also not covered
-        for i in xrange(1, expect_data.shape[0] - 2):
-            for j in xrange(2, expect_data.shape[1] - 1):
+        for i in range(1, expect_data.shape[0] - 2):
+            for j in range(2, expect_data.shape[1] - 1):
                 if numpy.abs(expect_data[i, j] - regrid_data[i, j]) > 0.0011:
                     mismatch_found = True
-                    print "expect = %#6.4f, found = %#6.4f for lon = %7.3f, " \
+                    print("expect = %#6.4f, found = %#6.4f for lon = %7.3f, " \
                           "lat = %7.3f" % (expect_data[i, j], regrid_data[i, j],
-                          self.curv_center_lons[i][j], self.curv_center_lats[i][j])
+                          self.curv_center_lons[i][j], self.curv_center_lats[i][j]))
         if mismatch_found:
             self.fail("data mismatch found")
 
diff --git a/pyfermod/regrid/regrid3d.py b/pyfermod/regrid/regrid3d.py
index b2b8c50..1e45baa 100644
--- a/pyfermod/regrid/regrid3d.py
+++ b/pyfermod/regrid/regrid3d.py
@@ -7,6 +7,8 @@ to ESMF to perform the regridding.
 @author: Karl Smith
 '''
 
+from __future__ import print_function
+
 import numpy
 import ESMP
 
@@ -288,12 +290,12 @@ class CurvRect3DRegridder(object):
             if self.__debug:
                 fout = open("curv_corner_xyz.txt", "w")
                 try:
-                    print >>fout, "curv_corner_x = %s" % \
-                        self.__myArrayStr(grid_x_coords, corner_lons_array.shape)
-                    print >>fout, "curv_corner_y = %s" % \
-                        self.__myArrayStr(grid_y_coords, corner_lons_array.shape)
-                    print >>fout, "curv_corner_z = %s" % \
-                        self.__myArrayStr(grid_z_coords, corner_lons_array.shape)
+                    print("curv_corner_x = %s" % \
+                        self.__myArrayStr(grid_x_coords, corner_lons_array.shape), file=fout)
+                    print("curv_corner_y = %s" % \
+                        self.__myArrayStr(grid_y_coords, corner_lons_array.shape), file=fout)
+                    print("curv_corner_z = %s" % \
+                        self.__myArrayStr(grid_z_coords, corner_lons_array.shape), file=fout)
                 finally:
                     fout.close()
             
@@ -346,12 +348,12 @@ class CurvRect3DRegridder(object):
         if self.__debug:
             fout = open("curv_center_xyz.txt", "w")
             try:
-                print >>fout, "curv_center_x = %s" % \
-                    self.__myArrayStr(grid_x_coords, self.__curv_shape)
-                print >>fout, "curv_center_y = %s" % \
-                    self.__myArrayStr(grid_y_coords, self.__curv_shape)
-                print >>fout, "curv_center_z = %s" % \
-                    self.__myArrayStr(grid_z_coords, self.__curv_shape)
+                print("curv_center_x = %s" % \
+                    self.__myArrayStr(grid_x_coords, self.__curv_shape), file=fout)
+                print("curv_center_y = %s" % \
+                    self.__myArrayStr(grid_y_coords, self.__curv_shape), file=fout)
+                print("curv_center_z = %s" % \
+                    self.__myArrayStr(grid_z_coords, self.__curv_shape), file=fout)
             finally:
                 fout.close()
 
@@ -429,8 +431,8 @@ class CurvRect3DRegridder(object):
             if self.__debug:
                 fout = open("curv_data.txt", "w")
                 try:
-                    print >>fout, "curv_data = %s" % \
-                        self.__myArrayStr(field_ptr, self.__curv_shape)
+                    print("curv_data = %s" % \
+                        self.__myArrayStr(field_ptr, self.__curv_shape), file=fout)
                 finally:
                     fout.close()
 
@@ -642,12 +644,12 @@ class CurvRect3DRegridder(object):
             if self.__debug:
                 fout = open("rect_corner_xyz.txt", "w")
                 try:
-                    print >>fout, "rect_corner_x = %s" % \
-                        self.__myArrayStr(grid_x_coords, corner_shape)
-                    print >>fout, "rect_corner_y = %s" % \
-                        self.__myArrayStr(grid_y_coords, corner_shape)
-                    print >>fout, "rect_corner_z = %s" % \
-                        self.__myArrayStr(grid_z_coords, corner_shape)
+                    print("rect_corner_x = %s" % \
+                        self.__myArrayStr(grid_x_coords, corner_shape), file=fout)
+                    print("rect_corner_y = %s" % \
+                        self.__myArrayStr(grid_y_coords, corner_shape), file=fout)
+                    print("rect_corner_z = %s" % \
+                        self.__myArrayStr(grid_z_coords, corner_shape), file=fout)
                 finally:
                     fout.close()
 
@@ -707,12 +709,12 @@ class CurvRect3DRegridder(object):
         if self.__debug:
             try:
                 fout = open("rect_center_xyz.txt", "w")
-                print >>fout, "rect_center_x = %s" % \
-                    self.__myArrayStr(grid_x_coords, self.__rect_shape)
-                print >>fout, "rect_center_y = %s" % \
-                    self.__myArrayStr(grid_y_coords, self.__rect_shape)
-                print >>fout, "rect_center_z = %s" % \
-                    self.__myArrayStr(grid_z_coords, self.__rect_shape)
+                print("rect_center_x = %s" % \
+                    self.__myArrayStr(grid_x_coords, self.__rect_shape), file=fout)
+                print("rect_center_y = %s" % \
+                    self.__myArrayStr(grid_y_coords, self.__rect_shape), file=fout)
+                print("rect_center_z = %s" % \
+                    self.__myArrayStr(grid_z_coords, self.__rect_shape), file=fout)
             finally:
                 fout.close()
 
@@ -790,8 +792,8 @@ class CurvRect3DRegridder(object):
             if self.__debug:
                 fout = open("rect_data.txt", "w")
                 try:
-                    print >>fout, "rect_data = %s" % \
-                        self.__myArrayStr(field_ptr, self.__rect_shape)
+                    print("rect_data = %s" % \
+                        self.__myArrayStr(field_ptr, self.__rect_shape), file=fout)
                 finally:
                     fout.close()
 
@@ -866,8 +868,8 @@ class CurvRect3DRegridder(object):
         if self.__debug:
             fout = open("regr_rect_data.txt", "w")
             try:
-                print >>fout, "regr_rect_data = %s" % \
-                    self.__myArrayStr(result, self.__rect_shape)
+                print("regr_rect_data = %s" % \
+                    self.__myArrayStr(result, self.__rect_shape), file=fout)
             finally:
                 fout.close()
 
@@ -946,8 +948,8 @@ class CurvRect3DRegridder(object):
         if self.__debug:
             fout = open("regr_curv_data.txt", "w")
             try:
-                print >>fout, "regr_curv_data = %s" % \
-                    self.__myArrayStr(result, self.__curv_shape)
+                print("regr_curv_data = %s" % \
+                    self.__myArrayStr(result, self.__curv_shape), file=fout)
             finally:
                 fout.close()
         result = result.reshape(self.__curv_shape, order='F')
diff --git a/pyfermod/regrid/regrid3dexample.py b/pyfermod/regrid/regrid3dexample.py
index e08eac9..946de9d 100644
--- a/pyfermod/regrid/regrid3dexample.py
+++ b/pyfermod/regrid/regrid3dexample.py
@@ -5,6 +5,9 @@ and also serves as a coding example of using this class.
 @author: Karl Smith
 '''
 
+from __future__ import print_function
+
+import sys
 import numpy
 import ESMP
 from esmpcontrol import ESMPControl
@@ -381,33 +384,36 @@ def printDiffs(grid_lons, grid_lats, grid_depths, undef_val, max_negl,
     for (_, lon, lat, depth, expect, found) in diff_list:
         if expect == undef_val:
             num_not_undef += 1
-            print "lon = %#7.3f, lat = %7.3f, depth = %7.2f, expect =  undef, " \
-                  "found = %#6.3f" % (lon, lat, depth, found)
+            print("lon = %#7.3f, lat = %7.3f, depth = %7.2f, expect =  undef, " \
+                  "found = %#6.3f" % (lon, lat, depth, found))
         elif found == undef_val:
             num_undef += 1
             # print "lon = %#7.3f, lat = %7.3f, depth = %7.2f, expect = %#6.3f, " \
             #       "found =  undef" % (lon, lat, depth, expect)
         else:
             num_diff += 1
-            print "lon = %#7.3f, lat = %7.3f, depth = %7.2f, expect = %#6.3f, " \
+            print("lon = %#7.3f, lat = %7.3f, depth = %7.2f, expect = %#6.3f, " \
                   "found = %#6.3f, diff = %#6.3f" \
-                  % (lon, lat, depth, expect, found, found - expect)
-    print "%3d undefined when defined might be expected" % num_undef
-    print "%3d with absolute difference > %#.3f" % (num_diff, max_negl)
-    print "%3d defined when undefined expected" % num_not_undef
-    print "%3d values in the grid" \
-            % (expect_data.shape[0] * expect_data.shape[1] * expect_data.shape[2])
+                  % (lon, lat, depth, expect, found, found - expect))
+    print("%3d undefined when defined might be expected" % num_undef)
+    print("%3d with absolute difference > %#.3f" % (num_diff, max_negl))
+    print("%3d defined when undefined expected" % num_not_undef)
+    print("%3d values in the grid" \
+            % (expect_data.shape[0] * expect_data.shape[1] * expect_data.shape[2]))
 
 
 if __name__ == '__main__':
     try:
         while True:
-            print 'cw2r: curvilinear with corners to rectilinear'
-            print 'co2r: curvilinear without corners to rectilinear'
-            print 'r2cw: rectilinear to curvilinear with corners'
-            print 'r2co: rectilinear to curvilinear without corners'
-            print 'Ctrl-D to quit'
-            direction = raw_input('Regrid test to run? ')
+            print('cw2r: curvilinear with corners to rectilinear')
+            print('co2r: curvilinear without corners to rectilinear')
+            print('r2cw: rectilinear to curvilinear with corners')
+            print('r2co: rectilinear to curvilinear without corners')
+            print('Ctrl-D to quit')
+            if sys.version_info[0] > 2:
+                direction = input('Regrid test to run? ')
+            else:
+                direction = raw_input('Regrid test to run? ')
             direction = direction.strip().lower()
             if direction in ('cw2r', 'co2r', 'r2cw', 'r2co'):
                 break
@@ -460,11 +466,11 @@ if __name__ == '__main__':
 
     if direction in ('cw2r', 'co2r'):
 
-        print ""
+        print("")
         if direction == 'cw2r':
-            print "Examining rectilinear results from curvilinear with corners"
+            print("Examining rectilinear results from curvilinear with corners")
         else:
-            print "Examining rectilinear results from curvilinear without corners"
+            print("Examining rectilinear results from curvilinear without corners")
 
         # Create the curvilinear source field
         regridder.assignCurvField(curv_data)
@@ -492,8 +498,8 @@ if __name__ == '__main__':
             # Corners required for this method
             rect_regrid_data = regridder.regridCurvToRect(undef_val, ESMP.ESMP_REGRIDMETHOD_CONSERVE)
             # Print the differences between the expected and regrid data
-            print ""
-            print "analytic (expect) versus conserve regridded (found) differences"
+            print("")
+            print("analytic (expect) versus conserve regridded (found) differences")
             printDiffs(rect_3d_center_lons,
                        rect_3d_center_lats,
                        rect_3d_center_depths,
@@ -504,8 +510,8 @@ if __name__ == '__main__':
         # Regrid from curvilinear to rectilinear using the bilinear method
         rect_regrid_data = regridder.regridCurvToRect(undef_val, ESMP.ESMP_REGRIDMETHOD_BILINEAR)
         # Print the differences between the expected and regrid data
-        print ""
-        print "analytic (expect) versus bilinear regridded (found) differences"
+        print("")
+        print("analytic (expect) versus bilinear regridded (found) differences")
         printDiffs(rect_3d_center_lons,
                    rect_3d_center_lats,
                    rect_3d_center_depths,
@@ -516,8 +522,8 @@ if __name__ == '__main__':
         # Regrid from curvilinear to rectilinear using the patch method
         rect_regrid_data = regridder.regridCurvToRect(undef_val, ESMP.ESMP_REGRIDMETHOD_PATCH)
         # Print the differences between the expected and regrid data
-        print ""
-        print "analytic (expect) versus patch regridded (found) differences"
+        print("")
+        print("analytic (expect) versus patch regridded (found) differences")
         printDiffs(rect_3d_center_lons,
                    rect_3d_center_lats,
                    rect_3d_center_depths,
@@ -527,11 +533,11 @@ if __name__ == '__main__':
 
     elif direction in ('r2cw', 'r2co'):
 
-        print ""
+        print("")
         if direction == 'r2cw':
-            print "Examining curvilinear with corners results from rectilinear"
+            print("Examining curvilinear with corners results from rectilinear")
         else:
-            print "Examining curvilinear without corners results from rectilinear"
+            print("Examining curvilinear without corners results from rectilinear")
 
         # Create the rectilinear source field
         regridder.assignRectField(rect_data)
@@ -544,8 +550,8 @@ if __name__ == '__main__':
             # Corners required for this method
             curv_regrid_data = regridder.regridRectToCurv(undef_val, ESMP.ESMP_REGRIDMETHOD_CONSERVE)
             # Print the differences between the expected and regrid data
-            print ""
-            print "analytic (expect) versus conserve regridded (found) differences"
+            print("")
+            print("analytic (expect) versus conserve regridded (found) differences")
             printDiffs(curv_center_lons[:,:,1:-1],
                        curv_center_lats[:,:,1:-1],
                        curv_center_depths[:,:,1:-1],
@@ -556,8 +562,8 @@ if __name__ == '__main__':
         # Regrid from rectilinear to curvilinear using the bilinear method
         curv_regrid_data = regridder.regridRectToCurv(undef_val, ESMP.ESMP_REGRIDMETHOD_BILINEAR)
         # Print the differences between the expected and regrid data
-        print ""
-        print "analytic (expect) versus bilinear regridded (found) differences"
+        print("")
+        print("analytic (expect) versus bilinear regridded (found) differences")
         printDiffs(curv_center_lons[:,:,1:-1],
                    curv_center_lats[:,:,1:-1],
                    curv_center_depths[:,:,1:-1],
@@ -568,8 +574,8 @@ if __name__ == '__main__':
         # Regrid from rectilinear to curvilinear using the patch method
         curv_regrid_data = regridder.regridRectToCurv(undef_val, ESMP.ESMP_REGRIDMETHOD_PATCH)
         # Print the differences between the expected and regrid data
-        print ""
-        print "analytic (expect) versus patch regridded (found) differences"
+        print("")
+        print("analytic (expect) versus patch regridded (found) differences")
         printDiffs(curv_center_lons[:,:,1:-1],
                    curv_center_lats[:,:,1:-1],
                    curv_center_depths[:,:,1:-1],
diff --git a/pyfermod/regrid/regrid3dtests.py b/pyfermod/regrid/regrid3dtests.py
index c2f1f2d..95a2f8d 100644
--- a/pyfermod/regrid/regrid3dtests.py
+++ b/pyfermod/regrid/regrid3dtests.py
@@ -3,6 +3,9 @@ Unit tests for CurvRect3DRegridder
 
 @author: Karl Smith
 '''
+
+from __future__ import print_function
+
 import unittest
 import numpy
 import ESMP
@@ -342,15 +345,15 @@ class CurvRect3DRegridderTests(unittest.TestCase):
                                                  ESMP.ESMP_REGRIDMETHOD_BILINEAR)
         expect_data = numpy.array(self.rect_data, dtype=numpy.float64)
         mismatch_found = False
-        for i in xrange(margin, expect_data.shape[0] - margin):
-            for j in xrange(margin, expect_data.shape[1] - margin):
-                for k in xrange(margin, expect_data.shape[2] - margin):
+        for i in range(margin, expect_data.shape[0] - margin):
+            for j in range(margin, expect_data.shape[1] - margin):
+                for k in range(margin, expect_data.shape[2] - margin):
                     if numpy.abs(expect_data[i, j, k] - regrid_data[i, j, k]) > delta:
                         mismatch_found = True
-                        print "expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
+                        print("expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
                               "lat = %5.1f, lev = %5.1f" % (expect_data[i, j, k], 
                               regrid_data[i, j, k], self.rect_center_lons[i], 
-                              self.rect_center_lats[j], self.rect_center_levs[k])
+                              self.rect_center_lats[j], self.rect_center_levs[k]))
         if mismatch_found:
             self.fail("data mismatch found for bilinear regridding without flags")
 
@@ -367,15 +370,15 @@ class CurvRect3DRegridderTests(unittest.TestCase):
         undef_flags = numpy.array(self.rect_center_ignr, dtype=numpy.bool)
         expect_data[undef_flags] = self.undef_val
         mismatch_found = False
-        for i in xrange(margin, expect_data.shape[0] - margin):
-            for j in xrange(margin, expect_data.shape[1] - margin):
-                for k in xrange(margin, expect_data.shape[2] - margin):
+        for i in range(margin, expect_data.shape[0] - margin):
+            for j in range(margin, expect_data.shape[1] - margin):
+                for k in range(margin, expect_data.shape[2] - margin):
                     if numpy.abs(expect_data[i, j, k] - regrid_data[i, j, k]) > delta:
                         mismatch_found = True
-                        print "expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
+                        print("expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
                               "lat = %5.1f, lev = %5.1f" % (expect_data[i, j, k], 
                               regrid_data[i, j, k], self.rect_center_lons[i], 
-                              self.rect_center_lats[j], self.rect_center_levs[k])
+                              self.rect_center_lats[j], self.rect_center_levs[k]))
         if mismatch_found:
             self.fail("data mismatch found for bilinear regridding with flags")
 
@@ -403,15 +406,15 @@ class CurvRect3DRegridderTests(unittest.TestCase):
                                                  ESMP.ESMP_REGRIDMETHOD_CONSERVE)
         expect_data = numpy.array(self.rect_data, dtype=numpy.float64)
         mismatch_found = False
-        for i in xrange(margin, expect_data.shape[0] - margin):
-            for j in xrange(margin, expect_data.shape[1] - margin):
-                for k in xrange(margin, expect_data.shape[2] - margin):
+        for i in range(margin, expect_data.shape[0] - margin):
+            for j in range(margin, expect_data.shape[1] - margin):
+                for k in range(margin, expect_data.shape[2] - margin):
                     if numpy.abs(expect_data[i, j, k] - regrid_data[i, j, k]) > delta:
                         mismatch_found = True
-                        print "expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
+                        print("expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
                               "lat = %5.1f, lev = %5.1f" % (expect_data[i, j, k], 
                               regrid_data[i, j, k], self.rect_center_lons[i], 
-                              self.rect_center_lats[j], self.rect_center_levs[k])
+                              self.rect_center_lats[j], self.rect_center_levs[k]))
         if mismatch_found:
             self.fail("data mismatch found for conservative regridding")
 
@@ -436,15 +439,15 @@ class CurvRect3DRegridderTests(unittest.TestCase):
                                                  ESMP.ESMP_REGRIDMETHOD_PATCH)
         expect_data = numpy.array(self.rect_data, dtype=numpy.float64)
         mismatch_found = False
-        for i in xrange(margin, expect_data.shape[0] - margin):
-            for j in xrange(margin, expect_data.shape[1] - margin):
-                for k in xrange(margin, expect_data.shape[2] - margin):
+        for i in range(margin, expect_data.shape[0] - margin):
+            for j in range(margin, expect_data.shape[1] - margin):
+                for k in range(margin, expect_data.shape[2] - margin):
                     if numpy.abs(expect_data[i, j, k] - regrid_data[i, j, k]) > delta:
                         mismatch_found = True
-                        print "expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
+                        print("expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
                               "lat = %5.1f, lev = %5.1f" % (expect_data[i, j, k], 
                               regrid_data[i, j, k], self.rect_center_lons[i], 
-                              self.rect_center_lats[j], self.rect_center_levs[k])
+                              self.rect_center_lats[j], self.rect_center_levs[k]))
         if mismatch_found:
             self.fail("data mismatch found for patch regridding")
 
@@ -469,15 +472,15 @@ class CurvRect3DRegridderTests(unittest.TestCase):
                                                  ESMP.ESMP_REGRIDMETHOD_BILINEAR)
         expect_data = numpy.array(self.curv_data, dtype=numpy.float64)
         mismatch_found = False
-        for i in xrange(margin, expect_data.shape[0] - margin):
-            for j in xrange(margin, expect_data.shape[1] - margin):
-                for k in xrange(margin, expect_data.shape[2] - margin):
+        for i in range(margin, expect_data.shape[0] - margin):
+            for j in range(margin, expect_data.shape[1] - margin):
+                for k in range(margin, expect_data.shape[2] - margin):
                     if numpy.abs(expect_data[i, j, k] - regrid_data[i, j, k]) > delta:
                         mismatch_found = True
-                        print "expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
+                        print("expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
                               "lat = %5.1f, lev = %5.1f" % (expect_data[i, j, k], 
                               regrid_data[i, j, k], self.curv_center_lons[i][j][k], 
-                              self.curv_center_lats[i][j][k], self.curv_center_levs[i][j][k])
+                              self.curv_center_lats[i][j][k], self.curv_center_levs[i][j][k]))
         if mismatch_found:
             self.fail("data mismatch found for bilinear regridding without flags")
 
@@ -494,15 +497,15 @@ class CurvRect3DRegridderTests(unittest.TestCase):
         undef_flags = numpy.array(self.rect_center_ignr, dtype=numpy.bool)
         expect_data[undef_flags] = self.undef_val
         mismatch_found = False
-        for i in xrange(margin, expect_data.shape[0] - margin):
-            for j in xrange(margin, expect_data.shape[1] - margin):
-                for k in xrange(margin, expect_data.shape[2] - margin):
+        for i in range(margin, expect_data.shape[0] - margin):
+            for j in range(margin, expect_data.shape[1] - margin):
+                for k in range(margin, expect_data.shape[2] - margin):
                     if numpy.abs(expect_data[i, j, k] - regrid_data[i, j, k]) > delta:
                         mismatch_found = True
-                        print "expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
+                        print("expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
                               "lat = %5.1f, lev = %5.1f" % (expect_data[i, j, k], 
                               regrid_data[i, j, k], self.curv_center_lons[i][j][k], 
-                              self.curv_center_lats[i][j][k], self.curv_center_levs[i][j][k])
+                              self.curv_center_lats[i][j][k], self.curv_center_levs[i][j][k]))
         if mismatch_found:
             self.fail("data mismatch found for bilinear regridding with flags")
 
@@ -530,15 +533,15 @@ class CurvRect3DRegridderTests(unittest.TestCase):
                                                  ESMP.ESMP_REGRIDMETHOD_CONSERVE)
         expect_data = numpy.array(self.curv_data, dtype=numpy.float64)
         mismatch_found = False
-        for i in xrange(margin, expect_data.shape[0] - margin):
-            for j in xrange(margin, expect_data.shape[1] - margin):
-                for k in xrange(margin, expect_data.shape[2] - margin):
+        for i in range(margin, expect_data.shape[0] - margin):
+            for j in range(margin, expect_data.shape[1] - margin):
+                for k in range(margin, expect_data.shape[2] - margin):
                     if numpy.abs(expect_data[i, j, k] - regrid_data[i, j, k]) > delta:
                         mismatch_found = True
-                        print "expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
+                        print("expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
                               "lat = %5.1f, lev = %5.1f" % (expect_data[i, j, k], 
                               regrid_data[i, j, k], self.curv_center_lons[i][j][k], 
-                              self.curv_center_lats[i][j][k], self.curv_center_levs[i][j][k])
+                              self.curv_center_lats[i][j][k], self.curv_center_levs[i][j][k]))
         if mismatch_found:
             self.fail("data mismatch found for conservative regridding")
 
@@ -565,15 +568,15 @@ class CurvRect3DRegridderTests(unittest.TestCase):
                                                  ESMP.ESMP_REGRIDMETHOD_PATCH)
         expect_data = numpy.array(self.curv_data, dtype=numpy.float64)
         mismatch_found = False
-        for i in xrange(margin, expect_data.shape[0] - margin):
-            for j in xrange(margin, expect_data.shape[1] - margin):
-                for k in xrange(margin, expect_data.shape[2] - margin):
+        for i in range(margin, expect_data.shape[0] - margin):
+            for j in range(margin, expect_data.shape[1] - margin):
+                for k in range(margin, expect_data.shape[2] - margin):
                     if numpy.abs(expect_data[i, j, k] - regrid_data[i, j, k]) > delta:
                         mismatch_found = True
-                        print "expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
+                        print("expect = %#6.4f, found = %#6.4f for lon = %5.1f, " \
                               "lat = %5.1f, lev = %5.1f" % (expect_data[i, j, k], 
                               regrid_data[i, j, k], self.curv_center_lons[i][j][k], 
-                              self.curv_center_lats[i][j][k], self.curv_center_levs[i][j][k])
+                              self.curv_center_lats[i][j][k], self.curv_center_levs[i][j][k]))
         if mismatch_found:
             self.fail("data mismatch found for patch regridding")
 
diff --git a/pyfermod/regrid/regridtests.py b/pyfermod/regrid/regridtests.py
index 7d1a516..9883abe 100644
--- a/pyfermod/regrid/regridtests.py
+++ b/pyfermod/regrid/regridtests.py
@@ -5,7 +5,7 @@ Tests of the regrid.__init__ functions
 '''
 import unittest
 import numpy
-import __init__ as regrid
+from . import __init__ as regrid
 
 class RegridTests(unittest.TestCase):
     '''
@@ -75,13 +75,13 @@ class RegridTests(unittest.TestCase):
                         "Expected X coordinates:\n%s\nFound X coordinates:\n%s" % \
                         (str(expect_ctry), str(ctry)))
 
-        for k in xrange(1, ptsx.shape[0]):
+        for k in range(1, ptsx.shape[0]):
             ptsx[k, :] += 3.0 * k
-        for k in xrange(expect_ctrx.shape[0]):
+        for k in range(expect_ctrx.shape[0]):
             expect_ctrx[k, :] += 1.5 * (2 * k + 1)
-        for k in xrange(1, ptsy.shape[1]):
+        for k in range(1, ptsy.shape[1]):
             ptsy[:, k] += 4.0 * k
-        for k in xrange(expect_ctry.shape[1]):
+        for k in range(expect_ctry.shape[1]):
             expect_ctry[:, k] += 2.0 * (2 * k + 1)
         ctrx, ctry = regrid.quadCentroids(ptsx, ptsy)
         self.assertTrue(numpy.allclose(expect_ctrx, ctrx),
@@ -91,13 +91,13 @@ class RegridTests(unittest.TestCase):
                         "Expected X coordinates:\n%s\nFound X coordinates:\n%s" % \
                         (str(expect_ctry), str(ctry)))
 
-        for k in xrange(1, ptsx.shape[1]):
+        for k in range(1, ptsx.shape[1]):
             ptsx[:, k] += 5.0 * k
-        for k in xrange(expect_ctrx.shape[1]):
+        for k in range(expect_ctrx.shape[1]):
             expect_ctrx[:, k] += 2.5 * (2 * k + 1)
-        for k in xrange(1, ptsy.shape[0]):
+        for k in range(1, ptsy.shape[0]):
             ptsy[k, :] += 7.0 * k
-        for k in xrange(expect_ctry.shape[0]):
+        for k in range(expect_ctry.shape[0]):
             expect_ctry[k, :] += 3.5 * (2 * k + 1)
         ctrx, ctry = regrid.quadCentroids(ptsx, ptsy)
         self.assertTrue(numpy.allclose(expect_ctrx, ctrx),
diff --git a/pyfermod/set_memory.c b/pyfermod/set_memory.c
index ab620c9..7fe8964 100644
--- a/pyfermod/set_memory.c
+++ b/pyfermod/set_memory.c
@@ -38,26 +38,14 @@
 #include "pyferret.h"
 
 /* create the extern pointers to the allocated memory */
-double *memory;
 float *ppl_memory;
 sharedMem *sBuffer;
 
-/* assign the memory for ferret's use */
-void set_fer_memory(double *mem, size_t mem_size)
-{
-    int max_mem_blks = PMAX_MEM_BLKS;
-    int mem_blk_size;
-
-    memory = mem;
-    mem_blk_size = (int)(mem_size / (size_t)max_mem_blks);
-    init_memory_( &mem_blk_size, &max_mem_blks );
-}
-
 /* assign the memory for plot plus' use */
 void set_ppl_memory(float *mem, int mem_size)
 {
     ppl_memory = mem;
-    save_ppl_memory_size_( &mem_size );
+    FORTRAN(save_ppl_memory_size)( &mem_size );
 }
 
 /* assign the shared buffer */
diff --git a/pyfermod/stats/__init__.py b/pyfermod/stats/__init__.py
index 6d04751..32deb15 100644
--- a/pyfermod/stats/__init__.py
+++ b/pyfermod/stats/__init__.py
@@ -1,6 +1,9 @@
 """
 Helper functions for pyferret stats external functions.
 """
+
+from __future__ import print_function
+
 import math
 import numpy
 try:
@@ -50,7 +53,7 @@ def getdistname(distribname=None):
                  ( "uniform", "Uniform", ),
                  ( "weibull_min", "Weibull", ),
                )
-    if distribname == None:
+    if distribname is None:
         return namelist
     lcdistname = str(distribname).lower()
     # Testing below verifies the above names are all recognized in the following
@@ -131,7 +134,7 @@ def getdistparams(distname, params, tostd=False):
         distribution.
     """
     if distname == "beta":
-        if params == None:
+        if params is None:
             return ( ( "ALPHA", "first shape", ),
                      ( "BETA", "second shape", ), )
         if tostd:
@@ -151,7 +154,7 @@ def getdistparams(distname, params, tostd=False):
             pass
         return ( alpha, beta, offset, scaling, )
     if distname == "binom":
-        if params == None:
+        if params is None:
             return ( ( "N", "number of trials", ),
                      ( "P", "success probability in each trial", ), )
         if tostd:
@@ -164,7 +167,7 @@ def getdistparams(distname, params, tostd=False):
             raise ValueError("Invalid parameter(s) for the Binomial distribution")
         return ( nflt, prob, )
     if distname == "cauchy":
-        if params == None:
+        if params is None:
             return ( ( "M", "location (median)", ),
                      ( "GAMMA", "scale (half-width at half-maximum)", ), )
         if tostd:
@@ -177,7 +180,7 @@ def getdistparams(distname, params, tostd=False):
             raise ValueError("Invalid parameter for the Cauchy distribution")
         return ( m, gamma, )
     if distname == "chi":
-        if params == None:
+        if params is None:
             return ( ( "DF", "degrees of freedom", ), )
         if tostd:
             return ( params[0], params[1], params[2], )
@@ -195,7 +198,7 @@ def getdistparams(distname, params, tostd=False):
             pass
         return ( degfree, offset, scaling, )
     if distname == "chi2":
-        if params == None:
+        if params is None:
             return ( ( "DF", "degrees of freedom", ), )
         if tostd:
             return ( params[0], params[1], params[2], )
@@ -213,7 +216,7 @@ def getdistparams(distname, params, tostd=False):
             pass
         return ( degfree, offset, scaling, )
     if distname == "expon":
-        if params == None:
+        if params is None:
             return ( ( "LAMBDA", "rate (inverse scale)", ), )
         if tostd:
             return ( 1.0 / params[1], params[0], )
@@ -228,7 +231,7 @@ def getdistparams(distname, params, tostd=False):
             offset = 0.0
         return ( offset, 1.0 / lambdaflt, )
     if distname == "exponweib":
-        if params == None:
+        if params is None:
             return ( ( "K", "Weibull shape", ),
                      ( "LAMBDA", "scale", ),
                      ( "ALPHA", "power shape", ), )
@@ -247,7 +250,7 @@ def getdistparams(distname, params, tostd=False):
             offset = 0.0
         return ( alpha, k, offset, lambdaflt, )
     if distname == "f":
-        if params == None:
+        if params is None:
             return ( ( "DFN", "numerator degrees of freedom", ),
                      ( "DFD", "denominator degrees of freedom", ), )
         if tostd:
@@ -267,7 +270,7 @@ def getdistparams(distname, params, tostd=False):
             pass
         return ( dfnum, dfdenom, offset, scaling, )
     if distname == "gamma":
-        if params == None:
+        if params is None:
             return ( ( "ALPHA", "shape", ),
                      ( "THETA", "scale", ), )
         if tostd:
@@ -284,7 +287,7 @@ def getdistparams(distname, params, tostd=False):
             offset = 0.0
         return ( alpha, offset, theta, )
     if distname == "geom":
-        if params == None:
+        if params is None:
             return ( ( "P", "success probability", ), )
         if tostd:
             return ( params[0], )
@@ -295,7 +298,7 @@ def getdistparams(distname, params, tostd=False):
             raise ValueError("Invalid parameter for the Shifted-Geometric distribution")
         return ( prob, )
     if distname == "hypergeom":
-        if params == None:
+        if params is None:
             return ( ( "NTOTAL", "total number of items", ),
                      ( "NGOOD", "total number of 'success' items", ),
                      ( "NDRAWN", "number of items selected", ), )
@@ -310,7 +313,7 @@ def getdistparams(distname, params, tostd=False):
            raise ValueError("Invalid parameter(s) for the Hypergeometric distribution")
         return ( numtotal, numgood, numdrawn, )
     if distname == "invgamma":
-        if params == None:
+        if params is None:
             return ( ( "ALPHA", "shape", ),
                      ( "BETA", "scale", ), )
         if tostd:
@@ -327,7 +330,7 @@ def getdistparams(distname, params, tostd=False):
             offset = 0.0
         return ( alpha, offset, beta, )
     if distname == "laplace":
-        if params == None:
+        if params is None:
             return ( ( "MU", "location (mean)", ),
                      ( "B", "scale", ), )
         if tostd:
@@ -340,7 +343,7 @@ def getdistparams(distname, params, tostd=False):
             raise ValueError("Invalid parameters for the Laplace distribution")
         return ( mu, b, )
     if distname == "lognorm":
-        if params == None:
+        if params is None:
             return ( ( "MU", "log-scale (mean of the natural log of the distribution)", ),
                      ( "SIGMA", "shape (std. dev. of the natural log of the distribution)", ), )
         if tostd:
@@ -357,7 +360,7 @@ def getdistparams(distname, params, tostd=False):
             offset = 0.0
         return ( sigma, offset, mu, )
     if distname == "nbinom":
-        if params == None:
+        if params is None:
             return ( ( "N", "number of successes to stop", ),
                      ( "P", "success probability in each trial", ), )
         if tostd:
@@ -370,7 +373,7 @@ def getdistparams(distname, params, tostd=False):
             raise ValueError("Invalid parameter(s) for the Negative-Binomial distribution")
         return ( numsuccess, prob, )
     if distname == "norm":
-        if params == None:
+        if params is None:
             return ( ( "MU", "mean value", ),
                      ( "SIGMA", "standard deviation", ), )
         if tostd:
@@ -383,7 +386,7 @@ def getdistparams(distname, params, tostd=False):
             raise ValueError("Invalid parameter for the Normal distribution")
         return ( mu, sigma, )
     if distname == "pareto":
-        if params == None:
+        if params is None:
             return ( ( "XM", "scale (minimum abscissa value)", ),
                      ( "ALPHA", "shape", ), )
         if tostd:
@@ -400,7 +403,7 @@ def getdistparams(distname, params, tostd=False):
             offset = 0.0
         return ( alpha, offset, xm, )
     if distname == "poisson":
-        if params == None:
+        if params is None:
             return ( ( "MU", "expected number of occurences", ), )
         if tostd:
             return ( params[0], )
@@ -411,7 +414,7 @@ def getdistparams(distname, params, tostd=False):
             raise ValueError("Invalid parameter for the Poisson distribution")
         return ( mu, )
     if distname == "randint":
-        if params == None:
+        if params is None:
             return ( ( "MIN", "minimum integer", ),
                      ( "MAX", "maximum integer (included)", ), )
         if tostd:
@@ -429,7 +432,7 @@ def getdistparams(distname, params, tostd=False):
             raise ValueError("Invalid parameters for the Random-Integer distribution")
         return ( min, max + 1, )
     if distname == "t":
-        if params == None:
+        if params is None:
             return ( ( "DF", "degrees of freedom", ), )
         if tostd:
             return ( params[0], params[1], params[2], )
@@ -447,7 +450,7 @@ def getdistparams(distname, params, tostd=False):
             pass
         return ( degfree, offset, scaling, )
     if distname == "uniform":
-        if params == None:
+        if params is None:
             return ( ( "MIN", "minimum", ),
                      ( "MAX", "maximum", ), )
         if tostd:
@@ -461,7 +464,7 @@ def getdistparams(distname, params, tostd=False):
         # these are the "loc" and "scale" parameters for the uniform distribution
         return ( min, max - min, )
     if distname == "weibull_min":
-        if params == None:
+        if params is None:
             return ( ( "K", "shape", ),
                      ( "LAMBDA", "scale", ), )
         if tostd:
@@ -499,13 +502,13 @@ def getdistrib(distribname, distribparams):
        ValueError if the distribution name is not recognized by this
                   routine or if the distribution parameters are invalid
     """
-    if (distribname == None) or (distribparams == None):
+    if (distribname is None) or (distribparams is None):
         raise ValueError("Neither distribname nor distribparams can be None")
     distscipyname = getdistname(distribname)
-    if distscipyname == None:
+    if distscipyname is None:
         raise ValueError("Unknown probability function %s" % str(distribname))
     distscipyparams = getdistparams(distscipyname, distribparams)
-    if distscipyparams == None:
+    if distscipyparams is None:
         raise ValueError("Unknown (for params) probability function %s" % str(distribname))
     distfunc = eval("scipy.stats.%s" % distscipyname)
     distrib = distfunc(*distscipyparams)
@@ -520,13 +523,13 @@ def getfitparams(values, distribname, estparams):
     data with no missing values).  Initial estimates for these "standard"
     parameters are given in estparams.
     """
-    if (distribname == None) or (estparams == None):
+    if (distribname is None) or (estparams is None):
         raise ValueError("Neither distribname nor estparams can be None")
     distscipyname = getdistname(distribname)
-    if distscipyname == None:
+    if distscipyname is None:
         raise ValueError("Unknown probability function %s" % str(distribname))
     estscipyparams = getdistparams(distscipyname, estparams)
-    if estscipyparams == None:
+    if estscipyparams is None:
         raise ValueError("Unknown (for params) probability function %s" % str(distribname))
     try:
         fitfunc = eval("scipy.stats.%s.fit" % distscipyname)
@@ -535,6 +538,15 @@ def getfitparams(values, distribname, estparams):
     if distscipyname == "uniform":
         # "params" keyword for the uniform distribution does not work as expected
         fitscipyparams = fitfunc(values, loc=estscipyparams[0], scale=estscipyparams[1])
+    elif distscipyname == "gamma":
+        # "params" keyword for the gamma distribution does not work as expected
+        fitscipyparams = fitfunc(values, loc=estscipyparams[1], scale=estscipyparams[0])
+    elif distscipyname == "laplace":
+        # "params" keyword for the laplace distribution does not work as expected
+        fitscipyparams = fitfunc(values, loc=estscipyparams[0], scale=estscipyparams[1])
+    elif distscipyname == "t":
+        # "params" keyword for the student-t test distribution does not work as expected
+        fitscipyparams = fitfunc(values, loc=estscipyparams[0], scale=estscipyparams[1])
     else:
         fitscipyparams = fitfunc(values, params=estscipyparams)
     return getdistparams(distscipyname, fitscipyparams, tostd=True)
@@ -648,7 +660,7 @@ def assignresultsarray(distribname, funcname, result, resbdf, inputs, inpbdfs):
     numparams = len(inputs) - 1
     if numparams > 0:
         par1axis = -1
-        for k in xrange(pyferret.MAX_FERRET_NDIM):
+        for k in range(pyferret.MAX_FERRET_NDIM):
             if inputs[1].shape[k] > 1:
                 if par1axis != -1:
                     raise ValueError("Parameters arrays can have only one defined, non-singular axis")
@@ -662,7 +674,7 @@ def assignresultsarray(distribname, funcname, result, resbdf, inputs, inpbdfs):
         tmp1result[badmask] = resbdf
     if numparams > 1:
         par2axis = -1
-        for k in xrange(pyferret.MAX_FERRET_NDIM):
+        for k in range(pyferret.MAX_FERRET_NDIM):
             if inputs[2].shape[k] > 1:
                 if par2axis != -1:
                     raise ValueError("Parameters arrays can have only one defined, non-singular axis")
@@ -682,7 +694,7 @@ def assignresultsarray(distribname, funcname, result, resbdf, inputs, inpbdfs):
             tmp2result = numpy.empty(shape, dtype=numpy.float64, order='F')
     if numparams > 2:
         par3axis = -1
-        for k in xrange(pyferret.MAX_FERRET_NDIM):
+        for k in range(pyferret.MAX_FERRET_NDIM):
             if inputs[3].shape[k] > 1:
                 if par3axis != -1:
                     raise ValueError("Parameters arrays can have only one defined, non-singular axis")
@@ -704,7 +716,7 @@ def assignresultsarray(distribname, funcname, result, resbdf, inputs, inpbdfs):
             tmp3result = numpy.empty(shape, dtype=numpy.float64, order='F')
     # deal with each number of parameters separately when assigning results
     if numparams == 1:
-        for j in xrange(len(par1vals)):
+        for j in range(len(par1vals)):
             try:
                 if math.isnan(par1vals[j]) or (math.fabs(par1vals[j] - inpbdfs[1]) < 1.0E-7):
                     raise ValueError
@@ -734,8 +746,8 @@ def assignresultsarray(distribname, funcname, result, resbdf, inputs, inpbdfs):
             else:
                 raise ValueError("Unexpected par1axis of %d" % par1axis)
     elif numparams == 2:
-        for k in xrange(len(par2vals)):
-            for j in xrange(len(par1vals)):
+        for k in range(len(par2vals)):
+            for j in range(len(par1vals)):
                 try:
                     if math.isnan(par2vals[k]) or (math.fabs(par2vals[k] - inpbdfs[2]) < 1.0E-7) or \
                        math.isnan(par1vals[j]) or (math.fabs(par1vals[j] - inpbdfs[1]) < 1.0E-7):
@@ -784,9 +796,9 @@ def assignresultsarray(distribname, funcname, result, resbdf, inputs, inpbdfs):
             else:
                 raise ValueError("Unexpected par2axis of %d" % par2axis)
     elif numparams == 3:
-        for q in xrange(len(par3vals)):
-            for k in xrange(len(par2vals)):
-                for j in xrange(len(par1vals)):
+        for q in range(len(par3vals)):
+            for k in range(len(par2vals)):
+                for j in range(len(par1vals)):
                     try:
                         if math.isnan(par3vals[q]) or (math.fabs(par3vals[q] - inpbdfs[3]) < 1.0E-7) or \
                            math.isnan(par2vals[k]) or (math.fabs(par2vals[k] - inpbdfs[2]) < 1.0E-7) or \
@@ -883,7 +895,7 @@ if __name__ == "__main__":
     distname = "beta"
     descript = getdistparams(distname, None)
     if len(descript) != 2:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 2; found %d" % \
                          (distname, len(descript)))
     del descript
@@ -902,7 +914,7 @@ if __name__ == "__main__":
                           (alpha * beta * (alpha + beta + 2.0) * (alpha + beta + 3.0)),
                     )
     if not numpy.allclose(foundstats, expectedstats):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("(mean, var, skew, kurtosis) of %s(%.1f, %.1f): expected %s; found %s" % \
                           (distname, distparms[0], distparms[1], str(expectedstats), str(foundstats)))
     del alpha, beta, foundstats, expectedstats
@@ -912,7 +924,7 @@ if __name__ == "__main__":
     distparms.append(1.0)
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     # sample = distf.rvs(25000)
     # fitparms = getfitparams(sample, distname, distparms)
@@ -923,14 +935,14 @@ if __name__ == "__main__":
     #                                   (distname, str(distparms), str(fitparms)))
     del distparms, distf, newparms # , sample, fitparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # Binomial distribution
     distname = "binom"
     descript = getdistparams(distname, None)
     if len(descript) != 2:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 2; found %d:" % \
                          (distname, len(descript)))
     del descript
@@ -946,26 +958,26 @@ if __name__ == "__main__":
                       (1.0 - 6.0 * prob * (1.0 - prob)) / (ntrials * prob * (1.0 - prob)),
                     )
     if not numpy.allclose(foundstats, expectedstats):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("(mean, var, skew, kurtosis) of %s(%.1f, %.1f): expected %s; found %s" % \
                           (distname, distparms[0], distparms[1], str(expectedstats), str(foundstats)))
     del ntrials, prob, foundstats, expectedstats
 
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     # no binom.fit function
     del distparms, distf, newparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # Cauchy distribution
     distname = "cauchy"
     descript = getdistparams(distname, None)
     if len(descript) != 2:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 2; found %d:" % \
                          (distname, len(descript)))
     del descript
@@ -979,14 +991,14 @@ if __name__ == "__main__":
     foundpdfs = distf.pdf(xvals)
     expectedpdfs = (gamma / numpy.pi) / ((xvals - m)**2 + gamma**2)
     if not numpy.allclose(foundpdfs, expectedpdfs):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("pdfs(0.0:10.1:0.5) of %s(%#.1f,%#.1f): expected %s; found %s" % \
                           (distname, distparms[0], distparms[1], str(expectedpdfs), str(foundpdfs)))
     del m, gamma, xvals, foundpdfs, expectedpdfs
 
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     # sample = distf.rvs(25000)
     # fitparms = getfitparams(sample, distname, distparms)
@@ -997,14 +1009,14 @@ if __name__ == "__main__":
     #                                   (distname, str(distparms), str(fitparms)))
     del distparms, distf, newparms # , sample, fitparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # Chi distribution
     distname = "chi"
     descript = getdistparams(distname, None)
     if len(descript) != 1:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 1; found %d:" % \
                          (distname, len(descript)))
     del descript
@@ -1024,7 +1036,7 @@ if __name__ == "__main__":
                       2.0 * (1.0 - mean * stdev * skew - variance) / variance,
                     )
     if not numpy.allclose(foundstats, expectedstats):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("(mean, var, skew, kurtosis) of %s(%d.0): expected %s; found %s" % \
                           (distname, distparms[0], str(expectedstats), str(foundstats)))
     del degfree, foundstats, mean, variance, stdev, skew, expectedstats
@@ -1034,7 +1046,7 @@ if __name__ == "__main__":
     distparms.append(1.0)
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     # sample = distf.rvs(25000)
     # fitparms = getfitparams(sample, distname, distparms)
@@ -1045,14 +1057,14 @@ if __name__ == "__main__":
     #                                   (distname, str(distparms), str(fitparms)))
     del distparms, distf, newparms # , sample, fitparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # Chi-squared distribution
     distname = "chi2"
     descript = getdistparams(distname, None)
     if len(descript) != 1:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 1; found %d:" % \
                          (distname, len(descript)))
     del descript
@@ -1068,7 +1080,7 @@ if __name__ == "__main__":
                       12.0 / degfree,
                     )
     if not numpy.allclose(foundstats, expectedstats):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("(mean, var, skew, kurtosis) of %s(%s): expected %s; found %s" % \
                           (distname, distparms[0], str(expectedstats), str(foundstats)))
     del degfreestr, foundstats, expectedstats
@@ -1077,7 +1089,7 @@ if __name__ == "__main__":
     distparms = [ degfree, 0.0, 1.0 ]
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     # sample = distf.rvs(25000)
     # fitparms = getfitparams(sample, distname, distparms)
@@ -1088,14 +1100,14 @@ if __name__ == "__main__":
     #                                   (distname, str(distparms), str(fitparms)))
     del degfree, distparms, distf, newparms # , sample, fitparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # Exponential distribution
     distname = "expon"
     descript = getdistparams(distname, None)
     if len(descript) != 1:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 1; found %d:" % \
                          (distname, len(descript)))
     del descript
@@ -1106,7 +1118,7 @@ if __name__ == "__main__":
     foundstats = distf.stats("mvsk")
     expectedstats = ( 1.0 / lambdaflt, 1.0 / lambdaflt**2, 2.0, 6.0 )
     if not numpy.allclose(foundstats, expectedstats):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("(mean, var, skew, kurtosis) of %s(%.1f): expected %s; found %s" % \
                           (distname, distparms[0], str(expectedstats), str(foundstats)))
     del lambdaflt, foundstats, expectedstats
@@ -1115,7 +1127,7 @@ if __name__ == "__main__":
     distparms.append(0.0)
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     # sample = distf.rvs(25000)
     # fitparms = getfitparams(sample, distname, distparms)
@@ -1126,14 +1138,14 @@ if __name__ == "__main__":
     #                                   (distname, str(distparms), str(fitparms)))
     del distparms, distf, newparms # , sample, fitparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # Exponentiated Weibull distribution
     distname = "exponweib"
     descript = getdistparams(distname, None)
     if len(descript) != 3:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 3; found %d:" % \
                          (distname, len(descript)))
     del descript
@@ -1149,7 +1161,7 @@ if __name__ == "__main__":
     foundcdfs = distf.cdf(xvals)
     expectedcdfs = numpy.power(1.0 - numpy.exp(-1.0 * numpy.power(xvals / lambdaflt, k)), alpha)
     if not numpy.allclose(foundcdfs, expectedcdfs):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("cdfs(0.0:10.1:0.5) of %s(%#.1f,%#.1f%#.1f): expected %s; found %s" % \
                           (distname, distparms[0], distparms[1], distparms[2], str(expectedcdfs), str(foundcdfs)))
     del k, lambdaflt, alpha, xvals, foundcdfs, expectedcdfs
@@ -1158,7 +1170,7 @@ if __name__ == "__main__":
     distparms.append(0.0)
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     # sample = distf.rvs(25000)
     # fitparms = getfitparams(sample, distname, distparms)
@@ -1169,14 +1181,14 @@ if __name__ == "__main__":
     #                                   (distname, str(distparms), str(fitparms)))
     del distparms, distf, newparms # , sample, fitparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # F distribution
     distname = "f"
     descript = getdistparams(distname, None)
     if len(descript) != 2:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 2; found %d:" % \
                          (distname, len(descript)))
     del descript
@@ -1198,7 +1210,7 @@ if __name__ == "__main__":
                     )
     if not numpy.allclose(foundstats, expectedstats):
         # raise ValueError("(mean, var, skew, kurtosis) of %s(%.1f, %.1f): expected %s; found %s" % \
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("(mean, var) of %s(%.1f, %.1f): expected %s; found %s" % \
                           (distname, distparms[0], distparms[1], str(expectedstats), str(foundstats)))
     # since skew and kurtosis is not coming out as expected, check some pdf values
@@ -1210,7 +1222,7 @@ if __name__ == "__main__":
     expectedpdfs = factor * numpy.power(xvals, 0.5 * dofn - 1.0) / \
                    numpy.power(dofd + dofn * xvals, 0.5 * (dofn + dofd))
     if not numpy.allclose(foundpdfs, expectedpdfs):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("pdfs(0.5:10.1:0.5) of %s(%#.1f,%#.1f): expected %s; found %s" % \
                           (distname, distparms[0], distparms[1], str(expectedpdfs), str(foundpdfs)))
     del dofn, dofd, foundstats, expectedstats, xvals, foundpdfs, factor, expectedpdfs
@@ -1220,7 +1232,7 @@ if __name__ == "__main__":
     distparms.append(1.0)
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     # sample = distf.rvs(25000)
     # fitparms = getfitparams(sample, distname, distparms)
@@ -1231,14 +1243,14 @@ if __name__ == "__main__":
     #                                   (distname, str(distparms), str(fitparms)))
     del distparms, distf, newparms # , sample, fitparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # Gamma distribution
     distname = "gamma"
     descript = getdistparams(distname, None)
     if len(descript) != 2:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 2; found %d:" % \
                          (distname, len(descript)))
     del descript
@@ -1250,7 +1262,7 @@ if __name__ == "__main__":
     foundstats = distf.stats("mvsk")
     expectedstats = ( alpha * theta, alpha * theta**2, 2.0 / math.sqrt(alpha), 6.0 / alpha )
     if not numpy.allclose(foundstats, expectedstats):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("(mean, var, skew, kurtosis) of %s(%.1f, %.1f): expected %s; found %s" % \
                           (distname, distparms[0], distparms[1], str(expectedstats), str(foundstats)))
     del alpha, theta, foundstats, expectedstats
@@ -1259,24 +1271,24 @@ if __name__ == "__main__":
     distparms.append(0.0)
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     sample = distf.rvs(25000)
     fitparms = getfitparams(sample, distname, distparms)
     if not numpy.allclose(fitparms, distparms, rtol=0.1, atol=0.2):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("fitparams of %s: expected %s; found %s" % \
                                       (distname, str(distparms), str(fitparms)))
     del distparms, distf, newparms, sample, fitparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # Geometric distribution
     distname = "geom"
     descript = getdistparams(distname, None)
     if len(descript) != 1:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 1; found %d:" % \
                          (distname, len(descript)))
     del descript
@@ -1291,26 +1303,26 @@ if __name__ == "__main__":
                      6.0 + prob**2 / (1.0 - prob),
                     )
     if not numpy.allclose(foundstats, expectedstats):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("(mean, var, skew, kurtosis) of %s(%.1f): expected %s; found %s" % \
                           (distname, distparms[0], str(expectedstats), str(foundstats)))
     del prob, foundstats, expectedstats
 
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     # no geom.fit function
     del distparms, distf, newparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # Hypergeometric distribution
     distname = "hypergeom"
     descript = getdistparams(distname, None)
     if len(descript) != 3:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 3; found %d:" % \
                          (distname, len(descript)))
     del descript
@@ -1335,26 +1347,26 @@ if __name__ == "__main__":
                       #      3.0 * numdrawn * (numtotal - numdrawn) * (numtotal + 6.0) / numtotal**2 - 6.0),
                     )
     if not numpy.allclose(foundstats, expectedstats):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("(mean, var, skew, kurtosis) of %s(%.1f, %.1f, %.1f): expected %s; found %s" % \
                           (distname, distparms[0], distparms[1], distparms[2], str(expectedstats), str(foundstats)))
     del numtotal, numgood, numdrawn, foundstats, expectedstats
 
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     # no hypergeom.fit function
     del distparms, distf, newparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # Inverse-Gamma distribution
     distname = "invgamma"
     descript = getdistparams(distname, None)
     if len(descript) != 2:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 2; found %d:" % \
                          (distname, len(descript)))
     del descript
@@ -1370,7 +1382,7 @@ if __name__ == "__main__":
                       (30.0 * alpha - 66.0)/ ((alpha - 3.0) * (alpha - 4.0)),
                     )
     if not numpy.allclose(foundstats, expectedstats):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("(mean, var, skew, kurtosis) of %s(%.1f, %.1f): expected %s; found %s" % \
                           (distname, distparms[0], distparms[1], str(expectedstats), str(foundstats)))
     del alpha, beta, foundstats, expectedstats
@@ -1379,7 +1391,7 @@ if __name__ == "__main__":
     distparms.append(0.0)
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     # sample = distf.rvs(25000)
     # fitparms = getfitparams(sample, distname, distparms)
@@ -1390,14 +1402,14 @@ if __name__ == "__main__":
     #                                   (distname, str(distparms), str(fitparms)))
     del distparms, distf, newparms # , sample, fitparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # Laplace distribution
     distname = "laplace"
     descript = getdistparams(distname, None)
     if len(descript) != 2:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 2; found %d:" % \
                          (distname, len(descript)))
     del descript
@@ -1409,31 +1421,31 @@ if __name__ == "__main__":
     foundstats = distf.stats("mvsk")
     expectedstats = ( mu, 2.0 * b**2, 0.0, 3.0 )
     if not numpy.allclose(foundstats, expectedstats):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("(mean, var, skew, kurtosis) of %s(%.1f, %.1f): expected %s; found %s" % \
                           (distname, distparms[0], distparms[1], str(expectedstats), str(foundstats)))
     del mu, b, foundstats, expectedstats
 
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     sample = distf.rvs(25000)
     fitparms = getfitparams(sample, distname, distparms)
     if not numpy.allclose(fitparms, distparms, rtol=0.1, atol=0.2):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("fitparams of %s: expected %s; found %s" % \
                                       (distname, str(distparms), str(fitparms)))
     del distparms, distf, newparms, sample, fitparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # Log-normal distribution
     distname = "lognorm"
     descript = getdistparams(distname, None)
     if len(descript) != 2:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 2; found %d:" % \
                          (distname, len(descript)))
     del descript
@@ -1449,7 +1461,7 @@ if __name__ == "__main__":
                       math.exp(4.0 * sigma**2) + 2.0 * math.exp(3.0 * sigma**2) + 3.0 * math.exp(2.0 * sigma**2) - 6,
                     )
     if not numpy.allclose(foundstats, expectedstats):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("(mean, var, skew, kurtosis) of %s(%.1f, %.1f): expected %s; found %s" % \
                           (distname, distparms[0], distparms[1], str(expectedstats), str(foundstats)))
     del mu, sigma, foundstats, expectedstats
@@ -1458,7 +1470,7 @@ if __name__ == "__main__":
     distparms.append(0.0)
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     # sample = distf.rvs(25000)
     # fitparms = getfitparams(sample, distname, distparms)
@@ -1469,14 +1481,14 @@ if __name__ == "__main__":
     #                                   (distname, str(distparms), str(fitparms)))
     del distparms, distf, newparms # , sample, fitparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # Negative-binomial distribution
     distname = "nbinom"
     descript = getdistparams(distname, None)
     if len(descript) != 2:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 2; found %d:" % \
                          (distname, len(descript)))
     del descript
@@ -1492,26 +1504,26 @@ if __name__ == "__main__":
                       (prob**2 - 6.0 * prob + 6.0) / (numsuccess * (1.0 - prob)),
                     )
     if not numpy.allclose(foundstats, expectedstats):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("(mean, var, skew, kurtosis) of %s(%.1f, %.1f): expected %s; found %s" % \
                           (distname, distparms[0], distparms[1], str(expectedstats), str(foundstats)))
     del numsuccess, prob, foundstats, expectedstats
 
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     # no nbinom.fit function
     del distparms, distf, newparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # Normal distribution
     distname = "norm"
     descript = getdistparams(distname, None)
     if len(descript) != 2:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 2; found %d:" % \
                          (distname, len(descript)))
     del descript
@@ -1523,31 +1535,31 @@ if __name__ == "__main__":
     foundstats = distf.stats("mvsk")
     expectedstats = ( mu, sigma**2, 0.0, 0.0 )
     if not numpy.allclose(foundstats, expectedstats):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("(mean, var, skew, kurtosis) of %s(%.1f, %.1f): expected %s; found %s" % \
                           (distname, distparms[0], distparms[1], str(expectedstats), str(foundstats)))
     del mu, sigma, foundstats, expectedstats
 
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     sample = distf.rvs(25000)
     fitparms = getfitparams(sample, distname, distparms)
     if not numpy.allclose(fitparms, distparms, rtol=0.1, atol=0.2):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("fitparams of %s: expected %s; found %s" % \
                                       (distname, str(distparms), str(fitparms)))
     del distparms, distf, newparms, sample, fitparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # Pareto distribution
     distname = "pareto"
     descript = getdistparams(distname, None)
     if len(descript) != 2:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 2; found %d:" % \
                          (distname, len(descript)))
     del descript
@@ -1564,7 +1576,7 @@ if __name__ == "__main__":
                           (alpha * (alpha - 3.0) * (alpha - 4.0)),
                     )
     if not numpy.allclose(foundstats, expectedstats):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("(mean, var, skew, kurtosis) of %s(%.1f, %.1f): expected %s; found %s" % \
                           (distname, distparms[0], distparms[1], str(expectedstats), str(foundstats)))
     del xm, alpha, foundstats, expectedstats
@@ -1573,7 +1585,7 @@ if __name__ == "__main__":
     distparms.append(0.0)
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     sample = distf.rvs(25000)
     # fitparms = getfitparams(sample, distname, distparms)
@@ -1584,14 +1596,14 @@ if __name__ == "__main__":
     #                                   (distname, str(distparms), str(fitparms)))
     del distparms, distf, newparms # , sample, fitparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # Poisson distribution
     distname = "poisson"
     descript = getdistparams(distname, None)
     if len(descript) != 1:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 1; found %d:" % \
                          (distname, len(descript)))
     del descript
@@ -1602,41 +1614,41 @@ if __name__ == "__main__":
     foundstats = distf.stats("mvsk")
     expectedstats = ( mu, mu, 1.0 / math.sqrt(mu), 1.0 / mu )
     if not numpy.allclose(foundstats, expectedstats):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("(mean, var, skew, kurtosis) of %s(%.1f): expected %s; found %s" % \
                           (distname, distparms[0], str(expectedstats), str(foundstats)))
     del mu, foundstats, expectedstats
 
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     # no poisson.fit function
     del distparms, distf, newparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # Random Integer (Discrete Uniform) distribution
     distname = "randint"
     descript = getdistparams(distname, None)
     if len(descript) != 2:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 2; found %d:" % \
                          (distname, len(descript)))
     del descript
 
-    a = -5.0
-    b = 13.0
+    a = -5
+    b = 13
     distparms = [ a, b ]
     distf = getdistrib(distname, distparms)
     # foundstats = distf.stats("mvsk")
     foundstats = distf.stats("mvs")
-    n = b - a + 1.0
+    n = b - a + 1
     # expectedstats = ( 0.5 * (a + b), (n**2 - 1.0) / 12.0, 0.0, -6.0 * (n**2 + 1) / (5.0 * (n**2 - 1)) )
     expectedstats = ( 0.5 * (a + b), (n**2 - 1.0) / 12.0, 0.0, )
     if not numpy.allclose(foundstats, expectedstats):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         # raise ValueError("(mean, var, skew, kurtosis) of %s(%.1f, %.1f): expected %s; found %s" % \
         raise ValueError("(mean, var, skew) of %s(%.1f, %.1f): expected %s; found %s" % \
                           (distname, distparms[0], distparms[1], str(expectedstats), str(foundstats)))
@@ -1646,26 +1658,26 @@ if __name__ == "__main__":
     expectedpmfs[n+1] = 0.0
     foundpmfs = distf.pmf(xvals)
     if not numpy.allclose(foundpmfs, expectedpmfs):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("pmfs(%.1f:%.1f:1.0) of %s(%.1f, %.1f): expected %s; found %s" % \
               (a - 1.0, b + 1.1, distname, distparms[0], distparms[1], str(expectedpmfs), str(foundpmfs)))
     del a, b, foundstats, n, expectedstats, xvals, expectedpmfs, foundpmfs
 
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     # no randint.fit function
     del distparms, distf, newparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # Student's-t distribution
     distname = "t"
     descript = getdistparams(distname, None)
     if len(descript) != 1:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 1; found %d:" % \
                          (distname, len(descript)))
     del descript
@@ -1676,7 +1688,7 @@ if __name__ == "__main__":
     foundstats = distf.stats("mvsk")
     expectedstats = ( 0.0, degfree / (degfree - 2.0), 0.0, 6.0 / (degfree - 4.0) )
     if not numpy.allclose(foundstats, expectedstats):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("(mean, var, skew, kurtosis) of %s(%.1f): expected %s; found %s" % \
                           (distname, distparms[0], str(expectedstats), str(foundstats)))
     del degfree, foundstats, expectedstats
@@ -1686,24 +1698,24 @@ if __name__ == "__main__":
     distparms.append(1.0)
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     sample = distf.rvs(25000)
     fitparms = getfitparams(sample, distname, distparms)
     if not numpy.allclose(fitparms, distparms, rtol=0.1, atol=0.2):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("fitparams of %s: expected %s; found %s" % \
                                       (distname, str(distparms), str(fitparms)))
     del distparms, distf, newparms, sample, fitparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # Uniform distribution
     distname = "uniform"
     descript = getdistparams(distname, None)
     if len(descript) != 2:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 2; found %d:" % \
                          (distname, len(descript)))
     del descript
@@ -1715,31 +1727,31 @@ if __name__ == "__main__":
     foundstats = distf.stats("mvsk")
     expectedstats = ( 0.5 * (a + b), (b - a)**2 / 12.0, 0.0, -6.0 / 5.0 )
     if not numpy.allclose(foundstats, expectedstats):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("(mean, var, skew, kurtosis) of %s(%.1f, %.1f): expected %s; found %s" % \
                           (distname, distparms[0], distparms[1], str(expectedstats), str(foundstats)))
     del a, b, foundstats, expectedstats
 
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     sample = distf.rvs(25000)
     fitparms = getfitparams(sample, distname, distparms)
     if not numpy.allclose(fitparms, distparms, rtol=0.1, atol=0.2):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("fitparams of %s: expected %s; found %s" % \
                                       (distname, str(distparms), str(fitparms)))
     del distparms, distf, newparms, sample, fitparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # Weibull distribution
     distname = "weibull_min"
     descript = getdistparams(distname, None)
     if len(descript) != 2:
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("number of parameter description pairs for %s: expected 2; found %d:" % \
                          (distname, len(descript)))
     del descript
@@ -1762,7 +1774,7 @@ if __name__ == "__main__":
                       (gam2 - gam1**2)**2,
                     )
     if not numpy.allclose(foundstats, expectedstats):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("(mean, var, skew, kurtosis) of %s(%.1f, %.1f): expected %s; found %s" % \
                           (distname, distparms[0], distparms[1], str(expectedstats), str(foundstats)))
     del k, lambdaflt, foundstats, gam1, gam2, gam3, gam4, mu, sigma, expectedstats
@@ -1771,7 +1783,7 @@ if __name__ == "__main__":
     distparms.append(0.0)
     newparms = getdistparams(distname, getdistparams(distname, distparms, tostd=False), tostd=True)
     if not numpy.allclose(newparms, distparms):
-        print "%s: FAIL" % distname
+        print("%s: FAIL" % distname)
         raise ValueError("conversion of full %s params to scipy then back to std changed" % distname)
     # sample = distf.rvs(25000)
     # fitparms = getfitparams(sample, distname, distparms)
@@ -1782,9 +1794,9 @@ if __name__ == "__main__":
     #                                   (distname, str(distparms), str(fitparms)))
     del distparms, distf, newparms # , sample, fitparms
 
-    print "%s: PASS" % distname
+    print("%s: PASS" % distname)
 
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/create_stats_funcs.sh b/pyfermod/stats/create_stats_funcs.sh
index 960a9af..f7120ff 100755
--- a/pyfermod/stats/create_stats_funcs.sh
+++ b/pyfermod/stats/create_stats_funcs.sh
@@ -1,6 +1,8 @@
-#! /bin/env python2.6
+#! /bin/env python
 #
 
+from __future__ import print_function
+
 import os.path
 import scipy.stats
 import pyferret.stats
@@ -17,7 +19,7 @@ def create_script(scriptname, distribname, distriblongname, funcname, funcreturn
         line = line.replace("<distriblongname>", distriblongname)
         line = line.replace("<funcname>", funcname)
         line = line.replace("<funcreturn>", funcreturn)
-        print >>scriptfile, line,
+        print(line, end=" ", file=scriptfile)
     templatefile.close()
     scriptfile.close()
 
diff --git a/pyfermod/stats/stats_cdf.py b/pyfermod/stats/stats_cdf.py
index ae4d60c..58bdba5 100644
--- a/pyfermod/stats/stats_cdf.py
+++ b/pyfermod/stats/stats_cdf.py
@@ -2,6 +2,9 @@
 Returns the array of cumulative distribution function values
 for a probability distribution and set of abscissa values.
 """
+
+from __future__ import print_function
+
 import numpy
 import scipy.stats
 import pyferret
@@ -68,7 +71,7 @@ if __name__ == "__main__":
     resbdf = numpy.array([-2.0], dtype=numpy.float64)
     abscissa = numpy.empty((1, dimen, 1, 1, 1, 1), dtype=numpy.float64, order='F')
     expected = numpy.empty((1, dimen, 1, 1, 1, 1), dtype=numpy.float64, order='F')
-    for j in xrange(dimen):
+    for j in range(dimen):
         if (j % 7) == 3:
             abscissa[0, j, 0, 0, 0, 0] = inpbdfs[0]
             expected[0, j, 0, 0, 0, 0] = resbdf[0]
@@ -78,10 +81,10 @@ if __name__ == "__main__":
     result = -888.0 * numpy.ones((1, dimen, 1, 1, 1, 1), dtype=numpy.float64, order='F')
     ferret_compute(0, result, resbdf, (abscissa, pfname, pfparams), inpbdfs)
     if not numpy.allclose(result, expected):
-        print "Expected (flattened) = %s" % str(expected.reshape(-1))
-        print "Result (flattened) = %s" % str(result.reshape(-1))
+        print("Expected (flattened) = %s" % str(expected.reshape(-1)))
+        print("Result (flattened) = %s" % str(result.reshape(-1)))
         raise ValueError("Unexpected result")
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_chisquare.py b/pyfermod/stats/stats_chisquare.py
index 11737d5..837c938 100644
--- a/pyfermod/stats/stats_chisquare.py
+++ b/pyfermod/stats/stats_chisquare.py
@@ -3,6 +3,9 @@ Performs a chi-square test that a sample with the observed
 counts of categorical data comes from a population with the
 given expected counts or relative frequencies of that data.
 """
+
+from __future__ import print_function
+
 import numpy
 import pyferret
 import scipy.stats
@@ -109,12 +112,12 @@ if __name__ == "__main__":
         histgr = numpy.array(histgr, dtype=numpy.float64)
         exphist = numpy.ones((nbins,), dtype=numpy.float64) * histgr.mean()
         chival = ((histgr - exphist)**2 / exphist).sum()
-        print "created a sample with chival = %f" % chival
+        print("created a sample with chival = %f" % chival)
     prob = scipy.stats.chi2(nbins - 1 - ddof).sf(chival)
     expect = numpy.array([chival, prob, nbins], dtype=numpy.float64)
-    print "sample histogram = \n%s" % str(histgr)
-    print "expect histogram value for all bins = %f" % exphist[0]
-    print "expect result = %s" % str(expect)
+    print("sample histogram = \n%s" % str(histgr))
+    print("expect histogram value for all bins = %f" % exphist[0])
+    print("expect result = %s" % str(expect))
 
     # setup for the call to ferret_compute - one non-singular axis
     inpbdfs = numpy.array([-9999.0, -8888.0, -7777.0], dtype=numpy.float64)
@@ -128,7 +131,7 @@ if __name__ == "__main__":
     # call ferret_compute and check the result
     ferret_compute(0, result, resbdf, (samhist, pophist, ddofarr), inpbdfs)
     result = result.reshape(-1)
-    print " found result = %s" % str(result)
+    print(" found result = %s" % str(result))
     if not numpy.allclose(result, expect):
         raise ValueError("Unexpected result")
 
@@ -145,10 +148,10 @@ if __name__ == "__main__":
     # call ferret_compute and check the result
     ferret_compute(0, result, resbdf, (samhist, pophist, ddofarr), inpbdfs)
     result = result.reshape(-1)
-    print " found result = %s" % str(result)
+    print(" found result = %s" % str(result))
     if not numpy.allclose(result, expect):
         raise ValueError("Unexpected result")
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_fit.py b/pyfermod/stats/stats_fit.py
index a55fb6a..bfbc393 100644
--- a/pyfermod/stats/stats_fit.py
+++ b/pyfermod/stats/stats_fit.py
@@ -2,6 +2,9 @@
 Returns parameter values for a specified probability distribution type
 that best describe the distribution of a given array of values.
 """
+
+from __future__ import print_function
+
 import math
 import numpy
 import pyferret
@@ -59,7 +62,7 @@ def ferret_compute(id, result, resbdf, inputs, inpbdfs):
     fitparams = pyferret.stats.getfitparams(values, distribname, estparams)
     result[:] = resbdf
     if fitparams != None:
-        for k in xrange(len(fitparams)):
+        for k in range(len(fitparams)):
             result[k] = fitparams[k]
 
 #
@@ -83,8 +86,8 @@ if __name__ == "__main__":
     resbdf = numpy.array([-6666.0], dtype=numpy.float64)
     values = numpy.empty((1, ydimen, zdimen, 1, 1, 1), dtype=numpy.float64, order='F')
     index = 0
-    for j in xrange(ydimen):
-        for k in xrange(zdimen):
+    for j in range(ydimen):
+        for k in range(zdimen):
             if (index % 103) == 13:
                 values[0, j, k, 0, 0, 0] = inpbdfs[0]
             else:
@@ -101,5 +104,5 @@ if __name__ == "__main__":
         raise ValueError("Norm fit fail; expected params: %s; found %s" % (str(expected), str(result)))
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_helper.py b/pyfermod/stats/stats_helper.py
index c902c23..ed3f157 100644
--- a/pyfermod/stats/stats_helper.py
+++ b/pyfermod/stats/stats_helper.py
@@ -2,6 +2,9 @@
 Returns an array of strings describing
 the parameters for a probability distribution.
 """
+
+from __future__ import print_function
+
 import numpy
 import pyferret
 import pyferret.stats
@@ -56,15 +59,15 @@ def ferret_compute(id, result, resbdf, inputs, inpbdfs):
         distname = pyferret.stats.getdistname(distribname)
         paramlist = pyferret.stats.getdistparams(distname, None)
         result[0] = "Parameters of probability distribution %s" % distribname
-        for k in xrange(len(paramlist)):
+        for k in range(len(paramlist)):
             result[k+1] = "(%d) %s: %s" % (k+1, paramlist[k][0], paramlist[k][1])
-        for k in xrange(len(paramlist)+1, max_num_string_pairs):
+        for k in range(len(paramlist)+1, max_num_string_pairs):
             result[k] = ""
     else:
         # list the all the distributions with parameter list arguments
         distnamelist = pyferret.stats.getdistname(None)
         result[0] = "Supported probability distributions"
-        for k in xrange(len(distnamelist)):
+        for k in range(len(distnamelist)):
             # create the parameter argument string
             paramlist = pyferret.stats.getdistparams(distnamelist[k][0], None)
             numparams = len(paramlist)
@@ -95,7 +98,7 @@ def ferret_compute(id, result, resbdf, inputs, inpbdfs):
                      distnamelist[k][2], distnamelist[k][3], paramstr)
             else:
                 raise ValueError("Unexpected number of names: %s" % numnames)
-        for k in xrange(len(distnamelist)+1, max_num_string_pairs):
+        for k in range(len(distnamelist)+1, max_num_string_pairs):
             result[k] = ""
 
 
@@ -111,27 +114,27 @@ def print_help():
     distrib_array = numpy.empty((max_strings,), \
                                 dtype=numpy.dtype(stype), order='F')
     # Some initialization for testing
-    for k in xrange(max_strings):
+    for k in range(max_strings):
         distrib_array[k] = "Unassigned %d" % k
     # Get the list of distributions (string of spaces for testing)
     pfname = "    "
     ferret_compute(0, distrib_array, None, ( pfname, ), None)
     # Print all the distribution short and long names, and the empty line at the end
-    for j in xrange(max_strings):
-        print distrib_array[j]
+    for j in range(max_strings):
+        print(distrib_array[j])
     # Now go through all the distributions
     params_array = numpy.empty((max_strings,), \
                                dtype=numpy.dtype('S128'), order='F')
     # Skip intro line, and empty line at end
-    for j in xrange(1, max_strings-1):
+    for j in range(1, max_strings-1):
         # Some initialization for testing
-        for k in xrange(max_strings):
+        for k in range(max_strings):
             params_array[k] = "Unassigned %d" % k
         # Use the distribution long name (second word, remove the param list)
         pfname = distrib_array[j].split()[1].split('(')[0]
         ferret_compute(0, params_array, None, ( pfname, ), None)
-        for k in xrange(max_strings):
-            print params_array[k]
+        for k in range(max_strings):
+            print(params_array[k])
             # Stop after printing an empty line
             if not params_array[k]:
                 break;
diff --git a/pyfermod/stats/stats_histogram.py b/pyfermod/stats/stats_histogram.py
index 703781f..a0fdbca 100644
--- a/pyfermod/stats/stats_histogram.py
+++ b/pyfermod/stats/stats_histogram.py
@@ -1,6 +1,9 @@
 """
 Returns histogram bin counts for a given array of values.
 """
+
+from __future__ import print_function
+
 import numpy
 import pyferret
 
@@ -48,7 +51,7 @@ def ferret_compute(id, result, resbdf, inputs, inpbdfs):
                raise ValueError("BINS_TEMPLATE has more than one defined non-singular axis")
             limits_tuple = this_tuple
             axis_used = axis_num
-    if limits_tuple == None:
+    if limits_tuple is None:
         raise ValueError("BINS_TEMPLATE does not have a defined non-singular axis")
     # get the histogram bin limits from the axis box limits
     if not numpy.allclose(limits_tuple[0][1:], limits_tuple[1][:-1]):
@@ -111,5 +114,5 @@ if __name__ == "__main__":
     # verify the results
     if not numpy.allclose(result, expected):
         raise ValueError("Unexpected results; expected:\n%s\nfound:\n%s" % (str(expected), str(result)))
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_isf.py b/pyfermod/stats/stats_isf.py
index 9845828..4cab162 100644
--- a/pyfermod/stats/stats_isf.py
+++ b/pyfermod/stats/stats_isf.py
@@ -2,6 +2,9 @@
 Returns the array of inverse survival function values for
 a probability distribution and set of quantile values.
 """
+
+from __future__ import print_function
+
 import numpy
 import scipy.stats
 import pyferret
@@ -67,7 +70,7 @@ if __name__ == "__main__":
     resbdf = numpy.array([-2.0], dtype=numpy.float64)
     quantile = numpy.empty((1, dimen, 1, 1, 1, 1), dtype=numpy.float64, order='F')
     expected = numpy.empty((1, dimen, 1, 1, 1, 1), dtype=numpy.float64, order='F')
-    for j in xrange(dimen):
+    for j in range(dimen):
         if (j % 7) == 3:
             quantile[0, j, 0, 0, 0, 0] = inpbdfs[0]
             expected[0, j, 0, 0, 0, 0] = resbdf[0]
@@ -77,10 +80,10 @@ if __name__ == "__main__":
     result = -888.0 * numpy.ones((1, dimen, 1, 1, 1, 1), dtype=numpy.float64, order='F')
     ferret_compute(0, result, resbdf, (quantile, pfname, pfparams), inpbdfs)
     if not numpy.allclose(result, expected):
-        print "Expected (flattened) = %s" % str(expected.reshape(-1))
-        print "Result (flattened) = %s" % str(result.reshape(-1))
+        print("Expected (flattened) = %s" % str(expected.reshape(-1)))
+        print("Result (flattened) = %s" % str(result.reshape(-1)))
         raise ValueError("Unexpected result")
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_kstest1.py b/pyfermod/stats/stats_kstest1.py
index c4022de..1a393c5 100644
--- a/pyfermod/stats/stats_kstest1.py
+++ b/pyfermod/stats/stats_kstest1.py
@@ -2,6 +2,9 @@
 Performs a two-sided Kolmogorov-Smirnov test that the provided
 sample comes from the given probability distribution function.
 """
+
+from __future__ import print_function
+
 import numpy
 import pyferret
 import pyferret.stats
@@ -49,16 +52,16 @@ def ferret_compute(id, result, resbdf, inputs, inpbdfs):
     Undefined data given in inputs[0] are removed before performing the test.
     """
     # get the scipy.stats distribution name from the given distribution name
-    if inputs[1] == None:
+    if inputs[1] is None:
         raise ValueError("The name of a probability distribution function not given")
     distscipyname = pyferret.stats.getdistname(inputs[1])
-    if distscipyname == None:
+    if distscipyname is None:
         raise ValueError("Unknown or unsupported probability distribution function %s" % inputs[1])
     # get the scipy.stats distribution parameters from the given "standard" parameters
-    if inputs[2] == None:
+    if inputs[2] is None:
         raise ValueError("Paramaters for the probability distribution function not given")
     distscipyparams = pyferret.stats.getdistparams(distscipyname, inputs[2].reshape(-1))
-    if distscipyparams == None:
+    if distscipyparams is None:
         raise ValueError("Unknown or unsupported (for params) probability distribution function %s" % inputs[1])
     # get the valid sample values
     badmask = ( numpy.fabs(inputs[0] - inpbdfs[0]) < 1.0E-5 )
@@ -102,8 +105,8 @@ if __name__ == "__main__":
     sampc = numpy.empty((1, ydim, zdim, 1, 1, 1), dtype=numpy.float64, order='F')
     sampu = numpy.empty((1, ydim, zdim, 1, 1, 1), dtype=numpy.float64, order='F')
     index = 0
-    for j in xrange(ydim):
-        for k in xrange(zdim):
+    for j in range(ydim):
+        for k in range(zdim):
             if (index % 71) == 3:
                 sampc[0, j, k, 0, 0, 0] = inpbdfs[0]
                 sampu[0, j, k, 0, 0, 0] = inpbdfs[0]
@@ -117,7 +120,7 @@ if __name__ == "__main__":
     # call ferret_compute with data from the distribution and check the results
     ferret_compute(0, resultc, resbdf, (sampc, distname, distparams), inpbdfs)
     resultc = resultc.reshape(-1)
-    print "from same dist result: %s" % str(resultc)
+    print("from same dist result: %s" % str(resultc))
     if (resultc[0] < 0.00) or (resultc[0] > 0.01) or \
        (resultc[1] < 0.10) or (resultc[1] > 1.00):
         raise ValueError("Unexpected result")
@@ -125,11 +128,11 @@ if __name__ == "__main__":
     # call ferret_compute with data from a different distribution and check the results
     ferret_compute(0, resultu, resbdf, (sampu, distname, distparams), inpbdfs)
     resultu = resultu.reshape(-1)
-    print "from diff dist result:  %s" % str(resultu)
+    print("from diff dist result:  %s" % str(resultu))
     if (resultu[0] < 0.99) or (resultu[0] > 1.00) or \
        (resultu[1] < 0.00) or (resultu[1] > 0.01):
         raise ValueError("Unexpected result")
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_kstest2.py b/pyfermod/stats/stats_kstest2.py
index 103ae95..8487f03 100644
--- a/pyfermod/stats/stats_kstest2.py
+++ b/pyfermod/stats/stats_kstest2.py
@@ -2,6 +2,9 @@
 Performs a two-sided Kolmogorov-Smirnov test that two samples
 come from the same continuous probability distribution.
 """
+
+from __future__ import print_function
+
 import numpy
 import pyferret
 import scipy.stats
@@ -88,8 +91,8 @@ if __name__ == "__main__":
     arrayb = numpy.empty((ydim, 1, 1, zdim, 1, 1), dtype=numpy.float64, order='F')
     arrayu = numpy.empty((ydim, 1, 1, zdim, 1, 1), dtype=numpy.float64, order='F')
     index = 0
-    for j in xrange(ydim):
-        for k in xrange(zdim):
+    for j in range(ydim):
+        for k in range(zdim):
             if (index % 23) == 3:
                 arraya[0, j, k, 0, 0, 0] = inpbdfs[0]
             else:
@@ -107,7 +110,7 @@ if __name__ == "__main__":
     # call ferret_compute with the samples from the same distribution and check the results
     ferret_compute(0, resultb, resbdf, (arraya, arrayb), inpbdfs)
     resultb = resultb.reshape(-1)
-    print "from same dist result: %s" % str(resultb)
+    print("from same dist result: %s" % str(resultb))
     if (resultb[0] < 0.00) or (resultb[0] > 0.01) or \
        (resultb[1] < 0.10) or (resultb[1] > 1.00):
         raise ValueError("Unexpected result")
@@ -115,11 +118,11 @@ if __name__ == "__main__":
     # call ferret_compute with data from different distributions and check the results
     ferret_compute(0, resultu, resbdf, (sampa, sampu), inpbdfs)
     resultu = resultu.reshape(-1)
-    print "from diff dist result: %s" % str(resultu)
+    print("from diff dist result: %s" % str(resultu))
     if (resultu[0] < 0.98) or (resultu[0] > 1.00) or \
        (resultu[1] < 0.00) or (resultu[1] > 0.01):
         raise ValueError("Unexpected result")
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_linregress.py b/pyfermod/stats/stats_linregress.py
index 9677919..e0c3140 100644
--- a/pyfermod/stats/stats_linregress.py
+++ b/pyfermod/stats/stats_linregress.py
@@ -2,6 +2,9 @@
 Returns parameters resulting from a linear regression of one set
 of given data against another set of given data.
 """
+
+from __future__ import print_function
+
 import math
 import numpy
 import pyferret
@@ -111,7 +114,7 @@ if __name__ == "__main__":
     goodvals = numpy.empty((1000,), dtype=bool)
     index = 0
     numgood = 0
-    for j in xrange(1000):
+    for j in range(1000):
         if (index % 53) == 13:
             abscissa[0, j, 0, 0, 0, 0] = inpbdfs[0]
         else:
@@ -149,5 +152,5 @@ if __name__ == "__main__":
                          (str(expected), str(result)))
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_norm_pdf.py b/pyfermod/stats/stats_norm_pdf.py
index d7de63f..8a66698 100644
--- a/pyfermod/stats/stats_norm_pdf.py
+++ b/pyfermod/stats/stats_norm_pdf.py
@@ -4,6 +4,9 @@ for the Normal probability distribution
 using the given arrays for the abscissa or template
 values and each of the parameters values.
 """
+
+from __future__ import print_function
+
 import numpy
 import pyferret
 import pyferret.stats
@@ -44,8 +47,8 @@ if __name__ == "__main__":
     mus = numpy.linspace(20.0, 45.0, xdim)
     sigmas = numpy.linspace(8.0, 14.0, tdim)
     pdfs = numpy.empty((xdim, ydim, zdim, tdim, 1, 1), dtype=numpy.float64, order='F')
-    for i in xrange(xdim):
-        for q in xrange(tdim):
+    for i in range(xdim):
+        for q in range(tdim):
             distf = scipy.stats.norm(mus[i], sigmas[q])
             values = distf.pdf(yzvals)
             pdfs[i, :, :, q, 0, 0] = values.reshape((ydim, zdim), order='F')
@@ -57,8 +60,8 @@ if __name__ == "__main__":
     resbdf = numpy.array([-6666.0], dtype=numpy.float64)
     # Throw in some undefined values
     index = 0
-    for k in xrange(zdim):
-        for j in xrange(ydim):
+    for k in range(zdim):
+        for j in range(ydim):
             if (index % 13) == 3:
                 abscissa[0, j, k, 0, 0, 0] = inpbdfs[0]
                 pdfs[:, j, k, :, 0, 0] = resbdf[0]
@@ -70,10 +73,10 @@ if __name__ == "__main__":
     result = -5555.0 * numpy.ones((xdim, ydim, zdim, tdim, 1, 1), dtype=numpy.float64, order='F')
     ferret_compute(0, result, resbdf, (yzvals, mus, sigmas), inpbdfs)
     if not numpy.allclose(result, pdfs):
-        print "Expect (flattened) =\n%s" % str(pdfs.reshape(-1))
-        print "Result (flattened) =\n%s" % str(result.reshape(-1))
+        print("Expect (flattened) =\n%s" % str(pdfs.reshape(-1)))
+        print("Result (flattened) =\n%s" % str(result.reshape(-1)))
         raise ValueError("Unexpected result")
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_pdf.py b/pyfermod/stats/stats_pdf.py
index 710cfa3..bff1bc1 100644
--- a/pyfermod/stats/stats_pdf.py
+++ b/pyfermod/stats/stats_pdf.py
@@ -2,6 +2,9 @@
 Returns the array of probability density function values for a
 continuous probability distribution and set of abscissa values.
 """
+
+from __future__ import print_function
+
 import numpy
 import scipy.stats
 import pyferret
@@ -68,7 +71,7 @@ if __name__ == "__main__":
     resbdf = numpy.array([-2.0], dtype=numpy.float64)
     abscissa = numpy.empty((1, dimen, 1, 1, 1, 1), dtype=numpy.float64, order='F')
     expected = numpy.empty((1, dimen, 1, 1, 1, 1), dtype=numpy.float64, order='F')
-    for j in xrange(dimen):
+    for j in range(dimen):
         if (j % 7) == 3:
             abscissa[0, j, 0, 0, 0, 0] = inpbdfs[0]
             expected[0, j, 0, 0, 0, 0] = resbdf[0]
@@ -78,10 +81,10 @@ if __name__ == "__main__":
     result = -888.0 * numpy.ones((1, dimen, 1, 1, 1, 1), dtype=numpy.float64, order='F')
     ferret_compute(0, result, resbdf, (abscissa, pfname, pfparams), inpbdfs)
     if not numpy.allclose(result, expected):
-        print "Expected (flattened) = %s" % str(expected.reshape(-1))
-        print "Result (flattened) = %s" % str(result.reshape(-1))
+        print("Expected (flattened) = %s" % str(expected.reshape(-1)))
+        print("Result (flattened) = %s" % str(result.reshape(-1)))
         raise ValueError("Unexpected result")
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_pearsonr.py b/pyfermod/stats/stats_pearsonr.py
index 75e17b3..8dc979d 100644
--- a/pyfermod/stats/stats_pearsonr.py
+++ b/pyfermod/stats/stats_pearsonr.py
@@ -2,6 +2,9 @@
 Returns the Pearson product-moment correlation
 coefficient between two samples of data.
 """
+
+from __future__ import print_function
+
 import math
 import numpy
 import pyferret
@@ -103,8 +106,8 @@ if __name__ == "__main__":
     inputu = numpy.empty((1, ydim, zdim, 1, 1, 1), dtype=numpy.float64, order='F')
     index = 0
     numgood = 0
-    for j in xrange(ydim):
-        for k in xrange(zdim):
+    for j in range(ydim):
+        for k in range(zdim):
             if (index % 23) == 3:
                 inputa[0, j, k, 0, 0, 0] = inpbdfs[0]
             else:
@@ -141,5 +144,5 @@ if __name__ == "__main__":
                          (str(expectu.reshape(-1)), str(resultu.reshape(-1))))
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_percentilesofscores.py b/pyfermod/stats/stats_percentilesofscores.py
index 8a36286..f367d86 100644
--- a/pyfermod/stats/stats_percentilesofscores.py
+++ b/pyfermod/stats/stats_percentilesofscores.py
@@ -1,6 +1,9 @@
 """
 Returns interpolated percentiles through a sample of scores (values)
 """
+
+from __future__ import print_function
+
 import numpy
 import pyferret
 import scipy.stats
@@ -73,8 +76,8 @@ if __name__ == "__main__":
     # valid sample values are [1:100:1] + offset
     pval = 1
     index = 0
-    for j in xrange(ydim):
-        for k in xrange(zdim):
+    for j in range(ydim):
+        for k in range(zdim):
             if ((index % 7) == 3) or (pval > 100):
                 sample[0, j, k, 0, 0, 0] = inpbdfs[0]
             else:
@@ -93,10 +96,10 @@ if __name__ == "__main__":
     result = -888.0 * numpy.ones((1, 1, zdim, 1, 1, 1), dtype=numpy.float64, order='F')
     ferret_compute(0, result, resbdf, (sample, scores), inpbdfs)
     if not numpy.allclose(result, expected):
-        print "Expected (flattened) = %s" % str(expected.reshape(-1))
-        print "Result (flattened) = %s" % str(result.reshape(-1))
+        print("Expected (flattened) = %s" % str(expected.reshape(-1)))
+        print("Result (flattened) = %s" % str(result.reshape(-1)))
         raise ValueError("Unexpected result")
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_pmf.py b/pyfermod/stats/stats_pmf.py
index 4bc133d..a4749f2 100644
--- a/pyfermod/stats/stats_pmf.py
+++ b/pyfermod/stats/stats_pmf.py
@@ -2,6 +2,9 @@
 Returns the array of probability density function values for a
 discrete probability distribution and set of abscissa values.
 """
+
+from __future__ import print_function
+
 import numpy
 import scipy.stats
 import pyferret
@@ -67,7 +70,7 @@ if __name__ == "__main__":
     resbdf = numpy.array([-2.0], dtype=numpy.float64)
     abscissa = numpy.empty((1, dimen, 1, 1, 1, 1), dtype=numpy.float64, order='F')
     expected = numpy.empty((1, dimen, 1, 1, 1, 1), dtype=numpy.float64, order='F')
-    for j in xrange(dimen):
+    for j in range(dimen):
         if (j % 7) == 2:
             abscissa[0, j, 0, 0, 0, 0] = inpbdfs[0]
             expected[0, j, 0, 0, 0, 0] = resbdf[0]
@@ -77,10 +80,10 @@ if __name__ == "__main__":
     result = -888.0 * numpy.ones((1, dimen, 1, 1, 1, 1), dtype=numpy.float64, order='F')
     ferret_compute(0, result, resbdf, (abscissa, pfname, pfparams), inpbdfs)
     if not numpy.allclose(result, expected):
-        print "Result (flattened) = %s" % str(result.reshape(-1))
-        print "Expected (flattened) = %s" % str(expected.reshape(-1))
+        print("Result (flattened) = %s" % str(result.reshape(-1)))
+        print("Expected (flattened) = %s" % str(expected.reshape(-1)))
         raise ValueError("Unexpected result")
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_ppf.py b/pyfermod/stats/stats_ppf.py
index 92faea7..8d3277a 100644
--- a/pyfermod/stats/stats_ppf.py
+++ b/pyfermod/stats/stats_ppf.py
@@ -2,6 +2,9 @@
 Returns the array of percent point function values for
 a probability distribution and set of quantile values.
 """
+
+from __future__ import print_function
+
 import numpy
 import scipy.stats
 import pyferret
@@ -67,7 +70,7 @@ if __name__ == "__main__":
     resbdf = numpy.array([-2.0], dtype=numpy.float64)
     quantile = numpy.empty((1, dimen, 1, 1, 1, 1), dtype=numpy.float64, order='F')
     expected = numpy.empty((1, dimen, 1, 1, 1, 1), dtype=numpy.float64, order='F')
-    for j in xrange(dimen):
+    for j in range(dimen):
         if (j % 7) == 2:
             quantile[0, j, 0, 0, 0, 0] = inpbdfs[0]
             expected[0, j, 0, 0, 0, 0] = resbdf[0]
@@ -77,10 +80,10 @@ if __name__ == "__main__":
     result = -888.0 * numpy.ones((1, dimen, 1, 1, 1, 1), dtype=numpy.float64, order='F')
     ferret_compute(0, result, resbdf, (quantile, pfname, pfparams), inpbdfs)
     if not numpy.allclose(result, expected):
-        print "Expected (flattened) = %s" % str(expected.reshape(-1))
-        print "Result (flattened) = %s" % str(result.reshape(-1))
+        print("Expected (flattened) = %s" % str(expected.reshape(-1)))
+        print("Result (flattened) = %s" % str(result.reshape(-1)))
         raise ValueError("Unexpected result")
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_probplotvals.py b/pyfermod/stats/stats_probplotvals.py
index 8882212..b8b51fb 100644
--- a/pyfermod/stats/stats_probplotvals.py
+++ b/pyfermod/stats/stats_probplotvals.py
@@ -13,6 +13,9 @@ distribution.  Thus, the slope, intercept, and correlation coefficient
 (r) of this fitted line are returned and the first three X elements
 of the third Y axis value.
 """
+
+from __future__ import print_function
+
 import numpy
 import scipy.stats
 import pyferret
@@ -74,11 +77,11 @@ def ferret_compute(id, result, resbdf, inputs, inpbdfs):
     """
     distribname = inputs[1]
     distname = pyferret.stats.getdistname(distribname)
-    if distname == None:
+    if distname is None:
         raise ValueError("Unknown probability function %s" % distribname)
     distribparams = inputs[2].reshape(-1)
     distparams = pyferret.stats.getdistparams(distname, distribparams)
-    if distparams == None:
+    if distparams is None:
         raise ValueError("Unknown (for params) probability function %s" % distribname)
 
     sample = inputs[0].reshape(-1)
@@ -125,8 +128,8 @@ if __name__ == "__main__":
     expected = numpy.empty(((ydim + 1) * (zdim + 1), 3, 1, 1, 1, 1), dtype=numpy.float64, order='F')
     n = 0
     index = 0
-    for j in xrange(ydim + 1):
-        for k in xrange(zdim + 1):
+    for j in range(ydim + 1):
+        for k in range(zdim + 1):
             if (k == j) or (k == j+1) or (n >= size):
                 inputarr[0, j, k, 0, 0, 0] = inpbdfs[0]
                 expected[index, 0, 0, 0, 0, 0] = resbdf[0]
@@ -148,15 +151,15 @@ if __name__ == "__main__":
     ferret_compute(0, result, resbdf, (inputarr, pfname, pfparams), inpbdfs)
     if not numpy.allclose(result, expected):
         if not numpy.allclose(result[:,0,0,0,0,0], expected[:,0,0,0,0,0]):
-            print "Expected[:,0,0,0,0,0] =\n%s" % str(expected[:,0,0,0,0,0])
-            print "Result[:,0,0,0,0,0] =\n%s" % str(result[:,0,0,0,0,0])
+            print("Expected[:,0,0,0,0,0] =\n%s" % str(expected[:,0,0,0,0,0]))
+            print("Result[:,0,0,0,0,0] =\n%s" % str(result[:,0,0,0,0,0]))
         if not numpy.allclose(result[:,1,0,0,0,0], expected[:,1,0,0,0,0]):
-            print "Expected[:,1,0,0,0,0] =\n%s" % str(expected[:,1,0,0,0,0])
-            print "Result[:,1,0,0,0,0] =\n%s" % str(result[:,1,0,0,0,0])
+            print("Expected[:,1,0,0,0,0] =\n%s" % str(expected[:,1,0,0,0,0]))
+            print("Result[:,1,0,0,0,0] =\n%s" % str(result[:,1,0,0,0,0]))
         if not numpy.allclose(result[:3,2,0,0,0,0], expected[:3,2,0,0,0,0]):
-            print "Expected[:3,2,0,0,0,0] =\n%s" % str(expected[:3,2,0,0,0,0])
-            print "Result[:3,2,0,0,0,0] =\n%s" % str(result[:3,2,0,0,0,0])
+            print("Expected[:3,2,0,0,0,0] =\n%s" % str(expected[:3,2,0,0,0,0]))
+            print("Result[:3,2,0,0,0,0] =\n%s" % str(result[:3,2,0,0,0,0]))
         raise ValueError("Unexpected result")
 
     # All successful
-    print "Success"
+    print("Success")
diff --git a/pyfermod/stats/stats_rvs.py b/pyfermod/stats/stats_rvs.py
index 64462f2..b7f8329 100644
--- a/pyfermod/stats/stats_rvs.py
+++ b/pyfermod/stats/stats_rvs.py
@@ -2,6 +2,9 @@
 Returns the array of random variates for a probability distribution
 assigned to positions corresponding to defined values in an input array.
 """
+
+from __future__ import print_function
+
 import numpy
 import scipy.stats
 import pyferret
@@ -73,10 +76,10 @@ if __name__ == "__main__":
     template = numpy.zeros((xdim, ydim, zdim, tdim, 1, 1), dtype=numpy.float64, order='F')
     expectedgood = numpy.empty((xdim, ydim, zdim, tdim, 1, 1), dtype=bool, order='F')
     index = 0
-    for i in xrange(xdim):
-        for j in xrange(ydim):
-            for k in xrange(zdim):
-                for l in xrange(tdim):
+    for i in range(xdim):
+        for j in range(ydim):
+            for k in range(zdim):
+                for l in range(tdim):
                     if (index % 53) == 1:
                         template[i, j, k, l, 0, 0] = inpbdfs[0]
                         expectedgood[i, j, k, l, 0, 0] = False
@@ -96,5 +99,5 @@ if __name__ == "__main__":
         raise ValueError("Standard deviation of random sample: expected: 0.5; found: %f" % stdev)
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_scoresatpercentiles.py b/pyfermod/stats/stats_scoresatpercentiles.py
index 6db011a..00a6f66 100644
--- a/pyfermod/stats/stats_scoresatpercentiles.py
+++ b/pyfermod/stats/stats_scoresatpercentiles.py
@@ -1,6 +1,9 @@
 """
 Returns interpolated scores (values) at percentiles through a sample
 """
+
+from __future__ import print_function
+
 import numpy
 import pyferret
 import scipy.stats
@@ -72,8 +75,8 @@ if __name__ == "__main__":
     # valid sample values are [0:100:1] + offset
     pval = 0
     index = 0
-    for j in xrange(ydim):
-        for k in xrange(zdim):
+    for j in range(ydim):
+        for k in range(zdim):
             if ((index % 7) == 3) or (pval > 100):
                 sample[0, j, k, 0, 0, 0] = inpbdfs[0]
             else:
@@ -92,10 +95,10 @@ if __name__ == "__main__":
     result = -888.0 * numpy.ones((1, 1, zdim, 1, 1, 1), dtype=numpy.float64, order='F')
     ferret_compute(0, result, resbdf, (sample, prcnts), inpbdfs)
     if not numpy.allclose(result, expected):
-        print "Expected (flattened) = %s" % str(expected.reshape(-1))
-        print "Result (flattened) = %s" % str(result.reshape(-1))
+        print("Expected (flattened) = %s" % str(expected.reshape(-1)))
+        print("Result (flattened) = %s" % str(result.reshape(-1)))
         raise ValueError("Unexpected result")
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_sf.py b/pyfermod/stats/stats_sf.py
index e8248b1..24aae3b 100644
--- a/pyfermod/stats/stats_sf.py
+++ b/pyfermod/stats/stats_sf.py
@@ -2,6 +2,9 @@
 Returns the array of survival function values for a
 probability distribution and set of abscissa values.
 """
+
+from __future__ import print_function
+
 import numpy
 import scipy.stats
 import pyferret
@@ -67,7 +70,7 @@ if __name__ == "__main__":
     resbdf = numpy.array([-2.0], dtype=numpy.float64)
     abscissa = numpy.empty((1, dimen, 1, 1, 1, 1), dtype=numpy.float64, order='F')
     expected = numpy.empty((1, dimen, 1, 1, 1, 1), dtype=numpy.float64, order='F')
-    for j in xrange(dimen):
+    for j in range(dimen):
         if (j % 7) == 3:
             abscissa[0, j, 0, 0, 0, 0] = inpbdfs[0]
             expected[0, j, 0, 0, 0, 0] = resbdf[0]
@@ -77,10 +80,10 @@ if __name__ == "__main__":
     result = -888.0 * numpy.ones((1, dimen, 1, 1, 1, 1), dtype=numpy.float64, order='F')
     ferret_compute(0, result, resbdf, (abscissa, pfname, pfparams), inpbdfs)
     if not numpy.allclose(result, expected):
-        print "Expected (flattened) = %s" % str(expected.reshape(-1))
-        print "Result (flattened) = %s" % str(result.reshape(-1))
+        print("Expected (flattened) = %s" % str(expected.reshape(-1)))
+        print("Result (flattened) = %s" % str(result.reshape(-1)))
         raise ValueError("Unexpected result")
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_spearmanr.py b/pyfermod/stats/stats_spearmanr.py
index 8a9df06..a7f479d 100644
--- a/pyfermod/stats/stats_spearmanr.py
+++ b/pyfermod/stats/stats_spearmanr.py
@@ -1,6 +1,9 @@
 """
 Returns Spearman's rank correlation coefficient between two samples of data.
 """
+
+from __future__ import print_function
+
 import math
 import numpy
 import pyferret
@@ -99,8 +102,8 @@ if __name__ == "__main__":
     index = 0
     numgood = 0
     numpos = 0
-    for j in xrange(ydim):
-        for k in xrange(zdim):
+    for j in range(ydim):
+        for k in range(zdim):
             if (index % 23) == 3:
                 inputa[0, j, k, 0, 0, 0] = inpbdfs[0]
             else:
@@ -139,5 +142,5 @@ if __name__ == "__main__":
                          (str(expectu.reshape(-1)), str(resultu.reshape(-1))))
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_stats.py b/pyfermod/stats/stats_stats.py
index e11e01a..79717fc 100644
--- a/pyfermod/stats/stats_stats.py
+++ b/pyfermod/stats/stats_stats.py
@@ -2,6 +2,9 @@
 Returns the (unweighted) mean, variance, skew, and kurtoses
 of an array of values
 """
+
+from __future__ import print_function
+
 import math
 import numpy
 import pyferret
@@ -82,8 +85,8 @@ if __name__ == "__main__":
     input = numpy.empty((1, ydim, zdim, 1, 1, 1), dtype=numpy.float64, order='F')
     sindex = 0
     iindex = 0
-    for j in xrange(ydim):
-        for k in xrange(zdim):
+    for j in range(ydim):
+        for k in range(zdim):
             if ((iindex % 13) == 3) or (sindex >= samplesize):
                 input[0, j, k, 0, 0, 0] = inpbdfs[0]
             else:
@@ -102,5 +105,5 @@ if __name__ == "__main__":
                          (str(expected), str(result)))
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_ttest1.py b/pyfermod/stats/stats_ttest1.py
index b1f0a2e..fbd1667 100644
--- a/pyfermod/stats/stats_ttest1.py
+++ b/pyfermod/stats/stats_ttest1.py
@@ -2,6 +2,9 @@
 Performs a two-sided T-test that the provided sample
 comes from a population with the given mean(s).
 """
+
+from __future__ import print_function
+
 import numpy
 import pyferret
 import scipy.stats
@@ -97,8 +100,8 @@ if __name__ == "__main__":
     samparr = numpy.empty((1, ydim, zdim, 1, 1, 1), dtype=numpy.float64, order='F')
     trimsamp = [ ]
     index = 0
-    for j in xrange(ydim):
-        for k in xrange(zdim):
+    for j in range(ydim):
+        for k in range(zdim):
             if (index % 71) == 3:
                 samparr[0, j, k, 0, 0, 0] = inpbdfs[0]
             else:
@@ -131,10 +134,10 @@ if __name__ == "__main__":
     # call ferret_compute and check the results
     ferret_compute(0, result, resbdf, (samparr, meanarr), inpbdfs)
     if not numpy.allclose(result, expect):
-        print "expect[:,:,0,0,0,0]:\n   %s" % str(expect[:, :, 0, 0, 0, 0])
-        print "result[:,:,0,0,0,0]:\n   %s" % str(result[:, :, 0, 0, 0, 0])
+        print("expect[:,:,0,0,0,0]:\n   %s" % str(expect[:, :, 0, 0, 0, 0]))
+        print("result[:,:,0,0,0,0]:\n   %s" % str(result[:, :, 0, 0, 0, 0]))
         raise ValueError("Unexpected result")
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_ttest2ind.py b/pyfermod/stats/stats_ttest2ind.py
index 68f486e..8b39cb8 100644
--- a/pyfermod/stats/stats_ttest2ind.py
+++ b/pyfermod/stats/stats_ttest2ind.py
@@ -2,6 +2,9 @@
 Performs a two-sided T-test that two independent samples
 come from (normal) distributions with the same mean.
 """
+
+from __future__ import print_function
+
 import numpy
 import pyferret
 import scipy.stats
@@ -88,16 +91,16 @@ if __name__ == "__main__":
     arrayb = numpy.empty((ydimb, 1, 1, zdimb, 1, 1), dtype=numpy.float64, order='F')
     arrayu = numpy.empty((ydimb, 1, 1, zdimb, 1, 1), dtype=numpy.float64, order='F')
     index = 0
-    for j in xrange(ydima):
-        for k in xrange(zdima):
+    for j in range(ydima):
+        for k in range(zdima):
             if (index % 23) == 3:
                 arraya[0, j, k, 0, 0, 0] = inpbdfs[0]
             else:
                 arraya[0, j, k, 0, 0, 0] = sampa[index]
             index += 1
     index = 0
-    for j in xrange(ydimb):
-        for k in xrange(zdimb):
+    for j in range(ydimb):
+        for k in range(zdimb):
             if (index % 53) == 3:
                 arrayb[j, 0, 0, k, 0, 0] = inpbdfs[1]
                 arrayu[j, 0, 0, k, 0, 0] = inpbdfs[1]
@@ -111,7 +114,7 @@ if __name__ == "__main__":
     # call ferret_compute with the samples from distribs with the same mean and check
     ferret_compute(0, resultb, resbdf, (arraya, arrayb), inpbdfs)
     resultb = resultb.reshape(-1)
-    print "result from same mean: %s" % str(resultb)
+    print("result from same mean: %s" % str(resultb))
     if (abs(resultb[0]) > 2.0) or \
        (resultb[1] <  0.1) or (resultb[1] > 1.0):
         raise ValueError("Unexpected result")
@@ -119,11 +122,11 @@ if __name__ == "__main__":
     # call ferret_compute with the samples from distribs with different means and check
     ferret_compute(0, resultu, resbdf, (arraya, arrayu), inpbdfs)
     resultu = resultu.reshape(-1)
-    print "result from diff mean: %s" % str(resultu)
+    print("result from diff mean: %s" % str(resultu))
     if (resultu[0] > -20.0) or \
        (resultu[1] < 0.0) or (resultu[1] > 1.0E-5):
         raise ValueError("Unexpected result")
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_ttest2rel.py b/pyfermod/stats/stats_ttest2rel.py
index 8fae395..96dabbe 100644
--- a/pyfermod/stats/stats_ttest2rel.py
+++ b/pyfermod/stats/stats_ttest2rel.py
@@ -2,6 +2,9 @@
 Performs a two-sided T-test that two related (paired) samples
 come from (normal) distributions with the same mean.
 """
+
+from __future__ import print_function
+
 import numpy
 import pyferret
 import scipy.stats
@@ -99,7 +102,7 @@ if __name__ == "__main__":
     arrayb = numpy.empty((1, 1, size, 1, 1, 1), dtype=numpy.float64, order='F')
     arrayu = numpy.empty((1, 1, size, 1, 1, 1), dtype=numpy.float64, order='F')
     numgood = 0
-    for j in xrange(size):
+    for j in range(size):
         if (j % 23) == 3:
             arraya[0, j, 0, 0, 0, 0] = inpbdfs[0]
         else:
@@ -118,7 +121,7 @@ if __name__ == "__main__":
     # call ferret_compute with the samples with the same mean and check
     ferret_compute(0, resultb, resbdf, (arraya, arrayb), inpbdfs)
     resultb = resultb.reshape(-1)
-    print "result from same mean:\n   %s" % str(resultb)
+    print("result from same mean:\n   %s" % str(resultb))
     if (abs(resultb[0]) > 2.0) or \
        (resultb[1] < 0.1) or (resultb[1] > 1.0) or \
        (abs(resultb[2] - numgood) > 1.0E-5):
@@ -127,12 +130,12 @@ if __name__ == "__main__":
     # call ferret_compute with samples with different means and check
     ferret_compute(0, resultu, resbdf, (arraya, arrayu), inpbdfs)
     resultu = resultu.reshape(-1)
-    print "result from diff mean:\n   %s" % str(resultu)
+    print("result from diff mean:\n   %s" % str(resultu))
     if (resultu[0] > -2000.0) or \
        (resultu[1] < 0.00) or (resultu[1] > 0.0001) or \
        (abs(resultb[2] - numgood) > 1.0E-5):
         raise ValueError("Unexpected result")
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/pyfermod/stats/stats_zscore.py b/pyfermod/stats/stats_zscore.py
index a324e52..8242a71 100644
--- a/pyfermod/stats/stats_zscore.py
+++ b/pyfermod/stats/stats_zscore.py
@@ -3,6 +3,9 @@ Returns the array of standard scores for an array of data.  The
 standard score are for the standard distribution centered of the
 mean value of the data with the same variance as the data.
 """
+
+from __future__ import print_function
+
 import math
 import numpy
 import pyferret
@@ -65,8 +68,8 @@ if __name__ == "__main__":
     expected = numpy.empty((1, ydim, zdim, 1, 1, 1), dtype=numpy.float64, order='F')
     sindex = 0
     iindex = 0
-    for j in xrange(ydim):
-        for k in xrange(zdim):
+    for j in range(ydim):
+        for k in range(zdim):
             if ((iindex % 13) == 3) or (sindex >= samplesize):
                 input[0, j, k, 0, 0, 0] = inpbdfs[0]
                 expected[0, j, k, 0, 0, 0] = resbdf
@@ -82,10 +85,10 @@ if __name__ == "__main__":
     # call ferret_compute and check the results
     ferret_compute(0, result, resbdf, (input, ), inpbdfs)
     if not numpy.allclose(result, expected, rtol=2.0E-7, atol=2.0E-7):
-        print "expected (flattened) =\n%s" % str(expected.reshape(-1, order='F'))
-        print "result (flattened) =\n%s" % str(result.reshape(-1, order='F'))
+        print("expected (flattened) =\n%s" % str(expected.reshape(-1, order='F')))
+        print("result (flattened) =\n%s" % str(result.reshape(-1, order='F')))
         raise ValueError("Unexpected result")
 
     # All successful
-    print "Success"
+    print("Success")
 
diff --git a/setup.py b/setup.py
index 4ad7525..b784cab 100644
--- a/setup.py
+++ b/setup.py
@@ -19,6 +19,10 @@ incdir_list = [ "pyfermod",
                 os.path.join("fer", "ef_utility"),
                 os.path.join("fer", "grdel"), ]
 
+is_linux_system = os.getenv("IS_LINUX_SYSTEM")
+if is_linux_system:
+    is_linux_system = is_linux_system.strip()
+
 # NETCDF4_LIBDIR must be given, either for the static library or the shared-object library
 netcdf4_libdir = os.getenv("NETCDF4_LIBDIR")
 if netcdf4_libdir:
@@ -27,9 +31,16 @@ if not netcdf4_libdir:
     raise ValueError("Environment variable NETCDF4_LIBDIR is not defined")
 
 # HDF5_LIBDIR is only given if the HDF5 and NetCDF libraries are to be statically linked in
+# COMPRESS_LIB is the compression library used by this HDF5, if it is given
 hdf5_libdir = os.getenv("HDF5_LIBDIR")
 if hdf5_libdir:
     hdf5_libdir = hdf5_libdir.strip()
+    compress_lib = os.getenv("COMPRESS_LIB")
+    if compress_lib:
+        compress_lib = compress_lib.strip()
+    if not compress_lib in ('z', 'sz'):
+        raise ValueError("Environment variable COMPRESS_LIB must be either 'z' or 'sz'")
+    compress_lib = '-l' + compress_lib
 
 # CAIRO_LIBDIR is only given if the cairo library is to be statically linked in
 cairo_libdir = os.getenv("CAIRO_LIBDIR")
@@ -41,7 +52,13 @@ pixman_libdir = os.getenv("PIXMAN_LIBDIR")
 if pixman_libdir:
     pixman_libdir = pixman_libdir.strip()
 
-# The location of libpython2.x.so, in case it is not in a standard location
+# PANGO_LIBDIR gives a non-standard location of the pango libraries and
+# the libraries it uses (ie, pangocairo, pango, freetype, fontconfig, png)
+pango_libdir = os.getenv("PANGO_LIBDIR")
+if pango_libdir:
+    pango_libdir = pango_libdir.strip()
+
+# The location of libpythonx.x.so, in case it is not in a standard location
 python_libdir = os.path.split( distutils.sysconfig.get_python_lib(standard_lib=True) )[0]
 
 # The list of additional directories to examine for libraries
@@ -50,14 +67,12 @@ if hdf5_libdir:
     libdir_list.append(hdf5_libdir)
 if cairo_libdir:
     libdir_list.append(cairo_libdir)
-if pixman_libdir:
-    libdir_list.append(pixman_libdir)
+    if pixman_libdir:
+        libdir_list.append(pixman_libdir)
+    if pango_libdir:
+        libdir_list.append(pango_libdir)
 libdir_list.append(python_libdir)
 
-# Non-standard library location on some systems for X11 (such as XQuartz on Mac OSX)
-if buildtype == "intel-mac":
-    libdir_list.append("/opt/X11/lib")
-
 # Get the list of ferret static libraries
 # Stripping off the "lib" prefix and the ".a" suffix
 fer_lib_list = [ ]
@@ -74,7 +89,7 @@ if buildtype != "intel-mac":
     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%i.%i" % sys.version_info[:2])
+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
@@ -99,9 +114,6 @@ if hdf5_libdir:
 else:
     addn_link_args.extend([ "-lnetcdff", "-lnetcdf" ])
 
-# The Pango text-rendering libraries
-addn_link_args.extend([ "-lpangocairo-1.0", "-lpango-1.0", "-lgobject-2.0" ])
-
 # Link to the cairo library and the libraries it requires.
 if cairo_libdir:
     cairo_lib = "-Wl," + os.path.join(cairo_libdir, "libcairo.a")
@@ -111,24 +123,26 @@ if cairo_libdir:
     else:
         pixman_lib = "-lpixman-1"
     addn_link_args.append(pixman_lib);
-    addn_link_args.extend([ "-lfreetype", "-lfontconfig", "-lpng", "-lXrender", "-lX11"])
+    addn_link_args.extend([ "-lfreetype", "-lfontconfig", "-lpng" ])
+    if is_linux_system:
+        # Bind symbols and function symbols to any internal definitions
+        # and do not make any of the symbols or function symbols defined
+        # in any libraries externally visible (mainly for cairo and pixman).
+        # Those in the object files (including those from pyfermod and
+        # fer/ef_utility) will still be visible.
+        addn_link_args.extend([ "-lXrender", "-lX11",
+                                "-Wl,-Bsymbolic", "-Wl,--exclude-libs -Wl,ALL"])
 else:
-   addn_link_args.append("-lcairo")
+    addn_link_args.append("-lcairo")
 
-# Link in the appropriate system libraries 
+# The Pango text-rendering libraries
+addn_link_args.extend([ "-lpangocairo-1.0", "-lpango-1.0", "-lgobject-2.0" ])
+
+# Link in the appropriate system libraries
 if hdf5_libdir:
-   addn_link_args.extend(["-lcurl", "-lz"])
+    addn_link_args.extend(["-lcurl", compress_lib])
 addn_link_args.extend([ "-lgfortran", "-ldl", "-lm", "-fPIC", ])
 
-# Bind symbols and function symbols to any internal definitions 
-# and do not make any of the symbols or function symbols defined
-# in any libraries externally visible (mainly for cairo and pixman).
-# Those in the object files (including those from pyfermod and 
-# fer/ef_utility) will still be visible.
-# addn_link_args.append("-Wl,-Bsymbolic-functions")
-if buildtype != "intel-mac":
-    addn_link_args.extend(["-Wl,-Bsymbolic", "-Wl,--exclude-libs -Wl,ALL"])
-
 # Get the list of C source files in pyfermod
 src_list = [ ]
 for srcname in os.listdir("pyfermod"):
@@ -142,18 +156,19 @@ for srcname in os.listdir(dirname):
     if srcname[-2:] == ".o":
         addnobjs_list.append(os.path.join(dirname, srcname))
 dirname = os.path.join("fer", "special")
-for srcname in ( "fakes3.o", "ferret_dispatch.o", "ferret_query_f.o",
-                 "gui_fakes.o", "linux_routines.o", ):
+for srcname in ( "fakes3.o", "ferret_dispatch.o", "gui_fakes.o", "linux_routines.o", ):
     addnobjs_list.append(os.path.join(dirname, srcname))
 for srcname in os.listdir(dirname):
     if (srcname[0] == 'x') and (srcname[-7:] == "_data.o"):
         addnobjs_list.append(os.path.join(dirname, srcname))
 
-# Duplicate objects in libraries to make them externally visible (for las external functions)
-dirname = os.path.join("fmt", "src")
-addnobjs_list.append(os.path.join(dirname, "tm_lenstr.o"));
-addnobjs_list.append(os.path.join(dirname, "tm_fmt.o"));
-addnobjs_list.append(os.path.join(dirname, "tm_lefint.o"));
+if cairo_libdir:
+    # Duplicate objects in libraries to make them externally visible (e.g., for las
+    # external functions) if the '--exclude-libs ALL' flag was passed to the linker.
+    dirname = os.path.join("fmt", "src")
+    addnobjs_list.append(os.path.join(dirname, "tm_lenstr.o"));
+    addnobjs_list.append(os.path.join(dirname, "tm_fmt.o"));
+    addnobjs_list.append(os.path.join(dirname, "tm_lefint.o"));
 
 # Create the pyferret.libpyferret Extension
 ext_mods = [ Extension("pyferret.libpyferret", include_dirs = incdir_list,
@@ -226,14 +241,3 @@ setup(name = "gcircle",
       requires = [ "numpy", ],
       py_modules = [ "gcircle", ])
 
-setup(name = "ferretmagic",
-      version = pyferret_version,
-      description = "iPython notebook extension for PyFerret",
-      long_description = "iPython notebook extension for PyFerret " \
-                         "updated for this version of PyFerret.",
-      author = "Patrick Brockmann",
-      url = "https://github.com/PBrockmann/ipython-ferretmagic",
-      license = "Public Domain",
-      requires = [ "pyferret", ],
-      py_modules = [ "ferretmagic", ])
-
diff --git a/site_specific.mk b/site_specific.mk
index 728ab77..bbdef30 100644
--- a/site_specific.mk
+++ b/site_specific.mk
@@ -1,17 +1,31 @@
 ## Site-dependent definitions included in Makefiles
 ## 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).
 ## Do not use $(shell pwd) since this is included in Makefiles in other directories.
+## =========================
 DIR_PREFIX = $(HOME)/build/pyferret_dev
+# DIR_PREFIX = $(HOME)/git/PyFerret
 # DIR_PREFIX = $(HOME)/pyferret_dev
 
+## =========================
+## Installation directory for built PyFerret.  Using the "install"
+## Makefile target automatically creates a generic pyferret-*.tar.gz
+## file and then extracts it to create a PyFerret installation.
+## =========================
+INSTALL_FER_DIR = $(HOME)/ferret_distributions/rhel6_64
+# INSTALL_FER_DIR = $(HOME)/PyFerret
+# INSTALL_FER_DIR = $(FER_DIR)
+
+## =========================
 ## Machine type for which to build Ferret/PyFerret
 ##   x86_64-linux      for 64-bit RHEL
 ##   x86_64-linux-gnu  for 64-bit Ubuntu and many "free" Linux systems
 ##   i386-linux        for 32-bit RHEL
 ##   i386-linux-gnu    for 32-bit Ubuntu and many "free" Linux systems
 ##   intel-mac         for Mac OSX
+## =========================
 BUILDTYPE = $(HOSTTYPE)
 # BUILDTYPE = x86_64-linux
 # BUILDTYPE = x86_64-linux-gnu
@@ -19,60 +33,92 @@ BUILDTYPE = $(HOSTTYPE)
 # BUILDTYPE = i386-linux-gnu
 # BUILDTYPE = intel-mac
 
-## Python 2.x executable to invoke for build and install.
+## =========================
+## Python executable to invoke for build and install.
+## =========================
 PYTHON_EXE = python2.6
 # PYTHON_EXE = python2.7
-## The assignment of PYTHONINCDIR should not need any modifications
-PYTHONINCDIR := $(shell $(PYTHON_EXE) -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc()")
+# PYTHON_EXE = python3.6
 
-## Installation directory for built Ferret.  Using the "install"
-## Makefile target circumvents the need to create the fer_*.tar.gz
-## files just for creating a Ferret installation.
-INSTALL_FER_DIR = $(HOME)/ferret_distributions/rhel6_64
-# INSTALL_FER_DIR = $(FER_DIR)
+## =========================
+## The assignment of PYTHONINCDIR should not need any modifications
+## =========================
+PYTHONINCDIR := $(shell $(PYTHON_EXE) -c "from __future__ import print_function ; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc())")
 
-## Installation directory for cairo v1.12 or later static library 
+## =========================
+## Installation directory for cairo v1.12 or later static library
 ## (contains include and lib or lib64 subdirectories).  If blank,
-## the system's cairo shared library will be used.  Older versions 
-## of cairo (v1.8 or later) can be used, but raster images from 
+## the system's cairo shared library will be used.  Older versions
+## 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 = $(HOME)/.local
 # CAIRO_DIR = /usr/local
 # CAIRO_DIR =
 
-## Installation directory for pixman-1 static library (contains 
-## include and lib or lib64 subdirectories) used by the above cairo 
-## library.  If blank, or if CAIRO_DIR is blank, the system's 
+## =========================
+## Installation directory for pixman-1 static library (contains
+## include and lib or lib64 subdirectories) used by the above
+## 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 = $(HOME)/.local
 # PIXMAN_DIR = /usr/local
 # PIXMAN_DIR =
 
-## Installation directory for HDF5 static libraries (contains 
-## include and lib or lib64 subdirectories).  Do not give a location 
-## to link to NetCDF shared-object libraries.
+## =========================
+## Directory containing the pango-1.0, glib-2.0, freetype, fontconfig,
+## png libraries (contains include and lib or lib64 subdirectory).
+## If blank, or if CAIRO_DIR is blank, the system standard libraries
+## will be used.
+## =========================
+# PANGO_DIR = $(HOME)/.local
+# PANGO_DIR = /usr/local
+PANGO_DIR =
+
+## =========================
+## Installation directory for HDF5 static libraries (contains include
+## 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 = $(HOME)/.local
 # HDF5_DIR = /usr/local
-# HDF5_DIR = 
+# HDF5_DIR =
+
+## =========================
+## Compression library used in the above HDF5 library, either 'z'
+## or 'sz'.  If HDF5_DIR is not given, this value is not used.
+## =========================
+COMPRESS_LIB = z
+# COMPRESS_LIB = sz
 
+## =========================
 ## Installation directory for NetCDF static or shared object libraries
-## (contains include and lib or lib64 subdirectories).  If HDF5_DIR 
-## (above) is blank, the netcdf shared-object (.so) libraries will be 
+## (contains include and lib or lib64 subdirectories).  If HDF5_DIR
+## (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 = $(HOME)/.local
 # NETCDF4_DIR = /usr/local
 
+## =========================
 ## Java home directory - this may be predefined
 ## from your shell environment.  If JAVA_HOME is defined,
 ## $(JAVA_HOME)/bin/javac and $(JAVA_HOME)/bin/jar is
-## called to build threddsBrowser.jar; otherwise, 
+## called to build threddsBrowser.jar; otherwise,
 ## threddsBrowser.jar is not built and the Ferret command
 ## SET DATA /BROWSE (or the alias OPEN) will not work.
+## =========================
 # JAVA_HOME = /usr/java/default
 # JAVA_HOME = /usr/java/latest
 # JAVA_HOME = /usr/lib/jvm/default-java
 # JAVA_HOME = /usr/lib/jvm/java-oracle
 JAVA_HOME = /usr/lib/jvm/java
-# JAVA_HOME = /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home
+# JAVA_HOME = /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home
 
 ##

-- 
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